lunes, 4 de julio de 2011

Encapsulado y formato de datagramas IP. (Selecciones, parte siete)

Aquí está ya la séptima entrega de las Selecciones de la Guía, correspondiente al encapsulado y el formato de los datagramas IP. El encapsulado (y reencapsulado) es un proceso que repiten varias de las capas del modelo OSI, o del modelo TCP/IP para decirlo con propiedad, finalmente OSI no es una implementación en si, solo una norma, y TCP/IP es la implementación propiamente dicha. Es el  proceso que posibilita que las capas de igual nivel en los dos lados de la transmisión se "hablen" sin problemas. Pero no solo trata esta sección de esto, así que entremos en materia. El capítulo original inicia aquí y concluye aquí. Hoy es lunes (de redes) y es una muy buena manera de iniciar la semana, así pues, provecho! 


Contenido:
2.2- Encapsulado y formato de datagramas IP.
2.2.1- Encapsulado de datagramas IP.
2.2.2- Formato general del datagrama IP.
2.2.3- Opciones del datagrama IP y formato de opciones.


El trabajo principal del Protocolo de Internet es la entrega de datos entre dispositivos a través de una interconexión de redes. En su viaje entre dos hosts en una Internet, estos datos pueden viajar a través de muchas redes físicas. Para ayudar a asegurar que los datos sean enviados y recibidos correctamente, se encapsulan en un mensaje llamado datagrama IP. Este datagrama incluye varios campos que ayudan a controlar el funcionamiento del protocolo IP y asegurarse de que los datos lleguen adonde tienen que ir.
En esta sección echaremos un vistazo a cómo el protocolo de Internet toma los datos que le pasan las capas superiores y los empaqueta para su transmisión. Empiezo con una discusión general de los datagramas IP y el encapsulado. Luego describo el formato general de los datagramas IP, incluyendo los campos utilizados en la cabecera IP y la forma en que se interpretan. También incluyo un breve análisis de las opciones de datagramas IP y su utilización.

Antecedentes: Esta sección supone al menos cierta familiaridad con los conceptos de direccionamiento IP.También hace referencia a la sección de fragmentación y reensamblaje de datagramas.

Nota: Los datagramas IP a veces se llaman paquetes IP. Establecer si "datagrama" o "paquete" es el término preferido parece depender de a quién se le pregunte, incluso las normas no utilizan ninguno de los dos términos exclusivamente. Por otro lado, he visto llamar a los datagramas IP marcos IP (IP frames en el original) lo cual definitivamente no es correcto!El tema de los mensajes y los nombres en el capítulo de fundamentos describen estos términos de manera más completa.

En el capítulo que describe el modelo de referencia OSI, vimos las variadas formas en que los protocolos en las distintas capas de la pila de protocolos de red interactúan unos con otros. Uno de los conceptos más importantes en la operación entre los protocolos es el encapsulado. La mayoría de los datos se originan en las capas superiores del modelo OSI. Los protocolos en estas capas pasan los datos hacia las capas inferiores para su transmisión, por lo general en forma de mensajes discretos. Tras la recepción, cada protocolo de nivel inferior toma todo el contenido del mensaje recibido y lo encapsula en su propio formato de mensaje, agrega un encabezado (header) y, posiblemente, una terminación que contienen información de control importante. El encapsulado se explica en términos generales en un tema aparte.

Una buena analogía de cómo funciona la encapsulación es la comparación con el envío de una carta en un sobre. Usted puede escribir una carta y la pone en un sobre blanco con un nombre y una dirección, pero si se lo entrega a un mensajero para entrega al día siguiente, tomarían el sobre y lo pondrían en un sobre de entrega mayor. (De hecho, he escrito una descripción completa de este tipo de analogía, por si le interesa.)

