2. I C M P
Debido a que el protocolo IP no es fiable, los datagramas pueden perderse o
llegar defectuosos a su destino.
El protocolo ICMP, (protocolo de mensajes de control y error) se encarga de
informar al origen si se ha producido algún error durante la entrega de su
mensaje. Pero no solo se encarga de notificar los errores, sino que también
transporta distintos mensajes de control.
El protocolo ICMP esta definido en la RFC 792
El protocolo ICMP únicamente informa de incidencias en la red pero no toma
ninguna decisión. Esto será responsabilidad de las capas superiores.
3. I C M P
El Protocolo de Mensajes de Control y Error de Internet, ICMP, es de características
similares a UDP, pero con un formato mucho más simple, y su utilidad no está en el
transporte de datos de usuario, sino en:
Controlar si un paquete no puede alcanzar su destino,
Si su vida ha expirado,
Si el encabezamiento lleva un valor no permitido,
Si es un paquete de eco o respuesta, etc.
Es decir, se usa para manejar mensajes de error y de control necesarios para los
sistemas de la red, informando con ellos a la fuente original para que evite o corrija el
problema detectado.
ICMP proporciona así una comunicación entre el software IP de una máquina y el mismo
software en otra.
4. I C M P
• ICMP comunica mensajes de error y otras condiciones que requieren
atención.
• Los mensajes ICMP se transmiten dentro de datagramas IP (RFC 792)
• Presenta dos tipos de mensajes: error y consulta.
• Formato de mensaje ICMP:
– Tipo: identifica el tipo de mensaje ICMP (hay 15 distintos)
– Código: utilizado en algunos códigos para especificaciones más detalladas.
– Checksum: cubre al mensaje ICMP completo (mismo algoritmo que para el
checksum de IP)
5. I C M P
Los mensajes ICMP se transmiten como datagramas IP normales, con el campo de
cabecera "protocolo" con un valor 1, y comienzan con un campo de 8 bits que define
el tipo de mensaje de que se trata.
A continuación viene un campo código, de o bits, que a veces ofrece una descripción
del error concreto que se ha producido.
Después un campo suma de control, de 16 bits, que incluye una suma de verificación
de errores de transmisión. Tras estos campos viene el cuerpo del mensaje,
determinado por el contenido del campo "tipo". Contienen además los 8 primeros
bytes del datagrama que ocasionó el error.
6. I C M P
•TCP utiliza este protocolo para el envío de mensajes de control y de error. Por
ejemplo ping se utiliza para ver si un ordenador está activo en la red.
•Los mensajes ICMP están dentro de datagramas IP (IP los trata igual que los
demás datagramas).
•Es decir, dentro de los datos del datagrama, hay una cabecera del protocolo
ICMP que indica una serie de parámetros como código de error, tipo de mensaje,
etc., (como ya se ha dicho, IP no tiene constancia de que sea un datagrama
especial).
ICMP pueden enviar varios tipos de mensajes como por ejemplo, destino no
alcanzable, control de congestión, redireccionamiento, tiempo excedido.
7. I C M P
A>ping 192.168.0.6 –n 1
Haciendo ping a 192.168.0.6 con 32 bytes de datos
Tiempo de espera agotado.
8. I C M P
Mensajes informativos
Entre estos mensajes hay algunos de suma importancia, como los mensajes
de petición de ECO (tipo 8) y los de respuesta de Eco (tipo 0).
Las peticiones y respuestas de eco se usan en redes para comprobar si
existe una comunicación entre dos host a nivel de capa de red, por lo que
nos pueden servir para identificar fallos en este nivel, ya que verifican si las
capas física (cableado), de enlace de datos (tarjeta de red) y red
(configuración IP) se encuentran en buen estado y configuración.
10. I C M P
Mensajes de error
En el caso de obtener un mensaje ICMP de destino inalcanzable, con campo "tipo" de
valor 3, el error concreto que se ha producido vendrá dado por el valor del campo
"código", pudiendo presentar los valores que se muestran en la tabla del siguiente
Slide.
Este tipo de mensajes se generan cuando el tiempo de vida del datagrama a llegado
a cero mientras se encontraba en tránsito hacia el host destino (código=0), o porque,
habiendo llegado al destino, el tiempo de reensamblado de los diferentes fragmentos
expira antes de que lleguen todos los necesarios (código=1).
Los mensajes ICMP de tipo= 12 (problemas de parámetros) se originan por ejemplo
cuando existe información inconsistente en alguno de los campos del datagrama, que
hace que sea imposible procesar el mismo correctamente, cuando se envían
datagramas de tamaño incorrecto o cuando falta algún campo obligatorio.
12. I C M Pv6
(ICMPv6 o ICMP para IPv6) es una parte importante de la arquitectura IPv6 que debe
estar completamente soportada por todas las implementaciones y nodos IPv6.
ICMPv6 combina funciones que anteriormente estaban subdivididas en varias partes
de diferentes protocolos tales como ICMP, IGMP o ARP y además introduce algunas
simplificaciones eliminando tipos de mensajes obsoletos que estaban en desuso
actualmente.
ICMPv6 es un protocolo de propósito múltiple y está diseñado para realizar funciones
tales como:
Detectar errores encontrados en la interpretación de paquetes.
Realizar diagnósticos.
Realizar funciones como Neighbor Discovery.
Detectar direcciones IPV6 multicast.
Los mensajes ICMPv6 están subdivididos en dos clases: Mensajes de error y
mensajes informativos.
Los mensajes ICMPv6 son enviados dentro de paquetes IPv6 los cuales a su vez
pueden llevar las extensiones de cabecera de IPv6.
13. I C M Pv6
Los paquetes ICMPv6 tienen el formato Tipo, Código y Checksum.
Los 8 bits del campo Tipo indican el tipo de mensaje.
Si el bit de mayor peso tiene el valor 0 (valores entre 0 y 127) entonces es un
mensaje de error, por el contrario.
Si el bit de mayor peso es 1 (valores entre 128 y 255) entonces es un mensaje
informativo.
Los 8 bits del campo Código dependen del tipo de mensaje, y son usados para crear
un nivel adicional de clasificación de mensajes, de tal forma que los mensajes
informativos en función del campo Código se pueden subdividir en varios tipos.
El campo Checksum es usado para detectar errores en los mensajes ICMP y en
algunos de los mensajes IPv6.
14. I C M Pv6
Mensajes de Error
Los mensajes de error de ICMPv6 son similares a los mensajes de error de ICMPv4.
Se dividen en 4 categorías: destino inaccesible, paquete demasiado grande, tiempo
excedido y problemas de parámetros.
1 Destination Unreachable (Destino Inalcanzable)
2 Packet Too Big (Paquete Demasiado Grande)
3 Time Exceeded (Tiempo Agotado)
4 Parameter Problem (Problema de Parámetros)
15. I C M Pv6
Mensajes Informativos
Estos mensajes se subdividen en tres grupos: mensajes de diagnóstico, mensajes
para la administración de grupos multicast y mensajes de Neighbor Discovery.
128 Echo Request (Solicitud de Eco)
129 Echo Reply (Respuesta de Eco)
Cada mensaje ICMPv6 está precedido por una cabecera IPv6 y cero o más
extensiones de cabecera IPv6. La cabecera ICMPv6 con el valor 58 en el campo
"Cabecera Siguiente" en la cabecera inmediatamente predecesora. (Nota: el valor del
campo "Cabecera Siguiente" es distinto del valor utilizado para identificar ICMP para
IPv4)
16. I C M Pv6
Calculo del Campo Checksum
El checksum es un conjunto de 16 bits complemento a uno, de la suma del
complemento a uno del mensaje ICMPv6 a partir del campo Tipo del mensaje
ICMPv6 hasta el final, precedido por una pseudo-cabecera de la cabecera IPv6, tal y
como se especifica en IPv6.
Para calcular el Checksum, el campo Checksum es inicializado a cero.
El valor "Cabecera Siguiente" usado en la "pseudo-cabecera" es 58. (Nota: La
inclusión de una pseudo cabecera en el checksum ICMPv6 es un cambio desde IPv4;
observa IPv6 para entender completamente este cambio).
La pseudo-cabecera utilizada para calcular el checksum es la siguiente:
17. I C M Pv6
ICMPv6 Mensajes de Transmisión
Un nodo que reenvía un mensaje ICMPv6, debe determinar tanto la dirección IPv6
origen como la destino para el mensaje ICMPv6. Debe tener especial cuidado en la
elección de la dirección de origen.
Cuando un nodo ICMPv6 recibe un paquete, debe realizar acciones en función del
tipo de mensaje.
El protocolo ICMPv6 debe limitar el número de mensajes de error enviados a un
mismo destinatario para evitar sobrecarga en la red.
Por ejemplo, si un nodo reenvía los paquetes erróneos, ICMP debe señalar el error
al primer paquete y luego hacerlo periódicamente, de acuerdo con un periodo
prefijado o en función de una carga máxima de la red.
Un mensaje de error ICMP nunca debe ser enviado en respuesta a otro mensaje de
error ICMP.
21. DIFERENCIAS
ICMPv4 - ICMPv6
ICMPv6
Lo mismo que ICMP v4 con unas pequeñas diferencias
ICMPv6 incluye una pseudo-headeren el cálculo del checksum.
El checksum es modificadom para IPV6 dado que las nuevas direcciones son de 128
bits y no de 32.
Debe ser implementado totalmente por todos los nodos IPv6
El valor del campo Next header en la pseudo cabecera es de 58 que identifica la
versión IPV6 de ICMP.
ICMPv6 diferencia mensajes de error(tipo<128) y de información(tipo=>128)
22. DIFERENCIAS
ICMPv4 - ICMPv6
ICMPv6 diferencia mensajes de error(tipo<128) y de información(tipo=>128)