El Modelo TCP/IP (Parte II: El Protocolo IP)

Ip en la capa red

La capa de red será la encargada del encaminamiento de los datos. Durante el tiempo de vida de estos se establecerá un camino desde el origen hasta el destino. A lo largo del camino los datos se encontrarán normalmente con varios sistemas intermedios.

El tiempo que los datos permanecen en la red, desde que son generados en la máquina emisora hasta que alcanzan el destino se denomina tiempo de vida.

El protocolo IP se trata de un protocolo no orientado a conexión, no fiable, de manera que los datagramas se perderán cuando se produzca algún error en la transmisión de los datos. No incluye este protocolo técnicas de detección de errores.

Veamos esto con más detalles:

– INSEGURO: Decimos que el protocolo IP es inseguro porque la entrega de los datos no está garantizada. El paquete se podrá perder, duplicar, retrasar o entregar fuera de orden sin que el sistema detecte estas condiciones. En este ámbito tomarán su significado otros protocolos como el ICMP, que se encarga de notificar los errores producidos en la capa IP.

NO ORIENTADO A CONEXIÓN: Decimos que el protocolo IP es no orientado a conexión porque cada paquete será tratado independientemente de los demás, cada uno de los paquetes mandados de una máquina a otra podrán seguir distintos caminos de manera que unos podrán ser entregados mientras que otros serán perdidos.

El Protocolo Internet IP posee las siguientes características:

Define la unidad básica de información que será transmitida a través de una red TCP/IP. 

  • Su software lleva a cabo la implementación de las rutinas de encaminamiento, eligiendo un camino a través del cual los datos serán enviados.

  • Incluye un conjunto de reglas que determinan como los hosts y routers deben procesar los paquetes, cuando se deberán generar los mensajes de error y las condiciones bajo las cuales un paquete deberá ser descartado.

 Podemos señalar dos funciones básicas implementadas en el protocolo IP, el direccionamiento y la fragmentación .

El Protocolo Internet posibilita la transmisión de bloques de datos llamados datagramas desde el origen al destino. Origen y destino son host identificados por direcciones lógicas de una longitud fija de 4 bytes (direcciones IP).

También se encarga el protocolo IP de la fragmentación y del reensamblado de datagramas largos si es necesario, para su posterior transmisión a través de pequeños paquetes de red.

  

  • Formato de las direcciones IP

 

Tenemos diversas formas para identificar un host: nombres, direcciones y rutas.

Un nombre nos indica lo que buscamos, una dirección nos indica dónde está y una ruta nos indica cómo llegar hasta él.

Las direcciones IP serán direcciones binarias que posibilitan la computación y la selección de la ruta de forma eficiente, de todas formas se establecerá una relación entre direcciones binarias y nombres, ya que para nosotros será mucho más fácil su uso.

A cada host en Internet le es asignado una dirección de 32 bits, esta será su dirección IP. Esta dirección IP estará formada por dos partes una, la que nos identifica la maquina, el host con el que queremos trabajar y otra que hace referencia a la red dentro de la cual nos encontramos. Conceptualmente cada dirección IP será un par (Identificador de red, Identificador de host).

Podemos encontrar diferentes formas de direcciones IP:

 

  • Clase A

 

Se trata de grandes redes que tienen más de 216 hosts.

Se utilizan 7 bits para identificar la red y 24 bits para la identificación del host

  • Clase B

 

Se utilizara para redes de clase media que tienen entre 28 y 216 hosts.

Se utilizan 14 bits para identificar la red y 16 bits para la identificación del host.

  • Clase C

 

Se utilizará para redes pequeñas que tienen menos de 28 hosts.

Se utilizan 21 bits para identificar la red y 8 bits para la identificación del host.

Debemos tener en cuenta que algunas de estas direcciones están reservadas para otros propósitos, como veremos en el siguiente apartado. 