Debido a la importancia de TCP/IP, el Protocolo de Internet es uno de los sitios más importantes en los que ocurre el encapsulado de datos en una red moderna. Los datos se pasan al protocolo IP por lo general desde uno de los dos principales protocolos de la capa de transporte: TCP o UDP. Estos datos ya se encuentran en la forma de un mensaje TCP o UDP con las correspondientes cabeceras TCP o UDP. Esto entonces se encapsula en el cuerpo de un mensaje IP, generalmente llamado datagrama IP o paquete IP. El encapsulado y formato de un datagrama IP es también llamado a veces reempaquetado, nuevamente, la comparación implícita con un sobre es obvia. El proceso se muestra en la Figura 85.
Figura 85: Encapsulado de datagramas.
Clic para ampliar.
Esta es una adaptación de la Figura 15, el mismo dibujo muy similar al modelo de referencia OSI en su conjunto, mostrando especialmente cómo el encapsulado de datos se lleva a cabo en TCP/IP. Como puede ver, el mensaje de una capa superior, está contenido en un mensaje TCP o UDP. Esto se convierte en la carga (payload) de un datagrama IP, que se muestra aquí simplemente con una cabecera (las cosas pueden complicarse un poco mas que esto.) El datagrama IP se transmite a la capa 2 en la que a su vez se encapsula en una especie de marco (frame) LAN, WAN o WLAN, y luego se convierte en bits y se transmite a la capa física.


Si el mensaje a transmitir es demasiado grande para el tamaño de la red subyacente, antes puede ser fragmentado. Esto es similar a dividir grandes cantidades de objetos en varios sobres o cajas más pequeñas. En este caso, cada datagrama IP lleva sólo una parte del mensaje de las capas superiores. El dispositivo receptor debe reensamblar el mensaje de los datagramas IP. Por lo tanto, un datagrama no siempre transporta un mensaje de las capas superiores completamente, sino que puede llevar sólo una parte de este.

El datagrama IP es similar en concepto a un marco (frame) usado en Ethernet u otra capa de enlace de datos. La diferencia importante, por supuesto, es que los datagramas IP están diseñados para facilitar la transmisión a través de una interconexión de redes, mientras que los marcos (frames) en la capa de enlace de datos sólo se utilizan para la entrega directa dentro de una red física. Los campos incluidos en la cabecera IP se utilizan para gestionar la entrega de datagramas en una interconexión de redes. Esto incluye información clave para la entrega, como la dirección del dispositivo de destino, la identificación del tipo de marco, y los bits de control.La cabecera sigue un formato específico descrito en el siguiente tema.

Después que los datos se encapsulan en un datagrama IP, se transmiten a la capa de enlace de datos para su transmisión a través del "salto" (hop) correspondiente de la red interna. Hay, por supuesto, un encapsulado adicional, cabecera IP y todo lo demás, en un "marco" (frame, finalmente una trama ndt) de la capa de enlace de datos como una trama Ethernet. Un datagrama IP pueden ser encapsulados en muchas tramas de datos de la capa de enlace, a medida que atraviesa la red interna, en cada salto (hop) el datagrama IP se retira de la trama de la capa de enlace de datos y luego es reempaquetado en una nueva para el siguiente salto. Los datagramas IP, sin embargo, no se cambian (a excepción de algunos campos de control) hasta que lleguen a su destino final.

Los datos transmitidos por Internet usando el protocolo IP son transportados en mensajes llamados datagramas IP. Al igual que todos los mensajes del protocolo de red, IP utiliza un formato específico para sus datagramas. Por supuesto aquí estamos viendo la version 4 del protocolo y así vamos a examinar el formato de datagrama IPv4, que se definió en la RFC 791 junto con el resto del protocolo.
El datagrama IPv4 se divide conceptualmente en dos partes: la cabecera y la carga útil (payload). La cabecera contiene los campos de direccionamiento y control, mientras que la carga lleva los datos reales que se envían a través de la red interna. A diferencia de otros formatos de mensaje, los datagramas IP no tiene una terminación después de la carga útil.
A pesar de que IP es un protocolo relativamente simple, no orientado a conexión, y "no fiable", la cabecera IPv4 lleva una buena cantidad de información, lo cual hace que sea bastante grande. Como mínimo, es de 20 bytes de longitud, y con opciones pueden ser mucho mayor. El formato del datagrama IP se describe en la Tabla 56 y se ilustra en la Figura 86.
Tabla 56 (primera parte): Formato de datagrama IPv4 (Clic para ampliar)
Tabla 56 (segunda parte): Formato de datagrama IPv4 (Clic para ampliar)
Subtabla "a". Clic para ampliar
Subtabla "B". Clic para ampliar.
Figura 86: Formato del datagrama IPv4. (Clic para ampliar).
Este diagrama muestra gráficamente el importante formato de datagramas de IPv4. Los primeros 20 bytes son la cabecera (header) IP fija, seguido por una sección de opcional de opciones, y un área de datos de longitud variable. Tenga en cuenta que el campos de tipo de servicio (TOS Type Of Service) se muestra como se definió originalmente en el estándar IPv4.

