Internet Control Message Protocol ICMP (Internet Control Message Protocol) er en fejlrapporteringsmekanisme, en vigtig delprotokol i TCP/IP-protokolklyngen, som normalt bruges af IP-lags- eller højere lagprotokoller (TCP eller UDP), tilhører netværkslagsprotokollen og bruges hovedsageligt til at sende kontrolbeskeder mellem IP-værter og routere, som bruges til at rapportere, om værten er tilgængelig, om ruten er tilgængelig osv. Selvom disse kontrolbeskeder ikke transmitterer brugerdata, spiller de en afgørende rolle i indsamling af forskellige netværksoplysninger, diagnosticering og fejlfinding af forskellige netværksfejl samt overførsel af brugerdata.
Hvorfor har du brug for ICMP?
I processen med datatransmission leverer IP en best-effort-tjeneste, som refererer til at gøre sit bedste for at sende datapakker til destinationsadressen. Den verificerer ikke, om destinationsværten modtager pakken eller ej, og kan ikke udføre flow- og fejlkontrol. Derfor er forskellige fejl uundgåelige under pakketransmissionsprocessen. ICMP blev oprettet for at videresende IP-pakker mere effektivt og forbedre chancerne for succes. Med ICMP, når der opstår et problem med pakkeoverførsel i netværket, vil værten eller enheden rapportere fejlsituationen til det øverste lags protokol og give en rapport om den unormale situation, så det øverste lags protokol kan vurdere, om kommunikationen er korrekt gennem sit eget fejlkontrolprogram for trafik- og fejlkontrol for at sikre servicekvaliteten.
Hvad er anvendelsesscenarierne for ICMP?
Fejlrapportering
ICMP-fejlmeddelelser rapporterer netværksfejl såsom utilgængelig destination, timeouts eller segmenteringsproblemer. Disse beskeder er især vigtige for User Datagram Protocol (UDP) med en forbindelsesfri kommunikationsmodel.
UDP leverer ikke pålidelig, ordnet pakkeoverførsel. Når UDP-pakker sendes, kan pakker gå tabt eller fejle, såsom checksum-fejl under transmissionen. Hvis dette sker, sender modtageren en ICMP-fejlrapport tilbage til afsenderen for at underrette problemet.
Diagnose
Du kan bruge ICMP til netværksdiagnostik. Den bruges oftest til ping- og traceroute-kommandoer.
Ping-kommandoen tester tilgængeligheden af netværksenheder ved at sende ICMP echo-anmodningspakker til målenheden. Hvis enheden er tilgængelig, returneres et ICMP echo-svar. Den tjekker pålideligt netværkslatens og sikrer enhedens tilgængelighed.
Traceroute-kommandoen sporer pakkens rute fra kilden til destinationen. For at gøre dette sender kommandoen ekkoanmodningen og ekkosvaret til den tilsigtede destination.
Echo-anmodninger indeholder en time-to-live (TTL) værdi, der reduceres med 1 for hver router, som pakken passerer igennem. Når en pakke når en router med nul TTL, sender routeren en ICMP-besked til kildeenden.
Beskeden indeholder information om ruten, pakken tog. Traceroute viser pakkens præcise rute og kan give dig detaljer om din netværksydelse.
Cybersikkerhed
Du kan bruge ICMP til at opdage uautoriseret netværkstrafik og kun tillade legitim trafik at passere gennem netværket. Firewalls bruger ICMP til at tillade eller blokere visse typer trafik. Netværksadministratorer bruger også ICMP-overvågningsværktøjer til at spore status og forbindelse af netværksenheder og opdage ukendte enheder.
Du kan også bruge den til at opdage usædvanlige trafikmønstre, der kan indikere uautoriseret aktivitet.
ICMP-protokolmeddelelsesformat
ICMP-pakkeformatet vises i figuren, og hver ICMP-besked indeholder hele IP-headeren for pakken, der startede ICMP-meddelelsen, og ICMP-pakken er indkapslet i IP-pakken som en del af IP-pakken. De tre faste felter, der er inkluderet i ICMP-headeren, udgør hovedgrundlaget for, at kildeenheden kan bestemme typen af fejl, der opstår.
Type-feltet angiver typen af ICMP-besked; Kodefeltet repræsenterer en undertype af ICMP-meddelelsestypesegmentet; Checksum-feltet repræsenterer checksum for ICMP-pakker.
Forskellige typer ICMP-pakker opdeles i to typer: fejlpakker og forespørgselspakker, som vist i ICMP-pakkeklassifikationstabellen.
ICMP pakkeklassifikation
Type | | | | 0-Ekko-respons | 0 | Echo svarer på beskeden | Spørge | 3- Formålet er uopnåeligt | 0 | Målnetværket kan ikke nå pakken | Fejl | 1 | Målværten kan ikke nå pakken | Fejl | 2 | Målaftalen kan ikke nå pakken | Fejl | 3 | Destinationsporten kan ikke nå pakken | Fejl | 4 | Segmentering og DF-flagbeskeder | Fejl | 5 | Kilderute fejlede pakker | Fejl | 6 | Ukendte destinationsnetværkspakker | Fejl | 7 | Ukendte destinationsværtspakker | Fejl | 8 | Kildeværten isolerer pakker | Fejl | 9 | Netværkspakker, der er forbudt at tilgå | Fejl | 10 | Værtsbeskeder, der er forbudt at tilgå | Fejl | 11 | Pakker er ikke tilgængelige for et specifikt TOS-netværk | Fejl | 12 | Pakker kan ikke nås til en specifik TOS-vært | Fejl | 13 | Pakker undertrykkes på grund af filtrering af netværkstrafik | Fejl | 14 | Værtens overskridende autoritetsbesked | Fejl | 15 | Prioritetsmeddelelse om effektiv afslutning | Fejl | 5- Omdirigering | 0 | Redirect netværkspakker | Fejl | 1 | Redirect host-pakker | Fejl | 2 | TOS-baserede netværksomledningspakker | Fejl | 3 | TOS-baserede vært-omdirigeringspakker | Fejl | 8- Ekkoanmodning | 0 | Echo-anmodninger pakker | Spørge | 9- Router-meddelelse | 0 | Routingmeddelelsesmeddelelser | Spørge | 10 - Routeranmodning | 0 | Opdag/velg/anmod pakker til routere | Spørge | 11 - ICMP timeout | 0 | TTL timeout-besked | Fejl | 1 | Sharding og omorganisering af timeout-pakker | Fejl | 12- Parameterproblemer | 0 | Den første parameterfejlmeddelelse i IP-rapporten | Fejl | 1 | Mangler de nødvendige optionspakker | Fejl | 2 | Pakker uden understøttet længde | Fejl | 13- Anmodning om tidsstempel | 0 | Tidsstempelanmodningspakker | Spørge | 14-tidsstemplet svar | 0 | Tidsstemplede svarpakker | Spørge | 15- Anmodning om information | 0 | Informationsanmodningspakker | Spørge | 16- Informationsrespons | 0 | Beskedsvarspakker | Spørge |
Forskellen mellem ICMP og TCP
TCP er en forbindelsesorienteret protokol til pålidelig, fejltjekket datatransmission. Den bruges ofte til websurfing, e-mail, fjernlogin og filoverførselsapplikationer. TCP kræver et håndtryk, en række beskeder der etablerer tillid og autentificering mellem afsender og modtager. TCP garanterer beskedlevering.
Til sammenligning er Internet Control Message Protocol (ICMP) en forbindelsesløs protokol. Den garanterer ikke beskedlevering. Da ICMP kun bruges til fejlrapportering, er ICMP-meddelelser også mindre end TCP-pakker.
ICMP og TCP bruges sammen til at fastslå årsagen til TCP-transmissionsfejl. |