ICMP (Internet Control Message Protocol, Protocol de Missatges de Control d'Interxarxa) és un protocol que per al seu funcionament utilitza directament el protocol IP dins de l'arquitectura TCP/IP. La seva funció és informar de l'estat i situacions d'error en el funcionament de la capa de xarxa, sobretot en aspectes com l'encaminament, congestió, fragmentació, etc.
Els missatges ICMP es transmeten a l'interior de datagrames IP. Consten d'una capçalera de 64 bits, on apareixen camps com tipus, codi, SVT i informació variable. A continuació de la capçalera trobem l'espai per a dades.
ICMP, al contrari que TCP i UDP, no s'utilitza directament per les aplicacions d'usuari. L'excepció és l'aplicació Ping, que envia missatges de petició Echo Request (i rep missatges de resposta Echo Reply) per a determinar si un host està disponible i el temps que empren els paquets en anar i tornar a eixa màquina.
Aspectes tècnics
El protocol ICMP forma part de la Suite IP tal com es va definir al document RFC 792. Els missatges ICMP són normalment generats en resposta a errors en els datagrames IP (segons l'especificació RFC 1122) o per a diagnòstic i encaminament.
La versió d'ICMP per a IPv4 és coneguda com a ICMPv4. IPv6 també té el seu protocol equivalent.
Els missatges ICMP són construïts al nivell de capa de xarxa, generalment d'un datagrama que ha generat una resposta ICMP. El protocol IP encapsula aquest missatge ICMP, afegint-li la mateixa capçalera IP i transmet el datagrama resultant de la forma habitual.
Com a exemple, cada màquina que reenvia un paquet IP (com un encaminador) decrementa en una unitat un camp de la capçalera IP anomenat temps de vida (TTL, Time To Live). Si aquest paquet és reenviat per moltes màquines, el valor TTL pot arribar a 0. Aleshores, es torna un missatge ICMP "Temps de vida excedit en trànsit".
Capçalera
La capçalera ICMP comença després del bit 160 de la capçalera IP (llevat que s'usin opcions IP).
|
Bits 160-167 |
168-175 |
176-183 |
184-191
|
160 |
Tipus |
Codi |
Checksum
|
192 |
ID |
Seqüència
|
- Tipus - Tipus ICMP especificat a sota.
- Codi - més concreció del tipus ICMP; i.e: un ICMP Destination Unreachable pot tenir aquest camp amb valor des de l'1 al 15, amb diferent significat cadascun.
- Checksum - Codi de comprovació d'error calculat a partir de la capçalera ICMP+dades, amb valor 0 per aquest camp.
- ID - Conté el valor de l'ID, hauria de ser retornat en cas de ECHO REPLY.
- Seqüència - Conté el valor de seqüència, hauria de ser retornat en cas de ECHO REPLY.
Llista de missatges de control permesos (Llista incompleta)
Alguns missatges de control permesos són (llista incompleta):
0 - Echo Reply
1 - Reservat
2 - Reservat
3 - Destination Unreachable
4 - Source Quench
5 - Redirect Message
6 - Direcció Alterna de Host
7 - Reservat
8 - Echo Request
9 - Anunci de Router
10 - Sol·licitud de Router
11 - Temps Excedit
12 - Problema de Parámetre
13 - Marca de temps
14 - Resposta de Marca de temps
15 - Petició d'Informació
16 - Resposta d'Informació
17 - Petició de Máscara de Direcció
18 - Resposta de Máscara de Direcció
19 - Reservat per a seguretat
20-29 - Reservat per a experiments de resistència
30 - Traceroute
31 - Error de Conversión de Datagrama
32 - Redirecció de Host Mòbil
33 - IPv6 On ets?
34 - IPv6 On sóc?
35 - Petició de Registre de Mòbil
36 - Resposta de Registre de Mòbil
37 - Petició de Nom de Domini
38 - Resposta de Nom de Domini
39 - SKIP Protocol d'Algorisme de Descobrimient
40 - Photuris, Errors de Seguretat
41-255 - Reservat
(Font: IANA ICMP Parameters)