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 1[1]. ICMP se također može koristiti za prosljeđivanje upitnih poruka.[2]

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.[3] 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.[2]

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.[2]

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.[2]

Bitovi0–78–1516–2324–31
0TipKodKontrolna suma
32Ostatak 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 poruke[4][5]
TipKodPorukaOpis
0 – Echo Reply[3]:140Echo replyOdgovor na odjek (koristi se za pingovanje)
1 i 2Rezervisano
3 – Destination unreachable[3]:4
(destinacija nedostižna)
0Destination network unreachableCiljana mreža nedostižna
1Destination host unreachableCiljani host nedostižan
2Destination protocol unreachableCiljati protokol nedostižan
3Destination port unreachableCiljati port nedostižan
4Fragmentation required, and DF flag setPotrebna fragmentacija, i postavljena DF zastavica
5Source route failedIzvorni put neuspješan
6Destination network unknownCiljana mreža je nepoznata
7Destination host unknownCiljani host je nepoznat
8Source host isolatedIzvorni host je izolovan
9Network administratively prohibitedPristup mreži je administrativno zabranjen
10Host administratively prohibitedPristup hostu je administrativno zabranjen
11Network unreachable for TOSMreža je nedostižna za ovaj tip usluge
12Host unreachable for TOSHostu je nedostižan za ovaj tip usluge
13Communication administratively prohibitedKomunikacija je administrativno zabranjena
14Host Precedence ViolationRouter nije bio u mogućnosti proslijediti paket zbog nevažeće vrijednosti za precedence[6]:324
15Precedence cutoff in effectPostoji minimum precedence vrijednost a navedena je manja vrijednost od potrebne[6]:324
4 – Source Quench0Source quenchNije moguće bilo procesirati datagram sa traženom brzinom zbog nedostatka memorije ili internih resursa[6]:76
5 – Redirect Message
(poruka za preusmjerenje)
0Redirect Datagram for the NetworkPreusmjeri datagram za mrežu
1Redirect Datagram for the HostPreusmjeri datagram za host
2Redirect Datagram for the TOS & networkPreusmjeri datagram za tip usluge i mrežu
3Redirect Datagram for the TOS & hostPreusmjeri datagram za tip usluge i host
6Alternate Host AddressAlternativna host adresa
7Rezervisano
8 – Echo Request0Echo requestZahtjev za odjek (koristi se za pingovanje)
9 – Router Advertisement0Router AdvertisementObavještavanje routera da je prisutan
10 – Router Solicitation0Router discovery/selection/solicitationPretraga za dostupne routere
11 – Time Exceeded[3]:60TTL expired in transitPaket je istekao tokom prosljeđivanja
1Fragment reassembly time exceededFragmenti datagrama nisu (svi) stigli na vrijeme
12 – Parameter Problem: Bad IP header
(Problem sa parametrom: nevažeće zaglavlje IP-a)
0Pointer indicates the errorPrikaz okteta gdje se greška nalazi
1Missing a required optionNedostaje potrebna opcija
2Bad lengthNevažeća dužina
13 – Timestamp0TimestampPečat vremena
14 – Timestamp Reply0Timestamp replyOdgovor na pečat vremena
15 – Information Request0Information RequestZahtjev za informaciju
16 – Information Reply0Information ReplyOdgovor na zahtjev za informaciju
17 – Address Mask Request0Address Mask RequestZahtjev za masku adrese
18 – Address Mask Reply0Address Mask ReplyOdgovor na zahtjev masku adrese
19Reserved for securityRezervisano za sigurnost
20 do 29Reserved for robustness experimentRezervisano za eksperiment robusnosti
30 – Traceroute0Information RequestZahtjev za informacije
31Datagram Conversion ErrorGreška kod datagram konverzije
32Mobile Host RedirectPreusmjerenje mobilnog hosta
33Where-Are-YouPretraga za druge hostove na mreži (namjenjeno za IPv6)
34Here-I-AmOdgovor na pretragu za druge hostove (namjenjeno za IPv6)
35Mobile Registration RequestZahtjev za mobilnu registraciju
36Mobile Registration ReplyOdgovor na zahtjev za mobilnu registraciju
37Domain Name RequestZahtjev za ime domena
38Domain Name ReplyOdgovor na zahtjev za ime domena
39SKIP Algorithm Discovery ProtocolProtokol za otkrivanje sa SKIP algoritmom
40PhoturisPropust sigurnosti
41Za probne protokolne mobilnosti kao Seamoby [RFC4065]
42 do 255Rezervisano

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