IP: INTERNET PROTOCOL El datagrama IP Formato Fragmentación Opciones ICMP: Internet Control Message Protocol El protocolo Tipos y formatos de mensajes 1 1.- 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) 2
IP: Datagrama 1 Versión Long H Tipo servicio Longitud total 2 Identificación Flags Offset 3 TTL Protocolo Header Checksum 4 Dirección IP Fuente 5 Dirección IP Destino 6 y sig. Opciones IP (si existen) Relleno (si existe) max 64KB DATOS 3 IP: Datagrama 1 Versión Long H 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 (16 bits) del datagrama 4
IP: Datagrama 1 Versión Long H Tipo servicio Longitud total Tipo servicio (8 bits): parámetros de manejo del datagrama, suele ser ignorado Precedencia 3 bits: de 0 normal a 7 control de red 1 bit de retardo, 1 bit de Throughput, 1 bit de fiabilidad: marcar el que proceda Bit 0 1 2 3 4 5 6 7 Precedencia Delay Thrput. Reliabty. No usados 5 IP: Datagrama 3 TTL 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 (16 bits) protección de errores de la cabecera 6
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 Más adelante se trata este tema paciencia :-) 7 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. (MTU FDDI=4470 bytes, MTU Ethernet=1500 bytes,...) Pero como la longitud del datagrama puede ser de hecho mayor, debemos hacer trozos y pegarlos 8
H1 Ejemplo IP IP IP H2 Subred1 ETH IP ETH IP ETH IP Subred3 MTU = 1500 IP R1 IP IP Subred 2 MTU = 1000 IP IP R2 MTU = 1500 9 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? El destino final o cuando desaparezca la restricción de MTU? 10
IP: Fragmentación Se reconstruye en destino Para evitar aumento de complejidad en routers (no tienen que hacer store&forward, cada fragmento es un datagrama independiente) 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 11 IP: Fragmentación 0 7 0 7 0 2 7 0 7 2 Identificación Flags Offset Identificación (16 bits) número entero: del datagrama (incluso sin fragmentar!!) Flags (3 bits): reserva (1 bit) no utilizado Do not fragment (1 bit) 1 = no fragmentar More fragments (1 bit) 0 = último fragmento 12
IP: Fragmentación 0 7 0 7 0 2 7 0 7 2 Identificación Flags Offset Offset (13 bits) posición relativa de este fragmento en el datagrama original, en unidades de 8 bytes Máximo 8192 fragmentos por datagrama 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 13 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 14
IP: Opciones Codificación del byte común de código de opción Bit 0 1 2 3 4 5 6 7 Copia Clase de opción 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 15 IP: Opciones TIMESTAMP Registro de la hora a la que el datagrama pasa por un router 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) 16
IP: Opciones SOURCE ROUTE 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 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) 17 IP: Opciones RECORD ROUTE Recoge información de las direcciones por las que pasa el datagrama a lo largo de la ruta 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 (4 bits) 18
IP: INTERNET PROTOCOL El datagrama IP Formato Fragmentación Opciones ICMP: Internet Control Message Protocol El protocolo Tipos y formatos de mensajes 19 2.- 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 Origen del mensaje ICMP: quien detecte algo mal o quien quiera pedir información de control Destino del mensaje ICMP: quien mandó el datagrama que da origen al error o a quien se le quiera pedir información 20
ICMP: el protocolo Mensajes ICMP van encapsulados a su vez en datagramas IP luego pueden tener problemas ellos también No se envían mensajes ICMP de error en ese caso 21 ICMP Mensajes Control Echo Request/ReplyReply Timestamp Request / Reply Address Mask Request / Reply Información de Error Source Quench Time Exceeded Parameter Problem Redirect Destination Unreachable 22
ICMP Mensajes: cabecera común 1 Tipo Código 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 23 ICMP Echo Request / Reply (ping) Comprobación de continuidad 1 Tipo (0/8) Código (0) Checksum 2 Identificador Número de secuencia 3 Datos opcionales Tipo: 0=Request, 8=Reply Identificador y Número de Secuencia: relaciona reply con request Datos opcionales: campo de longitud variable que contiene datos que se envían en el request y se devuelven en el reply 24
ICMP Timestamp Request / Reply Petición de información horaria 1 Tipo (13/14) Código (0) Checksum 2 Identificador 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 Timestamps: 32 bits en milisegundos desde medianoche Universal Time (GMT) 25 ICMP Address Mask Request / Reply Petición de máscara de subred 1 Tipo (17/18) Código (0) Checksum 2 Identificador Número de secuencia Máscara de dirección Tipo: 17=Request, 18=Reply Identificador y Número de Secuencia: relaciona reply con request Máscara: 32 bits de máscara de subred (ver capítulo 3) 26
ICMP Source Quench Petición de bajar la velocidad de transmisión 1 Tipo (4) Código (0) Checksum 2 No utilizado (ceros) 3 Cabecera IP + 64 bits del datagrama que lo origina 27 ICMP Time Exceeded Se envía cuando TTL=0 ó temporizador fragmentos expira 1 Tipo (11) Código (0-1) 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 28
ICMP Parameter Problem Error no especificado (en posición apuntada) o falto opción requerida 1 Tipo (12) Código (0-1) Checksum 2 Puntero No utilizado (ceros) 3 Cabecera IP + 64 bits del datagrama que lo origina 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 29 ICMP Redirect Informa que existe mejor ruta 1 Tipo (5) Código (0-3) Checksum 2 Dirección IP de mejor router a utilizar 3 Cabecera IP + 64 bits del datagrama que lo origina Código: 0=no usado (redirect for net) 1=redirect for host 2=redirect for TOS and net 3=redirect for TOS and host 30
ICMP Destination Unreachable Informa de destino no alcanzable 1 Tipo (3) Código (0-12) Checksum 2 No utilizado (ceros) 3 Cabecera IP + 64 bits del datagrama que lo origina Código: 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 Ejemplo: IP sobre Ethernet Protocolo: IP (0x0800) D.Destino: FF:FF:FF:FF:FF:FF D.Origen: 00:90:27:12:1A:C0 ff ff ff ff ff ff 00 90 27 12 1a c0 08 00 45 00 00 4c 45 c2 00 00 40 11 d6 8f a3 75 8b 65 a3 75 8b ff 00 7b 00 7b 00 38 80 61 25 03 06 ef 00 00 14 65 00 00 1b 63 86 d6 64 06 be 25 01 f7 69 72 de 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be 25 01 fa 4e 2a c3 22 cc b6 ca 63 CRC: 0xCCB6CA63 32
Ejemplo: IP sobre Ethernet IP versión 4 DSCP: 00 (not used) Header Length: 5x4=20 octetos Longitud Total: 76 (0x4c) Posible Frag./No hay más fragmentos/offset 0 ff ff ff ff ff ff 00 90 27 12 1a c0 08 00 45 00 00 4c 45 c2 00 00 40 11 d6 8f a3 75 8b 65 a3 75 8b ff 00 7b 00 7b 00 38 80 61 25 03 06 ef 00 00 14 65 00 00 1b 63 86 d6 Id: 0x45C2 64 06 be 25 01 f7 69 72 de 43 00 00 00 00 TTL 64 saltos 00 00 00 00 00 00 00 00 00 00 00 00 be 25 01 fa 4e 2a c3 22 cc b6 ca 63 Protocolo UDP (17=0x11) CRC Cabecera 0xD68F IP Origen IP Destino 163.117.139.101 163.117.139.255 33