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
|
|
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
- Om ett ICMP-paket går förlorat genereras aldrig ett nytt.
- 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 ").
- 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
- ↑ ICMP-protokoll . Hämtad 29 oktober 2017. Arkiverad från originalet 14 mars 2016. (obestämd)
Länkar