En realidad las direcciones nos especifican una conexión de red más que una computadora individual, así un router conectando n redes tiene n direcciones IP distintas, una para cada conexión de red.

También hemos de tener en cuenta que si un host se mueve de una red a otra, su dirección IP deberá cambiar (es una red lógica y no física).

Para encontrar la ruta (routing) de los datagramas se basará en las direcciones IP así como en sus máscaras, se usará la porción de la dirección IP que nos especifica la red para tomar las diferentes decisiones en cuanto a la ruta a seguir. Esto como veremos más adelante supondrá grandes ventajas.

  • Direcciones especiales

Poniendo todo a ceros en la dirección haremos referencia a Este host’. Hemos de tener en cuenta que esta forma especial de dirección sólo será consentida durante el proceso de arranque, de esta manera se le permite a la maquina establecer una comunicación temporal hasta adquirir la dirección real. Una vez que la máquina conoce la dirección correcta no deberá utilizar esta dirección de todo ceros.

Poniendo todo ceros en la parte que hace referencia a la red y la dirección del host en la parte que hace referencia a la máquina individual hacemos referencia al Host en esta red’.

Dejando inalterada la parte que hace referencia a la red y poniendo todo unos en la parte referente al host realizaremos un Broadcast directopara la red.

Haciendo referencia a la dirección 127 nos encontraremos frente a la Dirección de loopback’.

 

  • Fragmentación

 

Los datagramas IP serán encapsulados por el nivel de enlace que añadirá sus propias cabeceras antes de transmitir los datos. Los frames o tramas serán los datos que realmente viajen por las redes, como se encuentran en un nivel físico y no lógico nos encontramos que los tamaños de las tramas pueden variar.

Trataremos aquí la relación entre los datagramas y las tramas de las redes físicas, lo primero que debemos tener en cuenta es que los datagramas son manejados por software mientras que los frames por hardware. Entendemos por frame una trama que podemos suponer Ethernet.

Las tramas Ethernet pueden ser de longitud variable encontrándose siempre entre los 64 y 1518 bytes. Para hacer el transporte eficiente trataremos de garantizar que cada datagrama viaje en distintas tramas. A esta idea la denominaremos encapsulación y será implementada en el protocolo IP.

Para hacer que cada datagrama encaje dentro de cada frame será necesario limitar el tamaño del datagrama, existirá así un tamaño máximo de datagrama MTU (Maximun Transfer Unit).

El protocolo IP será el encargado de dividir los datagramas en datagramas más pequeños de manera que se ajusten a la MTU. Los trozos más pequeños en los que son divididos los datagramas se denominan fragmentos y esta operación fragmentación.

La fragmentación ocurrirá con frecuencia en los routers, a largo del camino recorrido por el datagrama desde el origen hasta el destino. Los routers recibirán datagramas de una red con una MTU de una longitud determinada y deberán enviarlos a otra red de MTU distinta. La fragmentación siempre será de MTUs mayores a menores.

Debido a que IP representa el offset de los datos en múltiplos de byte, el tamaño del fragmento deberá ser un múltiplo de 8. Procediendo de acuerdo con este criterio, eligiendo múltiplos de 8 que se encuentren más cerca de la MTU, provocamos que el datagrama no se divida en piezas de igual tamaño obteniendo así una última pieza que será normalmente más corta que las demás.

Los fragmentos deberán ser reensamblados en el destino hasta formar el datagrama original antes de este que sea pasado a la siguiente capa.

  • Reensamblado de datagramas

 

Una vez que el datagrama ha sido fragmentado, los fragmentos viajan separados hasta su último destino donde deberán ser reensamblados. 

Podemos señalar dos desventajas de operar de esta forma:

Ya que los datagramas no son reensamblados cada vez que pasan por una máquina de la red con una MTU distinta, los fragmentos pequeños serán transportados hasta el destino final.

