Internet Control Message Protocol ICMP (Internet Control Message Protocol) er en feilrapporteringsmekanisme, en viktig delprotokoll i TCP/IP-protokollklyngen, vanligvis brukt av IP-lag- eller høyere lagprotokoller (TCP eller UDP), tilhører nettverkslagsprotokollen, hovedsakelig brukt til å sende kontrollmeldinger mellom IP-verter og rutere, brukes til å rapportere om verten er tilgjengelig, om ruten er tilgjengelig, osv. Selv om disse kontrollmeldingene ikke overfører brukerdata, spiller de en avgjørende rolle i å samle inn ulike nettverksinformasjon, diagnostisere og feilsøke ulike nettverksfeil, samt overføre brukerdata.
Hvorfor trenger du ICMP?
I prosessen med dataoverføring tilbyr IP en best-effort-tjeneste, som refererer til å gjøre sitt beste for å sende datapakker til destinasjonsadressen. Den verifiserer ikke om destinasjonsverten mottar pakken eller ikke, og kan ikke utføre flytkontroll og feilkontroll. Derfor er ulike feil uunngåelige under pakkeoverføringsprosessen. ICMP ble opprettet for å videresende IP-pakker mer effektivt og forbedre sjansene for suksess med pakkelevering. Med ICMP, når det oppstår problemer med pakkeoverføring i nettverket, vil verten eller enheten rapportere feilsituasjonen til protokollen på det øvre laget og gi en rapport om den unormale situasjonen, slik at protokollen på det øvre laget kan vurdere om kommunikasjonen er korrekt gjennom sitt eget feilkontrollprogram for trafikk- og feilkontroll, for å sikre tjenestekvalitet.
Hva er bruksområdene for ICMP?
Feilrapportering
ICMP-feilmeldinger rapporterer nettverksfeil som utilgjengelig destinasjon, tidsavbrudd eller segmenteringsproblemer. Disse meldingene er spesielt viktige for User Datagram Protocol (UDP) med en tilkoblingsfri kommunikasjonsmodell.
UDP gir ikke pålitelig, ordnet pakkeoverføring. Når man sender UDP-pakker, kan pakker gå tapt eller feile, som sjekksumfeil under overføring. Hvis dette skjer, sender mottakeren en ICMP-feilmelding tilbake til avsenderen for å varsle om problemet.
Diagnose
Du kan bruke ICMP til nettverksdiagnostikk. Den brukes oftest for ping- og traceroute-kommandoer.
Ping-kommandoen tester tilgjengeligheten til nettverksenheter ved å sende ICMP echo-forespørselspakker til målenheten. Hvis enheten er tilgjengelig, returneres et ICMP echo-svar. Den sjekker pålitelig nettverksforsinkelse og sikrer enhetens tilgjengelighet.
Traceroute-kommandoen sporer ruten pakken tar fra kilden til destinasjonen. For å gjøre dette sender kommandoen ekkoforespørselen og ekkosvarmeldingen til den tiltenkte destinasjonen.
Echo-forespørsler inneholder en time-to-live (TTL)-verdi som reduseres med 1 for hver ruter pakken passerer gjennom. Når en pakke når en ruter med null TTL, sender ruteren en ICMP-melding til kildeenden.
Meldingen inneholder informasjon om ruten pakken tok. Traceroute viser den eksakte ruten til pakken og kan gi deg detaljer om nettverksytelsen din.
Cybersikkerhet
Du kan bruke ICMP for å oppdage uautorisert nettverkstrafikk og kun tillate legitim trafikk å passere gjennom nettverket. Brannmurer bruker ICMP for å tillate eller blokkere visse typer trafikk. Nettverksadministratorer bruker også ICMP-overvåkingsverktøy for å spore status og tilkobling til nettverksenheter og oppdage ukjente enheter.
Du kan også bruke den til å oppdage uvanlige trafikkmønstre som kan indikere uautorisert aktivitet.
ICMP-protokollmeldingsformat
ICMP-pakkeformatet vises i figuren, og hver ICMP-melding inneholder hele IP-headeren til pakken som startet ICMP-meldingen, og ICMP-pakken er kapslet inn i IP-pakken som en del av IP-pakken. De tre faste feltene som er inkludert i ICMP-headeren, er hovedgrunnlaget for at kildeenheten kan bestemme hvilken type feil som oppstår.
Type-feltet angir typen ICMP-melding; Kodefeltet representerer en undertype av ICMP-meldingstypesegmentet; Sjekksumfeltet representerer sjekksummen av ICMP-pakker.
Ulike typer ICMP-pakker deles inn i to typer: feilpakker og spørringspakker, som vist i ICMP-pakkeklassifiseringstabellen.
ICMP-pakkeklassifisering
Type | | | | 0-Echo-respons | 0 | Echo svarer på meldingen | Spørre | 3- Formålet er uoppnåelig | 0 | Målnettverket kan ikke nå pakken | Feil | 1 | Målverten kan ikke nå pakken | Feil | 2 | Målavtalen kan ikke nå pakken | Feil | 3 | Destinasjonsporten kan ikke nå pakken | Feil | 4 | Segmentering og DF-flaggmeldinger | Feil | 5 | Kilderute-mislykkede pakker | Feil | 6 | Ukjente destinasjonsnettverkspakker | Feil | 7 | Ukjente destinasjonsvertspakker | Feil | 8 | Kildeverten isolerer pakker | Feil | 9 | Nettverkspakker som er forbudt å få tilgang til | Feil | 10 | Host-meldinger som er forbudt å få tilgang til | Feil | 11 | Pakker er ikke tilgjengelige for et spesifikt TOS-nettverk | Feil | 12 | Pakker er ikke tilgjengelige for en spesifikk TOS-vert | Feil | 13 | Pakker undertrykkes på grunn av filtrering av nettverkstrafikk | Feil | 14 | Melding om vert som overskrider autoritet | Feil | 15 | Prioritert melding om avslutning i kraft | Feil | 5- Omdirigering | 0 | Omdiriger nettverkspakker | Feil | 1 | Omdirigere vertspakker | Feil | 2 | TOS-baserte nettverksomledningspakker | Feil | 3 | TOS-baserte vertsomdirigeringspakker | Feil | 8- Ekkoforespørsel | 0 | Echo-forespørsler pakker | Spørre | 9- Rutermelding | 0 | Rutingmeldinger | Spørre | 10 - Ruterforespørsel | 0 | Oppdag/velg/be om pakker for rutere | Spørre | 11 - ICMP timeout | 0 | TTL timeout-melding | Feil | 1 | Sharding og omorganisering av timeout-pakker | Feil | 12- Parameterproblemer | 0 | Den første feilmeldingen fra parameteren i IP-rapporten | Feil | 1 | Mangler de nødvendige opsjonspakkene | Feil | 2 | Ustøttede lengdepakker | Feil | 13- Forespørsel om tidsstempel | 0 | Tidsstempelforespørsler-pakker | Spørre | 14-tidsstemplet svar | 0 | Tidsstemplede svarpakker | Spørre | 15- Forespørsel om informasjon | 0 | Informasjonsforespørselspakker | Spørre | 16- Informasjonsrespons | 0 | Meldingsvarspakker | Spørre |
Forskjell mellom ICMP og TCP
TCP er en tilkoblingsorientert protokoll for pålitelig, feilkontrollert dataoverføring. Den brukes ofte til nettlesing, e-post, fjerninnlogging og filoverføringsapplikasjoner. TCP krever et håndtrykk, en serie meldinger som etablerer tillit og autentisering mellom avsender og mottaker. TCP garanterer meldingslevering.
I kontrast er Internet Control Message Protocol (ICMP) en tilkoblingsløs protokoll. Den garanterer ikke meldingslevering. Siden ICMP kun brukes til feilrapportering, er ICMP-meldinger også mindre enn TCP-pakker.
ICMP og TCP brukes sammen for å fastslå årsaken til TCP-overføringsfeil. |