El Datagrama IPFormato de un datagrama IP.
El formato general de un datagrama IP es: Datagrama IP.
Estudiamos sus campos
uno a uno: Versión:
Los protocolos
evolucionan y cambian con el tiempo. Por esto, es conveniente saber con qué
versión se ha generado un datagrama. Longitud:
Es la longitud de la
cabecera medida en palabras de 32 bits. Puesto que este campo tiene 4 bits la
longitud máxima de la cabecera es de 64 octetos. Servicio:
Lo rellena quien envía
el datagrama. Su utilidad actual es muy escasa, pero irá aumentando en la
medida en que se empleen diferentes tipos de tráfico. Su formato es: Campo
servicio. donde: PRIO: Se utiliza en
casos de congestión. D: Dar prioridad al
retardo. T: Dar prioridad al
throughput. R: Dar prioridad a la
fiabilidad. C: Dar prioridad al
coste. La norma específica que
sólo se puede poner a ´1´ uno de los campos D, T, R y C. Con esto, el usuario
decide a qué quiere dar prioridad para su mensaje. Longitud total:
Es la longitud total del
mensaje en octetos incluida la cabecera. Por ser un campo de 16 bits permite una
longitud de hasta 65535 octetos. Campos de segmentación
y reensamblado: Supongamos la siguiente situación: Segmentación y
reensamblado.
Analicemos detenidamente
lo que ocurre cuando Host1 envía un datagrama con1400 octetos de datos a Host2.
Se genera el datagrama: Segmentación y
reensamblado. El datagrama se envía y
llega hasta el router1. Este advierte que ha de reenviar el datagrama de 1420
octetos por una red en la que el tamaño máximo es de 620 octetos. Por tanto,
antes de reenviar, procede a segmentar generando tres datagramas del original
que respeten la longitud máxima: Segmentación y
reensamblado. Los campos de la
cabecera que se utilizan son: Identificador:
numero de secuencia. Es el mismo para todos los datagramas generados al
segmentar e igual al del datagrama original. Offset:
posición de los datos del datagrama segmentado en el original. (Se cuenta por
octetos) Flags:
Son los siguientes: Flags.
El único que nos va a
interesar es MF. Éste se pone a ´0´ si el datagrama es el último fragmento
de una segmentación. En caso contrario estará a ´1´ 1.
En nuestro ejemplo el router rellena estos campos con los siguientes
valores: Segmentación y
reensamblado.
Estos tres datagramas
son enviados hasta el Host2 donde se reensambla el datagrama original. ¿Por qué
no se reensambla en el router2? Para responder esta pregunta basta con recordar
que IP es no orientado a conexión y por ello al Host2 podría llegarse por dos
Routers diferentes. Por el hecho de que IP
es, además, no fiable al llegar el primer fragmento se disparará un TIMER. Si
transcurrido un tiempo no han llegado todos los fragmentos se descartan los que
sí lo hayan hecho. TTL: o Time To Life.Limita el tiempo que un
datagrama puede pasar en la red. TTL se decrementa en una unidad cada vez que
pasa por un router si todo va bien, o en una unidad por segundo en el router si
hay congestión. Al llegar a cero el datagrama es descartado. Protocolo: Especifica qué
protocolo está por encima de IP: TCP, UDP o ICMP que se explicará
posteriormente. Checksum:
Es el resultado de
aplicar un código de protección de errores a la cabecera con los bits del
campo checksum puestos a cero. Normalmente, se suman todos los bits de la
cabecera, se complementa la suma a uno y se pone el resultado en checksum. Este
campo se modifica en cada router por decrementarse el campo TTL. Opciones:
En este campo se
especifican algunas opciones de las que se puede hacer uso. Por ejemplo, una de
ellas es la denominada registro de ruta. Si se emplea esta opción todos los
Routers por los que pase el datagrama copiarían en su campo de opciones su
dirección. (Como máximo este campo puede tener 40 octetos, es decir, 10
direcciones.) |