Saltar al contenido

Encapsulación y datagrama IP

Qué le pasa a un dato cuando baja por la pila y qué le pasa cuando sube por la del otro extremo, y qué lleva dentro la cabecera del protocolo que sostiene Internet.

Qué es encapsular

Cuando un programa envía información, esa información no sale del equipo tal cual se escribió. Va bajando por la pila y en cada capa recibe por delante un trozo de datos de control, la cabecera, con lo que necesita saber la capa gemela de la máquina de destino para hacer su trabajo. Ese envolver es la encapsulación.

La comparación que mejor funciona es la del correo postal. La carta es el dato del usuario. Se mete en un sobre con el nombre del destinatario, ese sobre se agrupa en una saca con la ciudad de destino y la saca sube a un camión con su hoja de ruta. Cada envoltorio lo abre solo quien tiene que abrirlo: el cartero no lee la carta y el destinatario no necesita la hoja de ruta del camión.

Lo importante es que cada capa trata lo que le llega de arriba como un bloque opaco de datos: no lo interpreta, no lo abre y no le importa qué hay dentro. Solo le pone su cabecera delante y se lo pasa a la capa de abajo. A esa unidad formada por la cabecera de la capa más los datos que recibió se le llama unidad de datos de protocolo, o PDU.

CapaQué añadeNombre del resultado
AplicaciónEl mensaje tal como lo produce el programaDatos o mensaje
TransportePuerto de origen y de destino, y el control de la entregaSegmento (TCP) o datagrama (UDP)
RedDirección IP de origen y de destinoPaquete o datagrama IP
EnlaceDirección MAC de origen y de destino, y una cola de comprobaciónTrama
FísicaNada: convierte la trama en señalBits

La cabecera se pone delante en cada capa que se baja. Por eso el mismo dato viaja por el cable envuelto en cuatro capas de información de control.

Aplicación · datos

El mensaje tal cual lo genera el programa.

Transporte · segmento

Se añade la cabecera TCP o UDP con los puertos de origen y destino.

Red · paquete o datagrama

Se añade la cabecera IP con las direcciones de origen y destino.

Enlace · trama

Se añaden cabecera y cola con las direcciones MAC y la comprobación de errores.

Física · bits

La trama se convierte en señales sobre el medio.

Para el examen

  • Qué hace cada capa: añade su cabecera a lo que recibe de la de arriba

  • Nombres por capa: datos, segmento, paquete o datagrama, trama y bits

El camino de vuelta: la desencapsulación

En la máquina de destino ocurre exactamente lo contrario y en orden inverso. La información entra por la capa física y va subiendo; cada capa quita su propia cabecera, la lee, decide qué hacer con ella y entrega el resto a la capa de encima. Cuando llega arriba, lo que recibe el programa es idéntico a lo que salió del programa del otro extremo.

  1. La capa física recompone los bits en una trama.
  2. La capa de enlace comprueba que la trama es para su dirección MAC y que no llegó corrompida, le quita la cabecera y la cola, y entrega el paquete.
  3. La capa de red comprueba que la dirección IP de destino es la suya, quita la cabecera IP y mira el campo que dice qué protocolo de transporte viene dentro.
  4. La capa de transporte lee el puerto de destino, quita su cabecera y entrega los datos al proceso que está escuchando en ese puerto.
  5. La capa de aplicación interpreta ya el contenido, que es lo único que le interesaba al usuario.

La simetría es total y de ahí sale la regla que se pregunta: cada cabecera la pone y la quita la misma capa. Ninguna capa toca la cabecera de otra. Un equipo intermedio que solo encamina desencapsula hasta la capa 3, decide por dónde sigue el paquete, y vuelve a encapsularlo en una trama nueva para el siguiente salto: por eso las direcciones MAC cambian en cada salto y las direcciones IP no.

Al bajar se encapsula y al subir se desencapsula. La IP de origen y de destino son las mismas de punta a punta; la MAC se rehace en cada salto.

Para el examen

  • En el destino: se quitan las cabeceras en orden inverso

  • Qué lee cada capa: la cabecera que puso su igual del otro extremo

La cabecera del datagrama IPv4

