1.4 Fragmentación

La fragmentación de un datagrama IP es necesaria cuando el tamaño de un datagrama resulta intratable para alguna de las redes que debe atravesar para llegar a su destino.

El campo identificador es usado junto con los de dirección origen, dirección destino y protocolo, para identificar fragmentos a reensamblar. El módulo internet del origen del paquete debe asignar un identificador único para cada datagrama, que el destino usa para identificar a que datagramas originales pertenecen que fragmento.

El flag más fragmentos, está a 1 si el datagrama no es el último fragmento. El campo offset de fragmento identifica la localización del fragmento en el datagrama original, indicando el desplazamiento sobre su comienzo.

La estrategia de fragmentación está diseñada para que un datagrama sin fragmentar tenga toda la información relativa a fragmentación a 0's (mas fragmentos = 0, offset fragmento = 0). Si un datagrama es fragmentado, todos sus fragmentos (menos el último) deben de estar alineados a 8 octetos (su longitud en bits debe ser múltiplo de 64).

Para fragmentar un datagrama internet, un módulo internet crea n nuevos datagramas y copia los contenidos de la cabecera a todos ellos. El campo datos del datagrama original es dividido en n partes, las cuales deben estar alineadas a 8 octetos. La primera porción de datos se copia en el primer datagrama generado, y se cambia su campo longitud, haciéndolo coincidir con la longitud del primer datagrama. El flag más fragmentos es puesto a 1. La segunda porción de datos es copiada en el segundo datagrama, se cambia su campo longitud y más fragmentos de forma similar, y se especifica el desplazamiento en el campo offset de fragmento.

Este proceso se repite hasta el último fragmento generado, que tendra el flag más fragmentos a 0, y que no deberá estar alineado a 8 octetos necesariamente.

Para reensamblar los fragmentos, el módulo internet en el destino, combina los fragmentos que tengan el mismo valor en los campos identificador, dirección origen, dirección destino y protocolo. La recombinación se hace copiando la parte de datos de cada fragmento en la posición relativa indicada en el campo offset de fragmento. El primer fragmento deberá tener el campo offset de fragmento a cero, y el último fragmento el flag más fragmentos a cero.


[INDICE | INDICE RESUMIDO | SIGUIENTE | ANTERIOR]