Esta es una tabla muy grande, porque el formato del datagrama IP es muy importante y tiene un montón de campos que necesitan explicación. Para evitar que se alargara aun mas, me decidí a excluir algunas de las descripciones más complejas.


Campo de TTL (Time To Live).
Dado que los datagramas IP son enviados entre routers a medida que viajan a través de una interconexión de redes, es posible que una situación pueda resultar en un datagrama que se transmite desde el router A al router B luego al C y de nuevo al A. No se supone que sucedan lazos entre los routers, y raramente suceden, pero son posibles.

Para asegurarse de que los datagramas no viajan en círculos sin cesar, el campo TTL estaba destinado a ser llenado con un valor de tiempo (en segundos) cuando un datagrama fue enviado originalmente. LOs Routers disminuirían el valor de tiempo periódicamente y, si es que alguna vez llegaba a cero, el datagrama sería destruido. Este campo también se consideró para ser usado con el propósito de asegurar que los datagramas críticos en tiempo no permanecieran mas allá del tiempo en el que ya se volvieran obsoletos
En la práctica, este campo no se utiliza exactamente de esta manera. Los routers de hoy son rápidos y suelen emplear menos de un segundo en transmitir un datagrama, de modo que medir el tiempo que vida de un datagrama no sería práctico. En cambio, este campo se utiliza como un "número máximo de saltos" para el datagrama. Cada vez que un router procesa un datagrama, reduce el valor del campo TTL en uno. Si al hacer esto el campo alcanza un valor de cero, el datagrama se dice que ha expirado. Se descarta, y por lo general un mensaje ICMP de tiempo excedido es enviado para informar al remitente del mensaje de que esto ha sucedido.

El campo TTL es uno de los principales mecanismos por los que las redes están protegidas de los bucles en los router (ver la descripción de los mensajes ICMP de tiempo excedido para más información sobre cómo ayuda TTL a IP a manejar los bucles de router.)

Campo de tipo de Servicio (TOS Type Of Service).
Este campo de un byte fue pensado originalmente para proporcionar ciertas características de calidad de servicio en la entrega de datagramas IP. Permitía que los datagramas IP fueran etiquetados con información que indica no sólo su prioridad, sino la forma preferida en la cual debían ser entregados. Se divide en una serie de subcampos, como se muestra en la Tabla 57 (y en la Figura 86).
La falta de propiedades de calidad de servicio ha sido considerado como una debilidad de IP durante mucho tiempo. Pero como podemos ver en la Tabla 57, estas características fueron incluidas en el protocolo desde el principio. ¿Qué ha pasado aquí? La respuesta es que a pesar de que este campo se definió en la norma en la década de 1980, no fue ampliamente utilizada por el hardware y software. Durante años, simplemente fue rellenado con ceros e ignorado la mayor parte del tiempo.
Tabla 57: Definición original del campo de TOS en IPv4. (Clic para ampliar)
El IETF, viendo que el campo estaba en desuso, intentó revivir su uso. En 1998, la RFC 2474 redefine los seis primeros bits del campo TOS para soportar una técnica llamada de Servicios Diferenciados (DS Differentiated Services). En DS, los valores en el campo TOS se llaman puntos de código y están asociados con diferentes niveles de servicio. Esto empieza a ser bastante complicado, por lo que pueden referirse a la RFC 2474 si desean revisar todos los detalles.

