Internet Control Message Protocol versjon 6 ( ICMPv6 eller ICMP for IPv6 ) er en ny versjon av ICMP og er en viktig del av IPv6-arkitekturen som må støttes fullt ut av alle IPv6-implementeringer og noder. ICMPv6 kombinerer funksjoner som tidligere var delt inn i ulike deler av forskjellige protokoller som ICMP , IGMP eller ARP , og introduserer også noen forenklinger ved å fjerne foreldede meldingstyper som for øyeblikket var foreldet.
Siden IPv6 er en nyere versjon av IPv4 , bruker den ICMP-protokollen som definert for IPv4 i RFC 792 (som vi vil referere til som ICMPv4) med noen betydelige endringer. IGMP er også implementert i ICMPv6. Verdien av "Next Header"-feltet i IPv6-pakkehodet for ICMPv6 er 58 (se IPv6 ).
Denne artikkelen forklarer formatet til et sett med kontrollmeldinger som brukes i ICMPv6, men forklarer ikke prosedyrene for å bruke disse meldingene til å utføre en bestemt funksjon. Andre typer meldinger som nabooppdagelsesmeldinger bør beskrives i tilleggsartikler.
ICMPv6 er en flerbruksprotokoll og er designet for å utføre funksjoner som å oppdage feil funnet i pakketolkning, utføre diagnostikk, utføre funksjoner som Neighbour Discovery og oppdage IPv6 multicast-adresser. Av denne grunn er ICMPv6-meldinger delt inn i to klasser: feilmeldinger og informasjonsmeldinger. ICMPv6-meldinger sendes innenfor IPv6-pakker, som igjen kan ha IPv6-header-utvidelsene.
ICMPv6-protokollen brukes av IPv6-noder for å oppdage feil funnet i tolkningen av pakker og for å utføre andre internettlagsfunksjoner som diagnostikk (ICMPv6- ping ).
ICMPv6-pakker har formatet Type, Code og Checksum .
De 8 bitene i Type -feltet indikerer typen melding. Hvis biten med høyest vekt har verdien 0 (verdier mellom 0 og 127) så er det en feilmelding, tvert imot hvis biten med høyest vekt er 1 (verdier mellom 128 og 255) er en informasjonsmelding.
De 8 bitene i Kode -feltet avhenger av typen melding, og brukes til å lage et ekstra nivå av meldingsklassifisering, slik at informative meldinger basert på Kode-feltet kan deles inn i flere typer.
Sjekksum - feltet brukes til å oppdage feil i ICMP-meldinger og i noen av IPv6-meldingene.
ICMPv6-feilmeldinger ligner på ICMPv4-feilmeldinger. De er delt inn i 4 kategorier: Uoppnåelig destinasjon, Pakke for stor, Tid overskredet og Parameterproblemer.
1 destinasjon utilgjengelig 2 pakker for store 3 Tid overskredet 4 ParameterproblemDen andre typen ICMP-meldinger er informasjonsmeldinger. Disse meldingene er delt inn i tre grupper: diagnostiske meldinger, meldinger for administrasjon av multicast-grupper og nabooppdagelsesmeldinger.
128 Ekkoforespørsel 129 Ekkosvar
Hver ICMPv6-melding innledes med en IPv6-header og null eller flere IPv6-headerutvidelser. ICMPv6-headeren identifiseres med en "Next Header"-verdi på 58 i den umiddelbart foregående overskriften. (Merk: verdien av "Next Header"-feltet er forskjellig fra verdien som brukes til å identifisere ICMP for IPv4)
litt offset | 0–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Type | Kode | Sjekksum | |||||||||||||||||||||||||||||
32 | meldingstekst |
Type-feltet angir typen melding. Denne verdien bestemmer formatet på informasjonen som skal mottas.
Kode-feltet avhenger av typen melding. Den brukes til å opprette et nytt undernivå for meldingsklassifisering.
Sjekksum-feltet brukes til å oppdage datakorrupsjon i ICMPv6-meldinger og deler av IPv6-hodene.
Når en node sender en ICMPv6-melding, må den spesifisere kilde- og destinasjons- IPv6-adressene i IPv6-adresseoverskriften før kontrollsummen beregnes. Hvis noden har mer enn én unicast-adresse, må den velge kildeadressen som følger:
(a) Hvis meldingen er et svar på en melding sendt til en av nodens unicast -adresser, må kildeadressen til svaret være den samme adressen.
(b) Hvis meldingen er et svar på en melding sendt til en annen adresse, for eksempel:
kildeadressen til ICMPv6-pakken må være en unicast-adresse som tilhører noden. Adressen bør velges i henhold til reglene som vil bli brukt til å velge kildeadressen til enhver pakke som kommer fra noden, gitt destinasjonsadressen til pakken. Den bør imidlertid velges på en alternativ måte hvis den skal utlede et mer informativt alternativ for adressen som er tilgjengelig fra destinasjonen til ICMPv6-pakken.
Kontrollsummen er et 16-bits ens komplementsett av ens komplementsum av ICMPv6-meldingen fra Type-feltet til ICMPv6-meldingen til slutten, etterfulgt av en pseudo-header for IPv6-headeren, som spesifisert i IPv6.
For å beregne sjekksum , initialiseres sjekksum-feltet til null.
Verdien for "Next Header" brukt i "pseudo-header" er 58. (Merk: Inkluderingen av en pseudo-header i ICMPv6-sjekksummen er en endring fra IPv4; se IPv6 for å forstå denne endringen fullt ut).
Pseudo-headeren som brukes til å beregne kontrollsummen er følgende:
litt offset | 0 - 7 | 8–15 | 16–23 | 24–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Opprinnelsesadresse | |||||||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||
128 | ankomstadresse | |||||||||||||||||||||||||||||||
160 | ||||||||||||||||||||||||||||||||
192 | ||||||||||||||||||||||||||||||||
224 | ||||||||||||||||||||||||||||||||
256 | ICMPv6 Lengde | |||||||||||||||||||||||||||||||
288 | Null | neste overskrift |
En node som videresender en ICMPv6-melding må bestemme både kilde- og destinasjons-IPv6-adressen for ICMPv6-meldingen. Spesiell forsiktighet må utvises ved valg av opprinnelsesadresse. Hvis en node har mer enn én unicast-adresse, må den velge kildeadressen til meldingen som følger:
Når en ICMPv6-node mottar en pakke, må den utføre handlinger basert på typen melding. ICMPv6-protokollen må begrense antall feilmeldinger som sendes til samme mottaker for å unngå overbelastning av nettverket. For eksempel, hvis en node sender de feilaktige pakkene på nytt, må ICMP signalisere feilen til den første pakken og deretter gjøre det med jevne mellomrom, i henhold til en forhåndsinnstilt periode eller avhengig av en maksimal nettverksbelastning. En ICMP-feilmelding skal aldri sendes som svar på en annen ICMP-feilmelding.
Fyr | Kode | ||
---|---|---|---|
Verdi | Betydning | Verdi | Betydning |
1 | Destinasjon kan ikke nås | 0 | ingen rute til destinasjonen |
1 | kommunikasjon med destinasjon
administrativt forbudt | ||
to | utenfor kildeadressens omfang | ||
3 | adresse utilgjengelig | ||
4 | uoppnåelig | ||
5 | kildeadresse mislyktes inn-/utgående policy | ||
6 | avvise ruten til destinasjonen | ||
7 | Feil i kilderutingsoverskriften | ||
to | Pakken er for stor | 0 | |
3 | Tid overskredet | 0 | hoppgrensen overskredet under transport |
1 | fragmentremonteringstiden er overskredet | ||
4 | Parameterproblem | 0 | feilaktig overskriftsfelt oppdaget |
1 | ukjent Neste overskriftstype oppdaget | ||
to | ukjent IPv6-alternativ påtruffet | ||
100 | privat eksperimentering | ||
101 | privat eksperimentering | ||
127 | Reservert for utvidelse av ICMPv6-feilmeldinger | ||
128 | Ekko-forespørsel | 0 | |
129 | ekko Svar | 0 | |
133 | Ruterforespørsel ( NDP ) | 0 | |
134 | Ruterannonse ( NDP ) | 0 | |
135 | Neighbor Solicitation ( NDP ) | 0 | |
136 | Naboreklame ( NDP ) | 0 | |
137 | Viderekoblingsmelding ( NDP ) | 0 | |
138 | Omnummerering av ruteren | 0 | Kommando for omnummerering av ruteren |
1 | Resultat for omnummerering av ruteren | ||
255 | Tilbakestill sekvensnummer | ||
139 | ICMP Node Informasjon Spørring | 0 | Datafeltet inneholder en
IPv6-adresse som er emnet for denne spørringen. |
1 | Datafeltet inneholder et navn
som er emnet for denne spørringen, eller er tom, som i tilfellet med en NOOP. | ||
to | Datafeltet inneholder en
IPv4-adresse som er emnet for denne spørringen. | ||
140 | ICMP Node Information Response | 0 | Et vellykket svar. Svaret
Datafeltet kan være tomt eller ikke. |
1 | Responderen nekter å levere
svaret. Svardata-feltet vil være tomt. | ||
to | Qtype for spørringen er ukjent
til svaret. Svardata-feltet vil være tomt. | ||
141 | Omvendt melding om nabooppdagelse | 0 | |
142 | Omvendt Neighbor Discovery-annonsemelding | 0 | |
143 | Multicast-lytterrapportmelding v2 | 0 | |
144 | Melding om forespørsel om registrering av hjemmeagentadresse | 0 | |
145 | Hjem Agent Adresse Oppdagelse Svarmelding | 0 | |
146 | Forespørsel om mobilprefiks | 0 | |
147 | Mobilprefiksannonse | 0 | |
148 | Forespørsel om sertifiseringsbane (SEND) | ||
149 | Sertifiseringsbaneannonse (SEND) | ||
151 | Annonse for multicast-ruter (MRD) | ||
152 | Multicast-ruterforespørsel (MRD) | ||
153 | Multicast-ruterterminering (MRD) | ||
200 | privat eksperimentering | ||
201 | privat eksperimentering | ||
255 | Reservert for utvidelse av ICMPv6 informasjonsmeldinger |
Tabellen ovenfor er ikke fullstendig. Den gjeldende listen over tildelte ICMPv6-typer og -koder finner du på denne lenken: IANA: ICMPv6-parametre .