Resumen del Libro TCP / IP De Douglas Comer 1er Parcial Redes II Índice 5 TRANSFORMACIÓN DE DIRECCIONES INTERNET EN DIRECCIONES FÍSICAS (ARP) ............. 6 5.4 ASOCIACIÓN MEDIANTE TRANSFORMACIÓN DIRECTA ................................................................................................ 6 5.5 DEFINICIÓN MEDIANTE ENLACE DINÁMICO.............................................................................................................. 6 5.6 MEMORIA INTERMEDIA ...................................................................................................................................... 6 5.7 REFINAMIENTOS ARP ........................................................................................................................................ 6 5.8 RELACIÓN DE ARP CON OTROS PROTOCOLOS .......................................................................................................... 6 5.9 IMPLANTACIÓN DE ARP ..................................................................................................................................... 7 5.10 ENCAPSULACIÓN E IDENTIFICACIÓN DE ARP ......................................................................................................... 7 5.11 FORMATO DEL PROTOCOLO ARP ........................................................................................................................ 7 6 DETERMINACIÓN EN EL ARRANQUE DE UNA DIRECCIÓN INTERNET (RARP) ........................ 8 6.1 INTRODUCCIÓN ................................................................................................................................................. 8 6.2 PROTOCOLO DE DIRECCIÓN DE ASOCIACIONES POR RÉPLICA........................................................................................ 8 6.3 TEMPORIZACIÓN DE LAS TRANSACCIONES RARP...................................................................................................... 8 7 IP: ENTREGA DE DATAGRAMAS SIN CONEXIÓN ............................................................................. 9 7.2 UNA RED VIRTUAL ............................................................................................................................................ 9 7.3 ARQUITECTURA Y FILOSOFÍA DE INTERNET .............................................................................................................. 9 7.4 EL CONCEPTO DE ENTREGA NO CONFIABLE .............................................................................................................. 9 7.5 SISTEMA DE ENTREGA SIN CONEXIÓN ..................................................................................................................... 9 7.6 PROPÓSITO DE IP .............................................................................................................................................. 9 7.7 DATAGRAMA DE INTERNET .................................................................................................................................. 9 7.7.1 Formato de datagrama ...................................................................................................................... 10 7.7.2 Tipo de datagramas de servicio y prioridad de datagramas .............................................................. 11 7.7.3 Encapsulación de datagramas ........................................................................................................... 11 7.7.4 Tamaño del Datagrama, MTU de red y fragmentación ..................................................................... 11 7.7.5 Reensamblado de fragmentos............................................................................................................. 11 7.7.6 Control de fragmentación .................................................................................................................. 11 7.7.7 Time to Live (TTL) ............................................................................................................................. 11 7.7.8 Otros campos de encabezado de datagrama ...................................................................................... 11 7.8 OPCIONES PARA LOS DATAGRAMAS DE INTERNET ................................................................................................... 11 7.8.1 Opción de registro de ruta ................................................................................................................. 12 7.8.2 Opción de ruta fuente ......................................................................................................................... 12 7.8.3 Opción de sello de hora ..................................................................................................................... 12 7.8.4 Fragmentación durante el procesamiento de las opciones ................................................................ 12 8 IP: RUTEO DE DATAGRAMAS ............................................................................................................. 13 8.1 INTRODUCCIÓN ............................................................................................................................................... 13 8.2 RUTEO EN UNA RED DE REDES ............................................................................................................................ 13 8.3 ENTREGA DIRECTA E INDIRECTA .......................................................................................................................... 13 8.4 RUTEO IP CONTROLADO POR TABLA .................................................................................................................... 13 8.5 RUTEO CON SALTO AL SIGUIENTE ........................................................................................................................ 13 8.6 RUTAS ASIGNADAS POR OMISIÓN........................................................................................................................ 14 8.7 RUTEO POR ANFITRIÓN ESPECIFICO ..................................................................................................................... 14 8.8 EL ALGORITMO DE RUTEO IP.............................................................................................................................. 14 8.9 RUTEO CON DIRECCIONES IP.............................................................................................................................. 14 8.10 MANEJO DE LOS DATAGRAMAS ENTRANTES ........................................................................................................ 14 8.11 ESTABLECIMIENTO DE LAS TABLAS DE RUTEO ....................................................................................................... 15 9 IP: MENSAJES DE ERROR Y DE CONTROL (ICMP) ......................................................................... 16 9.2 EL PROTOCOLO DE MENSAJES DE ERROR DE INTERNET ............................................................................................. 16 9.3 REPORTE DE ERRORES CONTRA CONEXIÓN ............................................................................................................ 16 9.4 ENTREGA DE MENSAJES ICMP ........................................................................................................................... 16 9.5 FORMATO DE LOS MENSAJES ICMP .................................................................................................................... 16 9.6 EL MENSAJE PING .......................................................................................................................................... 16 9.8 REPORTE DE DESTINOS NO ACCESIBLES................................................................................................................. 16 9.9 CONTROL DE CONGESTIONAMIENTOS Y DE FLUJO DE DATAGRAMAS ........................................................................... 17 9.10 FORMATO DE DISMINUCIÓN DE TASA DE ORIGEN ................................................................................................. 17 9.11 SOLICITUD DE CAMBIO DE RUTA DESDE LOS ROUTERS ............................................................................................ 17 9.12 DETECCIÓN DE RUTAS CIRCULARES O EXCESIVAMENTE LARGAS................................................................................ 17 9.13 REPORTE DE OTROS PROBLEMAS ...................................................................................................................... 17 9.14 SINCRONIZACIÓN DE RELOJES Y ESTIMACIÓN DE TIEMPO DE TRANSITO ...................................................................... 17 9.15 SOLICITUD DE INFORMACIÓN Y MENSAJES DE RESPUESTA ....................................................................................... 17 9.16 OBTENCIÓN DE UNA MÁSCARA DE SUBRED ......................................................................................................... 18 10 EXTENSIONES DE DIRECCIÓN DE SUBRED Y SUPERRED .......................................................... 19 10.2 RESEÑA DE HECHOS IMPORTANTES ................................................................................................................... 19 10.3 MINIMIZACIÓN DE NÚMEROS DE RED ................................................................................................................ 19 10.4 ROUTERS TRANSPARENTES .............................................................................................................................. 19 10.5 ARP SUSTITUTO............................................................................................................................................ 20 10. 6 DIRECCIONES DE SUBRED ............................................................................................................................... 20 10.7 FLEXIBILIDAD EN LA ASIGNACIÓN DE DIRECCIONES DE SUBRED................................................................................. 20 10.8 IMPLANTACIONES DE SUBREDES CON MÁSCARAS.................................................................................................. 20 10.9 REPRESENTACIÓN DE MÁSCARAS DE SUBRED ....................................................................................................... 20 10.10 RUTEO CON LA PRESENCIA DE SUBREDES .......................................................................................................... 20 10.11 EL ALGORITMO DE RUTEO DE SUBRED .............................................................................................................. 20 10.12 UN ALGORITMO UNIFICADO DE RUTEO............................................................................................................. 20 10.13 MANTENIMIENTO DE LAS MÁSCARAS DE SUBRED ............................................................................................... 20 10.14 DIFUSIÓN A LAS SUBREDES ............................................................................................................................ 21 10.15 DIRECCIONAMIENTO DE SUPERRED ................................................................................................................. 21 10.16 EL EFECTO DE TRABAJAR CON SUPERREDES DE RUTEO.......................................................................................... 21 12 PROTOCOLO DE DATAGRAMA DE USUARIO (UDP) .................................................................... 22 12.2 IDENTIFICACIÓN DEL DESTINO FINAL .................................................................................................................. 22 12.3 PROTOCOLO DE DATAGRAMA USUARIO (UDP).................................................................................................... 22 12.4 FORMATO DE LOS MENSAJES UDP .................................................................................................................... 22 12.5 PSEUDO ENCABEZADO UDP ............................................................................................................................ 23 12.6 ENCAPSULACIÓN DE UDP Y ESTRATIFICACIÓN POR CAPAS DE PROTOCOLOS ............................................................... 23 12.7 ESTRATIFICACIÓN POR CAPAS Y CÓMPUTO UDP DE SUMA DE VERIFICACIÓN .............................................................. 23 12.8 MULTIPLEXADO, DEMULTIPLEXADO Y PUERTOS UDP ............................................................................................ 23 12.9 NÚMEROS DE PUERTO UDP RESERVADOS Y DISPONIBLES ...................................................................................... 24 13 SERVICIO DE TRANSPORTE Y FLUJO CONFIABLE (TCP) .......................................................... 25 13.2 NECESIDAD DE LA ENTREGA DE FLUJO ................................................................................................................ 25 13.3 CARACTERÍSTICAS DEL SERVICIO DE ENTREGA CONFIABLE ....................................................................................... 25 13.4 PROPORCIONANDO CONFIABILIDAD .................................................................................................................. 25 13.5 LA IDEA DETRÁS DE LAS VENTANAS DESLIZABLES................................................................................................... 26 13.6 PROTOCOLO DE CONTROL DE TRANSMISIÓN (TCP) .............................................................................................. 27 13.7 PUERTOS CONEXIONES Y PUNTOS EXTREMOS ...................................................................................................... 27 13.8 APERTURAS PASIVAS Y ACTIVAS ........................................................................................................................ 27 13.9 SEGMENTOS, FLUJOS Y NÚMEROS DE SECUENCIA ................................................................................................. 27 13.10 TAMAÑO VARIABLE DE VENTANA Y CONTROL DE FLUJO........................................................................................ 27 13.11 FORMATO DE SEGMENTO TCP ....................................................................................................................... 28 13.12 DATOS FUERA DE BANDA .............................................................................................................................. 29 13.14 CÓMPUTO DE SUMA DE VERIFICACIÓN ............................................................................................................. 29 13.15 ACUSES DE RECIBO Y RETRANSMISIÓN.............................................................................................................. 29 13.17 MEDICIÓN DEL RTT (ROUND TRIP TIME) ......................................................................................................... 30 13.18 ALGORITMO DE KARN Y ANULACIÓN DEL TEMPORIZADOR .................................................................................... 30 13.19 RESPUESTA A UNA VARIACIÓN ALTA DE RETRASO ............................................................................................... 30 13.20 RESPUESTA AL CONGESTIONAMIENTO ............................................................................................................. 30 13.21 ESTABLECIMIENTO DE UNA CONEXIÓN TCP ...................................................................................................... 31 13.22 NÚMEROS DE SECUENCIA INICIAL.................................................................................................................... 31 13.23 TERMINACIÓN DE UNA CONEXIÓN................................................................................................................... 31 13.24 RESTABLECIMIENTO DE UNA CONEXIÓN TCP..................................................................................................... 31 13.25 MÁQUINA DE ESTADO TCP ........................................................................................................................... 31 13.26 FORZANDO LA ENTREGA DE DATOS.................................................................................................................. 31 13.27 NÚMEROS RESERVADOS DE PUERTO TCP ......................................................................................................... 31 13.28 DESEMPEÑO DEL TCP .................................................................................................................................. 31 13.29 SÍNDROME DE LA VENTANA TONTA ................................................................................................................. 31 13.30 PREVENCIÓN DEL SÍNDROME DE VENTANA TONTA .............................................................................................. 32 13.30.1 Prevención del lado del receptor ................................................................................................... 32 13.30.2 Acuses de recibo retardados .......................................................................................................... 32 13.30.3 Prevención del lado del emisor ...................................................................................................... 32 14 RUTEO: NÚCLEOS, PARES Y ALGORITMOS (GGP) ...................................................................... 33 14.2 ORIGEN DE LAS TABLAS DE RUTEO ..................................................................................................................... 33 14.3 RUTEO CON INFORMACIÓN PARCIAL .................................................................................................................. 33 14.4 ARQUITECTURA Y NÚCLEOS DE INTERNET ORIGINALES ........................................................................................... 33 14.5 ROUTERS DE NÚCLEO ..................................................................................................................................... 33 14.6 MÁS ALLÁ DE LA ARQUITECTURA DE NÚCLEO, HASTA LAS COLUMNAS VERTEBRALES PARES............................................ 33 14.7 DIFUSIÓN AUTOMÁTICA DE RUTA...................................................................................................................... 34 14.8 RUTEO POR VECTOR-DISTANCIA (BELLMAN-FORD) ............................................................................................... 34 14.9 PROTOCOLO PASARELA-A-PASARELA (GGP) ....................................................................................................... 34 14.10 FORMATO DE LOS MENSAJES GGP .................................................................................................................. 34 14.11 RUTEO DE ENLACE ESTADO (SPF) ................................................................................................................... 34 14.12 PROTOCOLOS SPF ....................................................................................................................................... 35 15 RUTEO: SISTEMAS AUTÓNOMOS (EGP) ......................................................................................... 36 15.2 AGREGAR COMPLEJIDAD AL MODELO ARQUITECTÓNICO ........................................................................................ 36 15.3 UNA IDEA FUNDAMENTAL: SALTOS ADICIONALES (HOPS) ....................................................................................... 36 15.4 CONCEPTO DE LOS SISTEMAS AUTÓNOMOS......................................................................................................... 37 15.5 PROTOCOLO DE PASARELA EXTERIOR (EGP)........................................................................................................ 37 15.6 ENCABEZADO DE MENSAJES ............................................................................................................................. 38 15.7 MENSAJES DE ADQUISICIÓN DE VECINO.............................................................................................................. 38 15.8 MENSAJES DE ACCESIBILIDAD DE VECINO EGP..................................................................................................... 38 15.9 MENSAJES DE SOLICITUD DE SONDEO EGP ......................................................................................................... 38 15.10 MENSAJE DE ACTUALIZACIÓN DE ENRUTAMIENTO EGP ....................................................................................... 39 15.11 MEDICIÓN DESDE LA PERSPECTIVA DEL RECEPTOR .............................................................................................. 39 15.12 LA RESTRICCIÓN CLAVE DE EGP ...................................................................................................................... 39 15.13 PROBLEMAS TÉCNICOS ................................................................................................................................. 39 15.14 DESCENTRALIZACIÓN DE LA ARQUITECTURA INTERNET ........................................................................................ 39 15.15 MÁS ALLÁ DE LOS SISTEMAS AUTÓNOMOS........................................................................................................ 39 16 RUTEO EN UN SISTEMA AUTÓNOMO ............................................................................................. 40 16.2 RUTAS INTERIORES DINÁMICAS Y ESTÁTICAS ........................................................................................................ 40 16.3 PROTOCOLO DE INFORMACIÓN DE RUTEO (RIP) .................................................................................................. 40 16.3.1 Solución al problema de la convergencia lenta ............................................................................... 40 16.3.2 Formato del mensaje RIP ................................................................................................................. 40 16.3.3 Convenciones de direccionamiento RIP ........................................................................................... 40 16.3.4 Transmisión de mensajes RIP .......................................................................................................... 41 16.4 PROTOCOLO HELLO ....................................................................................................................................... 41 16.5 COMBINACIÓN DE PROTOCOLO RIP, HELLO Y EGP .............................................................................................. 41 16.6 PROTOCOLO DE SPF ABIERTO (OSPF) ............................................................................................................... 41 16.6.1 Formato de mensaje OSPF .............................................................................................................. 41 16.6.2 Formato del mensaje Hello de OSPF............................................................................................... 41 16.6.3 Formato del mensaje de descripción de la base de datos del OSPF ................................................ 41 16.6.4 Formato del mensaje de solicitud de enlace del OSPF .................................................................... 41 16.6.5 Formato del mensaje de actualización de estado de enlace OSPF .................................................. 41 16.7 RUTEO CON INFORMACIÓN PARCIAL .................................................................................................................. 41 17 MULTIDIFUSIÓN INTERNET (IGMP) ................................................................................................ 42 17.2 DIFUSIÓN POR HARDWARE .............................................................................................................................. 42 17.3 MULTIDIFUSIÓN POR HARDWARE ..................................................................................................................... 42 17.4 MULTIDIFUSIÓN IP ........................................................................................................................................ 42 17.5 DIRECCIONES DE MULTIDIFUSIÓN IP .................................................................................................................. 42 17.6 TRANSFORMACIÓN DE MULTIDIFUSIÓN IP EN MULTIDIFUSIÓN ETHERNET ................................................................. 42 17.7 EXTENSIÓN DEL IP PARA MANEJAR LA MULTIDIFUSIÓN .......................................................................................... 42 17.8 PROTOCOLO DE GESTIÓN DE GRUPOS DE INTERNET............................................................................................... 42 17.9 IMPLANTACIÓN IGMP ................................................................................................................................... 42 17.10 TRANSICIONES DEL ESTADO DE LA MEMBRESÍA DE GRUPO .................................................................................... 42 17.11 FORMATO DE LOS MENSAJES IGMP ................................................................................................................ 42 17.12 ASIGNACIÓN DE DIRECCIONES DE MULTIDIFUSIÓN .............................................................................................. 42 17.13 DIFUSIÓN DE INFORMACIÓN DE RUTEO ............................................................................................................ 43 17.14 EL PROGRAMA MROUTED.............................................................................................................................. 43 5 Transformación de direcciones Internet en direcciones físicas (ARP) 5.4 Asociación mediante transformación directa Puede ser usada en redes donde las direcciones físicas pueden ser asignadas por un administrador, entonces se tiene la posibilidad de elegir una dirección física que se asocie con la dirección IP de la interfaz de la máquina. Para esta transformación (IP ►Dirección Física) solo es necesaria la creación de una función. PA = f (IA) 5.5 Definición mediante enlace dinámico Para algunas redes la asociación de direcciones no es tan sencilla, caso de Ethernet. Las direcciones físicas de Ethernet tienen 48 bits y las IP 32 bits, por eso no es posible una asociación uno a uno. Para solucionar esto se creó el protocolo de bajo nivel (capa 2) ARP que resuelve la asociación de manera dinámica sin una base centralizada. Cuando se quiere averiguar la dirección física de una máquina, el proceso sería el siguiente: Si A quiere saber la dirección física de B, el anfitrión A envía un paquete por difusión a todas las máquinas. Todas las máquinas lo reciben, pero B solamente se hace cargo porque reconoce que el paquete es para él (lo reconoce porque el paquete va grabado con la IP de B) entonces B responde el mensaje con su dirección física directamente (y solamente) a A. 5.6 Memoria intermedia Dado que la difusión es costosa, se mantiene una memoria intermedia con direcciones ya consultadas para no tener que volver a realizar la consulta. Esta memoria se chequea siempre antes de enviar la difusión. Las entradas se mantienen por un determinado tiempo ya que la dirección física de una máquina puede cambiar si se cambia su hardware de acceso a la red. Si fueran permanentes, pasaría que si A recuerda que B tiene cierta dirección física y luego la dirección de B cambia, A no podrá mandar paquetes a B porque su dirección física es errónea. 5.7 Refinamientos ARP Una mejora se basa en que si A necesita mandar algo a B, seguramente B necesite enviar algo a la máquina A, entonces cuando A envía la difusión, en el paquete, además de incluir su propia IP y la IP de B, también agrega su propia dirección física. Así, cuando B recibe el paquete, ya puede guardar la dirección física de A y se ahorra de realizar una consulta más tarde. 5.8 Relación de ARP con otros protocolos ARP es un protocolo de bajo nivel que oculta el direccionamiento físico subyacente. Se piensa en ARP como parte del sistema físico de red y no como parte del conjunto de protocolos de red de redes. 5.9 Implantación de ARP ARP está dividido en dos partes: 1. La primera transforma una dirección IP en una física cuando se envía un paquete. 2. La segunda responde solicitudes de otras máquinas. 5.10 Encapsulación e identificación de ARP Los mensajes ARP se encapsulan en una trama. La trama está formada por un encabezado y por un área de datos. Para identificar que la trama transporta un mensaje ARP, se le asigna un valor especial al campo TIPO del encabezado. 5.11 Formato del protocolo ARP A diferencia de muchos protocolos, ARP posee un encabezado de tamaño variable para tener la capacidad de adaptarse a varias tecnologías. TIPO DE PROTOCOLO OPERACION TIPO DE HARDWARE HLEN PLEN SENDER HA SENDER HA SENDER IP SENDER IP TARGET HA TARGET HA TARGET IP Figura 5.3 El diagrama corresponde al ejemplo de un mensaje ARP cuando se usa para transformar direcciones físicas Ethernet a direcciones IP. Las direcciones de hardware tienen 6 octetos mientras que las IP tienen 4 octetos. El campo HARDWARE TYPE especifica el tipo de interfaz de hardware. El campo PROTOCOL TYPE especifica el tipo de dirección de protocolo de alto nivel. El campo OPERATION es el que especifica si se trata de un mensaje ARP. Los campos HLEN y PLEN son los que le dan a ARP la posibilidad de adaptarse a diferentes redes, ya que estos especifican el largo de las direcciones físicas y del protocolo de capa superior respectivamente. 6 Determinación en el arranque de una dirección Internet (RARP) 6.1 Introducción Se vio que ARP sirve para determinar direcciones físicas a través de direcciones IP. RARP (Reverse ARP) sirve justamente para lo contrario, es decir que determina direcciones IP a través de direcciones físicas. Esto es útil por ejemplo para aquellas máquinas que no poseen disco y no pueden almacenar su dirección IP en memoria secundaria, 6.2 Protocolo de dirección de asociaciones por réplica En este caso la resolución de direcciones se lleva a cabo a través de servidores RARP. Una máquina que requiera conocer si dirección IP, envía una solicitud RARP que es respondida por aquellas máquinas autorizadas para hacerlo. Las máquinas que responden, lo hacen directamente a la máquina que solicito el servicio. Para que el sistema funcione correctamente, deberá haber al menos un servidor RARP. 6.3 Temporización de las transacciones RARP El software RARP es el que debe manejar las fallas ya que este trabaja directamente sobre la capa física. Generalmente RARP trabaja sobre redes de área local, por lo tanto la tasa de fallos es muy baja. Se utiliza retraso en los envíos para evitar la inundación de la red con tráfico innecesario, ya que las solicitudes son enviadas a través de difusión. 6.4 Servidores RARP primarios y de respaldo 7 IP: Entrega de datagramas sin conexión 7.2 Una Red Virtual Un usuario percibe una red de redes como una sola red virtual que interconecta a todos los anfitriones, y a través de la cual es posible la comunicación; la arquitectura subyacente permanece oculta y es irrelevante. 7.3 Arquitectura y filosofía de internet Una red de redes TCP/IP posee una arquitectura de tres conjuntos de servicios. SERVICIOS DE APLICACION SERVICIOS DE TRANSPORTE CONFIABLE SERVICIOS DE ENTREGA DE PAQUETES SIN CONEXION Figura 7.1 7.4 El concepto de entrega no confiable 7.5 Sistema de entrega sin conexión Es el servicio más importante de la red de redes. Se conoce como no confiable porque la entrega no está garantizada. Los paquetes pueden perderse, duplicarse, desordenarse y demás, pero el servicio no notifica de tales hechos ni al emisor ni al receptor. 7.6 Propósito de IP El protocolo IP proporciona definiciones importantes: 1. Define la unidad básica de transferencia 2. Realiza la función de ruteo 3. Incluye un conjunto de reglas que le dan forma a la idea de entrega no confiable 7.7 Datagrama de Internet Posee un encabezado y un área de datos. Su formato es de características similares al formato de trama de una red física. 7.7.1 Formato de datagrama 0 4 VERS 8 HLEN 16 TIPO DE SERVICIO LONGITUD TOTAL IDENTIFICACION TTL 31 FLAGS OFFSET CHECKSUM PROTOCOLO IP DE FUENTE IP DE DESTINO RELLENO OPCIONES IP DATOS ... Figura 7.3 El datagrama según los campos: VERS: Proporciona la versión de IP con la que se creó el datagrama. PROTOCOLO: Determina el protocolo usado en la capa superior. HLEN: Proporciona la longitud del encabezado del datagrama, medida en cantidad de palabras de 32 bits. OPCIONES: Es un campo de longitud variable. Esta acompañado del campo RELLENO. RELLENO: Se complementa con el campo OPCIONES (para redondear el espacio utilizado por ese campo). LONGITUD TOTAL: Determina cual es la longitud total del datagrama medida en octetos. Al tener 16 bits, el tamaño máximo que puede tener un datagrama IP es de 2x1016 bytes (65535 bytes). TIPO DE SERVICIO (TOS): Determina como debe manejarse el datagrama. DIRECCION IP DESTINO: Hacia quien va dirigido el datagrama. DIRECCION IP FUENTE: Desde donde se envió el datagrama. CHECKSUM: Suma de verificación para comprobación de errores. TTL: Determina la cantidad máxima de tiempo que el datagrama podrá circular por la red. IDENTIFICACION: Identifica unívocamente al datagrama. OFFSET: Especifica el desplazamiento en el datagrama original de los datos que se están acarreando en el fragmento. FLAGS: Controlan la fragmentación. 7.7.2 Tipo de datagramas de servicio y prioridad de datagramas 7.7.3 Encapsulación de datagramas 7.7.4 Tamaño del Datagrama, MTU de red y fragmentación 7.7.5 Reensamblado de fragmentos 7.7.6 Control de fragmentación En el header IP hay 3 campos que controlan la fragmentación, estos son el FRAGMENT OFFSET, FLAGS e IDENTIFICATION. El campo identificación debe copiarse a cada uno de los fragmentos ya que identifica a cada datagrama (su valor debe ser único). El Offset especifica el desplazamiento en el datagrama original de los datos que se están acarreando en el fragmento (el primer fragmento es aquel que tiene Offset 0). El primer bit es usado para especificar si el datagrama debe ser fragmentado o no. Al último bit de orden menor se lo denomina more fragments ya que especifica si después del fragmento actual hay mas fragmentos o no. 7.7.7 Time to Live (TTL) Especifica el tiempo que el datagrama puede permanecer en la red. Los routers que procesan el datagrama deben decrementar el TTL y deben descartar el datagrama una vez que el TTL llega a 0. En primer lugar el router decrementa el TTL en 1, pero si el datagrama permanece demasiado tiempo en la memoria intermedia, ese tiempo es registrado y restado también al TTL. 7.7.8 Otros campos de encabezado de datagrama El campo PROTOCOL especifica el protocolo utilizado en la capa superior. SOURCE ADDRESS determina la IP del emisor. HEADER CHECKSUM es la suma de verificación para el chequeo del header. DATA los datos enviados por la capa superior. 7.8 Opciones para los datagramas de Internet Es ejemplo de un campo que no necesariamente debe ser copiado en todos los fragmentos del datagrama. Su longitud puede variar. El contenido del campo OPTIONS puede estar conformado por uno o más octetos. Cada octeto es una opción. Todas las opciones van una al lado de la otra sin separadores especiales. Cada octeto de opción está compuesto por tres partes. COPY | OPTION CLASS | OPTION NUMBER COPY especifica si el campo OPTIONS debe copiarse en los fragmentos del datagrama. OPTION CLASS da información de a que clase pertenece la opción elegida. El valor 0 identifica a la clase control de red El valor 2 identifica a la clase de depuración y medición. OPTION NUMBER da una idea más específica de la opción dentro de la clase a la que pertenece. Algunas opciones son: 1. Opción de registro de ruta 2. Opción de ruta fuente 3. Opción de sello de hora 7.8.1 Opción de registro de ruta 7.8.2 Opción de ruta fuente 7.8.3 Opción de sello de hora 7.8.4 Fragmentación durante el procesamiento de las opciones 8 IP: Ruteo de datagramas 8.1 Introducción El objetivo de IP es proporcionar la vista de una red virtual que rutea paquetes, y abstraer a los usuarios de la existencia de las múltiples redes físicas subyacentes. 8.2 Ruteo en una red de redes En un sistema de conmutación de paquetes, el ruteo es el proceso de selección de un camino sobre el que se mandaran los paquetes. Un anfitrión generalmente está conectado a una sola red, puede eventualmente estar conectado a varias redes (multi homed) aunque en tal caso no se le permitirá rutear paquetes, es decir, si un datagrama le llega a él y no tiene su IP debe descartar el paquete. Los routers son los que se encargan realmente de rutear paquetes. 8.3 Entrega directa e indirecta La entrega directa se lleva a cabo cuando la entrega no requiere pasar a través de un router, sino que se realiza dentro de una sola red física. En caso contrario se tratará de una entrega indirecta. Para saber que un envió se va a realizar con entrega directa, el emisor compara la porción de red de la IP del destino con la porción de red de su propia IP y si coinciden sabe que se trata de ED. En la entrega indirecta el transmisor debe identificar un router para enviar el datagrama quien luego deberá encaminar el datagrama hacia su red de destino. Los routers en una red de redes TCP/IP forman una estructura cooperativa e interconectada. Los datagramas pasan de un router a otro hasta que llegan a destino 8.4 Ruteo IP controlado por tabla Tanto los anfitriones como los routers poseen tablas de ruteo. Para las tablas de ruteo se utiliza el principio de ocultación de información, para evitar los grandes volúmenes de datos que serian necesarios para poseer información de todos los destinos y de cómo llegar a ellos. Las tablas de ruteo solo contienen prefijos de red (no de hosts). 8.5 Ruteo con salto al siguiente Una tabla de ruteo contiene pares de la forma (N,R) donde N es la IP de red del destino y R es la IP del siguiente router en el camino hacia N. El router R es conocido como salto al siguiente. El principio de ocultación de información también se aplica a los anfitriones, la idea es que estos deleguen la mayor parte del de sus funciones de ruteo a los routers. 8.6 Rutas asignadas por omisión Se utiliza para reducir los registros de las tablas de ruteo. La idea es asociar varios registros a un router asignado por omisión. Primero se busca la IP en la tabla y si no se encuentra se envía el datagrama a un router asignado por omisión. 8.7 Ruteo por anfitrión especifico El software IP permite que se especifiquen rutas por anfitrión (como un caso especial) lo que le da al administrador de red la posibilidad de tener un mayor control sobre el uso de la misma (también se puede usar para controlar el acceso por razones de seguridad). 8.8 El algoritmo de ruteo IP Extraer del datagrama la dirección IP de destino D y computar el prefijo de red N. Si N corresponde a una dirección de red directamente conectada, entregar el paquete al destino D. De otra forma, si la tabla contiene la ruta con el anfitrión especifico para D, enviar el datagrama al salto siguiente especificado en la tabla. De otra forma, si la tabla contiene una ruta para la red N, enviar el datagrama al salto siguiente especificado en la tabla. De otra forma, si la tabla contiene una ruta asignada por omisión, enviar el datagrama al router asignado. De otra forma declarar un error de ruteo. 8.9 Ruteo con direcciones IP El software IP prácticamente no altera los datagramas al realizar el ruteo (solo modifica el TTL y el checksum). Tanto la IP de origen como la de destino permanecen invariantes. Cuando IP aplica el algoritmo, determina la dirección de salto al siguiente, entonces ¿Dónde se guarda esa dirección? La respuesta a eso es que “IP no guarda la dirección de salto al siguiente, ni modifica la IP de destino” (sino el siguiente no sabría a donde enviarlo), sino que pasa la dirección de salto al siguiente al software de capa inferior (interfaz de red). Luego el software de interfaz de red crea la trama con la IP transformada a una dirección física, pone el datagrama en el área de datos y envía la trama. Hacer que las tablas de direccionamiento tengan direcciones IP y no físicas, trae como ventaja que el software se abstrae de la implementación física de las redes y otorga un formato de direcciones uniforme a los administradores. 8.10 Manejo de los datagramas entrantes El caso de un anfitrión: Cuando un datagrama llega a un anfitrión, el software de interfaz de red lo entrega al software IP, que evalúa si la IP destino del datagrama coincide con la del anfitrión, y en tal caso entrega el datagrama a al protocolo de capa superior. En caso contrario deberá descartar el datagrama. El caso de un router: Cuando llega un datagrama, se pasa al software IP el cual analiza la dirección de destino del datagrama. Tal cual el caso anterior, pueden suceder dos cosas: 1. Que el datagrama haya llegado a su destino. 2. Que el datagrama necesite seguir viajando. En el primer caso, se pasará el datagrama a un software de nivel más alto. En el segundo, se aplicará el algoritmo de ruteo para direccionar el datagrama a su destino. Determinar que un datagrama ha llegado a su destino puede volverse complejo. Recordar que ciertas máquinas pueden estar conectadas a varias interfaces de red y por lo tanto tener varias direcciones IP. Además, a una máquina pueden llegar datagramas enviados por difusión (limitada o dirigida), esos datagramas tendrán una IP de difusión y deberán ser aceptados. Un anfitrión debe abstenerse de rutear paquetes que le llegan erróneamente (algunos anfitriones multi homed son configurados para llevar a cabo esta tarea) por varias razones: Si a él le llega un datagrama mal ruteado y él lo envía a su destino, el error ocurrido en el ruteo permanecerá oculto. Los anfitriones no poseen implementación de protocolos para reportar errores. Los routers además de rutear, se encargan de la función de transmitir información de tablas. 8.11 Establecimiento de las tablas de ruteo 9 IP: Mensajes de error y de control (ICMP) 9.2 El protocolo de mensajes de error de internet El protocolo de mensajes de control Internet (ICMP) permite que los routers envíen mensajes de error o de control hacia los routers o anfitriones. Proporciona comunicación entre el software de IP de una máquina y el mismo software en otra. 9.3 Reporte de errores contra conexión Cuando un datagrama causa un error, el ICMP solo puede reportar la condición del error al origen; la fuente debe relacionar el error con un programa de aplicación o debe tomar una acción para corregir el problema. El ICMP no puede enviar mensajes a los routers intermedios, solo a terminales, esto se debe a que a nivel capa de red solo se manejan las direcciones de origen y destino. 9.4 Entrega de mensajes ICMP Los mensajes de error poseen doble Encapsulamiento (capa de red y capa de enlace). Su ruteo es idéntico a los datagramas de datos de usuario y tienen la misma prioridad. Si un datagrama ICMP produce un error, no se generará un ICMP de ese error. A pesar de que los mensajes ICMP se encapsulan y envían a mediante datagramas IP, no se lo considera un protocolo de nivel superior 9.5 Formato de los mensajes ICMP Todos los mensajes tienen los mismos 3 campos. TYPE 8 bits CODE 8 bits CHECKSUM 16 bits En los mensajes ICMP se incluye el encabezado del datagrama que origino el error y los primeros 64 bits de datos. 9.6 El mensaje PING Es un mensaje ICMP que sirve para saber la alcanzabilidad de un anfitrión. El mensaje está compuesto por un request y un reply. Esta asociación permite saber que los objetos intermedios entre los dispositivos funcionan correctamente (routers, anfitriones, software, etc.) Se puede usar para realizar estadísticas de pérdida de datagramas. 9.8 Reporte de destinos no accesibles Cuando un router no puede direccionar o entregar un datagrama IP envía un mensaje de destino no accesible. Ante este error, IP descartará el datagrama. A pesar de detectar el error, IP no puede determinar en su totalidad la causa del error. 9.9 Control de congestionamientos y de flujo de datagramas En el caso en que se llenen los buffers, una máquina puede utilizar un mensaje ICMP para comunicar al origen un problema de congestionamiento para que este disminuya el volumen de datos. Por lo general se envía uno de estos mensajes por cada datagrama descartado (congestionamiento severo). No hay un mensaje para decirle al origen “aumenta la tasa de envío” sino que el origen hará esto automáticamente deje de recibir mensajes del tipo “baja la tasa de envío”. 9.10 Formato de disminución de tasa de origen 9.11 Solicitud de cambio de ruta desde los routers Generalmente las tablas de ruteo poseen pocos cambios. Los anfitriones las cargan desde archivos de configuración en el arranque del sistema y luego los administradores realizan cambios de ruteo de manera muy esporádica. Se asume que los routers conoces rutas correctas; los anfitriones comienzan con información mínima de ruteo y aprenden nuevas rutas de los anfitriones. Las tablas de ruteo proporcionan información mínima para comunicarse. Cuando un router detecta que un anfitrión posee una ruta no óptima le envía un mensaje ICMP llamado REDIRECT. 9.12 Detección de rutas circulares o excesivamente largas Esto se logra gracias al conteo de saltos de los datagramas. Cuando vence su contador, se envía un mensaje ICMP indicando el tiempo excedido. 9.13 Reporte de otros problemas 9.14 Sincronización de relojes y estimación de tiempo de transito A pesar de que las máquinas se comunican, estas generalmente trabajan de manera independiente, y por lo tanto, mantienen un conocimiento personal de la hora actual. Una diferencia grande en los tiempos puede ocasionar problemas en el software. Para sincronizar relojes existen varias técnicas y una es el envío de mensajes ICMP. En el mensaje se incluyen los campos ORIGINAR, RECIBIR y TRANSMITIR TIMESTAMP. 9.15 Solicitud de información y mensajes de respuesta 9.16 Obtención de una máscara de subred 10 Extensiones de dirección de subred y superred 10.2 Reseña de hechos importantes Como se recuerda, una dirección IP está compuesta por dos partes: 1. La parte de dirección de red 2. La parte de dirección de host Entre otras cosas, una de las ventajas de este formato de dirección es que en las tablas de ruteo en vez de tener una entrada por cada anfitrión, se tiene una por cada red. TCP/IP incorpora varios tamaños de redes (redes tipo A, B y C). Las localidades pueden realizar cambios en sus direcciones y rutas, siempre y cuando estas modificaciones permanezcan ocultas para las demás localidades, por lo tanto una localidad puede usar direcciones IP de manera no usual siempre y cuando: Todos los anfitriones de la localidad estén de acuerdo en seguir ese esquema de direccionamiento. Otras localidades pueden manejar las direcciones como en el esquema original, 10.3 Minimización de números de red Dado el gran crecimiento de la cantidad de redes físicas dentro de internet, surgen tres problemas: 1. Se requiere mucho trabajo administrativo para manejar las direcciones de red. 2. Las tablas de los routers son muy grandes. 3. Es espacio de direcciones se acabará eventualmente. El segundo e y tercero son de vital importancia. El segundo porque al ser tan grandes las tablas, en el momento en que los routers efectúan el paso de información de ruteo, se produce gran carga en la red además de requerir un lato grado de procesamiento por parte de los routers. El tercero porque el esquema original no puede incorporar mas direcciones del tipo B. Para disminuir las direcciones de red, muchas redes físicas deben compartir el prefijo IP de red. Para minimizar las direcciones tipo B, se usan direcciones tipo C modificando los mecanismos de ruteo. 10.4 Routers transparentes Es una de las metodologías usadas para compartir prefijos de red IP entre varias redes físicas. H1 H2 RED DE AREA AMPLIA T H3 H4 Figura 10.1 10.5 ARP sustituto 10. 6 Direcciones de subred 10.7 Flexibilidad en la asignación de direcciones de subred 10.8 Implantaciones de subredes con máscaras 10.9 Representación de máscaras de subred 10.10 Ruteo con la presencia de subredes 10.11 El algoritmo de ruteo de subred 10.12 Un algoritmo unificado de ruteo 10.13 Mantenimiento de las máscaras de subred 10.14 Difusión a las subredes 10.15 Direccionamiento de superred 10.16 El efecto de trabajar con superredes de ruteo 12 Protocolo de datagrama de usuario (UDP) 12.2 Identificación del destino final Se usa el concepto de destino abstracto dentro de una máquina. Una máquina puede tener varios destinos, cada uno de esos destinos se denomina puerto de protocolo, el cual se identifica a través de un numero entero positivo. La mayoría de los SO poseen acceso síncrono a los puertos, es decir que si una aplicación intenta consumir de un puerto datos que todavía no llegaron, el SO bloquea temporalmente al proceso. Generalmente los puertos poseen una memoria intermedia donde se almacenan los datos hasta que los procesos de aplicación los consumen (cola de espera finita). Para comunicarse con un puerto externo, un transmisor debe saber tanto su dirección IP como el número de puerto de protocolo del destino. 12.3 Protocolo de datagrama usuario (UDP) UDP proporciona un servicio de entrega sin conexión y no confiable, utilizando el IP para transportar mensajes entre máquinas y agrega la capacidad para distinguir entre varios destinos de una computadora anfitrión. 12.4 Formato de los mensajes UDP Cada mensaje UDP se conoce como datagrama de usuario. Cada mensaje consiste de un encabezado y un área de datos. 0 16 31 PUERTO UDP ORIGEN PUERTO UDP DESTINO LONGITUD DE MENSAJE CHECKSUM DATOS ... Figura 12.1 Los campos de UDP: PUERTO UDP ORIGEN: Determina el puerto de respuesta para el receptor. Es opcional. PUERTO UDP DESTINO: Determina el puerto de demultiplexado para los datagramas que los esperan recibir. LONGITUD DE MENSAJE: Cantidad de octetos en todo el datagrama UDP. El mínimo es ocho, que es la longitud del encabezado CHECKSUM: Suma de verificación. Por una cuestión de performance, computar esta suma es opcional. DATOS: Los datos enviados desde la capa superior. 12.5 Pseudo encabezado UDP En UDP la suma de verificación se realiza sobre el datagrama UDP y un pseudo encabezado. Ese pseudo encabezado contiene entre otras cosas: La IP de origen La IP de destino Longitud del datagrama UDP (sin tener en cuenta el pseudo encabezado). El motivo de este pseudo encabezado es poder validar en el destino que el datagrama llegó correctamente a donde debía. Para entender esto hay que pensar que “la dirección” de destino esta especificada por un par (IP, puerto) pero en el encabezado UDP solo figuran los puertos. Por lo tanto, para verificar el destino, la máquina transmisora computa la suma de verificación utilizando tanto la IP como el datagrama UDP. El pseudo encabezado no se envía, solo sirve para calcular la suma de verificación. 12.6 Encapsulación de UDP y estratificación por capas de protocolos 12.7 Estratificación por capas y cómputo UDP de suma de verificación 12.8 Multiplexado, demultiplexado y puertos UDP El demultiplexado sucede cuando UDP recibe los datagramas desde IP y utilizando el puerto de destino decide cual es el programa de aplicación que debe recibir el datagrama. Puerto 1 Puerto 2 Puerto 3 UDP: Demultiplexado basado en puerto Llega el datagrama IP Capa IP Figura 12.5 Cuando UDP recibe un datagrama, chequea si corresponde a alguno de los puertos en uso. Si el puerto especificado en el datagrama es incorrecto, envía un mensaje ICMP puerto no accesible y descarta el paquete. Si el puerto es correcto, pone el datagrama en el puerto (encola) hasta que algún programa de aplicación pueda accesarlo. Si el puerto está lleno, descarta el datagrama. 12.9 Números de puerto UDP reservados y disponibles 13 Servicio de transporte y flujo confiable (TCP) 13.2 Necesidad de la entrega de flujo La capa de red proporciona un servicio no orientado a conexión y con entrega no confiable. TCP proporciona un servicio orientado al flujo con el que se busca abstraer al software de aplicación de estas particularidades de la capa de red y que no sea necesario realizar controles de errores, ordenamiento de paquetes y demás. 13.3 Características del servicio de entrega confiable Se caracteriza por cinco funciones: 1. Orientación al flujo: Se envían los datos como un flujo de bits. El servicio de entrega de flujo en el destino pasa al receptor la misma secuencia de bytes que pasa el transmisor en el origen. 2. Conexión de circuito virtual: La transferencia de flujo es análoga a una llamada telefónica. El emisor inicia una llamada que el receptor debe aceptar. Los módulos de de software del SO se envían mensajes para establecer la conexión, y una vez que se efectúa se la avisa al módulo de software de aplicación. 3. Transferencia con memoria intermedia: Se forman paquetes con los datos que envía el emisor. Si el emisor envía de a un byte, seguramente el protocolo recolectara los mismo para formar un paquete de tamaño óptimo para la transferencia en la red. En caso de que el emisor envíe bloques de datos muy grandes, el protocolo se encargará de partirlo en varios paquetes. 4. Flujo no estructurado: El flujo no es interpretado por el protocolo; son los programas de aplicación quienes deben entender el contenido del flujo. 5. Conexión Full Duplex: Se transmite concurrentemente en ambas direcciones entre emisor y receptor mediante dos flujos independientes, por lo tanto se permite que un proceso de aplicación termine el flujo en una dirección mientras que sigue utilizando el otro. 13.4 Proporcionando confiabilidad La confiabilidad se brinda a través de la técnica de acuse de recibo con retransmisión. El emisor lleva registro de todos los paquetes enviados además de un temporizador por cada uno. Si el temporizador vence antes de recibir el acuse, retransmite el paquete. Además de la pérdida se intenta solucionar el problema de los paquetes duplicados. Para lograr identificar unívocamente a cada paquete, se les asigna un número de secuencia el cual es enviado también en el acuse, para que se pueda asociar correctamente el acuse con el paquete enviado. Figura 13.2 En la figura 13.2 se muestra cómo se maneja la pérdida de un paquete. Como el acuse de recibo no llega a quien envió el mensaje, y el temporizador del mismo vence, el emisor retransmite. 13.5 La idea detrás de las ventanas deslizables Como se ve en la figura 13.2, la red permanece ociosa (no se envía ni recibe nada) mientras se espera el recibo del ACK, lo cual produce un desaprovechamiento de la red. Para evitar esto se ideo una forma de enviar varios paquetes antes de recibir el acuse del primero, y esto se logró a través de las ventanas deslizables. Figura 13.4 13.6 Protocolo de control de transmisión (TCP) TCP es uno de los protocolos más importantes del conjunto TCP/IP. TCP especifica el formato de datos, acuses de recibo y los procedimientos que las máquinas deben seguir para asegurarse de que los datos lleguen de manera correcta. También especifica cómo distinguir el correcto entre varios destinos en una misma máquina y como dos computadoras inician y terminan una transferencia de flujo. El protocolo TCP declara las operaciones que ofrece pero no ofrece una descripción detallada de la interfaz con la que interactúan los programas de aplicación. Esto se hizo así para lograr flexibilidad. TCP asume muy poco sobre el sistema de red subyacente y esto le da la posibilidad de poder ser utilizado en una gran variedad de sistemas de entrega de paquetes. 13.7 Puertos conexiones y puntos extremos TCP reside sobre IP y se comunica con varios programas de aplicación de manera concurrente realizando el demultiplexado del tráfico hacia los programas. TCP utiliza números de puertos de protocolo para identificar el destino final dentro de una máquina. TCP identifica una conexión a través de dos puntos extremos. Un punto extremo está determinado por el par (anfitrión, puerto), es decir (IP, puerto). Entender que para TCP una conexión no se identifica con un puerto determinado ni una IP, sino que se determina por dos pares (IP, puerto). Cada par es un punto extremo y la conexión se establece entre dos puntos extremos. (18.16.0.36, 1069) y (128.10.0.3, 25) 13.8 Aperturas pasivas y activas A diferencia de UDP, TCP es orientado a la conexión por lo tanto se requiere que ambos intervinientes en una conexión se pongan de acuerdo. Para esto uno hará una apertura pasiva a la escucha de conexiones entrantes y el otro una activa. Una vez que se establece la conexión los programas de aplicación podrán empezar a transmitir datos. 13.9 Segmentos, flujos y números de secuencia El flujo se puede ver como una secuencia de bytes que se divide en segmentos para viajar a través de una red. TCP utiliza ventana deslizante para solucionar dos problemas: 1. Control de flujo. 2. Transmisión eficiente. El mecanismo de ventana deslizante opera a nivel byte (no a nivel segmento ni paquete). Los bytes se enumeran de manera secuencial para su identificación (el número inicial de secuencia se acuerda en el establecimiento de la conexión). Por cada ventana se guardan 3 punteros: 1. El primer apunta al inicio (izquierda) de la ventana. Separa los bytes que se enviaron y confirmaron de los que se enviaron y falta confirmación. 2. El segundo apunta al byte a partir del cual se puede enviar. 3. El tercero marca el final de la ventana. Apunta al último byte que se puede enviar antes de recibir el ACK de los anteriores. 13.10 Tamaño variable de ventana y control de flujo La ventana deslizable de TCP permite un tamaño variable, lo cual permite realizar un control sobre el flujo de la conexión. Para implementar esto, lo que se hace es que el receptor envíe en el acuse de recibo la cantidad de bytes adicionales que está dispuesto a recibir. Se puede pensar al tamaño de ventana como el espacio de memoria intermedia que el receptor tiene disponible para recibir mensajes del emisor. El emisor tendrá que responder a los cambios de ventana que especifique el receptor agrandando o achicando su ventana. El emisor cambia el tamaño de su ventana en el momento en que esta se desplaza. En un caso extremo el receptor puede anunciar un tamaño de ventana de cero con lo cual el emisor suspende la transmisión hasta que el receptor anuncia un tamaño diferente. 13.11 Formato de segmento TCP 0 4 10 24 16 PUERTO FUENTE 31 PUERTO DESTINO NUMERO DE SECUENCIA NUMERO DE ACUSE DE RECIBO HLEN RESERVADO CODE BITS VENTANA CHECKSUM PUNTERO DE URGENCIA OPCIONES IP RELLENO DATOS ... Figura 13.7 Cada segmento se divide en encabezado y datos. En el encabezado se incorporan la identificación y la información de control. Los campos del segmento son: PUERTO FUENTE: Es el numero de puerto que identifica al programa de aplicación del lado del emisor. PUERTO DESTINO: Es el numero de puerto que identifica al programa de aplicación del lado del receptor. NUMERO DE SECUENCIA: Es el numero que identifica al segmento dentro del flujo de datos. NUMERO DE ACUSE: Es el numero de segmento que el receptor espera recibir. VENTANA: Especifica el tamaño de memoria intermedia que posee el receptor para recibir segmentos desde el emisor. CHECKSUM: Suma de verificación para comprobar errores en el segmento. HLEN: Especifica la longitud del encabezado del segmento. RESERVADO: Campo de 6 bits que está reservado para usarse en el futuro. PUNTERO DE URGENCIA: Marca dentro del segmento, el byte donde terminan los datos con urgencia. OPCIONES: Varía su longitud dependiendo de las opciones que se hayan colocado. RELLENO: Redondea el tamaño del campo opciones. CODE BITS: Campo de 6 bits que determina el propósito y contenido del segmento. DATOS: Los datos enviados desde el software de capa de aplicación. 13.12 Datos fuera de banda A pesar de que TCP es orientado al flujo, en ocasiones es necesario enviar datos fuera de banda para no tener que esperar que el programa receptor consuma los bytes que ya están en el flujo. Para indicar que un segmento posee datos de urgencia, se usa el bit de urgencia dentro del campo PUNTERO DE URGENCIA. Activar dicho bit hace que se atiendan los datos urgentes lo más rápido posible sin importar su posición en el flujo. Luego, el puntero de urgencia indica donde terminan los datos urgentes dentro del segmento. Cuando el software TCP receptor recibe el segmento, le avisa al programa de aplicación vinculado con la conexión que trabaje en modo urgencia y una vez que asimila todos los datos urgentes vuelve a su estado normal. 13.13 Opción de tamaño máximo de segmento El tamaño de segmento (Maximum Segment Size MMS) se negocia entre los participantes de la conexión. Para realizar dicha negociación utilizan el campo OPTIONS del encabezado TCP. El MMS es calculado de forma tal que el tamaño del datagrama IP (que se arma con el segmento enviado de la capa TCP a la capa IP) corresponda con el MTU (Maximum Transfer Unit) de la red. Si ambos extremos están dentro de una misma red física, elijen el MMS lo mas grande posible para que luego, el datagrama IP formado tenga del tamaño del MTU. Si ambos extremos no están dentro de una misma red física, es decir que los segmentos deberán atravesar varias redes, tratarán de encontrar el MTU mas chico de todas esas redes y elegir un MMS lo mas grande posible para que el datagrama IP formado tenga el tamaño de ese MTU. 13.14 Cómputo de suma de verificación 13.15 Acuses de recibo y retransmisión Un acuse de recibo especifica el número de secuencia que se desea recibir en la próxima transmisión. Como los segmentos retransmitidos pueden variar en tamaño a los originales, es difícil remitirse a ello para una retransmisión. En vez de eso en TCP se remite a un número de secuencia que especifica una posición en el flujo. TCP usa un algoritmo adaptable de retransmisión que monitorea continuamente la red para manejar los retrasos variables en una red de redes. Computa el RTT comparando los tiempos que posee almacenados, la hora de envío del segmento y la hora de recibo del ACK. Por este motivo se dice que TCP se adapta al cambio de la red. Guarda el RTT y lo va modificando progresivamente frente a los nuevos RTT calculados. Para modificar el valor del RTT se aplican diferentes cálculos. Uno de ellos es utilizando un factor α constante donde 0 < α < 1. RTT = (α * Old_RTT) + ((1 – α) * New_RTT) Variar el valor de α hace que el RTT se adapte más rápidamente o más lentamente a los cambios del RTT en la red. 13.17 Medición del RTT (Round Trip Time) Medir el RTT parece trivial (hora ACK – hora envío), pero se complica cuando se realizan retransmisiones entre medio dado que luego de la retransmisión y de recibir el ACK no se sabrá sobre que transmisión calcular el RTT (sobre el segmento original o sobre el retransmitido). Ambos enfoques traen problemas. Elegir calcular sobre el original aumenta el RTT y elegir el otro lo disminuye. 13.18 Algoritmo de Karn y anulación del temporizador Se basa en la sencilla idea de no recalcular el RTT con los paquetes retransmitidos. Sin embargo este encare puede ocasionar fallas en el caso de que súbitamente aumente el RTT. Como el cálculo del tiempo de retransmisión se hace utilizando el RTT, al no calcular el RTT con los paquetes retransmitidos, el valor del mismo queda invariante y por lo tanto también el tiempo de retransmisión. Si sucede que se retransmitieron paquetes por alguna razón y luego sube súbitamente el RTT (aumentan los retrasos de la red), al no actualizarse el valor del mismo cuando lleguen los ACK de los paquetes retransmitidos, el valor de retransmisión queda fijo (cuando debería aumentar ya que subió el retardo de la red). El hecho de no subir el RTT cuando realmente aumentó el retardo de la red, puede provocar que se sigan retransmitiendo paquetes y se entre en un estado de retransmisión masiva. Para evitar esto se le agregó un poco más de complejidad al algoritmo. Lo que hace Karn es separar la estimación del RTT del cálculo de tiempo de retransmisión agregando lo que se conoce como timer backoff. Esta modificación trabaja de la siguiente forma: Se estima el RTT y se transmite alegremente. Cuando ocurre una retransmisión, a partir de ese momento se deja de considerar el tiempo de retransmisión para esa y para todas las retransmisiones que sucedan en adelante y además se modifica el tiempo de retransmisión para los envíos (generalmente se duplica). En el momento en que llega un ACK de un paquete sin retransmisión, se vuelve a estimar el RTT y se vuelve a calcular el tiempo de retransmisión con este nuevo RTT. 13.19 Respuesta a una variación alta de retraso 13.20 Respuesta al Congestionamiento Cuando ocurre congestionamiento, los routers encolan datagramas hasta poderlos enviar. Si hay congestionamiento, se producen retardos. Los retardos hacen que las capas superiores retransmitan por creer una perdida. Las retransmisiones aumentan el congestionamiento y eso hace que todo vuelva a empezar produciendo un círculo vicioso que termina con una red inutilizable. Para prevenir esto TCP implementa algunas dos técnicas. Disminución multiplicativa y recuperación de arranque lento. 13.21 Establecimiento de una conexión TCP Se establece mediante un saludo de 3 etapas. En el primer mensaje esta activado del bit de SYN, en la respuesta a ese mensaje están activos el bit de SYN y ACK. En el último solo se activa el bit ACK. En las conexiones TCP no existe ni maestro ni esclavo, y las comunicaciones son full duplex. 13.22 Números de secuencia inicial El saludo inicial no solo sirve para poner de acuerdo a ambos extremos en que van a transmitir, sino que también sirve para establecer el número de secuencia inicial. Cada equipo participante le propone al otro el número de secuencia a utilizar en alguna de las secuencias del saludo inicial. El número de secuencia inicial es escogido aleatoriamente. 13.23 Terminación de una conexión El cierre de la conexión debe hacerse en dos etapas debido a la característica full duplex de TCP. Cuando una máquina no tiene más para enviar, le avisa a TCP quién envía un mensaje con el bit de FIN activado. El receptor TCP reconoce esto y le avisa a la aplicación y así se cierra la conexión. Pero la conexión en el otro sentido sigue activa y no se termina hasta que el que actúa como emisor decide finalizarla. 13.24 Restablecimiento de una conexión TCP 13.25 Máquina de estado TCP 13.26 Forzando la entrega de datos Para evitar el almacenamiento de datos en memoria intermedia se puede utilizar el bit de push. Esto fuerza la entrega de datos. 13.27 Números reservados de puerto TCP TCP combina asignación dinámica y estática de puertos mediante un conjunto de asignación de puertos bien conocidos. Los bien conocidos eran aquellos menores al 256, aunque ahora se asignan valores mayores al 1024. 13.28 Desempeño del TCP 13.29 Síndrome de la ventana tonta Se da cuando cada acuse de recibo anuncia una pequeña cantidad de espacio disponible y por consiguiente el emisor transmite una pequeña cantidad de datos, lo que provoca una sobrecarga computacional, un desaprovechamiento del ancho de banda y en una sobrecarga de transito. 13.30 Prevención del síndrome de ventana tonta 13.30.1 Prevención del lado del receptor Lo que se hace para evitar este síndrome es evitar los anuncios de ventanas pequeñas (retrasa los envíos de ventana), o sea envía acuse de recibo, pero deja el tamaño en 0 hasta que tiene un tamaño significativo. Antes de enviar el anuncio de una ventana, luego de haber anunciado una ventana de tamaño 0, esperar hasta que se obtenga un espacio disponible que sea equivalente a por lo menos el 50 % del tamaño total de memoria intermedia o igual al segmento de tamaño máximo. 13.30.2 Acuses de recibo retardados A diferencia con el método anterior, acá se retrasan los ACK. La principal ventaja de este método es que se baja el tráfico y aumenta el rendimiento de la red. La desventaja es que el retraso por parte del receptor puede ocasionar una retransmisión, más aún, puede engañar al emisor en la estimación del RTT; para evitar en cierta medida estos problemas, se estableció que el mayor tiempo de retraso de acuse debe ser de 500 milisegundos. 13.30.3 Prevención del lado del emisor La idea es que el emisor agrupe una cantidad razonable de datos. Cuando una aplicación de emisión genera datos adicionales para enviarse por una conexión por la que ya se han transmitido datos, pero de los cuales no se tienen acuse de recibo, deben colocarse los datos nuevos en la memoria intermedia como de costumbre, pero no deben enviarse hasta que se llegue al tamaño de segmento máximo o llegue un ACK. Si la aplicación solicita la opción de push, se ignorará hasta que se dé alguna de las condiciones mencionadas. 14 Ruteo: núcleos, pares y algoritmos (GGP) 14.2 Origen de las tablas de ruteo Las tablas pueden levantarse de un dispositivo de almacenamiento secundario, o pueden ser llenadas a través de la ejecución de comandos. También se puede iniciar con las rutas de las máquinas a nivel local y luego pedirle a esas máquinas rutas adicionales 14.3 Ruteo con información parcial Los anfitriones saben menos que los routers a cerca de los pormenores de la red. 14.4 Arquitectura y núcleos de Internet originales La tabla de ruteo en un router dado contiene información parcial relacionada con destinos posibles. El ruteo que emplea información parcial permite que las localidades tengan autonomía para hacer cambios locales de ruteo, pero introduce la posibilidad que se den inconsistencias, con las que algunos destinos podrían volverse inaccesibles para algunas fuentes. 14.5 Routers de núcleo RED DE COLUMNA VERTEBRAL ARPANET R1 R2 Red local 1 Red local 2 ... Rn Routers de núcleo Red local n Figura 14.2 Como se ve en la figura, cada router de núcleo está conectado a la columna vertebral y a una localidad. 14.6 Más allá de la arquitectura de núcleo, hasta las columnas vertebrales pares Una arquitectura de ruteo de núcleo requiere de un conjunto centralizado de servidores de ruteo como depósito de información a cerca de todos los destinos posibles en una red de redes. El sistema de núcleo trabaja mejor en una red de redes que posee columna vertebral administrada centralmente. La expansión de la topología hacia varias columnas vertebrales hace el ruteo más complejo; la introducción de rutas por omisión, introduce la posibilidad de que se desarrollen ciclos cerrados de ruteo. 14.7 Difusión automática de ruta El sistema original de ruta evitaba las rutas por omisión porque estas difunden información completa sobre todos los destinos posibles. El propósito de del mecanismo de ruteo no es únicamente encontrar un conjunto de rutas sino también de actualizar continuamente la información, dado el carácter dinámico de las redes. 14.8 Ruteo por vector-distancia (Bellman-Ford) Vector-distancia indica una clase de algoritmos de ruteo utilizada ahora difundir información de ruteo. La idea detrás es muy sencilla. El router establece una lista de todas las rutas conocidas en una tabla. Cuando arranca, un router genera en la tabla una entrada por cada red que tiene conectada directamente. Periódicamente cada router envía una copia de la tabla a todos aquellos routers que puede alcanzar directamente. El termino vector-distancia proviene del hecho de que la información se envía en mensajes periódicos de la forma (V,D) , donde V es el destino (vector) y D la distancia a ese destino. Este tipo de algoritmos es sencillo de implementar, pero tiene algunas desventajas, como por ejemplo para trabajar en redes estáticas, ya que envían información de ruteo a todos los destinos periódicamente. También tienen dificultades cuando las redes cambian rápidamente. 14.9 Protocolo pasarela-a-pasarela (GGP) Es un protocolo del tipo vector-distancia (VD) diseñado para viajar en datagramas IP. Era usado en los routers de núcleo iniciales. Fue diseñado para que al momento de conectar un nuevo núcleo, este no provocara cambios en los existentes. El nuevo era asignado a algunos núcleos que le pasaban las tablas de ruteo para que almacenara la información. Así el nuevo router solo necesitaba informar a sus vecinos las redes que podía alcanzar y estos difundían la información a los demás. El GGP mide las distancias de saltos de router, donde un router se define de 0 saltos si está conectado directamente a la red. 14.10 Formato de los mensajes GGP 14.11 Ruteo de enlace estado (SPF) Es la principal alternativa a los algoritmos VD. Los algoritmos SPF (shortest path first) requieren que cada router participante tenga información de la topología completa. Pensando en un grafo, los routers son nodos y los enlaces son arcos. Los routers realizan dos tareas. Una es de probar activamente el estado de todos los routers vecinos, y otra es difundir la información a los otros routers. Una de las mayores ventajas de estos algoritmos es que cada router computa trayectorias independientemente, usando la misma información de estado original (a diferencia de vector distancia que depende del cálculo en máquinas intermedias). Otra ventaja es que gracias a que los mensajes de estado se transmiten sin cambios, es más fácil la depuración. 14.12 Protocolos SPF 15 Ruteo: sistemas autónomos (EGP) 15.2 Agregar complejidad al modelo arquitectónico El primer modelo de ruteo de Internet se desarrollo para cuando esta poseía una sola columna vertebral a la cual se conectaban las diferentes redes locales a través de un router. Es decir que cada router sabia de la existencia de su propia red local y aprendía de las demás a través de la columna vertebral. Este modelo necesito ser ampliado debido al crecimiento de la red de redes. 15.3 Una idea fundamental: saltos adicionales (hops) Se considera un sistema núcleo, como un mecanismo de ruteo central al que los routers nonúcleo envían datagramas para su entrega. Estos sistemas se vieron implantados sobre una o más columnas vertebrales, y se vio que expandir una de ellas arbitrariamente es imposible. Figura 15.1 En la figura 15.1 se ve el problema del esquema de columna vertebral. Como R1 y R2 son routers núcleo, ellos intercambian información de ruteo y tienen conocimiento de las redes conectadas a la columna. En cambio R3 (router no-núcleo) ve al núcleo como un sistema de entrega y debe designar a quién enviarle los datagramas, por ejemplo R1. Si R3 tiene un paquete para R2, primero se lo enviará a R1 y R1 se lo enviará a R2, cuando en realidad la ruta óptima es que R3 se lo envíe directamente a R2 ya que están conectados a la misma columna vertebral. El primer envío de R3 a R1 se llama salto adicional, y sucede debido a que sólo los routers núcleo conocen las rutas óptimas. Para solucionar este problema, se debe cambiar la visión de los núcleos. Figura 15.2 Como se ve en la figura, se permite que las localidades tengan múltiples redes conectadas, por eso los routers núcleo no estarán conectados a todas las redes y por tal motivo habrá que agregar un mecanismo que les permita aprender eso. Este mecanismo deberá permitir entregar información de ruteo de las localidades al núcleo, y del núcleo a los routers nonúcleo. Hay que elegir un router que se encargue de informar al núcleo, pero la elección del mismo no es sencilla. Para esto se introduce el concepto de sistema autónomo(SA). 15.4 Concepto de los sistemas autónomos Las interconexiones como se muestra en figura 15.2 con localidades como estructuras internas complejas, no deben considerarse como una red independiente sino como una organización que tiene múltiples redes bajo su control. Esa organización se encuentra bajo la administración de una entidad central (router núcleo R1) que garantiza que las rutas internas sean viables y consistentes y será ésta quien designe a un router para que figure como la cara visible de la organización (puerta de entrada). En la figura 15.2 será R3 quien anuncie la accesibilidad de las redes 2, 3 y 4. El núcleo ya tendrá conocimiento de la accesibilidad a R1 ya que está conectado a ella directamente. Para que la información de accesibilidad de un SA sea conocido por otros SA, cada SA debe acordar la difusión de información hacia los otros SA. Normalmente un router de un SA tiene la responsabilidad de anunciar rutas e interactuar de manera directa con los routers núcleo, sin embargo puede darse el caso de tener varios routers que cumplan dicha función y que cada uno informe la accesibilidad de un subconjunto de redes dentro del SA. Figura 15.3 15.5 Protocolo de pasarela exterior (EGP) A dos routers que intercambian información de ruteo se los llama vecinos exteriores en caso de que pertenezcan a SA diferentes y vecinos interiores si pertenecen al mismo SA. EGP es un protocolo utilizado para difundir información de accesibilidad entre vecinos exteriores. Figura 15.3 15.6 Encabezado de mensajes 15.7 Mensajes de adquisición de vecino Es el mensaje que envía un router para establecer comunicación EGP con otro router. Existe un campo en el encabezado del mensaje de adquisición de vecino que especifica valores iniciales para el intervalo de tiempo que se usa para probar si el vecino está activo. Ese intervalo se llama intervalo de saludo. Existe también un campo para determinar el intervalo de sondeo, que es el que controla la frecuencia de actualizaciones de la información de ruteo. 15.8 Mensajes de accesibilidad de vecino EGP El mensaje tiene el mismo formato que el de adquisición de vecino, sólo que se eliminan los campos de intervalo de saludo e intervalo de sondeo. Se permiten dos formas de testeo de vecino activo. Una forma pasiva Una forma activa En la activa un router envía mensajes hello junto con poll (sondeo) periódicamente y espera repuesta. En la pasiva, el router en vez de enviar mensajes, lo que hace es leer el estado de los mensajes que le llegan de otros routers (en el mensaje de accesibilidad hay un campo llamado STATUS que determina el estado del router que envía el mensaje). Como un mensaje hello o su respuesta pueden perderse, lo que se hace para evitar cambiar continuamente el estado de los routers es esperar una cierta cantidad de mensajes para actualizar el estado (k-out-of-n). 15.9 Mensajes de solicitud de sondeo EGP Los mensajes de solicitud de sondeo, permiten a un router obtener información de accesibilidad de otro router. El mensaje es igual que el de accesibilidad de vecino sólo que se le agrega un campo de nombre RESERVADO y otro de RED FUENTE IP. Este último, especifica una red común a los sistemas autónomos que estén conectados al router. La respuesta a este mensaje contiene las rutas que tienen distancias medidas respecto a los routers en la red fuente especificada. Figura 15.9 15.10 Mensaje de actualización de enrutamiento EGP 15.11 Medición desde la perspectiva del receptor 15.12 La restricción clave de EGP 15.13 Problemas técnicos 15.14 Descentralización de la arquitectura Internet 15.15 Más allá de los sistemas autónomos 16 Ruteo en un sistema autónomo (RIP, OSPF, HELLO) 16.2 Rutas interiores dinámicas y estáticas A dos routers pertenecientes a un sistema autónomo (SA) se los llama interiores con respecto al otro. Los routers interiores intercambian información de rutas internas al SA utilizando protocolos de ruteo interno (Internal Gateway Protocol IGP). Una vez que la información interna del SA fue actualizada, uno de los routers se encarga de transmitir la misma a otros SA utilizando EGP. Figura 16.3 A diferencia de EGP, no se ha desarrollado un solo protocolo estándar ampliamente aceptado en los SA, y eso se debe a la gran variedad de topologías y tecnologías existentes en los mismos. Por eso se usa el término IGP como concepto general para el conjunto de protocolos de intercambio de información de red entre routers interiores. 16.3 Protocolo de información de ruteo (RIP) El RIP (Routing Information Protocol) es uno de los protocolos de información de ruteo interno más utilizados. 16.3.1 Solución al problema de la convergencia lenta 16.3.2 Formato del mensaje RIP 16.3.3 Convenciones de direccionamiento RIP 16.3.4 Transmisión de mensajes RIP 16.4 Protocolo Hello 16.5 Combinación de protocolo RIP, Hello y EGP 16.6 Protocolo de SPF abierto (OSPF) 16.6.1 Formato de mensaje OSPF 16.6.2 Formato del mensaje Hello de OSPF 16.6.3 Formato del mensaje de descripción de la base de datos del OSPF 16.6.4 Formato del mensaje de solicitud de enlace del OSPF 16.6.5 Formato del mensaje de actualización de estado de enlace OSPF 16.7 Ruteo con información parcial 17 Multidifusión Internet (IGMP) 17.2 Difusión por hardware 17.3 Multidifusión por hardware 17.4 Multidifusión IP 17.5 Direcciones de multidifusión IP 17.6 Transformación de multidifusión IP en multidifusión Ethernet 17.7 Extensión del IP para manejar la multidifusión 17.8 Protocolo de gestión de grupos de internet 17.9 Implantación IGMP 17.10 Transiciones del estado de la membresía de grupo 17.11 Formato de los mensajes IGMP 17.12 Asignación de direcciones de multidifusión 17.13 Difusión de información de ruteo 17.14 El programa mrouted