Tuesday, November 18, 2008

Un mensajito no de amor, sino de ICMP...:(

Los errores de mensajes ICMP, se usan por los routers y los hosts ó clientes, para decirle a un dispositivo enviador de datagramas, que se tuvieron problemas recibiéndolo.
En la versión original de ICMP, 5 diferentes mensajes de error son definidos. Estos mensajes se describen en el estándar ICMP, RFC 792.
Veamos ahora los mensajes de error que presenta ICMPv4:

Mensaje de "Destino Inalcanzable" : Los cuales se envían cuando existen fallos en el envió del datagrama.
Seamos reales, el protocolo de internet es uno que no es muy confiable, no existe garantía que un datagrama que es enviado por dispositivo hacia otro vaya realmente a llegar. Toda la red de clientes y routers hará su mayor esfuerzo para entregar un datagrama, pero es posible que no llegue a su destino por un sin fin de razones. Claro está, que los dispositivos que se encuentran en una red IP entienden esto, y se diseñan adecuadamente.

Ahora bien, a pesar de que IP está diseñado para fallar, no se deben tomar estas fallas a la ligera. Se necesita un mecanismo que le diga al dispositivo fuente, que algo "malo" está sucediendo, además se le deberá decir la razón de ello.
En IPV4 este servicio se brinda através de la transmisión del mensaje "Destino Inalcanzable". Estos mensajes, incluyen la porción de los datagramas que no se pudieron entregar, esto ayuda a que emisor entienda en dónde se tuvo el error.

Se muestra a continuación el formato que tiene el mensaje de Destino Incalcanzable

Grafik

Se muestran a continuación códigos de los subtipos de errores (Error Subtype) que presenta este tipo de mensajes:

Valor de código

Subtipo de mensaje

Descripción

0

Red inalcanzable

El datagrama no pudo ser entregado a la red que se especificó en el campo de ID de red en la porción de la dirección IP. Se peude deber a un problema en el routing, aunque también puede ser causado por tener una mala dirección

1

Cliente inalcanzable

El datagrama logró llegar a la red que se especificó, mas no pudo ser entregado al host que se indicó en la dirección. Esto suele ser de nuevo un problema relacionado con el ruteo.

2

Protocolo inalcanzable

El protocolo que se especifico en el campo del protocolo fue inválido para el cliente al cual el datagrama fue entregado.

3

Puerto inalcanzable

El puerto destino, especificado en la cabecera UDP ó TCP fue inválido.


Mensajes de Fuente sofocada: Se utiliza para decirle al dispositivo que deberá enviar los datagramas a una menor tasa.
Si un destinatario, está recibiendo datagramas a una tasa relativamente lenta, es posible que procese cada uno de los datagramas al vuelo, en el momento en el que los recibe. Sin embargo, la recepción de datagramas en una red tienede a ser disparejo, debido a las tasas altas y bajas de tráfico existente. Para esos momentos en los cuales se reciben datagramas a una frecuencia mayor que en la que se pudiesen estos procesar, todos los dispositivos cuentan con un buffer en donde pueden temporalmente guardar a los datagramas que reciben, se guardarán allí hasta que ya tengan tiempo para procesarlos.
Sin embargo el buffer es en si de un tamaño limitado, y pueden existir casos en los que el tráfico se recibe tan rápido que el buffer se llena. Cuando esto sucede, el dispositivo se ve obligado a desahacerse, descartar todos los nuevos datagramas que le lleguen. El receptor deberá por ende enviar un mensaje de retroalimentación a la fuente y explicarle su problema.

En IPv4,un dispositivo que es obligado a "tirar" datagramas debido a una congestion, le envía al receptor retroalimentación a la fuente, mediante los mensajes de Sofocamiento de la fuente. Es una manera cortés de decirle a la fuente: " ¡¡No tan rápido!!" . Cuando un dispositivo recibe este tipo de mensajes, sabe que debe disminuir la frecuencia a la cual envía los datagramas al receptor en cuestión.
Se muestra continuación el formato de este tipo de mensaje:


Nombre del Campo

Tamaño (bytes)

Descripción

Tipo

1

Tipo: Identifica el tipo de mensaje ICMP. Para mensajes de Sofocamiento de fuente, este valor se pone en 4.

Código

1

Code: Identifica el subtipo de error siendo comunciado, en este caso no se usa y se deja en 0.

Checksum

2

Checksum: Campo de 16 bits usado en la cabecera del ICMP

SinUso

4

SinUSO: 4 bytes que se dejan en blanco y no se usan

Porción original del Datagrama

Variable

Porción original del Datagrama: Incluye toda La cabecera así como los primero 8 bytes del datagrama que fueron descartados debido a congetionamiento.





Mensaje de tiempo excedido: Se envía cuando un datagrama ha estado viajando por la red demasiado tiempo, ó cuando se está tardando mucho en unir los distintos fragmentos del datagrama, para re esamblarlo.

Mensaje de Redirección: Este mensaje permite que el router dé retro alimentación respecto a mejores rutas que existen para llegar a un cliente.

Mensaje de Problema con los Parámetros: Este es un mensaje genérico, usado para todos los demás problemas que pudiesen existir que no están cubiertos en los otros mensajes de error de ICMP.
Si un dispositivo encuentra problemas serios con cualquiera de los parametros dentro de la cabecera de un datagrama IP, deberá descartar o deshacerse del datagrama. AHora bien, debido a que se trata de una situación crítica, deberá comunciarse con el emisor del datagrama y reportr su problema. Esto se logra através del uso del mensaje "Problema de Parametro" que ICMPv4 brinda.
Este es un tipo de mensaje que peude ser usado, para indicar cualquier tipo de error que exista en la cabecera de un datagramaIP.sage had the problem.



Nombre del Campo

Tamaño (bytes)

Descripción

Tipo

1

Tipo: Identifica el tipo de mensaje ICMP, este valor se pone en 12.

Código

1

Code: Identifica el subtipo de error siendo comunciado, se muestra una tabla abajo de esta que indica el tipo de suberrores que pueden existir.

Checksum

2

Checksum: Campo de 16 bits usado en la cabecera del ICMP

Apuntador

1

Apuntador: Apunta a la localización del datagrama donde se ocasionó el problema.
Se utiliza este campo, sólo cuando el valor del código es 0.

SinUso

4

SinUSO: 4 bytes que se dejan en blanco y no se usan

Porción original del Datagrama

Variable

Porción original del Datagrama: Incluye toda La cabecera así como los primero 8 bytes del datagrama que fueron descartados debido a congetionamiento.





Ahora se muestran los parámetros para interpretar los códigos de error


Valor del Códig

Tipo de Submensaje

Descripción

0

El apuntador indica el error

El apuntador indica donde se localiza el error.

1

Falta un campo requerido

Debido a que el apuntador no puede señalar donde existió este tipo de error, debido a que el campo NO existe, es necesario manejarlo de este modo.

2

Longitud incorrecta

La longitud total de datagrama fue incorrecta, lo cual indica un problema general con todo el datagrama. De nuevo el apuntador no es de mucha ayuda.

No comments: