Internet Control Message Protocol (ICMP) je protokol třetí vrstvy (síťová vrstva) v sedmivrstvém modelu OSI. Protokol diagnostikuje problémy se síťovým připojením nebo přenosem dat mezi zařízeními. Pomáhá odesíláním, přijímáním a zpracováním zpráv ICMP pro hlášení problémů s připojením do zdrojového síťového zařízení.
Primárním účelem protokolu ICMP je tedy hlásit chyby na síťové vrstvě. Zlomyslní aktéři však mohou manipulovat s jejími funkcemi a spouštět útoky, jako je Distributed Denial of Service (DDoS) a útoky Ping of Death. Zde se dozvíte o protokolu ICMP, jeho případu použití a parametrech, které jsou důležité pro pochopení zpráv ICMP.
Jak ICMP funguje?
Směrovače používají protokol ICMP k provádění správy sítě a diagnostiky problémů. Generuje a odesílá chybové zprávy odesílajícímu zařízení, když síť zakáže doručování paketů do cílového zařízení. Tyto chybové zprávy zahrnují překročení času, problém s parametry, nedosažitelný cíl, přetížení sítě atd.
Například, když odesílatel odešle data z jednoho zařízení do cílového zařízení ve formě IP datagramu, prochází více routery nebo zprostředkujícími zařízeními. Občas může dojít k chybě při předávání datagramu IPV4. Proto jsou zprávy ICMP rozděleny do dvou širokých kategorií: chybové zprávy a zprávy dotazů.
Zprávy hlášení chyb
Toto jsou zprávy, kterým může router nebo zprostředkující hostitel čelit při zpracování datagramu:
- Překročený čas: Paket ICMP má parametr time-to-live, který když dosáhne 0, router nebo hostitel zahodí datagram a odešle chybovou zprávu o překročení času. Zpráva je také odeslána, když cíl neobdrží všechny datové fragmenty.
- Cíl nedosažitelný: Zařízení iniciující připojení obdrží chybovou zprávu o nedosažitelném cíli, když ji směrovač nebo zprostředkující hostitel nedokáže doručit. V důsledku toho zařízení zahodí datagram.
- Zdroj Quench: Když zařízení nedoručí datagram z důvodu přetížení sítě, odešlou odesílateli zprávy ICMP „zdrojovou zhášecí zprávu“. Zpráva hlášení chyb přidává řízení toku v síťové vrstvě tím, že informuje zdrojové zařízení o přetížení cesty a zpomaluje proces odesílání dat.
- přesměrování: Směrovač v jiné než optimální cestě přesměruje paket na směrovač s optimální cestou mezi zdrojem a cílem. Jako takový aktualizuje zdroj o změně své trasy.
- Problém s parametrem: Zdrojové zařízení obdrží tuto zprávu, když v hlavičce datagramu chybí jakákoliv hodnota. Například rozdíl ve vypočítaném kontrolním součtu v cíli od zdroje generuje tuto chybovou zprávu ICMP.
Dotaz na zprávy
Dotazové zprávy se vyskytují ve dvojicích a poskytují specifické informace od zprostředkujících zařízení do zdrojového zařízení.
- Echo-Request a Echo-Reply message: Tyto zprávy pomáhají vyřešit problémy s diagnostikou sítě.
- Žádost o časové razítko a odpověď: Tyto požadavky na časové razítko a zprávy s odpovědí pomáhají určit dobu zpáteční cesty mezi zařízeními.
Pochopení parametrů ICMP
Data zpráv ICMP jsou zapouzdřena pod hlavičkou IP, což znamená, že hlavička datagramu ICMP následuje po informacích IPv4/v6. První část hlavičky paketu ICMP obsahuje parametry, které pomáhají síťovým zařízením určit chybovou nebo dotazovací zprávu.
Mezi prvními 32 bity určuje prvních 8 bitů typ zprávy, dalších 8 bitů určuje kód zprávy a zbývající bity obsahují informace týkající se integrity dat. Tři informační pole jsou tedy: typy ICMP, kód ICMP a kontrolní součet.
Typy ICMP
Typ určuje účel ICMP paketu. Stručně vysvětluje, proč zdrojové zařízení přijímá tuto zprávu. Existuje 0–255 typů zpráv ICMP, takže každý typ poskytuje různé informace. Některé důležité typy ICMP jsou:
0: Požadavek na echo
3: Cíl nedosažitelný
4: Source Quench
5: Přesměrování
8: Echo Reply
11: Čas překročen
12: Problém s parametry
30: Traceroute
ICMP kód
Kód ICMP poskytuje další informace o zprávách. Například ICMP typ 3 s kódem 0-15 udává, proč je cíl nedostupný; to znamená, že pokud je kód 0, je to proto, že síť je nedostupná. Podobně pro typ 3 kód 1 zpráva uvádí, že hostitel je nedostupný.
Navíc typ 8 kód 0 a typ 0 kód 0 představují zprávy s echo-požadavky a echo odpovědí. Každý typ zprávy se stejnou hodnotou kódu tedy poskytuje různé síťové informace.
Kontrolní součet
Kontrolní součet je mechanismus detekce chyb, který určuje integritu dat. Hodnota kontrolního součtu představuje bity v přenosové zprávě. Odesílatel vypočítá a zahrne kontrolní součet dat a příjemce přepočítá hodnotu a porovná ji s původní zprávou, aby zjistil případné změny původní zprávy během přenos.
Druhá část záhlaví ukazuje na hodnotu bajtu, která je příčinou problému v původní zprávě. Konečně, koncová část ICMP paketu je skutečný datagram.
Případ použití ICMP
Zde je několik pracovních příkladů protokolu ICMP v různých verzích nástroje pro správu sítě a správu.
Ping
Ping je nástroj příkazového řádku, který se spoléhá na zprávy ICMP echo-request a echo-reply pro testování dostupnosti sítě a latence mezi zařízeními. Obslužný program jednoduše určí dostupnost cílového serveru odhadem celkového odeslaného nebo přijatého paketu a procenta ztráty paketů. Pomáhá také určit velikost celkové maximální přenosové jednotky (MTU).
Použití ping zjistit dostupnost google.com:
Traceroute
Traceroute je další nástroj příkazového řádku, který používá zprávy echo-request a echo-reply s proměnnou TTL k mapování cesty mezi zdrojovým a cílovým zařízením. Je také užitečný při určování zpoždění odezvy a zajišťuje přesnost tím, že se dotazuje na každý skok vícekrát.
Jak funguje ICMP bez portu?
Z výše uvedeného vysvětlení vyplývá, že ICMP je protokol bez připojení, který odesílá data nezávisle jako datagram a jeho hlavička se zobrazuje po podrobnostech IPv4. Můžete si však také všimnout absence čísla portu, což vyvolává otázku, jak zařízení přijímají data ICMP nebo jak se dozvědí o jakémkoli připojení?
Odpověď je docela jednoduchá. Protokol ICMP byl navržen tak, aby fungoval na síťové vrstvě modelu OSI a komunikoval mezi směrovači a hostiteli za účelem sdílení informací. Čísla portů jsou součástí transportní vrstvy a ICMP není protokol TCP ani UDP. A konečně, kombinace typu ICMP a kódu pomáhá zařízením určit zprávu a získat všechny informace o síti.
Řízení chyb a toku pomocí ICMP
Výše uvedené podrobnosti o protokolu ICMP ukazují, jak zajišťuje řízení toku a kontrolu chyb dat na vrstvě tři modelu OSI. Protokolové zprávy a parametry v první části hlavičky paketu ICMP pokrývají všechny aspekty správy sítě a problémů diagnostiky.
Je důležité vědět, že nesprávné nastavení brány firewall může útočníkům umožnit procházet sítí organizace pomocí příkazu ping a učinit ji náchylnou k útokům typu DDOS, ping of death a ICMP flood. Můžeš použít Wireshark k zachycení paketů z internetu a provést podrobnou analýzu paketů ICMP pro lepší pochopení.
5 způsobů, jak opravit chybu „Chybí jeden nebo více síťových protokolů“ ve Windows 10
Přečtěte si další
Související témata
- Technologie vysvětlena
- Počítačové sítě
O autorovi
Rumaisa je spisovatelkou na volné noze v MUO. Nosila mnoho klobouků, od matematičky po nadšence pro informační bezpečnost, a nyní pracuje jako analytička SOC. Mezi její zájmy patří čtení a psaní o nových technologiích, linuxových distribucích a všem kolem Information Security.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem