ICMP (INTERNET CONTROL MESSAGE PROTOCOL)
IP ofrece las herramientas necesarias para el envío de datagramas, pero no ofrece los medios para garantizar la integridad de dichos datagramas o incluso que estos datagramas alcancen su destino.
ICMP (Internet Control Message Protocol) no puede hacer que IP sea más fiable, pero ofrece la posibilidad de que un gateway, un router o el host destino comuniquen al host origen que ha habido algún problema con el datagrama que se ha enviado.
Los mensajes ICMP pueden ser enviados en varias situaciones:
Cuando un datagrama no puede alcanzar su destino.
Cuando un gateway o router no disponen de los recursos necesarios para redirigir un datagrama y por lo tanto lo descarta. Esta falta de recursos normalmente es producida por una saturación de la red.
Un router no puede redirigir un datagrama a otra red porque es demasiado grande y sería necesario fragmentarlo, pero en la cabecera IP del datagrama no se permite la fragmentación.
Cuando un gateway o router puede informar al host origen sobre un camino más corto para que el datagrama alcance su destino.
ICMP es una parte fundamental de TCP/IP, y cualquier router o host de una red TCP/IP debe ser capaz de generar e interpretar mensajes ICMP.
Existen algunas reglas que hay que seguir a la hora de generar mensajes ICMP:
No se generará un mensaje de error ICMP para un datagrama que este transportando un mensaje ICMP.
No se generarán mensajes ICMP para los datagramas que especifiquen una dirección de tipo broadcast.
Cuando un datagrama provoca el envío de un mensaje ICMP, y este datagrama ha sido fragmentado, sólo se genera el mensaje ICMP una vez, evitando que este se envíe un mensaje de error por cada fragmento del datagrama.
Los mensajes ICMP viajan por la red dentro del campo de datos de los datagramas IP. En la cabecera IP el campo de Protocolo se establece a 1 para indicar que viaja un mensaje ICMP. Todos los mensajes ICMP comienzan con tres campos fijos:
Tipo: Indicando el tipo de mensaje ICMP.
Código: Ofrece más información sobre el tipo de mensaje, ya que dentro de un tipo podemos tener varios subtipos de mensajes.
Checksum: Es una suma de control, para comprobar la integridad del mensaje.
Tras estos tres campos fijos, podrá venir una información adicional u otra, dependiendo del tipo de mensaje ICMP que se esté tratando.
Comentarios