Si algún fragmento se pierde, el datagrama no podrá ser reensamblado. Por lo tanto la probabilidad de perder el datagrama se incrementa cuando la fragmentación se produce.

 De cualquier manera esta técnica funciona bien.

  • Permite que cada fragmento sea encaminado de forma independiente.
  • No requiere que los routers intermedios almacenen y reensamblen los datagramas.

 

 

  • Formato del datagrama

 

El formato del datagrama nos dará una descripción del formato de la cabecera. No se establece ninguna descripción del formato de los datos, pudiendo transportar así datos de forma arbitraria.

  • VERSION: Versión del protocolo IP que generó el datagrama. Es utilizado para que los hosts que envían y reciben el datagrama y los routers por los que pasan verifiquen la versión del formato del datagrama. La versión actual del protocolo IP es la 4 coexistiendo con la 6.

 

Todo software IP deberá de verificar la versión que sé está recibiendo y en caso necesario, es decir en caso de que sea distinta de la que él posee, el datagrama será descartado.

  • LONGITUD DE LA CABECERA: Se nos indica aquí la longitud de la cabecera del datagrama medida en palabras de 32 bits. Todos los campos en la cabecera tendrán siempre mismo tamaño, excepto el campo de opciones y relleno. Una cabecera común carecerá de opciones y de relleno y medirá 20 bytes, de manera que el valor en la longitud de la cabecera será igual a 5.

 

  • LONGITUD TOTAL: Este campo nos da la longitud total del datagrama IP medido en bytes, se incluirá tanto el tamaño de la cabecera como de la zona de datos. Tendremos que tener en cuenta que siendo la longitud de este campo de 16 bits, el tamaño máximo de un datagrama será de 216 es decir 65535 bytes.

 

  • TIPO DE SERVICIO: El tipo de servicio o TOS (Type of Service) nos dará diversas indicaciones acerca de como deberá ser tratado el datagrama. Tiene una longitud de 1 Byte y se encuentra dividido.

 

  • PRECEDENCIA: Tres bits utilizados para indicarnos la precedencia del datagrama, obtenemos así un rango de 0 a 7, siendo 0 la menor precedencia y 7 la mayor. La mayoría de los hosts y routers ignoran este campo.

 

  • Utilizamos los bits D,T y R para indicar a los algoritmos de encaminamiento como elegir entre las distintas rutas hacia el destino basándose en la tecnología de hardware disponible en esas rutas. Habrá veces en las que no será posible garantizar este tipo de solicitudes.

 

  •  
    • D: Solicitud de bajo retardo. El datagrama deberá ser enviado tan rápido como sea posible.

 

  •  
    • T: Solicitud de caudal alto. Si es posible el datagrama será enviado por el camino de mayor capacidad.
  • R: Solicitud de alta fiabilidad. Si es posible será enviado por la línea de mayor seguridad.

 

  • IDENTIFICACION: Contiene un entero único que identifica el datagrama. Este campo es utilizado para saber cuales de los fragmentos que llegan pertenecen a que datagrama.

Las computadoras que envían los datagramas IP deben generar un único valor de identificación para cada datagrama. En teoría las retransmisiones de cada datagrama pueden llevar el mismo campo de identificación que el datagrama original, en la practica, protocolos de nivel superior realizan retransmisiones dando resultado a datagramas con su propio valor de identificación.

Una técnica usada por el software IP consiste en mantener un contador global en memoria que se incremente cada vez que un datagrama es creado y se asigna el valor al campo IDENTIFICACION del datagrama.

  • OFFSET: Este campo especifica el offset de los datos del datagrama original que son llevados en este fragmento medidos en unidades de ocho octetos. Se empieza en el offset cero y se producirán variaciones en este campo con la fragmentación. Para reensamblar el datagrama, el destino deberá obtener todos los fragmentos empezando en offset cero hasta el fragmento con el mayor offset. Los fragmentos no tendrán necesariamente porque llegar en orden.

 

  • FLAGS: En este campo tendrán significado los dos bits de menor orden y serán utilizados para el control de la fragmentación.

 

Dentro de este campo tenemos:

  • BIT DE NO FRAGMENTACION: Si este bit se encuentra a 1 indicará que este datagrama no deberá ser fragmentado. Si este bit se encuentra activado y el datagrama necesita fragmentación el datagrama será descartado y será mandado un mensaje de error de vuelta al origen.

 

  • BIT DE MAS FRAGMENTOS: Será el bit mas bajo dentro del campo de flags, especifica si el fragmento contiene datos del medio del datagrama original o del final. Este bit es necesario ya que en el destino se deberá conocer el momento en el cual se han recibido todos los fragmentos que componen el datagrama.

 

  • TTL: Este campo denominado Time To Leave especifica el tiempo en segundos que al datagrama le es permitido seguir existiendo. Será el tiempo máximo de vida del datagrama en Internet. Los routers y los hosts que procesen datagramas deberán decrementar este campo cuando pase el tiempo y deberán encargarse de retirarlo cuando el tiempo expire.

Para simplificar esto a lo largo del camino desde el origen al destino será necesario decrementar el campo de tiempo de vida en uno en cada paso por un router, además en casos de sobrecarga de los routers , el router será encargado de controlar el tiempo que el datagrama permanece dentro del router esperando por el servicio decrementándole el TTL en función del tiempo de permanencia contado en segundos.

Una vez que el TTL alcanza el valor cero el router estará encargado de descartar el datagrama y de enviar un mensaje de error de vuelta a la fuente, al origen.

  • PROTOCOLO: Especifica el protocolo de alto nivel que ha sido utilizado para generar los datos que lleva el datagrama en el área de datos. En resumen este campo especifica el formato del área de datos del datagrama.

 

  • CHECKSUM DE CABECERA: Es utilizado para asegurar la integridad de los valores de la cabecera. El valor que contiene se forma tratando a la cabecera como una secuencia de enteros de 16 bits sumándolos todos juntos usando una aritmética de complemento a uno.

 Aunque los datagramas sean dirigidos a través de routers intermedios los campos de fuente y destino no variaran.

  • Encaminamiento IP

El encaminamiento IP consiste en la elección del camino a través del cual el datagrama deberá ser enviado. En teoría el software encargado del encaminamiento debería controlar cosas como la sobrecarga de la red, longitud del datagrama y el tipo de servicio especificado en la cabecera del datagrama para la elección del mejor camino, pero en realidad la mayoría del software es menos sofisticado y la cosa que normalmente es tenida en cuenta es el camino más corto.

Debemos de tener en cuenta que el datagrama IP no se modificará a lo largo del encaminamiento excepto por los campos TTL y checksum. Tanto los hosts como los routers participan del encaminamiento de los datagramas eligiendo por donde mandarlos.

Podemos entender el encaminamiento desde dos posiciones:

  • Entrega Directa: Aquí se trata del encaminamiento desde una máquina a otra a través de una única red física. Por lo tanto ambas maquinas deberán de encontrarse dentro de la misma red física. Podemos entender esta entrega directa como el último paso en una transmisión de datagramas.

 

  • Entrega Indirecta: Aquí la entrega del datagrama se hará hacia un router para que este se encargue del encaminamiento. En este caso no es posible realizar una entrega directa. Deducimos así que uno de los pasos que se deberán de llevar a cabo será el de distinguir entre el tipo de entrega que se va a realizar, para ello utilizamos las direcciones IP (que como sabemos se encuentran divididas conceptualmente en una parte que identifica la red y otra que identifica el host individual).

Este proceso se repite hasta que se produzca una entrega directa hacia el destino final. Tenemos así que los datagramas pasaran de router a router hasta que se alcance un router que pueda entregar el datagrama directamente.

