Descargar

El protocolo IP (página 2)

Enviado por mmnorton


Partes: 1, 2

  • Ver: Versión de IP que se emplea para construir el Datagrama. Se requiere para que quien lo reciba lo interprete correctamente. La actual versión IP es la 4.
  • Hlen: Tamaño de la cabecera en palabras.
  • TOS: Tipo de servicio. La gran mayoría de los Host y Routers ignoran este campo. Su estructura es:

Prioridad

D

T

R

Sin Uso

La prioridad (0 = Normal, 7 = Control de red) permite implementar algoritmos de control de congestión más eficientes. Los tipos D, T y R solicitan un tipo de transporte dado: D = Procesamiento con retardos cortos, T = Alto Desempeño y R = Alta confiabilidad. Nótese que estos bits son solo "sugerencias", no es obligatorio para la red cumplirlo.

  • Longitud Total: Mide en bytes la longitud de doto el Datagrama. Permite calcular el tamaño del campo de datos: Datos = Longitud Total – 4 * Hlen.

Antes de continuar con la segunda palabra del Datagrama IP, hace falta introducir conceptos relacionados con la fragmentación.

Fragmentación

En primer lugar, De qué tamaño es un Datagrama?. El tamaño para un Datagrama debe ser tal que permita la encapsulación, esto es, enviar un Datagrama completo en una trama física. El problema está en que el Datagrama debe transitar por diferentes redes físicas, con diferentes tecnologías y diferentes capacidades de transferencia. A la capacidad máxima de transferencia de datos de una red física se le llama MTU (el MTU de ethernet es 1500 bytes por trama, la de FDDI es 4497 bytes por trama). Cuando un Datagrama pasa de una red a otra con un MTU menor a su tamaño es necesaria la fragmentación. A las diferentes partes de un Datagrama se les llama fragmento. Al proceso de reconstrucción del Datagrama a partir de sus fragmentos se le llama Reensamblado de fragmentos.

El control de la fragmentación de un Datagrama IP se realiza con los campos de la segunda palabra de su cabecera:

  • Identificación: Numero de 16 bits que identifica al Datagrama, que permite implementar números de secuencias y que permite reconocer los diferentes fragmentos de un mismo Datagrama, pues todos ellos comparten este numero.
  • Banderas: Un campo de tres bits donde el primero está reservado. El segundo, llamado bit de No – Fragmentación significa: 0 = Puede fragmentarse el Datagrama o 1 = No puede fragmentarse el Datagrama. El tercer bit es llamado Más – Fragmentos y significa: 0 = Unico fragmento o Ultimo fragmento, 1 = aun hay más fragmentos. Cuando hay un 0 en más – fragmentos, debe evaluarse el campo desp. De Fragmento: si este es cero, el Datagrama no esta fragmentado, si es diferente de cero, el Datagrama es un ultimo fragmento.
  • Desp. De Fragmento: A un trozo de datos se le llama Bloque de Fragmento. Este campo indica el tamaño del desplazamiento en bloques de fragmento con respecto al Datagrama original, empezando por el cero.

Para finalizar con el tema de fragmentación, hay que mencionar el Plazo de Reensamblado, que es un time out que el Host destino establece como máximo para esperar por todos los fragmentos de un Datagrama. Si se vence y aun no llegan TODOS, entonces se descartan los que ya han llegado y se solicita el reenvío del Datagrama completo.

Formato del Datagrama IP (Cont.)

  • TTL: Tiempo de Vida del Datagrama, especifica el numero de segundos que se permite al Datagrama circular por la red antes de ser descartado.
  • Protocolo: Especifica que protocolo de alto nivel se empleó para construir el mensaje transportado en el campo datos de Datagrama IP. Algunos valores posibles son: 1 = ICMP, 6 = TCP, 17 = UDP, 88 = IGRP (Protocolo de Enrutamiento de Pasarela Interior de CISCO).
  • Checksum: Es un campo de 16 bits que se calcula haciendo el complemento a uno de cada palabra de 16 bits del encabezado, sumándolas y haciendo su complemento a uno. Esta suma hay que recalcularla en cada nodo intermedio debido a cambios en el TTL o por fragmentación.
  • Dirección IP de la Fuente:
  • Dirección IP del Destino:
  • Opciones IP: Existen hasta 40 bytes extra en la cabecera del Datagrama IP que pueden llevar una o más opciones. Su uso es bastante raro.
  • Uso de Ruta Estricta (Camino Obligatorio)
  • Ruta de Origen Desconectada (Nodos Obligatorios)
  • Crear registro de Ruta
  • Marcas de Tiempo
  • Seguridad Básica del Departamento de Defensa
  • Seguridad Extendida del Departamento de Defensa

