ICMP
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 26. března 2014; kontroly vyžadují
55 úprav .
ICMP |
název |
Internet Control Message Protocol |
Úroveň (podle modelu OSI ) |
síť |
Rodina |
TCP/IP |
Specifikace |
RFC 792 |
Mediální soubory na Wikimedia Commons |
ICMP ( Internet Control Message Protocol ) je síťový protokol zahrnutý v zásobníku protokolů TCP/IP . Protokol ICMP se primárně používá k hlášení chyb a dalších výjimek, které se vyskytnou při přenosu dat, například když požadovaná služba není dostupná nebo hostitel či router neodpovídá. Také některé servisní funkce (služby) jsou přiřazeny ICMP.
Technické detaily
Protokol ICMP je popsán v RFC 792 z roku 1981 od Jona Postela (s dodatky v RFC 950 ). ICMP je internetový standard (součástí STD 5 spolu s IP ). Ačkoli protokol formálně používá IP (pakety ICMP jsou zapouzdřeny v paketech IP), je nedílnou součástí IP a je povinný při implementaci TCP/IP stacku . Aktuální verze ICMP pro IPv4 se nazývá ICMPv4. IPv6 má podobný protokol, ICMPv6 .
Zpráva ICMP je sestavena z paketů IP, které vygenerovaly odpověď ICMP. Protokol IP zapouzdří odpovídající zprávu ICMP novou hlavičkou IP (pro odeslání zprávy ICMP zpět odesílateli) a předá přijaté pakety.
Například každý počítač, který přeposílá IP pakety (jako je router ), snižuje pole Time to live (TTL) v hlavičce IP paketu o jednu; pokud TTL dosáhne 0, je do zdroje paketu odeslána zpráva o překročení TTL ICMP.
ICMP je založen na protokolu IP. Každá ICMP zpráva je zapouzdřena přímo do jednoho IP paketu, a proto, stejně jako UDP a na rozdíl od TCP , je ICMP tzv. „nespolehlivý“ (nekontroluje doručení a jeho správnost). Na rozdíl od UDP, kde je implementace spolehlivosti přiřazena softwaru aplikační vrstvy, ICMP (kvůli specifikům aplikace) obvykle nepotřebuje implementovat spolehlivé doručení. Jeho účel je odlišný od účelu transportních protokolů, jako jsou TCP a UDP: obecně se nepoužívá k odesílání a přijímání dat mezi koncovými systémy. ICMP se nepoužívá přímo v síťových uživatelských aplikacích (kromě nástrojů Ping a Traceroute ). Stejný Ping například obvykle slouží jen ke kontrole ztráty IP paketů na trase.
Používání zpráv ICMP
Zprávy ICMP (typ 12) jsou generovány, když jsou nalezeny chyby v hlavičce paketu IP (s výjimkou samotných paketů ICMP, aby to nevedlo k nekonečně rostoucímu proudu zpráv ICMP o zprávách ICMP).
Zprávy ICMP (typ 3) generuje router , když neexistuje žádná cesta k cíli.
Obslužný program Ping , který testuje, zda je možné doručit IP pakety, používá zprávy ICMP typu 8 (echo request) a 0 (echo response).
Nástroj Traceroute , který zobrazuje cestu paketů IP, používá zprávy ICMP s typem 11.
Zprávy ICMP typu 5 používají směrovače k aktualizaci položek ve směrovací tabulce odesílatele
.
Zprávy ICMP typu 4 jsou používány příjemcem (nebo směrovačem) k řízení rychlosti, kterou jsou zprávy odesílány odesílatelem.
Formát paketů ICMP
oktet (bajt) |
0 |
jeden |
2 |
3 |
čtyři |
5 |
6 |
7 |
osm |
9 |
deset |
jedenáct |
12 |
13 |
čtrnáct |
patnáct |
16 |
17 |
osmnáct |
19 |
dvacet |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
třicet |
31
|
[0-3] |
Typ |
Kód |
Kontrolní součet
|
… |
Data (formát závisí na hodnotách polí "Kód" a "Typ")
|
Typy paketů ICMP
Typ
|
Postavení |
Kód |
Zpráva |
Data (délka, bity)
|
0
|
| 0 |
echo odpověď
|
ID (16) |
pořadové číslo (16)
|
Data (proměnná)
|
|
12
|
nepoužívá |
| Rezervováno |
|
3
|
| Cíl nedosažitelný
|
Nepoužito (32)
|
IP záhlaví, začátek zdrojového datagramu (64)
|
|
|
0 |
Síť nedostupná
|
|
jeden |
Uzel nedostupný
|
|
2 |
Protokol je nedostupný
|
|
3 |
Port nedostupný
|
|
čtyři |
Je vyžadována fragmentace, ale je nastaven příznak zakázání (DF).
|
|
5 |
Neplatná trasa ze zdroje
|
|
6 |
Cílová síť neznámá
|
|
7 |
Cílový hostitel neznámý
|
|
osm |
Zdroj uzlu izolovaný
|
|
9 |
Síť je administrativně zakázána
|
|
deset |
Uzel je administrativně zakázán
|
|
jedenáct |
Síť není pro smluvní podmínky dostupná
|
|
12 |
Uzel je pro ToS nedostupný
|
|
13 |
Komunikace je administrativně zakázána
|
|
čtrnáct |
Porušení objednávky preferencí uzlu
|
|
patnáct |
Prořezávání preferencí je aktivní
|
čtyři
|
zastaralý |
0 |
Uzavření zdroje (vypnutí zdroje při přetečení fronty)
|
5
|
| přesměrovat
|
Adresa routeru (32)
|
IP záhlaví, začátek zdrojového datagramu (64)
|
|
|
0 |
Předávání paketů do sítě
|
|
jeden |
Předávání paketů hostiteli
|
|
2 |
Přeposlat podle typu služby (ToS)
|
|
3 |
Předání paketu hostiteli pro každý typ služby
|
6
|
zastaralý |
0 |
Alternativní adresa hostitele |
|
7
|
nepoužívá |
| Rezervováno |
|
osm
|
| 0 |
žádost o echo
|
ID (16) |
pořadové číslo (16)
|
Data (proměnná)
|
|
9
|
| 0 |
Reklama na router
|
Počet adres (8) |
Velikost položky (8) |
Platnost (16)
|
Adresa[1] (32)
|
Preference[1] (32)
|
…
|
Adresa[N] (32)
|
Preference[N] (32)
|
|
deset
|
| 0 |
Požadavek routeru
|
|
jedenáct
|
| Vypršela životnost datagramu
|
Nepoužito (32)
|
IP záhlaví, začátek zdrojového datagramu (64)
|
|
|
0 |
Doba trvání paketu (TTL) vypršela při přenosu
|
|
jeden |
Při vytváření fragmentů vypršela životnost balíčku
|
12
|
| Neplatný parametr (problém s parametry datagramu: chyba v hlavičce IP nebo chybějící povinná volba)
|
|
0 |
Ukazatel indikuje chybu
|
Ukazatel (8) |
Nepoužito (24)
|
IP záhlaví, začátek zdrojového datagramu (64)
|
|
|
jeden |
Chybí požadovaná možnost
|
Nepoužito (32)
|
IP záhlaví, začátek zdrojového datagramu (64)
|
|
|
2 |
Nesprávná délka
|
13
|
| 0 |
Žádost o časové razítko
|
ID (16) |
pořadové číslo (16)
|
Čas zahájení (32)
|
Doba příjmu (32)
|
Čas odjezdu (32)
|
|
čtrnáct
|
| 0 |
Odpověď s časovým razítkem
|
patnáct
|
zastaralý |
0 |
Žádost o informace
|
ID (16) |
pořadové číslo (16)
|
|
16
|
zastaralý |
0 |
Informační odezva
|
17
|
zastaralý |
0 |
Žádost o masku adresy
|
ID (16) |
pořadové číslo (16)
|
Maska (32)
|
|
osmnáct
|
zastaralý |
0 |
Odpověď masky adresy
|
19
|
Rezervováno |
| Rezervováno (pro bezpečnost) |
|
20-29
|
Rezervováno |
| Rezervováno (pro experimenty s tolerancí chyb) |
|
třicet
|
zastaralý |
Trasa trasy
|
ID (16) |
Nepoužito (16)
|
Počet přeskoků odchozích paketů (16) |
Počet skoků vracejícího se paketu (16)
|
Rychlost připojení (32)
|
Odkaz
MTU (32) |
|
0 |
Odchozí paket byl úspěšně odeslán
|
jeden |
Cesta pro odchozí paket nenalezena, paket zničen
|
31
|
zastaralý |
Chyba převodu datagramu
|
Ukazatel (32)
|
IP a transportní hlavička původního datagramu
|
|
0 |
Neznámá nebo nespecifikovaná chyba
|
jeden |
Možnost nelze převést
|
2 |
Neznámá požadovaná možnost
|
3 |
Nepodporovaná požadovaná možnost
|
čtyři |
Nepodporovaný přenosový protokol
|
5 |
Celková délka překročena
|
6 |
Byla překročena délka hlavičky IP
|
7 |
Číslo transportního protokolu větší než 255
|
osm |
Číslo portu je mimo rozsah
|
9 |
Byla překročena délka záhlaví přenosového protokolu
|
deset |
32bitové překročení hranice a nastaven bit ACK
|
jedenáct |
Neznámá požadovaná možnost transportního protokolu
|
32
|
zastaralý |
| Přesměrování mobilního hostitele |
|
33
|
zastaralý |
| IPv6 Where-Are-You (kde jste) |
|
34
|
zastaralý |
| IPv6 I-Am-Here (Jsem zde) |
|
35
|
zastaralý |
| Požadavek na přesměrování mobilního uzlu |
|
36
|
zastaralý |
| Odpověď na požadavek na přesměrování pro mobilní uzel |
|
37
|
zastaralý |
| Žádost o název domény |
|
38
|
zastaralý |
| Odpověď na požadavek na název domény |
|
39
|
zastaralý |
| Zpráva ICMP pro zjištění algoritmu SKIP |
|
40
|
| Photuris |
|
|
0 |
Rezervováno
|
|
jeden |
Neznámý index nastavení zabezpečení
|
|
2 |
Nastavení zabezpečení je správné, ale došlo k chybě ověřování
|
|
3 |
Nastavení zabezpečení je správné, ale dešifrování se nezdařilo
|
|
čtyři |
Vyžadováno ověření
|
|
5 |
Vyžadována autorizace
|
41
|
experimentální
|
|
|
|
42-252
|
|
| Rezervováno
|
|
253-254
|
experimentální
|
|
Vyhrazeno pro experimentování s RFC 3692
|
|
255
|
Rezervováno
|
|
Rezervováno
|
|
Pravidla pro generování ICMP paketů
- Pokud dojde ke ztrátě ICMP paketu, nikdy se nevygeneruje nový.
- Pakety ICMP nejsou nikdy generovány jako odezva na pakety IP s adresou všesměrového vysílání nebo vícesměrového vysílání, aby nedošlo k zahlcení sítě (tzv. „ bůra vysílání “).
- Pokud je fragmentovaný paket IP poškozen, zpráva ICMP se odešle okamžitě po přijetí prvního poškozeného fragmentu, protože odesílatel bude stále znovu přenášet celý paket IP.
Viz také
Poznámky
- ↑ Protokol ICMP . Získáno 29. října 2017. Archivováno z originálu 14. března 2016. (neurčitý)
Odkazy