datagrama ip
DESCRIPTION
ÂTRANSCRIPT
2016
Carlos Eduardo Gómez Montoya. M.Sc Luis Eduardo Sepúlveda Rodríguez. M.Sc
Redes de computadores II
CAPA DE RED
Datagrama IP
1
ProtocoloIP
2
| Capa de Red | Protocolo IP |
ProtocoloIP
3
• 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.
| Capa de Red | Protocolo IP |
DatagramaIP
4
• 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.
Encabezado Datos
Encabezado Datos
Mensaje
Transporte
Aplicación
RedDatagrama
Segmento
| Capa de Red | Datagrama IP |
DatagramaIP
5
● 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.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
Opciones
Campodedatos
0 15 31
| Capa de Red | Datagrama IP |
DatagramaIP
6
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.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
| Capa de Red | Datagrama IP | Campo Versión |
DatagramaIP
7
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.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
| Capa de Red | Datagrama IP | Campo Longitud del Encabezado |
DatagramaIP
8
Servicios Diferenciados
● Anteriormente llamada Tipo de Servicio.
● Pensado para solicitar determinada calidad en la transmisión(QoS – Quality of Service).
● Puede ser utilizado o ignorado dependiendo del tipo de red.
● Los primeros tres bits especificaban la prioridad (0 – baja; 7 – alta) pero ya no se utilizan.
| Capa de Red | Datagrama IP | Campo Servicios Diferenciados |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
0 1 2 3 4 5 6 7
Prioridad D T R C
DatagramaIP
9
ServiciosDiferenciados
● 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). • 0 0 1 0: Alta confiabilidad (Reliability).
• 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.
● El último bit queda en 0, y no tiene un uso determinado.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
0 1 2 3 4 5 6 7
Prioridad D T R C
| Capa de Red | Datagrama IP | Campo Servicios Diferenciados |
DatagramaIP
10
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.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
| Capa de Red | Datagrama IP | Campo Longitud Total |
DatagramaIP
11
Identificación
● Es un valor de reconocimiento asignado por el remitente. Ayuda en el ensamblaje de fragmentos de un datagrama.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
| Capa de Red | Datagrama IP | Campo Identificación |
DatagramaIP
12
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).
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
| Capa de Red | Datagrama IP | Fragmentación de Datagramas |
DatagramaIP
13
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.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
| Capa de Red | Datagrama IP | Fragmentación de Datagramas |
DatagramaIP
14
Bit 0: Reservado
● Es un bit que no se utiliza.
● Su valor siempre debe ser cero.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
0 1 2
DF MF
Flags(indicadores)
| Capa de Red | Datagrama IP | Fragmentación de Datagramas |
DatagramaIP
15
Bit 1: DF (Don’t Fragment)
● Posibles valores:
• 0: Se puede fragmentar el datagrama
• 1: No se puede fragmentar el datagrama.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
0 1 2
DF MF
Flags(indicadores)
| Capa de Red | Datagrama IP | Fragmentación de Datagramas |
DatagramaIP
16
Bit 2: MF (More Fragment)
● Es un indicador que permite saber si un datagrama es el último de una serie de fragmentos que provienen del mismo datagrama.
● Posibles valores:
• 0: No hay mas fragmentos. Este datagrama es el último fragmento.
• 1: Hay mas fragmentos. Este datagrama no es el último fragmento.
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
0 15 31
0 1 2
DF MF
Flags(indicadores)
| Capa de Red | Datagrama IP | Fragmentación de Datagramas |
DatagramaIP
17
Desplazamiento
● Este campo indica a que parte del datagrama pertenece este fragmento.
● La posición del fragmento se mide en unidades de 8 Bytes (64 bits) que es considerada la unidad elemental de fragmentos.
● Todos los fragmentos excepto el último del datagrama deben tener una longitud que sea múltiplo de 8 Bytes (Words de 64 bits).
● El primer fragmento tiene posición 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.
0 15 31
| Capa de Red | Datagrama IP | Fragmentación de Datagramas |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
DatagramaIP
18
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).
| Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
DatagramaIP
19
Ejemplo
● Tamaño del datagrama 1420 Bytes (1400 Bytes de datos y 20 Bytes del encabezado).
Fragmento 1:
Longitud total = 620 Bytes Desplazamiento = 0 MF = 1
Contiene los primeros 600 Bytes de los datos del datagrama original.
Fragmento 2:
Longitud total = 620 Bytes Desplazamiento = 75 (75x8=600) MF = 1
Contiene los siguientes 600 Bytes de los datos del datagrama original.
Fragmento 3:
Longitud total = 220 Bytes Desplazamiento = 150 (150x8=1200) MF = 0
Contiene los últimos 200 Bytes de los datos del datagrama original.
| Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
DatagramaIP
20
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.
| Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
DatagramaIP
21
| Capa de Red | Datagrama IP | Ejemplo de Fragmentación |
DatagramaIP
22
Tiempo de Vida (TTL)
● Indica el tiempo máximo que el datagrama puede existir.
● 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.
● Cuando llega a cero, el datagrama es descartado.
● La intención es hacer que los datagramas imposibles de entregar sean descartados, y limitar el máximo periodo de vida de un datagrama.
● El valor por defecto es de 32 o 64 según la huella de identificación de cada sistema operativo.
0 15 31
| Capa de Red | Datagrama IP | Campo Tiempo de vida TTL |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
DatagramaIP
23
Protocolo
● Indica el protocolo del siguiente nivel usado en la parte de datos del datagrama IP.
● Las dos opciones más usadas son TCP (6) y UDP (17).
● Otros protocolos pueden ser: ICMP (1), IP (4), y algunos relacionados con IPv6 (41, 43, 44, 58, 59 y 60).
● La tabla completa puede ser consultada en http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml.
0 15 31
| Capa de Red | Datagrama IP | Campo Protocolo |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
DatagramaIP
24
Suma de Comprobación ● Corresponde a una suma de
comprobación del encabezado, no incluye los datos.
● Especificada en los RFC 1071 y 1141.
● Dado que algunos campos del encabezado cambian (como el tiempo de vida -TTL), esta suma es recalculada y verificada en
cada router, donde el encabezado del datagrama es procesado.
● Se define como el complemento a 1 de 16 bits de la suma de todas las palabras de 16 bits del encabezado.
● A la hora de calcularla el valor inicial de este campo es cero.
0 15 31
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
DatagramaIP
25
Suma de comprobación
● Procedimiento
• Se divide el encabezado en words de 16 bits (W16).
• Inicialmente se suman dos W16.
• Y se repite el siguiente procedimiento hasta terminar:
• Si se produce acarreo, el acarreo se suma al total, de manera que quede un W16.
• Posteriormente se suma el siguiente W16.
0 15 31
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
DatagramaIP
26
Ejemplo de suma de comprobación
● Suponga un datagrama IP con el siguiente encabezado, expresado en hexadecimal:
● Obtenga las W16 del encabezado (1 W16 equivale a 4 dígitos hexadecimales).
0 15 31
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
4500022432F900B901012A7AC0A80166803B1764
4500 0224 32F9 00B9 0101 2A7A C0A8 0166 803B 1764
DatagramaIP
27
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.
0 15 31
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
4500 0224 32F9 00B9 0101 2A7A C0A8 0166 803B 1764
DatagramaIP
28
Ejemplo de suma de comprobación
● Posteriormente se calcula el complemento a 1 del resultado de la suma así:
● La suma de comprobación que el transmisor incluye en el datagrama es: 2A7A
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
Acarreo
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
UNO FFFF 1111 1111 1111 1111 SUMA D585 1101 0101 1000 0101 ----- ------------------- 2A7A 0010 1010 0111 1010
4500 0224 32F9 00B9 0101 2A7A C0A8 0166 803B 1764
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
DatagramaIP
29
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 2A7A 0010 1010 0111 1010 Suma calculada 2A7A 0010 1010 0111 1010 ------------------- Complemento a 1 0000 0000 0000 0000
| Capa de Red | Datagrama IP | Campo Suma de Comprobación |
DatagramaIP
30
Dirección IP Origen
● Corresponde a la dirección del host que ha enviado el datagrama inicialmente.
0 15 31
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
| Capa de Red | Datagrama IP | Campo Dirección IP Origen |
DatagramaIP
31
Dirección IP Destino
● Corresponde a la dirección del host que ha enviado el datagrama inicialmente.
0 15 31
Versión4bits
LongitudEncabezado4bits
ServiciosDiferenciados8bits
LongitudTotal16bits
Identificación16bits
O1bit
DF1bit
MF1bit
Desplazamiento13bits
TiempodeVida8bits
Protocolo8bits
SumadeComprobación16bits
DirecciónIPOrigen32bits
DirecciónIPDestino32bits
| Capa de Red | Datagrama IP | Campo Dirección IP Destino |
Referencias
32
Nivel de texto 1
ComputerNetworking:ATopDownApproach.6thedition.JimKurose,KeithRoss. Addison-Wesley, 2012.
RedesdeComputadoras.5aEdición. AndrewS.TanenbaumyDavidJ.Wetherall.Pearson Educación, 2012.