Entender el formato de datagrama IP es una parte importante de la solución de problemas de redes IP. Asegúrese de ver el siguiente tema sobre las opciones para obtener más información sobre cómo se utilizan las opciones IP en los datagramas, y el tema de la fragmentación para contextualizar mas en el uso de los campos relacionados a la fragmentación con el de Identificación, el desplazamiento (offset) del fragmento, y el de Fragmentos adicionales.

Cada datagrama IP debe incluir la cabecera (header) estándar de 20 bytes, que contiene información clave, tales como la dirección de origen y destino de los datagramas, los parámetros de control de fragmentación, la información de longitud y más. Además de estos campos invariables, los creadores de IPv4 incluyeron la posibilidad de añadir opciones que proporcionan una mayor flexibilidad en la forma en que IP maneja los datagramas. El uso de estas opciones es, por supuesto, opcional. Sin embargo, todos los dispositivos que procesan datagramas IP debe ser capaces de leerlos y manejarlos correctamente.

El datagrama IP puede contener cero, una o más opciones, lo que hace que la longitud total del campo de opciones en la cabecera IP sea variable. Cada una de las opciones puede tener uno o varios bytes de longitud, dependiendo de la cantidad de información que la opción tiene que transmitir. Cuando se incluye más de una opción simplemente son concatenadas y se ponen en el campo de opciones como un todo. Dado que la cabecera IP debe ser un múltiplo de 32 bits, se incluye un campo de relleno si el número de bits de todas las opciones en conjunto no es un múltiplo de 32 bits.

Formato de opciones IP
Cada opción tiene su propio subcampo de formato, generalmente estructurado como se muestra en la Tabla 58 y la Figura 87. Para la mayoría de las opciones, se utilizan los tres subcampos: Opción Tipo, Opción de longitud y Opción de datos. Para algunas opciones simples, sin embargo, esta infraestructura compleja, no es necesaria. En estos casos, la Opción de Tipo en si comunica toda la información requerida, por lo que el campo de Opción de Tipo se presenta solo, mientras que los subcampos de Opción de Longitud y Opción de datos se omiten.
Tabla 58:Formato de opciones IPv4. (Clic para ampliar)
Figura 87: Formato de opciones IPv4 (Clic para ampliar)
Este diagrama muestra el formato de campo completo para una opción IPv4. Tenga en cuenta que algunas opciones simples puede consistir sólo del subcampo de Opción de Tipo, omitiendo los subcampos de Opción de Longitud y Opción de Datos.


Opciones IP
La tabla 59 enumera las opciones más comunes de IPv4, mostrando la clase de Opción, el número de Opción y la duración de cada una (una longitud de 1 indica una opción que sólo consta de un campo de Opción de tipo), y una breve descripción de cómo se utiliza cada una.
Tabla 59: Opciones de IPv4. Clic para ampliar

Concepto clave: Cada datagrama IPv4 tiene una cabecera obligatoria de 20 bytes, y puede también incluir una o más opciones. Cada opción tiene su propio campo de formato, y la mayoría son de tamaño variable.


Opciones IP y enrutamiento de origen.
Normalmente, los datagramas IP son enrutados sin instrucciones específicas de los dispositivos con respecto a la ruta que un datagrama debe tomar desde el origen hacia su destino. Es trabajo de los routers, utilizando protocolos de enrutamiento, averiguar estos detalles. En algunos casos, sin embargo, puede ser ventajoso que el origen de un datagrama especifique la ruta de un datagrama lleva a través de la red. Esto se conoce como enrutamiento de origen.

Hay dos opciones de IP que soportan el enrutamiento de origen. En cada una, la opción incluye una lista de direcciones IP que especifica los routers que deben ser utilizados, para llegar al destino. Cuando se utiliza el enrutamiento de origen estricto, esto significa que la ruta especificada en la opción se debe utilizar exactamente, en secuencia, sin permitir que otros routers manejen de ningún modo el datagrama. En contraste, el enrutamiento de origen libre especifica una lista de direcciones IP que se deben seguir en secuencia, pero permite que intervengan saltos (hops) entre los dispositivos de la lista.

Para más detalles sobre la estructura exacta que utiliza cada tipo de opción, por favor consulte el RFC 791.
Regresar al contenido