IPv4
9. PROTOCOLO IP
9.16. Fragmentación y reensamblado
En IPv4, la fragmentación y el reensamblado son procesos que permiten dividir un paquete IP grande en fragmentos más pequeños cuando debe atravesar redes con distintos tamaños máximos de trama (MTU, Maximum Transmission Unit).
1 Motivo de la fragmentación
Cada enlace físico tiene o podría tener un tamaño máximo de paquete que puede transportar (MTU).
Por ejemplo:
| Enlace | MTU típica |
|---|---|
| Ethernet | 1500 bytes |
| PPPoE | 1492 bytes |
| Wi-Fi | 2304 bytes |
2. Dónde ocurre la fragmentación
En algún lugar del camino ( en capa 3) donde el router determine que el MTU de la Interfaz de salida es menor que el MTU de las interfaz de salida.- campo Flags
- Offset
- FCS
Campos del encabezado IP implicados
- Identification (16 bits) Identifica a qué datagrama original pertenece el fragmento. Todos los fragmentos del mismo paquete tienen el mismo valor.
- Flags (3 bits) Controla la fragmentación:
- – Bit 0: reservado (0)
- – Bit 1: DF (Don’t Fragment)
- – Bit 2: MF (More Fragments): 1 si hay más fragmentos después, 0 en el último.
- Fragment Offset (13 bits) Indica la posición del fragmento dentro del datagrama original, en unidades de 8 bytes.
¿Cómo se fragmenta?
Supongamos que un datagrama IP tiene 4000 bytes de carga útil (sin contar los 20 bytes del encabezado IP), y debe atravesar una red con MTU 1500. Cada fragmento deberá ser menor o igual a 1500 bytes incluyendo el encabezado IP.
Por tanto:
-
Máximo de datos por fragmento: 1480 bytes (1500 – 20).
-
Como el offset se mide en múltiplos de 8 bytes, cada fragmento debe tener un tamaño de datos múltiplo de 8.
| Fragmento | Datos | Offset | bit MF |
|---|---|---|---|
| 1 | 1480 bytes | 0 | 1 |
| 2 | 1480 bytes | 185 (1480/8) | 1 |
| 3 | 1040 bytes | 370 (2960/8) | 0 |
- Cada fragmento lleva su propio encabezado IP con el mismo Identification.
- Ver que debo recalcular el FCS luego de generar en datagrama fragmentado.
Reensamblado
El receptor final (nunca los routers intermedios) es quien:
-
Recibe los fragmentos.
-
Los ordena según el offset.
-
Reconoce el último porque su MF = 0.
-
Reconstruye el datagrama original concatenando los datos.
Si falta algún fragmento o no llega dentro del tiempo de espera, se descarta todo el datagrama.
Problemas comunes
-
Retransmisión costosa: si un fragmento se pierde, hay que reenviar todo el datagrama.
-
Ataques de fragmentación: se puede usar para evadir cortafuegos o IDS.
-
Mayor carga de procesamiento en el receptor.
Por eso, hoy en día se prefiere evitarla usando Path MTU Discovery IPv6, donde el emisor detecta el MTU más bajo del camino y ajusta el tamaño de los paquetes.