Internet Control Message Protocol (ICMP) er et tredje lag (nettverkslag) protokoll i OSI syvlagsmodellen. Protokollen diagnostiserer nettverkstilkobling eller dataoverføringsproblemer mellom enheter. Det hjelper ved å sende, motta og behandle ICMP-meldinger for å rapportere tilkoblingsproblemer til kildenettverksenheten.
Derfor er det primære formålet med ICMP-protokollen å rapportere feil på nettverkslaget. Imidlertid kan ondsinnede aktører manipulere funksjonaliteten for å starte angrep som Distributed Denial of Service (DDoS) og Ping of Death-angrep. Her vil du lære om ICMP-protokollen, dens brukstilfelle og parameterne som er viktige for å forstå ICMP-meldinger.
Hvordan fungerer ICMP?
Rutere bruker ICMP-protokollen for å utføre nettverksadministrasjon og problemdiagnose. Den genererer og sender feilmeldinger til avsenderenheten når nettverket deaktiverer levering av pakker til destinasjonsenheten. Disse feilmeldingene inkluderer overskredet tid, parameterproblem, destinasjon uoppnåelig, nettverksbelastning osv.
For eksempel, når en avsender sender data fra én enhet til destinasjonsenheten i form av et IP-datagram, går den gjennom flere rutere eller mellomliggende enheter. Noen ganger kan det være en feil ved videresending av IPV4-datagrammet. Derfor er ICMP-meldinger delt inn i to brede kategorier: feilmeldinger og spørringsmeldinger.
Feilrapporteringsmeldinger
Dette er meldingene som ruteren eller mellomverten kan møte i datagrambehandling:
- Overskredet tid: ICMP-pakken har en time-to-live-parameter som når den når 0, forkaster ruteren eller verten datagrammet og sender en feilmelding for overskredet tid. Meldingen sendes også når destinasjonen ikke mottar alle datafragmenter.
- Uoppnåelig destinasjon: Den tilkoblingsinitierende enheten mottar en feilmelding som ikke kan nås når ruteren eller mellomverten ikke klarer å levere den. Følgelig forkaster enhetene datagrammet.
- Kildeslukking: Når enhetene ikke klarer å levere datagrammet på grunn av overbelastning i nettverket, sender de en ICMP "kildeslukkingsmelding" til meldingsavsenderen. Feilrapporteringsmeldingen legger til flytkontroll i nettverkslaget ved å informere kildeenheten om overbelastning i banen og senke datasendingsprosessen.
- Omdirigering: En ruter i en ikke-optimal bane omdirigerer pakken til en ruter med en optimal bane mellom kilden og destinasjonen. Som sådan oppdaterer den kilden om endringen i ruten.
- Parameterproblem: Kildeenheten mottar denne meldingen når det mangler en verdi i datagramoverskriften. For eksempel genererer forskjellen i beregnet kontrollsum ved destinasjonen fra kilden denne ICMP-feilmeldingen.
Spørre meldinger
Spørringsmeldingene forekommer i par og gir spesifikk informasjon fra de mellomliggende enhetene til kildeenheten.
- Ekko-forespørsel og ekko-svar-melding: Disse meldingene hjelper til med å løse nettverksdiagnoseproblemer.
- Tidsstempelforespørsel og svar: Disse tidsstemplingsforespørslene og svarmeldingene hjelper til med å bestemme rundturstiden mellom enhetene.
Forstå ICMP-parametre
ICMP-meldingsdataene er innkapslet under IP-overskriften, noe som betyr at ICMP-datagramoverskriften kommer etter IPv4/v6-informasjon. Den første delen av ICMP-pakkeoverskriften inneholder parameterne som hjelper nettverksenheter med å finne feilen eller spørringsmeldingen.
Blant de første 32 bitene bestemmer de første 8 bitene meldingstypen, de neste 8 bitene bestemmer koden til meldingen, og de resterende bitene inneholder informasjon relatert til dataintegriteten. Derfor er de tre informasjonsfeltene: ICMP-typer, ICMP-kode og kontrollsum.
ICMP-typer
Typen bestemmer formålet med ICMP-pakken. Siden den kort forklarer hvorfor kildeenheten mottar den meldingen. Det er 0-255 typer ICMP-meldinger slik at hver type gir forskjellig informasjon. Noen viktige ICMP-typer er:
0: Ekkoforespørsel
3: Destinasjon uoppnåelig
4: Kildeslukking
5: Omdirigere
8: Ekkosvar
11: Tiden er overskredet
12: Parameterproblem
30: Traceroute
ICMP-kode
ICMP-koden gir tilleggsinformasjon om meldingene. For eksempel spesifiserer ICMP type 3 med kode 0-15 hvorfor destinasjonen ikke er tilgjengelig; det vil si at hvis koden er 0, så er det fordi nettverket er utilgjengelig. På samme måte, for type 3 kode 1, spesifiserer meldingen at verten ikke er tilgjengelig.
Dessuten representerer type 8 kode 0 og type 0 kode 0 ekkoforespørsel og ekkosvarmeldinger. Derfor gir hver meldingstype med samme kodeverdi forskjellig nettverksinformasjon.
Sjekksum
Kontrollsummen er en feildeteksjonsmekanisme som bestemmer dataintegriteten. Kontrollsumverdien representerer bitene i overføringsmeldingen. Avsenderen beregner og inkluderer datasjekksummen, og mottakeren beregner verdien og på nytt sammenligner den med den opprinnelige for å fastslå eventuelle endringer i den opprinnelige meldingen under overføring.
Den andre delen av overskriften peker på byteverdien som er årsaken til problemet i den opprinnelige meldingen. Til slutt er sluttdelen av ICMP-pakken selve datagrammet.
ICMP Use Case
Her er noen fungerende eksempler på ICMP-protokoller i forskjellige nettverksadministrasjon og administrative verktøy.
Ping
Ping er et kommandolinjeverktøy som er avhengig av ICMP ekko-forespørsel og ekko-svar-meldinger for å teste nettverkstilgjengelighet og latens mellom enheter. Verktøyet bestemmer ganske enkelt tilgjengeligheten til destinasjonsserveren ved å estimere den totale pakken som sendes eller mottas og prosentandelen av pakketap. Det hjelper også med å bestemme den totale maksimale overføringsenhetsstørrelsen (MTU).
Bruk ping for å fastslå tilgjengeligheten på google.com:
Traceroute
Traceroute er et annet kommandolinjeverktøy som bruker ekkoforespørsel og ekkosvarmeldinger med en TTL-variabel for å kartlegge banen mellom kilde- og destinasjonsenheter. Det er også nyttig for å bestemme responsforsinkelsene og sikrer nøyaktighet ved å spørre hvert hopp flere ganger.
Hvordan fungerer ICMP uten en port?
Fra forklaringen ovenfor er ICMP en forbindelsesløs protokoll som sender data uavhengig som et datagram, og overskriften vises etter IPv4-detaljer. Du kan imidlertid også legge merke til fraværet av et portnummer som reiser spørsmålet om hvordan enheter mottar ICMP-data eller blir oppmerksomme på en tilkobling?
Svaret er ganske enkelt. ICMP-protokollen ble designet for å fungere på nettverkslaget til OSI-modellen og kommunisere mellom rutere og verter for å dele informasjon. Portnumre er en del av transportlaget, og ICMP er verken en TCP eller en UDP-protokoll. Til slutt hjelper ICMP-typen og kodekombinasjonen enheter med å bestemme meldingen og få all informasjon om nettverket.
Feil og flytkontroll med ICMP
Ovennevnte detaljer om ICMP-protokollen viser hvordan den sikrer flytkontroll og feilkontroll av data på lag tre i en OSI-modell. Protokollmeldingene og parametrene i den første delen av ICMP-pakkehodet dekker alle aspektene ved nettverksadministrasjon og diagnoseproblemer.
Det er viktig å vite at feilaktige brannmurinnstillinger kan tillate angripere å ping-sweepe gjennom organisasjonens nettverk og gjøre det utsatt for DDOS, ping of death og ICMP-flomangrep. Du kan bruke Wireshark for å fange pakker fra internett og utføre en detaljert analyse av ICMP-pakkene for bedre forståelse.
5 måter å fikse feilen "En eller flere nettverksprotokoller mangler" i Windows 10
Les Neste
Relaterte temaer
- Teknologi forklart
- Datanettverk
Om forfatteren
Rumaisa er frilansskribent ved MUO. Hun har brukt mange hatter, fra en matematiker til en informasjonssikkerhetsentusiast, og jobber nå som SOC-analytiker. Hennes interesser inkluderer å lese og skrive om nye teknologier, Linux-distribusjoner og alt rundt informasjonssikkerhet.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere