sábado, 25 de octubre de 2008

La función del protocolo IP

La función del protocolo IP

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.

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: una máscara de subred le permite al protocolo IP establecer la parte de la dirección IP que se relaciona con la red;
  • el campo de pasarela predeterminada: le 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.

Datagramas

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 se indica cómo se ve 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 se indican los significados 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 por 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 65536 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.
    • 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 suman los campos de encabezado (suma de comprobación inclusive), 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.

Fragmentación de datagramas de IP

Como se ha visto anteriormente, el tamaño máximo de un datagrama es de 65536 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 redMTU (en bytes)
Arpanet1000
Ethernet1500
FDDI4470

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 DFNo 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 MFMá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.

Enrutamiento IP

El enrutamiento IP es una parte integral de la capa de Internet del conjunto TCP/IP. El enrutamiento consiste en asegurar el enrutamiento de un datagrama de 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.

Más información

Para obtener más información sobre el protocolo ICMP, consulte la RFC (petición de comentarios) 791, que explica el protocolo IP en detalle:

¿Qué significa TCP/IP?

¿Qué significa TCP/IP?

TCP/IP es un conjunto de protocolos. La sigla TCP/IP significa "Protocolo de control de transmisión/Protocolo de Internet" y se pronuncia "T-C-P-I-P". Proviene de los nombres de dos protocolos importantes del conjunto de protocolos, es decir, del protocolo TCP y del protocolo IP.

En algunos aspectos, TCP/IP representa todas las reglas de comunicación para Internet y se basa en la noción de dirección IP, es decir, en la idea de brindar una dirección IP a cada equipo de la red para poder enrutar paquetes de datos. Debido a que el conjunto de protocolos TCP/IP originalmente se creó con fines militares, está diseñado para cumplir con una cierta cantidad de criterios, entre ellos:

El conocimiento del conjunto de protocolos TCP/IP no es esencial para un simple usuario, de la misma manera que un espectador no necesita saber cómo funciona su red audiovisual o de televisión. Sin embargo, para las personas que desean administrar o brindar soporte técnico a una red TCP/IP, su conocimiento es fundamental.

La diferencia entre estándar e implementación

En general, TCP/IP relaciona dos nociones:

  • la noción de estándar: TCP/IP representa la manera en la que se realizan las comunicaciones en una red;
  • la noción de implementación: la designación TCP/IP generalmente se extiende a software basado en el protocolo TCP/IP. En realidad, TCP/IP es un modelo cuya aplicación de red utilizan los desarrolladores. Las aplicaciones son, por lo tanto, implementaciones del protocolo TCP/IP.

TCP/IP es un modelo de capas

Para poder aplicar el modelo TCP/IP en cualquier equipo, es decir, independientemente del sistema operativo, el sistema de protocolos TCP/IP se ha dividido en diversos módulos. Cada uno de éstos realiza una tarea específica. Además, estos módulos realizan sus tareas uno después del otro en un orden específico, es decir que existe un sistema estratificado. Ésta es la razón por la cual se habla de modelo de capas.

El término capa se utiliza para reflejar el hecho de que los datos que viajan por la red atraviesan distintos niveles de protocolos. Por lo tanto, cada capa procesa sucesivamente los datos (paquetes de información) que circulan por la red, les agrega un elemento de información (llamado encabezado) y los envía a la capa siguiente.

El modelo TCP/IP es muy similar al modelo OSI (modelo de 7 capas) que fue desarrollado por la Organización Internacional para la Estandarización (ISO) para estandarizar las comunicaciones entre equipos.

Presentación del modelo OSI

OSI significa Interconexión de sistemas abiertos. Este modelo fue establecido por ISO para implementar un estándar de comunicación entre equipos de una red, esto es, las reglas que administran la comunicación entre equipos. De hecho, cuando surgieron las redes,cada fabricante contaba con su propio sistema (hablamos de un sistema patentado), con lo cual coexistían diversas redes incompatibles. Por esta razón, fue necesario establecer un estándar.

La función del modelo OSI es estandarizar la comunicación entre equipos para que diferentes fabricantes puedan desarrollar productos (software o hardware) compatibles (siempre y cuando sigan estrictamente el modelo OSI).

La importancia de un sistema de capas

El objetivo de un sistema en capas es dividir el problema en diferentes partes (las capas), de acuerdo con su nivel de abstracción.

Cada capa del modelo se comunica con un nivel adyacente (superior o inferior). Por lo tanto, cada capa utiliza los servicios de las capas inferiores y se los proporciona a la capa superior.

El modelo OSI

El modelo OSI es un modelo que comprende 7 capas, mientras que el modelo TCP/IP tiene sólo 4. En realidad, el modelo TCP/IP se desarrolló casi a la par que el modelo OSI. Es por ello que está influenciado por éste, pero no sigue todas las especificaciones del modelo OSI. Las capas del modelo OSI son las siguientes:

NivelModelo antiguoModelo nuevo
Nivel 7
Nivel 6
Nivel 5
Nivel 4
Nivel 3
Nivel 2
Nivel 1
  • La capa física define la manera en la que los datos se convierten físicamente en señales digitales en los medios de comunicación (pulsos eléctricos, modulación de luz, etc.).
  • La capa de enlace de datos define la interfaz con la tarjeta de interfaz de red y cómo se comparte el medio de transmisión.
  • La capa de red permite administrar las direcciones y el enrutamiento de datos, es decir, su ruta a través de la red.
  • La capa de transporte se encarga del transporte de datos, su división en paquetes y la administración de potenciales errores de transmisión.
  • La capa de sesión define el inicio y la finalización de las sesiones de comunicación entre los equipos de la red.
  • La capa de presentación define el formato de los datos que maneja la capa de aplicación (su representación y, potencialmente, su compresión y cifrado) independientemente del sistema.
  • La capa de aplicación le brinda aplicaciones a la interfaz. Por lo tanto, es el nivel más cercano a los usuarios, administrado directamente por el software.

