Redes en infomatica, mensajes de control de internet icmp

Un poco de teoría sobre redes ... ICMP (Internet Control Message Protocol, Protocolo de Mensajes de Control de Internet) es considerado como parte de la capa de red IP. ICMP es un protocolo empleado por los routers (encaminadores) y por los hosts (clientes, servidores, etc) para comunicar la información de control o de error de la red. Además de los fallos en las líneas de comunicación, IP tiene fallos en la entrega de datagramas cuando la máquina destino está desconectada, cuando el tiempo de vida se acaba o cuando existe congestión en los encaminadores. El protocolo IP no puede controlar estas situaciones y los diseñadores de TCP/IP crearon ICMP como mecanismo de informe de errores y/o situaciones anómalas en la red. Una consideración a tener en cuenta es que ICMP informa de errores, pero no los corrige.
Los mensajes ICMP requieren dos niveles de encapsulación. ICMP es transmitido en el interior de datagramas IP, estructuras que viajan en la trama de cada red física:

Seguir Leyendo...

Formato de los mensajes ICMP
Aunque cada mensaje ICMP tiene su propio formato, todos comienzan con los mismos tres campos; un campo TYPE (tipo) de mensaje, de 8 bits, que identifica el mensaje; un campo CODE (código) de 8 bits, que aporta más información sobre el tipo de mensaje, y un campo de verificación SVT, de 16 bits. Los siguientes 16 bits después del campo SVT tienen un propósito que varía y depende del tipo y código del paquete ICMP considerado.Un error ICMP enviado contiene siempre la cabecera IP y los 8 primeros octetos de datos del datagrama que lo provocó. Ello permite al módulo ICMP asociar el mensaje recibido a un protocolo particular (TCP o UDP en función del campo ‘protocolo’ de la cabecera IP) y a un proceso de usuario determinado (mediante los números de puerto de TCP o UDP).
Las situaciones expuestas a continuación no generan mensajes de error ICMP:
• Un mensaje de error ICMP. Un mensaje de error ICMP puede, a pesar de todo, ser generado como respuesta a una solicitud ICMP.
• Un datagrama destinado a una dirección IP de ‘broadcast’.
• Un datagrama enviado como ‘broadcast’ de la capa de enlace.
• Un datagrama fragmentado que no sea el primero de la secuencia.
• Un fragmento recibido fuera de secuencia.
• Un datagrama cuya dirección fuente no está asociada a una única máquina. Esto significa que la dirección fuente no puede valer 0, ni ser el bucle local, ni una dirección broadcast.
En las siguientes secciones se describen los mensajes ICMP más destacados.
Mensajes echo y echo reply
Existe en los sistemas Unix, OS/2, Windows 9X, 2000 o NT un programa de aplicación denominado ping que presenta una serie de posibilidades que lo convierten en una herramienta muy valiosa a la hora de depurar y localizar errores. Formalmente ‘ping’ proporciona una prueba de accesibilidad y estado de un destino.
‘Ping’ se basa en el protocolo ICMP, o protocolo de control de transmisión. A diferencia del resto de aplicaciones TCP/IP, no utiliza ninguno de los protocolos de transporte TCP o UDP. Se apoya directamente sobre IP. Este aspecto debe tenerse en cuenta, dado que la recepción de una respuesta al comando ping indica que la máquina remota está activa a nivel IP, pero no asegura que el funcionamiento de su capa TCP o UDP sea el correcto.
‘Ping’ utiliza un mensaje de petición de echo (tipo 8) para enviar un datagrama a su destinatario y espera el retorno de un mensaje echo reply (tipo 0) del destinatario. De este modo, es capaz de evaluar tiempos de respuesta promedios. Dispone de varias opciones, entre las que cabe destacar la posibilidad de modificar el tamaño del paquete enviado, el registro de ruta, y el control del número de paquetes enviados. Por ejemplo:
C:\> ping -l 200 172.20.43.230
provocaría la emisión hacia el router CISCO 1720 de 4 paquetes, cada uno de ellos con 200 bytes de datos a los que habría que sumar 20 bytes de la cabecera IP y otros 8 de la ICMP .
La respuesta que Ping proporcionada en pantalla corresponde a una serie de líneas donde se indica el tiempo de respuesta del echo ICMP y el número de secuencia. Después de ejecutar el comando, queda reflejado el número de paquetes perdidos, los tiempos mínimos, máximos y medios de respuesta (ida y vuelta). Nos permitirá conocer la tasa de error de un enlace así como la velocidad real de transmisión de forma experimental.
Mensaje destination unreachable
El mensaje Destination Unreachable (tipo 3) se produce cuando un paquete IP no consigue alcanzar su destino por algún motivo. Dependiendo del valor del campo código en el mensaje ICMP se indica un motivo diferente:
Código Significado
0 Red de destino inaccesible.
1 Host de destino inaccesible.
2 Protocolo de destino inaccesible.
3 Puerto de destino inaccesible.
4 Se necesita fragmentación y DF activo.
5 Fallo en la ruta origen.
6 Red de destino desconocida.
7 Host de destino desconocida.
8 Host de origen aislado.
9 Comunicación con la Red de destino prohibida administrativamente.
10 Comunicación con el Host de destino prohibida administrativamente.
11 Red de destino inaccesible por el tipo de servicio.
12 Host de destino inaccesible por el tipo de servicio.
De todos estos códigos destacan:
• Código 1. Host Unreachable (3/1). Un router informa que no ha podido enviar el paquete a la máquina de destino.
• Código 3. Port Unreachable (3/3). El puerto de destino del paquete IP en la máquina de destino no tiene asociado ningún proceso que lo atienda.
• Código 4. Fragmentation Needed and Don't Fragment was Set (3/4). Un router entre las máquinas origen y destino precisa realizar la fragmentación del datagrama IP y no se ha llevado a cabo porque el bit don't fragment de la cabecera IP está activo.
Mensaje Redirect
El mensaje Redirect (tipo 5) es enviado por un router hacia el emisor de un datagrama IP si el encaminador detecta que el emisor emplea una ruta no óptima. Según el router, este datagrama debería haber sido transmitido a un router diferente. Cada mensaje de redireccionamiento contiene un campo de 32 bits llamado dirección de internet del encaminador que contiene la IP de salida correcta para la máquina emisora.
A continuación, se explica el funcionamiento del redirect. Se pretende enviar información desde un PC1 a un PC2, veamos paso a paso qué ocurre:
1. Suponemos que el PC 1 envía el datagrama IP que tiene como destino el PC 2 al router 1. La decisión de encaminamiento es coherente puesto que el router 1 está definido como puerta de enlace por defecto en esta máquina.
2. El router 1 percibe que la interfaz de salida para el mensaje es la misma por la que se recibió el datagrama procedente del PC 1. Emite el mensaje al PC 2 como si procediera del PC 1, es decir, la dirección IP origen del mensaje es la del PC 1.
3. A su vez, el router 1 emite un error de redirección ICMP hacia el PC 1, informándole que actualice su tabla de encaminamiento y que envíe directamente los próximos datagramas con ese mismo destino al router 2 sin pasar por el router 1.
4. Por último, el destino final (PC 2) responde a través del router 2 al emisor del mensaje original.
Mensaje time exceeded
El mensaje Time Exceeded (tipo 11) genéricamente indica que el tiempo máximo de tránsito para un datagrama en la red se ha sobrepasado, de esta forma es fácil detectar la presencia en la red de rutas circulares o excesivamente largas.
Dependiendo del código del mensaje éste se emplea en dos situaciones diferentes:
• Código 0. Time to Live exceeded in Transit. Este mensaje ICMP es enviado al origen por un router cuando el valor del campo TTL (Tme to live) en la cabecera IP de un datagrama toma el valor 0.
• Código 1. Time to Live exceeded in Reassembly. Este mensaje ICMP es enviado por un router o la máquina de destino de un datagrama cuando en el reensamblado de los fragmentos del mismo alguno de los fragmentos no se recibe antes de un tiempo determinado.
Un ciclo de encaminamiento puede consistir en dos encaminadores, cada uno encaminando al otro un datagrama con el mismo destino, o puede consistir en muchos encaminadores haciendo lo mismo, formando un bucle en el enrutamiento. Si un datagrama entrara en un ciclo de encaminamiento (debido a una mala gestión de las tablas de encaminamiento de los routers) recorrería indefinidamente y de manera circular todos los routers. Sin embargo, gracias al empleo del TTL, llega un momento en el que el tiempo de vida del mensaje es cero y el datagrama es eliminado. Esta situación debe ser comunicada al emisor del mensaje.
El reensamblado de fragmentos se refiere a la tarea de unir todos los fragmentos de un datagrama. Cuando llega el primer fragmento de un datagrama, el host que lo recibe activa un temporizador y considera como error que dicho temporizador expire antes de que lleguen a ser reensamblados todos los fragmentos del datagrama.
Una aplicación muy interesante del mensaje time exceeded (tipo 11, código 0) es la posibilidad de conocer todos los routers por los que circula un datagrama hasta que llega a su destino. Si se realiza un ‘ping’ a una máquina destino con un tiempo de vida muy reducido es evidente que el datagrama morirá en el camino y el router enviará el correspondiente informe de error. La técnica para conocer todos los routers por los que viaja un paquete IP es ir incrementando, uno a uno y desde cero, el TTL del paquete que se envía en el comando ‘ping’. Aplicaciones sencillas como ‘tracert’ de Windows se basan en este mensaje de error para conocer las rutas de los mensajes. En la siguiente tabla se presenta el significado de las opciones del programa ‘tracert’.
tracert [opciones]

1 comentarios :

Anónimo dijo...

Esta fino ya resolvi mi investigación, ha sido los más directo y menos complejo que he leido sobre mesnajes de control de internet icmp.

Publicar un comentario en la entrada

Related Posts with Thumbnails