IP LSUB, GYSC, URJC IP • El nivel de red de TCP/IP • Enviar “datagramas” • De una máquina a otra • Utilizando rutas (locales) • Sin garantías 2 IP • Pero hace más cosas… • Fragmenta datagramas grandes • Los re-ensambla • Y en IP v6 aún mas 3 IP Cabecera IP Datos Enviado como una o más tramas ethernet (pero ver luego) 4 Cabecera IP v4 5 Cabecera IP v4 • Versión 4 • Internet Header Length: bytes de cabecera • (60 bytes max) • Type of Service (bits para forwarding) • Identifaction: Número único por datagrama • Total Length: incluye cabecera. Max 65535 6 IP • Si la cabecera y datos no caben en una trama de enlace… • Se fragmenta el datagrama en varios • Cada uno lleva su cabecera • Al menos se pueden enviar 512 bytes de datos • IP v6 no fragmenta 7 IP • En fragmentos… • La longitud indica la longitud del fragmento • Todos con el mismo valor en identificación. • Offset indica qué fragmento 8 IP • TTL: Time to Live • Limita la vida del datagrama • Cada router lo decrementa • Cuando llega a cero, se tira el datagrama • Y se envía un ICMP de vuelta! 9 IP • Proto: Número único para cada protocolo • UDP: 17 • TCP: 6 10 IP • Header Checksum • Suma de integridad • Sólo para la cabecera • Osea, que TCP y UDP deben comprobar integridad de sus cosas ellos mismos 11 IP • Opciones: Source Routing • No es la única opción • Estricto o Loose • Se incluye la lista de routers que queremos seguir para el paquete • Para prefijar “circuitos” para el paquete 12 IP • Opciones: Record Route • Los routers anotan la ruta en la cabecera • Estricto o Loose • Se incluye la lista de routers que queremos seguir para el paquete • Para prefijar “circuitos” para el paquete 13 Cabecera IP v6 14 IP v6 • La versión es 6 • La longitud total no incluye la cabecera • Next Header: Para lo mismo que proto en v4: Cuál es la siguiente cabecera? • No hay checksum: Total, protocolos superiores lo harían de todos modos… 15 IP v6 • Casi todo se hace con opciones • Cabecera v6: next: fragment • Fragmento: next TCP • … • Existen datagramas jumbo de 64k 16 Encaminamiento • El nivel de red tiene que enviar datagramas entre máquinas • Debe ocuparse de descubrir el camino adecuado • Cada datagrama se envía por separado • aunque sean de la misma conversación pueden usar caminos distintos • Se deciden las rutas con información local • Cada máquina usa una “tabla de rutas” 17 Encaminamiento WiFi en casa 18 Encaminamiento • Envío con IP desde una máquina a la 2.3.4.5 • Soy yo? …entonces me lo quedo yo • La IP es de mi subred? …directamente • En otro caso al router • Naturalemente, si no hay entradas 19 Encaminamiento • Llega un datagrama a una máquina… • Para mi? …entonces me lo quedo yo • Si no, miro mi tabla de rutas 20 Encaminamiento • Tabla de rutas: • máscara • dirección destino • siguiente salto • interfaz (¿Qué enlace?) 21 Encaminamiento • Tabla de rutas: 1.Se aplica la máscara a la dir. destino 2.Se compara con el destino en la tabla 3.Para la coincidencia más larga, se envía al siguiente salto por el interfaz indicado 22 Encaminamiento • Importante: •La dirección de los routers NO aparece en el datagrama •Simplemente se hace reenvío del datagrama a quien corresponda •Si las rutas están mal puestas… mala suerte. 23 ICMP • Internet Control Message Protocol • protocolo para enviar mensajes de control • notificar errores y resolver problemas 24 ICMP cabecera IP type code cabecera ICMP cksum …datos… 25 datos ICMP ICMP • Tipos •0: echo reply •8: echo request •3: destination unreachable •code 0: net, 1:host, 2: proto, 3:port •11: time exceeded (TTL) 26 ICMP • Los errores • no se envían para datagramas de error • sólo para el primer fragmento • nunca en respuesta a broadcasts 27 IPv6 • Campo Next Header indica el tipo • Comunes: • Hop-by-Hop 0 • Destination Options 60 • Routing Header 43 • Fragment Header 44 • Authentication Header AH 51, Encapsulating security Payload 52, parte de IPsec, cifrado, autenticación, non-tampering, etc. 28 IPv6 • Campo Next Header indica el tipo • Comunes: • TCP 6 • ICMP 1 • IPv6 41 29 IPv6 IPv6 • Hop-by-Hop (y Destination) • Se tiene que mirar esta cabecera en cada salto (o en destino) • TLV (type length value) • Tipo 1byte: los dos bits de abajo descarta 01, descarta y manda ICMPv6 10, etc. IPv6 IPv6 • Routing headers • Para mandar el paquete a traves de otros hosts intermedios • 0 deprecated (ataque) • 1 Nimrod y 2 Mobile IP home agent IPv6 IPv6 • Fragment • En IPv6 sólo fragmentan los extremos • Offset, more fragments M, Id para ver con cual va (32 bits, aleatorios) IPv6