Szczegółowe omówienie nagłówka routingu
Obsługa LSR (ang. Loose Source Routing) w IPv6 przebiega inaczej niż w IPv4. Po przygotowaniu trasy pakietu poprzez określenie listy routerów pośrednich, lecz przed wysłaniem pakietu IPv6 węzeł źródłowy wykonuje szereg operacji omówionych poniżej.
1. Przed wysłaniem oryginalny docelowy adres IPv6 w nagłówku IPv6 zostaje zastąpiony adresem pierwszego routera pośredniczącego z listy.
2. Pierwotne miejsce docelowe pakietu zostaje wpisane na ostatnią pozycję listy routerów pośrednich.
3. Wraz z dalszym przesyłaniem pakietu do kolejnych routerów pośrednich jest zmniejszana wartość pola „Pozostałe Segmenty” (ang. Segments Left) o „1”. Pole to pełni rolę informacyjną o ilości routerów pośrednich na trasie, przez które będzie przekazany pakiet zanim trafi do węzła docelowego.
Każdy router pośredni po otrzymaniu pakietu posiadającego zdefiniowaną Lisę routerów pośrednich wykonuje następujące czynności:
I. Docelowy adres IPv6 z nagłówka jest zastępowany adresem IP następnego routera pośredniczącego z listy.
II. Wartość pola „Pozostałe segmenty” jest zmniejszana o „1”
III. Adres IPv6 routera pośredniego, do którego dotarł pakiet zostaje wpisany przed adresem następnego routera. Dzięki takim działaniom zapamiętywana jest trasa pakietu.
IV. W przypadku gdy pakiet dociera do ostatniego routera pośredniczącego z listy, docelowy adres IPv6 nagłówka IPv6 zostaje zastąpiony ostatecznym adresem docelowym.
Węzeł docelowy w momencie odebrania pakietu z nagłówkiem routingu jest w stanie odtworzyć listę routerów pośrednich zapisaną w nagłówku. Wykorzystując te informacje węzeł docelowy może wysłać odpowiedź do węzła źródłowego tą samą trasą wykorzystując nagłówek routingu. Odczytuje kolejne routery pośrednie i ustawia je w odwrotnej kolejności wyznaczając trasę pakietów.
• Nagłówek fragmentacji – protokół 44, mechanizm PMTUD jest zalecany dla wszystkim węzłom IPv6. W przypadku, gdy węzeł IPv6 nie obsługuje PMTUD a musi przekazać pakiet o rozmiarze większym niż maksymalny dopuszczalny rozmiar pakietu na ścieżce, zastosowany będzie nagłówek fragmentacji. Węzeł podzieli pakiet na mniejsze części i wyśle każdą z nich.
• Nagłówek uwierzytelniania – protokół 51, ma zastosowanie w protokole IPSec aby zapewnić proces uwierzytelniania, integralność danych oraz zabezpieczenie przed wielokrotnym odtworzeniem. Jest identyczny z nagłówkiem uwierzytelniania (AH) IPSec zarówno w IPv4 jak i IPv6.
• Nagłówek ESP (ang.Encapsulating Security Payload) – protokół 50, zastosowany w protokole IPSec w celu zapewnienia uwierzytelniania, integralności danych oraz zabezpieczenie przed wielokrotnym odtworzeniem. Jest identyczny z nagłówkiem uwierzytelniania IPSec ESP w protokołach IPv4 i IPv6.
• Wielokrotne nagłówki rozszerzeń
W celu zastosowania wielokrotnych nagłówków rozszerzeń w pakiecie IPv6 należy pamiętać o zachowaniu odpowiedniej ich kolejności, która przedstawia się następująco:
1. Nagłówek podstawowy IPv6,
2. Nagłówek opcji skok-za-skokiem,
3. Opcje miejsca docelowego przy zastosowanym nagłówku routingu,
4. Nagłówek routingu,
5. Nagłówek fragmentacji,
6. Uwierzytelnianie,
7. ESP,
8. Opcje miejsca docelowego,
9. Warstwy wyższe tj. TCP,UDP, ICMPv6.
Taka kolejność nagłówków rozszerzeń w pakietach wymusza ich przetwarzanie w ściśle określonej kolejności. W momencie gdy węzeł otrzymuje pakiet, nie może przeszukać pakietu, w celu odnalezienia konkretnego nagłówka rozszerzeń. Aby zawarte w nagłówku rozszerzenia informacje mogły być użyteczne dla węzła, muszą zostać przetworzone informacje ze wszystkich poprzedzających nagłówków.
• Protokół UDP (ang. User Datagram Protocol)
Protokół UDP – protokół 17, jest protokołem warstwy wyższej. W niezmienionej formie pozostał w IPv6 i ciągle działa w warstwie wyższej niż nagłówki IPv4 i IPv6. Ważną zmianą pojawiającą się w IPv6 jest fakt, iż pole sumy kontrolnej pakietu UDP nie jest już polem opcjonalnym jak to miało miejsce w przypadku IPv4, lecz jest polem obowiązkowym. Dlatego też wartość pola sumy kontrolnej UDP musi zostać wyznaczona przez węzeł źródłowy przed wysłaniem pakietu IPv6.
Sumy kontrolnej UDP w protokole IPv6 w pakiecie UDP jest obowiązkowe.
• Protokół TCP (ang. Transport Control Protocol)
Protokół TCP – protokół 6, jest protokołem warstwy wyższej zarówno w przypadku IPv4 jak i IPv6. W nagłówku TCP pole sumy kontrolnej jest obowiązkowe zarówno w IPv4 jak i IPv6, wynika to z faktu, iż protokół TCP jest bardzo złożonym protokołem i nie zaproponowano jego żadnych modyfikacji dla IPv6. Podobnie jak UDP, protokół TCP pozostał na szczycie IPv6.
• Maksymalna jednostka transmisji (MTU)
W protokole IPv4 minimalna wartość MTU łącza wynosi 68 oktetów. W związku z tym każdy węzeł sieci musi mieć możliwość przekazania pakietu IPv4 o rozmiarze 68 bajtów bez jego fragmentacji, należy pamiętać, że maksymalna wielkość nagłówka IPv4 to 60 oktetów.
W przypadku protokołu IPv6 minimalna wartość MTU została zwiększona do 1280 oktetów
Minimalny rozmiar MTU dla IPv6 wynosi 1280 oktetów.
Pomimo faktu, że każde łącze IPv6 ma MTU o wielkości 1280 oktetów i większe, minimalna wielkość obsługiwanych datagramów w IPv6 wynosi 1500 oktetów. Jest to rozmiar datagramu po skompletowaniu wszystkich jego fragmentów przez warstwę IP.
• Protokół PMTUD
W celu zapobiegania fragmentacji w IPv6, która jest zjawiskiem niekorzystnym ze względu na zwiększone użycie procesorów w węzłach pośrednich, RFC 2460 zdecydowanie zaleca zastosowanie protokołu PMTUD (ang. Path MTU Discovery) dla IPv6. Protokół PMTUD jest inicjowany przez hosta źródłowego i pozwala na określenie minimalnej wartości MTU na ścieżce.
• Bardzo duża MTU
Nagłówek IPv6 jest w stanie obsłużyć pakiet o maksymalnym rozmiarze 65 535 oktetów, który jest ograniczony przez 16 bitową długość pola „Długość Danych”. Należy jednak pamiętać, że w przypadku IPv6 dopuszczalne są większe pakiety zwane Jumbogramami, których rozmiar wynosi do 4 294 967 295 oktetów. Dodatkowo warto zauważyć, że w technologii 10 –GB Ethernet rozmiar MTU wynosi 9216 oktetów.