Enrutamiento IP

Enrutar es el proceso de selección de un camino para el envío de paquetes. La computadora que hace esto es llamada Router.

En general se puede dividir el enrutamiento en Entrega Directa y Entrega Indirecta. La Entrega Directa es la transmisión de un Datagrama de una maquina a otra dentro de la misma red física. La Entrega Indirecta ocurre cuando el destino no esta en la red local, lo que obliga al Host a enviar el Datagrama a algún Router intermedio. Es necesario el uso de mascaras de subred para saber si el Host destino de un Datagrama esta o no dentro de la misma red física.

Encaminamiento con Salto al Siguiente.

La forma más común de enrutamiento requiere el uso de una Tabla de Enrutamiento IP, presente tanto en los Host como en los Routers. Estas tablas no pueden tener información sobre cada posible destino, de hecho, esto no es deseable. En ves de ello se aprovecha el esquema de direcionamiento IP para ocultar detalles acerca de los Host individuales, además, las tablas no contienen rutas completas, sino solos la dirección del siguiente paso en esa ruta.

En general una tabla de encaminamiento IP tiene pares (Destino, Router), donde destino es la dirección IP de un destino particular y Router la dirección del siguiente Router en el camino hacia destino. Nótese que Router debe ser accesible directamente desde la maquina actual.

Este tipo de encaminamiento trae varias consecuencias, consecuencia directa de su naturaleza estática:

  1. Todo trafico hacia una red particular toma el mismo camino, desaprovechando caminos alternativos y el tipo de trafico.
  2. Solo el Router con conexión directa al destino sabe si este existe o esta activo.
  3. Es necesario que los Routers cooperen para hacer posible la comunicación bidireccional.

Algoritmo de Enrutamiento IP

Ruta Datagrama(Datagrama) {

Extrae de la Cabecera de Datagrama la dirección de destino D;

Extrae de D el prefijo de Red N;

Si N corresponde a cualquier dirección directamente conectada Entonces

Envía el Datagrama a D sobre la Red N;

Sino

Si en la tabla hay una ruta especifica para D Entonces

Envía Datagrama al salto siguiente especificado;

Sino

Si En la tabla hay una ruta para la red N Entonces

Envía Datagrama al salto siguiente especificado;

Sino

Si En la tabla hay una ruta por defecto Entonces

Envía el Datagrama a la dirección por defecto;

Sino

Declarar Fallo de Enrutamiento;

Fsi

Fsi

Fsi

Fsi

}

Manejo de Datagramas Entrantes.

Cuando un Datagrama llega a un Host, el software de red lo entrega a IP. IP verifica la dirección de destino y si esta concuerda con la de la maquina local, entonces acepta el Datagrama y lo entrega a las capas superiores. De no coincidir la dirección de destino, el Datagrama es descartado.

Por otra parte, un Router que reciba un Datagrama compara la dirección de destino con la suya propia. Si coinciden, el Datagrama pasa a las capas superiores, sino, se le aplica el algoritmo de encaminamiento y se reenvía el Datagrama.

Direccionamiento sin Clase

Durante la introducción a TCP/IP (Juan Carlos Guevara), se explicaba como mediante el empleo de Mascaras de subred, se lograba convertir una única red (generalmente una Clase B) en múltiples redes lógicas interconectadas y administradas por la organización propietaria. El problema se presenta cuando el crecimiento explosivo de las redes locales produce el fenómeno ROADS (Running Out of Address Space), que consiste simplemente en el agotamiento del espacio de direcciones útil, causado por la gran demanda de las direcciones Clase B, de las cuales solo hay 16.384, mientras que las Clases C permanecían sin Asignar (pues aunque hay 2.097.152 de ellas, nadie las quiere por ser muy pequeñas).

Para enfrentar este problema se desarrollo el esquema de Direcciones sin Clase, que consiste en asignar a una misma organización un bloque continuo de direcciones de Clase C. De esta manera, una organización que requiera conectar a Internet un numero moderado de Hosts (digamos 3.800) puede recibir un bloque de 16 redes continuas de Clase C (por ejemplo, de la red Clase C 199.40.72.0 a la 199.40.87.0), con lo cual dispone de 4.096 direcciones IP validas para administrar.

CIDR Enrutamiento Inter – Dominio Sin Clases (Classless Inter – Domain Routing)

El esquema de direcciones sin clase genera el problema de aumentar la información que debe incluirse en las tablas de enrutamiento. En el caso del ejemplo, se tendría que incluir 16 nuevas entradas en cada tabla de enrutamiento de cada Host y Router. CIDR resuelve el problema al incluir en las tablas información acerca del tamaño de los bloques y el numero de bloques, así, en las tablas de enrutamiento IP se tienen pares (Destino, Router), donde destino no es una dirección de Host o Red tradicional, sino que incluye información acerca del numero de redes que incluye el bloque (en nuestro ejemplo, 16) y el tamaño de cada una de esas redes (en el ejemplo, son Clases C, 256 direcciones cada una).

El Direccionamiento sin clase modifica la estructura de una dirección IP, de esta manera:

Prefijo de Red

Identificador de Host

Así, CIDR debe incluir en las tablas de enrutamiento cual es la primera red que compone el bloque, cuantos bits se emplean como Prefijo de Red y la mascara de subred que se emplea. En nuestro ejemplo, las tablas de enrutamiento IP contendrían esta información:

199.40.72.0/20 255.255.240.0

Refiriéndose a un bloque que se inicia con la red 199.40.72.0 y que tiene 20 bits en el prefijo de red. La mascara 255.255.240.0 (11111111.11111111.11110000.00000000) nos indica que se están usando 4 bits extra (los que se han resaltado) para identificar a las redes que componen al bloque. Nótese que cuatro bits permites agrupar precisamente 16 redes Clase C.

Un aspecto importante que hay que subrayar es que en ningún momento cambia el algoritmo básico de enrutamiento IP, lo que cambia es el contenido de las tablas. Además, las nuevas tablas contienen información resumida, por lo que buscar una dirección destino en la tabla se hace de otra manera, pero el algoritmo permanece inalterado.

El problema de buscar direcciones de destino en una tabla, consiste en que cualquier dirección cuya mascara de destino tenga menos bits, incluye a la que tiene mas bits. Con esto quiero decir que una mascara de subred como 255.255.0.0 (11111111.11111111.00000000.00000000, es decir, 16 bits de prefijo de red) incluye dentro de si a la mascaras de subred 255.255.128.0 (11111111.11111111.10000000.00000000, 17 bits de prefijo de red) y esta a su ves incluye a la mascara 255.255.192.0 (11111111.11111111.11000000.00000000) y en general, entre menos bits tiene el prefijo de red, mas direcciones Host abarca. Por esta razón cuando se explora la tabla de enrutamiento IP en busca de una dirección de destino, se hace una búsqueda que inicia con las mascaras de más bits y termina en la de menos bits. Es decir, se inicia con mascaras como 255.255.255.255 (todo en uno) y se continua con la 255.255.255.254 (31 unos y un cero) y así sucesivamente. Esto quiere decir que tendrían que hacerse 32 recorridos secuenciales a la tabla, lo cual es muy ineficiente en cuanto a tiempo, pues además de ser un procedimiento demorado, se sabe ya que direcciones normales de Clase B (255.255.0.0) requieren 16 barridos a la tabla, además, hacen falta 32 barridos para notar que no hay una entrada en la tabla para esas dirección. Por esta razón se emplean otros métodos para hacer estas búsquedas en las tablas de enrutamiento IP. Un esquema muy popular emplea un Arbol Binario, en el cual cada bit representa una nueva rama en el árbol. Así, en nuestro ejemplo, podrían dividirse las direcciones asignadas a la organización (4.096) en subredes de esta forma: dos subredes de 1.024 direcciones cada una, tres de 512 y dos de 256 direcciones. De esta forma, el árbol resultante tendría esta forma:

ICMP: Protocolo de Mensajes de Control de Interred (Internet Control Message Protocol)

Si un Router no puede enrutar o entregar un Datagrama, o si detecta una situación anómala que afecta su capacidad de hacerlo (por ejemplo, la congestión), debe informar a la fuente original para que evite o solucione el problema.

ICMP es un mecanismo para realizar esta operación. Es considerado como una parte obligatoria de IP y debe ser incluido en todas sus implementaciones. ICMP comunica la capa de Interred de una maquina con la misma capa en otra maquina. ICMP es un protocolo de reporte de errores (no los corrige), además, ICMP solo puede informar del error a la fuente del Datagrama, es esta maquina la que debe implementar mecanismos para enfrentar el problema.

Los mensajes de ICMP requieren doble encapsulacion: Los mensajes ICMP viajan empaquetados en Datagramas IP. Aun así, no se considera a ICMP un protocolo de nivel superior a IP.

Formato del Mensaje ICMP

Aunque cada tipo de mensaje tiene su propio formato, todos ellos comparten los primeros tres campos: TIPO (8 bits), CODIGO (8 bits) y CHECKSUM (16 bits).

El campo TIPO identifica al tipo de mensaje ICMP y determina su formato. Puede tener alguno de estos valores:

  • 0 : Respuesta de Eco (Echo Replay)
  • 3 : Destino Inaccesible (Host Unreachable)
  • 4 : Acallamiento de Origen (Source Quench)
  • 5 : Redireccionar (Redirect)
  • 8 : Solicitud de Eco (Echo Request)
  • 11 : Tiempo Excedido
  • 12 : Problema de Parámetros
  • 13 : Solicitud de Timestamp
  • 14 : Respuesta de Timestamp
  • 17 : Solicitud de mascara de subred
  • 18 : Respuesta de mascara de subred

Mensajes Solicitud de Eco y Respuesta al Eco

Este es el tipo de mensaje que envía la maquina cuando se emplea el comando ping. Solicitud de Eco pide a la maquina destino que responda con una Respuesta de Eco con un numero de secuencia apropiado.

TIPO (8 o 0)

CODIGO (0)

CHECKSUM

Identificador

Numero de Secuencia

Datos Opcionales

Mensaje Destino Inaccesible.

Es el mensaje empleado para reportar que no es posible entregar un Datagrama. El campo CODIGO describe mejor el problema:

  • 0 : Red Inaccesible
  • 1 : Host Inaccesible
  • 2 : Protocolo Inaccesible
  • 3 : Puerto Inaccesible
  • 4 : Necesita Fragmentación
  • 5 : Falla en la Ruta de Origen
  • 6 : Red de Destino Desconocida
  • 7 : Host Destino Desconocido
  • 8 : Host de Origen Aislado
  • 9 : Comunicación con Red Destino Administrativamente Prohibida
  • 10 : Comunicación con Host Destino Administrativamente Prohibida
  • 11 : Red Inaccesible por el tipo de servicio
  • 12 : Host Inaccesible por el tipo de servicio

TIPO (3)

CODIGO (0…12)

CHECKSUM

NO – USADO (debe ser cero)

Encabezado IP + Primeros 8 bytes de Datos IP

Los errores de red inaccesible por lo general implican fallas de enrutamiento. Debido a que el mensaje ICMP contiene la cabecera del Datagrama que lo produjo (en el campo de datos), el origen sabrá cual destino es inaccesible.

Mensaje de Acallamiento de Origen

Debido a que IP funciona sin conexión un Router no puede reservar memoria o recursos de comunicación antes de recibir los Datagramas. En consecuencia los Routers pueden verse repentinamente saturados por el trafico. A esta situación se le llama congestión.

El congestionamiento se da por que un Host de alta velocidad genera Datagramas mas rápido de lo que el Router puede manejar o porque muchos Host envían Datagrama a la misma dirección al mismo tiempo.

