Internet Control Message Protocol (ICMP) er en tredje lag (netværkslag) protokol i OSI syv-lags modellen. Protokollen diagnosticerer netværksforbindelse eller datatransmissionsproblemer mellem enheder. Det hjælper ved at sende, modtage og behandle ICMP-meddelelser for at rapportere forbindelsesproblemer til kildenetværksenheden.
Derfor er det primære formål med ICMP-protokollen at rapportere fejl på netværkslaget. Dog kan ondsindede aktører manipulere dens funktionalitet til at starte angreb som Distributed Denial of Service (DDoS) og Ping of Death-angreb. Her vil du lære om ICMP-protokollen, dens brugssituation og de parametre, der er vigtige for at forstå ICMP-meddelelser.
Hvordan virker ICMP?
Routere bruger ICMP-protokol til at udføre netværksstyring og problemdiagnose. Den genererer og sender fejlmeddelelser til afsenderenheden, når netværket deaktiverer leveringen af pakker til destinationsenheden. Disse fejlmeddelelser inkluderer overskredet tid, parameterproblem, destination, der ikke kan nås, netværksoverbelastning osv.
For eksempel, når en afsender sender data fra én enhed til destinationsenheden i form af et IP-datagram, rejser den gennem flere routere eller mellemliggende enheder. Nogle gange kan der være en fejl ved videresendelse af dette IPV4-datagram. Derfor er ICMP-meddelelser opdelt i to brede kategorier: fejlmeddelelser og forespørgselsmeddelelser.
Fejlrapportering af meddelelser
Disse er de meddelelser, som routeren eller mellemværten kan møde i datagrambehandling:
- Overskredet tid: ICMP-pakken har en time-to-live-parameter, at når den når 0, kasserer routeren eller værten datagrammet og sender en fejlmeddelelse om overskredet tid. Meddelelsen sendes også, når destinationen ikke modtager alle datafragmenter.
- Destination ikke tilgængelig: Den forbindelsesinitierende enhed modtager en destinationsfejlmeddelelse, der ikke kan nås, når routeren eller mellemværten ikke leverer den. Følgelig kasserer enhederne datagrammet.
- Source Quench: Når enhederne ikke leverer datagrammet på grund af overbelastning af netværket, sender de en ICMP "source quench message" til meddelelsesafsenderen. Fejlrapporteringsmeddelelsen tilføjer flowkontrol i netværkslaget ved at informere kildeenheden om overbelastning i stien og sænke dataafsendelsesprocessen.
- Omdirigering: En router i en ikke-optimal sti omdirigerer pakken til en router med en optimal sti mellem kilden og destinationen. Som sådan opdaterer den kilden om ændringen i dens rute.
- Parameter problem: Kildeenheden modtager denne besked, når der mangler en værdi i datagramheaderen. For eksempel genererer forskellen i den beregnede kontrolsum på destinationen fra kilden denne ICMP-fejlmeddelelse.
Forespørgselsmeddelelser
Forespørgselsmeddelelserne forekommer i par og giver specifik information fra de mellemliggende enheder til kildeenheden.
- Ekko-anmodning og ekko-svar-meddelelse: Disse meddelelser hjælper med at løse netværksdiagnoseproblemer.
- Tidsstempelanmodning og svar: Disse tidsstemplingsanmodninger og svarbeskeder hjælper med at bestemme rundturstiden mellem enhederne.
Forståelse af ICMP-parametre
ICMP-meddelelsesdataene er indkapslet under IP-headeren, hvilket betyder, at ICMP-datagram-headeren kommer efter IPv4/v6-information. Den første del af ICMP-pakkeheaderen indeholder de parametre, der hjælper netværksenheder med at bestemme fejl- eller forespørgselsmeddelelsen.
Blandt de første 32 bit bestemmer de første 8 bit meddelelsestypen, de næste 8 bit bestemmer koden for meddelelsen, og de resterende bit indeholder information relateret til dataintegriteten. Derfor er de tre informationsfelter: ICMP-typer, ICMP-kode og Checksum.
ICMP typer
Typen bestemmer formålet med ICMP-pakken. Da det kort forklarer, hvorfor kildeenheden modtager den besked. Der er 0-255 typer ICMP-meddelelser, således at hver type giver forskellige oplysninger. Nogle vigtige ICMP-typer er:
0: Ekko-anmodning
3: Destination kan ikke nås
4: Source Quench
5: Omdirigere
8: Ekko-svar
11: Tiden er overskredet
12: Parameterproblem
30: Traceroute
ICMP kode
ICMP-koden giver yderligere oplysninger om meddelelserne. For eksempel angiver ICMP type 3 med kode 0-15, hvorfor destinationen ikke kan nås; det vil sige, hvis koden er 0, så er det fordi netværket ikke er tilgængeligt. Tilsvarende angiver meddelelsen for type 3 kode 1, at værten ikke er tilgængelig.
Desuden repræsenterer type 8 kode 0 og type 0 kode 0 ekko-anmodnings- og ekkosvar-meddelelser. Derfor giver hver meddelelsestype med den samme kodeværdi forskellige netværksoplysninger.
Kontrolsum
Kontrolsummen er en fejldetektionsmekanisme, der bestemmer dataintegriteten. Kontrolsumværdien repræsenterer bits i transmissionsmeddelelsen. Afsenderen beregner og inkluderer datakontrolsummen, og modtageren genberegner værdien og sammenligner den med den originale for at bestemme eventuelle ændringer til den oprindelige besked under smitte.
Den anden del af overskriften peger på byteværdien, der er årsagen til problemet i den oprindelige meddelelse. Til sidst er slutdelen af ICMP-pakken det faktiske datagram.
ICMP Use Case
Her er nogle fungerende eksempler på ICMP-protokol i forskellige netværksstyring og administrative hjælpeprogrammer.
Ping
Ping er et kommandolinjeværktøj, der er afhængigt af ICMP ekko-anmodning og ekko-svar-meddelelser for at teste netværkstilgængelighed og latenstid mellem enheder. Værktøjet bestemmer blot tilgængeligheden af destinationsserveren ved at estimere den samlede pakke, der sendes eller modtages, og procentdelen af pakketab. Det hjælper også med at bestemme den samlede maksimale transmissionsenhed (MTU) størrelse.
Brug ping for at bestemme tilgængeligheden af google.com:
Traceroute
Traceroute er et andet kommandolinjeværktøj, der bruger ekko-anmodning og ekko-svar-meddelelser med en TTL-variabel til at kortlægge stien mellem kilde- og destinationsenheder. Det er også nyttigt til at bestemme svarforsinkelser og sikrer nøjagtighed ved at forespørge hvert hop flere gange.
Hvordan fungerer ICMP uden en port?
Fra ovenstående forklaring er ICMP en forbindelsesfri protokol, der sender data uafhængigt som et datagram, og dens overskrift vises efter IPv4-detaljer. Men du kan også bemærke fraværet af et portnummer, hvilket rejser spørgsmålet om, hvordan enheder modtager ICMP-data eller bliver opmærksomme på en forbindelse?
Svaret er ret simpelt. ICMP-protokollen blev designet til at fungere på netværkslaget i OSI-modellen og kommunikere mellem routere og værter for at dele information. Portnumre er en del af transportlaget, og ICMP er hverken en TCP- eller en UDP-protokol. Endelig hjælper ICMP-typen og kodekombinationen enheder med at bestemme meddelelsen og få alle oplysninger om netværket.
Fejl og flowkontrol med ICMP
Ovenstående detaljer om ICMP-protokollen viser, hvordan den sikrer flowkontrol og fejlkontrol af data på lag tre i en OSI-model. Protokolmeddelelserne og parametrene i den første del af ICMP-pakkeheaderen dækker alle aspekter af netværksstyring og diagnoseproblemer.
Det er vigtigt at vide, at ukorrekte firewall-indstillinger kan give angribere mulighed for at ping-feje gennem organisationens netværk og gøre det tilbøjeligt til DDOS, ping of death og ICMP oversvømmelsesangreb. Du kan bruge Wireshark til at fange pakker fra internettet og udføre en detaljeret analyse af ICMP-pakkerne for bedre forståelse.
5 måder at rette fejlen "En eller flere netværksprotokoller mangler" på i Windows 10
Læs Næste
Relaterede emner
- Teknologi forklaret
- Computernetværk
Om forfatteren

Rumaisa er freelanceskribent på MUO. Hun har båret mange hatte, fra en matematiker til en informationssikkerhedsentusiast, og arbejder nu som SOC-analytiker. Hendes interesser inkluderer at læse og skrive om nye teknologier, Linux-distributioner og alt omkring informationssikkerhed.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere