Download Resumen Teorico Final Tanenbaum, 4ta edición...
Redes de Información
2009
Fuentes: Redes de computadoras (Andrew Tanenbaum) y Wikipedia.org
NMs
Unidad 1: Arquitectura de Redes Redes de Computadoras Redes de computadoras: Conjunto de computadoras autónomas interconectadas. Dos computadoras están interconectadas si pueden intercambiar información, servicios, recursos, etc. La interconexión de las computadoras puede realizarse por distintos medios como cables de cobre, fibra óptica, microondas, rayos infrarrojos, satélites, etc. En una red de computadoras no existe consistencia, modelo, ni software como en los sistemas distribuidos (middleware). Los usuarios están expuestos a las máquinas reales y el sistema no hace ningún intento por que las máquinas se vean y actúen de manera similar. Si las máquinas tiene hardware diferente y distintos sistemas operativos, eso es completamente trasparente para los usuarios. Clasificación de las redes
Según la tecnología de transmisión o Por enlaces de difusión: Las redes de enlace de difusión (broadcast), tienen un solo canal de comunicación por lo que todas las máquinas de la red lo comparten y si una máquina envía un paquete, todas las otras lo reciben. Cuando las maquinas reciben el paquete verifican la dirección de destino y solo el destinatario procesará el paquete en vez de desecharlo. Estos sistemas también soportan el envío de paquetes con una dirección de difusión (broadcast) en el destinatario, en este caso todos los que reciban el paquete lo procesarán. Por último puede enviarse un paquete a un conjunto de máquinas, esto es conocido como multidifusión (multicast). o Por enlaces punto a punto: Estas redes constan de muchas conexiones entre pares individuales de máquinas. Para ir del origen al destino, un paquete en este tipo de red podría tener que visitar primero a una o varias máquinas intermedias. El transporte de datos en estas redes se conoce como unidifusión (unicast).
En general las redes de gran cobertura geográfica utilizan redes por enlaces punto a punto, mientras que las redes de menor cobertura geográfica utilizan enlaces de difusión.
Según la cobertura geográfica o PAN (Personal Area Network): Son las que están destinadas a una sola persona, como por ejemplo una red que conecta un mouse, teclado, impresora, con una computadora. (No pertenece a la clasificación real). o SOHO (Small Office Home Office): Son pequeñas redes para oficinas o redes hogareñas que no poseen más de 5 o 10 máquinas. Existe una gran variedad de dispositivos que se han diseñado especialmente para este tipo de redes. (No pertenece a la clasificación real).
o
LAN (Local Area Network): Son redes de propiedad privada que se encuentran en un solo edificio o campus de pocos kilómetros de longitud. Se diferencian de otros tipos de redes por tres aspectos: El tamaño, una LAN utilizada para un edificio tiene la limitante de 100mts de longitud, pero con el uso de repetidores podrían conectarse en un campus y alcanzar hasta 3km. Tecnología de transmisión, las LAN pueden ser conectadas desde por ejemplo un simple cable que conecte todas las máquinas, hasta una conexión con dispositivos inalámbricos. Las LAN comenten muy pocos errores (supongo que se refiere a pérdida de paquetes por ejemplo) y se ejecutan a altas velocidades de 10Mbps, 100Mbps, 1Gbps, 10Gbps, etc. La topología BUS, usa un solo cable backbone y todos los hosts se conectan directamente a este backbone. ANILLO, conecta un host con el siguiente y al último host con el primero. Esto crea un anillo físico de cable. ESTRELLA, conecta todos los cables con un punto central de concentración. o Una topología en estrella extendida conecta estrellas individuales entre sí mediante la conexión de hubs o switches. Esta topología puede extender el alcance y la cobertura de la red. o Una topología jerárquica es similar a una estrella extendida. Pero en lugar de conectar los HUBs o switches entre sí, el sistema se conecta con un computador que controla el tráfico de la topología. MALLA, se implementa para proporcionar la mayor protección posible para evitar una interrupción del servicio dado que cada host tiene sus propias conexiones con los demás hosts. (Aunque Internet cuenta con múltiples rutas hacia cualquier ubicación, no adopta la topología de malla completa).
o
MAN (Metropolitan Area Network): Son redes que abarcan grandes extensiones geográficas como una ciudad por ejemplo y su longitud es superior a los 4km y hasta 100km de cobertura. Estas redes son utilizadas para la transmisión de datos, voz, video, a través de medios como fibra óptica, par trenzado, etc. Las MAN nacen como una evolución de las redes LAN dado que la tecnología también evolucionó y permitió extender la cobertura de la red y mantener en cierto grado las velocidades de transferencia de datos. Las redes MAN tienen diferentes usos como ser, transmisiones VOIP para una ciudad, interconexión entre redes LAN, como pasarela para redes WAN, etc.
o
WAN (Wide Area Network): Son redes que abarcan una gran área geográfica como ser un país o un continente con un área de cobertura de 100km a 1000km y velocidades de transferencia de datos menores a las LAN. Normalmente las redes WAN utilizan transmisión punto a punto, cuando se debe enviar un paquete desde un punto A de la red a un punto B, este paquete puede pasar a través de varios routers intermedios hasta llegar a su destino. Es común que una red WAN utilice las instalaciones de transmisión proporcionadas por los portadores comunes, tales como compañías de teléfono.
Red Corporativa: Son todos los recursos de una organización que se encuentran interconectados independientemente del área que ocupen y la tecnología de conmutación utilizada.
Red Corporativa
WAN
LAN
LAN
LAN
VPN MAN
Según privacidad o
Redes Privadas: Son redes cuyos terminales tienen asignados direcciones IP del espacio de direcciones privadas, lo cual les permite comunicarse con otros terminales de la red privada pero no salir a internet con dicha IP. Son muy utilizadas en redes LAN dado que muchas veces en una red no es necesario que todas las maquinas estén conectadas a internet. Las direcciones de IP privadas surgen como un método para evitar el
o
agotamiento de las direcciones IP (Ver.4), dado que con la implementación de estas redes, distintas compañías pueden utilizar el mismo rango de direcciones privadas sin correr riesgo de conflictos. Existen métodos como NAT y PAT que permiten generar una correspondencia entre las direcciones privadas de una LAN y un conjunto de direcciones públicas, para que los HOST de la LAN puedan hacer uso de una red pública como internet. Redes Públicas: una red pública se define como una red que puede usar cualquier persona y no como las redes que están configuradas para uso personal. Es una red de computadoras interconectadas, capaz de compartir información y que permite comunicar a usuarios sin importar su ubicación geográfica. Para utilizar una red pública es necesario que los equipos posean direcciones del espacio de direcciones públicas de IP.
Componentes de las redes Aclaración: según el profe los elementos son 4, las estaciones de trabajo, los protocolos de comunicación, los dispositivos de comunicación y el medio físico.
Servidor: El servidor es aquel o aquellos ordenadores que van a compartir sus recursos hardware y software con los demás equipos de la red. Sus características son potencia de cálculo, importancia de la información que almacena y conexión con recursos que se desean compartir. Estación de trabajo: Los ordenadores que toman el papel de estaciones de trabajo aprovechan o tienen a su disposición los recursos que ofrece la red así como los servicios que proporcionan los Servidores a los cuales pueden acceder. Encaminador: Es un dispositivo de “propósito general” diseñado para multitud de tareas, algunas de ellas de alta complejidad y otras más sencillas. Está diseñado para segmentar la red con la idea de limitar el tráfico de troncal y proporcionar seguridad, control y redundancia entre dominios individuales de troncal. Los routers operan en la capa 3 del modelo OSI y tienen más facilidades de software que un switch. Al funcionar en una capa mayor que la del switch, el router distingue entre los diferentes protocolos de red, tales como IP, IPX, AppleTalk o DECnet, permitiéndole decidir de forma más inteligente que el switch , al momento de reenviar paquetes. Las dos funciones básicas del router son : o Crear y mantener tablas de encaminamiento para cada capa de protocolo de red: estas tablas son creadas estática ó dinámicamente. o Seleccionar la ruta basándose sobre diversos factores más que por la dirección de destino. Estos factores pueden ser la cuenta de saltos, velocidad de la línea, costo de transmisión, retraso y condiciones de tráfico. Gateways o pasarelas: Es un hardware y software que permite las comunicaciones entre la red local y grandes ordenadores (mainframes). El gateway adapta los protocolos de comunicación del mainframe (X25, SNA, etc.) a los de la red, y viceversa. Bridges o puentes: Es un hardware y software que permite que se conecten dos redes locales entre sí. Un puente interno es el que se instala en un servidor de la red, y un puente externo es el que se hace sobre una estación de trabajo de la misma red. Los puentes también pueden ser locales o remotos. Los puentes locales son los que conectan a redes de un mismo edificio, usando tanto conexiones internas como externas. Los puentes remotos conectan redes distintas
entre sí, llevando a cabo la conexión a través de redes públicas, como la red telefónica, RDSI o red de conmutación de paquetes. Tarjeta de red: También se denominan NIC (Network Interface Card). Básicamente realiza la función de intermediario entre el ordenador y la red de comunicación. En ella se encuentran grabados los protocolos de comunicación de la red. La comunicación con el ordenador se realiza normalmente a través de las ranuras de expansión que éste dispone, ya sea ISA, PCI o PCMCIA. Aunque algunos equipos disponen de este adaptador integrado directamente en la placa base. El medio: Constituido por el cableado y los conectores que enlazan los componentes de la red. Los medios físicos más utilizados son el cable de par trenzado, par de cable, cable coaxial y la fibra óptica (cada vez en más uso esta última). Concentradores de cableado: Una LAN en bus usa solamente tarjetas de red en las estaciones y cableado coaxial para interconectarlas, además de los conectores, sin embargo este método complica el mantenimiento de la red ya que si falla alguna conexión toda la red deja de funcionar. Para impedir estos problemas las redes de área local usan concentradores de cableado para realizar las conexiones de las estaciones, en vez de distribuir las conexiones el concentrador las centraliza en un único dispositivo manteniendo indicadores luminosos de su estado e impidiendo que una de ellas pueda hacer fallar toda la red. Existen dos tipos de concentradores de cableado: 1. Concentradores pasivos: Actúan como un simple concentrador cuya función principal consiste en interconectar toda la red. 2. Concentradores activos: Además de su función básica de concentrador también amplifican y regeneran las señales recibidas antes de ser enviadas. Los concentradores de cableado tienen dos tipos de conexiones: para las estaciones y para unirse a otros concentradores y así aumentar el tamaño de la red. Los concentradores de cableado se clasifican dependiendo de la manera en que internamente realizan las conexiones y distribuyen los mensajes. A esta característica se le llama topología lógica. Existen dos tipos principales: 1. Concentradores con topología lógica en bus (HUB): Estos dispositivos hacen que la red se comporte como un bus enviando las señales que les llegan por todas las salidas conectadas. 2. Concentradores con topología lógica en anillo (MAU): Se comportan como si la red fuera un anillo enviando la señal que les llega por un puerto al siguiente.
Temas del programa no abordados: Ventajas y desventajas de las redes de computadoras.
El Protocolo TCP/IP Historia ARPANET fue una red de investigaciones del departamento de defensa de los Estados Unidos, con el tiempo esta red conecto varias universidades e instalaciones gubernamentales mediante líneas telefónicas. Posteriormente surgieron redes satelitales y de radio y los protocolos existentes tuvieron problemas para trabajar con ellos y la solución a ello fue crear un modelo de referencia para estas redes, el nombre de ese modelo es TCP/IP. EL MODELO TCP/IP OSI 7. Aplicación 6. Representación 5. Sesión 4. Transporte 3. Red 2. Enlace de datos 1. Física
TCP/IP Aplicación
Transporte Internet Acceso a la red
El modelo TCP/IP consta de 4 capas que están jerarquizadas y cada una se construye sobre su predecesora. El número, servicios y funciones de cada una de las capas varían según el tipo de red, veamos la versión original de 4 capas. Capa de acceso al medio Equivalente a la capa física (1) y capa de enlace de datos (2) del modelo OSI. Se encarga de llevar a cabo a la transmisión de bits a través del medio y fragmentación de los datos a enviar, uso de buffers, control de flujo y manejo de errores. Capa de Internet Equivalente a la capa red (3) del modelo OSI. Se encarga de encaminar los paquetes para que lleguen al destino, uso y definición de tablas de enrutamiento (ya sea estáticas o dinámicas), mecanismos de control de congestión y control de flujo, etc. Capa de transporte Equivalente a la capa de transporte (4) del modelo OSI. Se encarga de aceptar los datos provenientes de la capa de aplicación, dividirlo en unidades más pequeñas (en caso de ser necesario), asegurarse que todos los datos enviados lleguen correctamente de extremo a extremo, determina el tipo de conexión (seguro orientado a conexión TCP (con control de flujo), inseguro no orientado a conexión UDP (sin control de flujo)).
Capa de aplicación Equivalente a las capas sesión (5), presentación (6) aplicación (7) del modelo OSI. El modelo TCP/IP combina todos los aspectos relacionados con las aplicaciones en una sola capa, contiene todos los protocolos de nivel más alto (TELNET, FTP, HTTP, etc.). Conjunto de protocolos Aplicación
BGP · DHCP · DNS · FTP · GTP · HTTP · IMAP · IRC · Megaco · MGCP · NNTP · NTP · POP · RIP · RPC · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · Telnet · TLS/SSL · XMPP
Transporte
TCP · UDP · DCCP · SCTP · RSVP · ECN
Internet
IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec
Acceso a la red
NDP · OSPF · Tunnels (L2TP) · PPP · Media Access Control (Ethernet, DSL, ISDN, FDDI)
Temas del programa no abordados: Historia (en profundidad) y evolución de TCP/IP.
Internet Origen El número de redes, maquinas y usuarios conectados a ARPANET creció exponencialmente luego de que TCP/IP se convirtió en el protocolo oficial. A mediados de la década del 80’, las personas comenzaron a ver el conjunto de redes como internet. Por lo que se define que una máquina está en internet si ejecuta la pila de protocolos TCP/IP, tiene una dirección IP y puede enviar paquetes IP a otras máquinas en internet. Servicios Básicos Internet y sus predecesores tenían 4 aplicaciones básicas:
Correo electrónico, la capacidad para redactar, enviar y recibir correo electrónico ha sido posible desde los inicios de ARPANET. Noticias, los grupos de noticias son foros especializados en los que los usuarios con un interés común pueden intercambiar mensajes. Inicio remoto de sesión, mediante programas como telnet los usuarios de cualquier parte en internet pueden iniciar sesión en cualquier otra máquina en la que tengan una cuenta. Transferencia de archivos, con el programa FTP, los usuarios pueden copiar archivos de una máquina en internet a otra.
Luego de 1990 una nueva aplicación cambió el uso de internet, la World Wide Web. Esta aplicación hizo posible que un sitio estableciera páginas con información en forma de texto, imágenes, sonido y video, junto con vínculos que integraran a otras páginas.
Estándares de redes Cuando hablamos de redes existen una serie de organismos como son:
ITU (International Telecommunication Union), es el organismo especializado de las naciones unidas encargado de regular las telecomunicaciones a nivel internacional, entre las distintas administraciones y empresas operadoras. ITU hace recomendaciones sobre telefonía, telegrafía y las interfaces de comunicación de datos, muchas veces estas recomendaciones terminan convirtiéndose en estándares reconocidos. (Ej. V.24 o RS-232 que define el significado de los pines para el conector DB9). ISO (International Organization for Standardization), es el organismo encargado de promover el desarrollo de normas internacionales de fabricación, comercio y comunicación para todas las ramas industriales a excepción de la eléctrica y electrónica. IEEE (Institute of Electrical and Electronics Engineers), es una asociación técnico-profesional mundial dedicada a la estandarización, entre otras cosas. Mediante sus actividades de publicación técnica, conferencias y estándares basados en consenso, el IEEE produce más del 30% de la literatura publicada en el mundo sobre ingeniería eléctrica, en computación, telecomunicaciones, etc. (Ej. Las 802. Son los estándares de la IEEE para las distintas LAN). IETF (Internet Engineering Task Force), es una organización internacional abierta de normalización, que tiene como objetivo el contribuir a la ingeniería en internet. Algunos de los temas que buscan mejorar en internet son, nuevas aplicaciones, información de usuario, enrutamiento y direccionamiento, seguridad, administración de redes y estándares. o RFC (Request For Comment), son notas que se publican sobre internet desde 1969 y cada protocolo utilizado en internet posee un RFC como mínimo, son manejadas por el IETF.
Alternativas de Conexión a Internet
Conexión Cliente Servidor: Es una arquitectura que consiste básicamente en un programa cliente que realiza peticiones a otro programa servidor el cual le da la respuesta. Visitar un sitio web es un ejemplo de una conexión cliente-servidor, donde el servidor web sirve las páginas al navegador web del cliente. Conexión peer-to-peer: Es una red de pares en la que los nodos funcionan sin clientes ni servidores y se comportan como iguales entre sí. En otras palabras los nodos actúan simultáneamente como clientes y como servidores respecto a los demás nodos de la red. En internet el ancho de banda y las capacidades de almacenamiento son caros, por lo que en aquellas aplicaciones que se requieran gran cantidad de recursos podrían utilizarse redes P2P. Algunos programas como bitTorrent, eMule, Skype utilizan redes P2P.
Internet Service Provider (ISP) Los proveedores de servicios de internet son compañías que ofrecen a los usuarios la capacidad de llamar a una de sus maquinas y conectarse a internet obteniendo así acceso a todos los servicios que este proporciona. Arquitectura de internet
ISPR
ISPL
ISP
NA P
NA P
NA P
NA P NA P
ISP ISPR ISPR
POP
Temas del programa no abordados: Características de internet. Cableado Telefónico
ISP
ISP
ISPL ISPR ISPL
PC1
LAN1
En el caso de la PC1, el cliente llama a su ISP Local haciendo uso del cableado telefónico, el modem es la tarjeta dentro de su PC que convierte las señales digitales de la computadora en señales analógicas que pueden viajar a través del sistema telefónico. Estas señales viajan por el cableado telefónico hasta el POP (Point of Presence) del ISP donde se retiran del sistema telefónico y se inyectan en la red del ISP, a partir de este punto el sistema es totalmente digital y de conmutación de paquetes. Cuando el ISP local recibe el paquete, se fija si pertenece a alguien con el que esté directamente conectado, de no ser así pasa el paquete a un ISP Regional, el paquete continua viajando hasta llegar a su destino.
PC1: PC conectada a un ISP Local haciendo uso del cableado telefónico, para ello convierte la señal digital a analógica. Cableado Telefónico: Medio por el cual viajan los datos.
POP: Es el elemento que permite filtrar del cableado telefónico aquella información que es para el ISP y convertirla a digital para inyectarla en la red del ISP Local. ISPL: El ISP Local es el ISP de menor cobertura. Algunos ejemplos son Ciudad Internet, Fibertel, Tutopía. ISPR: El ISP Regional, son aquellos que proveen el servicio de conexión a los ISP Locales. Algunos ejemplos son Telecom y Telefónica. ISP: Son aquellos ISP que están directamente conectados a un NAP y que brindan el servicio de conexión a los ISPR, son proveedores internacionales. Algunos ejemplos son Prodigy y AOL. NAP: Network Access Point, son los 5 nodos de internet y cada uno maneja un continente salvo América que tiene 2. Los NAP tienen los enlaces más rápidos de todo internet.
Temas del programa no abordados: Características de internet.
Capa de Acceso en WAN Red Telefónica Red Telefónica Conmutada también llamada Red Telefónica Básica, es una red de comunicación diseñada primordialmente para la transmisión de voz, aunque también pueden transportarse datos (fax, internet, etc.).
Tel1
POP
IXC
IXC
CT
IXC
POP
Tel4
CL CL
Tel2
CL
CL Tel3
Int1
CT
LATA1
LATA2
CL Int2
LATA (Local Access Transport Area), los usuarios se conectan a los CL (Centrales Locales) a través de lo que denominaremos “Última Milla”, que básicamente es el cable que los conecta con la central local. En los años 90’ se produjo la digitalización de las líneas del sistema de transmisión, manteniendo la “última milla” de los abonados de manera analógica con un ancho de banda de 4Khz. Por lo que la señal analógica llega a las centrales locales y debe ser codificada para digitalizarse, la codificación se realiza con PCM (Modulación de Impulsos Codificados) a una frecuencia de muestreo de 8Khz con un ancho de banda de 64Kbits, la modulación se realiza con TDM (Modulación por división de tiempo). En el caso de
que sea una llamada local, la petición se resuelve a través de las centrales locales. Si es una llamada a otro proveedor, las centrales locales envían los datos multiplexados y digitalizados a las centrales de transformación, esta se conecta al POP y envía los datos a la central de transformación del proveedor correspondiente, esto lo hace a través de los IXC (Inter Exchange Carrier), una vez que esto ocurre los datos son enviados a la central local y al usuario correspondiente. En caso de ser una conexión a internet, estas son denominadas (CSU/DSU) Unidad de Servicio de Canal / Unidad de Servicio de Datos, es una interfaz que permite conectar equipos DTE (Data Terminal Equipment) a un circuito digital. Trabajan en la capa física (1) del modelo OSI normalmente presentan conectores seriales RS232 (DSU) y otro RJ45 (CSU). El CSU provee una terminación de la señal digital y asegura la integridad de la conexión a través de la corrección de errores y la supervisión de la línea. Otras funciones del CSU son proteger el equipo del usuario y la línea de problemas eléctricos. El DSU convierte los datos codificados del circuito digital en datos síncronos seriales para una conexión a un dispositivo DTE y establece plazos para cada extremo. ISDN (Red Digital de Servicios Integrados) no fue aplicado por los costos de reemplazar todas las últimas millas, ISDN utiliza conmutación de circuitos y es una conexión WAN que en la última milla tiene un cable UTP de 8 conductores. Los hilos “de más” son utilizados para enviar, entre otras cosas, señales de control (se denomina “fuera de banda” porque la señal de control va por otros conductores).
Temas del programa no abordados: Plan de Numeración.
Asynchronous Transfer Mode (ATM) El Modo de Transferencia Asíncrona es una tecnología de telecomunicación desarrollada para hacer frente a la gran demanda de capacidad de transmisión para servicios y aplicaciones. Cuando ATM se lanzó iba a resolver todos los problemas de conectividad en las telecomunicaciones fusionando voz, datos, televisión por cable, telégrafo, etc. En un solo sistema integrado que pudiera proporcionar todos los servicios. ATM no tuvo ese éxito pero si es muy utilizada por las empresas portadoras para el transporte de paquetes IP dentro del sistema telefónico. Circuitos Virtuales de ATM Como ATM están orientadas a conexión el envío de datos requiere que primero se envíe un paquete para establecer la conexión, conforme el paquete de establecimiento de conexión viaja por los distintos nodos a través de la subred, todos los conmutadores que se encuentran en la ruta crean una entrada en sus tablas internas y toman nota de la existencia de dicha conexión y de los recursos necesarios por la conexión. A estas conexiones se las conoce como circuitos virtuales. Una vez establecida la conexión cada lado puede comenzar a enviar datos, en ATM los datos se envían en paquetes de tamaño fijos llamados celdas (53 bytes = 5 encabezado + 48 de carga útil). Parte del encabezado es el identificador
para que los conmutadores puedan saber a qué conexión pertenece una celda, la conmutación de celdas se realiza a alta velocidad a nivel de hardware. Al utilizar celdas de tamaño pequeño, estas no bloquean ninguna línea por mucho tiempo lo que facilita la garantía de la calidad de servicio. Dado que se establece un circuito virtual, todas las celdas siguen un mismo camino en su viaje hacia el destino, por lo que a pesar de no garantizarse la entrega de las celdas, si se garantiza el orden (la recuperación de las celdas perdidas se realiza en los niveles más altos del protocolo). Las redes ATM pueden alcanzar velocidades de transferencia de 155Mbps hasta 622Mbps (con 155Mbps puede enviarse televisión de alta definición y la de 622Mbps es para enviar 4 canales de 155Mbps).
Capas del modelo ATM ATM tiene su propio modelo y este consta de tres capas (Física, ATM y Adaptación ATM), a diferencia de la mayoría de los modelos, este se define en tres dimensiones: Administración del plano Administración de la capa Plano de control Plano de usuario
Capas superiores (Control)
Capas superiores (Usuario) Subcapa de convergencia
Capa de adaptación ATM Subcapa de segmentación y reensamble Capa ATM Subcapa de convergencia de transmisión Capa física Subcapa dependiente del medio físico
Capa Física: Tiene que ver con el medio físico (voltajes, temporización de bits, etc.), ATM puede enviar sus celdas al medio de comunicación o esas celdas pueden ser la carga útil de otro sistema de transporte, en otras palabras ATM es independiente del medio de transmisión. La capa física se divide en dos subcapas:
Subcapa dependiente del medio físico, esta subcapa interactúa con el cable real, mueve los bits y maneja su temporización (esta capa varía de acuerdo al medio físico a utilizar).
Subcapa de convergencia de transmisión, es la encargada de convertir las celdas en una cadena de bits para que sean enviados por la subcapa dependiente del medio físico y viceversa, también genera y controla el campo de verificación de encabezados.
Capa ATM: Se encarga de las celdas y su transporte, define la disposición de una celda y genera/extrae el encabezado de la misma, establece y libera los circuitos virtuales y realiza control de congestión. Capa de Adaptación ATM: Esta capa fue creada dado que la mayoría de las aplicaciones no trabajan con celdas ATM, esta capa segmenta/reensambla los paquetes a enviar al tamaño de las celdas. Esta capa se divide en dos subcapas:
Subcapa de segmentación y reensamble, es la encargada de tomar la información a enviar, dividirla en partes más pequeñas para que puedan ser la carga útil de una celda, también es la encargada de recibir las celdas y crear los paquetes como lo eran originalmente. Subcapa de convergencia, provee una interfaz estándar de comunicación con las capas superiores y servicios a diferentes aplicaciones.
Capas Superiores: Son capas que el usuario puede colocar encima. Plano de Usuario: Este plano trata el transporte de datos, control de flujo, corrección de errores y otras funciones de usuario. Plano de Control: Se ocupa de la administración de la conexión Administración del plano y de la capa: Se relacionan con la administración de recursos y la coordinación entre capas.
Celdas ATM Son estructuras de datos de 53 bytes compuestas por dos campos principales: 1. Cabecera, sus 5 bytes tienen tres funciones principales: identificación del canal, información para la detección de errores y si la célula es o no utilizada. Eventualmente puede contener también corrección de errores y un número de secuencia. 2. Carga útil, tiene 48 bytes fundamentalmente con datos del usuario y protocolos AAL que también son considerados como datos del usuario. Dos de los conceptos más significativos del ATM, Canales Virtuales y Rutas Virtuales, están materializados en dos identificadores en el header de cada célula (VCI y VPI) ambos determinan el enrutamiento entre nodos. El estándar define el protocolo orientado a conexión que las transmite y dos tipos de formato de celda:
NNI (Network to Network Interface o interfaz red a red) El cual se refiere a la conexión de Switches ATM en redes privadas
UNI (User to Network Interface o interfaz usuario a red) este se refiere a la conexión de un Switch ATM de una empresa pública o privada con un terminal ATM de un usuario normal, siendo este último el más utilizado.
Campos
GFC (Control de Flujo Genérico, Generic Flow Control, 4 bits): El estándar originariamente reservó el campo GFC para labores de gestión de tráfico, pero en la práctica no es utilizado. Las celdas NNI lo emplean para extender el campo VPI a 12 bits. VPI (Identificador de Ruta Virtual, Virtual Path Identifier, 8 bits) y VCI (Identificador de Circuito Virtual, Virtual Circuit Identifier, 16 bits): Se utilizan para indicar la ruta de destino o final de la celula. PT (Tipo de Información de Usuario, Payload type, 3 bits): identifica el tipo de datos de la celda (de datos del usuario o de control). CLP (Prioridad, Cell Loss Priority, 1 bit): Indica el nivel de prioridad de las celda, si este bit esta activo cuando la red ATM esta congestionada la celda puede ser descartada. HEC (Corrección de Error de Cabecera, Header Error Correction, 8 bits): contiene un código de detección de error que sólo cubre la cabecera (no la información de usuario), y que permite detectar un buen número de errores múltiples y corregir errores simples.
Temas del programa no abordados: Características de ATM y Clases de servicios.
Unidad 2: Capa de interred - Direccionamiento Direccionamiento IP Protocolo IP Ver.4 El protocolo IP consiste en un protocolo no orientado a conexión usado tanto por el origen como por el destino para la comunicación de datos a través de una red de paquetes conmutados. Los datos en una red IP con conocidos como paquetes o datagramas y son enviados mediante un servicio no fiable denominado “mejor esfuerzo”, IP no provee ningún mecanismo para determinar si un paquete alcanza o no su destino y solo proporciona checksum de la cabecera IP y no de los datos (carga útil). Si se desean enviar datos en forma confiable, esto será responsabilidad de las capas superiores como TCP en la capa de transporte. Un datagrama IP consiste en una parte de encabezado y una parte de texto, el encabezado tiene una parte fija de 20 bytes y una parte opcional de longitud variable.
Versión: Es un registro de la versión del protocolo a la que pertenece el datagrama, este campo permite que puedan convivir IP ver.4 e IP ver.6 por ejemplo. IHL: Dado que la longitud del encabezado no es constante, se incluye este campo para indicar la cantidad de elementos opcionales agregados. Tipo de servicio: Distingue entre las diferentes clases de servicios y pueden variarse combinaciones de confiabilidad y velocidad. Longitud Total: Incluye a todo el datagrama (encabezado + datos), la longitud máxima es de 64 Kbytes. Identificación: Este campo es necesario para que el host destino identifique a que datagrama pertenece un fragmento llegado (todos los fragmentos de un datagrama contienen el mismo identificador).
Bit Sin Uso Bit DF: Bit de no fragmentar, es una orden para que los routers no fragmenten el datagrama. Bit MF: Bit de mas fragmentos, todos los fragmentos de un datagrama salvo el último tiene encendido este bit y permite identificar cuando se ha completado un datagrama. Desplazamiento del fragmento: Indica en que parte del datagrama actual va colocado ese fragmento. Tiempo de vida: Es un contador que sirve para limitar la vida del paquete, va de 255~0 y disminuye con cada salto, al alcanzar el valor 0 se descarta. Protocolo: Una vez que se completa un datagrama, este campo indica que hacer con él (a que protocolo de las capas superiores debe ser entregado, ejemplo TCP, UDP). Suma de comprobación: Verifica solamente el encabezado, es útil para la detección de errores. Dirección de origen: Indica la dirección lógica (IP) del host origen. Dirección de destino: Indica la dirección lógica (IP) del host destino. Opciones: Este campo se agregó para que las versiones siguientes a este protocolo agregasen información no presente en la cabecera como seguridad, indicar una ruta a seguir, indicar un router por el cual pasar, etc. (este campo debe llenarse a 32 bits). Datos: Es la carga útil, que son datos enviados por las capas superiores.
Direcciones IP Cada host y router de internet tiene una dirección de IP la cual se encuentra formada por dos números el de RED y el de HOST, la combinación es única y “dos maquinas no pueden tener el mismo IP”. Todas las direcciones IP Versión 4 son de 32 bits de longitud y se utilizan en los campos “dirección de origen” y “dirección de destino” de los paquetes IP. Es importante aclarar que una dirección de IP no se refiere a un HOST si no a una interfaz de red por lo que si un HOST se encuentra en dos redes, debe tener asignadas dos direcciones de IP.
Clases de direcciones IP Las direcciones de IP han sido divididas en varias clases:
Los números de las redes son manejados por una corporación no lucrativa llamada ICANN (Corporación de Internet para la Asignación de Nombre y Números) para evitar conflictos. Clase A B C D E
Desde 1.0.0.0 128.0.0.0 192.0.0.0 224.0.0.0 240.0.0.0
Hasta 127.255.255.255 191.255.255.255 223.255.255.255 239.255.255.255 255.255.255.255
Las direcciones clase A son las que mayor cantidad de Hosts pueden tener en una misma red, mientras que las clase C son las que mayor cantidad de redes pueden tener y las clase B son un intermedio. Las direcciones IP clase D son direcciones de multicast y no existe necesidad de asignar bits de red o de host, las direcciones clase E están reservadas para un uso futuro. Existen algunas direcciones IP con características particulares como la 127.X.X.X estas direcciones son denominadas de loopback y los paquetes enviados a estas direcciones no se colocan en el cable, si no que se procesan localmente y se tratan como paquetes de entrada. La dirección 0.0.0.0 es utilizada por las máquinas cuando arrancan o no se les ha asignado una dirección IP. Las direcciones donde la parte de Hosts es 0, se denominan direcciones de red y hacen referencia a una familia de direcciones IP. Las direcciones donde la parte de host es 1 se denominan direcciones de broadcast que se utilizan como dirección de difusión para indicar todos los hosts de una red.
Direcciones de IP Privadas Hay ciertas direcciones en cada clase de dirección IP que no están asignadas y que se denominan direcciones privadas. Las direcciones privadas pueden ser utilizadas por los hosts que usan traducción de dirección de red (NAT/PAT) para conectarse a una red pública o por los hosts que no se conectan a Internet. En una misma red no pueden existir dos direcciones iguales, pero sí se pueden repetir en dos redes privadas que no tengan conexión entre sí o que se sea a través de NAT/PAT. Las direcciones privadas son: Clase A B C
Desde 10.0.0.0 172.16.0.0 192.168.0.0
Hasta 10.255.255.255 172.31.255.255 192.168.255.255
Red 8 bits 12 bits 16 bits
Host 24 bits 20 bits 16 bits
Máscara de Subred La máscara permite distinguir los bits que identifican la red y los que identifican el host de una dirección IP. Dada la dirección de clase A 10.2.1.2 sabemos que pertenece a la red 10.0.0.0 y el host al que se refiere es el 2.1.2 dentro de la misma. La máscara se forma poniendo a 1 los bits que identifican la red y a 0 los bits que identifican el host. De esta forma una dirección de clase A tendrá como máscara 255.0.0.0, una de clase B 255.255.0.0 y una de clase C 255.255.255.0. Los dispositivos de red realizan un AND entre la dirección IP y la máscara para obtener la dirección de red a la que pertenece el host identificado por la dirección IP dada. Por ejemplo un router necesita saber cuál es la red a la que pertenece la dirección IP del datagrama destino para poder consultar la tabla de encaminamiento y poder enviar el datagrama por la interfaz de salida. Subredes El uso de subredes permite dividir a una red en varias partes para uso interno, pero actuar como una sola red ante el mundo exterior. Básicamente lo que se hace es eliminar algunos bits de host y usarlos como bit de red para crear un nuevo número de subred. Pero para que la implementación de subredes surta efecto, el router necesita conocer la máscara de subred que permita separar aquellos bits que están siendo utilizados para red de los que se utilizan para host. Las máscaras de subredes pueden definirse utilizando notación decimal (255.128.0.0) o notación alternativa (/9) la cual indica la cantidad de bits que son utilizados para red. Dentro de una subred hay dos direcciones que están reservadas y son aquella que tiene todos los bits de host en 0 (Dirección de subred) y aquella que tiene todos los bits de host en 1 (Dirección de broadcast de la subred). Fuera de la red, la subred no es visible por lo que no se necesita la autorización de ningún organismo para realizar subredes. Tabla de enrutamiento Cuando llega un paquete IP, el router debe decidir a quién enviarlo para que este llegue a su destino, lo que hace el router es buscar en su tabla de enrutamiento la dirección de red destino del paquete (previo
haber realizado una AND lógico entre la dirección del Host destino y la máscara de subred para obtener la dirección de RED destino). Si la dirección se encuentra en la tabla tendrá todos los datos necesarios para que el paquete siga su camino (Ej. Interfaz de salida, próximo salto, etc.). En caso de no tener la dirección de red en su tabla pero si tener seteado un Gateway por defecto, enviará el paquete a este Gateway para que decida qué hacer con él. CIDR (Classless InterDomain Routing) Originalmente, direcciones IP se separaban en dos partes: la dirección de red y la dirección de host. Esta división se usaba para controlar la forma en que se encaminaba el tráfico entre redes IP. Históricamente, el espacio de direcciones IP se dividía en cinco clases principales de redes (A, B, C, D y E), donde cada clase tenía asignado un tamaño fijo de dirección de red y al ver una dirección de IP podíamos decir a que clase pertenecía por su rango. A medida que la red TCP/IP experimental se expandió en los años 80 para formar Internet, el número de ordenadores con dirección IP pública creció exponencialmente, forzando a los enrutadores a incrementar la memoria necesaria para almacenar las tablas de rutas, y los recursos necesarios para mantener y actualizar esas tablas. La necesidad de un esquema de direcciones más flexible se hacía cada vez más patente. Esta situación condujo al desarrollo sucesivo de las subredes y CIDR. Dado que se ignora la antigua distinción entre clases de direcciones, el nuevo sistema se denominó encaminamiento sin clases (classless routing). Esta denominación conllevó que el sistema original fuera denominado encaminamiento con clases (classful routing). VLSM (Variable Lenght Subnet Mask - Máscara de Subred de Longitud Variable) parte del mismo concepto que CIDR. El término VLSM se usa generalmente cuando se habla de redes privadas, mientras que CIDR se usa cuando se habla de Internet (red pública). CIDR usa la técnica de Máscara de Subred de Longitud Variable, para hacer posible la asignación de prefijos de longitud arbitraria, esto permite un uso más eficiente del cada vez más escaso espacio de direcciones IPv4 y la agregación de múltiples prefijos contiguos en superredes, reduciendo el número de entradas en las tablas de ruta globales. Bloques CIDR CIDR facilita el encaminamiento al permitir agrupar bloques de direcciones en una sola entrada de tabla de rutas. Estos grupos, llamados comúnmente Bloques CIDR, comparten una misma secuencia inicial de bits en la representación binaria de sus direcciones IP. Los bloques CIDR IPv4 se identifican usando una sintaxis similar a la de las direcciones IPv4: cuatro números decimales separados por puntos, seguidos de una barra de división y un número de 0 a 32; A.B.C.D/N.
Los primeros cuatro números decimales se interpretan como una dirección IPv4, y el número tras la barra es la longitud de prefijo, contando desde la izquierda, y representa el número de bits comunes a todas las direcciones incluidas en el bloque CIDR. Decimos que una dirección IP está incluida en un bloque CIDR, y que encaja con el prefijo CIDR, si los N bits iniciales de la dirección y el prefijo son iguales. Nótese que los prefijos CIDR cortos (números cercanos a 0) permiten encajar un mayor número de direcciones IP, mientras que prefijos CIDR largos (números cercanos a 32) permiten encajar menos direcciones IP. Una dirección IP puede encajar en varios prefijos CIDR de longitudes diferentes, es por ello que en las tablas de enrutamiento cuando se compara la dirección de IP destino del paquete con las entradas en la tabla, puede que existan muchas coincidencias con la misma dirección IP de red pero con distintas máscaras, por lo que se utiliza aquella que tenga la máscara más grande. CIDR también se usa con direcciones IPv6, en las que la longitud del prefijo varía desde 0 a 128, debido a la mayor longitud de bit en las direcciones, con respecto a IPv4. En el caso de IPv6 se usa una sintaxis similar a la comentada: el prefijo se escribe como una dirección IPv6, seguida de una barra y el número de bits significativos. CIDR y Máscaras de Subred CIDR usa máscaras de subred de longitud variable (VLSM) para asignar direcciones IP a subredes de acuerdo a las necesidades de cada subred. De esta forma, la división red/host puede ocurrir en cualquier bit de los 32 que componen la dirección IP. Este proceso puede ser recursivo, dividiendo una parte del espacio de direcciones en porciones cada vez menores, usando máscaras que cubren un mayor número de bits. Las direcciones de red CIDR/VLSM se usan a lo largo y ancho de la Internet pública, y en muchas grandes redes privadas. Agregación de Prefijos Otro beneficio de CIDR es la posibilidad de agregar prefijos de encaminamiento, un proceso conocido como "supernetting". Por ejemplo, dieciséis redes /24 contíguas pueden ser agregadas y publicadas en los enrutadores de Internet como una sola ruta /20 (si los primeros 20 bits de sus respectivas redes coinciden). Dos redes /20 contiguas pueden ser agregadas en una /19, etc. Esto permite una reducción significativa en el número de rutas que los enrutadores en Internet tienen que conocer (y una reducción de memoria, recursos, etc.) y previene una explosión de tablas de encaminamiento, que podría sobrecargar a los routers e impedir la expansión de Internet en el futuro.
IP Versión 6 IPv6 es el protocolo de la próxima generación de Internet, a la que originalmente se denominó IPng (Internet Protocol Next Generation). IPv6 surge a raíz de la necesidad de implementar una solución efectiva y determinante a los problemas que se plantean en la actualidad o a futuro evidente debido a las limitaciones de IPv4. Algunas de las limitaciones pueden ser, la inminente saturación del espacio de direcciones, se requiere soportar aplicaciones de video conferencia, multimedia en tiempo real, se requieren mecanismos de seguridad en la capa de red. ¿Qué problemas trae esto? Escasez de direcciones IP: Menos direcciones disponibles. Limita el crecimiento de internet. El ruteo es ineficiente. Provoca que los usuarios utilicen NAT/PAT Soporte Inadecuado para las nuevas aplicaciones Qué buscamos: Menores tiempos de respuesta. Mayor disponibilidad de ancho de banda. Mayor seguridad La seguridad es opcional IPv4 no fue diseñado para ser seguro ya que originalmente fue diseñado para una red militar aislada. Se han definido varias herramientas de seguridad como ser: SSL, SHTTP, IPsec V4, etc., y ninguna es un estándar. ¿Cuáles son las mayores ventajas de IPv6? Escalabilidad: IPv6 tiene direcciones de 128 bits frente a las direcciones de 32 bits de IPv4. Lo cual implica un gran aumento en el número de IPs disponibles. Seguridad: IPv6 incluye seguridad en sus especificaciones como es la encriptación de la información y la autentificación del remitente de dicha información. Aplicaciones en tiempo real: Para dar mejor soporte a tráfico en tiempo real (i.e. videoconferencia), IPv6 incluye etiquetado de flujos en sus especificaciones. Con este mecanismo los routers pueden reconocer a qué flujo extremo a extremo pertenecen los paquetes que se transmiten. Extensibilidad: IPv6 ha sido diseñado para ser extensible y ofrece soporte optimizado para nuevas opciones y extensiones. Movilidad: IPv6 incluye mecanismos de movilidad más eficientes y robustos. Especificaciones más claras y optimizadas: IPv6 seguirá las buenas prácticas de IPv4 y elimina las características no utilizadas u obsoletas de IPv4, con lo que se consigue una optimización del protocolo de Internet. La idea es quedarse con lo bueno y eliminar lo malo del protocolo actual.
Direccionamiento y encaminado: IPv6 mejora la jerarquía de direccionamiento y encaminamiento. Extensibilidad: IPv6 ha sido diseñado para ser extensible y ofrece soporte optimizado para nuevas opciones y extensiones. CARACTERISTICAS DE DIRECCIONES IPv6 Las direcciones IPv6 se asignan a interfaces lógicas. Una interfaz puede tener muchas direcciones. Las direcciones tienen ámbitos de acción: o Local de Enlace. o Local de Sitio. o Global.
Dirección IPv6 vs IPv4
Datagrama IP v6
Datagrama respecto a IP v4
Cambios de los campos en IPv6: Longitud Total --> Longitud de carga útil (payload length). Es la longitud de los datos y puede ser de hasta 65536 bytes. (16 bits) Protocolo --> Siguiente cabecera (mext header). Esto se debe a que en lugar de usar cabeceras de longitud variable, usa distintas cabeceras encadenadas. Por ello desaparece el campo “Opciones” Tiempo de vida (TTL) --> Límite de Saltos (Hop limit). Tiene una longitud de 8 bits (1 byte) Nuevos campos en IPv6: Clase de Tráfico (Traffic Class): también denominado Prioridad (Priority), o simplemente Case (Class). Sería más o menos equivalente al “TOS” de IPv4. Tiene una longitud de 8 bits (1 byte) Etiqueta de Flujo (Flow Label): Para permitir tráfico con requisitos de tiempo real o sensible al retardo. Tiene una longitud de 20 bits
o o o
La longitud de esta cabecera es de 40 bytes, el doble que en IPv4, pero tiene muchas ventajas al eliminar campos redundantes y ser de longitud fija, lo que facilita el procesado en los routers. Otra ventaja es que los campos están alineados a 64 bits, lo que permite que las nuevas generaciones de procesadores de 64 bits sean más eficaces al procesar este encabezado El valor del campo “siguiente cabecera”, indica cual es la siguiente cabecera. Las sucesivas cabeceras, no son examinadas en cada nodo de la ruta, sino sólo en el o los nodo/s destino final. Hay una excepción a esta regla: cuando el valor de este campo es cero, indica opción de examinado y proceso “salto a salto” (hotby-hop).
A continuación se dan algunos ejemplos de uso de las “cabeceras de extensión”, definidas en el campo “siguiente cabecera”. Este mecanismo permite encadenar una cabecera con otra.
Definición de Direcciones en IPv6 Unicast: Identificador para una única interface. Es equivalente a las direcciones IPv4 actuales. Anycast: Identificador para un conjunto de interfaces. Un paquete enviado a una dirección anycast, es entregado a cualquiera de las interfaces identificadas con esa dirección (la más próxima de acuerdo al protocolo de enrutamiento). Nos permite crear ámbitos de redundancia de modo que varias máquinas puedan ocuparse del mismo tráfico según una secuencia determinada, si la primera cae. Multicast: Identificador para un conjunto de interfaces. Un paquete enviado a una dirección multicast, es entregado a todas las interfaces identificadas con esa dirección (la más próxima de acuerdo al protocolo de enrutamiento). Diferencias con IPv4 No hay direcciones broadcast, es sustituida por multicast. Las direcciones IPv6 son asignadas a interfaces, no a nodos. Todas las interfaces han de tener, al menos, una dirección unicast (enlace local) Una única interface puede tener varias direcciones IPv6 de cualquier tipo. Una misma dirección puede ser asignada a múltiples interfaces físicas, desde el punto de vista de Internet, como una única, lo que permite balanceo de cargas. Al igual que en IPv4 se asigna un prefijo de subred con un enlace, y se pueden asociar múltiples prefijos de subred a un mismo enlace. Ejemplo de dirección IP versión 6: 2001:0ba0:01e0:d001:0000:0000:d0f0:0010 La dirección en total está formada por 128 bits, frente a los 32 de las actuales (versión 4). Se representa en 8 grupos de 16 bits cada uno, separados por el carácter ":“. Cada grupo de 16 bits se representa a su vez mediante 4 cifras hexadecimales, es decir, que cada cifra va del 0 al 15 (0,1,2, ... a,b,c,d,e,f siendo a=10, b=11, etc hasta f=15). Existe un formato abreviado para designar direcciones IP versión 6 cuando las terminaciones son todas 0 (cero) 2001:0ba0:: Es la forma abreviada de la siguiente dirección: 2001:0ba0:0000:0000:0000:0000:0000:0000
1081:0:0:0:9:800:56AB:3510 (una dirección unicast) FF01:0:0:0:0:0:0:512 (una dirección multicast) 0:0:0:0:0:0:0:1 (la dirección de loopback) 0:0:0:0:0:0:0:0 (una dirección no especificada) Pueden representarse como: 1081::9:800:56AB:3510 (una dirección unicast) FF01:0::512 (una dirección multicast) ::1 (la dirección de loopback) :: (una dirección no especificada) Dado que existen largas cadenas de bit 0 (cero) se permite la escritura mediante abreviación con “::”, que representa múltiples grupos consecutivos de 16 bits 0 (cero). Este símbolo solo puede aparecer una vez en la dirección. Igualmente, se puede poner un solo 0, quitar los ceros a la izquierda y se pueden abreviar 4 ceros en medio de la dirección (una sola vez en cada dirección). 2001:ba0:0:0:0:0::1234 Es la forma abreviada de la dirección: 2001:0ba0:0000:0000:0000:0000:0000:1234 0:0:0:0:0:0:13.10.68.3 0:0:0:0:0:FFFF:129.144.52.38 Pueden representarse como: :: 13.10.68.3 ::FFFF: 129.144.52.38
Tráfico IPv6 sobre redes IPv4 Para ello se utiliza una técnica que se denomina túnel. Consiste en introducir en un extremo el tráfico IPv6 como si fueran datos del protocolo IPv4. De esta manera, el tráfico IPv6 viaja "encapsulado" dentro del tráfico IPv4 y en el otro extremo, este tráfico es separado e interpretado como tráfico IPv6. El mecanismo consiste en crear los paquetes IPv6 de forma normal e introducirlos en un paquete IPv4. El proceso inverso se realiza en la maquina destino, que recibe un paquete IPv6. Una forma alternativa muy conveniente, cuando nos hallemos en un entorno mixto de IPv4 e IPv6, es: X:X:X:X:X:X:D.D.D.D Donde “X” representa valores Hexadecimales de 16 bits /los 6 de mayor peso) y “D” representa valores decimales de las 4 porciones de 8 bits de menor peso (representación estándar de IPv4).
¿Por qué es necesario migrar al nuevo protocolo IP (IPv6)?
Nuevos usuarios en países tan poblados como China o la India, nuevas tecnologías con dispositivos conectados de forma permanente (xDSL, cable, PLC, PDAs, teléfonos móviles, UMTS, etc.) están provocando la rápida desaparición, de forma práctica, de las direcciones IP disponibles en la versión 4. Esto y la necesidad de mayores tasas de transferencia a nivel global hacen que la llegada de IPv6 sea consecuencia directa de la evolución de las nuevas tecnologías. Abriendo un camino de posibilidades totalmente nuevas.
Protocolos de Control en Internet Además de los protocolos como IP utilizados para la transferencia de datos en internet, existen una serie de protocolos de control que se usan en la capa de redes como ICMP, ARP, RARP, BOOTP y DHCP.
ICMP (Internet Control Message Protocol) Cuando ocurre algo inesperado, el Protocolo de Mensajes de Control en Internet informa de este evento. Hay definidos alrededor de una docena de tipos de mensajes ICMP y cada mensaje va encapsulado dentro de un paquete IP. Los más importantes se listan a continuación: Tipo de Mensaje Destination Unreachable Time Exceeded Parameter Problem Source Quench Redirect Echo
Descripción El paquete no se pudo entregar Campo tiempo de vida = 0 Campo de encabezado no válido (al comparar el CHECKSUM) Paquete regulador (se usaba para controla congestión) Cuando un paquete está mal enrutado se redirecciona y se avisa Pregunta a una máquina si está viva y si es alcanzable
Echo Reply Timestamp Request Timestamp Reply
Sí, estoy viva Idem solicitud de eco pero con marca de tiempo Idem respuesta de eco pero con marca de tiempo
En cuanto a su funcionamiento supongamos el funcionamiento para el mensaje “Time Exceeded”, cada router que reenvía un datagrama IP tiene que disminuir el campo de tiempo de vida (TTL) de la cabecera IP en una unidad; si el TTL llega a 0, un mensaje ICMP "Tiempo de Vida se ha excedido en transmitirse" es enviado a la fuente del datagrama. Cada mensaje ICMP es encapsulado directamente en un solo datagrama IP, y por tanto no garantiza la entrega del ICMP. Aunque los mensajes ICMP son contenidos dentro de datagramas estándar IP, los mensajes ICMP se procesan como un caso especial del procesamiento normal de IP, algo así como el procesamiento de un sub-protocolo de IP. En muchos casos es necesario inspeccionar el contenido del mensaje ICMP y entregar el mensaje apropiado de error a la aplicación que generó el paquete IP original, aquel que solicitó el envío del mensaje ICMP.
La utilidad del protocolo ICMP es controlar si un paquete no puede alcanzar su destino, si su vida ha expirado, etc. Es decir, se usa para manejar mensajes de error y de control necesarios para los sistemas de la red, informando con ellos a la fuente original para que evite o corrija el problema detectado. Muchas de las utilidades de red comunes están basadas en los mensajes ICMP. El comando traceroute está implementado transmitiendo datagramas UDP con campos especiales TTL IP en la cabecera, y buscando los mensajes de "Tiempo de Vida en tránsito" y "Destino inalcanzable" generados como respuesta. La herramienta ping está implementada utilizando los mensajes "Echo request" y "Echo reply" de ICMP. Internet Group Management Protocol (IGMP)
Nota: No sale en el programa pero los profesores lo dieron en clase El protocolo de red IGMP se utiliza para intercambiar información acerca del estado de pertenencia entre enrutadores IP que admiten la multidifusión y miembros de grupos de multidifusión. Los hosts miembros individuales informan acerca de la pertenencia de hosts al grupo de multidifusión y los enrutadores de multidifusión sondean periódicamente el estado de la pertenencia. Todos los mensajes IGMP se transmiten en datagramas IP y tienen el formato mostrado en la figura adjunta. Los campos son los siguientes:
Tipos:
Consulta de asociación: enviada por un encaminador de multidifusión. Hay dos subtipos: una consulta general, utilizada para aprender qué grupos tienen miembros en una red conectada; y una consulta específica de grupo, utilizada para aprender si un grupo particular tiene algún miembro en una red conectada. Informes de asociación: enviado por un host para declarar sus miebros asociados a un grupo. Grupo de abandono: enviado por un hostpara declarar que abandona el grupo. Tiempo máximo de respuesta: Solamente significativo en un mensaje de consulta de asociación, y especifica el máximo tiempo permitido antes de enviar un infome de respuesta en unidades de 1/10 segundos.
Suma de comprobación: Un código de detección de errores, calculado como el complemento a 1 de 16 bits más cuatro palabras de 16 bits del mensaje. Para propósitos de computación, el campo "Suma de Comprobación" se inicia a valor 0. Dirección de grupo: Cero en un mensaje de respuesta, y una dirección de grupo multidifusión IP válida en un informe de asociación o en un mensaje de abandono. Resv: Este campo está a 0 en la transmisión e ignorado en la recepción. S: Suspender procesamiento en el lado del router QSV: Robustez de la variable del consultor QQIC: Código del intervalo de consulta del consultor ARP (Adress Resolution Protocol) El Protocolo de resolución de direcciones es un protocolo de nivel de red responsable de encontrar la dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de difusión de la red (broadcast (MAC = xx xx xx xx xx xx)) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto sólo funciona si todas las máquinas lo soportan. En Ethernet, la capa de enlace trabaja con direcciones físicas. El protocolo ARP se encarga de traducir las direcciones IP a direcciones MAC (direcciones físicas).Para realizar ésta conversión, el nivel de enlace utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección física MAC.
Tablas ARP La filosofía es la misma que tendríamos para localizar al señor "X" entre 150 personas: preguntar por su nombre a todo el mundo, y el señor "X" nos responderá. Así, cuando a "A" le llegue un mensaje con dirección origen IP y no tenga esa dirección en su tabla ARP, enviará su trama ARP a la dirección broadcast (física), con la IP de la que quiere conocer su dirección física. Entonces, el equipo cuya dirección IP coincida con la preguntada, responderá a "A" enviándole su dirección física. En este momento "A" ya puede agregar la entrada de esa IP a su tabla ARP. Las entradas de la tabla se borran cada cierto tiempo, ya que las direcciones físicas de la red pueden cambiar (Ej: si se estropea una tarjeta de red y hay que sustituirla) Funcionamiento I Si A quiere enviar una trama a la dirección IP de B (misma red), mirará su tabla ARP para poner en la trama la dirección destino física correspondiente a la IP de B. De no encontrarse la dirección de B en la tabla ARP de A, la misma enviará un paquete ARP Request por broadcast y solo responderá mediante un paquete ARP Reply (con su dirección física) aquel nodo cuyo IP sea el IP de la dirección lógica de destino del paquete ARP Request. Funcionamiento II (Proxy ARP) Si A quiere enviar un mensaje a C (un nodo que no esté en la misma red), el mensaje deberá salir de la red. Así, A envía la trama a la dirección física de salida del router. Esta dirección física la obtendrá a partir de la IP del router, utilizando la tabla ARP. Si esta entrada no está en la tabla, mandará un mensaje ARP a esa IP (llegará a todos), para que le conteste indicándole su dirección física. Una vez en el router, éste consultará su tabla de encaminamiento, obteniendo el próximo nodo (salto) para llegar al destino, y saca el mensaje por el interfaz correspondiente. Esto se repite por todos los nodos, hasta llegar al último router, que es el que comparte el medio con el host destino. Aquí el proceso cambia: el interfaz del router tendrá que averiguar la dirección física de la IP destino que le ha llegado. Lo hace mirando su tabla ARP, y en caso de no existir la entrada correspondiente a la IP, la obtiene realizando una multidifusión. Nota: El paquete ARP tiene como dirección física de destino todas ‘F’ (todos los bits encendidos). Paquete ARP: Tipo de dirección física Long. Dir. Física
Tipo de dirección lógica Long. Dir. Lógica
Operación
Dirección Física del emisor Dir. Física del emisor (48 bits)
Dir. Lógica del emisor
Dir. Lógica del emisor (32 bits)
Dirección Física del receptor
Dirección Física del receptor (48 bits) Dirección Lógica del receptor (32 bits)
El tipo de dirección física y lógica está relacionado con si es Ethernet, token ring, ip, etc. La longitud de dirección física y lógica está relacionada con el campo anterior. Operación, es un campo que indica si es una pregunta o una respuesta. El comando ARP – a muestra la tabla ARP (con las direcciones IP y MAC conocidas). Cada vez que se conoce una dirección MAC a través del protocolo ARP, se guarda un registro en esta tabla salvando esta relación. La próxima vez que quieran comunicarse estos nodos, cada uno buscará en su tabla ARP (los registros de la tabla son borrados cada 4 seg. Si no enviaron paquetes entre estos dos puntos, la próxima vez tendrán que buscar la dirección MAC a través del protocolo ARP).
RARP (Reverse ARP) Es similar al protocolo ARP solo que el paquete enviado por broadcast estará preguntando por una IP para una determinada dirección MAC. Esto puede ser utilizado para obtener direcciones de IP dinámicas. También en caso de tener un terminal bobo el cual no tenga un SO por ejemplo, no podría tener una dirección de IP, pero si tener una dirección MAC (ya que es propia de la placa de red), entonces mediante este protocolo podría comunicarse con un servidor RARP y obtener una imagen del SO y una dirección de IP. RARP utiliza broadcast para difundir los paquetes de peticiones, por lo que su gran desventaja es que se necesita un servidor RARP en cada red, dado que los router no dejan pasar los broadcast. BOOTP (Bootstrap Protocol) BOOTP son las siglas de Bootstrap Protocol. Es un protocolo de red UDP utilizado por los clientes de red para obtener su dirección IP automáticamente. Normalmente se realiza en el proceso de arranque de los ordenadores o del sistema operativo. Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema operativo avanzado. Históricamente ha sido utilizado por las estaciones de trabajo sin disco basadas en UNIX (las cuales también obtenían la localización de su imagen de arranque mediante este protocolo) y también por empresas para introducir una instalación pre-configurada de Windows en PC recién comprados (típicamente en un entorno de red Windows NT). DHCP es un protocolo basado en BOOTP, más avanzado, pero más difícil de implementar. Muchos servidores DHCP también ofrecen soporte BOOTP.
BOOTP es la solución a RARP dado que no es necesario un servidor en cada red, como desventaja las tablas con las direcciones son cargadas manualmente en los servidores BOOTP a los que los nodos realizarán las peticiones. DHCP (Dynamic Host Configuration Protocol) El Protocolo Configuración Dinámica de Servidor es un protocolo de red que permite a los nodos de una red IP obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después. Este protocolo permite provee los parámetros de configuración a las computadoras conectadas a la red informática con la pila de protocolos TCP/IP (Máscara de red, puerta de enlace y otros) y también incluyen mecanismos de asignación de direcciones IP. Asignación de direcciones IP Sin DHCP, cada dirección IP debe configurarse manualmente en cada computadora y, si la computadora se mueve a otra subred, se debe configurar otra dirección IP diferente. El DHCP le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar una nueva IP si fuera el caso en la computadora es conectada en un lugar diferente de la red. El protocolo DHCP incluye tres métodos de asignación de direcciones IP:
Asignación manual o estática: Asigna una dirección IP a una máquina determinada. Se suele utilizar cuando se quiere controlar la asignación de dirección IP a cada cliente, y evitar, también, que se conecten clientes no identificados.
Asignación automática: Asigna una dirección IP de forma permanente a una máquina clienta la primera vez que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se suele utilizar cuando el número de clientes no varía demasiado.
Asignación dinámica: el único método que permite la reutilización dinámica de las direcciones IP. El administrador de la red determina un rango de direcciones IP y cada computadora conectada a la red está configurada para solicitar su dirección IP al servidor cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa un concepto muy simple en un intervalo de tiempo controlable. Esto facilita la instalación de nuevas máquinas clientes a la red.
Funcionamiento Primero, se necesita un servidor DHCP que distribuya las direcciones IP. Este equipo será la base para todas las solicitudes DHCP por lo cual debe tener una dirección IP fija. Por lo tanto, en una red puede tener sólo un equipo con una dirección IP fija: el servidor DHCP.
Cuando un equipo se inicia no tiene información sobre su configuración de red y no hay nada especial que el usuario deba hacer para obtener una dirección IP. Para esto, la técnica que se usa es la transmisión: para encontrar y comunicarse con un servidor DHCP, el equipo simplemente enviará un paquete especial de transmisión (Las direcciones IP origen y destino de dicho paquete serán 0.0.0.0 y 255.255.255.255 (broadcast) respectivamente, con información adicional como el tipo de solicitud, los puertos de conexión, etc.) a través de la red local. Cuando el DHCP recibe el paquete de transmisión, contestará con otro paquete de transmisión (no olvide que el cliente no tiene una dirección IP y, por lo tanto, no es posible conectar directamente con él) que contiene toda la información solicitada por el cliente. Se podría suponer que un único paquete es suficiente para que el protocolo funcione. En realidad, hay varios tipos de paquetes DHCP que pueden emitirse tanto desde el cliente hacia el servidor o servidores, como desde los servidores hacia un cliente:
DHCPDISCOVER (para ubicar servidores DHCP disponibles) DHCPOFFER (respuesta del servidor a un paquete DHCPDISCOVER, que contiene los parámetros iniciales) DHCPREQUEST (solicitudes varias del cliente, por ejemplo, para extender su concesión) DHCPACK (respuesta del servidor que contiene los parámetros y la dirección IP del cliente) DHCPNAK (respuesta del servidor para indicarle al cliente que su concesión ha vencido o si el cliente anuncia una configuración de red errónea) DHCPDECLINE (el cliente le anuncia al servidor que la dirección ya está en uso) DHCPRELEASE (el cliente libera su dirección IP) DHCPINFORM (el cliente solicita parámetros locales, ya tiene su dirección IP)
El primer paquete emitido por el cliente es un paquete del tipo DHCPDISCOVER. El servidor responde con un paquete DHCPOFFER, fundamentalmente para enviarle una dirección IP al cliente. El cliente establece su configuración y luego realiza un DHCPREQUEST para validar su dirección IP (una solicitud de transmisión ya que DHCPOFFER no contiene la dirección IP) El servidor simplemente responde con un DHCPACK con la dirección IP para confirmar la asignación. Normalmente, esto es suficiente para que el cliente obtenga una configuración de red efectiva, pero puede tardar más o menos en función de que el cliente acepte o no la dirección IP. DHCP soluciona la gran desventaja de BOOTP y es que no es necesario tener un servidor en cada red, para ello se debe tener en aquellas redes que no poseen un servidor, un “agente de retransmisión”, este será el encargado de reenviar los paquetes DHCP Discover que existan en su red al servidor DHCP (para ello necesita tener configurado la IP de un servidor DHCP). La desventaja de la asignación dinámica de IPs es que si un HOST no hace más uso de una IP y no la libera, esta dirección queda perdida. Con el tiempo podrían perderse muchas direcciones, para evitar esto se utiliza una técnica llamada “arrendamiento” que consiste en colocar contadores a las IP asignadas, si un host no solicita una “renovación” de la IP antes que el contador llegue a 0, su IP será liberada.
Traducción de Direcciones de Red (NAT) Las direcciones IP son escasas, un ISP podría tener una dirección clase B con máscara /16 lo cual implicaría que podría tener (2^16)-2 = 65.534 hosts, en caso de tener más clientes que esos estaría en problemas. Una solución sería que mediante DHCP por ejemplo, los hosts tomaran las IP de forma dinámica, lo cual permitiría 65.534 hosts activos, aunque este es un número que puede ser tranquilamente sobrepasado por lo que no es la mejor solución. La solución a largo plazo sería implementar IPv6 que al trabajar con 128 bits en sus direcciones aumenta enormemente la cantidad de direcciones evitando su agotamiento. Otra solución a este problema del agotamiento de las IP es el uso de NAT, la idea básica es asignar una sola dirección IP a cada compañía (o un número pequeño) para el tráfico en internet. Dentro de la compañía cada computadora tiene una dirección IP única (privada) que se utiliza para enrutar el tráfico interno, cuando un paquete sale de la compañía y va al ISP se presenta una traducción de dirección de esta manera simultáneamente sólo pueden salir a internet con una dirección IP tantos equipos como direcciones públicas se hayan contratado.
Funcionamiento El protocolo TCP/IP tiene la capacidad de generar varias conexiones simultáneas con un dispositivo remoto. Para realizar esto, dentro de la cabecera de un paquete IP, existen campos en los que se indica la dirección origen y destino. Esta combinación de números define una única conexión. Una pasarela NAT cambia la dirección origen en cada paquete de salida y, dependiendo del método, también el puerto origen para que sea único (PAT). Estas traducciones de dirección se almacenan en una tabla, para recordar qué dirección y puerto le corresponde a cada dispositivo cliente y así saber donde deben regresar los paquetes de respuesta. Si un paquete que intenta ingresar a la red interna no existe en la tabla de traducciones, entonces es descartado. Debido a este comportamiento, se puede definir en la tabla que en un determinado puerto y dirección se pueda acceder a un determinado dispositivo, como por ejemplo un servidor web, lo que se denomina NAT inverso o DNAT (Destination NAT). NAT tiene muchas formas de funcionamiento, entre las que destacan: Estático (DNAT) Es un tipo de NAT en el que una dirección IP pública se traduce a una dirección IP privada, y donde esa dirección pública es siempre la misma. Esto le permite a un host, como un servidor Web, el tener una dirección IP de red privada pero aún así ser visible en Internet. Dinámico Es un tipo de NAT en la que una dirección IP privada se mapea a una IP pública basándose en una tabla de direcciones de IP registradas (públicas). Normalmente, el router NAT en una red mantendrá una tabla de direcciones IP registradas, y cuando una IP privada requiera acceso a Internet, el router elegirá una dirección IP de la tabla que no esté siendo usada por otra IP privada. Esto permite aumentar la seguridad de una red dado que enmascara la configuración interna de una red privada, lo que dificulta a
los hosts externos de la red el poder ingresar a ésta. Para este método se requiere que todos los hosts de la red privada que deseen conectarse a la red pública posean al menos una IP pública asociadas. Sobrecarga (PAT) La forma más utilizada de NAT, proviene del NAT dinámico, ya que toma múltiples direcciones IP privadas (normalmente entregadas mediante DHCP) y las traduce a una única dirección IP pública utilizando diferentes puertos. Esto se conoce también como PAT (Port Address Translation - Traducción de Direcciones por Puerto), NAT de única dirección o NAT multiplexado a nivel de puerto. El uso de PAT permite que con solo una dirección pública puedan hacerse aprox. 65 mil traducciones. Solapamiento Cuando las direcciones IP utilizadas en la red privada son direcciones IP públicas en uso en otra red, el ruteador posee una tabla de traducciones en donde se especifica el reemplazo de éstas con una única dirección IP pública. Así se evitan los conflictos de direcciones entre las distintas redes.
Unidad 3: Capa de interred – Encaminamiento y Congestión. Encaminamiento
Encaminamiento (o enrutamiento, ruteo) es la función de buscar un camino entre todos los posibles en una red de paquetes cuyas topologías poseen una gran conectividad. Dado que se trata de encontrar la mejor ruta posible, lo primero será definir qué se entiende por mejor ruta y en consecuencia cuál es la métrica que se debe utilizar para medirla. Algoritmo de enrutamiento Es la porción de software de la capa de red encargada de decidir la línea de salida por la que se transmitirá un paquete de entrada. Si la subred usa datagramas de manera interna, esta decisión debe tomarse cada vez que llega un paquete de datos, dado que la mejor ruta podría haber cambiado desde la última vez (dependiendo de la métrica a usar). Si la subred utiliza circuitos virtuales internamente, las decisiones de enrutamiento se toman sólo al establecerse un circuito virtual nuevo (dado que en lo sucesivo los paquetes seguirán la ruta previamente establecida), a esto se lo denomina enrutamiento de sesión. Un router realiza dos procesos internos:
Uno de ellos maneja cada paquete conforme llega, buscando en las tablas de enrutamiento la línea de salida por la cual lo enviará (Este proceso se conoce como reenvío). El otro proceso es el responsable de llenar y actualizar las tablas de enrutamiento con las cuales tomará las decisiones a la hora de realizar un reenvío (Aquí se utiliza el algoritmo de enrutamiento).
Métrica de la red Puede ser por ejemplo el número de saltos necesarios para ir de un nodo a otro. Aunque ésta no se trata de una métrica óptima ya que supone “1” para todos los enlaces, es sencilla y suele ofrecer buenos resultados. Otro tipo es la medición del retardo de tránsito entre nodos vecinos, en la que la métrica se expresa en unidades de tiempo y sus valores no son constantes sino que dependen del tráfico de la red. Mejor Ruta Entendemos por mejor ruta aquella que cumple las siguientes condiciones:
Presenta el menor retardo medio de tránsito. Consigue mantener acotado el retardo entre pares de nodos de la red. Consigue ofrecer altas cadencias efectivas independientemente del retardo medio de tránsito Permite ofrecer el menor costo.
El criterio más sencillo es elegir el camino más corto, es decir la ruta que pasa por el menor número de nodos. Una generalización de este criterio es el de “coste mínimo”. En general, el concepto de distancia o coste de un canal es una medida de la calidad del enlace basado en la métrica que se haya definido. En la práctica se utilizan varias métricas simultáneamente. Tipos de algoritmos de enrutamiento Podemos clasificar a los algoritmos de enrutamiento en “adaptativos” (dinámicos) y “no adaptativos” (estáticos). Un algoritmo no adaptativo o estático, no basa sus decisiones de enrutamiento en mediciones ni estimaciones de tráfico o topología, las decisiones de que rutas se usaran son tomadas por adelantado, fuera de línea y se cargan cuando inicia el router. Por otro lado los algoritmos adaptativos o dinámicos cambian sus decisiones de enrutamiento para reflejar los cambios de topología y de tráfico. Los protocolos de enrutamiento pueden ser clasificados de acuerdo al siguiente cuadro: Clasificación IGP (Interior Gateway Protocol) – Intercambiar rutas dentro de un sistema autónomo.
EGP (Exterior Gateway Protocol) – Intercambian rutas entre diferentes sistemas autónomos.
Protocolo de enrutamiento Vector Distancia o RIP Estado de enlace o OSPF Híbridos o IGRP (Interior Gateway Routing Protocol) o EIGRP (Enhanced Interior Gateway Routing Protocol) BGP
Enrutamiento por la ruta más corta La idea es armar un grafo de la subred, en el que cada nodo representa un enrutador y cada arco del grafo una línea de comunicación. Para elegir una ruta entre un par dado de enrutadores, el algoritmo simplemente encuentra en el grafo la ruta más corta entre ellos. Una métrica es la cantidad de saltos, sin embargo existen muchas otras métricas como el retardo entre cada enlace al enviar un paquete de prueba cada una hora, con lo que la métrica sería la velocidad y la ruta más corta sería la más rápida. Inundación Otro algoritmo estático es la inundación, en la que cada paquete de entrada se envía por cada una de las líneas de salida, excepto por aquella en la que llego. La inundación evidentemente genera grandes cantidades de paquetes duplicados de hecho la cantidad es infinita a menos que se tomen medidas (como colocar un contador en el paquete que se disminuya en cada salto y al llegar a 0 se descarte, o llevar un registro de los paquetes enviados para evitar enviarlos por segunda vez, etc.). Una variación de la inundación es la inundación selectiva, en la que los enrutadores no envían cada paquete de entrada por todas las líneas, si no sólo por aquellas que van aproximadamente en la dirección correcta. La inundación no es un proceso muy utilizado y tiene aplicaciones en el campo militar (donde un conjunto
de routers podrían romperse en cualquier momento) y en bases de datos distribuidas donde deben generarse actualizaciones concurrentes.
Enrutamiento por vector distancia Los algoritmos de enrutamiento por vector distancia operan haciendo que cada enrutador mantenga una tabla con las mejores distancias conocidas a cada destino, y la línea que se puede usar para llegar ahí. Estas tablas se actualizan intercambiando información con los vecinos. Este algoritmo dinámico fue utilizado en ARPANET y en internet con el nombre de RIP (Routing Information Protocol). Cada router mantiene una tabla de enrutamiento indizada por, y conteniendo registro de, cada router de la subred. Esta entrada comprende dos partes, la línea preferida de salida hacia ese destino y una estimación del tiempo o distancia a ese destino. Supongamos que el retardo se utiliza como métrica, un router envía a todos sus vecinos un paquete ECO y mantiene una tabla con los resultados de las demoras en recibir la respuesta de sus vecinos. A su vez recibe una lista similar de cada vecino, con lo que si el router A quiere llegar a C y tiene que pasar por B, el router A puede estimar la demora en llegar a C con solo sumar las demoras A->B y B->C. Los paquetes de ECO son enviados cada una cierta cantidad de mseg para mantener actualizadas las tablas. Problemas de vector distancia
Cuenta hasta infinito: La cuenta infinito es un problema, que ocurre en los algoritmos de vector distancia, imaginemos 3 routes A-B-C. A a un salto de B B a un salto de C C a dos saltos de A (con B en el medio) Se cae A, y entonces B le dice a C que A se cayó, pero C le responde a B diciéndole que él conoce una ruta a A que está a 2 saltos de él (sin saber que B está contenido en esa ruta), entonces B dice “si C esta a 2 saltos de A y yo a 1 salto de C, entonces yo estoy a 3 de A” y entonces C dice lo mismo y queda a 4 saltos de A y así se produce un conteo hasta infinito. (Recordar que en vector distancia los routers no conocen la topología de la red y esta es la causa por la que el problema ocurre).
Soluciones: o Contadores que limiten la cantidad de saltos para evitar la cuenta infinita. o El horizonte dividido es otra forma de evitar este problema, consiste en prohibir a un router publicar una ruta por la misma interfaz por la que se aprendió en primer lugar. Ej. A aprende la ruta hacia C a través de B, entonces A no puede mandar por su interfaz de conexión con B esa ruta. Cualquiera diría que no hay problema porque la ruta B-C es más corta que la ruta B-A-B-C, pero si B-C se cae se producirá un conteo infinito a través de la ruta publicada por A (dado que B no sabe que está incluido en esa ruta).
o o
Envenenamiento de ruta, cuando A se cae, B publica que la ruta hacia A tiene un costo infinito de difusión (esto se realiza durante un tiempo, y luego se borra a A de la tabla). Triggered Updates, son actualizaciones por eventos que obligan a un router a enviar una difusión al momento de recibir malas noticias en vez de esperar al próximo período de difusión.
Enrutamiento por estado del enlace El algoritmo de enrutamiento por estado del enlace, fue utilizado como reemplazo al vector distancia para subsanar los problemas que este tenía como la alta demora en converger (El proceso de convergencia es el proceso por el cual los routers van armando las tablas de enrutamiento y se van conociendo, la convergencia termina cuando todos los routers se conocen y han armado sus respectivas tablas). El concepto en que se basa el enrutamiento por estado del enlace es sencillo y puede enunciarse en cinco partes: Descubrir a sus vecinos y conocer sus direcciones de red: Esto lo realiza cada router enviando un paquete HELLO especial a cada línea punto a punto. Se espera que el router del otro extremo regrese una respuesta indicando quién es. Medir el retardo o costo para cada uno de sus vecinos: La manera más directa de determinar este retardo es enviar un paquete ECHO especial a través de la línea y una vez que llegue al otro extremo, éste debe ser regresado inmediatamente. Si se mide el tiempo de ida y vuelta y se divide entre dos, el router emisor puede tener una idea razonable del retardo de esa línea. Construir un paquete que indique todo lo que se acaba de aprender (estado de enlace): El paquete comienza con la identidad del emisor, un número de secuencia, una edad y una lista de vecinos junto con el retardo para cada vecino. Estos paquetes pueden ser construidos de manera periódica o cuando ocurra algún evento significativo (como caídas o reactivaciones de vecinos o cambios en sus propiedades). Distribución de los paquetes de estado del enlace a los demás routers: Se utiliza inundación para distribuir los paquetes de estado del enlace a fin de mantener controlada la inundación cada paquete contiene un número de secuencia que se incrementa con cada paquete enviado (cuando llega un paquete de estado de enlace se verifica contra la lista de paquetes recibidos y se compara el ID de origen y su secuencia, con la última secuencia recibida para ese ID). Pero esta solución tiene un problema y es que los números de secuencia podrían reiniciarse (se terminan los números y comienza desde 0), para evitar esto, el número de secuencia es un número de 32 bits. Otro problema podría ocurrir si el router cae y vuelve a levantarse y pierde su número de secuencia, o si este se corrompe por alguna razón, para ellos se utiliza un número de edad en cada paquete el cual es un contador que disminuye una vez por segundo y si la edad llega a 0 el paquete es descartado. Calcular la ruta más corta a todos los demás enrutadores: Una vez que el enrutador ha acumulado un grupo completo de paquetes de estado de enlace, puede construir el grafo de la subred completa porque todos los enlaces están representados y, ejecutar el algoritmo de Dijkstra para construir la ruta más corta a todos los destinos posibles, estos resultados se instalan en las tablas de enrutamiento y la operación se inicia normalmente.
Estado de Enlace vs Vector Distancia • Ancho de banda: El método vector distancia no considera el ancho de banda usado. • Convergencia: El algoritmo por vector distancia tarda demasiado en converger. • Información de la red: En el método por vector distancia, cada router envía información sólo a sus vecinos, pero esta hace referencia de toda la red. Sin embargo el encaminamiento por estado de enlace envía a todos los nodos de la red, pero su información es relativa a sus vecinos. Además el enrutamiento por vector distancia no permite conocer la topología de la red. • Capacidad y uso de memoria: Con algoritmos basados en estado de enlace, el tráfico de la red siempre es el mismo sin depender del tamaño de la red. Con vectores distancia, se transmiten vectores de un tamaño proporcional al número de nodos. El routing por vector distancia sólo guarda las distancias al resto de nodos. Con estado de enlace se almacena además la topología de la red. Sucesos en la red: Al no tener información sobre la topología, el routing por vector distancia no se adapta tan bien a los cambios en la red como el basado en estado de enlace (Ej. Problemas de conteo infinito por la caída de un router). Sin embargo, el encaminamiento basado en vector distancia es mucho más sencillo que el de estado de enlace, lo que en ocasiones puede resultar bastante útil. Enrutamiento Jerárquico A medida que crece el tamaño de las redes, también lo hacen, de manera proporcional, las tablas de enrutamiento de los routers. Las tablas que siempre crecen no sólo consumen memoria del router, sino que también se necesita más tiempo de CPU para examinarlas y más ancho de banda para enviar información de estado entre routers. Cuando se utiliza enrutamiento jerárquico, los routers se dividen en lo que llamaremos regiones, donde cada router conoce todos los detalles para enrutar paquetes a destinos dentro de su propia región, pero no sabe nada de la estructura interna de otras regiones. Cuando se interconectan diferentes redes, es natural considerar cada una como región independiente a fin de liberar a los routers de una red de la necesidad de conocer la estructura topológica de las demás. Desgraciadamente, estas ganacias de espacio no son gratuitas, se paga un precio que es una ruta de longitud mayor. Cuando una red se vuelve muy grande surge la interesante pregunta de ¿cuántos niveles tener en la jerarquía? Y el número óptimo de niveles para una subred de N enrutadores es de ln(N) y se requieren un total de "𝑒 ∗ ln (𝑁)" entradas por router y el aumento de la longitud media de las rutas causado por el enrutamiento jerárquico con este número de niveles, es tan pequeño que por lo general es aceptable. Difusión El envío simultáneo de un paquete a todos los destinos de una subred se denomina difusión. Un método de difusión que no requiere características especiales de la subred es que el origen simplemente envía un paquete distinto a todos los destinos, pero este método no solo desperdicia ancho de banda, sino que también requiere que el origen tenga una lista completa de todos los destinos. La inundación es otro candidato obvio, el problema es que genera demasiados paquetes y consume demasiado ancho de banda. Un tercer algoritmo es el enrutamiento multidestino, donde cada paquete contiene una lista de destinos o un mapa de bits que indica los destinos deseados. Cuando un paquete llega al
router, éste revisa todos los destinos para determinar el grupo de líneas de salida que necesitará y genera una nueva copia del paquete para cada línea de salida e incluye en cada paquete solo los destinos que utilizarán esa línea. Después de una cantidad suficiente de saltos, cada paquete llevará sólo un destino, así que puede tratarse como un paquete normal. Un cuarto algoritmo es el árbol de expansión, que es un subgrupo de la subred que incluye todos los routers pero no contiene ciclos, si cada router conoce cuales de sus líneas pertenecen al árbol de expansión, puede copiar el paquete de entrada difundido en todas las líneas del árbol de expansión (excepto aquella por las que llegó). La gran desventaja de este algoritmo que es los routers deben tener conocimiento sobre el árbol de expansión. El último algoritmo es denomina reenvío por ruta invertida, cuando llega un paquete difundido a un router, éste lo revisa para ver si llegó por la línea normalmente usada para enviar paquetes al “origen de la difusión”. De ser así hay excelentes posibilidades de que el paquete difundido haya seguido la mejor ruta desde el router y, por lo tanto, sea la primer copia en llegar al router. Si este es el caso, el router reenvía copias del paquete a todas las líneas, excepto a aquellas por las que llegó. Sin embargo, si el paquete difundido llegó por una línea diferente de la preferida, el paquete se descarta como probable duplicado. La ventaja principal de este algoritmo es su eficiencia y fácil implementación, ya que no requiere que los routers conozcan arboles de expansión ni listas de destinos o mapas de bits o mecanismos especiales para detener el proceso como la inundación.
Multidifusión Puede existir la necesidad de enviar mensajes a grupos bien definidos de tamaño numéricamente grade de equipos pero pequeños en comparación con el tamaño de la red. El envío de mensajes a uno de tales grupos se denomina multidifusión y para su uso se necesita administrar grupos de multidifusión. Se necesita una manera de crear y destruir grupos y un mecanismo para que los procesos se unan a los grupos y salgan de ellos. La forma de realizar esta tarea no le concierne al algoritmo de multidifusión, lo que si le concierne es que cuando un proceso se una a un grupo, informe a su host de este hecho. Es importante que los routers sepan cuáles de sus hosts perteneces a qué grupos. Para realizar el enrutamiento por multidifusión, cada router calcula un árbol de expansión que cubre a todos los demás routers de la subred. Cuando un proceso envía un paquete a un grupo, el primer router en recibirlo examina su árbol de expansión y lo recorta, eliminando todas las líneas que conduzcan a host que no sean miembros del grupo. Luego envía los paquetes de multidifusión a través del árbol de expansión apropiado (el recortado). Una desventaja potencial de este algoritmo es que no escala bien en redes grandes. Supongamos que una red tiene n grupos, cada uno con un promedio de m miembros. Por cada grupo se deben almacenar m árboles de expansión recortados, lo que da un total de m*n árboles (uno por cada router y por cada grupo). Una forma de solucionar este problema es utilizar árboles de núcleo, se calcula un solo árbol por cada grupo con la raíz (núcleo) cerca de la mitad del grupo. Para enviar un mensaje de multidifusión un host envía el mensaje al núcleo y de ahí se hace multidifusión. Aunque este árbol no será el óptimo, la cantidad de árboles a almacenar se reduce a solo n (un árbol por grupo).
Sistemas Autónomos
Un Sistema Autónomo (Autonomous System, AS) es un conjunto de redes y routers IP que se encuentran administrados por una sola entidad (o en algunas ocasiones varias) que cuentan con una política común de definición de trayectorias para Internet. Los Sistemas Autónomos se comunican entre sí mediante routers BGP y se intercambian el tráfico de Internet que va de una red a la otra. A su vez cada Sistema Autónomo es como una Internet en pequeño, ya que su rol se llevaba a cabo por una sola entidad, típicamente un Proveedor de Servicio de Internet (ISP) o una gran organización con conexiones independientes a múltiples redes, las cuales se apegaban a una sola y clara política de definición de trayectorias definida. Técnicamente un Sistema Autónomo se define como “un grupo de redes IP que poseen una política de rutas propia e independiente”. Esta definición hace referencia a la característica fundamental de un Sistema Autónomo: realiza su propia gestión del tráfico que fluye entre él y los restantes Sistemas Autónomos que forman Internet. Aun considerando que un ISP puede soportar múltiples sistemas autónomos, Internet solo considera la política de definición de trayectorias establecida por el ISP. Por lo tanto, el ISP deberá contar con un ASN registrado. Un número de AS o ASN se asigna a cada AS para ser utilizado por el esquema de encaminamiento BGP, este número identifica de manera única a cada red dentro del Internet. Tipos de Sistemas Autónomos Los sistemas autónomos pueden agruparse en tres categorías, dependiendo de sus conexiones y modo de operación.
SA stub: se conecta únicamente con un sistema autónomo. SA de tránsito: se conecta con varios sistemas autónomos y además permite que se comuniquen entre ellos SA multihomed: se conecta con varios sistemas autónomos, pero no soporta el tráfico de tránsito entre ellos Interior Gateway Protocol
El Protocolo de Pasarela Interno, hace referencia a los protocolos usados dentro de un sistema autónomo. Los protocolos de pasarela internos se pueden dividir en dos categorías: Protocolo de enrutamiento Vector Distancia y Protocolo de enrutamiento Estado de Enlace
Protocolo de enrutamiento por vector distancia o RIP (Routing Information Protocol): El Protocolo de encaminamiento de información, es un protocolo de puerta de enlace interna o IGP (Internal Gateway Protocol) utilizado por los routers, aunque también pueden actuar en equipos, para intercambiar información acerca de redes IP. En la actualidad existen tres versiones diferentes de RIP, las cuales son:
RIPv1: No soporta subredes ni CIDR. Tampoco incluye ningún mecanismo de autentificación de los mensajes. No se usa actualmente. RIPv2: Soporta subredes, CIDR y VLSM. Soporta autenticación utilizando uno de los siguientes mecanismos: no autentificación, autentificación mediante contraseña, autentificación mediante contraseña codificada. RIPng: RIP para IPv6. Funcionamiento RIP RIP V1 utiliza udp/520 para enviar sus mensajes en propagación Broadcast. RIP V2 utiliza propagación Multicast 224.0.0.9. RIP calcula el camino más corto hacia la red de destino usando el algoritmo del vector de distancias. La distancia o métrica está determinada por el número de saltos de router hasta alcanzar la red de destino. RIP tiene una distancia administrativa de 120 (la distancia administrativa indica el grado de confiabilidad de un protocolo de enrutamiento, por ejemplo EIGRP tiene una distancia administrativa de 90, lo cual indica que a menor valor mejor es el protocolo utilizado) RIP no es capaz de detectar rutas circulares, por lo que necesita limitar el tamaño de la red a 15 saltos. Cuando la métrica de un destino alcanza el valor de 16, se considera como infinito y el destino es eliminado de la tabla (inalcanzable). La métrica de un destino se calcula como la métrica comunicada por un vecino más la distancia en alcanzar a ese vecino. Teniendo en cuenta el límite de 15 saltos mencionado anteriormente. Las métricas se actualizan sólo en el caso de que la métrica anunciada más el coste en alcanzar sea estrictamente menor a la almacenada. Sólo se actualizará a una métrica mayor si proviene del enrutador que anunció esa ruta. Las rutas tienen un tiempo de vida de 180 segundos. Si pasado este tiempo, no se han recibido mensajes que confirmen que esa ruta está activa, se pone inactiva asignándole una métrica de 16 (temporizador de invalidez). Estos 180 segundos, corresponden a 6 intercambios de información. Si pasan 240s de la entrada de la ruta en la tabla de encaminamiento y no se han recibido actualizaciones para esta ruta, se elimina (temporizador de purga). Ventajas e Inconvenientes En comparación con otros protocolos de enrutamiento, RIP es más fácil de configurar. Además, es un protocolo abierto, soportado por muchos fabricantes. Por otra parte, tiene la desventaja que, para determinar la mejor métrica, únicamente toma en cuenta el número de saltos (por cuántos routers o equipos similares pasa la
información); no toma en cuenta otros criterios importantes, como por ejemplo ancho de banda de los enlaces. Por ejemplo, si tenemos una métrica de 2 saltos hasta el destino con un enlace de 64 kbps y una métrica de 3 saltos, pero con un enlace de 2 Mbps, lamentablemente RIP tomara el enlace de menor número de saltos aunque sea el más lento. Mensajes RIP Los mensajes RIP pueden ser de dos tipos.
Petición: Enviados por algún enrutador recientemente iniciado que solicita información de los enrutadores vecinos. Respuesta: mensajes con la actualización de las tablas de enrutamiento. Existen tres tipos: Mensajes ordinarios: Se envían cada 30 segundos. Para indicar que el enlace y la ruta siguen activos. Se envía la tabla de routeo completa. Mensajes enviados como respuesta a mensajes de petición. Mensajes enviados cuando cambia algún coste. Se envía toda la tabla de routeo.
Los mensajes tienen una cabecera que incluye el tipo de mensaje y la versión del protocolo RIP, y un máximo de 25 entradas RIP de 20 bytes.
Las entradas en RIPv1 contienen la dirección IP de la red de destino y la métrica. Las entradas en RIPv2 contienen la dirección IP de la red de destino, su máscara, el siguiente enrutador y la métrica. La autentificación utiliza la primera entrada RIP.
Protocolo de enrutamiento por estado de enlace: o OSPF (Open Shortest Path First):OSPF, es un protocolo de enrutamiento jerárquico de pasarela interior o IGP (Interior Gateway Protocol), que usa el algoritmo Dijkstra enlaceestado (LSA - Link State Algorithm) para calcular la ruta más corta posible. Usa cost como su medida de métrica. Además, construye una base de datos enlace-estado (linkstate database, LSDB) idéntica en todos los enrutadores de la zona. OSPF es probablemente el tipo de protocolo IGP más utilizado en grandes redes. Puede operar con seguridad usando MD5 para autentificar a sus puntos antes de realizar nuevas rutas y antes de aceptar avisos de enlace-estado. Como sucesor natural de RIP, acepta VLSM y CIDR desde su inicio. A lo largo del tiempo, se han ido creando nuevas versiones, como OSPFv3 que soporta IPv6 o como las extensiones multidifusión para OSPF (MOSPF), aunque no están demasiado extendidas. OSPF puede "etiquetar" rutas y propagar esas etiquetas por otras rutas. Una red OSPF se puede descomponer en regiones (áreas) más pequeñas. Hay un área especial llamada área backbone que forma la parte central de la red y donde hay otras áreas conectadas a ella. Las rutas entre diferentes áreas circulan siempre por el backbone, por lo
tanto todas las áreas deben conectar con el backbone. Si no es posible hacer una conexión directa con el backbone, se puede hacer un enlace virtual entre redes. Los routers en el mismo dominio de multidifusión o en el extremo de un enlace punto-apunto forman enlaces cuando se descubren los unos a los otros. En un segmento de red Ethernet los routers eligen a un router designado (Designated Router, DR) y un router designado secundario (Backup Designated Router, BDR) que actúan como hubs para reducir el tráfico entre los diferentes routers. OSPF puede usar tanto multidifusiones como unidifusiones para enviar paquetes de bienvenida y actualizaciones de enlace-estado. Las direcciones de multidifusiones usadas son 224.0.0.5 y 224.0.0.6. Al contrario que RIP o BGP, OSPF no usa ni TCP ni UDP, sino que usa IP directamente. Tráfico de enrutamiento OSPF mantiene actualizada la capacidad de enrutamiento entre los nodos de una red mediante la difusión de la topología de la red y la información de estado-enlace de sus distintos nodos. Esta difusión se realiza a través de varios tipos de paquetes:
Paquetes Hello (tipo 1). Cada router envía periódicamente a sus vecinos un paquete que contiene el listado de vecinos reconocidos por el router, indicando el tipo de relación que mantiene con cada uno.
Paquetes de descripción de base de datos estado-enlace (DataBase Description, DBD) (tipo 2). Se emplean en el intercambio de base de datos enlace-estado entre dos nodos, y permiten informar al otro nodo implicado en la sincronización acerca de los registros contenidos en la LSDB propia, mediante un resumen de estos.
Paquetes de estado-enlace o Link State Advertisements (LSA). Los cambios en el estado de los enlaces de un router son notificados a la red mediante el envío de mensajes LSA. Dependiendo del estatus del router y el tipo de información transmitido en el LSA, se distinguen varios formatos: Router-LSA. Network-LSA. Summary-LSA. dirigidos a un router fronterizo de red (Inter Area) dirigidos a una subred interna (Intra Area) AS-External-LSA (LSA de rutas externas a la red). Link-LSA.
Enrutamiento, routers y áreas OSPF organiza un sistema autónomo (AS) en áreas. Estas áreas son grupos lógicos de routers cuya información se puede resumir para el resto de la red. Un área es una unidad de enrutamiento, es decir, todos los routers de la misma área mantienen la misma información topológica en su base de datos de estado-enlace (Link State Database): de esta forma, los cambios en una parte de la red no tienen por qué afectar a toda ella, y buena parte del tráfico puede ser "parcelado" en su área.
Routers
Router Internoco es capaz de enrutar cualquier paquete destinado a cualquier punto del área en el que se encuentra (enrutamiento intra-area). Router de Backbone es un router que se encuentra en el área 0 o de backbone.
Para el enrutamiento entre distintas áreas del AS (enrutamiento inter-area) y desde el AS hacia el exterior (enrutamiento exterior), OSPF utiliza routers especiales que mantienen una información topológica más completa que la del área en la que se sitúan. Así, pueden distinguirse:
Routers fronterizos de área o ABRs (Area Border Routers), que mantienen la información topológica de su área y conectan esta con el resto de áreas, permitiendo enrutar paquetes a cualquier punto de la red (inter-area routing).
Routers fronterizos del AS o ASBRs (Autonomous System Border Routers), que permiten encaminar paquetes fuera del AS en que se alojen, es decir, a otras redes conectadas al Sistema Autónomo o resto de Internet (external routing).
Un paquete generado en la red será enviado, de forma jerárquica, a través del área si su destinación es conocida por el emisor; al ABR del área correspondiente si no la destinación no es intra-area; este lo enviará al router del área de destino, si este se encuentra en el AS; o al ASBR si la destinación del paquete es exterior a la red (desconocida por el ABR). Tipos de Áreas
Área Backbone
El backbone, también denominado área cero, forma el núcleo de una red OSPF. Es la única área que debe estar presente en cualquier red OSPF, y mantiene conexión, física o lógica, con todas las demás áreas en que esté particionada la red. La conexión entre un área y el backbone se realiza mediante los ABR, que son responsables de la gestión de las rutas no-internas del área (esto es, de las rutas entre el área y el resto de la red).
Área stub
Un área stub es aquella que no recibe rutas externas. Las rutas externas se definen como rutas que fueron inyectadas en OSPF desde otro protocolo de enrutamiento. Por lo tanto, las rutas de segmento necesitan normalmente apoyarse en las rutas predeterminadas para poder enviar tráfico a rutas fuera del segmento.
Área not-so-stubby
También conocidas como NSSA, constituyen un tipo de área stub que puede importar rutas externas de sistemas autónomos y enviarlas al backbone, pero no puede recibir rutas externas de sistemas autónomos desde el backbone u otras áreas.
Mensajes Tipo de mensaje Hello Link State Update Link State Ack Database Description Link State Request
Descripción Descubre quienes son los vecinos Proporciona los costos del emisor a sus vecinos Confirma la recepción de la actualización del estado del enlace Anuncia qué actualizaciones tiene el emisor Solicita información del socio
Paquete Hello IP Header OSPF Header Máscara de red Options Router Priority Intervalo de Hello Intervalo de Router muerto Router designado Router designado Backup 1er Nid (ID vecino)
20 bytes 24 bytes 4 bytes 2 bytes 4 bytes 4 bytes 4 bytes 4 bytes
IPHeader (son 5 palabras de 4 bytes cada una) Intervalo de Hello es el tiempo que el router va a esperar antes de hacerle hello a sus vecinos par aver si los enlaces estan bien. Los routers tiene 3 bases de datos, de rutas, de vecinos y de topologías
Topologías Soportadas
Punto a punto (Master – Slave) (conexión serial entre dos routers, DTE y DCE)
Master
slave
Multi-acceso con Broadcast (La mayoría de las LAN) Router designado Switch
Router designado de backup
Router que pasa a ser de backup en caso de que caiga el designado
El router designado organiza la recepción y el envío de actualizaciones y SLA. Todos los routers envían sus actualizaciones al designado y el las reparte.
Multi-acceso sin broadcast (La mayoría de las WAN de paquetes conmutados)
Hub
Utilizan conexiones seriales que no se comportan como master-slave. (se comunican indirectamente atreves del hub).
Exterior Gateway Protocol El Exterior Gateway Protocol (EGP) es un protocolo estándar usado para intercambiar información de enrutamiento entre sistemas autónomos. Los routers EGP sólo pueden retransmitir información de accesibilidad para las redes de su AS. El router debe recoger esta información, habitualmente por medio de un IGP, usado para intercambiar información entre routers del mismo AS. Se basa en el sondeo periódico empleando intercambios de mensajes "Hello/I Hear You", para monitorizar la accesibilidad de los vecinos y para sondear si hay solicitudes de actualización. Restringe los routers exteriores al permitirles anunciar sólo las redes de destino accesibles en el AS del router. De esta forma, un router exterior que usa EGP pasa información a sus vecinos EGP pero no anuncia la información de accesibilidad de estos (los routers son vecinos si intercambian información de encaminamiento) fuera del AS. Características
Soporta un protocolo NAP ("Neighbor Acquisition Protocol”). Dos routers se pueden considerar vecinos si están conectadas por una red que es transparente para ambas. No especifica la forma en que un router decide inicialmente que quiere ser vecina de otra. Para convertirse en vecina, debe enviar un mensaje "Acquisition confirm" como respuesta a un Acquisition Request. Este paso es necesario para obtener información de encaminamiento de otro router. Soporta un protocolo NR ("Neighbor Reachability"). El router lo usa para mantener información en tiempo real sobre la accesibilidad de sus vecinos. El protocolo EGP proporciona dos tipos de mensajes para ese fin: un mensaje Hello y un mensaje I Hear You (respuesta a Hello). Soporta mensajes de actualización (o mensajes NR) que llevan información de encaminamiento. No se requiere ningún router para enviar mensajes NR a otro router, excepto como respuesta a una petición de sondeo ("poll request").
Tipos Para realizar estas tres funciones básicas, EGP define 10 tipos de mensajes:
Acquisition Request: solicita que un router se convierta en vecino. Acquisition Confirm: respuesta afirmativa a un "acquisition request".
Acquisition Refuse: respuesta negativa a un "acquisition request". Cease Request: solicitud de terminación de la relación de vecindad. Cease Confirm: confirmación para que cesen las peticiones. Hello: solicitud de respuesta e un vecino, si está vivo. I Hear You: respuesta el mensaje Hello. Poll Request: solicitud de la tabla de encaminamiento de la red. Routing Update: información de accesibilidad de la red. Error: respuesta a un mensaje incorrecto.
EGP no se puede usar como algoritmo de encaminamiento pero si BGP. Border Gateway Protocol El BGP o Border Gateway Protocol es un protocolo mediante el cual se intercambia información de encaminamiento entre sistemas autónomos. Por ejemplo, los ISP registrados en Internet suelen componerse de varios sistemas autónomos y para este caso es necesario un protocolo como BGP. Entre los sistemas autónomos de los ISP se intercambian sus tablas de rutas a través del protocolo BGP. Este intercambio de información de encaminamiento se hace entre los routers externos de cada sistema autónomo. Estos routers deben soportar BGP. Se trata del protocolo más utilizado para redes con intención de configurar un EGP (external gateway protocol) La forma de configurar y delimitar la información que contiene e intercambia el protocolo BGP es creando lo que se conoce como sistema autónomo. Cada sistema autónomo (AS) tendrá conexiones o, mejor dicho, sesiones internas (iBGP) y además sesiones externas (eBGP). El protocolo de gateway fronterizo (BGP) es un ejemplo de protocolo de gateway exterior (EGP). BGP intercambia información de encaminamiento entre sistemas autónomos a la vez que garantiza una elección de rutas libres de bucles. Es el protocolo principal de publicación de rutas utilizado por las compañías más importantes de ISP en Internet. BGP4 es la primera versión que admite encaminamiento entre dominios sin clase (CIDR) y agregado de rutas. A diferencia de los protocolos de Gateway internos (IGP), como RIP, OSPF y EIGRP, no usa métricas como número de saltos, ancho de banda, o retardo. En cambio, BGP toma decisiones de encaminamiento basándose en políticas de la red, o reglas que utilizan varios atributos de ruta BGP. Estas políticas deben tenerse en cuenta dado que un SA podría desear no permitir el paso de paquetes a través de él, si son ajenos a él (no ser atravesado como parte de una ruta de un paquete en internet). Algunos ejemplos de políticas:
Ningún tránsito a través de ciertos sistemas autónomos. Nunca ponga Irak en una ruta que inicie con Pentágono. No pasar por Estados Unidos para llegar de la Columbia Británica a Ontario. Transite por Albania sólo si no hay otra alternativa al destino. El tráfico que empieza o termina en IBM no debe transitar por Microsoft.
Tipos de Redes BGP
Resde Stub, solo tiene una conexión con el grafo BGP. No pueden utilizarse para transportar el tráfico porque no existe nadie del otro lado. Redes Multiconectadas, podrían usarse para transportar el tráfico excepto que lo rechacen. Redes de tránsito, están dispuestas a ocuparse de paquetes de terceros, posiblemente con algunas restricciones y normalmente por pago.
BGP utiliza conexiones TCP y opera en forma similar a los algoritmos de vector distancia, aunque son conocidos como algoritmos de vector ruta (porque en vez de guardar la distancia, guardan la ruta utilizada y, en lugar de pasarle a cada vecino el costo de cada destino, le pasa las rutas que utiliza para llegar). Luego que un router conoce todas las rutas de sus vecinos, las examina para ver cuál es la mejor para un destino determinado, eliminado aquellas rutas que lo contengan a él o que violen cualquiera de sus políticas. De las restantes se elije la de menor distancia. BGP solo reconoce routers de borde, cualquier router interno a un SA no es reconocido por BGP. Supongamos los SA con los números 100, 200 y 300. El SA 200 tiene routers de borde, uno que lo conecta a 100 y otro en el otro extremo que lo conecta a 300, los routers de 200 estan interconectados entre sí mediante una LAN que funciona con OSPF. Cuando el router de borde de 100 quiera enviar algo a 300, primero enviará los datos a través del protocolo BGP al router de 200 con el cual está directamente conectado, este router enviará datos a través de su LAN mediante el protocolo OSPF hasta su otro router de borde, el cual mediante el protocolo BGP enviará los datos a 300. (Tener en cuenta que los routers de borde tiene cargados 2 protocolos, el BGP y cualquiera que se use para regular el tráfico de la LAN interna, OSPF, RIP, etc.) Temas del programa no abordados: Encaminamiento en la Internet (Supongo que se usa BGP).
Routers El router, direccionador, ruteador o encaminador es un dispositivo de hardware para interconexión de red de ordenadores que opera en la capa tres (nivel de red). Un router es un dispositivo para la interconexión de redes informáticas que permite asegurar el enrutamiento de paquetes entre redes o determinar la ruta que debe tomar el paquete de datos. Funciones del nivel de Red
Elegir la ruta óptima de los paquetes Controlar y evitar la congestión Controlar que el usuario no abuse del servicio Resolver (‘mapear’) las direcciones de nivel de red con las de nivel de enlace (p. ej. En LANs). Los routers son útiles para dividir las LAN en dominios de difusión (broadcast) separados, y se debe utilizar al conectar estas LAN sobre una WAN.
Tienen interfaces WAN y LAN. Las tecnologías WAN se suelen usar para conectar routers. Routers se comunican entre sí mediante conexiones WAN, y conectan redes dentro de sistemas locales, así como el backbone de Internet. Operan en la capa 3, tomando decisiones basadas en direcciones de red. Las dos funciones principales: o Determinación de las mejores rutas para los paquetes de datos entrantes. o Conmutación de los paquetes a la interfaz saliente correcta. Se basan en la construcción de de tablas de enrutamiento y en el intercambio de la información de red que éstas contienen con otros routers.
Fuentes de configuración
¿Desde donde se puede configurar un router? o Desde la terminal de consola (un computador conectado al router a través de un puerto de consola) durante su instalación. o Mediante un módem utilizando el puerto auxiliar. o Desde las Terminales Virtuales 0-4, después de su instalación en la red. o Desde un servidor TFTP en la red.
Componentes internos de configuración de un router
RAM/DRAM: Almacena tablas de enrutamiento, la caché ARP, la caché de conmutación rápida, el búffering de paquetes (RAM compartida) y las colas de espera de paquetes. Memoria de ejecución para el archivo de configuración de un router. El contenido se pierde si se apaga o se reinicia.
NVRAM: La RAM no volátil almacena la copia de respaldo del archivo de configuración de inicio del router. Flash: ROM borrable y reprogramable que retiene la imagen y el microcódigo del sistema operativo. Permite actualizaciones de SW. ROM: Diagnósticos de encendido, un programa bootstrap y software mínimo del sistema operativo. Interfaces: Sirven como conexiones de red, en la motherboard o en módulos de interfaz separados, a través de las cuales los paquetes entran y salen de un router.
Relación de términos
Cuando se conecta un route, la ROM ejecuta bootstrap. Este programa realiza algunas pruebas y después carga el sw IOS en memoria. El procesador de comandos (EXEC) recibe y ejecutacomandos. El router utiliza la RAM para almacenar un archivo de configuración activo y las tablas de mapas de red y las listas de direcciones de enrutamiento. En la NVRAM se guarda una copia de manera permanente del archivo de configuración; cada vez que se inicializa un router se accede a este archivo y se carga en la memoria principal.
El archivo de configuración contiene la información global, de proceso y de interfaz que afecta al funcionamiento del router y sus puertos de interfaz. Normalmente, la imagen del IOS se ejecuta desde la RAM y se carga desde una de las distintas fuentes de entrada.
Modos de router
Modo EXEC usuario: Visualizar información pero sin realizar cambios. o Examen limitado del router. o router > Modo EXEC privilegiado: Soporta los comandos de depuración y prueba, el examen detallado del router, la manipulación de los archivos de configuración, y el acceso a los modos de configuración. o Examen detallado del router, o depuración y prueba. o router # Modo de configuración inicial (setup): Presenta en la consola un diálogo interactivo basado en indicadores que ayuda al nuevo usuario a crear una configuración básica inicial. Modo de configuración global: Implementa poderosos comandos de una línea que ejecutan tareas simples de configuración. o Comandos de configuración simple o router (config) # Otros modos de configuración: Permiten configuraciones más detalladas de múltiples líneas. o Modo RXBOOT: Modo de mantenimiento que se puede usar, entre otras cosas, para recuperar contraseñas perdidas
o o
o
Protocolos de enrutamiento router (config-router) # Modo de configuración de interfaz Configuración de las direcciones IP y máscaras de subred router (config-if) # Modo de configuración de subinterfaz router (config-subif) #
Configuración Básica de un router
Nombrar al router. Colocar una contraseña de acceso al router y habilitar el telnet si se desea. Configurar las interfaces Ethernet. o Asignarles una IP y una máscara de subred o Levantarlas. Configurar las interfaces seriales o Asignarles una IP y una máscara de subred. o Si es el DCE colocar el Clock rate a utilizar. o Levantarlas. Tablas de enrutamiento o Estática Agregar las rutas manualmente indicando interfaz de salida y prox. Salto para cada IP de red. o Dinámicamente Habilitar el protocolo de enrutamiento (RIP). Agregar a todas las redes directamente conectadas al router.
Congestión Cuando hay demasiados paquetes presentes en la subred o en una parte de ella, hay una degradación del desempeño. Esta situación se denomina congestión. Cuando la cantidad de paquetes en la subred esta dentro de su capacidad de conducción, todos se entregan (salvo una pequeña parte por errores de transmisión). Sin embargo a medida que aumenta el tráfico los routers ya no pueden manejarlo y comienzan a perder paquetes, con mucho tráfico el desempeño se desploma y casi no hay entrega de paquetes.
La congestión puede ocurrir por varias razones. Si de manera repentina comienzan a llegar cadenas de paquetes por tres o cuatro líneas de entrada y todas necesitan la misma línea de salida, se generará una cola y si no existe memoria suficiente para almacenarlos, muchos de ellos se perderán. Los procesadores lentos también pueden causar congestión dado que demoran mucho en realizar sus tareas y las colas aumentan. Las líneas de poco ancho de banda también podrían causar congestión. Actualizar una parte del sistema (memoria, procesador, ancho de banda, etc.) simplemente mejora un poco pero mueve el cuello de botella hacia otra parte, lo que se necesita es una mejora equilibrada del sistema. Cabe aclarar la diferencia entre el control de congestión y el control de flujo. El control de congestión se ocupa de asegurar que la subred sea capaz de transportar el tráfico ofrecido, es un asunto global. En contraste, el control de flujo se relaciona con el tráfico punto a punto entre un emisor y un receptor. Su tarea es asegurar que un emisor rápido no pueda transmitir datos de manera continua a una velocidad mayor que la que puede absorber el receptor. Principios generales del control de congestión Muchos problemas de los sistemas complejos pueden analizarse desde el punto de vista de una teoría de control. Este método conduce a dividir a todas las soluciones en dos grupos: de ciclo abierto: Las soluciones de ciclo abierto intentan resolver problemas mediante un buen diseño, para asegurarse en primer lugar de que estos no ocurran. Una vez que el sistema está en funcionamiento, no se hacen correcciones a medio camino y toman decisiones independientemente del estado actual de la red (su objetivo es reducir al mínimo la congestión desde el inicio, en lugar de permitir que ocurra y reaccionar después). de ciclo cerrado: En contraste las soluciones de ciclo cerrado se basan en el concepto de un ciclo de realimentación. Este método tiene tres partes: o Monitorear el sistema y detectar cuándo y dónde ocurren las congestiones: Pueden utilizarse varias métricas como ser, el % de paquetes descartados por falta de espacio en buffers, longitud promedio de las colas, % de paquetes cuyo temporizador finaliza y se tiene que retrasmitir, retardo promedio de paquetes, etc. o Pasar esta información a lugares en los que puedan llevarse a cabo acciones: La información puede debe pasarse desde el punto en que se detecta al punto en que puede hacerse algo para solucionar el problema. Por supuesto que el envío de esta información en forma de paquetes, aumenta aun más la carga en el momento en que la red se encuentra saturada. Pero existen soluciones como que cada paquete de información lleve un bit que indique si existe o no congestión (cuando un router detecta congestión, comienza a encender el bit de todos los paquetes que salen de él).
o
Ajustar la operación del sistema para corregir el problema: Para brindar una solución al problema, existen dos métodos los cuales son, aumentar los recursos o disminuir la cargar. Aumentar los recursos podría implicar la activación de una línea de comunicación auxiliar en caso de falta de ancho de banda. Disminuir la carga podría implicar que se solicite a los emisores una disminución de la velocidad en a la que envían los paquetes, o utilizar rutas alternativas y no siempre la ruta óptima, junto con soluciones más drásticas como negar el servicio a ciertos usuarios.
Como antes dijimos podemos clasificar las soluciones en 2 tipos: Ciclo abierto: A su vez pueden clasificarse en dos o Actúan en el origen. o Actúan en el destino. Ciclo cerrado: A su vez pueden clasificarse en dos o Retroalimentación explícita: Regresan paquetes desde el punto de congestión para avisar al origen. o Retroalimentación implícita: El origen deduce la existencia de una congestión haciendo observaciones locales, como el tiempo necesario para que regresen las confirmaciones de recepción. Políticas de prevención de congestión
Capa de enlace de datos o Política de retransmisiones: Tiene que ver con la velocidad con la que un emisor temporiza y con lo que retransmitirá al finalizar un temporizador. o Política de almacenamiento en caché de paquetes fuera de orden: Si los receptores descartan de manera rutinaria todos los paquetes que llegan fuera de orden, posteriormente se tendrá que enviar otra vez lo que genera una carga extra. o Política de confirmación de recepción: Afecta a la congestión, si la recepción de cada paquete se confirma de inmediato, los paquetes de confirmación de recepción generan tráfico extra. o Política de control de flujo: Un ejemplo podría ser una ventana pequeña, que reduzca la tasa de datos y permita atacar la congestión. Capa de red o Circuitos virtuales vs. Datagramas en la subred: La elección de cual se va a utilizar afecta a la congestión dado que muchos algoritmos de control de congestión sólo funcionan con subredes de circuitos virtuales. o Política de encolamiento y servicio de paquetes: Los router deben tener una cola por línea de entrada y no una o varias colas por cada línea de salida, también está relacionado con el orden en que procesan los paquetes. o Política de descarte de paquetes: Indica qué paquete se descartará cuando no exista espacio. o Algoritmo de enrutamiento: Un buen algoritmo de enrutamiento puede aliviar la congestión si distribuye el tráfico entre las líneas menos congestionadas. o Administración de tiempo de vida del paquete: Tiempo que existe un paquete antes de ser descartado, si es muy corto genera retransmisiones, si es muy largo pueden dar vueltas por la red mucho tiempo. Capa de transporte (IDEM enlace de datos, salvo la nro. 5) o Política de retransmisiones.
o o o o
Política de almacenamiento en caché de paquetes fuera de orden. Política de confirmación de recepción. Política de control de flujo. Determinación de terminaciones de temporizador: La determinación del intervalo de expiración es más difícil que en la capa de enlace de datos, dado que el tiempo de tránsito a través de la red es menos predecible que el tiempo de tránsito por un cable entre dos puntos de una red. Si este tiempo es muy corto, se harán retransmisiones innecesarias. Si es muy largo, se reducirá la congestión, pero el tiempo de respuesta se verá afectado cada vez que se pierda un paquete (porque habrá que esperar mucho hasta el reenvío).
Algoritmos de Control de Congestión Subredes de circuitos virtuales Una técnica que se utiliza es el control de admisión, una vez detectada la congestión, no se realizan nuevos circuitos virtuales hasta que esta haya desaparecido. También podrían crearse nuevos circuitos virtuales por puntos que no estén congestionados (aunque no sean los óptimos). Subredes de datagramas Cada router monitoreo el uso de sus líneas de salida y otros recursos. Si el monitoreo de alguno de estos elementos rebaza un umbral, este elemento (por ej. La línea de salida) queda en estado de “advertencia”, cada paquete nuevo que llega se revisa en qué estado se encuentra su línea de salida y se realizan algunas de las siguientes acciones:
Bit de advertencia: Un bit dentro del paquete indica el estado de la línea (por ejemplo si esta activo indica congestión), este bit puede ser modificado por cualquier router intermedio que detecte congestión. Al llegar al destino, se revisa el estado del bit y se lo copia en el paquete de confirmación de recepción, cuando este llega al origen, el mismo revisa el bit y en caso de estar encendido disminuye la velocidad con la que transmite los datos. Paquetes reguladores: El router que encuentra congestión regresa un paquete regulador al origen para indicarle que reduzca el porcentaje de tráfico enviado. Si durante un tiempo no llegan paquetes reguladores, esto indica que el host puede comenzar a enviar normalmente los datos. Paquetes reguladores salto por salto: Si las distancias entre el origen del mensaje y el nodo en el que se detectó congestión son muy grandes, el envío de un paquete regulador al origen no siempre es lo óptimo, dado que hasta que este llegue, se seguirán enviando datos a gran velocidad. La alternativa es que el paquete tenga efecto en cada salto que dé en la red, esto reduce de manera inmediata la congestión en el punto más problemático, pero genera un gran uso de buffers por parte de los routers que deben enviar más lento los datos.
Desprendimiento de carga Consiste en desechar paquetes cuando existe una congestión severa, el problema está en saber qué paquetes desechar. Para poner en práctica una buena política de descarte, las aplicaciones deben etiquetar los paquetes para marcar su importancia. La detección temprana aleatoria es una algoritmo que ayuda a evitar la congestión, se basa en el hecho de que algunos protocolos de transporte como TCP, reaccionan a la pérdida de paquetes disminuyendo la cantidad de paquetes que se envían en el origen (lo hacen porque están sobre una conexión segura y la mayoría de las pérdidas de paquetes se deben al desbordamiento de buffers). El algoritmo consiste en eliminar paquetes de forma aleatoria de las colas que se encuentre en un nivel mayor al normal. Control de fluctuación La fluctuación es la variación entre el tiempo de llegada de los paquetes. En transmisiones constantes de audio y video, no es de gran importancia si los paquetes demoran 20 mseg. o 30 mseg. siempre y cuando no existan fluctuaciones. El algoritmo de control de fluctuaciones procesa en un router, primero aquellos paquetes que estén atrasados (dejando en cola aquellos paquetes que están adelantados), su objetivo es reducir al máximo las fluctuaciones. Calidad de Servicio QoS o Calidad de Servicio (Quality of Service, en inglés) son las tecnologías que garantizan la transmisión de cierta cantidad de datos en un tiempo dado (throughput). Calidad de servicio es la capacidad de dar un buen servicio. Es especialmente importante para ciertas aplicaciones tales como la transmisión de video o voz. Problemas en redes de datos conmutados Muchas cosas le ocurren a los paquetes desde su origen al destino, resultando los siguientes problemas vistos desde el punto de vista del transmisor y receptor:
Paquetes sueltos: Los ruteadores pueden fallar en liberar algunos paquetes si ellos llegan cuando los buffers ya están llenos. Algunos, ninguno o todos los paquetes pueden quedar sueltos dependiendo del estado de la red, y es imposible determinar qué pasará de antemano. La aplicación del receptor puede preguntar por la información que será retransmitida posiblemente causando largos retardos a lo largo de la transmisión. Retardos: Puede ocurrir que los paquetes tomen un largo periodo de tiempo en alcanzar su destino, debido a que pueden permanecer en largas colas o tomen una ruta menos directa para prevenir la congestión de la red. En algunos casos, los retardos excesivos pueden inutilizar aplicaciones tales como VoIP o juegos en línea. Jitter: Los paquetes del transmisor pueden llegar a su destino con diferentes retardos. Un retardo de un paquete varía impredeciblemente con su posición en las colas de los ruteadores a lo largo del camino entre el transmisor y el destino. Esta variación en retardo se conoce como jitter y puede afectar seriamente la calidad del flujo de audio y/o vídeo.
Entrega de paquetes fuera de orden: Cuando un conjunto de paquetes relacionados entre sí son encaminados a Internet, los paquetes pueden tomar diferentes rutas, resultando en diferentes retardos. Esto ocasiona que los paquetes lleguen en diferente orden de como fueron enviados. Este problema requiere un protocolo que pueda arreglar los paquetes fuera de orden a un estado isócrono una vez que ellos lleguen a su destino. Esto es especialmente importante para flujos de datos de vídeo y VoIP donde la calidad es dramáticamente afectada tanto por latencia y perdida de sincronía. Errores: A veces, los paquetes son mal dirigidos, combinados entre sí o corrompidos cuando se encaminan. El receptor tiene que detectarlos y justo cuando el paquete es liberado, pregunta al transmisor para repetirlo así mismo.
Requerimientos Un flujo es un conjunto de paquetes que van dese un origen a un destino. En una red orientada a la conexión, todos los paquetes que pertenezcan a un flujo siguen la misma ruta; en una red sin conexión, pueden seguir diferentes rutas. La necesidad de cada flujo se puede caracterizar por cuatro parámetros principales: Confiabilidad, Retardo, Fluctuación y Ancho de Banda. Estos parámetros en conjunto determinan la QoS que el flujo requiere. Aplicación Correo electrónico Transferencia de archivos Acceso a web Inicio de sesión remoto Audio bajo demanda Video bajo demanda Telefonía Videoconferencia
Confiabilidad Alta Alta Alta Alta Baja Baja Baja Baja
Retardo Bajo Bajo Medio Medio Bajo Bajo Alto Alto
Fluctuación Baja Baja Baja Media Alta Alta Alta Alta
Ancho de Banda Baja Media Media Baja Media Alto Baja Alto
Técnicas para alcanzar una buena calidad de servicio No existe una sola técnica que permita alcanzar una buena calidad de servicio, por lo que muchas veces se combinan varias de ellas. A continuación se describen algunas técnicas que permiten mejorar la QoS. Sobreaprovisionamiento Una solución fácil es proporcionar la suficiente capacidad de router, espacio de buffer y ancho de banda como para que los paquetes fluyan con facilidad. El problema con esta solución es que es costosa. Almacenamiento en buffer Los flujos pueden almacenar en el buffer en el lado del receptor antes de ser entregados. Almacenarlos en el buffer no afecta la confiabilidad o el ancho de banda, e incrementa el retardo, pero atenúa la
fluctuación. Para el video o audio bajo demanda, la fluctuación es el problema principal, por lo tanto, esta técnica es muy útil. Modelado de tráfico El modelado de tráfico consiste en regular la tasa promedio (y las ráfagas) de la transmisión de los datos. Cuando se establece una conexión, el usuario y la subred (es decir, el cliente y la empresa portadora) acuerdan cierto patrón de tráfico (es decir, forma) para este circuito. Algunas veces esto se llama “acuerdo de nivel de servicio”. En tanto el cliente cumpla con su parte del contrato y sólo envíe los paquetes acordados, la empresa portadora promete entregarlos de manera oportuna. Estos acuerdos son muy importantes para transferencias en tiempo real que tienen rigurosos requerimientos de QoS. La empresa portadora controlará que el cliente cumpla con el acuerdo. Algoritmo de cubeta con goteo Imagínese una cubeta con un pequeño agujero en el fondo. Sin importar la rapidez con que entra agua en la cubeta, el flujo de salida tiene una tasa constante cuando hay agua en la cubeta y una tasa 0 cuando la cubeta está vacía. Además, una vez que se llena la cubeta, cualquier agua adicional que entra se derrama por los costados y se pierde. Cada host está conectado a la red mediante una interfaz que contiene una cubeta de goteo, es decir, una cola interna finita. Si llega un paquete cuando la cola está llena, este paquete se descarta. Cuando los paquetes son del mismo tamaño (ATM por ejemplo), el algoritmo puede utilizarse como fue descripto, sin embargo, cuando se utilizan paquetes de tamaño variable, el algoritmo debería ser utilizado permitiendo un número fijo de bytes, en lugar de un número fijo de paquetes por unidad de tiempo. Algoritmo de cubeta con tokens En muchas aplicaciones es mejor permitir que la salida se acelere un poco cuando llegan ráfagas grandes, por lo que se necesita un algoritmo más flexible, de preferencia uno que no pierda datos. Este algoritmo contiene tokens generados por un reloj cada ∆𝑻 seg. Para transmitir un paquete se debe capturar y destruir un token. Este algoritmo permite que puedan enviar ráfagas de hasta n paquetes (tamaño máximo de la cubeta) y permitir cierta irregularidad en el flujo de salida junto con una respuesta más rápida a las ráfagas de entrada repentinas. El algoritmo con tokens, descarta los tokens (capacidad de transmisión) no los paquetes cuando se llena la cubeta. (En otras palabras un token es solo un contador el cual se incrementa en 1 con cada pulso de reloj y de disminuye en 1 con cada envío de un paquete. Si durante un tiempo no se enviaron paquetes, este contador tendrá un número elevado, si luego de esto llega una ráfaga de n paquetes, podrán enviarse muchos paquetes juntos y luego volver a una tasa constante). Reservación de recursos Para regular el tráfico se necesita obligar a todos los paquetes de un flujo a seguir una misma ruta, como consecuencia se debe configurar algo similar a un circuito virtual del origen al destino, y todos los
paquetes que pertenecen al flujo deberán seguir esta ruta. Una vez que se tiene una ruta específica para un flujo, es posible reservar recursos a lo largo de esa ruta para asegurar que la capacidad necesaria esté disponible. Se pueden reservar tres tipos de recursos:
Ancho de banda, si un flujo requiere 1Mbps y la línea saliente tiene una capacidad de 2 Mbps, tratar de dirigir tres flujos por esa línea no va a funcionar. Por lo tanto, reservar ancho de banda significa no sobrecargar ninguna línea de salida. Espacio en buffer, es posible reservar alguno buffers para un flujo específico de manera que éste no tenga que competir con otros flujos para obtener espacio en buffer (si no tiene espacio se descartan sus paquetes). Ciclos de CPU, para procesar un paquete se necesita tiempo del CPU del router, por lo que un router solo puede procesar una cierta cantidad de paquetes por segundo. Para asegurar el procesamiento oportuno de cada paquete, es necesario verificar que la CPU no esté sobrecargada.
Control de admisión La decisión de aceptar o rechazar un flujo no se trata simplemente de comparar el ancho de banda, los buffers o los ciclos requeridos por el flujo con la capacidad excedida del router en esas tres dimensiones. Es más complicado que eso, dado que por más que las aplicaciones sepan sus exigencias sobre ancho de banda, no pueden saber nada sobre su necesidad de buffer o de ciclos de CPU, además algunas aplicaciones pueden estar dispuestas a negociar algunos parámetros, por lo que se busca una forma diferente de describir a los flujos. Por lo que una forma de caracterizar los flujos es en base a los parámetros que pueden negociarse (especificación de flujo). Por lo general, el emisor produce una especificación de flujo que propone los parámetros que le gustaría utilizar. Cada router de la ruta por la que viajarán los datos modifica los parámetros conforme sea necesario (estas modificaciones son de reducción, no pueden incrementar el flujo). Cuando se llega al otro extremo se establecen los parámetros, si un router no puede trabajar con los parámetros ofrecidos, puede rechazar el flujo entrante.
Herramientas de Administración de Red ARP Muestra y modifica las tablas de conversión de direcciones IP en direcciones físicas que usa el protocolo de resolución de direcciones.
PING La utilidad ping comprueba el estado de la conexión con uno o varios equipos remotos por medio de los paquetes de solicitud de eco y de respuesta de eco (ambos definidos en el protocolo de red ICMP) para determinar si un sistema IP específico es accesible en una red. Es útil para diagnosticar los errores en redes o enrutadores IP. Muchas veces se utiliza para medir la latencia o tiempo que tardan en comunicarse dos puntos remotos, y por ello, se utiliza el término PING para referirse al lag o latencia de la conexión en los juegos en red. Existe otro tipo, Ping ATM, que se utiliza en las redes ATM (como puede ser una simple ADSL instalada en casa) y, en este caso, las tramas que se transmiten son ATM (nivel 2 del modelo OSI). Este tipo de paquetes se envían para probar si los enlaces ATM están correctamente definidos.
TRACERT (Windows) / TRACEROUTE (Linux) Es una herramienta de diagnóstico de redes que permite seguir la pista de los paquetes que van desde un host (punto de red) a otro. Se obtiene además una estadística del RTT o latencia de red de esos paquetes, lo que viene a ser una estimación de la distancia a la que están los extremos de la comunicación. Esta herramienta se llama traceroute en UNIX y GNU/linux, mientras que en Windows se llama tracert.
IPCONFIG ipconfig (internet protocol configuration) en Microsoft Windows es una aplicación de consola que muestra los valores de configuración de red de TCP/IP actuales y actualiza la configuración de configuración dinámica de host protocolo DHCP y sistema de nombres de dominio DNS. Existen herramientas GUI similares denominados winipcfg y wntipcfg también. El ex pre-dates ipconfig. El papel
desempeñado por estas herramientas es similar de diversas implementaciones de ifconfig en UNIX y sistemas operativos tipo UNIX.
IFCONFIG Es un programa disponible en varias versiones del sistema operativo UNIX, que permite configurar o desplegar numerosos parámetros de las interfaces de redes, como la dirección IP (dinámica o estática), o la máscara de red. Si se llama sin argumentos suele mostrar la configuración vigente de las interfaces de red activas, con detalles como la dirección MAC o el tráfico que ha circulado por las mismas hasta el momento.
El programa ifconfig tiene muchos más parámetros que los descritos hasta ahora. Generalmente se ejecuta en la forma: ifconfig interfaz [dirección [parámetros] ]
Interfaz es el nombre de la interfaz y dirección es la dirección IP que se asigna a dicha interfaz. La dirección puede estar en forma de cuaterna o usando un nombre que ifconfig buscará en /etc/hosts. Si ifconfig es ejecutado añadiendo únicamente el nombre de la interfaz, presentará la información de la configuración de dicha interfaz. Si se ejecuta sin parámetros, presenta todas las interfaces configuradas hasta el momento; usando la opción –a fuerza a ifconfig a incluir la información de las interfaces inactivas. A modo de ejemplo, la consulta de la configuración de la interfaz Ethernet eth0 sería: # ifconfig eth0 eth0
Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 172.16.1.2 Bcast 172.16.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 0 RX packets 3136 errors 217 dropped 7 overrun 26 TX packets 1752 errors 25 dropped 0 overrun 0
Los campos MTU y Metric informan sobre los valores actuales de la MTU (Unidad Máxima de Transferencia) y de la métrica para una interfaz dada. El valor de la métrica es usado tradicionalmente por algunos sistemas operativos para calcular el coste de una ruta. GNU/Linux no usa este valor por el momento, pero lo define por razones de compatibilidad. Las líneas RX y TX dan idea de los paquetes recibidos o transmitidos sin errores, del número de errores ocurridos, de cuántos paquetes han sido descartados (seguramente por memoria insuficiente), y cuántos han sido perdidos por desbordamiento, condición que ocurre cuando la recepción de paquetes es demasiado rápida y el núcleo es incapaz de dar servicio al paquete anterior antes de la llegada del nuevo paquete. A continuación tenemos una lista de algunos parámetros reconocidos por ifconfig. Las opciones que simplemente activan alguna característica pueden usarse para desactivarla precediéndolas de un guión (–). Up: Marca la interfaz como disponible para que sea usada por la capa IP. Down: Marca la interfaz como inaccesible a la capa IP. Esto inhabilita cualquier tráfico IP a través de la interfaz. Es importante darse cuenta que esto también borra los registros de la tabla de encaminamiento correspondientes a esa interfaz de forma automática.
Netmask (máscara): Esto asigna una máscara de subred a una interfaz. Broadcast (dirección): confirma el establecimiento de una dirección de difusión incluyendo el indicador BROADCAST.
Metric (número): Esta opción puede ser usada para asignar un valor de métrica a la tabla de encaminamiento creada para la interfaz. Esta métrica es usada por el Protocolo de Información de Encaminamiento (RIP) para construir las tablas de encaminamiento para la red.
Mtu (bytes): Esto fija la unidad máxima de transferencia, o lo que es lo mismo, el máximo número de octetos que la interfaz es capaz de manejar en una única transacción. Para Ethernets, la MTU toma el valor 1500 por omisión (que es el tamaño máximo permitido para un paquete Ethernet).
Arp: Esta opción permite el uso de ARP, el Protocolo de Resolución de Direcciones, para detectar la dirección física de las máquinas conectadas a la red. (-arp lo inhabilita). ROUTE Route es una herramienta de línea de comandos disponible tanto en Microsoft Windows como en GNU/Linux. Nos permite manipular las tablas de enrutamiento de nuestro sistema.
NETSTAT Netstat (network statistics) es una herramienta de línea de comandos que muestra un listado de las conexiones activas de un ordenador, tanto entrantes como salientes. Existen versiones de este comando en varios sistemas como Unix, GNU/Linux, Mac OS X, Windows y BeOS. La información que resulta del uso del comando incluye el protocolo en uso, las direcciones IP tanto locales como remotas, los puertos locales y remotos utilizados y el estado de la conexión. Existen, además de la versión para línea de comandos, herramientas con interfaz gráfica (GUI) en casi todos los sistemas operativos desarrollados por terceros.
NSLOOKUP Es un programa, utilizado para saber si el DNS está resolviendo correctamente los nombres y las IP. Se utiliza con el comando nslookup, que funciona tanto en Windows como en UNIX para obtener la dirección IP conociendo el nombre, y viceversa.
TELNET Telnet (TELecommunication NETwork) es el nombre de un protocolo de red (y del programa informático que implementa el cliente), que sirve para acceder mediante una red a otra máquina, para manejarla remotamente como si estuviéramos sentados delante de ella. Para que la conexión funcione, como en todos los servicios de Internet, la máquina a la que se acceda debe tener un programa especial que reciba y gestione las conexiones. El puerto que se utiliza generalmente es el 23. Para iniciar una sesión con un intérprete de comandos de otro ordenador, puede emplear el comando telnet seguido del nombre o la dirección IP de la máquina en la que desea trabajar, por ejemplo si desea conectarse a la máquina purpura.micolegio.edu.com deberá teclear telnet purpura.micolegio.edu.com, y para conectarse con la dirección IP 1.2.3.4 deberá utilizar telnet 1.2.3.4.
Una vez conectado, podrá ingresar el nombre de usuario y contraseña remoto para iniciar una sesión en modo texto a modo de consola virtual (ver Lectura Sistema de usuarios y manejo de clave). La información que transmita (incluyendo su clave) no será protegida o cifrada y podría ser vista en otros computadores por los que se transite la información (la captura de estos datos se realiza con un packet sniffer. Una alternativa más segura para telnet, pero que requiere más recursos del computador, es SSH. Este cifra la información antes de transmitirla, autentica la máquina a la cual se conecta y puede emplear mecanismos de autenticación de usuarios más seguros.
Unidad 4: Capa de Transporte y Aplicación Capa de Transporte La tarea de esta capa es proporcionar un transporte de datos confiable y económico de la máquina de origen a la máquina destino, independientemente de la red o redes físicas en uso. Servicios de la capa de transporte La meta fundamental de la capa de trasporte es proporcionar un servicio eficiente, confiable y económico a sus usuarios, que normalmente son procesos de la capa de aplicación. El software de la capa de trasporte que se encarga de realizar el trabajo se lo denomina “entidad de trasporte”. Así como existen dos tipos de servicios (orientado a conexión y no orientado a conexión), hay dos tipos de transporte, el servicio de trasporte orientado a conexión y el servicio de trasporte no orientado a conexión. Tanto en la capa de red como en la de transporte las conexiones tienen tres fases, el establecimiento, la transferencia de datos y la liberación; el direccionamiento y control de flujo también son similares en ambas y, el servicio de trasporte no orientado a conexión es muy similar al servicio de red no orientado a conexión. Una pregunta muy lógica de hacerse en este punto sería, el por qué de dos capas siendo que son tan parecidas. La respuesta es simple, la capa de red es utilizada por routers que pertenecen por ejemplo a la empresa portadora y nada tienen que ver con el emisor y el receptor, mientras que la capa de trasporte es pura y exclusivamente manejada por la máquina emisora y la receptora. Además esta capa que se encuentra por encima de la capa de red, permitirá resolver problemas como perdida de paquetes o cualquier otro que genere un mal servicio. Esencialmente, la existencia de la capa de trasporte hace posible que el servicio de trasporte sea más confiable que el servicio de red subyacente. La capa de transporte puede detectar y compensar paquetes perdidos y datos alterados. Gracias a la capa de trasporte es posible escribir programas de aplicación usando un conjunto estándar de primitivas, y que estos programas funcionen en una amplia variedad de redes sin necesidad de preocuparse por lidiar con diferentes interfaces de subred y transmisiones no confiables. Como podemos ver, esta capa cumple la función clave de aislar a las capas superiores de la tecnología, el diseño y las imperfecciones de la subred. Primitivas del servicio de transporte Para permitir que los usuarios accedan al servicio de transporte, la capa de transporte debe proporcionar algunas operaciones a los programas de aplicación, es decir, una interfaz del servicio de transporte. Cada servicio de transporte tiene su propia interfaz. Primitiva LISTEN CONNECT SEND
Paquete enviado (Ninguno) CONNECTION REQ. DATA
Significado Se bloquea hasta que algún proceso intenta la conexión Intenta activamente establecer una conexión Envía información
RECEIVE (Ninguno) Se bloquea hasta que llega un paquete DATA DISCONNECT DISCONNECTION REQ. Este lado quiere liberar la conexión
Todas las PDU (Protocol Data Unit) de la capa de transporte también denominadas segmentos, son colocadas como la carga útil de un datagrama IP para poder ser enviados por la red. Socket de Berkeley Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiar cualquier flujo de datos, generalmente de manera fiable y ordenada. Un socket queda definido por una dirección IP, un protocolo de transporte y un número de puerto. Las propiedades de un socket dependen de las características del protocolo en el que se implementan. El protocolo más utilizado es TCP, aunque también es posible utilizar UDP o IPX. Gracias al protocolo TCP, los sockets tienen las siguientes propiedades:
Orientado a conexión. Se garantiza la transmisión de todos los octetos sin errores ni omisiones. Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido.
Estas propiedades son muy importantes para garantizar la corrección de los programas que tratan la información. El protocolo UDP es un protocolo no orientado a la conexión. Sólo se garantiza que si un mensaje llega, llegue bien. En ningún caso se garantiza que llegue o que lleguen todos los mensajes en el mismo orden que se mandaron. Primitiva de sockets Primitiva SOCKET BIND LISTEN ACCEPT CONNECT SEND RECEIVE CLOSE
Significado Crea un nuevo punto terminal de comunicación Adjunta una dirección local a un socket Anuncia la disposición a aceptar conexiones; indica el tamaño de la cola Bloquea al invocador hasta la llegada de un intento de conexión Intenta establecer activamente una conexión Envía datos a través de la conexión Recibe datos de la conexión Libera la conexión
Las primitivas son similares a las de la capa de transporte solo que estas brindan mayores características y flexibilidad. Las primeras cuatro primitivas son ejecutadas en ese orden por un servidor.
Primero se utiliza la primitiva SOCKET para crear un nuevo punto de comunicación y asignarle espacio en las tablas para la comunicación, además se selecciona un tipo de servicio y un protocolo de comunicación a utilizar. Luego mediante BIND se asigna una dirección de red al socket para que los clientes puedan conectarse a él. Una llamada a LISTEN, asigna el espacio necesario para poner en cola las llamadas entrantes por si varios clientes intentan conectarse al mismo tiempo (esta no es una llamada bloqueadora). La primitiva ACCEPT bloquea en espera de una conexión entrante, cuando una conexión entrante llega se crea un nuevo socket con las mismas propiedades del original y se devuelve un descriptor de archivo para él, que puede utilizarse para leer y escribir de la forma estándar, al igual que si fuese un archivo. Del lado del cliente, aquí también se comienza creando un socket con la primitiva SOCKET pero luego no se usa la sentencia BIND puesto que la dirección de nuestro socket no es de importancia para el servidor. La primitiva CONNECT bloquea al invocador y comienza activamente el proceso de conexión. Al completarse éste (es decir cuando se recibe la PDU de transporte del servidor) el proceso cliente se desbloquea y se establece la conexión. Ambos lados pueden usar SEND y RECEIVE para transmitir y recibir datos sobre una conexión full-duplex, la liberación de los sockets es simétrica y se realiza cuando ambos lados ejecutan la primitiva CLOSE.
User Datagram Protocol (UDP)
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o recepción. Su uso principal es para protocolos como DHCP, BOOTP, DNS y demás protocolos en los que el intercambio de paquetes de la conexión/desconexión son mayores, o no son rentables con respecto a la información transmitida, así como para la transmisión de audio y vídeo en tiempo real, donde no es posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos. En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa de red y la capa de aplicación. UDP no otorga garantías para la entrega de sus mensajes y el origen UDP no retiene estados de los mensajes UDP que han sido enviados a la red. UDP sólo añade multiplexado de aplicación y suma de verificación de la cabecera y la carga útil. Cualquier tipo de garantías para la transmisión de la información deben ser implementadas en capas superiores. Puerto origen (2 bytes) Puerto destino (2 bytes) Longitud del datagrama (2 bytes) Checksum (de todo el “paquete”) (2 bytes) Datos (62 Kbytes)
La cabecera UDP consta de 4 campos de los cuales 2 son opcionales (con fondo rojo en la tabla). Los campos de los puertos fuente y destino son campos de 16 bits que identifican el proceso de origen y recepción. Ya que UDP carece de un servidor de estado y el origen UDP no solicita respuestas, el puerto origen es opcional. En caso de no ser utilizado, el puerto origen debe ser puesto a cero. A los campos del puerto destino le sigue un campo obligatorio que indica el tamaño en bytes del datagrama UDP incluidos los datos. El valor mínimo es de 8 bytes. El campo de la cabecera restante es una suma de comprobación de 16 bits que abarca la cabecera, los datos y una pseudo-cabecera con las IP origen y destino, el protocolo, la longitud del datagrama y 0's hasta completar un múltiplo de 16. pero no los datos. El checksum también es opcional, aunque generalmente se utiliza en la práctica. El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vídeo y resulta más importante transmitir con velocidad que garantizar el hecho de que lleguen absolutamente todos los bytes. Puertos UDP utiliza puertos para permitir la comunicación entre aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que el rango de valores válidos va de 0 a 65.535. El puerto 0 está reservado, pero es un valor permitido como puerto origen si el proceso emisor no espera recibir mensajes como respuesta. Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con uno de estos puertos requiere acceso como superusuario. Los puertos 1024 a 49.151 son puertos registrados. Los puertos 49.152 a 65.535 son puertos efímeros y son utilizados como puertos temporales, sobre todo por los clientes al comunicarse con los servidores. Transmission Control Protocol (TCP)
TCP (Transmission-Control-Protocol, en español Protocolo de Control de Transmisión) es uno de los protocolos fundamentales en Internet, es fiable, orientado a conexión y trabaja en la capa de transporte del modelo TCP/IP. El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto. TCP da soporte a muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP, SSH y FTP. Funciones de TCP Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe libre de errores, sin pérdidas y con seguridad.
Los servicios provistos por TCP corren en el anfitrión (host) de cualquiera de los extremos de una conexión, no en la red. Por lo tanto, TCP es un protocolo para manejar conexiones de extremo a extremo. Tales conexiones pueden existir a través de una serie de conexiones punto a punto, por lo que estas conexiones extremo-extremo son llamadas circuitos virtuales. Las características de TCP son:
Orientado a conexión: dos computadoras establecen una conexión para intercambiar datos. Los sistemas de los extremos se sincronizan con el otro para manejar el flujo de paquetes y adaptarse a la congestión de la red. Operación Full-Duplex: una conexión TCP es un par de circuitos virtuales, cada uno en una dirección. Sólo los dos sistemas finales sincronizados pueden usar la conexión. Error Checking: una técnica de checksum es usada para verificar que los paquetes no estén corrompidos. Acknowledgements (ACK): sobre recibo de uno o más paquetes, el receptor regresa un acknowledgement (reconocimiento) al transmisor indicando que recibió los paquetes. Si los paquetes no son notificados, el transmisor puede reenviar los paquetes o terminar la conexión si el transmisor cree que el receptor no está más en la conexión. Flow Control: si el transmisor está desbordando el buffer del receptor por transmitir demasiado rápido, el receptor descarta paquetes. Los acknowledgement fallidos que llegan al transmisor le alertan para bajar la tasa de transferencia o dejar de transmitir. Servicio de recuperación de Paquetes: el receptor puede pedir la retransmisión de un paquete. Si el paquete no es notificado como recibido (ACK), el transmisor envía de nuevo el paquete.
Los servicios confiables de entrega de datos son críticos para aplicaciones tales como transferencias de archivos (FTP por ejemplo), servicios de bases de datos, proceso de transacciones y otras aplicaciones de misión crítica en las cuales la entrega de cada paquete debe ser garantizada. Formato de los Segmentos TCP
Tamaño(4)
Puerto origen (16) Puerto destino (16) Número de secuencia (32) Número de ACK (32) Reserv.(4) C E U A P R S F Tamaño de la ventana (16) W R
C E
R G
C K
S H
S T
Y N
I N
CHECKSUM de cabecera (16) Punto de urgencia (16) Opciones (Variables) DATOS Las aplicaciones envían flujos de bytes a la capa TCP para ser enviados a la red. TCP divide el flujo de bytes llegado de la aplicación en segmentos de tamaño apropiado (normalmente esta limitación viene impuesta por la unidad máxima de transferencia (MTU) del nivel de enlace de datos de la red a la que la entidad está asociada) y le añade sus cabeceras. Entonces, TCP pasa el segmento resultante a la capa IP, donde a través de la red, llega a la capa TCP de la entidad destino. TCP comprueba que ningún segmento se ha perdido dando a cada uno un número de secuencia, que es también usado para asegurarse de que los paquetes han llegado a la entidad destino en el orden correcto. TCP devuelve un asentimiento por
bytes que han sido recibidos correctamente; un temporizador en la entidad origen del envío causará un timeout si el asentimiento no es recibido en un tiempo razonable, y el (presuntamente desaparecido) paquete será entonces retransmitido. TCP revisa que no haya bytes dañados durante el envío usando un checksum; es calculado por el emisor en cada paquete antes de ser enviado, y comprobado por el receptor.
Puerto de origen (16 bits): Identifica el puerto a través del que se envía. Puerto destino (16 bits): Identifica el puerto del receptor. Número de secuencia (32 bits): Sirve para comprobar que ningún segmento se ha perdido, y que llegan en el orden correcto. Su significado varía dependiendo del valor de SYN:
Si el flag SYN está activo (1), entonces este campo indica el número inicial de secuencia (con lo cual el número de secuencia del primer byte de datos será este número de secuencia más uno). Si el flag SYN no está activo (0), entonces este campo indica el número de secuencia del primer byte de datos.
Número de acuse de recibo (ACK) (32 bits): Si el flag ACK está puesto a activo, entonces en este campo contiene el número de secuencia del siguiente paquete que el receptor espera recibir. Longitud de la cabecera TCP (4 bits): Especifica el tamaño de la cabecera TCP en palabras de 32bits. El tamaño mínimo es de 5 palabras, y el máximo es de 15 palabras (lo cual equivale a un tamaño mínimo de 20 bytes y a un máximo de 60 bytes). En inglés el campo se denomina “Data offset”, que literalmente sería algo así como “desplazamiento hasta los datos”, ya que indica cuántos bytes hay entre el inicio del paquete TCP y el inicio de los datos. Reservado (4 bits): Bits reservados para uso futuro, deberían ser puestos a cero. Bits de control (flags) (8 bits): Son 8 flags o banderas. Cada una indica “activa” con un 1 o “inactiva” con un 0.
CWR o “Congestion Window Reduced” (1 bit): Este flag se activa (se pone a 1) por parte del emisor para indicar que ha recibido un paquete TCP con el flag ECE activado. El flag ECE es una extensión del protocolo que fue añadida a la cabecera en el RFC 3168. Se utiliza para el control de la congestión en la red. ECE o “ECN-Echo” (1 bit): Indica que el receptor puede realizar notificaciones ECN. La activación de este flag se realiza durante la negociación en tres pasos para el establecimiento de la conexión. Este flag también fue añadido a la cabecera en el RFC 3168. URG o “urgent” (1 bit, ver URG): Si está activo significa que el campo “Urgente” es significativo, si no, el valor de este campo es ignorado. ACK o “acknowledge” (1 bit, ver ACK): Si está activo entonces el campo con el número de acuse de recibo es válido (si no, es ignorado). PSH o “push” (1 bit, ver PSH): Activa/desactiva la función que hace que los datos de ese segmento y los datos que hayan sido almacenados anteriormente en el buffer del receptor deben ser transferidos a la aplicación receptora lo antes posible. RST o “reset” (1 bit, ver Flag RST): Si llega a 1, termina la conexión sin esperar respuesta. SYN o “synchronize” (1 bit, ver SYN): Activa/desactiva la sincronización de los números de secuencia. FIN (1 bit, ver FIN): Si se activa es porque no hay más datos a enviar por parte del emisor, esto es, el paquete que lo lleva activo es el último de una conexión.
Ventana (16 bits): Es el tamaño de la ventana de recepción, que especifica el número de bytes que el receptor está actualmente esperando recibir. Suma de verificación (checksum) (16 bits): Es una suma de verificación utilizada para comprobar si hay errores tanto en la cabecera como en los datos. Puntero urgente (16 bits): Si el flag URG está activado, entonces este campo indica el desplazamiento respecto al número de secuencia que indica el último byte de datos marcados como “urgentes”. Opciones (número de bits variable): La longitud total del campo de opciones ha de ser múltiplo de una palabra de 32 bits (si es menor, se ha de rellenar al múltiplo más cercano), y el campo que indica la longitud de la cabecera ha de estar ajustado de forma adecuada. Datos (número de bits variable): No forma parte de la cabecera, es la carga (payload), la parte con los datos del paquete TCP. Pueden ser datos de cualquier protocolo de nivel superior en el nivel de aplicación; los protocolos más comunes para los que se usan los datos de un paquete TCP son HTTP, telnet, SSH, FTP, etcétera.
Establecimiento y liberación de una conexión Las conexiones TCP se componen de tres etapas: establecimiento de conexión, transferencia de datos y fin de la conexión. Para establecer la conexión se usa el procedimiento llamado negociación en tres pasos (3-way handshake). Una negociación en cuatro pasos (4-way handshake) es usada para la desconexión. Establecimiento de la conexión (negociación en tres pasos)
El host receptor, que en el caso de más común será un servidor, espera pasivamente una conexión ejecutando las primitvas LISTEN y ACCEPT. En primer lugar, el host que desea iniciar la conexión ejecuta una primitiva CONNECT especificando la dirección IP y el puerto con el que se desea conectar, el tamaño máximo del segmento que está dispuesto a aceptar y opcionalmente otros datos. Entonces la primitiva CONNCET hace una apertura activa, enviando al otro host un paquete que tiene el bit SYN activado, indicándole también el número de secuencia inicial "x" que usará para enviar sus mensajes.
El host receptor recibe el segmento revisa si hay algún proceso activo que haya ejecutado un LISTEN en el puerto solicitado, es decir, preparado para recibir datos por ese puerto. Si lo hay, el proceso a la escucha recibe el segmento TCP entrante, registra el número de secuencia "x" y, si desea abrir la conexión, responde con un acuse de recibo "x + 1" con el bit SYN activado e incluye su propio número de secuencia inicial "y", dejando entonces abierta la conexión por su extremo. El número de acuse de recibo "x + 1" significa que el host ha recibido todos los octetos hasta e incluyendo "x", y espera "x + 1" a continuación. Si no desea establecer la conexión, envía una contestación con el bit RST activado, para que el host en el otro extremo lo sepa. El primer host recibe el segmento y envía su confirmación con el bit ACK encendido y SYN apagado, momento a partir del cual puede enviar datos al otro extremo, abriendo entonces la conexión por su extremo y completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexión. La máquina receptora recibe la confirmación y entiende que el otro extremo ha abierto ya su conexión, por lo que a partir de ese momento también puede ella enviar datos. Con esto, la conexión ha quedado abierta en ambos sentidos. Transferencia de datos Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y robustez del protocolo. Entre ellos están incluido el uso del número de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y asentimientos y temporizadores para detectar pérdidas y retrasos. Durante el establecimiento de conexión TCP, los números iniciales de secuencia son intercambiados entre las dos entidades TCP. Estos números de secuencia son usados para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de los datos de la aplicación. Siempre hay un par de números de secuencia incluidos en todo segmento TCP, referidos al número de secuencia y al número de asentimiento (ACK). Un emisor TCP se refiere a su propio número de secuencia cuando habla de número de secuencia, mientras que con el número de asentimiento se refiere al número de secuencia del receptor. Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando que ha recibido una parte del flujo continuo de bytes. A través del uso de números de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del flujo de bytes a la aplicación receptora. Un checksum de 16 bits de la cabecera y datos del segmento TCP, es calculado por el emisor, e incluido en la transmisión del segmento. El receptor TCP simplemente calcula la suma en complemento a uno con el checksum incluido, y el resultado debe ser igual a 0. Si es así, se asume que el segmento ha llegado intacto y sin errores. Hay que fijarse en que el checksum de TCP también cubre los 96 bit de la cabecera que contiene la dirección origen, la dirección destino, el protocolo y el tamaño TCP. Esto proporciona protección contra paquetes mal dirigidos por errores en las direcciones. Los asentimientos (ACK) de los datos enviados o la falta de ellos, son usados por los emisores para interpretar las condiciones de la red entre el emisor y receptor TCP. Unido a los temporizadores, los emisores y receptores TCP pueden alterar el comportamiento del movimiento de datos. TCP usa una
serie de mecanismos para conseguir un alto rendimiento y evitar la congestión de la red (la idea es enviar tan rápido como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana deslizante, que controla que el transmisor mande información dentro de los límites del buffer del receptor, y algoritmos de control de flujo. Tamaño de ventana TCP El tamaño de la ventana de recepción TCP es la cantidad de datos recibidos (en bytes) que pueden ser metidos en el buffer de recepción durante la conexión. La entidad emisora puede enviar una cantidad determinada de datos pero antes debe esperar un asentimiento con la actualización del tamaño de ventana por parte del receptor. Un ejemplo sería el siguiente: un receptor comienza con un tamaño de ventana x y recibe y bytes, entonces su tamaño de ventana será (x - y) y el transmisor sólo podrá mandar paquetes con un tamaño máximo de datos de (x - y) bytes. Los siguientes paquetes recibidos seguirán restando tamaño a la ventana de recepción. Esta situación seguirá así hasta que la aplicación receptora recoja los datos del buffer de recepción. Ventana deslizante Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamaño de ventana mayor. El campo TCP de tamaño de ventana controla el movimiento de datos y está limitado a 16 bits, es decir, a un tamaño de ventana de 65.535 bytes. Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP (TCP window scale) es una opción usada para incrementar el máximo tamaño de ventana desde 65.535 bytes, a 1 Gigabyte. La opción de escala de ventana TCP es usada solo durante la negociación en tres pasos que constituye el comienzo de la conexión. El valor de la escala representa el número de bits desplazados a la izquierda de los 16 bits que forman el campo del tamaño de ventana. El valor de la escala puede ir desde 0 (sin desplazamiento) hasta 14. Hay que recordar que un número binario desplazado un bit a la izquierda es como multiplicarlo en base decimal por 2. Fin de la conexión
La fase de finalización de la conexión usa una negociación en cuatro pasos (four-way handshake), terminando la conexión desde cada lado independientemente. Cuando uno de los dos extremos de la conexión desea parar su "mitad" de conexión transmite un paquete FIN, que el otro interlocutor asentirá con un ACK. Por tanto, una desconexión típica requiere un par de segmentos FIN y ACK desde cada lado de la conexión. Una conexión puede estar "medio abierta" en el caso de que uno de los lados la finalice pero el otro no. El lado que ha dado por finalizada la conexión no puede enviar más datos pero la otra parte si podrá. Puertos TCP TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicación emisora o receptora. Los puertos son clasificados en tres categorías: bien conocidos, registrados y dinámicos/privados. Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). Los puertos registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero también pueden representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151). Los puertos dinámicos/privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos dinámicos/privados no tienen significado fuera de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados: 49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 números, del 0 al 65535) Aplicaciones de TCP y UDP
UDP: proporciona un nivel de transporte no fiable de datagramas, ya que apenas añade la información necesaria para la comunicación extremo a extremo al paquete que envía al nivel inferior. Lo utilizan aplicaciones como NFS (Network File System) y RCP (comando para copiar ficheros entre ordenadores remotos), pero sobre todo se emplea en tareas de control y en la transmisión de audio y vídeo a través de una red. No introduce retardos para establecer una conexión, no mantiene estado de conexión alguno y no realiza seguimiento de estos parámetros. Así, un servidor dedicado a una aplicación particular puede soportar más clientes activos cuando la aplicación corre sobre UDP en lugar de sobre TCP.
TCP: es el protocolo que proporciona un transporte fiable de flujo de bits entre aplicaciones. Está pensado para poder enviar grandes cantidades de información de forma fiable, liberando al programador de la dificultad de gestionar la fiabilidad de la conexión (retransmisiones, pérdida de paquetes, orden en el que llegan los paquetes, duplicados de paquetes, etc.) que gestiona el propio protocolo. Pero la complejidad de la gestión de la fiabilidad tiene un coste en eficiencia, ya que para llevar a cabo las gestiones anteriores se tiene que añadir bastante información a los paquetes que enviar. Debido a que los paquetes para enviar tienen un tamaño máximo, cuanta más información añada el protocolo para su gestión, menos información que proviene de la aplicación podrá contener ese paquete (el segmento TCP tiene una sobrecarga de 20 bytes en cada segmento, mientras que UDP solo añade 8 bytes). Por eso, cuando es más importante la
velocidad que la fiabilidad, se utiliza UDP. En cambio, TCP asegura la recepción en destino de la información para transmitir. Los servicios confiables de entrega de datos son críticos para aplicaciones tales como transferencias de archivos (FTP por ejemplo), servicios de bases de datos, proceso de transacciones y otras aplicaciones de misión crítica en las cuales la entrega de cada paquete debe ser garantizada. Domain Name System (DNS) El sistema de nombre de dominio (en inglés Domain Name System, DNS) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado al internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignados a cada uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para los humanos en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente. Otras de sus funciones son, definir una zona de seguridad de un dominio permitiendo administrar la seguridad y los recursos, dado que un nombre de dominio tendrá asociado registros de recursos, usuarios y permisos. Dominio: Conjunto de equipos que brindan a otros equipos servicios similares.
Servidores (Equipos con SO específicos para prestar servicios) Usuarios Host (Cualquier dispositivo dentro de la red que pueda tener una dirección IP, ej. Una pc, un teléfono ip, una impresora de red, etc)
Los usuarios generalmente no se comunican directamente con el servidor DNS: la resolución de nombres se hace de forma transparente por las aplicaciones del cliente (por ejemplo, navegadores, clientes de correo y otras aplicaciones que usan Internet). Al realizar una petición que requiere una búsqueda de DNS, la petición se envía al servidor DNS local del sistema operativo. El sistema operativo, antes de establecer ninguna comunicación, comprueba si la respuesta se encuentra en la memoria caché. En el caso de que no se encuentre, la petición se enviará a uno o más servidores DNS median segmentos UDP en forma jerárquicamente ascendente. La mayoría de usuarios domésticos utilizan como servidor DNS el proporcionado por el proveedor de servicios de Internet. La dirección de estos servidores puede ser configurada de forma manual o automática mediante DHCP. En otros casos, los administradores de red tienen configurados sus propios servidores DNS.
En cualquier caso, los servidores DNS que reciben la petición, buscan en primer lugar si disponen de la respuesta en la memoria caché. Si es así, sirven la respuesta; en caso contrario, iniciarían la búsqueda de manera recursiva (pregunta a sus servidores). Una vez encontrada la respuesta, el servidor DNS guardará el resultado en su memoria caché para futuros usos y devuelve el resultado. Cuando guardan el resultado en cache lo hacen con un “tiempo de vida” corto dado que si el otro servidor modifica ese registro, los cambios no se propagan a las cache de los otros servidores. Espacio de Nombres del DNS Conceptualmente, internet se divide en 200 dominios de nivel superior, cada uno de los cuales abarca muchos host y otros subdominios. Los dominios de nivel superior pueden dividirse en dos categorías, los genéricos y por país (el gráfico solo representa las genéricas).
El espacio de nombres de dominio tiene una estructura de árbol. Las hojas y los nodos del árbol se utilizan como etiquetas de los medios. Un nombre de dominio completo de un objeto consiste en la concatenación de todas las etiquetas de un camino. Las etiquetas son cadenas alfanuméricas (con '-' como único símbolo permitido), deben contar con al menos un carácter y un máximo de 63 caracteres de longitud, y deberá comenzar con una letra (y no con '-'). Las etiquetas individuales están separadas
por puntos. Un nombre de dominio termina con un punto (aunque este último punto generalmente se omite, ya que es puramente formal). Un FQDN correcto (también llamado Fully Qualified Domain Name), es por ejemplo este: www.example.com. (Incluyendo el punto al final) Un nombre de dominio debe incluir todos los puntos y tiene una longitud máxima de 255 caracteres. Un nombre de dominio se escribe siempre de derecha a izquierda. El punto en el extremo derecho de un nombre de dominio separa la etiqueta de la raíz de la jerarquía (en inglés, root). Este primer nivel es también conocido como dominio de nivel superior (TLD). Los objetos de un dominio DNS (por ejemplo, el nombre del equipo) se registran en un archivo de zona, ubicado en uno o más servidores de nombres. Tipos de servidores DNS
Primarios: Guardan los datos de un espacio de nombres en sus ficheros. Secundarios: Obtienen los datos de los servidores primarios a través de una transferencia de zona. Locales o Caché: Funcionan con el mismo software, pero no contienen la base de datos para la resolución de nombres. Cuando se les realiza una consulta, estos a su vez consultan a los servidores secundarios, almacenando la respuesta en su base de datos para agilizar la repetición de estas peticiones en el futuro continuo o libre.
Tipos de resolución de nombres de dominio
Recursiva: En las consultas recursivas, consisten en la mejor respuesta que el servidor de nombres pueda dar. El servidor de nombres consulta sus datos locales (incluyendo su caché) buscando los datos solicitados y si no los encuentra, pregunta a sus servidores hasta dar la respuesta.
Iterativa: Las consultas iterativas, o resolución iterativa el servidor no tiene la información en sus datos locales, y devuelve el nombre del siguiente servidor a intentar, y se repite el mismo proceso básico (consultar al nuevo servidor remoto y seguir a la siguiente referencia) hasta que obtiene la respuesta a la pregunta.
El proceso de resolución normal se da de la siguiente manera: 1. 2. 3. 4. 5. 6. 7. 8. 9.
El servidor A recibe una consulta recursiva desde el cliente DNS. El servidor A envía una consulta iterativa a B. El servidor B refiere a A otro servidor de nombres, incluyendo a C. El servidor A envía una consulta iterativa a C. El servidor C refiere a A otro servidor de nombres, incluyendo a D. El servidor A envía una consulta iterativa a D. El servidor D responde. El servidor A regresa la respuesta al resolver. El resolver entrega la resolución al programa que solicitó la información.
Registros de Recursos Cada dominio, sea un host individual o un dominio de nivel superior, puede tener un gripo de registros de recursos asociados a él. En un host individual, el registro de recursos más común es simplemente su dirección de IP, pero existen muchos otros registros que pueden asociarse a él. Cuando un resolvedor (es el elemento del navegador web o del sistema operativo que realiza las peticiones al servidor DNS) da un nombre de dominio al DNS, lo que recibe son los registros de recursos asociados a ese nombre. Por lo tanto la función real del DNS es relacionar dominios de nombre con los registros de recursos. El formato es el siguiente: NombreDominio TiempoDeVida Clase
Tipo
Valor
NombreDominio: Indica el dominio al que pertenece ese registro. TiempoDeVida: Indica la estabilidad del registro en segundos, una información estable recibe un valor alto, mientras que una inestable recibirá un valor bajo. Clase: Indica la clase, por ejemplo para información sobre internet dirá IN Tipo: Indica el tipo de registro, algunos ejemplos pueden ser: o SOA = Start of authority – (Autoridad de la zona) Proporciona información sobre la zona. Proporciona el nombre de la fuente primaria de información sobre la zona del servidor de nombres. o A = Address – (Dirección) Este registro se usa para traducir nombres de hosts a direcciones IPv4 ya que contiene la dirección IP de algún host. o MX (registro) = Mail Exchange – (Registro de Intercambio de Correo) Asocia un nombre de dominio a una lista de servidores de intercambio de correo para ese dominio. o NS = Name Serveri – (Servidor de Nombres) Define la asociación que existe entre un nombre de dominio y los servidores de nombres que almacenan la información de dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres. o CNAME = Canonical Name – (Nombre Canónico) Se usa para crear nombres de hosts adicionales, o alias, para los hosts de un dominio. Es usado cuando se están corriendo múltiples servicios (como ftp y web server) en un servidor con una sola direccion ip. Cada servicio tiene su propia entrada de DNS (como ftp.ejemplo.com. y www.ejemplo.com.). esto también es usado cuando corres múltiples servidores http, con diferentes nombres, sobre el mismo host. o PTR = Pointer – (Indicador) También conocido como 'registro inverso', funciona a la inversa del registro A, traduciendo IPs en nombres de dominio. o HINFO = Host INFOrmation – (Información del sistema informático) Descripción del host, permite que la gente conozca el tipo de máquina y sistema operativo al que corresponde un dominio. o TXT = TeXT - (Información textual) Permite a los dominios identificarse de modos arbitrarios.
Temas del programa no abordados: Configuración de servidores DNS.
File Transfer Protocol (FTP) FTP (sigla en inglés de File Transfer Protocol - Protocolo de Transferencia de Archivos) en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo. El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor, o apropiarse de los archivos transferidos (para solucionar este problema son de gran utilidad aplicaciones como scp y sftp). Con la llegada del World Wide Web, y de los navegadores, ya no es necesario conocer los complejos comandos de FTP, este protocolo se puede utilizar escribiendo la URL del servidor al que queramos conectar en el navegador web, indicando con ftp:// que vamos a contactar con un servidor ftp y no con un servidor web (que sería http:// ). El Modelo FTP
En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al proceso servidor a través de la conexión de control. Las respuestas estándar se envían desde el PI del servidor al PI de usuario por la conexión de control como respuesta a las órdenes. Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema de archivos (almacenar, recuperar, añadir, borrar, etc.). El proceso de transferencia de datos (DTP) de usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos
especificado (puerto 20 en modo activo o estándar) y transferir los datos en función de los parámetros que se hayan especificado. La conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el tiempo que dura la conexión FTP. Servidor FTP Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su función es permitir el intercambio de datos entre diferentes servidores/ordenadores. Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web o como servidor de backup de los archivos importantes que pueda tener una empresa (se cifran los datos con SFTP). Cliente FTP Un cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos. Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el ordenador en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra. Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica, aunque muchos navegadores tienen ya integrado FTP. Tipos de acceso
Acceso anónimo: Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USER ID' o una cuenta de usuario. Es la manera más cómoda fuera del servicio web de permitir que todo el mundo tenga acceso a cierta información, aunque con menos privilegios que un usuario normal. Normalmente solo podrás leer y copiar los archivos existentes, pero no modificarlos ni crear otros nuevos. Por lo general, se utiliza un servidor FTP anónimo para depositar grandes archivos que no tienen utilidad si no son transferidos a la máquina del usuario, como por ejemplo programas, y se reservan los servidores de páginas web (HTTP) para almacenar información textual destinada a la lectura en línea. Acceso de usuario: Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificación de archivos existentes, y de posibilidad de subir nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la información de las distintas cuentas de usuario que pueden acceder a él, de manera que para iniciar una sesión FTP debemos introducir una autentificación (login) y una contraseña (password) que nos identifica unívocamente. Acceso de invitado: El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP
denominado invitado (guest), que se puede contemplar como una mezcla de los dos anteriores. La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a la máquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de esta forma accederá a un entorno restringido, algo muy similar a lo que sucede en los accesos anónimos, pero con más privilegios. Cliente FTP basado en Web Un 'cliente FTP basado en WEB' no es más que un Cliente FTP al cual podemos acceder a través de nuestro Navegador Web sin necesidad de tener otra aplicación para ello. El usuario accede a un servidor web (http) que lista los contenidos de un servidor ftp. El usuario se conecta mediante http a un servidor web, y el servidor web se conecta mediante ftp al servidor ftp. El servidor web actúa de intermediario haciendo pasar la información desde el servidor ftp en los puertos 20 y 21 hacia el puerto 80 http que ve el usuario. Modos de conexión del cliente FTP FTP admite dos modos de conexión del cliente. Estos modos se denominan Activo (o Estándar, o PORT, debido a que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión) y Pasivo (o PASV, porque en este caso envía comandos tipo PASV). Tanto en el modo Activo como en el modo Pasivo, el cliente establece una conexión con el servidor mediante el puerto 21, que establece el canal de control. Modo Activo
En modo Activo, el servidor siempre crea el canal de datos en su puerto 20, mientras que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente manda un comando PORT al servidor por el canal de control indicándole ese número de puerto, de manera que el servidor pueda abrirle una conexión de datos por donde se transferirán los archivos y los listados, en el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es que la máquina cliente debe estar dispuesta a aceptar cualquier conexión de entrada en un puerto superior al 1024, con los problemas que ello implica si tenemos el equipo conectado a una red insegura como Internet. De hecho, los cortafuegos que se instalen en el equipo para evitar ataques seguramente rechazarán esas conexiones aleatorias. Para solucionar esto se desarrolló el modo Pasivo. Modo Pasivo
Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal de control, el puerto (mayor a 1023 del servidor. Ej:2040 ) al que debe conectarse el cliente. El cliente inicia una conexión desde el puerto siguiente al puerto de control (Ej: 1036) hacia el puerto del servidor especificado anteriormente (Ej: 2040). Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control (PORT o PASV, según el modo en el que haya conectado), y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en modo pasivo) o por el puerto 20 (si está en modo activo). Tipos de transferencia de archivos en FTP Es importante conocer cómo debemos transportar un archivo a lo largo de la red. Si no utilizamos las opciones adecuadas podemos destruir la información del archivo. Por eso, al ejecutar la aplicación FTP, debemos acordarnos de utilizar uno de estos comandos (o poner la correspondiente opción en un programa con interfaz gráfica):
type ascii
Adecuado para transferir archivos que sólo contengan caracteres imprimibles (archivos ASCII, no archivos resultantes de un procesador de texto), por ejemplo páginas HTML, pero no las imágenes que puedan contener.
type binary
Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio, etc. EXTENSION DEL ARCHIVO txt (texto) html (página WEB) doc (documento) ZIP (comprimido)
TIPO DE TRANSFERENCIA ascii ascii binario binario
Guía de comandos FTP Comando y argumentos open servidor close o disconnect bye o quit cd directorio delete archivo mdelete patrón dir get archivo mget archivos ls put archivo mput archivos pwd rename archivo rmdir directorio bin o binary ascii ? nombre de comando ? o help mkdir user
Acción que realiza Inicia una conexión con un servidor FTP Finaliza una conexión FTP sin cerrar el programa cliente Finaliza una conexión FTP y la sesión de trabajo con el programa cliente Cambia el directorio de trabajo en el servidor Borra un archivo en el servidor Borra múltiples archivos basado en un patrón que se aplica al nombre Muestra el contenido del directorio en el que estamos en el servidor Obtiene un archivo Obtiene múltiples archivos Muestra el contenido del directorio en el servidor Envía un archivo al directorio activo del servidor Envía múltiples archivos Muestra el directorio activo en el servidor Cambia el nombre a un archivo en el servidor Elimina un directorio en el servidor si ese directorio esta vacío Activa el modo de transferencia binario Activa el modo de transferencia en modo texto ASCII Muestra la información relativa al comando Muestra una lista de los comandos disponibles Crea el directorio indicado de forma remota Para cambiar nuestro nombre de usuario y contraseña sin necesidad de salir de la sesión ftp.-Trivial File Transfer Protocol (TFTP)
TFTP son las siglas de Trivial file transfer Protocol (Protocolo de transferencia de archivos trivial). Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre ordenadores en una red, como cuando un terminal X Window o cualquier otro cliente ligero que arranque desde un servidor de red.
Características de TFTP:
Utiliza UDP (en el puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza el puerto 21 TCP). No puede listar el contenido de los directorios. No existen mecanismos de autenticación o cifrado. Se utiliza para leer o escribir archivos de un servidor remoto. Soporta tres modos diferentes de transferencia, "netascii", "octet" y "mail", de los que los dos primeros corresponden a los modos "ascii" e "imagen" (binario) del protocolo FTP.
Detalles de una sesión TFTP Ya que TFTP utiliza UDP, no hay una definición formal de sesión, cliente y servidor. Sin embargo, cada archivo transferido vía TFTP constituye un intercambio independiente de paquetes, y existe una relación cliente-servidor informal entre la máquina que inicia la comunicación y la que responde.
La máquina A, que inicia la comunicación, envía un paquete RRQ (read request/petición de lectura) o WRQ (write request/petición de escritura) a la máquina B, conteniendo el nombre del archivo y el modo de transferencia. B responde con un paquete ACK (acknowledgement/confirmación), que también sirve para informar a A del puerto de la máquina B al que tendrá que enviar los paquetes restantes. La máquina origen envía paquetes de datos numerados a la máquina destino, todos excepto el último conteniendo 512 bytes de datos. La máquina destino responde con paquetes ACK numerados para todos los paquetes de datos. El paquete de datos final debe contener menos de 512 bytes de datos para indicar que es el último. Si el tamaño del archivo transferido es un múltiplo exacto de 512 bytes, el origen envía un paquete final que contiene 0 bytes de datos.
Temas del programa no abordados: Configuración TFTP. Simple Network Management Protocol El Protocolo Simple de Administración de Red o SNMP es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Es parte de la familia de protocolos TCP/IP. SNMP permite a los administradores supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento. Componentes básicos Una red administrada a través de SNMP consiste de tres componentes claves:
Dispositivos administrados: Un dispositivo administrado es un nodo de red que contiene un agente SNMP y reside en una red administrada. Estos recogen y almacenan información de administración, la cual es puesta a disposición de los NMS’s usando SNMP. Los dispositivos administrados, a veces llamados elementos de red, pueden ser routers, servidores de acceso, switches, bridges, hubs, computadores o impresoras.
Agentes: Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías. Sistemas administradores de red (NMS’s): Un NMS ejecuta aplicaciones que supervisan y controlan a los dispositivos administrados. Los NMS’s proporcionan el volumen de recursos de procesamiento y memoria requeridos para la administración de la red. Uno o más NMS’s deben existir en cualquier red administrada.
Comandos básicos Los dispositivos administrados son supervisados y controlados usando cuatro comandos SNMP básicos: lectura, escritura, notificación y operaciones transversales.
El comando de lectura es usado por un NMS para supervisar elementos de red. El NMS examina diferentes variables que son mantenidas por los dispositivos administrados. El comando de escritura es usado por un NMS para controlar elementos de red. El NMS cambia los valores de las variables almacenadas dentro de los dispositivos administrados. El comando de notificación es usado por los dispositivos administrados para reportar eventos en forma asíncrona a un NMS. Cuando cierto tipo de evento ocurre, un dispositivo administrado envía una notificación al NMS. Las operaciones transversales son usadas por el NMS para determinar qué variables soporta un dispositivo administrado y para recoger secuencialmente información en tablas de variables, como por ejemplo, una tabla de rutas.
Base de información de administración SNMP (MIB) Una Base de Información de Administración (MIB) es una colección de información que está organizada jerárquicamente. Las MIB’s son accedidas usando un protocolo de administración de red, como por ejemplo, SNMP. Un objeto administrado (algunas veces llamado objeto MIB, objeto, o MIB) es uno de cualquier número de características específicas de un dispositivo administrado. Los objetos administrados están compuestos de una o más instancias de objeto, que son esencialmente variables. Existen dos tipos de objetos administrados:
Escalares: Los objetos escalares definen una simple instancia de objeto. Tabulares: Los objetos tabulares definen múltiples instancias de objeto relacionadas que están agrupadas conjuntamente en tablas MIB.
Un identificador de objeto (object ID) identifica un objeto administrado en la jerarquía MIB. La jerarquía MIB puede ser representada como un árbol con una raíz anónima y los niveles, que son asignados por diferentes organizaciones.
Los identificadores de los objetos ubicados en la parte superior del árbol pertenecen a diferentes organizaciones estándares, mientras los identificadores de los objetos ubicados en la parte inferior del árbol son colocados por las organizaciones asociadas.
Los vendedores pueden definir ramas privadas que incluyen los objetos administrados para sus propios productos. Las MIB’s que no han sido estandarizadas típicamente están localizadas en la rama experimental. El objeto administrado atInput podría ser identificado por el nombre de objeto iso.identifiedorganization.dod.internet.private.enterprise.cisco.temporary.AppleTalk.atInput o por el descriptor de objeto equivalente 1.3.6.1.4.1.9.3.3.1. Mensajes SNMP Para realizar las operaciones básicas de administración anteriormente nombradas, el protocolo SNMP utiliza un servicio no orientado a la conexión (UDP) para enviar un pequeño grupo de mensajes (PDUs) entre los administradores y agentes. La utilización de un mecanismo de este tipo asegura que las tareas de administración de red no afectarán al rendimiento global de la misma, ya que se evita la utilización de mecanismos de control y recuperación como los de un servicio orientado a la conexión, por ejemplo TCP. Los puertos comúnmente utilizados para SNMP son los siguientes: Número Descripción 161 SNMP 162 SNMP-trap Los paquetes utilizados para enviar consultas y respuestas SNMP poseen el siguiente formato: Versión Comunidad SNMP PDU
Versión: Número de versión de protocolo que se está utilizando (por ejemplo 1 para SNMPv1); Comunidad: Nombre o palabra clave que se usa para la autenticación. Generalmente existe una comunidad de lectura llamada "public" y una comunidad de escritura llamada "private"; SNMP PDU: Contenido de la unidad de datos del protocolo, el que depende de la operación que se ejecute.
GetRequest: A través de este mensaje el NMS solicita al agente retornar el valor de un objeto de interés mediante su nombre. GetNextRequest: Este mensaje es usado para recorrer una tabla de objetos. Una vez que se ha usado un mensaje GetRequest para recoger el valor de un objeto, puede ser utilizado el mensaje GetNextRequest para repetir la operación con el siguiente objeto de la tabla. SetRequest: Este tipo de mensaje es utilizado por el NMS para solicitar a un agente modificar valores de objetos. Para realizar esta operación el NMS envía al agente una lista de nombres de objetos con sus correspondientes valores. GetResponse: Este mensaje es usado por el agente para responder un mensaje GetRequest, GetNextRequest, o SetRequest. En el campo "Identificador de Request" lleva el mismo identificador que el "request" al que está respondiendo.
Trap: Una trap es generado por el agente para reportar ciertas condiciones y cambios de estado a un proceso de administración (el formato de la PDU es diferente). GetBulkRequest: Este mensaje es usado por un NMS que utiliza la versión 2 ó 3 del protocolo SNMP típicamente cuando es requerida una larga transmisión de datos, tal como la recuperación de largas tablas. InformRequest: Un NMS que utiliza la versión 2 ó 3 del protocolo SNMP transmite un mensaje de este tipo a otro NMS con las mismas características, para notificar información sobre objetos administrados. SNMP puede utilizarse para:
Configurar dispositivos remotos. La información de configuración puede enviarse a cada host conectado a la red desde el sistema de administración.
Supervisar el rendimiento de la red. Puede hacer un seguimiento de la velocidad de procesamiento y el rendimiento de la red, y recopilar información acerca de las transmisiones de datos.
Detectar errores en la red o accesos inadecuados. Puede configurar las alarmas que se desencadenarán en los dispositivos de red cuando se produzcan ciertos sucesos. Cuando se dispara una alarma, el dispositivo envía un mensaje de suceso al sistema de administración. Entre las causas más frecuentes de alarma se incluye un dispositivo que se cierra y se reinicia, un error de un vínculo detectado en un enrutador y un acceso inadecuado.
Auditar el uso de la red. Puede supervisar el uso general de la red para identificar el acceso de un grupo o usuario, y los tipos de uso de servicios y dispositivos de la red. Puede utilizar esta información para generar una facturación directa de las cuentas o para justificar los costos actuales de la red y los gastos planeados. Correo Electrónico
Correo electrónico, o en inglés e-mail (electronic mail), es un servicio de red que permite a los usuarios enviar y recibir mensajes rápidamente mediante sistemas de comunicación electrónicos. Principalmente se usa este nombre para denominar al sistema que provee este servicio en Internet, mediante el protocolo SMTP, aunque por extensión también puede verse aplicado a sistemas análogos que usen otras tecnologías. Por medio de mensajes de correo electrónico se puede enviar, no solamente texto, sino todo tipo de documentos digitales. Su eficiencia, conveniencia y bajo coste (con frecuencia nulo) están logrando que el correo electrónico desplace al correo ordinario para muchos usos habituales. Arquitectura y Servicios Los sistemas de correo electrónico pueden ser divididos en dos subsistemas:
Agentes de usuario, que permiten a la gente leer y enviar correo electrónico. Agentes de transferencia de mensajes, que mueven los mensajes del origen al destino.
Por lo general los sistemas de correo electrónico desempeñan cinco funciones básicas:
Redacción, es el proceso mediante el cual se crean mensajes y respuestas. Transferencia, se refiere a mover el mensaje del remitente hacia el destinatario. Generación del informe, indica al remitente lo que ocurrió con el informe. Visualización, permite ver los mensajes de entrada para leerlos. Disposición, es el paso final y tiene que ver con lo que el destinatario hace con el mensaje una vez que lo recibe (leerlo, eliminarlo, guardarlo, etc.).
Otros servicios que brinda el correo electrónico son, permitir crear buzones de correo para el almacenamiento de los mensajes, tener listas de correo y al enviar un mensaje a la lista que este se envíe a todas las direcciones que pertenecen a la lista, crear copias, correo electrónico de alta prioridad, correo electrónico secreto (encriptado), destinatarios alternos si es que el primero no se encuentra disponible, etc. Formato del mensaje Una idea clave de todos los sistemas modernos de correo electrónico es la distinción entre el sobre y su contenido.
Sobre: Encapsula el mensaje y contiene toda la información necesaria para trasportar el mensaje (dirección de destino, prioridad, nivel de seguridad). Los agentes de transporte utilizarán el sobre para enrutar al igual que la oficina postal. Mensaje: El mensaje dentro del sobre contiene dos partes: o Encabezado: Contiene información de control para los agentes de usuario. Cada campo del encabezado es una sola línea de texto con el formato “nombreCapo:Valor”. Los usuarios pueden inventar nuevos capos de encabezado para uso privado siempre y cuando comiencen con “X-nombreDelEncabezado“, algunos campos conmúnmente utilizados son: To: Indica la dirección DNS del destinatario primario. Cc: Indica la dirección de los destinatarios secundarios (en términos de entrega no existe diferencia alguna entre los destinatarios primarios y secundarios). Bcc: Permite mandar copiar sin que los destinatarios sepan a quienes otros estaba dirigido el mensaje. From: Indica la persona que creó el mensaje (puede ser distinto de quien envía). Sender: Indica la dirección DNS del remitente. Received: Esta línea la agrega cada agente de transferencia en la ruta (para detectar errores). Return-Path: Puede usarse para identificar una ruta de regreso al remitente. Subject: Resumen del mensaje. Date: Fecha y hora en que el mensaje fue enviado. Etc. o Cuerpo: Es por completo para el destinatario humano. Los usuarios pueden escribir en ASCII el contenido del mensaje que será leído por el/los destinatarios.
Multipurpose Internet Mail Extensions (MIME) Antiguamente los correos electrónicos eran solo mensajes ASCII en inglés. Hoy existen mensajes en idiomas con acentos, con caracteres chinos o japoneses, y mensajes con imágenes, audio y video. La idea básica de MIME es continuar usando el formato de los mensajes de correo electrónico, pero agregar una estructura al cuerpo del mensaje y definir reglas de codificación para mensajes no ASCII. Al mantener el formato de los mensajes de correo electrónico existentes, los mensajes MIME pueden ser enviados usando los protocolos existentes (solo cambiar los programas emisores y receptores). MIME define cinco nuevos encabezados de mensaje: Encabezado MIME-Version Content-Description Conten-Id Content-Transfer-Encoding Conten-Type
Significado Indica la versión de MIME utilizada Cadena de texto que describe el contenido Identificador único del contenido Cómo se envuelve el mensaje para su transmisión Naturaleza del mensaje
Agente de Usuario Un agente de usuario normalmente es un programa que acepta una variedad de comandos para redactar, recibir y contestar los mensajes, así como para manipular el buzón de correo. Algunos agentes de usuario tiene interfaz y otros trabajan por líneas de comando pero funcionalmente son iguales.
Envío de correo electrónico: Para enviar un mensaje el usuario debe proporcionar el mensaje, la dirección de destino y, posiblemente, algunos otros parámetros. La dirección de destino debe estar en un formato que el agente de usuario pueda maneja, mucho esperan direcciones DNS de la forma usuario@direccion-dns. Lectura de correo electrónico: Normalmente, cuando se inicia un agente de usuario, buscará en el buzón del usuario el correo electrónico recibido, antes de presentar otra cosa en la pantalla. Después de anunciará la cantidad de mensajes en el buzón y/o presentar un resumen de cada uno y esperará algún comando. Una vez realizado esto el usuario podrá leer, eliminar mensajes, etc.
Transferencia de Mensajes Simple Mail Tranfer Protocol (SMTP) En internet, el correo electrónico se entrega al hacer que la máquina de origen establezca una conexión TCP con el puerto 25 de la máquina de destino. Escuchando en este puerto está un demonio de correo electrónico que habla con el SMTP. Este demonio acepta conexiones de entrada y copia mensajes de ella a los buzones adecuados. Si no puede entregarse un mensaje, se devuelve al remitente un informe de error que contiene la primera parte del mensaje que no pudo entregarse. Después de establecer la conexión TCP con el puerto 25, la máquina emisora, operando como cliente, espera que la máquina receptora envíe una línea de texto que proporciona su identidad e indica si está
preparado o no para recibir correo. Si no lo está, el cliente libera la conexión y lo intenta después. Si está dispuesto a aceptar correo electrónico, el cliente anuncia de quién proviene el mensaje, y a quien está dirigido, si existe ese destinatario en el destino, el servidor da permiso al cliente de enviar su mensaje. A continuación el cliente envía el mensaje y el servidor confirma su recepción. Una vez que todo el correo que haya para enviar se ha intercambiado, se libera la conexión TCP. Pero existe el siguiente problema, ¿Qué ocurre si la máquina A quiere enviarle un correo a la máquina B y esta no está encendida? La máquina B no podrá recibir correo siendo que este servicio debería funcionar las 24 hs. Una solución sería que el ISP de la máquina B tenga su buzón y reciba los correos por ella y luego la máquina B consulte su buzón al ISP. Pero esta solución genera otro problema y es, ¿Cómo obtiene la máquina B el correo electrónico del agente de transferencia de mensajes del ISP? Post Office Protocol 3 (POP3) Es un protocolo que permite que los agentes de transferencia de usuarios en las PC de los clientes, contacten al agente de transferencia de mensajes en la máquina del ISP y que el correo electrónico se copie del ISP al usuario. POP3 inicia cuando el usuario arranca el lector de correo, éste llama al ISP y establece una conexión TCP con el agente de transferencia de mensajes en el puerto 110. Una vez que se ha establecido la conexión, el protocolo POP3 pasa por tres estados de secuencia:
Autorización, tiene que ver con el inicio de sesión por parte del usuario. Transacciones, se relaciona con el hecho de que el usuario colecte los mensajes de correo electrónico y los marque para eliminación del buzón. Actualización, se encarga de que los mensajes de correo electrónico sean realimente eliminados del ISP.
El problema de este protocolo es que descarga los mensajes en el disco duro de la PC cliente para que sea leídos. Internet Message Access Protocol (IMAP) A diferencia de POP3, que asume que el usuario vaciará el buzón de cada contacto y trabajará sin conexión después de eso, IMAP supone que todo el correo electrónico permanecerá en el servidor de manera indefinida en múltiples buzones de correo. IMAP proporciona mecanismos de gran alcance para leer mensajes o incluso partes de un mensaje y que permite grandes archivos adjuntos de audio y video; además proporciona mencanismos para crear, destruir y manipular múltiples buzones en el servidor (para usar uno para cada contacto). El servidor IMAP escucha el puerto 143.
Esquema de un caso típico
En este ejemplo ficticio, Ana (
[email protected]) envía un correo a Bea (
[email protected]). Cada persona está en un servidor distinto (una en a.org, otra en b.com), pero éstos se pondrán en contacto para transferir el mensaje. Por pasos: 1. Ana escribe el correo en su programa cliente de correo electrónico. Al darle a Enviar, el programa contacta con el servidor de correo usado por Ana (en este caso, smtp.a.org). Se comunica usando un lenguaje conocido como protocolo SMTP. Le transfiere el correo, y le da la orden de enviarlo. 2. El servidor SMTP ve que ha de entregar un correo a alguien del dominio b.com, pero no sabe con qué ordenador tiene que contactar. Por eso consulta a su servidor DNS (usando el protocolo DNS), y le pregunta quién es el encargado de gestionar el correo del dominio b.com. Técnicamente, le está preguntando el registro MX asociado a ese dominio. 3. Como respuesta a esta petición, el servidor DNS contesta con el nombre de dominio del servidor de correo de Bea. En este caso es mx.b.com; es un ordenador gestionado por el proveedor de Internet de Bea. 4. El servidor SMTP (smtp.a.org) ya puede contactar con mx.b.com y transferirle el mensaje, que quedará guardado en este ordenador. Se usa otra vez el protocolo SMTP. 5. Más adelante (quizás días después), Bea aprieta el botón "Recibir nuevo correo" en su programa cliente de correo. Esto empieza una conexión, mediante el protocolo POP3 o IMAP, al ordenador que está guardando los correos nuevos que le han llegado. Este ordenador (pop3.b.com) es el
mismo que el del paso anterior (mx.b.com), ya que se encarga tanto de recibir correos del exterior como de entregárselos a sus usuarios. En el esquema, Bea recibe el mensaje de Ana mediante el protocolo POP3. Ésta es la secuencia básica, pero pueden darse varios casos especiales:
Si ambas personas están en la misma red (una Intranet de una empresa, por ejemplo), entonces no se pasa por Internet. También es posible que el servidor de correo de Ana y el de Bea sean el mismo ordenador. Ana podría tener instalado un servidor SMTP en su ordenador, de forma que el paso 1 se haría en su mismo ordenador. De la misma forma, Bea podría tener su servidor de correo en el propio ordenador. Una persona puede no usar un programa de correo electrónico, sino un webmail. El proceso es casi el mismo, pero se usan conexiones HTTP al webmail de cada usuario en vez de usar SMTP o IMAP/POP3. Normalmente existe más de un servidor de correo (MX) disponible, para que aunque uno falle, se siga pudiendo recibir correo.
Confidencialidad en el Correo Electrónico Cuando se envía un correo electrónico entre dos sitios distantes, por lo general pasará por muchas maquinas hasta llegar a su destino. Cualquiera de estas máquinas puede leer y registrar el mensaje. En la práctica no existe la privacidad, a diferencia de lo que muchos piensas. Un sistema seguro y ampliamente utilizado para brindar privacidad es PGP (Privacidad Bastante Buena). PGP encripta los datos utilizando un cifrado de bloques llamado IDEA (Algoritmo Internacional de Encriptación de Datos), que utiliza claves de 128bits. De manera conceptual, IDEA mezcla los bits en una serie de rondas, y para la administración de claves utiliza RSA. PGP soporta la compresión de texto, confidencialidad y firmas digitales, además de que proporciona características de administración extensa de claves. Temas del programa no abordados: Configuración de servidores de correo electrónico. World Wide Web (www) En informática, la World Wide Web, cuya traducción podría ser Red Global Mundial, es un sistema de documentos de hipertexto y/o hipermedios enlazados y accesibles a través de Internet. Con un navegador web, un usuario visualiza sitios web compuestos de páginas web que pueden contener texto, imágenes, videos u otros contenidos multimedia, y navega a través de ellas usando hiperenlaces. La www comenzó en 1989 en el CERN (Centro Europeo de Investigación Nuclear) y surgió por la necesidad de lograr que los grandes grupos de investigación dispersos internacionalmente, colaboren usando un conjunto siempre cambiante de informes, planos, dibujos, fotos y otros documentos.
Arquitectura Desde el punto de vista del usuario, Web consiste en un enorme conjunto de documentos a nivel mundial, generalmente llamados páginas web. Cada página puede contener vínculos a otras páginas relacionadas en cualquier lugar del mundo. Las páginas se ven mediante un programa llamado navegador, el cual obtiene la página solicitada, interpreta el texto y los comandos de formateo que contienen, y despliega la página formateada en pantalla, las cadenas de texto que son vínculos a otras páginas son llamadas hipervínculos y con solo hacer un click podremos solicitar al navegador que cargue esa otra página web. Funcionamiento del Cliente Un navegador es un programa que permite desplegar una página web y atrapar distintos eventos (clicks, tipeos, etc.) que se realicen a los elementos de las páginas. Las páginas se nombran utilizando URLs (Localizadores Uniformes de Recursos, por ejemplo http://www.abc.com/home.html), que sirven efectivamente como nombre mundial de la página. Una URL tiene tres partes:
Nombre del protocolo (http). Nombre del DNS de la máquina donde se localiza la página (www.abc.com). Nombre del archivo que contiene la página (home.html).
Cuando trata de visualizarse una página en el navegador, éste realiza una serie de pasos:
El navegador recibe la URL y pide al servidor DNS la dirección IP de www.abc.com El DNS responde con 156.242.125.26, y el navegador realiza una conexión TCP con el puerto 80 de dicha IP. El navegador envía un mensaje solicitando el archivo /home.html y el servidor www.abc.com lo envía Se libera la conexión TCP y el navegador despliega el contenido del archivo.
Aunque in navegador es básicamente un intérprete HTML, la mayoría de los navegadores tienen otras características que facilitan y mejoran la experiencia de navegación web. No todas las páginas contiene HTML y un servidor puede regresar información adicional del tipo MIME sobre una página. El navegador deberá utilizar un visor de acuerdo al tipo MIME del contenido, este visor puede venir incorporado al navegador o se incorpora mediante plug-ins o aplicaciones auxiliares (Acrobat Reader por ejemplo). Un navegador puede soportar el uso de varios protocolos como ser: Nombre http ftp File News News Gopher mailto telnet
Usado para Hipertexto (HTML) FTP Archivo Local Grupo de noticias Artículo Gopher Envío de correo electrónico Inicio de sesión remota
Ejemplo http://www.abc.com/def.html ftp://ftp.abc.com/doc/readme.txt file:///C:/ news:comp.os.minix news:
[email protected] Gopher://gopher.abc.com/lalo mailto:
[email protected] telnet://www.abc.com:80
Funcionamiento del Servidor Cuando un usuario teclea un URL o hace click en un hipervínculo, el navegador lo analiza e interpreta la parte entre http://(DNS)/ como un nombre DNS a buscar y realiza los pasos antes mencionados para mostrar el contenido en el navegador. Los pasos que da el servidor son:
Acepta una conexión TCP de un cliente. Obtiene el nombre del archivo solicitado. Obtiene el archivo solicitado (de su disco). Regresa el archivo al cliente. Libera la conexión TCP.
El problema de este diseño es que cada solicitud requiere de un acceso al disco para obtener el archivo, por lo que una mejora sería mantener en caché los n archivos más recientemente utilizados y verificar la caché antes de ir al disco a buscar el archivo. Un servidor moderno hace más que solo aceptar conexiones y regresar archivos:
Resuelve el nombre de la página web solicitada. Autentica al cliente. Realiza control de acceso al cliente. Realiza control de acceso a la página web. Verifica caché. Obtiene del disco la página solicitada (si no está en caché). Determina el tipo de MIME que se incluirá en la respuesta. Regresa la respuesta al cliente. Realiza una entrada en el registro del servidor.
Cookies Cuando un navegador solicita un página, el servidor puede proporcionar información adicional junto con la página, está información puede ser almacenada en una cookie en disco duro (si el cliente lo permite). Una cookie puede pesar hasta 4KB y tener el siguiente formato: Dominio Ruta Contenido Expira Seguro toms-casino.com / CustomerID=95468 15/01/2010 17:00 Si portal.com / UserID=lolito 10/01/2010 13:00 No
Dominio, indica de donde viene la cookie. Ruta, es la ruta en la estructura del directorio del servidor que identifica qué parte del árbol es. Contenido, de la forma “nombre=valor”, pueden ser lo que el servidor desee. Expira, especifica cuándo caduca la cookie (cookie no persistente, no tiene valor en el campo expira y es eliminada cuando se cierra el navegador). Seguro, se utiliza para comercio electrónico.
Documentos Estáticos En la forma más simple, las páginas web son estáticas, es decir, son simplemente archivos que se encuentran en algún servidor esperando a ser recuperados. En este sentido, incluso un vídeo es una página web estática porque es sólo un archivo. HyperText Markup Language (HTML) El Lenguaje de Marcado de Hipertexto permite a los usuarios producir páginas web que incluyen texto, gráficos y apuntadores a otras páginas web. Es un leguaje que sirve para describir cómo se van a formatear los documentos. Al integrar todos los comandos de marcado dentro de cada archivo HTML y al estandarizarlos, se hace posible que cualquier navegador web lea y reformatee cualquier página web. La capacidad de reformatear las páginas web tras su recepción es crucial porque una página pudo haberse producido en una resolución y ahora debe tener que amoldarse a la resolución del cliente en el que se ejecuta. Una página web consiste en un encabezado y un cuerpo encerrado entre etiquetas . El encabezado está delimitado por las etiquetas y el cuerpo por las etiquetas . Los comandos dentro de las etiquetas se llaman directivas. HTML permite la inclusión de imágenes, tablas y estilos para facilitar su creación. En la actualidad HTML permite la creación de formularios, los cuales contiene campos y botones que permiten a los usuarios proporcionar información o tomar decisiones y después enviar dicha información a la página. Cada interacción entre el cliente y el servidor consiste en una solicitud ASCII por parte del cliente seguida por una respuesta MIME del servidor.
Conexiones, el navegador normalmente se conecta al puerto 80 de un servidor, envía solicitudes y espera respuestas (sin cerrar la conexión). Métodos, Cada solicitud consiste en una o más líneas de texto ASCII y la primera palabra de la primera línea es el nombre del método solicitado. Encabezados de mensajes, A la línea de solicitud le pueden seguir líneas adicionales que contienen más información. Estas se llaman encabezados de solicitud y pueden compararse con los parámetros de una llamada a un procedimiento. Las respuestas también pueden tener encabezados respuesta.
Documentos Dinámicos La generación de contenido dinámico implica que el contenido se genera a solicitud en lugar de almacenarlo en el disco. Esta generación puede ocurrir en el servidor o en el cliente. Generación de páginas web dinámicas en el servidor Para ver por qué es necesaria la generación de contenido en el servidor, considere el uso de formularios, como se describió anteriormente. Cuando un usuario llena un formulario y hace click en el botón de envío, se envía un mensaje un mensaje al servidor con el contenido del formulario, junto con los campos que el usuario llenó. Este mensaje no es el nombre de un archivo a regresar, lo que se necesita es proporcionar el mensaje a un programa o a una secuencia de comandos para que sean procesados.
La forma tradicional de manejar formularios y otras páginas web interactivas es un sistema llamado CGI (Interfaz de puerta de enlace común), que permite que los servidores web hablen con los programas y las secuencias de comandos puedan aceptar los datos de entrada y generar respuestas HTML. Otra forma común es incrustar pequeñas secuencia de comandos dentro de páginas HTML y hacer que el servidor mismo sea quien las ejecute para generar la página (caso del PHP – Preprocesador de Hipertexto). Una tercera técnica es utilizar JSP (Java Server Pages) que funciona en forma similar a PHP solo que con la sintaxis de Java. Una cuarta técnica es ASP (Active Server Pages), que es la versión de Microsoft de PHP y JSP. Para generar contenido dinámico utiliza lenguaje de secuencias de comandos propietarios de Microsoft como Visual Basic Script. Generación de páginas web dinámicas en el cliente En HTML tales secuencias son posibles con el uso de la etiquete . El lenguaje de secuencias de comandos más popular para el cliente es JavaScript, el cual está inspirado en la programación Java y es un lenguaje de alto nivel el cual permite que en una simple línea se despliegue por ejemplo un cuadro de dialogo o la espera de una entrada del usuario para almacenar el valor en una variable. Mejoras de desempeño
Almacenamiento en caché, Una forma muy sencilla de mejorar el desempeño es guardar las páginas que han sido solicitadas en caso de que se utilicen nuevamente. El procedimiento común es que algún proceso, llamado proxy, mantenga el caché. Para utilizar el almacenamiento de caché, un navegador puede configurarse para que todas las solicitudes de páginas se le hagan a un proxy en lugar de al servidor real de la página. Si el proxy tiene la página, la regresa de inmediato. De lo contrario, la obtiene del servidor, la agrega al caché para uso posterior y la envía al cliente que la solicitó. Las PC individuales con frecuencia ejecutan proxies a para obtener un rápido acceso a páginas anteriormente visitadas. Puede configurarse para que toda una LAN por ejemplo utilice el mismo proxy, lo que traería como ventaja un rápido acceso para cualquier persona que visite una página que ya fue visitada por otra persona de la LAN (muchas ISP tiene proxy). Determinar el tiempo que deben permanecer las páginas en caché es un poco difícil dado que si la página cambia sus datos rápidamente, el acceso a la página en caché traería información errónea. La forma de solucionar este problema es con el uso de heurística para “adivinar” cuánto tiempo guardar la página (por ejemplo basándose en el tiempo que hace que no se modifica la página). La segunda forma es que cada vez que se solicita una página que está en caché, el proxy manda un mensaje al servidor que contiene la página y le pregunta cuándo fue la última vez que se modifico la misma, si no ha sido modificada con respecto a la que está en caché, se devuelve la de caché, si fue modificada se guarda y se devuelve la nueva página. Las páginas web con contenido dinámico nunca son guardadas en caché debido a que los parámetros pueden ser diferentes la siguiente vez. Replicación del servidor, Otro método común que los servidores utilizan para mejorar el desempeño es replicar su contenido en múltiples ubicaciones separadas considerablemente. Esta técnica a veces se conoce como espejo. Los sitios espejo por lo general son estáticos. La compañía decide dónde colocar los espejos, arregla un servidor en cada región y coloca el contenido en cada ubicación.
Redes de entrega de contenido, Las compañías CDNs (redes de entrega de contenido) hablan con proveedores de contenido (sitios web) y ofrecen entregar su contenido a los usuarios finales de manera eficiente a cambio de una cuota. Los CDNs están conectados a una gran cantidad de ISPs y ofrecen pagarles bien a cambio de que les permitan colocar en sus LANs un servidor manejado de manera remota lleno de contenido valioso. Esto permite que los clientes del ISP un excelente tiempo de acceso para el contenido del CDN.
Temas del programa no abordados: Configuración de servidores web. Voz Sobre IP Voz sobre Protocolo de Internet, también llamado Voz sobre IP, VozIP, VoIP (por sus siglas en inglés), es un grupo de recursos que hacen posible que la señal de voz viaje a través de Internet empleando un protocolo IP (Internet Protocol). Esto significa que se envía la señal de voz en forma digital en paquetes en lugar de enviarla (en forma digital o analógica) a través de circuitos utilizables sólo para telefonía como una compañía telefónica convencional o PSTN (sigla de Public Switched Telephone Network, Red Telefónica Pública Conmutada). Los Protocolos que son usados para llevar las señales de voz sobre la red IP son comúnmente referidos como protocolos de Voz sobre IP o protocolos IP. El tráfico de Voz sobre IP puede circular por cualquier red IP, incluyendo aquellas conectadas a Internet, como por ejemplo redes de área local (LAN). Es muy importante diferenciar entre Voz sobre IP (VoIP) y Telefonía sobre IP.
VoIP es el conjunto de normas, dispositivos, protocolos, en definitiva la tecnología que permite la transmisión de la voz sobre el protocolo IP. Telefonía sobre IP es el conjunto de nuevas funcionalidades de la telefonía, es decir, en lo que se convierte la telefonía tradicional debido a los servicios que finalmente se pueden llegar a ofrecer gracias a poder portar la voz sobre el protocolo IP en redes de datos.
Los parámetros más influyentes en la QoS de VOIP Retardos de los paquetes o Problemas La presencia de eco: problemas cuando es superior a 50ms (ida y vuelta). Se utilizan canceladores de eco para eliminarlo. Talking overlap: Se produce cuando los dos interlocutores hablan simultáneamente,particularmente cuando uno está hablando y el otro se superpone. Se convierte en un problema importante cuando el retardo extremo a extremo es mayor a 150 mseg. o Causas Demora de trama (algoritmo): Algunos modos de codificación requieren de una o más tramas completas para hacer la codificación, esto requiere el uso de buffers los cuales tienen una demora en llenarse y leerse. Demora de procesamiento (hardware): Tiempo que se demora en codificar y decodificar la voz (Tomar muestreo por ejemplo). Demora de red: Esta demora es causada por el medio físico de la red, los enlaces y buffers utilizados para remover el jitter.
Jitter: Es la variación del tiempo de arribo de los frames del codec o Problemas Introduce retardo: Para contrarestarlo se introducen en la buffers que compensan la diferencia de tiempo de arribo de paquetes. genera descarte de paquetes: Es cuando no entra al buffer. Pérdida de paquetes: El oído humano tolera no más de 1% al 3% de paquetes perdidos. o Problemas Al estar basados sobre UDP, las pérdidas de paquetes pueden llegar a ser importantes si existe congestión o problemas en la transmisión. La pérdida de paquetes introduce tasa de error en las comunicaciones. o Soluciones Sobredimensionando las redes de modo que no se tengan que descartar paquetes en forma preventiva. Marcando los paquetes de VoIP como prioritarios. (Diferencia de servicio).
La calidad de la voz (Voice Speach Quality) es evaluada por medio de dos parámetros: Claridad: que refleja el grado de palabras y frases entendidas. Fidelidad: califica el grado de reconocimiento de la personal que habla. H.323 Es una recomendación del ITU-T (International Telecommunication Union), que define los protocolos para proveer sesiones de comunicación audiovisual sobre paquetes de red. H.323 es utilizado comúnmente para Voz sobre IP (VoIP, Telefonía de internet o Telefonía IP) y para videoconferencia basada en IP. Es un conjunto de normas ITU para comunicaciones multimedia que hacen referencia a los terminales, equipos y servicios estableciendo una señalización en redes IP. No garantiza una calidad de servicio, y en el transporte de datos puede, o no, ser fiable; en el caso de voz o vídeo, nunca es fiable. Además, es independiente de la topología de la red y admite pasarelas, permitiendo usar más de un canal de cada tipo (voz, vídeo, datos) al mismo tiempo. Modelo H.323
Puerta de enlace, conecta a internet con la red telefónica. Esta puerta de enlace conoce al protocolo H.323 para comunicarse con internet y al protocolo PSTN para comunicarse con la red telefónica. Terminales, son los dispositivos de comunicación. Gatekeeper, puede estar presente en una LAN y controlar los puntos finales bajo su jurisdicción (Zona).
Tel1
PC5 PC2 PC1
Zona
Internet
Puerta de enlace
Red Telefónica
Gatekeeper Tel3 PC3
PC4
Tel2
Protocolos Utilizados Una red telefónica necesita una serie de protocolos para poder funcionar. Uno de ellos es utilizado para la codificación y decodificación de la voz. El sistema PCM (modulación por impulsos codificados) es utilizado y codifica un solo canal de voz muestreado a 8000 veces por segundo con una muestra de 8 bits para poder proporcionar voz comprimida a 64kbps. El sistema H.323 permite esta compresión de voz pero también permite otros protocolos como G.732.1 que permite una tasa de salida de hasta 5.3kbps con un factor de compresión de 12 veces y poca pérdida de calidad percibida. Debido a que están permitidos múltiples algoritmos de compresión, se necesita un protocolo para permitir que las terminales negocien cuál van a utilizar. Este protocolo se llama H.245 y permite negociar otros aspectos de la conexión como la tasa de bits. RTCP (Real Time Control Protocol) es necesario para el control de los canales RTP (Real-time Transport Protocol). También se necesita un protocolo para establecer y liberar las conexiones, proporcionar tonos de marcado, emitir sonidos de marcado y el resto de la telefonía estándar (Q.931). Las terminales necesitan un protocolo para hablar con el gatekeeper y crear canales RAS (Registro/Admisión/Estado) que permita a las terminales unirse y dejar una zona, solicitar y regresar ancho de banda, proporcionar actualizaciones de estado, etc. Por último se necesita un protocolo para la transmisión en tiempo real de los datos (RTP) el cual será manejado por RTCP. Funcionamiento Supongamos que una PC de una LAN quiere llamar a un teléfono remoto. La PC primero tiene que descubrir al gatekeeper, por lo que difunde un paquete UDP de descubrimiento de gatekeeper al puerto 1718. Cuando el gatekeeper responde, la PC aprende su dirección IP y se registra con el gatekeeper enviándole un mensaje RAS en un paquete UDP. Una vez aceptada la petición la PC envía al gatekeeper un mensaje de admisión RAS solicitando ancho de banda. Sólo después de que se ha proporcionado el ancho de banda, se puede establecer la llamada (esto se realiza para poder proporcionar la calidad de servicio necesaria). La PC ahora establece una conexión TCP con el gatekeeper para comenzar el establecimiento de la llamada y envía un mensaje Q.931 con el número telefónico al que se está
llamando (o la dirección IP y el puerto en caso de ser una llamada a otra PC). El gatekeeper responde con otro mensaje Q.931 indicando que la llamada está en proceso y envía un mensaje Q.931 a la puerta de enlace solicitando la llamada. La puerta de enlace realiza una llama común al teléfono deseado y la central telefónica a la que está conectada el teléfono hace que este suene y a su vez envía una señal Q.931 para indicar al PC que el teléfono está sonando. Cuando la persona levanta el tubo del teléfono la central telefónica envía una señal Q.931 para indicar a la PC que la conexión está establecida. Una vez establecida la conexión, el gatekeeper no cumple ninguna función y todos los paquetes que salen de la PC van directo a la puerta de enlace. Se utiliza un protocolo H.245 para negociar parámetros de la llamada (Ej. codecs que soportan, capacidades, etc.), una vez que cada lado conoce lo que el otro soporta se establecen dos canales de datos unidireccionales y a cada uno se le asigna un códec y otros parámetros. Terminadas todas las negociaciones se inicia el flujo de datos utilizando RTP, el flujo se maneja con RTCP que juega un papel de control de congestionamiento. Cuando se termina la llamada, la PC invocadora contacta al gatekeeper con un mensaje RAS para liberar el ancho de banda que se ha asignado.
Session Initiation Protocol (SIP) El Protocolo de Inicio de Sesiones es un protocolo desarrollado por el IETF, con la intención de ser el estándar para la iniciación, modificación y finalización de sesiones interactivas de usuario donde intervienen elementos multimedia como el video, voz, mensajería instantánea, juegos en línea y realidad virtual. La sintaxis de sus operaciones se asemeja a las de HTTP y SMTP, los protocolos utilizados en los servicios de páginas Web y de distribución de e-mails respectivamente. Esta similitud es natural ya que SIP fue diseñado para que la telefonía se vuelva un servicio más en Internet. SIP es uno de los protocolos de señalización para voz sobre IP, al igual que H.323, sólo que a diferencia de este último que es un conjunto de protocolos, SIP está compuesto por un solo módulo. SIP define a los números telefónicos como URLs, a fin de que las páginas web puedan contenerlos, lo cual permite hacer un click e iniciar una llamada telefónica. Servicio brindados SIP puede establecer sesiones de dos partes (llamadas de teléfono ordinarias), de múltiples partes (en donde todos pueden oír y hablar) y de multidifusión (un emisor y muchos receptores). Las sesiones pueden contener audio, video o datos, pero SIP a diferencia de H.323, solo maneja el establecimiento, manejo y liberación de sesiones. Para el transporte de datos se utilizan otros protocolos como RTP/RTCP. SIP es un protocolo de capa de aplicación y puede ejecutarse sobre TCP o UDP. SIP permite localizar al invocado (quien tal vez no esté en la máquina de su casa), determinar las capacidades de éste y manejar mecanismos de establecimiento y terminación de llamadas.
Funcionamiento Los números SIP se representan como URLs que utilizan el esquema SIP “sip:
[email protected]”. Los URLs de SIP también pueden contener direcciones IPv4 e IPv6 o números telefónicos reales. El protocolo SIP se basa en texto y está modelado en HTTP. Una parte envía un mensaje en texto ASCII que consiste en un nombre del método (en la primera línea) seguido por líneas adicionales que contienen parámetros. Muchos de estos parámetros son los utilizados por MIME para permitir que SIP interactúe con las aplicaciones existentes en internet. Para establecer una sesión, el invocador realiza una conexión TCP con el invocado y envía un mensaje de invitación (también puede hacerlo enviando un paquete UDP). Este mensaje contiene entre otras cosas, las capacidades, los tipos de medios y los formatos del invocador. Si el invocado acepta la llamada, responde enviando un paquete con un código HTTP de aceptación e informa sus capacidades, tipos de medios y formatos. La conexión se realiza por un acuerdo de tres vías por lo que el invocador envía un ACK para terminar el protocolo y avisar que recibió la aceptación. En este momento pueden intercambiar información haciendo uso de protocolos RTP/RTCP. Cualquiera de las dos partes puede solicitar finalizar la sesión enviando un mensaje de finalización, al momento en que la otra parte responde a este mensaje, la sesión queda concluida. SIP puede llamar a un teléfono normal pero necesita de una puerta de enlace que comunique a internet con la red telefónica. Comparación entre H.323 y SIP Elemento Diseñado por Compatibilidad con PSTN Compatibilidad con internet Arquitectura Integridad Negociación de parámetros Señalamiento de llamadas Formato de mensajes Transporte de medios Llamadas de múltiples partes Conferencias multimedia Direccionamiento Terminación de llamadas Mensajes instantáneos Encriptación Tamaño de los estándares Implementación Estado
H.323
SIP
ITU SI NO Monolítica Pila de protocolos completa SI Q.931 sobre TCP Binario RTP/RTCP SI SI Host o número telefónico Explicita o liberación TCP NO SI 1400 páginas Grande y compleja Distribuido ampliamente
IETF Ampliamente SI Modular Sólo maneja el establecimiento SI TCP o UDP ASCII RTP/RTCP SI NO URL Explícita o por temporizador SI SI 250 páginas Moderada Prometedor
Real-time Transport Protocol (RTP) RTP es la abreviación de Real-time Transport Protocol, por su denominación en Inglés. Es un estándar creado por la IETF para la transmisión confiable de voz y video a través de Internet. En aplicaciones de Voz sobre IP, RTP es el protocolo responsable de la transmisión de los datos. La digitalización y compresión de la voz y el video es realizada por el CODEC. Para el manejo de señalización o establecimiento de llamada existe el protocolo SIP. Dentro del estándar RFC 3550 se define un protocolo adicional para el envío de datos de control y datos de mediciones realizadas durante la transmisión. Se conoce como RTCP RTP Control Protocol. Los paquetes RTCP se envían periódicamente dentro de la secuencia de paquetes RTP. Características generales Aunque RTP tiene algunas características de protocolo de nivel de transporte (Según el modelo OSI), es transportado usando UDP. UDP no maneja sesiones ni mecanismos que garanticen la recepción de los paquetes, pero es usado por RTP en lugar de TCP debido a que reduce el tiempo de envío de los paquetes a través de la red. En aplicaciones de voz y video es más importante una transmisión rápida que la pérdida de algunos paquetes durante el recorrido. RTP implementa dos mecanismos principales para garantizar una transmisión de voz: El uso de Número de secuencia y un Registro de tiempo. En redes IP es común que los paquetes tomen caminos diferentes para llegar al destino. En aplicaciones de datos esto no es demasiado importante pero para voz y video puede representar una falla detectable por el oído del usuario final. Por esto RTP usa el número de secuencia para reorganizar los paquetes en caso de que lleguen en desorden y el Registro de tiempo es usado para ajustar los intervalos de muestreo de acuerdo a la secuencia original. Formato y valores de encabezado El paquete RTP se ubica en el espacio de datos de UDP. RTP no tiene asignado un puerto UDP específico, debido a que es posible que varias aplicaciones de un mismo usuario utilicen RTP. Existen sistemas que no soportan el uso de un mismo puerto por aplicativos diferentes. De acuerdo a las especificaciones se utiliza un número par elegido al azar, y RTCP utiliza el número impar consecutivo. Los campos más importantes en el encabezado RTP son los siguientes:
Número de secuencia: de 2 bytes, es un número que se incrementa por cada paquete enviado. Es usado para determinar pérdida de paquetes y recuperar correctamente la secuencia de voz.
Registro de tiempo: Mejor conocido como Timestamp, es un campo de 32 bits asignado en el momento del envío con base en un reloj del sistema. El valor inicial es seleccionado aleatoriamente para evitar confusión con otras secuencias RTP presentes.
Real Time Control Protocol (RTCP) RTP Control Protocol (RTCP) es un protocolo de comunicación que proporciona información de control que está asociado con un flujo de datos para una aplicación multimedia (flujo RTP). Trabaja junto con RTP en el transporte y empaquetado de datos multimedia, pero no transporta ningún dato por sí mismo. Se usa habitualmente para transmitir paquetes de control a los participantes de una sesión multimedia de streaming. La función principal de RTCP es informar de la calidad de servicio proporcionada por RTP. Este protocolo recoge estadísticas de la conexión y también información como por ejemplo bytes enviados, paquetes enviados, paquetes perdidos o jitter entre otros. Una aplicación puede usar esta información para incrementar la calidad de servicio (QoS), ya sea limitando el flujo o usando un códec de compresión más baja. En resumen. RTCP se usa para informar de la QoS (Quality of Service). RTCP por sí mismo no ofrece ninguna clase de cifrado de flujo o de autenticación. Funciones de RTCP
Información del desarrollo de una aplicación: Esta función es muy útil para aplicaciones de velocidad adaptativa. Un ejemplo de su utilidad seria reducir la congestión mediante el uso de un esquema de compresión más agresivo o enviar un stream de más alta calidad cuando hay poca congestión. También puede resultar útil para diagnosticar problemas de red. Correlacionar y sincronizar diferentes media streams procedentes del emisor: RTCP utiliza el concepto de nombre canónico (CNAME) que se asigna al emisor y garantiza que streams que no tienen el mismo identificador se puedan sincronizar y ordenar correctamente (audio y video de una misma emisión). Transferir la identidad de un emisor: Se transmite en el paquete de descripción de la fuente explicado más adelante en el apartado Tipo de paquetes.
Tipos de paquetes
Informes de emisor: Permiten al emisor activo en una sesión informar sobre estadísticas de recepción y transmisión. Informes de receptor: Los utilizan los receptores que no son emisores para enviar estadísticas sobre la recepción. Descripción de la fuente: Contiene los CNAMEs y otros datos que describen la información de los emisores. Paquetes de control específicos de la aplicación: Varios paquetes RTCP pueden ser enviados en un mismo mensaje UDP.
A continuación explicaremos la importancia de la existencia de estos paquetes. En transmisiones multicast la información de control puede consumir un ancho de banda considerable. Para hacerse cargo de este problema RTCP ha establecido un mecanismo para reducir la transmisión de información de control a medida que ingresan más usuarios, que consiste en limitar la cantidad de tránsito de RTCP en un pequeño porcentaje de tráfico de datos en RTP. Este mecanismo también asigna más ancho de banda RTCP a los emisores activos. Un participante sabe cuánto ancho de banda puede consumir, con el tránsito de RTCP la aplicación empieza a enviar informes periódicos de la tasa adecuada. Los informes de emisor y de receptor contienen información sobre los datos recibidos de todas las fuentes en el periodo de informes más reciente. Lo que los diferencia es que los informes de emisor es que incluyen
información extra sobre el emisor. Tanto los informes de emisor como los de receptor contienen un bloque de datos por fuente que ha sido escuchada desde el último informe. Cada bloque contiene estadísticas para la fuente determinada, indicador, paquetes perdidos, último número de secuencia, Jitter, etc. Unidad 5: Seguridad Seguridad Con el uso de redes públicas como ser internet se han tenido que implementarse sistemas de seguridad y sobre todo para algunos servicios como las transacciones bancarias y los pagos con tarjetas de crédito, entre otros. Los problemas de seguridad podrían definirse como:
No permitir que la información caiga en manos no autorizadas. (confidencialidad) Validación de la identificación, para saber la máquina o persona con la que se está dialogando. (Autenticación) Asegurar la “firma” de los mensajes. (No repudio) Control de integridad que asegura que el mensaje que se lee fue el enviado por la otra parte y no uno manipulado por un tercero. (Control de integridad)
La solución a estos problemas no debería encontrarse en una sola capa de OSI, la seguridad debería estar dispersa por las capas del modelo para que deban pasarse varios niveles de obstáculos antes de ingresar a la información. Por ejemplo podría colocarse seguridad en el área donde se encuentran físicamente los datos, encriptarse los datos de la capa de enlace de datos y de red, instalar firewalls en la capa de red, bloquear puertos inseguros de la capa de transporte, mandar los datos cifrados de extremo a extremo, control de acceso en las aplicaciones, etc. Algunos conceptos
Seguridad: Una serie de mecanismos que minimizan las vulnerabilidades de los recursos. Criptoanálisis: Ciencia utilizada para descifrar mensajes (Utilizada por los atacantes). Criptosistema: Es un conjunto de Algoritmos, Texto en Claro, Texto Cifrado y Clave. Seguridad de la red: Implica la seguridad de cada uno de los componentes de la red. Hacker: Es un programador con los conocimientos necesarios para superar las barreras de seguridad, su objetivo normalmente es no ser detectado y dejar algún tipo de mensaje sin hacer daño. Cracker: Es similar a un hacker solo que sus intenciones son el robo de información para obtener un beneficio personal. Ataque: Intento de sabotaje de un recurso de la empresa. o Compromiso, se obtiene el control de algún elemento de la red. o Modificación, se modifica algún mensaje o dato. o Suplantación, se hace pasar por otra persona.
o o
Reenvío, se obtiene un mensaje que más tarde será reenviado para duplicar su efecto. Denegación de servicio, se impide que algún componente de la red cumpla con su función. Criptografía
La criptografía “es el arte de escribir y enviar mensajes mediante claves secretas, de manera que sea imprescindible conocerla para descifrarlo”. Es uno de los mecanismos más empleados en la resolución de los problemas de seguridad en el trasporte de datos. Tiene la ventaja de que puede cifrarse un mensaje para que, si este es captado, no sea comprensible a menos que se descifre el mismo. Cualquier algoritmo de cifrado puede ser encontrado mediante criptoanálisis, por lo que una buena política de seguridad cambia la forma de encriptar los mensajes en un tiempo menor al que le tomaría a alguien encontrar la clave o el algoritmo. La encriptación puede ser por responsabilidad del usuario o por responsabilidad de la red:
Encriptado a nivel de enlace: El mensaje se cifra y descifra en cada nodo en su viaje a través de la red. Encriptado extremo a extremo: El mensaje se cifra en el origen y se descifra en el destino, tiene como ventaja que los datos son protegidos durante todo su recorrido.
En un sistema de cifrado existen dos funciones elementales, el proceso de cifrado y el proceso de descifrado, ambas conocidas por el emisor y el receptor.
Principios criptográficos fundamentales
Redundancia: Todos los mensajes deberían tener redundancia, es decir información no necesaria para entender el mensaje, esto es necesario para evitar que intrusos envíen basura y engañen al receptor para que la descifre y realice algo con el texto llano. Actualización: Cada mensaje recibido se debe verificar a fin de saber si está actualizado, es decir si se envió recientemente. Esta medida es necesaria para evitar que intrusos activos reproduzcan mensajes antiguos.
Tipos de algoritmos
Según la naturaleza del algoritmo: o Sustitución: En un cifrado por sustitución, cada letra o grupo de letras se reemplaza por otra letra o grupo de letras. Un ataque básico a este sistema de cifrado aprovecha las propiedades y estadísticas del lenguaje natural (por ejemplo en inglés la letra e es la más común, por lo que el símbolo más repetido probablemente simbolice la e). o Transposición: Los cifrados por sustitución conservan el orden de los símbolos de texto llano, pero los disfrazan. Los cifrados por transposición reordenan las letras sin disfrazarlas. Para descifrarlo el criptoanalista debe estar consciente de que se encuentra con un cifrado de este tipo (por ejemplo por transposición de columnas), adivinar la cantidad de columnas y ordenarlas lo cual es más complicado que la sustitución. o Rellenos de una sola vez: Se escoge una clave al azar, se convierte el texto plano en una cadena de bits y se realiza un XOR entre la clave y el texto bit por bit. Este método es inmune a cualquier ataque dado que se rompe completamente con las propiedades y estadísticas del lenguaje natural. El único problema es que la clave no puede ser memorizada por lo que el emisor y receptor deben cargar una copia con ellos (lo cual es un peligro) junto con la sensibilidad del método a algún carácter perdido. Según la clave: o Simétricos: Se utiliza la misma clave para cifrar y descifrar o Asimétricos: Se utilizan claves distintas para cifrar y descifrar o Irreversibles: Cifra un texto claro no permitiendo su descifrado Según el número de símbolos cifrados a la vez: o Bloque: Dividen el texto en bloques de igual longitud, para luego cifrar cada bloque en forma independiente, normalmente de 64 bits o Flujo: El texto claro es cifrado símbolo por símbolo (Bit a bit)
Algoritmos simétricos Se denomina “Algoritmo Simétrico”, a todo proceso criptográfico que utilice en su accionar, una misma clave para encriptar y desencriptar. Para que funcione correctamente, tanto el emisor como el receptor del mensaje, deben encontrarse en conocimiento de la clave a utilizar, transformando ésta en su “Secreto Compartido”. Debido a ello, la existencia de un canal seguro a través del cual se pueda realizar el intercambio de claves, se convierte en un requisito indispensable.
Pasos para la transmisión y recepción de un mensaje:
Se selecciona el mensaje a transmitir. Se aplica la clave compartida. Se transmite el mensaje cifrado. Se recibe el mensaje cifrado y se descifra con el uso de la clave compartida.
La mayor ventaja es su velocidad y que suelen ser difíciles de romper, su mayor debilidad esta en el hecho de que deben enviarse la clave para que ambos la conozcan. Cifrado DES (Data Encryption Estándar). El texto llano se encripta en bloques de 64bits, produciendo 64bits de texto cifrado. El algoritmo, que se parametriza mediante una clave de 56bits tiene 19 etapas diferentes. La primera etapa es una transposición del texto llano de 64bits independiente de la clave. La última etapa es el inverso de esta transposición. La etapa previa a esta última intercambia los 32bits de la izquierda y los 32 bits de la derecha. Las 16 etapas restantes son funcionalmente idénticas, pero se parametrizan mediante diferentes funciones de la clave. El algoritmo se diseño para que la desencriptación se haga con la misma clave de encriptación y con el proceso inverso. Cifrado 3DES Dado que la longitud de clave que utiliza DES es muy corta, esta fue incrementa utilizando cifrado triple. Aquí se utilizan 2 claves y 3 etapas. En la primera etapa, el texto llano se encrita utilizando DES con la clave 1. En la segunda etapa, DES se ejecuta en modo desencriptación utilizando la clave 2. La tercer etapa consiste en volver a encriptar con DES con la clave 1. Se utilizan 2 claves en vez de 3 dado que 168bit de clave (3x56bit) serían una sobrecarga innecesaria para la capacidad computacional actual. Es uno de los algoritmos simétricos más duros de romper y uno de los más utilizados. Cifrado AES Es el sucesor de DES, fue creado de manera pública y abierta. Se necesitaba un sistema de cifrado por bloques diseñado para manejar longitudes de clave y bloque variables de 128 bits a 256 bits. El resultado de estas propuesta públicas fue la creación de Rijndael, este utiliza sustitución y permutaciones junto con múltiples rondas. El número de rondas depende del tamaño de la clave y del bloque pero para un bloque de 128bits con clave de 128bits se utilizan 10 rondas para el cifrado. Algoritmos Asimétricos Los algoritmos asimétricos, o de clave pública, utilizan dos claves en su proceso de cifrado y descifrado. Ambas claves suelen ser referidas como clave pública y clave privada.
En este tipo de esquema, el remitente utiliza la clave pública del destinatario para cifrar el mensaje, el cual sólo puede ser descifrado por la clave privada del mismo. Ambos extremos de la comunicación deben estar en conocimiento de la clave pública, lo cual no representa riesgo. La pérdida de la clave privada, abriría una brecha de seguridad en el criptosistema. Los algoritmos de encriptación (E) y desencriptación (D) deben cumplir los siguientes requisitos:
D(E(P))=P Es excesivamente difícil deducir D a partir del conocimiento de E. E no puede descifrarse mediante un ataque de texto a un texto llano seleccionado.
Pasos para la transmisión y recepción de un mensaje:
Se selecciona el mensaje a transmitir. Se aplica la clave pública del receptor para cifrar el mensaje. Se transmite el mensaje cifrado. Se recibe el mensaje cifrado y se descifra con el uso de la clave privada del receptor.
Una de las ventajas más apreciables radica en la posibilidad por parte de quien desea recibir información cifrada de hacer llegar a los emisores su clave pública, como desventaja estos algoritmos suelen utilizar claves de mayor tamaño, suelen ser más lentos que los simétricos y no son utilizados para grandes volúmenes de información dado que necesitan muchos recursos para funcionar.
RSA El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada preferentemente), y otra privada, la cual es guardada en secreto por su propietario. Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes. Cuando se quiere enviar un mensaje, el emisor busca la clave pública de cifrado del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, éste se ocupa de descifrarlo usando su clave oculta. Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado. Emplea expresiones exponenciales en aritmética modular.
La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales. Este algoritmo es muy lento para encriptar grandes volúmenes de información pero es muy utilizado para la encriptación de claves. PKI El término PKI o en su acepción en español “Infraestructura de Clave Pública”, es el utilizado para definir la combinación de software, tecnologías de encriptación y servicios, necesaria para dotar a un sistema determinado de las siguientes características principales:
Integridad Confidencialidad Autenticación No Repudio
Funciones de Hash Se define como una operación que se realiza sobre un conjunto de datos de cualquier tamaño de tal forma que se obtiene como resultado, otro conjunto de datos denominado “resumen”.
El “resumen” tiene un tamaño fijo e independiente del tamaño original, que además tiene la propiedad de estar asociado unívocamente a los datos iniciales. Es prácticamente imposible encontrar dos mensajes distintos que tengan un resumen hash idéntico. Gracias a sus características, las aplicaciones principales de las Funciones de Hash, suelen ser fundamentalmente tres: Contraseñas Firmas Digitales Integridad y Autenticación Firma Digital La Firma Digital, es básicamente una herramienta tecnológica, que permite garantizar la autoría e integridad de los documentos digitales. Desde el punto de vista informático, una Firma Digital, puede ser vista como un grupo de datos asociados a un mensaje digital. Técnicamente hablando, el esquema de Firma Digital se basa en la utilización combinada de Criptografía Asimétrica o de Clave Pública y de Funciones de Hash o Resumen. Un documento digital firmado permite que el receptor pueda verificar la identidad del transmisor, que el transmisor no pueda repudiar (negar) el contenido del mensaje y que el receptor no haya podido elaborar el mensaje el mismo.
Firmas de clave simétrica: Existe una autoridad central que conoce todas las claves y todos confían en él. Cada usuario escoge una clave secreta y la lleva a esta entidad. Si un usuario A quiere enviar un mensaje a un usuario B, encripta el mensaje con su clave 𝐾𝐴 el cual contiene el mensaje propiamente dicho, el destinatario, un número aleatorio 𝑅𝐴 y un tiempo que indica que es un mensaje nuevo; este mensaje es enviado a la autoridad central. Esta autoridad recibe el mensaje de A y lo desencripta (dado que conoce su clave) y envía el mensaje a B firmado con la clave de la autoridad central, el cual contendrá el mensaje propiamente dicho, el remitente y el tiempo que indica que es un nuevo mensaje. Firmas de clave pública: Un problema estructural del uso de la criptografía de clave simétrica para las firmas digitales es que todos tiene que confiar en una entidad central. La criptografía de clave pública para firmas digitales permite que A envía un mensaje de texto plano P, al destinatario B transmitiendo 𝐸𝐵 (𝐷𝐴 𝑃 ) como A conoce su clave privada y la clave pública de B, puede realizar esa transmisión. Cuando B recibe el mensaje, lo transforma usando su clave privada por lo que obtiene 𝐷𝐴 𝑃 y con el uso de 𝐸𝐴 (clave pública de A) obtiene el mensaje P. Cualquier algoritmo de clave pública puede ser utilizado para firmas digitales, pero uno de los más usados es RSA.
Certificado Digital No es más que un “documento digital” otorgado por un tercero de confianza, que da fe de la vinculación entre una clave pública y un individuo o entidad. Puesto que los certificados digitales suelen ser expedidos por una entidad reconocida, en la que ambos participantes de una comunicación confían, tanto emisor como receptor tienen la oportunidad, certificados digitales de por medio, de prevenir que un tercero utilice una clave pública propia, para suplantar su identidad.
La Autoridad de Registro (RA) es la encargada de administrar el alta y baja, de toda aquella solicitud de emisión de certificados o revocación de los mismos. La Autoridad de Certificación (CA) es la organización responsable del mantenimiento final de los certificados. Suele representar en el esquema PKI, la “Tercera Parte Confiable”, en la cual los participantes confían al momento de confirmar la autenticidad del otro extremo. La Autoridad de Validación (VA) es la encargada de proporcionar información sobre el estado de los certificados emitidos por otras Autoridades en forma On-Line. Sobre Digital El esquema general de funcionamiento, que suele ser referido como el esquema de sobre digital, comprende: Un usuario A quiere enviar un mensaje M a otro usuario, B por ejemplo. El usuario A procede a firmar digitalmente dicho mensaje M. Este proceso comprende el cálculo del resumen, producido por una función Hash del mensaje M, y la encripción de este resumen utilizando la clave privada del usuario A. Para la realización de este proceso se emplea un algoritmo de firma digital como DSA, por ejemplo. A continuación se procede a encriptar el mensaje M utilizando un algoritmo de encripción simétrico, como por ejemplo 3DES, AES, etc. Existen implementaciones que también encriptan el resultado del proceso de firma digital Como se estudió anteriormente, es necesario distribuir la clave secreta, utilizada por el algoritmo de encripción simétrico, al destinatario del mensaje, en este caso el usuario B. Para esta tarea se utiliza un algoritmo de encripción asimétrico, como RSA. A los fines de poder cumplir con la etapa anterior, el usuario A necesita conocer la clave pública del usuario B, esto es posible gracias a la intervención de una Autoridad de Certificación (CA), quien brindará un certificado digital confiable al usuario A, para que éste pueda encriptar asimétricamente la clave secreta empleada en la encripción del mensaje M. Con lo realizado hasta el momento, el usuario A está en capacidad de preparar el "sobre digital" para su envío al destinatario, en este caso el usuario B. Este "sobre digital" estará compuesto por el mensaje M, encriptado simétricamente, la clave secreta utilizada en este proceso, encriptada asimétricamente con la clave pública del usuario B y la firma digital del mensaje M, la cual puede estar encriptada también, en forma simétrica, de la misma manera que el mensaje original. Una vez que el usuario B recibe el "sobre digital" procede a realizar la apertura de su contenido, para lo cual desencripta la clave secreta utilizando su propia clave privada. Con la clave secreta en su poder, el usuario B desencripta el mensaje M y la firma digital del mismo, si es que ésta también estaba encriptada. A continuación procede a comprobar la identidad del usuario A, desencriptando la firma digital con la clave pública del usuario A, dado que la firma se encontraba encriptada con su clave privada. Posteriormente el usuario B procede a calcular el resumen de la función de Hash del mensaje M, ya desencriptado, y a comparar dicho resumen con el que formaba parte del contenido de la firma digital del mensaje, con la finalidad de validar la integridad del mismo.
Firewalls
Un cortafuegos (o firewall en inglés) es una parte de un sistema o una red que está diseñado para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Se trata de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios. Los cortafuegos pueden ser implementados en hardware o software, o una combinación de ambos. Los cortafuegos se utilizan con frecuencia para evitar que los usuarios de Internet no autorizados tengan acceso a redes privadas conectadas a Internet, especialmente intranets. Todos los mensajes que entren o salgan de la intranet pasan a través del cortafuegos, que examina cada mensaje y bloquea aquellos que no cumplen los criterios de seguridad especificados. También es frecuente conectar al cortafuegos a una tercera red, llamada zona desmilitarizada o DMZ, en la que se ubican los servidores de la organización que deben permanecer accesibles desde la red exterior. Un cortafuegos correctamente configurado añade una protección necesaria a la red, pero que en ningún caso debe considerarse suficiente. La seguridad informática abarca más ámbitos y más niveles de trabajo y protección.
Tipos de cortafuegos
Nivel de aplicación de pasarela: Aplica mecanismos de seguridad para aplicaciones específicas, tales como servidores FTP y Telnet. Esto es muy eficaz, pero puede imponer una degradación del rendimiento. Circuito a nivel de pasarela: Aplica mecanismos de seguridad cuando una conexión TCP o UDP es establecida. Una vez que la conexión se ha hecho, los paquetes pueden fluir entre los anfitriones sin más control. Permite el establecimiento de una sesión que se origine desde una zona de mayor seguridad hacia una zona de menor seguridad. Cortafuegos de capa de red o de filtrado de paquetes: Funciona a nivel de red (nivel 3) de la pila de protocolos (TCP/IP) como filtro de paquetes IP. A este nivel se pueden realizar filtros según los distintos campos de los paquetes IP: dirección IP origen, dirección IP destino, etc. A menudo en este tipo de cortafuegos se permiten filtrados según campos de nivel de transporte (nivel 4) como el puerto origen y destino, o a nivel de enlace de datos (nivel 2) como la dirección
MAC. Este es uno de los principales tipos de cortafuegos. Se considera bastante eficaz y transparente pero difícil de configurar. Cortafuegos de capa de aplicación: Trabaja en el nivel de aplicación (nivel 7), de manera que los filtrados se pueden adaptar a características propias de los protocolos de este nivel. Por ejemplo, si se trata de tráfico HTTP, se pueden realizar filtrados según la URL a la que se está intentando acceder. Un cortafuegos a nivel 7 de tráfico HTTP suele denominarse proxy, y permite que los computadores de una organización entren a Internet de una forma controlada. Un proxy oculta de manera eficaz las verdaderas direcciones de red. Cortafuegos personal: Es un caso particular de cortafuegos que se instala como software en un computador, filtrando las comunicaciones entre dicho computador y el resto de la red. Se usa por tanto, a nivel personal.
Ventajas de un cortafuegos:
Establece perímetros confiables. Protege de intrusiones.- El acceso a ciertos segmentos de la red de una organización sólo se permite desde máquinas autorizadas de otros segmentos de la organización o de Internet.
Protección de información privada.- Permite definir distintos niveles de acceso a la información, de manera que en una organización cada grupo de usuarios definido tenga acceso sólo a los servicios e información que le son estrictamente necesarios.
Optimización de acceso.- Identifica los elementos de la red internos y optimiza que la comunicación entre ellos sea más directa. Esto ayuda a reconfigurar los parámetros de seguridad.
Limitaciones de un cortafuegos Las limitaciones se desprenden de la misma definición del cortafuegos: filtro de tráfico. Cualquier tipo de ataque informático que use tráfico aceptado por el cortafuegos (por usar puertos TCP abiertos expresamente, por ejemplo) o que sencillamente no use la red, seguirá constituyendo una amenaza. La siguiente lista muestra algunos de estos riesgos:
Un cortafuegos no puede proteger contra aquellos ataques cuyo tráfico no pase a través de él.
El cortafuegos no puede proteger de las amenazas a las que está sometido por ataques internos o usuarios negligentes. El cortafuegos no puede prohibir a espías corporativos copiar datos sensibles en medios físicos de almacenamiento (discos, memorias, etc.) y sustraerlas del edificio.
El cortafuegos no puede proteger contra los ataques de ingeniería social.
El cortafuegos no puede proteger contra los ataques posibles a la red interna por virus informáticos a través de archivos y software. La solución real está en que la organización debe ser consciente en instalar software antivirus en cada máquina para protegerse de los virus que llegan por cualquier medio de almacenamiento u otra fuente.
El cortafuegos no protege de los fallos de seguridad de los servicios y protocolos cuyo tráfico esté permitido. Hay que configurar correctamente y cuidar la seguridad de los servicios que se publiquen en Internet.
Políticas del cortafuegos Hay dos políticas básicas en la configuración de un cortafuegos que cambian radicalmente la filosofía fundamental de la seguridad en la organización:
Política restrictiva: Se deniega todo el tráfico excepto el que está explícitamente permitido. El cortafuegos obstruye todo el tráfico y hay que habilitar expresamente el tráfico de los servicios que se necesiten.
Política permisiva: Se permite todo el tráfico excepto el que esté explícitamente denegado. Cada servicio potencialmente peligroso necesitará ser aislado básicamente caso por caso, mientras que el resto del tráfico no será filtrado.
La política restrictiva es la más segura, ya que es más difícil permitir por error tráfico potencialmente peligroso, mientras que en la política permisiva es posible que no se haya contemplado algún caso de tráfico peligroso y sea permitido por omisión. IPSec El objetivo principal de una VPN es el de garantizar la seguridad de los datos en su tránsito por una red intermedia no segura. El término IPSec es una abreviatura de Internet Protocol SECurity. Y se refiere a la suite de protocolos (AH, ESP, FIP-140-1 y otros estándares) que fueron desarrollados por el IETF (Internet Engineering Task Force). El interés principal de este desarrollo fue el de proveer una estructura de seguridad para la tercer capa (Capa de Red) del modelo OSI. IPSec es un protocolo de VPN que opera en la Capa 3. De poderosa autenticación, confiabilidad y administración de claves para VPN. En Internet, toda comunicación está basada en IP, por ello cuando integro a IP un poderoso mecanismo de seguridad, la red entera será segura, debido a que toda la comunicación pasa por esta capa y por este protocolo. Ésta es la razón por la cual IPSec se desarrolló como protocolo de Capa 3 en lugar de Capa 2. También, con IPSec todas las aplicaciones de la Capa de Aplicación del Modelo OSI son dependientes de la Capa de Red para rutear los datos desde el origen al destino. Dado que IPSec, está totalmente integrado con IP, estas aplicaciones pueden usar la seguridad inherente con los servicios IPSec, sin necesidad de mayores modificaciones. IPSec es un método de protección de paquetes IP. Esta protección consiste en la autenticación de los datos originales, integridad de la conexión y confidencialidad del contenido de los datos. IPSec provee un estándar robusto que provee seguridad a IP y a los protocolos de capas superiores (UDP y TCP) y es transparente a los usuarios. Un aspecto sorprendente de IPSec es que a pesar de trabajar sobre la capa de Red, es “orientado a conexión”, esta “conexión” está dada por las SA que son asociaciones de seguridad.
Protocolos de IPSec: • •
IP Authentication Header (AH): Ofrece autenticación del emisor, protección antireply e integridad de datos. IP Encapsulating Security Payload (ESP): brinda confidencialidad, autenticación del emisor, integridad de los datos y protección antireply. Como podemos observar, ESP provee lo mismo que AH y además en forma opcional, confidencialidad en los datos. Internet Security Association and Key Management Protocol (ISAKMP): brindan un método para establecer automáticamente una SA (SecurityAssociations) y la gestión de las claves de cifrado. IKE (Internet Key Exchange): Los servicios de seguridad provistos por IPSec requieren del intercambio de claves para realizar la autenticación y confidencialidad. IKE es el protocolo de autenticación dinámica, negociación de servicios de seguridad y generación de claves compartidas. (es más utilizado que ISAKMP).
Arquitectura (Explicado más adelante) El protocolo IPSec (AH y ESP) puede ser usado para proteger tanto al paquete IP completo como a los mensajes de protocolos de Capas Superiores que constituyen la carga útil (payload) del paquete IP. • Modo Transporte: es usado para proteger a los protocolos de capa superior. En este modo, es insertado un encabezado IPSec entre el encabezado IP y el encabezado del protocolo de capa superior. • Modo Túnel: es usado para proteger todo el datagrama IP. En este modo todo el paquete IP a ser protegido es encapsulado en otro datagrama IP y el encabezado IPSec se inserta entre el encabezado del paquete IP externo y el interno.
A causa de los métodos de construcción, el modo transporte solo puede usarse para proteger paquetes donde el punto final del enlace de comunicación es también el punto final criptográfico. El modo túnel puede ser usado en lugar de modo transporte y también puede utilizarse por gateways para proveer servicios de seguridad en nombre de otras entidades de red por ejemplo, una VPN. En casos más recientes, los extremos de comunicación son aquellos especificados en el encabezado interior o protegidos, y los extremos criptográficos son aquellos que llevan el encabezado IP externo.
Como se ha visto, IPSec se puede implementar en sistemas finales o en dispositivos (gateway) de seguridad tales como routers y firewall. ESP (SIN LA EXPLICACIÓN DEL ENCABEZADO ESP) ESP es el protocolo IPSec que provee confidencialidad, integridad de datos y autenticación del origen de datos de los paquetes IP, y también provee protección contra ataques de repetición (replay). Esto se realiza insertando un nuevo encabezado un encabezado ESP después de un encabezado IP y antes del dato a ser protegido tanto del protocolo de capa superior o un datagrama completo y anexando una cola o “trailer” ESP. Es un nuevo protocolo IP y un paquete ESP es identificado por el protocolo por el campo “Protocolo” en el encabezado IPv4.
Dado que ESP provee confidencialidad y autenticación, existen múltiples algoritmos definidos en las SA (contrato entre quienes se comunican) - uno para confidencialidad llamado “cifrador”, y el otro para autenticación llamado el “autenticador”. Cada SA de ESP puede tener al menos un cifrador y un autenticador. Es posible definir un cifrador NULO o un autenticador NULO y tener ESP sin encriptación o ESP sin autenticación respectivamente, pero es ilegal tener ambos NULOS dentro de una SA ESP individual. Es ilegal debido a que no solo no tiene sentido sobrecargar el sistema, sino que este no provee seguridad. En el procesamiento del paquete ESP: Primero verifica el número de secuencia, entonces verifica la integridad de los datos, entonces desencripta los datos. Dada que la desencriptación es al último, el número de secuencia (evita el replay) y la autenticación de datos deben estar en texto claro (para no gastar poder de procesamiento en desencriptar elementos que serán descartados). AH - Authentication Header (SIN LA EXPLICACIÓN DEL ENCABEZADO AH) Como ESP, AH provee integridad de datos, autenticación de la fuente de datos y protección contra ataques de replay. Este no provee confidencialidad. Debido a esto es mucho más simple que ESP; está constituido de solo un header ya que no contiene un trailer. Además, todos los campos del encabezado AH están en texto claro (sin encriptar).
El encabezado AH, análogo al ESP , contiene un SPI para ayudar a localizar al SA por medio del cual es procesado el paquete, un número de secuencia contra el ataque de replay, y un campo de autenticación de datos que contiene el compendio de la clave MAC usada para seguridad del paquete. Puesto que AH no provee confidencialidad usando cifrado simétrico en modo CBC, no es necesario un relleno (ESP tenía el tráiler para que el paquete entero fuera múltiplo de otra cosa). La autenticación de AH difiere de ESP. AH autentica al encabezado externo del paquete IP. El campo protocolo de un datagrama IPv4 protegido con AH es “51” indicando que siguiendo al encabezado IP le sigue un encabezado AH. Arquitecturas o Modos
En la práctica AH en modo túnel no es utilizado dado que protege los mismos datos que AH en modo transporte.
Modo Transporte En el modo transporte, AH y ESP protegen el encabezado de transporte. Es este modo, AH y ESP interceptan el flujo de paquetes desde la capa de transporte dentro de la capa de red y proveen la configuración de seguridad. El modo transporte de IPSec puede usarse solo cuando se desea seguridad entre ambos extremos finales (end to end). Los routers miran en la mayoría de las veces la capa de red cuando tiene que tomar decisiones de enrutamiento y no debieran cambiar nada más allá del encabezado de la capa de red.
ESP+AH Cuando son usados AH y ESP en modo transporte, ESP debiera ser aplicado primero. La razón es obvia. Dado que se desea el mayor nivel posible de datos con integridad si el paquete es protegido usando AH después de que es protegido con ESP, entonces la integridad de datos se aplica a la carga útil ESP, que contiene la carga útil de transporte como se muestra en la figura.
Modo Túnel IPSec en modo túnel es usado normalmente cuando el destino final de los paquetes es diferente del punto final de seguridad como se muestra en la figura. El modo túnel es también usado en casos donde la seguridad es provista por un dispositivo que no origina paquetes como es el caso de VPN (supongo que lo dice porque el router puede hacer la VPN y el router no origina paquetes).
En el caso de modo túnel, IPSec encapsula al paquete IP con en Header IPSec y agrega un Header IP externo como se muestra la figura.
Un paquete IPSec en modo túnel tiene dos encabezados IP, uno interior y otro exterior. El encabezado interior es construido por el host y el exterior es agregado por el dispositivo que provee servicio de seguridad (ya sea un host o un router). También soporta túneles “anidados”. El tunneling anidado es cuando el paquete de túnel es nuevamente tunelizado en otro túnel, como se muestra en la figura.
El requisito para el túnel es que el encabezado interior es completamente comprendido por el encabezado exterior. (Ejemplos página 17 del archivo VPN-IPSec.pdf).
Asociación de Seguridad (Security Associations) Las SA son el contrato entre dos entidades que se comunican. Ellas determinan los protocolos IPSec usados para asegurar los paquetes, la transformación, las claves y la duración por el cual las claves son válidas. Cualquier implementación IPSec permite construir una base de datos SA (SADB - SA database) que mantiene las SA que usa IPSec para proteger los paquetes. Las SA son de una vía. Si dos host, A y B, están comunicándose seguramente usando ESP, entonces el host A debe tener una SA de salida para procesar paquetes salientes y una SA de entrada para procesar paquetes entrantes. El host B también crea dos SA para procesar estos paquetes. Las SA de salida de host A y la SA de entrada del host B deben compartir los mismos parámetros de criptografía, tales como las claves. Existe una SA por cada protocolo. Sidos host, A y B se comunican en forma segura usando AH y ESP, entonces cada host construye una SA separada para cada protocolo. Existe otro componente de la arquitectura IPSec llamado la base de datos de políticas de seguridad (SPD - Security Policy Database). El SPD trabaja en conjunción con el SADB en el procesamiento de paquetes. La política es un componente extremadamente importante de la arquitectura IPSec. La política define las características de seguridad entre dos entidades. Esto define que protocolos para usar en qué modo y qué transformación usar. Esto también define como los paquetes IP son tratados. Identificación de una SA: •
• •
Parámetro índice de Seguridad (Security Parameter Index - SPI): Es un número entero de 32 bits que identifica diferentes SAs con la misma dirección IP destino y el mismo protocolo. El SPI es transmitido como parte del encabezado AH y ESP. Dirección IP Destino: Puede ser una dirección IP unicast, broadcast, o multicast. Protocolo de Seguridad: Puede ser AH o ESP.
Anti-Repetición (Anti-Replay) Ambos protocolos suministran servicio antireplay para prevenir contra ataque de denegación de servicio (DOS - Denial Of Service) en el cual los paquetes viejos son reenviados por un atacante para causar que la CPU del receptor consuma ciclos de procesamiento. Los paquetes IPSec están protegidos contra ataques replay usando un número de secuencia y un mecanismo de “ventana deslizante”. (Explicación del funcionamiento pág. 21 VPN-IPSec.pdf). Intercambio de Claves Internet - IKE (Internet Key Exchange) El propósito de IKE es establecer parámetros de seguridad compartida para autenticar las claves, en otras palabras, la asociación de seguridad (SA), entre los pares IPSec. IKE define el formato del paquete, los tiempos de retransmisión y los requisitos para la construcción de los mensajes. IKE usa el concepto de SA (Security Association) pero la construcción física de una SA IKE es diferente que en IPSec. La SA IKE define la vía por la cual dos extremos comunicantes, por ejemplo, cual algoritmo usa IKE para encriptar el tráfico, cómo autenticar, etc. La SA IKE es entonces usada para producir número de SA IPSec entre pares. La SA IPSec establecida por IKE puede opcionalmente mejorar el envío secreto de claves.
Virtual Private Network (VPN) La Red Privada Virtual es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como por ejemplo Internet, con muchas propiedades de las redes privadas. Se llaman virtuales porque son sólo una ilusión y son construidas normalmente sobre internet. Un diseño común es equipar cada oficina con un firewall y crear túneles a través de internet con el uso de IPSec con ESP, entre todos los pares de oficinas. Si IPSec se utilizara para el proceso de enrutamiento, entonces sería posible agregar todo el tráfico entre cualquiera de los dos pares de oficinas con una sola SA encriptada y autenticada, con lo que se proporcionaría control de integridad, confidencialidad e incluso inmunidad considerable al análisis de tráfico. Cuando se inicia el sistema, cada firewall tiene que negociar los parámetros de su SA, incluyendo servicios, modos, algoritmos y claves. Una vez establecidas las SA, el tráfico puede comenzar a fluir. Para un router en internet, un paquete que viaja a través de un túnel VPN es sólo un paquete ordinario. Lo único extraño es la presencia del encabezado IPSec después del encabezado IP. Una ventaja principal de oranizar de esta forma una VPN es que es completamente transparente para todo software de usuario. Los firewalls configuran y manejas las SA. La única persona que está consciente de esta configuración es el administrador del sistema, quien tiene que configurar y manejar los firewalls.
Ventajas
Integridad, confidencialidad y seguridad de datos. Las VPN reducen los costos y son sencillas de usar. Facilita la comunicación entre dos usuarios en lugares distantes. Se utilizá más en campus de Unversidades.
Tipos de conexión
Conexión de acceso remoto: Una conexión de acceso remoto es realizada por un cliente o un usuario de una computadora que se conecta a una red privada, los paquetes enviados a través de la conexión VPN son originados al cliente de acceso remoto, y éste se autentica al servidor de acceso remoto, y el servidor se autentica ante el cliente. Conexión VPN router a router: Una conexión VPN router a router es realizada por un router, y este a su vez se conecta a una red privada. En este tipo de conexión, los paquetes enviados desde cualquier router no se originan en los routers. El router que realiza la llamada se autentifica ante el router que responde y este a su vez se autentica ante el router que realiza la llamada y también sirve para la intranet. Conexión VPN firewall a firewall: Una conexión VPN firewall a firewall es realizada por uno de ellos, y éste a su vez se conecta a una red privada. En este tipo de conexión, los paquetes son enviados desde cualquier usuario en Internet. El firewall que realiza la llamada se autentica ante el que responde y éste a su vez se autentica ante el llamante.
Seguridad Inalámbrica Se han diseñado protocolos para que la seguridad en una LAN inalámbrica sea tan buena como la de una LAN cableada, uno de ellos es WEP (Privacidad Inalámbrica Equivalente) que trabaja a nivel de la capa de enlace de datos. Cuando se habilita la seguridad, cada estación tiene una clave secreta que comparte con la estación base (la forma en que se intercambian las claves no está especificada por el estándar) y la utiliza para cifrar y descifrar la información. La encriptación WEP utiliza cifrado de flujo con base en el algoritmo RC4 que genera un flujo de claves al cual se le aplica un XOR con el texto plano para dar lugar al texto cifrado. Bluetooth tiene un rango más corto que las LAN inalámbricas, pero tiene tres modos de seguridad, que van desde ninguna seguridad, hasta la encriptación completa de datos y control de integridad. Bluetooth proporciona seguridad en múltiples capas, pero la seguridad real inicia cuando el esclavo pide un canal al maestro y se da por hecho que los dos dispositivos comparten una clave secreta establecida con anticipación. Un problema de seguridad de bluetooth es que solo autentica dispositivos y no usuarios, por lo que un robo de un dispositivo podría abrir una brecha de seguridad (aunque a nivel de aplicación podría pedírsele un password que solucione este problema). WAP (Wireless Application Protocol) utiliza protocolos estándares en todas las capas y como está basado en IP, soporta el uso de IPSec en la capa de red. En la capa de transporte, las conexiones TCP pueden protegerse con el uso de TLS y en las capas superiores utilizar autenticación de cliente HTTP por ejemplo. Secured Sockets Layer (SSL) La capa de sockets seguros constituye una conexión segura entre dos sockets, incluyendo:
Negociación de parámetros entre el cliente y el servidor. Autenticación tanto del cliente como del servidor. Comunicación secreta. Protección de la integridad de los datos.
SSL es una nueva capa colocada entre la capa de aplicación y la de transporte, que acepta solicitudes del navegador enviándolas a través TCP para transmitirlas al servidor. Una vez que se ha establecido la conexión segura, el trabajo principal de SSL, se conoce como HTTPS (HTTP Seguro, aunque es el protocolo HTTP estándar). Sin embargo, algunas veces está disponible en un nuevo puerto 443 en lugar del estándar 80. SSL consiste en dos subprotocolos, uno que permite establecer una conexión seguro y otro que permite usarla. Funcionamiento Las conexiones seguras se establecen cuando una maquina A envía un mensaje de solicitud a la máquina B para establecer una conexión, en este mensaje se especifica la versión de SSL que posee A y sus preferencias con respecto a algoritmos criptográficos y compresión, junto con una marca aleatoria 𝑅𝐴 . La máquina B responde indicando que algoritmo utilizarán de los que A ofreció, junto con su marca aleatoria 𝑅𝐵 y un certificado con su clave pública. Una vez enviado esto, B envía un mensaje a A indicando que es su turno. Entonces A responde a B seleccionando una clave pre-maestra aleatoria de 384bits y la envía a B encriptada con la clave publica de B. La clave de sesión utilizada para encriptar datos se deriva de la clave pre-maestra combinada con 𝑅𝐴 y 𝑅𝐵 . Por lo que después de que B recibe la
clave pre-maestra ambos pueden calcular la clave de sesión. A envía un mensaje a B diciendo que utilice el nuevo cifrado (la clave de sesión) y B responde este mensaje confirmando que cambia al nuevo cifrado. A partir de aquí pueden comenzar a intercambiar datos.
Aplicaciones SSL se ejecuta en una capa entre los protocolos de aplicación como HTTP, SMTP, NNTP y sobre el protocolo de transporte TCP, que forma parte de la familia de protocolos TCP/IP. Aunque pueda proporcionar seguridad a cualquier protocolo que use conexiones de confianza (tal como TCP), se usa en la mayoría de los casos junto a HTTP para formar HTTPS. HTTPS es usado para asegurar páginas World Wide Web para aplicaciones de comercio electrónico, utilizando certificados de clave pública para verificar la identidad de los extremos. Aunque un número creciente de productos clientes y servidores pueden proporcionar SSL de forma nativa, muchos aún no lo permiten. En estos casos, un usuario podría querer usar una aplicación SSL independiente como Stunnel para proporcionar cifrado. No obstante, el Internet Engineering Task Force recomendó en 1997 que los protocolos de aplicación ofrecieran una forma de actualizar a TLS a partir de una conexión sin cifrado (plaintext), en vez de usar un puerto diferente para cifrar las comunicaciones – esto evitaría el uso de envolturas (wrappers) como Stunnel. SSL también puede ser usado para tunelizar una red completa y crear una red privada virtual (VPN), como en el caso de OpenVPN.
Transport Layer Security
Secure Sockets Layer -Protocolo de Capa de Conexión Segura- (SSL) y Transport Layer Security Seguridad de la Capa de Transporte- (TLS), su sucesor, son protocolos criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet. Existen pequeñas diferencias entre SSL 3.0 y TLS 1.0, pero el protocolo permanece sustancialmente igual. La forma en que se deriva una clave de sesión a partir de la clave pre-maestra y las marcas aleatorias se cambió para hacer que la clave fuera más fuerte. La versión de TLS también se conoce como SSL Versión 3.1 (ya que la última versión de SSL es la 3.0). Dado que es más fuerte TLS que SSL aun no se sabe si lo reemplazará en la práctica o no.