Paket IPv6 ( anglicky IPv6 packet ) je blok informací formátovaných pro přenos přes počítačové sítě , které podporují protokol IPv6 .
Pakety se skládají z řídicích informací potřebných k doručení paketu na místo určení a obsahu, který má být odeslán. Řídicí informace jsou rozděleny na jednu obsaženou v hlavní pevné hlavičce a jednu obsaženou v jedné z volitelných doplňkových hlaviček. Užitnou zátěží je obvykle datagram nebo fragment protokolu vyšší transportní vrstvy , ale mohou to být také data síťové vrstvy (jako je ICMPv6 ) nebo data spojové vrstvy (jako OSPF ).
Pakety IPv6 jsou obvykle přenášeny pomocí protokolů spojové vrstvy, jako je Ethernet , který zapouzdří každý paket do rámce . Paket IPv6 lze také odeslat pomocí tunelovacího protokolu vyšší vrstvy , jako je 6to4 nebo Teredo .
Na rozdíl od IPv4 směrovače nefragmentují pakety IPv6 v situacích , kdy je paket větší než MTU připojení , a hostitelům se důrazně doporučuje [1] implementovat mechanismus zjišťování cesty MTU pro určení velikosti MTU cesty. V opačném případě budou muset použít minimální povolenou MTU v sítích IPv6, která se rovná 1280 oktetů . Koncové uzly MOHOU fragmentovat paket před jeho odesláním, pokud je větší než MTU cesty.
Pevná hlavička paketu IPv6 se skládá ze 40 oktetů (320 bitů) [1] a má následující formát:
Odsazení v oktetech | 0 | jeden | 2 | 3 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odsazení v bitech | 0 | jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | třicet | 31 | |
0 | 0 | verze | Třída dopravy | štítek toku | |||||||||||||||||||||||||||||
čtyři | 32 | délka užitečného zatížení | Další záhlaví | Hop limit | |||||||||||||||||||||||||||||
osm | 64 | zdrojová adresa | |||||||||||||||||||||||||||||||
C | 96 | ||||||||||||||||||||||||||||||||
deset | 128 | ||||||||||||||||||||||||||||||||
čtrnáct | 160 | ||||||||||||||||||||||||||||||||
osmnáct | 192 | Cílová adresa | |||||||||||||||||||||||||||||||
1C | 224 | ||||||||||||||||||||||||||||||||
dvacet | 256 | ||||||||||||||||||||||||||||||||
24 | 288 |
Popis polí:
Pro zlepšení výkonu as očekáváním, že moderní technologie spojové a transportní vrstvy poskytují dostatečnou úroveň detekce chyb, [5] hlavička nemá kontrolní součet .
Rozšířené hlavičky obsahují další informace a jsou umístěny mezi pevnou hlavičkou a hlavičkou protokolu vyšší úrovně [1] . Typ prvního rozšířeného záhlaví je určen v poli Další záhlaví pevného záhlaví a každé rozšířené záhlaví má podobné pole, které ukládá typ dalšího rozšířeného záhlaví. Pole Next Header posledního záhlaví obsahuje typ protokolu vyšší vrstvy, který je přítomen jako užitečné zatížení.
Každé rozšířené záhlaví musí být násobkem 8 v oktetech. Některá záhlaví musí být rozšířena na správnou velikost.
Rozšířené hlavičky musí zpracovat pouze koncový uzel, s výjimkou hlavičky Hop-By-Hop Options , kterou musí zpracovat každý mezilehlý uzel na cestě paketu, včetně odesílatele a příjemce. Pokud je v balení několik prodloužených hlaviček, doporučujeme je roztřídit tak, jak je uvedeno v tabulce níže. Všimněte si, že všechna rozšířená záhlaví jsou volitelná a nesmí se v balíčku objevit více než jednou, s výjimkou záhlaví Možnosti cíle , které se může objevit dvakrát.
Pokud uzel nemůže zpracovat rozšířenou hlavičku, MUSÍ paket zahodit a odeslat zprávu o problému s parametry ( ICMPv6 typ 4 kód 1). Pokud je pole Další záhlaví rozšířeného záhlaví 0, musí uzel udělat totéž.
Rozšířená hlavička | Typ | Popis |
---|---|---|
Možnosti Hop-by-Hop | 0 | Parametry, které má zpracovat každý tranzitní uzel. |
Možnosti destinace | 60 | Parametry, které by měl zpracovávat pouze příjemce. |
Směrování | 43 | Umožňuje odesílateli zadat seznam uzlů, kterými musí paket projít. |
Fragment | 44 | Hlavička obsahuje informace o fragmentaci paketu. |
Authentication Header (AH) | 51 | Obsahuje informace používané k ověření většiny balíčku. Viz IPsec . |
Encapsulation Security Payload (ESP) | padesáti | Poskytuje šifrování dat pro zabezpečená připojení. Viz IPsec . |
Rozšířená hlavička Hop-by-hop Options je potřebná k předání dalších možností zpracovávaných každým uzlem podél cesty paketu, včetně odesílatele a příjemce. Rozšířené záhlaví Možnosti cíle je potřeba k předání dalších možností koncovému uzlu nebo uzlům. Formát záhlaví je stejný pro obě rozšířené záhlaví.
Odsazení v oktetech | 0 | jeden | 2 | 3 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odsazení v bitech | 0 | jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | třicet | 31 | |
0 | 0 | Další záhlaví | HDR Ext Len | Možnosti |
Odsazení v oktetech | 0 | jeden | 2 | 3 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odsazení v bitech | 0 | jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | třicet | 31 | |
0 | 0 | Možnosti Typ | Zvolte datovou linku | Možnosti Data |
Rozšířená hlavička směrování se používá k určení seznamu tranzitních uzlů, kterými musí paket projít, než se dostane k příjemci.
Odsazení v oktetech | 0 | jeden | 2 | 3 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odsazení v bitech | 0 | jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | třicet | 31 | |
0 | 0 | Další záhlaví | HDR Ext Len | Typ směrování | Segmenty vlevo | ||||||||||||||||||||||||||||
čtyři | 32 | Typově specifická data |
Podtyp hlavičky 0 je zastaralý, protože hlavičku lze použít k organizaci DoS útoku [6] . Pokud je hodnota pole Segments Left nula, pak MUSÍ uzel ignorovat rozšířené záhlaví Routing a pokračovat ve zpracování dalších rozšířených záhlaví. Pokud je hodnota pole Segments Left nenulová, pak MUSÍ uzel zahodit paket a odeslat zprávu o problému s parametrem ( ICMPv6 typ 4, kód 0).
Za účelem odeslání paketu většího, než je cesta MTU , odesílatel rozdělí paket na fragmenty. Rozšířená hlavička Fragment obsahuje informace potřebné k tomu, aby příjemce sestavil původní (nefragmentovaný) paket.
Odsazení v oktetech | 0 | jeden | 2 | 3 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odsazení v bitech | 0 | jeden | 2 | 3 | čtyři | 5 | 6 | 7 | osm | 9 | deset | jedenáct | 12 | 13 | čtrnáct | patnáct | 16 | 17 | osmnáct | 19 | dvacet | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | třicet | 31 | |
0 | 0 | Další záhlaví | Rezervováno | Fragment Offset | Res | M | |||||||||||||||||||||||||||
čtyři | 32 | Identifikace |
Za pevnými a rozšířenými hlavičkami je užitečné zatížení protokolu transportní vrstvy , jako je segment TCP nebo datagram UDP . Pole Next Header poslední IPv6 hlavičky udává typ užitečného zatížení uloženého v paketu.
Pole pevné hlavičky Payload Length je 16 bitů , takže maximální možné užitečné zatížení a rozšířené hlavičky je 65535 oktetů . Maximální velikost rámce mnoha protokolů linkové vrstvy je mnohem menší.
Paket IPv6 může přenášet více dat pomocí možnosti jumbo payload v rozšířené hlavičce Hop-By-Hop Options [7] . Tato možnost umožňuje výměnu paketů s velikostí užitečného zatížení o 1 bajt menší než 4 GiB (2 32 − 1 = 4294967295 bajtů). Balíček s takovým obsahem se nazývá jambogram.
Protože oba protokoly TCP a UDP mají pole délky omezená na 16 bitů, je pro podporu jambogramů vyžadována implementace modifikovaných protokolů transportní vrstvy. Jumbogramy mohou fungovat pouze u připojení s MTU větší než 65583 oktetů (větší než 65535 oktetů pro užitečné zatížení, 40 oktetů pro pevné záhlaví a 8 oktetů pro rozšířené záhlaví Hop-By-Hop Options ).
Pakety IPv6 nejsou směrovači nikdy fragmentovány . Pakety větší než MTU síťového připojení jsou zahozeny a odesílateli je odeslána zpráva Packet too Big ( ICMPv6 typ 2) . K podobnému chování v IPv4 dochází, pokud je nastaven bit Nefragmentovat .
Očekává se, že koncové uzly IPv6 provedou zjišťování Path MTU, aby určily maximální povolenou velikost paketů, které mohou odeslat, a protokol vyšší vrstvy omezí velikost paketů. Pokud to však protokol vyšší vrstvy není schopen, MŮŽE odesílatel použít rozšířenou hlavičku Fragment k provedení fragmentace paketů IPv6. Všechny protokoly, které přenášejí pakety IPv6, musí mít MTU rovnou nebo větší než 1280 oktetů. Protokoly, které nejsou schopny přenést 1280-oktetový paket v jednom bloku, se musí fragmentovat a znovu sestavit, aniž by to ovlivnilo vrstvu IPv6 [1] .
Paket obsahující fragment původního (velkého) paketu se skládá ze dvou částí: nefragmentovatelné části původního paketu, která je stejná pro všechny fragmenty, a fragmentovatelné části, identifikované offsetem fragmentu.
Nefragmentovatelná část paketu se skládá z pevné hlavičky a rozšířených hlaviček původního paketu (volitelné).
Hodnota pole Další záhlaví posledního záhlaví nefragmentované části musí být 44, což znamená, že další záhlaví bude Fragment . V záhlaví fragmentu se pole Další záhlaví musí rovnat typu prvního záhlaví fragmentované části. Po záhlaví Fragment následuje fragment původního balíčku. Velikost každého fragmentu fragmentované části musí být násobkem 8, s výjimkou posledního fragmentu.
Přijímací uzel po shromáždění všech fragmentů zahodí rozšířenou hlavičku fragmentů a umístí fragmenty na offsety zadané v poli Fragment Offset vynásobené 8. Pakety obsahující fragmenty nemusí dorazit ve správném pořadí a budou přeskupeny. v případě potřeby přijímacím uzlem.
Pokud 60 sekund po obdržení prvního fragmentu nebyly shromážděny všechny fragmenty, pak se sestavování původního balíčku zruší a všechny přijaté fragmenty se zahodí. Pokud je přijat první fragment (s Fragmant Offset nastaveným na nulu), odešle se odesílateli fragmentovaného paketu zpráva Fragment Reassembly Time Exceeded ( ICMPv6 typ 3 kód 1).
Maximální velikost původního paketu nesmí překročit 65 535 oktetů a pokud je původní paket po opětovném složení větší, musí být vyřazen.
Hlavní | |
---|---|
Implementace |
|
Migrace z IPv4 na IPv6 |
|
Související protokoly |
|