CAPA DE RED
Datagrama IP
Carlos Eduardo Gómez Montoya. M.Sc Luis Eduardo Sepúlveda Rodríguez. M.Sc
2016
Redes de computadores II
1
Protocolo IP | Capa de Red | Protocolo IP |
2
Protocolo IP | Capa de Red | Protocolo IP |
•
Es un protocolo no orientado a conexión, no confiable.
•
No hay garantía que un datagrama llegue a su destino.
•
Los datagramas utilizan caminos independientes para llegar al destino.
•
Los datagramas se pueden perder o dañar.
•
Los datagramas pueden llegar en desorden.
3
Datagrama IP | Capa de Red | Datagrama IP |
• Un datagrama IP se compone de dos partes: • El encabezado (longitud = 20 bytes). • El campo de datos (longitud = variable de 0 a 40 bytes). • Usualmente lleva un segmento de capa de transporte. • Usualmente lleva un mensaje de capa de aplicación.
Datagrama
Segmento
Encabezado
Encabezado
Datos
Mensaje
Aplicación
Datos
Transporte Red
4
Datagrama IP | Capa de Red | Datagrama IP |
● El encabezado tiene una parte fija de 20 bytes (5 words) y una parte opcional de longitud variable. ● El formato del encabezado se muestra en a continuación.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits Opciones Campo de datos
5
Datagrama IP | Capa de Red | Datagrama IP | Campo Versión |
Versión ● El campo versión describe el formato de la cabecera IP. La versión 4 es la más usada en la actualidad, aunque la versión 6 está en plan de implementación nacional.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
6
Datagrama IP | Capa de Red | Datagrama IP | Campo Longitud del Encabezado |
Longitud del Encabezado ● Longitud del encabezado del datagrama, está medida en palabras (words) de 32 bits. ● HLEN (Header Length) ● Nótese que el valor mínimo para una cabecera correcta es 5 words, equivalentes a 160 bits.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
7
Datagrama IP | Capa de Red | Datagrama IP | Campo Servicios Diferenciados |
Servicios Diferenciados
● Puede ser utilizado o ignorado dependiendo del tipo de red.
● Anteriormente llamada Tipo de Servicio.
● Los primeros tres bits especificaban la prioridad (0 – baja; 7 – alta) pero ya no se utilizan.
● Pensado para solicitar determinada calidad en la transmisión(QoS – Quality of Service). 0
1
2
3
4
5
6
Prioridad
D
T
R
C
0
7
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
8
Datagrama IP | Capa de Red | Datagrama IP | Campo Servicios Diferenciados |
Servicios Diferenciados
• 0 0 0 1: Bajo costo (Cost). • Ejemplo: Algunos protocolos podrían preferir mínimo retardo, mientras que otros pueden necesitar alta transferencia de datos.
● Los siguientes cuatro bits son flags (sólo se podría utilizar uno de ellos): • 1 0 0 0: Bajo retardo (Delay). • 0 1 0 0: Alta tasa de transferencia (Throughput).
● El último bit queda en 0, y no tiene un uso determinado.
• 0 0 1 0: Alta confiabilidad (Reliability).
0
1
2
3
4
5
6
Prioridad
D
T
R
C
0
7
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
9
Datagrama IP | Capa de Red | Datagrama IP | Campo Longitud Total |
Longitud Total ● Corresponde a la longitud del datagrama, medida en Bytes, incluyendo el encabezado y los datos. ● Este campo permite que la longitud máxima de un datagrama sea de 64 KBytes, equivalente 65,535 Bytes.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
10
Datagrama IP | Capa de Red | Datagrama IP | Campo Identificación |
Identificación ● Es un valor de reconocimiento asignado por el remitente. Ayuda en el ensamblaje de fragmentos de un datagrama.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
11
Datagrama IP | Capa de Red | Datagrama IP | Fragmentación de Datagramas |
Fragmentación de Datagramas ● Un datagrama debe tener un tamaño que le permita ser encapsulado completamente en un frame para ser enviado por la red física. ● El datagrama puede pasar por diferentes clases de redes con diferentes capacidades de transferencia. ● La capacidad máxima de transferencia de datos de una red física se le llama MTU (del inglés Maximum Transmission Unit). 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
12
Datagrama IP | Capa de Red | Datagrama IP | Fragmentación de Datagramas |
Fragmentación de Datagramas ● La MTU de Ethernet es 1500 Bytes por frame. ● Cuando un datagrama pasa de una red a otra con menor MTU, el datagrama se debe fragmentar. ● Cada parte de un datagrama se llama fragmento. ● Estos 16 bits permiten implementar la fragmentación de un datagrama. 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
13
Datagrama IP | Capa de Red | Datagrama IP | Fragmentación de Datagramas |
Bit 0: Reservado ● Es un bit que no se utiliza. ● Su valor siempre debe ser cero.
0
1
2
Flags (indicadores)
DF MF 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
14
Datagrama IP | Capa de Red | Datagrama IP | Fragmentación de Datagramas |
Bit 1: DF (Don’t Fragment) ● Posibles valores: • 0: Se puede fragmentar el datagrama • 1: No se puede fragmentar el datagrama. 0
1
2
Flags (indicadores)
DF MF 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
15
Datagrama IP | Capa de Red | Datagrama IP | Fragmentación de Datagramas |
Bit 2: MF (More Fragment)
● Posibles valores: • 0: No hay mas fragmentos. Este datagrama es el último fragmento.
● Es un indicador que permite saber si un datagrama es el último de una serie de fragmentos que provienen del mismo datagrama.
• 1: Hay mas fragmentos. Este datagrama no es el último fragmento. 0
1
2
Flags (indicadores)
DF MF 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
16
Datagrama IP | Capa de Red | Datagrama IP | Fragmentación de Datagramas |
● Todos los fragmentos excepto el último del datagrama deben tener una longitud que sea múltiplo de 8 Bytes (Words de 64 bits).
Desplazamiento ● Este campo indica a que parte del datagrama pertenece este fragmento.
● El primer fragmento tiene posición 0.
● La posición del fragmento se mide en unidades de 8 Bytes (64 bits) que es considerada la unidad elemental de fragmentos.
0
● Los 13 bits de este campo permiten un máximo de 8192 fragmentos por datagrama. Lo que equivale a una longitud máxima de datagrama de 65.536 bytes, uno más que en el campo de Longitud Total; suficiente para re-emsamblar un datagrama de cualquier tamaño.
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
17
Datagrama IP | Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
Ejemplo
● Supongamos que el host A envía un datagrama de 1400 bytes de datos + 20 bytes de encabezado al host B (1420 bytes en total). ● El datagrama no tiene ningún problema en atravesar la red 1 ya que 1420 < 1500. ● El datagrama no puede atravesar la red 2 (1420 >= 620), por lo tanto, el router R1 debe fragmentar el datagrama para atravesar la red 2. ● Cada uno de estos fragmentos es un nuevo datagrama con la misma identificación pero distinta información en el campo de desplazamiento de fragmentación y el bit de más fragmentos (MF).
18
Datagrama IP | Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
Ejemplo
● Tamaño del datagrama 1420 Bytes (1400 Bytes de datos y 20 Bytes del encabezado). Fragmento 1: Longitud total = Desplazamiento = MF =
Fragmento 2: 620 Bytes 0 1
Contiene los primeros 600 Bytes de los datos del datagrama original.
Longitud total = Desplazamiento = MF =
Fragmento 3: 620 Bytes 75 (75x8=600) 1
Contiene los siguientes 600 Bytes de los datos del datagrama original.
Longitud total = Desplazamiento = MF =
220 Bytes 150 (150x8=1200) 0
Contiene los últimos 200 Bytes de los datos del datagrama original.
19
Datagrama IP | Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
Ejemplo
• El router R2 recibirá los tres fragmentos y los enviará a la red 3 sin reensamblarlos. • Cuando el host B reciba los fragmentos, recompondrá el datagrama original. • Los enrutadores no reensamblan los fragmentos porque sería una carga de trabajo adicional. • El host destino puede recibir los fragmentos en desorden pero el reensamblado se hace teniendo en cuenta el desplazamiento. • Si el datagrama hubiera tenido su bit (DF) en 1, no hubiera podido atravesar el router R1 y hubiera descartado el datagrama.
20
Datagrama IP | Capa de Red | Datagrama IP | Ejemplo de Fragmentaci贸n |
21
Datagrama IP | Capa de Red | Datagrama IP | Campo Tiempo de vida TTL |
Tiempo de Vida (TTL)
● Cuando llega a cero, el datagrama es descartado.
● Indica el tiempo máximo que el datagrama puede existir.
● La intención es hacer que los datagramas imposibles de entregar sean descartados, y limitar el máximo periodo de vida de un datagrama.
● Cada router intermedio disminuye en 1 el valor del TTL. Si el datagrama es almacenado para posterior reenvío, se disminuye en 1 el TTL por cada segundo almacenado en caso de congestión.
0
● El valor por defecto es de 32 o 64 según la huella de identificación de cada sistema operativo. 15
Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
22
Datagrama IP | Capa de Red | Datagrama IP | Campo Protocolo |
Protocolo
● Otros protocolos pueden ser: ICMP (1), IP (4), y algunos relacionados con IPv6 (41, 43, 44, 58, 59 y 60).
● Indica el protocolo del siguiente nivel usado en la parte de datos del datagrama IP.
● La tabla completa puede ser consultada en http://www.iana.org/assignments/ protocol-numbers/protocol-numbers.xml.
● Las dos opciones más usadas son TCP (6) y UDP (17).
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
23
Datagrama IP | Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Suma de Comprobación
cada router, donde el encabezado del datagrama es procesado.
● Corresponde a una suma de comprobación del encabezado, no incluye los datos.
● Se define como el complemento a 1 de 16 bits de la suma de todas las palabras de 16 bits del encabezado.
● Especificada en los RFC 1071 y 1141.
● A la hora de calcularla el valor inicial de este campo es cero.
● Dado que algunos campos del encabezado cambian (como el tiempo de vida -TTL), esta suma es recalculada y verificada en 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
24
Datagrama IP | Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Suma de comprobación
• Si se produce acarreo, el acarreo se suma al total, de manera que quede un W16.
● Procedimiento
• Posteriormente se suma el siguiente W16.
• Se divide el encabezado en words de 16 bits (W16). • Inicialmente se suman dos W16. • Y se repite el siguiente procedimiento hasta terminar: 0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
25
Datagrama IP | Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Ejemplo de suma de comprobación ● Suponga un datagrama IP con el siguiente encabezado, expresado en hexadecimal: 4500022432F900B901012A7AC0A80166803B1764 ● Obtenga las W16 del encabezado (1 W16 equivale a 4 dígitos hexadecimales). 4500
0224
32F9
00B9
0101
0
2A7A
C0A8
0166
15 Versión 4 bits
Longitud Encabezado 4 bits
Tiempo de Vida 8 bits
1764 31
Servicios Diferenciados 8 bits
Identificación 16 bits
803B
Longitud Total 16 bits O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
26
Datagrama IP | Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Ejemplo de suma de comprobación ● No considere el valor correspondiente al campo Suma de comprobación: ● Realice la suma, cada vez tomando dos números. Si hay acarreo, debe sumarlo al resultado antes de continuar sumando.
4500
0224
32F9
00B9
0101
0
2A7A
C0A8
0166
15 Versión 4 bits
Longitud Encabezado 4 bits
Tiempo de Vida 8 bits
1764 31
Servicios Diferenciados 8 bits
Identificación 16 bits
803B
Longitud Total 16 bits O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
27
Datagrama IP
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
H
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Ejemplo de suma de comprobación 4500
0224
32F9
00B9
0101
2A7A
C0A8
0166
803B
1764
Acarreo
4500 0224 ---4724
4724 32F9 ---7A1D
7A1D 00B9 ---7AD6
7AD6 0101 ---7BD7
7BD7 C0A8 ----13C7F
3C7F 1 ----3C80
3C80 0166 ----3DE6
3DE6 803B ----BE21
BE21 1764 ----D585
● Posteriormente se calcula el complemento a 1 del resultado de la suma así:
UNO SUMA
FFFF D585 ----2A7A
1111 1111 1111 1111 1101 0101 1000 0101 ------------------0010 1010 0111 1010
● La suma de comprobación que el transmisor incluye en el datagrama es: 2A7A
28
Datagrama IP | Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Ejemplo de suma de comprobación ● El receptor suma los Words de 16 bits (suma calculada) y si al calcular el complemento a 1 con la suma enviada, se obtiene como resultado 16 bits en 0, entonces puede concluir que el paquete es correcto y puede entregarlo a quien corresponda. ● Complemento a 1 entre la suma enviada y la suma de verificación calculada,
Suma enviada Suma calculada Complemento a 1
2A7A 2A7A
0010 1010 0111 1010 0010 1010 0111 1010 ------------------0000 0000 0000 0000
29
Datagrama IP | Capa de Red | Datagrama IP | Campo Dirección IP Origen |
Dirección IP Origen ● Corresponde a la dirección del host que ha enviado el datagrama inicialmente.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
30
Datagrama IP | Capa de Red | Datagrama IP | Campo Dirección IP Destino |
Dirección IP Destino ● Corresponde a la dirección del host que ha enviado el datagrama inicialmente.
0
15 Versión 4 bits
Longitud Encabezado 4 bits
Servicios Diferenciados 8 bits
Identificación 16 bits Tiempo de Vida 8 bits
31 Longitud Total 16 bits
O 1 bit
DF MF 1 1 bit bit
Protocolo 8 bits
Desplazamiento 13 bits Suma de Comprobación 16 bits
Dirección IP Origen 32 bits Dirección IP Destino 32 bits
31
Referencias Nivel de texto 1
Computer Networking: A Top Down Approach. 6th edition. Jim Kurose, Keith Ross. Addison-Wesley, 2012.
Redes de Computadoras. 5a Edición. Andrew S. Tanenbaum y David J. Wetherall. Pearson Educación, 2012.
32