Internet Control Message Protocol (ICMP) är ett tredje lager (nätverkslager) protokoll i OSI-modellen med sju lager. Protokollet diagnostiserar problem med nätverksanslutning eller dataöverföring mellan enheter. Det hjälper genom att skicka, ta emot och bearbeta ICMP-meddelanden för att rapportera anslutningsproblem till källnätverksenheten.

Därför är det primära syftet med ICMP-protokollet att rapportera fel i nätverkslagret. Men skadliga aktörer kan manipulera dess funktionalitet för att starta attacker som Distributed Denial of Service (DDoS) och Ping of Death-attacker. Här kommer du att lära dig om ICMP-protokollet, dess användningsfall och de parametrar som är viktiga för att förstå ICMP-meddelanden.

Hur fungerar ICMP?

Routrar använder ICMP-protokoll för att utföra nätverkshantering och utfärda diagnostik. Den genererar och skickar felmeddelanden till avsändarenheten när nätverket inaktiverar leveransen av paket till destinationsenheten. Dessa felmeddelanden inkluderar överskriden tid, parameterproblem, destination som inte kan nås, nätverksstockning, etc.

Till exempel, när en avsändare skickar data från en enhet till målenheten i form av ett IP-datagram, färdas den genom flera routrar eller mellanliggande enheter. Ibland kan det uppstå ett fel vid vidarebefordran av IPV4-datagrammet. Därför är ICMP-meddelanden indelade i två breda kategorier: felmeddelanden och frågemeddelanden.

Felrapporterande meddelanden

Dessa är meddelanden som routern eller mellanhandsvärden kan möta vid datagrambearbetning:

  1. Överskriden tid: ICMP-paketet har en time-to-live-parameter som när den når 0, kasserar routern eller värden datagrammet och skickar ett felmeddelande om överskriden tid. Meddelandet skickas också när destinationen inte tar emot alla datafragment.
  2. Destination kan inte nås: Den anslutningsinitierande enheten får ett destinationsfelmeddelande som inte går att nå när routern eller mellanvärden inte levererar det. Följaktligen kasserar enheterna datagrammet.
  3. Källa Quench: När enheterna misslyckas med att leverera datagrammet på grund av överbelastning i nätverket, skickar de ett ICMP "källa släckmeddelande" till meddelandeavsändaren. Felrapporteringsmeddelandet lägger till flödeskontroll i nätverkslagret genom att informera källenheten om överbelastning i sökvägen och sakta ner datasändningsprocessen.
  4. Omdirigering: En router i en icke-optimal väg omdirigerar paketet till en router med en optimal väg mellan källan och destinationen. Som sådan uppdaterar den källan om ändringen i dess rutt.
  5. Parameterproblem: Källenheten tar emot detta meddelande när det saknas värde i datagramhuvudet. Till exempel genererar skillnaden i beräknad kontrollsumma vid destinationen från källan detta ICMP-felmeddelande.

Fråga meddelanden

Frågemeddelanden förekommer i par och ger specifik information från de mellanliggande enheterna till källenheten.

  1. Echo-Request and Echo-Reply Message: Dessa meddelanden hjälper till att lösa nätverksdiagnostikproblem.
  2. Tidsstämpel begäran och svar: Dessa tidsstämpelförfrågningar och svarsmeddelanden hjälper till att bestämma tiden för tur och retur mellan enheterna.

Förstå ICMP-parametrar

ICMP-meddelandens data är inkapslad under IP-huvudet, vilket innebär att ICMP-datagramhuvudet kommer efter IPv4/v6-information. Den första delen av ICMP-pakethuvudet innehåller parametrarna som hjälper nätverksenheter att fastställa felet eller frågemeddelandet.

Bland de första 32 bitarna bestämmer de första 8 bitarna meddelandetypen, de nästa 8 bitarna bestämmer koden för meddelandet och de återstående bitarna innehåller information relaterad till dataintegriteten. Därför är de tre informationsfälten: ICMP-typer, ICMP-kod och Checksumma.

ICMP-typer

Typen avgör syftet med ICMP-paketet. Eftersom det kort förklarar varför källenheten tar emot det meddelandet. Det finns 0-255 typer av ICMP-meddelanden så att varje typ ger olika information. Några viktiga ICMP-typer är:

0: Ekoförfrågan

3: Destinationen går inte att nå

4: Source Quench

