TDAT2004-A Datakommunikasjon med nettverksprogrammering
Oppgave 38 - IPv6 Pakkeheader
Skrevet av Elena Falkenberg Nordmark og Erlend Tobiassen
1. Innledning
IPv6-pakker er delt i to. De har en payload med data, og en header med informasjon om adressering av pakkene. Headeren har to deler; en hoveddel med fast størrelse, og en valgfri utvidet del. Den faste delen inneholder all informasjonen som er nødvendig for en ruter, i mens den valgfrie delen inneholder informasjon som hjelper ruteren med å behandle pakkene som blir sendt.
RFC her:
- RFC 1 - fef
- RFC 2474 - Definition of the Differentiated Services Field (DS Field)
in the IPv4 and IPv6 Headers
RFC 3168 - The Addition of Explicit Congestion Notification (ECN) to IP
2. Ønsket funksjonalitet
Større adresserom!!!
Noen felt i IPv4 har blitt optimisert/utgått.
Legge til rette for mer effektiv vidresending, mindre strenge begrensninger på lengeden til ?valg?, og større rom for utbredelser i fremtiden.
'Flow Labeling', mulighet til åmerke flere pakker som tilhørende slik at de kan bli behantlet på en spesiell måte.
3. Virkemåte
Byte | 0 | 1 | 2 | 3 | |||||
---|---|---|---|---|---|---|---|---|---|
Byte | Bit | 0 3 | 4 7 | 8 11 | 12 15 | 16 19 | 20 23 | 24 27 | 28 31 |
0 | 0 | Version | Traffic Class | Flow Label | |||||
4 | 32 | Payload Length | Next header | Hop limit | |||||
8 | 64 |
| |||||||
12 | 96 | ||||||||
16 | 128 | ||||||||
20 | 160 | ||||||||
24 | 192 |
| |||||||
28 | 224 | ||||||||
32 | 256 | ||||||||
36 | 288 |
3.1 Version
Versjonsfeltet er det første feltet i IPv6 pakke-header-en, feltet er 4 bit langt og består alltid av konstanten 6, derav IPv6. På binær blir det (0110)2.
3.2 Traffic Class
0 1 | 2 3 | 4 5 | 6 7 |
---|---|---|---|
Differentiated Services | ECN |
3.2.1 Differentiated Services
Trafikklassefeltet inneholder to verdier, de første seks siffrene i binær er tatt i bruk av differentiated services (DSCP). Differentiated services er en måte for nettværk å prioritere foskjellige pakker på. For eksempel slik at skype samtaler skal fungere på ett nettværk selv om noen andre laster ned. Dette kalles ofte for Quality of Service (QoS). I teorien er det 26 mulige prioriterings typer, wikipedia har følgene tabell[1] over vanlige verdier.
DSCP value | Meaning | Drop probability | Equivalent IP precedence value |
---|---|---|---|
(101 110)2 | Expedited forwarding (EF) | N/A | 101 Critical |
(000 000)2 | Best effort | N/A | 000 - Routine |
(001 010)2 | AF11 | Low | 001 - Priority |
(001 100)2 | AF12 | Medium | 001 - Priority |
(001 110)2 | AF13 | High | 001 - Priority |
(010 010)2 | AF21 | Low | 010 - Immediate |
(010 100)2 | AF22 | Medium | 010 - Immediate |
(010 110)2 | AF23 | High | 010 - Immediate |
(011 010)2 | AF31 | Low | 011 - Flash |
(011 100)2 | AF32 | Medium | 011 - Flash |
(011 110)2 | AF33 | High | 011 - Flash |
(100 010)2 | AF41 | Low | 100 - Flash override |
(100 100)2 | AF42 | Medium | 100 - Flash override |
(100 110)2 | AF43 | High | 100 - Flash override |
3.2.2 Explicit Congestion Notification (ECN)
Eksplisitt trafikkforstoppelselsesadvarsel er en måte for to endepunkter, som begge støtter ECN, å si i fra om at det er trafikkforstoppelselse uten å 'droppe' pakker, slik som de ellers ville gjort. ECN feltet består av to bits, de da 22 mulige verdiene vises i følgene tabell.
Verdi | Betydning | Enumerering |
---|---|---|
(00)2 | Non ECN-Capable Transport | Non-ECT |
(10)2 | ECN Capable Transport | ECT(0) |
(01)2 | ECN Capable Transport | ECT(1) |
(11)2 | Congestion Encountered | CE |
3.3 Flow Label
Flytbeskrivelsesfeltet identifiserer en sammenhengene flyt med pakker som har tilhørighet. Hovedbruksområdet til dette feltet er som et hint til rutere og switcher at pakkene hører sammen og burde ideelt sett ta samme vei til målet. Slik kan omstokking av pakker som kommer ute av rekkefølge minimeres.
3.4 Payload Length
Nyttelastlengdefeltet spesifiserer lengden på nyttelasten i bytes, lengden inkluderer alle eventuelle utvidelses headers. Dette feltet skal settes til 0 hvis en Hop-by-Hop utvidelses-header som tar i bruk jumbograms er tilstede.
3.5 Next Header
Neste-header-feltet angir hvilken type header som kommer etter den nåværene header-en, dette kan være hvilken som helst header som har en tilsvarene verdi, men som oftest er det enten en utvidelses-header eller TCP/UDP header. Vi beskriver de forskjellige utvidelses-header-ene i neste avsnitt.
Utvidelses-header | Verdi | Beskrivelse |
---|---|---|
Hop-by-Hop Options | 0 | Alternativer som må bli undersøkt av alle enheter på veien. |
Destination Options (before routing header) | 60 | Alternativer som kun trengs å undersøkes av motakeren. |
Routing | 43 | Metoder for å spesifisere veien til pakken. I bruk av Mobil IPv6. |
Fragment | 44 | Parametere for 'fragmentasjon' av datagram. |
Authentication Header (AH) | 51 | Inneholder informasjon for å autentisere deler av pakken. |
Encapsulating Security Payload (ESP) | 50 | Inneholder krypterte meldinger for sikker overføring. |
Destination Options (before upper-layer header) | 60 | Alternativer som kun trengs å undersøkes av senderen. |
Mobility (currently without upper-layer header) | 135 | Parametere i bruk for Mobil IPv6. |
3.6 Hop limit
Hoppbegrensningsfeltet sier noe om hvor mange hopp en pakke kan gjøre før pakken blir kastet bort. Dette feltet var kjent som levetid(TTL) i IPv4, men for at switcher o.l. skal slippe å regne ut tiden pakker ligger i buffer, bruker antall hopp istedet. Dette betyr at enheten kun trenger å trekke 1 fra feltet.
3.7 Source Address
Kildeadressefeltet spesifiserer adressen til den enheten som har sendt pakken, når en motakker svarer vil den svare på denne adressen.
3.8 Destination Address
4. Referanser