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
Nepoužito (32)
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ů

  1. Pokud dojde ke ztrátě ICMP paketu, nikdy se nevygeneruje nový.
  2. 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í “).
  3. 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

  1. Protokol ICMP . Získáno 29. října 2017. Archivováno z originálu 14. března 2016.

Odkazy