El modelo TCP/IP

El modelo TCP/IP, influenciado por el modelo OSI, también utiliza el enfoque modular (utiliza módulos o capas), pero sólo contiene cuatro:

Capa de aplicación
Capa de acceso a la red

Como puede apreciarse, las capas del modelo TCP/IP tienen tareas mucho más diversas que las del modelo OSI, considerando que ciertas capas del modelo TCP/IP se corresponden con varios niveles del modelo OSI.

Las funciones de las diferentes capas son las siguientes:

  • capa de acceso a la red: especifica la forma en la que los datos deben enrutarse, sea cual sea el tipo de red utilizado;
  • capa de Internet: es responsable de proporcionar el paquete de datos (datagrama);
  • capa de transporte: brinda los datos de enrutamiento, junto con los mecanismos que permiten conocer el estado de la transmisión;
  • capa de aplicación: incorpora aplicaciones de red estándar (Telnet, SMTP, FTP, etc.).
A continuación se indican los principales protocolos que comprenden el conjunto TCP/IP:


Aplicaciones de red 

TCP o UDP 

IPARPRARP 

FTS, FDDIPPPEthernetRed de anillos

Encapsulación de datos

Durante una transmisión, los datos cruzan cada una de las capas en el nivel del equipo remitente. En cada capa, se le agrega información al paquete de datos. Esto se llama encabezado, es decir, una recopilación de información que garantiza la transmisión. En el nivel del equipo receptor, cuando se atraviesa cada capa, el encabezado se lee y después se elimina. Entonces, cuando se recibe, el mensaje se encuentra en su estado original.

En cada nivel, el paquete de datos cambia su aspecto porque se le agrega un encabezado. Por lo tanto, las designaciones cambian según las capas:

  • el paquete de datos se denomina mensaje en el nivel de la capa de aplicación;
  • el mensaje después se encapsula en forma de segmento en la capa de transporte;
  • una vez que se encapsula el segmento en la capa de Internet, toma el nombre de datagrama;
  • finalmente, se habla de trama en el nivel de capa de acceso a la red.

Capa de acceso a la red

La capa de acceso a la red es la primera capa de la pila TCP/IP. Ofrece la capacidad de acceder a cualquier red física, es decir, brinda los recursos que se deben implementar para transmitir datos a través de la red. 
Por lo tanto, la capa de acceso a la red contiene especificaciones relacionadas con la transmisión de datos por una red física, cuando es una red de área local (Red en anilloEthernetFDDI), conectada mediante línea telefónica u otro tipo de conexión a una red. Trata los siguientes conceptos:

  • enrutamiento de datos por la conexión;
  • coordinación de la transmisión de datos (sincronización);
  • formato de datos;
  • conversión de señal (análoga/digital);
  • detección de errores a su llegada.
  • ...

Afortunadamente, todas estas especificaciones son invisibles al ojo del usuario, ya que en realidad es el sistema operativo el que realiza estas tareas, mientras los drivers de hardware permiten la conexión a la red (por ejemplo, el driver de la tarjeta de red).

La capa de Internet

La capa de Internet es la capa "más importante" (si bien todas son importantes a su manera), ya que es la que define los datagramas y administra las nociones de direcciones IP. 
Permite el enrutamiento de datagramas (paquetes de datos) a equipos remotos junto con la administración de su división y ensamblaje cuando se reciben.

La capa de Internet contiene 5 protocolos:

Los primeros tres protocolos son los más importantes para esta capa.

La capa de transporte

Los protocolos de las capas anteriores permiten enviar información de un equipo a otro. La capa de transporte permite que las aplicaciones que se ejecutan en equipos remotos puedan comunicarse. El problema es identificar estas aplicaciones. 
De hecho, según el equipo y su sistema operativo, la aplicación puede ser un programa, una tarea, un proceso, etc. 
Además, el nombre de la aplicación puede variar de sistema en sistema. Es por ello que se ha implementado un sistema de numeración para poder asociar un tipo de aplicación con un tipo de datos. Estos identificadores se denominanpuertos.

La capa de transporte contiene dos protocolos que permiten que dos aplicaciones puedan intercambiar datos independientemente del tipo de red (es decir, independientemente de las capas inferiores). Estos dos protocolos son los siguientes:

La capa de aplicación

La capa de aplicación se encuentra en la parte superior de las capas del protocolo TCP/IP. Contiene las aplicaciones de red que permiten la comunicación mediante las capas inferiores. 
Por lo tanto, el software en esta capa se comunica mediante uno o dos protocolos de la capa inferior (la capa de transporte), es decir, TCP o UDP.

Existen diferentes tipos de aplicaciones para esta capa, pero la mayoría son servicios de red o aplicaciones brindadas al usuario para proporcionar la interfaz con el sistema operativo. Se pueden clasificar según los servicios que brindan:

  • servicios de administración de archivos e impresión (transferencia);
  • servicios de conexión a la red;
  • servicios de conexión remota;
  • diversas utilidades de Internet.