Cuando los Datagramas llegan mas rápido de lo que un Router puede manejarlos, este los coloca en un buffer. Si los Datagramas son parte de una ráfaga pequeña, esto soluciona el problema, pero si continúan llegando Datagramas se saturan los buffers y el Router debe descartar los nuevos Datagramas. Es entonces cuando el Router genera un mensaje ICMP de Acallamiento de Origen solicitando a este reducir la tasa de envío de Datagramas. No existe un mensaje ICMP para revertir esta solicitud, en general poco después de bajar la tasa de envío, los Hosts la aumentan progresivamente hasta recibir otro mensaje de Acallamiento de Origen.

TIPO (4)

CODIGO (0)

CHECKSUM

NO – UTILIZADO (debe ser cero)

Encabezado IP + 8 primeros bytes de Datos IP

El objetivo de este mensaje era aliviar el problema de la congestión, pero no tuvo éxito. Se dejo al implementador decidir sobre cuando enviar estos mensajes, por lo que cada fabricante emplea su política favorita sin que ninguna solucione el problema del todo. Por otra parte, ICMP informa al Host de origen que su Datagrama ha sido descartado, pero puede que este Host no sea el causante de la congestión. Además, Como responder al mensaje ICMP?. Documentos como Requisitos para los Routers (RFC 1812) estipulan que NO se deben enviar mensajes de Acallamiento de Origen. Se esta trabajando en mecanismos mas eficientes.

Mensaje Redireccionar

Se asume que los Routers conocen rutas correctas. Los Host comienzan con información mínima de enrutamiento y aprenden nuevas rutas de los Routers. En caso de que un Host utilice una ruta no optima, el Router que lo detecta envía un mensaje ICMP Redireccionar solicitándole que actualice su tabla de enrutamiento IP.

TIPO (5)

CODIGO (0…3)

CHECKSUM

Dirección IP del Router

Encabezado de IP + 8 primeros bytes de Datos IP

Mensaje Tiempo Excedido

Debido a que los Routers solo deciden sobre el próximo "Salto" usando tablas locales, errores en esas tablas pueden generar "ciclos de enrutamiento" para algún destino. Esto provoca que los Datagramas sean descartados por vencimiento de su TTL. Siempre que un Router descarte un Datagrama ya sea por vencimiento de TTL o por vencimiento del Tiempo de Reensamblado, envía un mensaje de Tiempo Excedido a la fuente.

TIPO (11)

CODIGO (0 o 1)

CHECKSUM

NO – UTILIZADO (debe ser cero)

Encabezado de IP + 8 primeros bytes de Datos IP

CODIGO = 0: Descartado por vencimiento de TTL

CODIGO = 1: Descartado por vencimiento de Tiempo de Reensamblado.

Mensaje Problema de Parámetros

Cuando un Router o un Host encuentra un problema que no ha sido cubierto con los mensajes ICMP anteriores, envía este mensaje.

TIPO (12)

CODIGO (0 o 1)

CHECKSUM

Indicador

NO – Utilizado (debe ser cero)

Encabezado de IP + 8 primeros bytes de Datos IP

El campo indicador apunta al campo dentro del encabezado IP que generó el problema.

Mensaje Solicitud de Timestamp y Respuesta de Timestamp

Una técnica sencilla provista por TCP/IP para sincronizar relojes emplea ICMP para obtener la hora de la otra maquina. Una maquina envía a otra una solicitud de Timestamp, solicitándole que informe su valor actual para la hora del día. La otra maquina envía una respuesta de Timestamp con esa información.

TIPO (13 o 14)

CODIGO (0)

CHECKSUM

Identificador

Numero de Secuencia

Timestamp Origen

Timestamp al Recibir

Timestamp al Transmitir

Mensaje Solicitud de Mascara de Subred y Respuesta de Mascara de Subred

Para aprender la mascara de subred utilizada por la red local, una maquina puede enviar un mensaje ICMP Solicitud de Mascara de Subred a un Router y esperar su Respuesta. Si la maquina no conoce la dirección del Router, puede enviar este mensaje por difusión.

TIPO (17 o 18)

CODIGO (0)

CHECKSUM

Identificador

Numero de Secuencia

Mascara de Subred

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente