Internet Control Message Protocol

ICMP (engl. skraćenica za Internet Control Message Protocol) je dio skupa internet protokola što operativni sistemi koriste za rješavanje grešaka na mreži, naprimjer kada određena usluga na mreži nije dostupna, ili ako određeni host ili router nije dostižan. Pridružen mu je protokolni broj 1http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml. ICMP se također može koristiti za prosljeđivanje upitnih poruka.

ICMP za Internet protokol verziju 4 (IPv4) je također poznat kao ICMPv4. IPv6 ima sličan protokol, ICMPv6.

 Tehnički detalji 
ICMP je dio skupa internet protokola i definirano je u RFC-u 792. ICMP poruke su tipično korištene za dijagnosticiranje ili kontrolu, i također se generišu kada se određena greška desi tokom neke IP operacije (specifirano u RFC-u 1122). ICMP greške su usmjerene prema izvornoj IP adresi koja je porijeklo relevantnog paketa.

Na primjer, svaki uređaj (između pošiljatelja i primatelja) koji proslijedi IP datagram prvo umanji vrijednost polja za vrijeme života (TTL) sa jedan, u IP zaglavlju. Kada ovo polje dostigne vrijedno 0, onda se paket ignoriše i zatim se ICMP poruka Time To Live exceeded in transit pošalje izvornoj adresi datagrama.

Iako su ICMP poruke sadržane u normalnim IP paketima, ipak su procesirane kao posebni slučajevi što je različito od normalnog procesiranja IP paketa. Naime, u dosta slučajeva je potrebno provjeriti sadržaj ICMP poruke i zatim proslijediti izvornoj adresi odgovarajuću poruku za grešku koja je se desila.

 Struktura ICMP paketa 
ICMP zaglavlje počinje poslije IPv4 zaglavlja  i identifikuje se sa protokolnim brojem '1'. Svi ICMP paketi se sastoje od zaglavlja koje ima veličinu od 8 bajta i sekciju sa podacima promjenljive veličine. Prva 4 bajta od zaglavlja moraju uvijek biti konzistentni. Prvi bajt se koristi za vrstu ICMP-a, drugi za ICMP kod, treći i četvrti bajt za kontrolnu sumu, i ostatala četiri bajta za podatke, ovisno od tipa ICMP-a i korištenog koda.

ICMP poruke grešaka sadrže sekciju za podatke koji uključuju čitavo IP zaglavlje zajedno sa prvih 8 bajta podataka od IP paketa koji je prvobitno prouzrokovao ovu poruku greške. Ovaj ICMP paket se zatim enkapsulira u jedan novi IP paket.

 Bitovi  0–7  8–15  16–23  24–31 0  Tip  Kod  Kontrolna suma 32  Ostatak zaglavlja

Tip – Tip ICMP-a kao što je navedeno ispod.
Kod – Podtip datog tipa.
Kontrolna suma – Za kontrolisanje podataka, izračunato na osnovu ICMP zaglavlja i ostatak podataka. Korišten je tzv. Internet Checksum, specifirano u RFC-u 1071.
Ostatak zaglavlja – Polje od četiri bajta. Podaci su promjenljivi, ovisno od tipa ICMP-a i korištenog koda.

 Poruke 
+Najvažnije porukeComputer Networking – A Top-Down Approach, Kurose and Ross         Tip  Kod  Poruka  Opis0 – Echo Reply                 0     Echo reply  Odgovor na odjek (koristi se za pingovanje)1 i 2                       Rezervisano3 – Destination unreachable(destinacija nedostižna)                  0    Destination network unreachable   Ciljana mreža nedostižna                  1    Destination host unreachable  Ciljani host nedostižan                  2    Destination protocol unreachable  Ciljati protokol nedostižan                  3    Destination port unreachable  Ciljati port nedostižan                  4    Fragmentation required, and DF flag set  Potrebna fragmentacija, i postavljena DF zastavica                  5    Source route failed  Izvorni put neuspješan                  6    Destination network unknown  Ciljana mreža je nepoznata                  7    Destination host unknown  Ciljani host je nepoznat                  8    Source host isolated  Izvorni host je izolovan                  9    Network administratively prohibited  Pristup mreži je administrativno zabranjen                 10    Host administratively prohibited  Pristup hostu je administrativno zabranjen                 11    Network unreachable for TOS   Mreža je nedostižna za ovaj tip usluge                 12    Host unreachable for TOS  Hostu je nedostižan za ovaj tip usluge                 13    Communication administratively prohibited  Komunikacija je administrativno zabranjena                 14    Host Precedence Violation  Router nije bio u mogućnosti proslijediti paket zbog nevažeće vrijednosti za precedence                 15    Precedence cutoff in effect  Postoji minimum precedence vrijednost a navedena je manja vrijednost od potrebne 4 – Source Quench                  0    Source quench  Nije moguće bilo procesirati datagram sa traženom brzinom zbog nedostatka memorije ili internih resursa 5 – Redirect Message(poruka za preusmjerenje)                  0    Redirect Datagram for the Network  Preusmjeri datagram za mrežu                  1    Redirect Datagram for the Host  Preusmjeri datagram za host                  2    Redirect Datagram for the TOS & network  Preusmjeri datagram za tip usluge i mrežu                  3    Redirect Datagram for the TOS & host  Preusmjeri datagram za tip usluge i host 6                   Alternate Host Address  Alternativna host adresa 7                   Rezervisano 8 – Echo Request                  0    Echo request  Zahtjev za odjek (koristi se za pingovanje) 9 – Router Advertisement                  0    Router Advertisement  Obavještavanje routera da je prisutan 10 – Router Solicitation                  0    Router discovery/selection/solicitation  Pretraga za dostupne routere 11 – Time Exceeded                  0    TTL expired in transit  Paket je istekao tokom prosljeđivanja                  1    Fragment reassembly time exceeded  Fragmenti datagrama nisu (svi) stigli na vrijeme 12 – Parameter Problem: Bad IP header(Problem sa parametrom: nevažeće zaglavlje IP-a)                  0    Pointer indicates the error  Prikaz okteta gdje se greška nalazi                  1    Missing a required option  Nedostaje potrebna opcija                  2    Bad length  Nevažeća dužina 13 – Timestamp                  0    Timestamp  Pečat vremena 14 – Timestamp Reply                  0    Timestamp reply  Odgovor na pečat vremena 15 – Information Request                  0    Information Request  Zahtjev za informaciju 16 – Information Reply                  0    Information Reply  Odgovor na zahtjev za informaciju 17 – Address Mask Request                  0    Address Mask Request  Zahtjev za masku adrese 18 – Address Mask Reply                  0    Address Mask Reply  Odgovor na zahtjev masku adrese 19                  Reserved for security  Rezervisano za sigurnost 20 do 29       Reserved for robustness experiment  Rezervisano za eksperiment robusnosti 30 – Traceroute                  0    Information Request  Zahtjev za informacije 31                  Datagram Conversion Error  Greška kod datagram konverzije 32                  Mobile Host Redirect  Preusmjerenje mobilnog hosta 33                  Where-Are-You  Pretraga za druge hostove na mreži (namjenjeno za IPv6) 34                  Here-I-Am  Odgovor na pretragu za druge hostove (namjenjeno za IPv6) 35                  Mobile Registration Request  Zahtjev za mobilnu registraciju 36                  Mobile Registration Reply  Odgovor na zahtjev za mobilnu registraciju 37                  Domain Name Request  Zahtjev za ime domena 38                  Domain Name Reply  Odgovor na zahtjev za ime domena 39                  SKIP Algorithm Discovery Protocol  Protokol za otkrivanje sa SKIP algoritmom 40                  Photuris  Propust sigurnosti 41                  Za probne protokolne mobilnosti kao Seamoby [RFC4065] 42 do 255      Rezervisano

 Također pogledajte 
 ICMP tunel
 Izbijanje rupa sa ICMP-om
 ICMPv6
 IRDP
 PathPing - program koji kombinuje funkcionalnosti iz ping i tracert programa
 PMTUD (engl. skraćenica za Path MTU Discovery) - standardizovana tehnika za utvrđivanje jedinice maksimalne transmisije
 Ping
 Smurf napad
 TCP

 Reference 

 Vanjski linkovi 
 IANA ICMP parametri
 http://www.iana.org/go/rfc792
 IANA brojevi protokola
 Objašnjenje ICMP preusmjeravanja

Kategorija:Mrežni protokoli
Kategorija:Protokoli mrežnog sloja
Kategorija:Internetski standardi
Kategorija:Internetski protokoli