Internet Control Message Protocol

Internet Control Message Protocol (abreviat ICMP) este un protocol din suita TCP/IP care folosește la semnalizarea și diagnosticarea problemelor din rețea. Protocolul este definit in RFC792. Mesajele ICMP sunt încapsulate în interiorul pachetelor IP. Versiunea ICMP pentru IPv4 este adesea cunoscuta ca ICMPv4; in schimb IPv6 dispune de un protocol similar cunoscut sub abrevierea ICMPv6.

Exemple de utilizare

Probabil cele mai utilizate programe care se bazează pe ICMP sunt ping și traceroute.

Ping trimite mesaje ICMP de tip echo request ("cerere de ecou") către calculatorul țintă și așteaptă de la acesta mesaje ICMP de tip echo reply ("răspuns de tip ecou"). Dacă acestea nu sunt primite, se poate presupune că ceva este în neregulă cu conexiunea dintre cele două calculatoare.

Toate pachetele IP au în antet un câmp special numit TTL (Time To Live). Acest câmp este decrementat de fiecare dată când trece printr-un ruter. Pentru a evita buclele de routare, în momentul în care câmpul TTL ajunge la zero pachetul nu este trimis mai departe. În această situație, router-ul care a decrementat câmpul TTL la zero trimite către calculatorul-origine al pachetului (adresa acestuia se află tot în prologul IP) un mesaj ICMP de tip time exceeded. Programul traceroute profită de acest mecanism și trimite către calculatorul țintă, pachete UDP cu valori ale câmpului TTL din ce în ce mai mari, cu scopul de a obține mesaje time exceeded de la toate routerele aflate pe traseu.

Structura segmentului ICMP

Antetul

Antetul (header) ICMP începe imediat după antetul IPv4. Toate pachetele ICMP dispun de un antet de 8 octeți și de o secțiune de date de lungime variabila. Structura antetului ICMP este redata în figura de mai jos:

Biti0-78-1516-2324-31
0 TipCodSuma de control
32 Restul antetului
  • Tip - tipul pachetului ICMP
  • Cod - subtipul pachetului ICMP în funcție cu tipul selectat anterior
  • Suma de control - Suma de control calculata în funcție de câmpurile antet ICMP + sir de date și este descrisa în RFC 1071.
  • Restul antetului - câmp de 4 octeți ce variază ca și conținut pe baza tipului/codului antetului ICMP.


In continuare este redata lista mesajelor de control (incompleta):

TipCodDescriere
0 - Echo Reply0Răspuns de tip ecou (utilizat pentru ping)
1 si 2Rezervat
3 - Destinație de neatins (Destination Unreachable)0Retea destinație indisponibila
1Gazda-destinație indisponibila
2Protocol destinație indisponibil
3Port destinație indisponibil
4Solicitare fragmentare
5Sursa de rutare eșuata
6Retea destinație necunoscuta
7Gazda destinație necunoscuta
8Gazda sursa izolata
9Acces rețea interzis
10Acces gazda interzis
11Retea inadmisibila pentru TOS
12Gazda inadmisibila pentru TOS
13Acces comunicație interzisa
14Prioritate gazda încălcata
15Prioritate interzisa
4 - Sursa ICMP "potolita"0Mesaj ICMP transmis inițiatorului, solicitând scăderea ratei de mesaje ICMP către un anumit ruter/gazda (datorita problemelor de congestie).
5 - Redirectare mesaje ICMP0Redirectare datagrama pentru rețea
6Adresa gazda alternativa
7Rezervat
8 - Echo Request0Cerere de ecou (echo request) utilizata în ping
.........
11 - Expirare timer (time exceeded)0TTL expirat în timpul tranzitului
1Timpul de reasamblare a fragmentelor expirat
.........
30 - TracerouteSolicitare informații
.........

Bibliografie

  • Tannenbaum, Andrew (). Rețele de calculatoare, ediția a patra. Editura Byblos. ISBN 973-0-03000-6. 
  • CCNA - Ghid de studiu independent. Editura All. "2007".  Verificați datele pentru: |date= (ajutor)