IP: INTERNET PROTOCOL Ø El datagrama IP l Formato l Fragmentación l Opciones Ø ICMP: Internet Control Message Protocol l El protocolo l Tipos y formatos de mensajes ÏT UC3M 1 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I 1.1. - IP IP:: Características • Servicio fundamental: protocolo IP • Tres características clave: – No fiable (unreliable): no se garantiza transferencia (pérdida, retardo, secuencia, ...) ni reserva recursos – No orientado a la conexión (connectionless): cada paquete de información se trata independientemente – Mejor esfuerzo (best-effort) ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 2 Redes y Servicios de Comunicaciones I 1 IP: Datagrama Byte 1 Byte 2 0 7 Versión 1 Long H Byte 3 0 7 TTL 3 Flags Protocolo 7 Offset Header Checksum Dirección IP Fuente 5 Dirección IP Destino Opciones IP (si existen) ÏT UC3M 0 Longitud total 4 6 y sig. Byte 4 7 Tipo servicio Identificación 2 0 Relleno (si existe) DATOS max 64KB 3 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Datagrama Versión Long H 1 Tipo servicio Longitud total Ø Versión (4 bits) del protocolo IP que generó el datagrama para asegurar que la cabecera se procesa adecuadamente Ø Longitud cabecera (4 bits) en palabras de 32 bits, por lo que la cabecera debe medir un múltiplo de 4 bytes Ø Longitud total ÏT UC3M © 2003 IT-UC3M (16 bits) del datagrama IP: Internet Protocol 4 Redes y Servicios de Comunicaciones I 2 IP: Datagrama Versión Long H 1 Tipo servicio Longitud total Ø Tipo servicio (8 bits): parámetros de manejo del datagrama, suele ser ignorado l Precedencia 3 bits: de 0 normal a 7 control de red l 1 bit de retardo, 1 bit de Throughput, 1 bit de fiabilidad: marcar el que proceda Bit 0 1 2 Precedencia ÏT UC3M 3 4 5 6 Delay Thrput. Reliabty. 7 No usados 5 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Datagrama TTL 3 Protocolo Header Checksum Ø TTL (8 bits) tiempo en segs. que un datagrama debe estar en la red. Se decrementa en routers. Si TTL=0 se descarta. Ø Protocolo (8 bits) de capa superior que está utilizando el datagrama Ø Header Checksum cabecera ÏT UC3M © 2003 IT-UC3M (16 bits) protección de errores de la IP: Internet Protocol 6 Redes y Servicios de Comunicaciones I 3 IP: Datagrama 4 Dirección IP Fuente 5 Dirección IP Destino Ø Direcciones IP de fuente y destino (32 bits), para identificar en cada datagrama quién lo originó y quién es el destinatario l Más adelante se trata este tema … paciencia ::-) ÏT UC3M 7 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Fragmentación Ø Aunque la longitud máxima del datagrama es 64 KB, ¿cuánto cabe en una frame física? Ø Concepto de MTU: tamaño máximo admisible por la frame física. l (MTU FDDI=4470 bytes bytes,, MTU Ethernet=1500 bytes bytes,, ...) Ø Pero como la longitud del datagrama puede ser de hecho mayor, debemos hacer trozos y pegarlos ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 8 Redes y Servicios de Comunicaciones I 4 Ejemplo IP IP H1 Subred1 MTU = 1500 H2 ETH IP ETH IP IP MTU = 1000 IP ÏT IP ETH IP Subred3 MTU = 1500 Subred 2 R1 UC3M IP R2 IP IP 9 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Fragmentación Ø Para poder llevar datagramas IP sobre cualquier red física, los datagramas han de poder ser fragmentados para que quepan en la MTU Ø Fragmentación en cualquier punto del camino entre origen y destino Ø ¿Quién reconstruye el datagrama fragmentado? l ¿El destino final … l o cuando desaparezca la restricción de MTU? ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 10 Redes y Servicios de Comunicaciones I 5 IP: Fragmentación Ø Se reconstruye en destino l Para evitar aumento de complejidad en routers (no tienen que hacer store&forward store&forward,, cada fragmento es un datagrama independiente) l A pesar de que se desperdicia ancho de banda y de que si se pierde uno de los fragmentos el resto no nos valen de nada Ø Se usa la 2ª palabra del datagrama para controlar el proceso de fragmentación ÏT UC3M 11 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Fragmentación Byte 1 0 Byte 2 7 0 Identificación 2 Byte 3 7 0 Flags 2 Byte 4 7 0 7 Offset Ø Identificación (16 bits) número entero: del datagrama (incluso sin fragmentar!!) Ø Flags (3 bits): l reserva (1 bit) no utilizado l Do not fragment (1 bit) 1 = no fragmentar l More fragments (1 bit) 0 = último fragmento ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 12 Redes y Servicios de Comunicaciones I 6 IP: Fragmentación Byte 1 0 Byte 2 7 0 Identificación 2 Byte 3 7 0 Flags 2 Byte 4 7 0 7 Offset Ø Offset (13 bits) posición relativa de este fragmento en el datagrama original, en unidades de 8 bytes l Máximo 8192 fragmentos por datagrama l Destino reconstruirá empezando por el fragmento con offset 0, luego offset mayor teniendo en cuenta la longitud del fragmento, hasta bit MF=0 Ø Campo Longitud total lleva long. fragmento ÏT UC3M 13 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Opciones en datagrama Ø Objetivo: comprobaciones y pruebas en cada datagrama Ø Puede haber o no opciones (a partir de la sexta palabra del datagrama), van en la cabecera una detrás de otra con longitud variable Ø Tipos más comunes: Timestamp , Source Route, Record Route ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 14 Redes y Servicios de Comunicaciones I 7 IP: Opciones Ø Codificación del byte común de código de opción Bit 0 1 Copia 2 Clase de opción 3 4 5 6 7 Número de opción Copia: 1bit, con valor 1 indica que se debe copiar la opción en la cabecera de todos los fragmentos (en caso de que existan), con valor 0 para copiarla sólo en el primero. Clase: 2 bits, con valor 0 para control de red, 2 para medida y prueba, 1 y 3 reservados Número: 5 bits, especifica la opción dentro de una clase ÏT UC3M 15 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Opciones Ø TIMESTAMP l Registro de la hora a la que el datagrama pasa por un router l Código común (1byte, clase 2, número 4) + Longitud opción en bytes (1 byte) + Puntero a byte libre en opción (1 byte) + Cuenta número routers que no pudieron (4 bits) + Flags (4 bits, 0=timestamp, 1=dirección y timestamp, 3=dirección dada por transmisor) ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 16 Redes y Servicios de Comunicaciones I 8 IP: Opciones Ø SOURCE ROUTE l Permite a la fuente especificar cuál es la ruta a seguir por el datagrama: ü STRICT SOURCE ROUTE: ruta estricta ü LOOSE SOURCE ROUTE: puede haber saltos intermedios l Código común (1byte, clase 0, número 3 ó 9) + Longitud opción en bytes (1 byte) + Puntero a siguiente dirección a usar (1 byte) + Lista de direcciones a seguir (4 bytes cada una) ÏT UC3M 17 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I IP: Opciones Ø RECORD ROUTE l Recoge información de las direcciones por las que pasa el datagrama a lo largo de la ruta l Código común (1byte, clase 0, número 7) + Longitud opción en bytes (1 byte) + Puntero a siguiente dirección a usar (1 byte) + Lista de direcciones ya atravesadas ÏT UC3M © 2003 IT-UC3M (4 bits) IP: Internet Protocol 18 Redes y Servicios de Comunicaciones I 9 IP: INTERNET PROTOCOL Ø El datagrama IP l Formato l Fragmentación l Opciones Ø ICMP: Internet Control Message Protocol l El protocolo l Tipos y formatos de mensajes ÏT UC3M 19 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I 2.2. - ICMP ICMP:: el protocolo Ø En cualquier punto puede haber problemas en la transferencia del datagrama IP Ø ICMP proporciona el mecanismo de comunicación de información de control y error entre los actores involucrados l Origen del mensaje ICMP: quien detecte algo mal o quien quiera pedir información de control l Destino del mensaje ICMP: quien mandó el datagrama que da origen al error o a quien se le quiera pedir información ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 20 Redes y Servicios de Comunicaciones I 10 ICMP: el protocolo Ø Mensajes ICMP van encapsulados a su vez en datagramas IP … luego pueden tener problemas ellos también l No se envían mensajes ICMP de error en ese caso ÏT UC3M 21 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I ICMP Mensajes Ø Información de Ø Control Error l Echo Request Request/ / Reply l Timestamp Request / l Time Exceeded Reply l Address Mask Request / Reply l Source Quench l Parameter Problem l Redirect l Destination Unreachable ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 22 Redes y Servicios de Comunicaciones I 11 ICMP Mensajes: cabecera común Byte 1 Byte 2 0 Byte 3 7 0 Tipo 1 7 0 Byte 4 7 0 Código 7 Checksum Tipo: 8 bits, identifica el tipo de mensaje ICMP Código: 8 bits, proporciona mayor información sobre el mensaje ICMP, específica dentro de un tipo determinado de mensaje Checksum: 16 bits de protección contra errores del mensaje ICMP, calculado de la misma forma que se describió para IP Ø Todos los mensajes llevan esta cabecera y detrás vienen los datos propios del mensaje ÏT UC3M 23 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I ICMP Echo Request / Reply (ping) Ø “Comprobación de continuidad“ Byte 1 Byte 2 0 1 2 7 0 Tipo (0/8) Byte 3 7 0 Código (0) Identificador Byte 4 7 0 7 Checksum Número de secuencia Datos opcionales 3 … Tipo: 0=Request, 8=Reply Identificador y Número de Secuencia: relaciona reply con request ÏT UC3M © 2003 IT-UC3M Datos opcionales: campo de longitud variable que contiene datos que se envían en el request y se devuelven en el reply IP: Internet Protocol 24 Redes y Servicios de Comunicaciones I 12 ICMP Timestamp Request / Reply Ø Petición de información horaria Byte 1 Byte 2 0 7 0 Tipo (13/14) 1 Byte 3 7 Código (0) 0 7 Checksum Identificador 2 Byte 4 7 0 Número de secuencia Timestamp salida de origen Timestamp llegada a destino Timestamp salida de destino Tipo: 13=Request, 14=Reply Identificador y Número de Secuencia: relaciona reply con request ÏT Timestamps: 32 bits en milisegundos desde medianoche Universal Time (GMT) UC3M 25 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I ICMP Address Mask Request / Reply Ø Petición de máscara de subred Byte 1 Byte 2 0 1 2 7 0 Tipo (17/18) Byte 3 Byte 4 7 0 7 0 Código (0) Identificador 7 Checksum Número de secuencia Máscara de dirección Tipo: 17=Request, 18=Reply Identificador y Número de Secuencia: relaciona reply con request ÏT UC3M © 2003 IT-UC3M Máscara: 32 bits de máscara de subred (ver capítulo 3) IP: Internet Protocol 26 Redes y Servicios de Comunicaciones I 13 ICMP Source Quench Ø Petición de bajar la velocidad de transmisión Byte 1 Byte 2 0 Byte 3 7 0 Tipo (4) 1 7 0 Byte 4 7 0 Código (0) 7 Checksum 2 No utilizado (ceros) 3 Cabecera IP + 64 bits del datagrama que lo origina … ÏT UC3M 27 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I ICMP Time Exceeded Ø Se envía cuando TTL=0 ó temporizador fragmentos expira Byte 1 Byte 2 0 1 7 0 Tipo (11) Byte 3 7 0 Código (0-1) Byte 4 7 0 7 Checksum 2 No utilizado (ceros) 3 Cabecera IP + 64 bits del datagrama que lo origina … Código: 0=TTL excedido; 1=temporizador de reensamblaje excedido ÏT UC3M © 2003 IT-UC3M IP: Internet Protocol 28 Redes y Servicios de Comunicaciones I 14 ICMP Parameter Problem Ø Error no especificado (en posición apuntada) o falto opción requerida Byte 1 Byte 2 0 7 0 1 Tipo (12) 2 Puntero Byte 3 7 0 Byte 4 7 0 Código (0-1) 7 Checksum No utilizado (ceros) Cabecera IP + 64 bits del datagrama que lo origina 3 … Código: 0=error genérico, con puntero apuntando al octeto con error 1=falta opción requerida (no usa puntero en este caso), p.ej. una opción de identificación de seguridad para aplicaciones militares ÏT UC3M 29 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I ICMP Redirect Ø Informa que existe mejor ruta Byte 1 Byte 2 0 1 7 0 Tipo (5) Byte 3 7 0 Código (0-3) Byte 4 7 0 7 Checksum 2 Dirección IP de mejor router a utilizar 3 Cabecera IP + 64 bits del datagrama que lo origina … Código: ÏT UC3M © 2003 IT-UC3M 0=no usado (redirect for net) 2=redirect for TOS and net IP: Internet Protocol 1=redirect for host 3=redirect for TOS and host 30 Redes y Servicios de Comunicaciones I 15 ICMP Destination Unreachable Ø Informa de destino no alcanzable Byte 1 Byte 2 0 7 Tipo (3) 1 Byte 3 0 7 0 Byte 4 7 Código (0-12) 0 7 Checksum 2 No utilizado (ceros) 3 Cabecera IP + 64 bits del datagrama que lo origina … Código: ÏT UC3M 0=Network unreachable 1=Host unreachable 2=Protocol unreachable 3=Port unreachable 4=Fragment needed, DF set 5=Source route failed 6=Destination network unknown 7=Destination host unknown 8=Source host isolated 9=Admon prohibited netwk 10=Admon prohibited host 11=Netwk unreachable TOS 12=Host unreachable for TOS 31 IP: Internet Protocol © 2003 IT-UC3M Redes y Servicios de Comunicaciones I Ejemplo: IP sobre Ethernet Protocolo: IP (0x0800) D.Destino: FF:FF:FF:FF:FF:FF ff 45 8b 25 64 00 01 ÏT UC3M © 2003 IT-UC3M ff 00 65 03 06 00 fa ff 00 a3 06 be 00 4e ff 4c 75 ef 25 00 2a ff 45 8b 00 01 00 c3 D.Origen: 00:90:27:12:1A:C0 ff c2 ff 00 f7 00 22 00 00 00 14 69 00 cc 90 00 7b 65 72 00 b6 27 40 00 00 de 00 ca IP: Internet Protocol 12 1a c0 08 00 11 d6 8f a3 75 7b 00 38 80 61 00 1b 63 86 d6 43 CRC: 00 0xCCB6CA63 00 00 00 00 00 00 be 25 63 32 Redes y Servicios de Comunicaciones I 16 Ejemplo: IP sobre Ethernet IP versión 4 DSCP: 00 (not used) Header Length: 5x4=20 octetos Posible Frag./No hay más fragmentos/offset 0 Longitud Total: 76 (0x4c) ff 45 8b 25 64 00 01 ÏT UC3M © 2003 IT-UC3M ff 00 65 03 06 00 fa ff 00 a3 06 be 00 4e ff 4c 75 ef 25 00 2a ff 45 8b 00 01 00 c3 ff c2 ff 00 f7 00 22 00 90 27 00 00 40 00 7b 00 14 65 00 Id: 0x45C2 69 72 de 00 00 00 cc b6 ca IP Destino 163.117.139.255 IP: Internet Protocol CRC Cabecera 0xD68F Protocolo UDP (17=0x11) 12 1a c0 08 11 d6 8f a3 7b 00 38 80 00 1b 63 86 43 00 00 00 TTL 64 saltos 00 00 00 be 63 00 75 61 d6 00 25 IP Origen 163.117.139.101 33 Redes y Servicios de Comunicaciones I 17