ICMP

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 26 mars 2014; kontroller kräver 55 redigeringar .
ICMP
namn Internet Control Message Protocol
Nivå (enligt OSI-modellen ) nätverk
Familj TCP/IP
Specifikation RFC 792
 Mediafiler på Wikimedia Commons

ICMP (  Internet Control Message Protocol ) är ett nätverksprotokoll som ingår i TCP /IP-protokollstacken .  ICMP används främst för att rapportera fel och andra undantag som inträffar under dataöverföring, till exempel att den begärda tjänsten inte är tillgänglig eller att värden eller routern inte svarar. Även vissa tjänstefunktioner (tjänster) är tilldelade ICMP.

Tekniska detaljer

ICMP-protokollet beskrivs i RFC 792 från 1981 av Jon Postel (med tillägg i RFC 950 ). ICMP är en Internetstandard (ingår i STD 5 tillsammans med IP ). Även om protokollet formellt använder IP (ICMP-paket är inkapslade i IP-paket), är det en integrerad del av IP och är obligatoriskt när TCP/IP-stacken implementeras . Den nuvarande versionen av ICMP för IPv4 heter ICMPv4. IPv6 har ett liknande protokoll, ICMPv6 .

Ett ICMP-meddelande byggs från de IP-paket som genererade ICMP-svaret. IP-protokollet kapslar in motsvarande ICMP-meddelande med ett nytt IP-huvud (för att skicka tillbaka ICMP-meddelandet till avsändaren) och vidarebefordrar de mottagna paketen.

Till exempel, varje maskin som vidarebefordrar IP-paket (som en router ) minskar fältet Time to live (TTL) i IP-pakethuvudet med ett; om TTL når 0, skickas ett ICMP TTL-överskridet meddelande till källan för paketet.

ICMP är baserat på IP-protokollet. Varje ICMP-meddelande är inkapslat direkt i ett enstaka IP- paket, och därför är ICMP, liksom UDP och till skillnad från TCP , ett sk. "otillförlitlig" (kontrollerar inte leveransen och dess korrekthet). Till skillnad från UDP, där implementeringen av tillförlitlighet tilldelas applikationslagerprogramvaran, behöver ICMP (på grund av applikationens särdrag) vanligtvis inte implementera tillförlitlig leverans. Dess syfte skiljer sig från det för transportprotokoll som TCP och UDP: det används i allmänhet inte för att skicka och ta emot data mellan slutsystem. ICMP används inte direkt i nätverksanvändarapplikationer (förutom Ping- och Traceroute-verktygen ). Samma Ping, till exempel, tjänar vanligtvis bara för att kontrollera förlusten av IP-paket längs rutten.

Använda ICMP-meddelanden

ICMP-meddelanden (typ 12) genereras när fel hittas i huvudet på ett IP- paket (med undantag för själva ICMP-paketen, för att inte leda till en oändligt växande ström av ICMP-meddelanden om ICMP-meddelanden).

ICMP-meddelanden (typ 3) genereras av routern när det inte finns någon rutt till destinationen.

Ping- verktyget , som testar om IP-paket kan levereras, använder ICMP-meddelanden av typ 8 (ekobegäran) och 0 (ekosvar).

Verktyget Traceroute , som visar sökvägen till IP-paket, använder ICMP-meddelanden med typ 11.

ICMP-meddelanden av typ 5 används av routrar för att uppdatera poster i avsändarens routingtabell .

ICMP-meddelanden av typ 4 används av mottagaren (eller routern) för att styra hastigheten med vilken meddelanden skickas av avsändaren.

ICMP-paketformat

