Requisito previo: fragmentación y retrasos de datagramas IPv4
La capa de red realiza la fragmentación cuando el tamaño máximo del datagrama es mayor que el tamaño máximo de los datos que se pueden almacenar en una trama, es decir, su Unidad máxima de transmisión (MTU). La capa de red divide el datagrama recibido de la capa de transporte en fragmentos para que el flujo de datos no se interrumpa.
- Dado que hay 16 bits para la longitud total en el encabezado IP, el tamaño máximo del datagrama IP = 2 16 – 1 = 65, 535 bytes.
- Lo realiza la capa de red en el lado de destino y generalmente se realiza en los enrutadores.
- El lado de la fuente no requiere fragmentación debido a la sabia (buena) segmentación por capa de transporte, es decir, en lugar de realizar la segmentación en la capa de transporte y la fragmentación en la capa de red, la capa de transporte observa el límite de datos del datagrama y el límite de datos del marco y realiza la segmentación de tal manera que los datos resultantes puedan caber fácilmente en un marco sin necesidad de fragmentación.
- El receptor identifica la trama con el campo de identificación (16 bits) en el encabezado IP. Cada fragmento de un marco tiene el mismo número de identificación.
- El receptor identifica la secuencia de tramas utilizando el campo de compensación de fragmentos (13 bits) en el encabezado IP
- La sobrecarga en la capa de red está presente debido al encabezado adicional introducido debido a la fragmentación.
Campos en encabezado IP para fragmentación –
- Identificación (16 bits): se usa para identificar fragmentos del mismo marco.
- Desplazamiento de fragmentos (13 bits): úselo para identificar la secuencia de fragmentos en el marco. Generalmente indica una cantidad de bytes de datos que preceden o preceden al fragmento.
Desplazamiento de fragmento máximo posible = (65535 – 20) = 65515
{donde 65535 es el tamaño máximo del datagrama y 20 es el tamaño mínimo del encabezado IP}
Entonces, necesitamos ceil(log 2 65515) = 16 bits para un desplazamiento de fragmento pero el el campo de desplazamiento de fragmento tiene solo 13 bits. Entonces, para representar de manera eficiente, necesitamos reducir el campo de desplazamiento del fragmento en 2 16 /2 13 = 8, que actúa como un factor de escala. Por lo tanto, todos los fragmentos excepto el último fragmento deben tener datos en múltiplos de 8 para que el desplazamiento del fragmento sea ∈ N. - Más fragmentos (MF = 1 bit): indica si hay más fragmentos delante de este fragmento, es decir, si MF = 1, hay más fragmentos delante de este fragmento y si MF = 0, es el último fragmento.
- No fragmentar (DF = 1 bit): si no queremos que el paquete se fragmente, se establece DF, es decir, DF = 1.
Reensamblaje de Fragmentos –
Tiene lugar solo en el destino y no en los enrutadores, ya que los paquetes toman una ruta independiente (conmutación de paquetes de datagramas), por lo que es posible que no todos se encuentren en un enrutador y, por lo tanto, puede surgir nuevamente la necesidad de fragmentación. Los fragmentos también pueden llegar desordenados.
Algoritmo –
- El destino debe identificar que el datagrama está fragmentado de MF, campo Fragment offset.
- El destino debe identificar todos los fragmentos que pertenecen al mismo datagrama del campo Identificación.
- Identifique el primer fragmento (desplazamiento = 0).
- Identifique los fragmentos subsiguientes utilizando la longitud del encabezado, el desplazamiento del fragmento.
- Repetir hasta MF = 0.
Eficiencia –
Efficiency (e) = useful/total = (Data without header)/(Data with header) Throughput = e * B { where B is bottleneck bandwidth }
Ejemplo: un enrutador IP con una Unidad de transmisión máxima (MTU) de 200 bytes ha recibido un paquete IP de 520 bytes de tamaño con un encabezado IP de 20 bytes de longitud. Los valores de los campos relevantes en el encabezado IP.
Explicación: dado que la MTU es de 200 bytes y 20 bytes es el tamaño del encabezado, la longitud máxima de los datos = 180 bytes, pero no se puede representar en el desplazamiento de fragmentos ya que no es divisible por 8, por lo que la longitud máxima de los datos es factible = 176 bytes
Número de fragmentos = (520/200) = 3.
Longitud del encabezado = 5 (dado que el factor de escala es 4, por lo tanto, 20/4 = 5)
Eficiencia, e = (Datos sin encabezado)/(Datos con encabezado) = 500/560 = 89,2 %
GATE Pregunta de práctica –