|  |  |
| --- | --- |
|    | **Šiam straipsniui ar jo daliai trūksta išnašų į šaltinius.**Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |

**ICMP** (angl. *Internet Control Message Protocol*) – interneto kontrolės žinučių protokolas. ICMP priklauso TCP/IP protokolų šeimai ir priskiriamas OSI tinklo sluoksnio protokolams. Protokolas neturi jokio gavimo patvirtinimo funkcijos, todėl laikomas nepatikimu. Pagrindinė protokolo paskirtis – perduoti klaidos informaciją duomenų siuntėjui. Informacija dažniausiai perduodama tarp prie tinklo prijungto kompiuterio ir tinklinės įrangos, pvz. maršrutizatoriaus. Galimų klaidų pavyzdžiai: nutolusios aptarnavimo stoties prievadas yra nepasiekiamas arba maršrutizatorius nežino, kaip pasiekti gavėjo tinklą. Protokolas taip pat naudojamas atlikti užklausas.

Plačiausiai žinomi ICMP pritaikymai yra programos *ping* ir *traceroute*.

ICMP antraštės sudėtis
----------------------

ICMP antraštė seka iškart po IP antraštės.

### Antraštė

| + | Bitai: 0–7 | 8–15 | 16–31 |
| --- | --- | --- | --- |
| 0 | Tipas | Kodas | Duomenų patikros suma |
|

TipasICMP žinutės tipas. Klaidos pranešimai, užklausos ir atsakymai turi skirtingus tipo numerius.
KodasPlatesnė ICMP tipo specifikacija, pvz.: klaidos pranešime apie nepasiekiamą gavėją nurodoma priežastis, kodėl gavėjas yra nepasiekiamas.
Duomenų patikros sumaSkaičius naudojamas patikrinti, ar gautos ICMP žinutės turinys yra nepakitęs.
### ICMP tipai

ICMP žinutės skirstomos į klaidos pranešimo, užklausos ir atsakymo tipus.

#### ICMP klaidos pranešimo tipai

3 – Nepasiekiama paskirtis (angl. *Destination Unreachable*). Paprastai siunčiama maršrutizatoriaus siuntėjui, pranešant, kad siunčiamas duomenų paketas nepasiekė gavėjo dėl priežasties nurodytos ICMP kode.

4 – Šaltinio gesinimas (angl. *Source Quench*). Maršrutizatorius praneša siuntėjui, kad negalėjo persiusti jo duomenų paketo dėl nepakankamo maršrutizatorius pajėgumo.

5 – Gavėjo peradresavimas (angl. *Redirect*). Siunčia maršrutizatorius prie to paties tinklo ar potinklio prijungtam kompiuteriui, jei duomenų paketo gavėjas yra pasiekiamas per kitą maršrutizatorių, prijungtą prie to paties tinklo ar potinklio. Taip maršrutizatorius nurodo artimesnį maršrutą, kaip pasiekti gavėją.

11 – Galiojimo laikas baigėsi (angl. *Time Exceeded*). Maršrutizatorius praneša siuntėjui, kad užtruko daugiau laiko nei leistina duomenų paketo perdavimui, todėl paketas nebuvo siunčiamas.

#### ICMP užklausų ir atsakymų tipai

0 – Atsakas į atsakymo užklausimą (angl. *Echo Reply*). Išsiųsta ICMP žinutė kaip atsakas į 8 tipo žinutę. Naudojamas *ping* programos.

8 – Atsakymo užklausimas (angl. *Echo Request*). Ši ICMP žinutė siunčiama, kai norima, kad gavėjas išsiųstų atsakymą be jokios kitos informacijos. Taip gavėjas patvirtina, kad yra prijungtas prie tinklo. Naudojamas *ping* programos.

13 – Laiko užklausimas (angl. *Timestamp Request*). ICMP žinutė, skirta laiko sinchronizavimui tinkle. Siuntėjas prie žinutės prideda išsiuntimo laiką.

14 – Atsakymas į laiko užklausimą (angl. *Timestamp Reply*). Ši ICMP žinutė išsiunčiama kaip atsakas į 13 tipo žinutę. Į atsakymą įtraukiamas 13 tipo žinutės gavimo laikas ir atsakymo išsiuntimo laikas.

17 – Potinklo kaukės užklausimas (angl. *Address Mask Request*). Naudojama nustatyti tiesiogiai prijungto tinklo IP adreso potinklio kaukę.

18 – Atsakymas į potinklo kaukės užklausimą (angl. *Address Mask Reply*). Atsakymas į 17 tipo žinutę su savo IP adreso potinklio kauke.