Oktett (byte) 0 ett 2 3 fyra 5 6 7 åtta 9 tio elva 12 13 fjorton femton 16 17 arton 19 tjugo 21 22 23 24 25 26 27 28 29 trettio 31
[0-3] Sorts Koden Kontrollera summan
Data (formatet beror på värdena i fälten "Code" och "Type")
ICMP-pakettyper
Sorts Status Koden Meddelande Data (längd, bitar)
0 0 eko svar
ID (16) Sekvensnummer (16)
Data (variabel)
12 inte använd reserverad
3 Destinationen går inte att nå
Ej använd (32)
IP Header, Start of Source Datagram (64)
0 Nätverket går inte att nå
ett Noden går inte att nå
2 Protokollet går inte att nå
3 Hamnen oåtkomlig
fyra Fragmentering krävs, men dess inaktiveringsflagga (DF) är inställd
5 Ogiltig rutt från källan
6 Destinationsnätverket okänt
7 Destinationsvärd okänd
åtta Nodkälla isolerad
9 Nätverket är administrativt förbjudet
tio Noden är administrativt förbjuden
elva Nätverket är inte tillgängligt för användarvillkoren
12 Noden kan inte nås för ToS
13 Kommunikation är administrativt förbjuden
fjorton Överträdelse av nodpreferensordning
femton Beskärning med preferensordning aktiv
fyra föråldrad 0 Källinneslutning (källavstängning när kön svämmar över)
5 dirigera om
Routeradress (32)
IP Header, Start of Source Datagram (64)
0 Vidarebefordra paket till nätverket
ett Vidarebefordra paket till en värd
2 Vidarebefordra per typ av tjänst (ToS)
3 Vidarebefordra ett paket till en värd för varje typ av tjänst
6 föråldrad 0 Alternativ värdadress
7 inte använd reserverad
åtta 0 ekoförfrågan
ID (16) Sekvensnummer (16)
Data (variabel)
9 0 Router annons
Antal adresser (8) Objektstorlek (8) Giltighet (16)
Adress[1] (32)
Preferens[1] (32)
Adress[N] (32)
Preferens[N] (32)
tio 0 Routerbegäran
Ej använd (32)
elva Datagrams livslängd har löpt ut
Ej använd (32)
IP Header, Start of Source Datagram (64)
0 Packet Time to Live (TTL) löpte ut under transporten
ett Paketets livslängd gick ut när fragment byggdes
12 Ogiltig parameter (problem med datagramparametrar: fel i IP-huvudet eller ett obligatoriskt alternativ saknas)
0 Pekaren indikerar ett fel
Pekare (8) Ej använd (24)
IP Header, Start of Source Datagram (64)
ett Obligatoriskt alternativ saknas
Ej använd (32)
IP Header, Start of Source Datagram (64)
2 Felaktig längd
13 0 Begäran om tidsstämpel
ID (16) Sekvensnummer (16)
Starttid (32)
Mottagningstid (32)
Avgångstid (32)
fjorton 0 Svar med tidsstämpel
femton föråldrad 0 Informationsförfrågan
ID (16) Sekvensnummer (16)
16 föråldrad 0 Informationssvar
17 föråldrad 0 Begäran om adressmask
ID (16) Sekvensnummer (16)
Mask (32)
arton föråldrad 0 Adressmasksvar
19 reserverad Reserverad (för säkerhet)
20-29 reserverad Reserverad (för feltoleransexperiment)
trettio föråldrad Spåra rutt
ID (16) Ej använd (16)
Antal hopp utgående paket (16) Antal hopp av det returnerande paketet (16)
Länkhastighet (32)
Länk MTU (32)
0 Utgående paket har skickats
ett Sökväg för utgående paket hittades inte, paketet förstört
31 föråldrad Datagramkonverteringsfel
Pekare (32)
IP och transporthuvud för det ursprungliga datagrammet
0 Okänt eller ospecificerat fel
ett Det går inte att konvertera alternativet
2 Okänt obligatoriskt alternativ
3 Obligatoriskt alternativ som inte stöds
fyra Transportprotokoll som inte stöds
5 Total längd har överskridits
6 IP-huvudets längd har överskridits
7 Transportprotokollnummer större än 255
åtta Portnummer utanför intervallet
9 Transportprotokollhuvudets längd har överskridits
tio 32-bitars gränsövergång och ACK-bitar
elva Okänt obligatoriskt transportprotokollalternativ
32 föråldrad Omdirigering av mobilvärd
33 föråldrad IPv6 Var-är-du (där du är)
34 föråldrad IPv6 I-Am-Here (Jag är här)
35 föråldrad Begäran om omdirigering av mobil nod
36 föråldrad Svar på en omdirigeringsförfrågan för en mobil nod
37 föråldrad Domännamnsbegäran
38 föråldrad Svar på en begäran om domännamn
39 föråldrad SKIP algoritm upptäckt ICMP meddelande
40 Phototuris  
0 reserverad
ett Index för okänt säkerhetsinställningar
2 Säkerhetsinställningarna är korrekta, men ett autentiseringsfel har inträffat
3 Säkerhetsinställningarna är korrekta, men dekrypteringen misslyckades
fyra Autentisering krävs
5 Auktorisering krävs
41 experimentell
42-252 reserverad
253-254 experimentell Reserverad för RFC 3692- experiment
255 reserverad reserverad

Regler för att generera ICMP-paket

  1. Om ett ICMP-paket går förlorat genereras aldrig ett nytt.
  2. ICMP-paket genereras aldrig som svar på IP-paket med en broadcast- eller multicast-adress för att inte orsaka nätverksstockning (kallad " broadcast storm ").
  3. Om ett fragmenterat IP-paket är skadat, skickas ICMP-meddelandet omedelbart efter mottagandet av det första skadade fragmentet, eftersom avsändaren fortfarande kommer att återsända hela IP-paketet.

Se även

Anteckningar

  1. ICMP-protokoll . Hämtad 29 oktober 2017. Arkiverad från originalet 14 mars 2016.

Länkar