En el proceso de encaminamiento, cuando una máquina vaya a mandar un datagrama deberá encargarse de introducirlo dentro de una trama y mapear la dirección IP a una dirección física, de manera que el envío real del datagrama sea posible.

  • Tabla de encaminamiento

 

Los algoritmos de encaminamiento utilizados por el protocolo IP utilizan las tablas de encaminamiento, en estas cada máquina almacenará información acerca de los posibles destinos y de como los podrá alcanzar.

Debido a los tipos de encaminamiento que hemos visto anteriormente podemos deducir que estas tablas únicamente deberán contener las direcciones de red y no trabajaran con direcciones IP completas. Esta característica hará que el encaminamiento sea más eficiente y las tablas más pequeñas.

Una tabla de encaminamiento estará compuesta de pares de la forma (D,R) donde D es la dirección IP de la red y R el router siguiente en el camino hacia la red de dirección D. Vemos así que la tabla únicamente nos indica el siguiente salto a lo largo del camino, y no se conocerá el camino completo a seguir.

Cada una de las conexiones especificadas en la tabla se trata de conexiones directas, es decir todos los routers de salida indicados en la tabla deberán estar en la misma red física. También estarán presentes direcciones por defecto, que serán utilizadas en aquellos casos en los que ninguna de las entradas tenga asociada un router.

Algunas veces estas tablas también contendrán direcciones completas de hosts, en casos especiales se utiliza esto para obtener un mayor control sobre la red.

La dirección del próximo salto no se guarda en ningún sitio, simplemente se utiliza para cada transmisión individual. Se asocia en cada caso la dirección física correspondiente y se crea el frame utilizando el datagrama IP original.

Una característica importante es que el crecimiento de estas tablas se hará en función del número de redes y no del número de hosts limitando considerablemente su tamaño. A la vez se proporciona la ocultación de información.

  • Especificación de subredes

 

El direccionamiento IP nos permite establecer la configuración de distintas subredes a partir de una única dirección de red original.

En el esquema original de direccionamiento IP a cada red física se le asigna una única dirección de red, de esta manera cada host en la red tiene una dirección de red como prefijo de la dirección individual de host. Como ya sabemos la principal ventaja de la división de una dirección en una parte de red y otra de host se hacía especialmente útil en los casos de encaminamiento, de manera que únicamente era tenida en cuenta la dirección de red a lo largo del camino, y únicamente en el último paso, en la entrega directa era cuando se utilizaba también la identificación de host.

 La posibilidad de crear subredes se debe a que como se puede deducir de lo anteriormente explicado, las configuraciones individuales dentro de una reddeterminada no va a influir en las tablas de encaminamiento de los diversos routers que se pudieran encontrar a lo largo del camino, ellos se limitarán a encaminar hacia una red determinada sin necesidad de conocer la distribución interna de esa red, debemos tener en cuenta así que la configuración interna de cada una de las redes se hace invisible al exterior.

 Veremos ahora como se puede establecer la división interna de una red en subredes. Solamente los routers locales conocerán que hay diversas redes físicas y como encaminar el tráfico hasta cada una de ellas. Conceptualmente el añadir subredes sólo cambia la forma de interpretar las direcciones IP, así en vez de dividir la dirección IP de 32 bits en una parte de red y otra de host, la creación de subredes divide la dirección IP de host original en una parte de red y otra de dirección local, de esta forma la interpretación de la parte de red queda invariable tanto para aquellas redes que tienen subredes como para las que no (se mantiene así la invisibilidad a la que se hacia antes referencia). La interpretación de la dirección local queda a merced de la red también local, aunque eso sí, ciñéndose a unas normas estándares de direccionamiento.

Etiquetas: , ,

Una respuesta to “El Modelo TCP/IP (Parte II: El Protocolo IP)”

  1. bit.Ly Says:

    bit.Ly

    El Modelo TCP/IP (Parte II: El Protocolo IP) | Bits Nocturnos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: