LSUB, GYSC, URJC

Anuncio
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
Descargar