La unidad de datos de la capa de red en IPv4 es el datagrama, definido en la RFC 791. Su cabecera ocupa 20 bytes en el caso normal y puede llegar a 60 si lleva opciones, que es un campo variable que en la práctica casi nunca se usa.

CampoTamañoPara qué sirve
Versión4 bitsVale 4 en IPv4 y 6 en IPv6
IHL, longitud de cabecera4 bitsCuántas palabras de 32 bits ocupa la cabecera; por eso el máximo es 60 bytes
DSField8 bitsCampo de servicios diferenciados, para marcar el trato que merece el tráfico
Longitud total16 bitsCabecera más datos, en bytes; de ahí el límite de 65.535 bytes por datagrama
Identificación16 bitsMarca todos los fragmentos que salieron de un mismo datagrama
Indicadores3 bitsLos bits que controlan la fragmentación
Desplazamiento de fragmento13 bitsEn qué posición del original va este fragmento
Tiempo de vida (TTL)8 bitsSaltos que le quedan al datagrama
Protocolo8 bitsQué protocolo del nivel superior viaja dentro
Suma de comprobación de cabecera16 bitsDetecta errores en la cabecera, no en los datos
Dirección de origen32 bitsQuién envía
Dirección de destino32 bitsA quién va dirigido
Opciones y relleno0 a 40 bytesExtensiones poco habituales

Conviene fijarse en un detalle que cae: la suma de comprobación de IPv4 protege solo la cabecera. Los datos los comprueba, si acaso, la capa de transporte. Y como el TTL cambia en cada salto, esa suma hay que recalcularla en cada router, lo que la convirtió en un coste que IPv6 decidió eliminar.

Para el examen

  • Tamaño de la cabecera: 20 bytes sin opciones, hasta 60

  • Suma de comprobación: solo de la CABECERA, no de los datos

Fragmentación, MTU e indicadores

Cada tecnología de la capa de enlace impone un tamaño máximo de trama, la MTU. En Ethernet son 1.500 bytes de datos. Si un datagrama IP es mayor que la MTU del enlace por el que tiene que salir, hay que partirlo en trozos, y de eso se ocupa la propia capa de red mediante los tres campos que trabajan juntos: identificación, indicadores y desplazamiento.

IndicadorSignificadoEfecto
MF (más fragmentos)Vale 1 mientras vengan más trozos detrásA 0 en el último fragmento, y también cuando el datagrama no está fragmentado
DF (no fragmentar)Prohíbe partir este datagramaSi no cabe, el router lo descarta y avisa; es la base del descubrimiento de la MTU del camino

El reensamblado lo hace siempre la máquina de destino, nunca un router intermedio, porque los fragmentos pueden llegar por caminos distintos. Si se pierde un solo fragmento se pierde el datagrama entero, y por eso fragmentar es algo que se procura evitar.

Fragmentar lo puede hacer cualquier router del camino; reensamblar, solo el destino.

Para el examen

  • MTU típica de Ethernet: 1500 bytes

  • Bit DF a uno: el datagrama no se puede fragmentar

  • Qué hace el router entonces: lo descarta y avisa por ICMP

Dos campos que caen: TTL y Protocolo

El tiempo de vida, TTL, es un contador de saltos. Cada router que reenvía el datagrama le resta uno. Si al restar llega a cero, el router lo descarta y devuelve al origen un mensaje ICMP de tiempo excedido. Su razón de ser es que un error de encaminamiento no deje paquetes dando vueltas para siempre por un bucle.

El campo Protocolo dice qué viaja dentro del datagrama, es decir, a qué protocolo del nivel superior hay que entregarle los datos al desencapsular. Sus valores los asigna IANA y unos pocos se piden de memoria.

ValorProtocolo
1ICMP
2IGMP
6TCP
17UDP
50ESP, de IPsec
51AH, de IPsec
89OSPF

TCP es el 6 y UDP el 17. El TTL no mide tiempo pese a su nombre: cuenta saltos.

Para el examen

  • TTL: baja una unidad en cada router; a cero se descarta

  • Para qué sirve: evitar bucles infinitos

  • Campo Protocolo: 6 es TCP y 17 es UDP