Protocolo IP: qué es, para qué sirve, características...
El protocolo IP es parte de la capa de Internet del conjunto de protocolos TCP/IP. Es uno de los protocolos de Internet más importantes, ya que permite el desarrollo y transporte de datagramas de IP (paquetes de datos), aunque sin garantizar su entrega. En realidad, el protocolo IP procesa datagramas de IP de manera independiente al definir su representación, ruta y envío.
¿Para qué sirve el protocolo IP?
El protocolo IP determina el destinatario del mensaje mediante 3 campos: el campo de dirección IP (dirección del equipo); el campo de máscara de subred, que permite al protocolo IP establecer la parte de la dirección IP que se relaciona con la red; el campo de pasarela predeterminada, que permite al protocolo de Internet saber a qué equipo enviar un datagrama si el equipo de destino no se encuentra en la red de área local.
¿Qué es un datagrama?
Los datos circulan en Internet en forma de datagramas (también conocidos como paquetes). Los datagramas son datos encapsulados, es decir, datos a los que se les agrega un encabezado que contiene información sobre su transporte (como la dirección IP de destino). Los routers analizan (y eventualmente modifican) los datos contenidos en un datagrama para que puedan transitar. A continuación, un ejemplo de un datagrama:
32 bits | ||||
---|---|---|---|---|
Versión (4 bits) | Longitud del encabezado (4 bits) | Tipo de servicio (8 bits) | Longitud total (16 bits) | |
Identificación (16 bits) | Indicador (3 bits) | Margen del fragmento (13 bits) | ||
Tiempo de vida (8 bits) | Protocolo (8 bits) | Suma de comprobación del encabezado (16 bits) | ||
Dirección IP de origen (32 bits) | ||||
Dirección IP de destino (32 bits) | ||||
Datos |
A continuación el significado de los diferentes campos:
- Versión (4 bits): es la versión del protocolo IP que se está utilizando (actualmente se utiliza la versión 4 IPv4) para verificar la validez del datagrama. Está codificado en 4 bits.
- Longitud del encabezado o IHL (Internet Header Length, longitud del encabezado de Internet) (4 bits): es la cantidad de palabras de 32 bits que componen el encabezado (Importante: el valor mínimo es 5). Este campo está codificado en 4 bits.
- Tipo de servicio (8 bits): indica la forma en la que se debe procesar el datagrama.
- Longitud total (16 bits): indica el tamaño total del datagrama en bytes. El tamaño de este campo es de 2 bytes, por lo tanto el tamaño total del datagrama no puede exceder los 65.536 bytes. Si se lo utiliza junto con el tamaño del encabezado, este campo permite determinar dónde se encuentran los datos.
- Identificación, indicadores y margen del fragmento: son campos que permiten la fragmentación de datagramas. Esto se explica a continuación.
- TTL o Tiempo de vida (8 bits): este campo especifica el número máximo de routers por los que puede pasar un datagrama. Por lo tanto, este campo disminuye con cada paso por un router y cuando alcanza el valor crítico de 0, el router destruye el datagrama. Esto evita que la red se sobrecargue de datagramas perdidos.
- Protocolo (8 bits): este campo, en notación decimal, permite saber de qué protocolo proviene el datagrama. Por ejemplo, ICMP: 1, IGMP: 2, TCP: 6, UDP: 17.
- Suma de comprobación del encabezado (16 bits): este campo contiene un valor codificado en 16 bits que permite controlar la integridad del encabezado para establecer si se ha modificado durante la transmisión. La suma de comprobación es la suma de todas las palabras de 16 bits del encabezado (se excluye el campo suma de comprobación). Esto se realiza de tal modo que cuando se sumen los campos de encabezado (suma de comprobación incluida), se obtenga un número con todos los bits en 1.
- Dirección IP de origen (32 bits): este campo representa la dirección IP del equipo remitente y permite que el destinatario responda.
- Dirección IP de destino (32 bits): dirección IP del destinatario del mensaje.
¿En qué consiste la fragmentación de datagramas IP?
Como se ha visto anteriormente, el tamaño máximo de un datagrama es de 65.536 bytes. Sin embargo, este valor nunca es alcanzado porque las redes no tienen suficiente capacidad para enviar paquetes tan grandes. Además, las redes en Internet utilizan diferentes tecnologías por lo tanto el tamaño máximo de un datagrama varía según el tipo de red. El tamaño máximo de una trama se denomina MTU (Unidad de transmisión máxima). El datagrama se fragmentará si es más grande que la MTU de la red.
Tipo de red | MTU (en bytes) |
---|---|
Arpanet | 1.000 |
Ethernet | 1.500 |
FDDI | 4.470 |
La fragmentación del datagrama se lleva a cabo a nivel de router, es decir, durante la transición de una red con una MTU grande a una red con una MTU más pequeña. Si el datagrama es demasiado grande para pasar por la red, el router lo fragmentará, es decir, lo dividirá en fragmentos más pequeños que la MTU de la red, de manera tal que el tamaño del fragmento sea un múltiplo de 8 bytes.
El router enviará estos fragmentos de manera independiente y los volverá a encapsular (agregar un encabezado a cada fragmento) para tener en cuenta el nuevo tamaño del fragmento. Además, el router agrega información para que el equipo receptor pueda rearmar los fragmentos en el orden correcto. Sin embargo, no hay nada que indique que los fragmentos llegarán en el orden correcto, ya que se enrutan de manera independiente. Para tener en cuenta la fragmentación, cada datagrama cuenta con diversos campos que permiten su rearmado:
- campo Margen del fragmento (13 bits): campo que brinda la posición del comienzo del fragmento en el datagrama inicial. La unidad de medida para este campo es 8 bytes (el primer fragmento tiene un valor cero).
- campo Identificación (16 bits): número asignado a cada fragmento para permitir el rearmado.
- campo Longitud total (16 bits): esto se vuelve a calcular para cada fragmento.
- campo Indicador (3 bits): está compuesto de tres bits: el primero no se utiliza; el segundo denominado DF (Don' t Fragment, no fragmentar) indica si se puede fragmentar el datagrama o no. Si el datagrama tiene este bit en uno y el router no puede enrutarlo sin fragmentarlo, el datagrama se rechaza con un mensaje de error; el tercero denominado MF (More Fragments, más fragmentos) indica si el datagrama es un fragmento de datos (1). Si el indicador se encuentra en cero, esto indica que el fragmento es el último (entonces el router ya debe contar con todos los fragmentos anteriores) o que el datagrama no se ha fragmentado.
¿En qué consiste el enrutamiento IP?
El enrutamiento IP es una parte integral de la capa de Internet del conjunto TCP/IP. Este consiste en asegurar el envío de un datagrama IP a través de la red por la ruta más corta. A esta función la llevan a cabo los equipos denominados routers, es decir, equipos que conectan al menos dos redes.