Internet Control Message Protocol
| ICMP (Internet Control Message Protocol) | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Familj: | Internetprotokollfamilj | |||||||||||||||||
| Driftområde: | Obligatoriskt tillägg till Internetprotokollet , |
|||||||||||||||||
| ||||||||||||||||||
| Standarder: | RFC 792 (1981) | |||||||||||||||||
Den Internet Control Message Protocol ( ICMP ) används i datornätverk för att utbyta information och felmeddelanden via Internet Protocol version 4 ( IPv4 ). Ett liknande protokoll kallat ICMPv6 finns för IPv6 .
ICMP är en del av IPv4, men behandlas som ett separat protokoll. Varje router och varje dator förväntas "förstå" ICMP. De flesta ICMP-paket innehåller diagnostisk information: De skickas tillbaka från routern till källan om routern kastar paket, till exempel för att destinationen inte kan nås eller TTL har upphört. Följande principer gäller:
- ICMP använder IP som grund för kommunikation genom att tolka sig själv som ett protokoll för ett högre lager, dvs. H. ICMP-meddelanden är inkapslade i IP-paket.
- ICMP upptäcker vissa felförhållanden men gör inte IP till ett tillförlitligt protokoll.
- ICMP analyserar fel i varje IP-paket, med undantag för de som har ett ICMP-meddelande.
- ICMP-meddelanden skickas inte som svar på paket till destinationsadresser som är multicast- eller sändningsadresser.
- ICMP-meddelanden svarar bara på en unik IP-adress för källan.
ICMP-pakettyperna
ICMP-paketets typ är ett 8- bitars nummer i början av ICMP- rubriken . Siffrorna har följande betydelser:
- 0 = eko (svar)
- 1–2 = ej tilldelad
- 3 = destination för datagrammet kan inte nås
- 4 = begäran om att strypa paketleveransen †
- 5 = Rekommendation för omdirigering till en annan gateway i samma nätverk med en snabbare anslutning till destinationen
- 6 = alternativ värdadress †
- 7 = ej tilldelad
- 8 = begär ett eko
- 9 = erbjudande av en router
- 10 = routerrekrytering
- 11 = timeout
- 12 = Problem med datagrammets parametrar
- 13 = tidsstämpel (underlättar tidssynkronisering)
- 14 = tidsstämpel (svar)
- 15 = "Informationsförfrågan" † (för att bestämma nätverksnumret, ersatt med DHCP )
- 16 = "Informationssvar" †
- 17 = begär nätmask †
- 18 = svara nätmask †
- 19 = reserverad (för säkerhet)
- 20–29 = reserverad (för robusthetsexperiment)
- 30 = traceroute †
- 31 = Fel vid konvertering av datagram †
- 32 = omdirigering av mobil värd †
- 33 = Ursprungligen IPv6 Where-Are-You † (ersatt av ICMPv6 )
- 34 = Ursprungligen IPv6 I-Am-Here † (ersatt av ICMPv6 )
- 35 = Mobilregistreringsbegäran †
- 36 = Svar på mobilregistrering †
- 37 = Begäran om domännamn †
- 38 = Svar på domännamn †
- 39 = HOPPA †
- 40 = foturis
- 41 = används av experimentella mobilitetsprotokoll som Seamoby
- 42 = utökat eko *
- 43 = utökat eko (svar) *
- 44-252 = ej tilldelad
- 253 = Experiment 1 enligt RFC 3692
- 254 = Experiment 2 enligt RFC 3692
[†] avskaffades
Tid att leva
För att förhindra att paket skickas oändligt genom ett nätverk (t.ex. i en cirkel mellan flera routrar) minskar en router TTL-värdet med 1. När TTL-värdet når värdet 0 raderas paketet och avsändaren informerar om denna process via ett ICMP-meddelande. Traceroute använder sig av denna mekanism .
För att fastställa vilken rutt (de humle ) i en paket till ett specifikt mål värd skickar traceroute analysprogrammet datapaket med en uppräkning Time-To-Live (TTL) (med början 1) och väntar på "Time to Live överskrids i transit "eller" Destination unreachable "-meddelanden som en reaktion. Beroende på implementeringen eller ett valt alternativ för Traceroute kan dessa vara ICMP (t.ex. under Windows) eller UDP- paket (t.ex. under Linux).
konstruktion
ICMP skickar och tar emot en mängd olika meddelanden. ICMP-meddelandet indikeras av protokoll nummer 1 i IP-rubriken. ICMPv6 har å andra sidan protokollnummer 58. ICMP-meddelandeformatet består av endast ett fåtal fält:
| 0 | 4: e | 8: e | 12: e | 16 | 20: e | 24 | 28 | 31 | |
| Typ | koda | Kontrollsumma | |||||||
| Data (valfritt) | |||||||||
Typfältet anger meddelandet. Kodfältet tolkar meddelandetypen mer exakt. Data innehåller vanligtvis en del av det ursprungliga IP-meddelandet. Några av de vanligaste typkodskombinationerna är:
| Typ | Skriv namn | koda | betydelse |
|---|---|---|---|
| 0 | Ekosvar | 0 | Ekosvar |
| 3 | Destinationen kan inte uppnås | 0 | Nätverket kan inte nås |
| 1 | Värd (målstation) kan inte nås | ||
| 2 | Protokoll kan inte nås | ||
| 3 | Porten kan inte nås | ||
| 4: e | Fragmentering behövs D on't F ragment men satt | ||
| 5 | Rutt är inte möjligt (riktningen är felaktigt angiven i alternativfältet för IP-rubrik) | ||
| 13: e | Kommunikation administrativt förbjuden (paketet blockeras av mottagarens brandvägg) | ||
| 4: e | Avlast källan | 0 | Datagram kasserades eftersom kön är full |
| 8: e | Ekoförfrågan | 0 | Ekoförfrågan (bättre känd som " ping ") |
| 11 | Tidsgränsen har överskridits | 0 | TTL (Time To Live) upphörde att gälla |
| 1 | Defragmenteringen avbröts |
När det gäller många ICMP-meddelanden innehåller ett ytterligare "Data" -fält mer detaljerad information om tilldelningen av ICMP-meddelandet i det första 32-bitarsordet. Ofta från och med det andra dataordet sänds också IP-rubriken för det initierande datagrammet och de första 32 bitarna i paketet. Fältet "data" kan dock också missbrukas för att överföra användardata ( ICMP-tunnling ). Den nödvändiga felhanteringen eller felkorrigeringen och liknande måste sedan implementeras på applikationsnivå.
Säkerhetsrelevanta aspekter
Internet Control Message Protocol kan användas för en Denial-of-Service (DoS) eller Distributed Denial-of-Service (DDoS) attack på en enhet. En enhet kan också missbrukas av en angripare som en del av en DDoS-attack för att attackera en tredje enhet. Typiska attackmetoder är smurfattack , översvämning eller dödens ping . Ett annat sätt att använda ICMP-protokollet är att använda det för obehörig dataöverföring via en ICMP-tunnelanslutning .
webb-länkar
- RFC 792 . - Internet Control Message Protocol . [Errata: RFC 792 ]. September 1989. (Uppdaterad av RFC 950 - engelska).
- RFC 1122 . - Krav för Internetvärdar - Kommunikationslager . [Errata: RFC 1122 ]. Oktober 1989. (Uppdaterad av RFC 1349 - även för ytterligare ICMP-tillägg - engelska).
- IANA ICMP-parametrar - Komplett lista över ICMP-typer och -koder
Individuella bevis
- Parameters Parametrar för Internet Control Message Protocol (ICMP). IANA, 15 juni 2018, öppnades 9 december 2018 .
- ^ J. Postel: RFC 792 - Internet Control Message Protocol . September 1989. s. 18. ( DARPA Internet Program Protocol Specification. Till s. 19 - engelska).
- ↑ F. Gont: RFC 6918 . - Formellt avfärdar vissa ICMPv4-meddelandetyper . April 2013. (Ersätter RFC 1788 - engelska).
- ^ R. Bonica, R. Thomas, J. Linkova, C. Lenart, M. Boucadair: RFC 8335 . - PROBE: A Utility for Probing Interfaces . Februari 2018. (Föreslagen standard).