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.
| Capa | Qué añade | Nombre del resultado |
|---|---|---|
| Aplicación | El mensaje tal como lo produce el programa | Datos o mensaje |
| Transporte | Puerto de origen y de destino, y el control de la entrega | Segmento (TCP) o datagrama (UDP) |
| Red | Dirección IP de origen y de destino | Paquete o datagrama IP |
| Enlace | Dirección MAC de origen y de destino, y una cola de comprobación | Trama |
| Física | Nada: convierte la trama en señal | Bits |
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.
- La capa física recompone los bits en una trama.
- 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.
- 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.
- La capa de transporte lee el puerto de destino, quita su cabecera y entrega los datos al proceso que está escuchando en ese puerto.
- 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.
| Campo | Tamaño | Para qué sirve |
|---|---|---|
| Versión | 4 bits | Vale 4 en IPv4 y 6 en IPv6 |
| IHL, longitud de cabecera | 4 bits | Cuántas palabras de 32 bits ocupa la cabecera; por eso el máximo es 60 bytes |
| DSField | 8 bits | Campo de servicios diferenciados, para marcar el trato que merece el tráfico |
| Longitud total | 16 bits | Cabecera más datos, en bytes; de ahí el límite de 65.535 bytes por datagrama |
| Identificación | 16 bits | Marca todos los fragmentos que salieron de un mismo datagrama |
| Indicadores | 3 bits | Los bits que controlan la fragmentación |
| Desplazamiento de fragmento | 13 bits | En qué posición del original va este fragmento |
| Tiempo de vida (TTL) | 8 bits | Saltos que le quedan al datagrama |
| Protocolo | 8 bits | Qué protocolo del nivel superior viaja dentro |
| Suma de comprobación de cabecera | 16 bits | Detecta errores en la cabecera, no en los datos |
| Dirección de origen | 32 bits | Quién envía |
| Dirección de destino | 32 bits | A quién va dirigido |
| Opciones y relleno | 0 a 40 bytes | Extensiones 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.
| Indicador | Significado | Efecto |
|---|---|---|
| MF (más fragmentos) | Vale 1 mientras vengan más trozos detrás | A 0 en el último fragmento, y también cuando el datagrama no está fragmentado |
| DF (no fragmentar) | Prohíbe partir este datagrama | Si 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.
| Valor | Protocolo |
|---|---|
| 1 | ICMP |
| 2 | IGMP |
| 6 | TCP |
| 17 | UDP |
| 50 | ESP, de IPsec |
| 51 | AH, de IPsec |
| 89 | OSPF |
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