5: Omdirigera

8: Echo Reply

11: Tiden har överskridits

12: Parameterproblem

30: Traceroute

ICMP-kod

ICMP-koden ger ytterligare information om meddelandena. Till exempel anger ICMP typ 3 med kod 0-15 varför destinationen inte går att nå; det vill säga om koden är 0 så beror det på att nätverket inte är tillgängligt. På samma sätt, för typ 3 kod 1, anger meddelandet att värden inte går att nå.

Dessutom representerar typ 8 kod 0 och typ 0 kod 0 ekobegäran och ekosvarsmeddelanden. Därför ger varje meddelandetyp med samma kodvärde olika nätverksinformation.

Kontrollsumma

Kontrollsumman är en feldetekteringsmekanism som bestämmer dataintegriteten. Kontrollsummans värde representerar bitarna i överföringsmeddelandet. Avsändaren beräknar och inkluderar datakontrollsumman, och mottagaren räknar om värdet och jämför det med det ursprungliga för att fastställa eventuella ändringar av det ursprungliga meddelandet under överföring.

Den andra delen av rubriken pekar på bytevärdet som är orsaken till problemet i det ursprungliga meddelandet. Slutligen är slutdelen av ICMP-paketet det faktiska datagrammet.

Användningsfall för ICMP

Här är några fungerande exempel på ICMP-protokoll i olika nätverkshantering och administrativa verktyg.

Ping

Ping är ett kommandoradsverktyg som förlitar sig på ICMP-ekobegäran och ekosvarsmeddelanden för att testa nätverkstillgänglighet och latens mellan enheter. Verktyget bestämmer helt enkelt tillgängligheten för destinationsservern genom att uppskatta det totala paketet som skickas eller tas emot och procentandelen av paketförlusten. Det hjälper också att bestämma den totala maximala överföringsenhetens (MTU) storlek.

Använda sig av ping för att fastställa tillgängligheten på google.com:

Traceroute

Traceroute är ett annat kommandoradsverktyg som använder ekobegäran och ekosvarsmeddelanden med en TTL-variabel för att kartlägga sökvägen mellan käll- och destinationsenheter. Det är också användbart för att bestämma svarsfördröjningar och garanterar noggrannhet genom att fråga varje hopp flera gånger.

Hur fungerar ICMP utan en port?

Från ovanstående förklaring är ICMP ett anslutningslöst protokoll som skickar data oberoende som ett datagram, och dess rubrik visas efter IPv4-detaljer. Men du kan också märka avsaknaden av ett portnummer vilket väcker frågan om hur enheter tar emot ICMP-data eller blir medvetna om någon anslutning?

Svaret är ganska enkelt. ICMP-protokollet utformades för att fungera i nätverkslagret i OSI-modellen och kommunicera mellan routrar och värdar för att dela information. Portnummer är en del av transportskiktet och ICMP är varken ett TCP- eller UDP-protokoll. Slutligen hjälper ICMP-typ och kodkombination enheter att avgöra meddelandet och få all information om nätverket.

Fel och flödeskontroll med ICMP

Ovanstående detaljer om ICMP-protokollet visar hur det säkerställer flödeskontroll och felkontroll av data på lager tre av en OSI-modell. Protokollmeddelandena och parametrarna i den första delen av ICMP-pakethuvudet täcker alla aspekter av nätverkshantering och diagnosproblem.

Det är viktigt att veta att felaktiga brandväggsinställningar kan tillåta angripare att pinga genom organisationens nätverk och göra det benäget för DDOS, dödsping och ICMP översvämningsattacker. Du kan använda Wireshark för att fånga paket från internet och utför en detaljerad analys av ICMP-paketen för bättre förståelse.

5 sätt att fixa felet "Ett eller flera nätverksprotokoll saknas" i Windows 10

Läs Nästa

Dela med sigTweetDela med sigE-post

Relaterade ämnen

  • Teknik förklaras
  • Dator nätverk

Om författaren

Rumaisa Niazi (24 artiklar publicerade)

Rumaisa är frilansskribent på MUO. Hon har burit många hattar, från en matematiker till en informationssäkerhetsentusiast, och arbetar nu som SOC-analytiker. Hennes intressen inkluderar att läsa och skriva om ny teknik, Linux-distributioner och allt kring informationssäkerhet.

Mer från Rumaisa Niazi

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera