IP

Nagłówek Datagramu IPv6

Stała struktura bazowego nagłówka IPv6.

Struktura nagłówka IPv6

W każdym pakiecie IPv6 zawiera metadane i pola sterujące każdego pakietu IPv6. Adresy IPv6 mają 128 bitów, podczas gdy adresy IPv4 mają 32 bity. Routery korzystają z tych pól przy przekazywaniu pakietu, a odbiorca używa ich do interpretacji pozostałych danych. Pole Wersja pozwala rozpoznać format, adresy źródłowy i docelowy wskazują końce komunikacji, a pole Następny Nagłówek rozpoczyna łańcuch dalszych nagłówków. IPv6 definiuje stały nagłówek bazowy oraz osobne nagłówki rozszerzające.

Nagłówek bazowy IPv6 ma stały układ. W porównaniu z IPv4 część pól usunięto, a informacje opcjonalne przeniesiono do nagłówków rozszerzających. Stały nagłówek zawiera pola sterujące, dwa adresy po 128 bitów oraz wartości używane do opisu długości i identyfikacji przepływu. Router zwykle odczytuje pola potrzebne do przekazania, a host interpretuje cały łańcuch. Zmniejsza to koszt przetwarzania w typowym przypadku i pozwala rozszerzać protokół bez zmiany układu nagłówka bazowego.

Nagłówek bazowy IPv6: stały rozmiar i pola

Bazowy nagłówek IPv6 ma stały rozmiar 40 bajtów (320 bitów). Pierwsze pola opisują wersję, klasę ruchu i etykietę przepływu, pola środkowe długość, kolejny nagłówek i limit przeskoków, a dwa adresy zajmują łącznie 32 bajty. Nagłówki rozszerzające i ładunek znajdują się za nim, więc stały układ pozwala jednoznacznie odczytać początek pozostałej części pakietu.

Bazowy nagłówek IPv6 zawiera osiem pól. Poniżej opisano ich role. Ich położenie i długość są określone w standardzie, dzięki czemu parser może przejść do nagłówków rozszerzających bez odczytywania danych aplikacji.

Pola klasyfikacji i etykietowania przepływu

1. Wersja - 4 bity

To pierwsze pole identyfikuje wersję IP. Dla IPv6 zawiera wartość binarną 0110 (dziesiętnie 6), a dla IPv4 wartość 4 zapisaną jako 0100. Wartość pola decyduje o interpretacji pozostałej części nagłówka. Urządzenie może odrzucić pakiet o niezgodnym formacie przed dalszym przetwarzaniem. Współistnienie stosów wynika z rozpoznania wersji, nie z konwersji pola.

2. Klasa ruchu - 8 bitów

To pole odpowiada funkcji pól klasyfikacji ruchu z IPv4, w tym DSCP. Pozwala routerom różnicować obsługę ruchu i stosować mechanizmy . Na przykład pakiety wideokonferencji, wrażliwe na opóźnienia, mogą otrzymać inną klasę niż pakiety pobierania dużego pliku. Klasa ruchu nie wymusza określonego priorytetu. Wartość jest interpretowana według polityki sieci i może zostać zmieniona w domenie administracyjnej. Znaczenie kodów ustala domena administracyjna, a routery mogą używać tej wartości przy klasyfikacji, kolejkowaniu i zarządzaniu przeciążeniem.

3. Etykieta przepływu - 20 bitów

Etykieta przepływu identyfikuje sekwencję pakietów, dla której nadawca żąda jednolitego traktowania w sieci. Przepływ obejmuje pakiety od określonego źródła do określonego celu. Dokładne kryteria zależą od zastosowania i polityki sieci. Źródło powinno utrzymywać tę samą niezerową etykietę dla pakietów należących do jednego przepływu, a wartość zero oznacza brak takiej deklaracji.

Host źródłowy może nadać pakietom tego samego przepływu wspólną, 20-bitową wartość. Routery mogą używać jej wraz z adresami do zachowania spójnego traktowania pakietów, na przykład przy wyborze ścieżki lub obsłudze QoS. Etykieta sama nie definiuje priorytetu. Znaczenie wynika z konfiguracji i uzgodnionej polityki sieci. Przykładami ruchu wymagającego takiej spójności są VoIP i strumieniowanie wideo. Pośrednie urządzenia nie powinny zmieniać etykiety bez uzasadnionej reguły przetwarzania.

Pola długości i rozszerzeń

4. Długość ładunku - 16 bitów

To 16-bitowe pole określa długość ładunku w bajtach, czyli pozostałej części pakietu za nagłówkiem bazowym. Obejmuje także nagłówki rozszerzające, lecz nie obejmuje stałych 40 bajtów nagłówka bazowego.

  • Jako pole 16-bitowe, może określać długość ładunku do 216−1=65,5352^{16} - 1 = 65,535 bajtów.
  • IPv6 obsługuje również „jumbogramy”, czyli pakiety większe niż 65 535 bajtów. Służy do tego opcja Jumbo Payload w nagłówku Hop-by-Hop Options. Opcja przenosi rozszerzoną długość, a w takim przypadku pole Długość Ładunku ma wartość zero.

Jest to uproszczenie w stosunku do IPv4, gdzie pole „Całkowita Długość” obejmowało również nagłówek, który mógł być zmienny.

5. Następny nagłówek - 8 bitów

To 8-bitowe pole wskazuje typ nagłówka znajdującego się bezpośrednio po nagłówku IPv6. Może to być:

  • Nagłówek warstwy transportowej, jak TCP (wartość 6) lub UDP (wartość 17), tak jak pole Protokół w IPv4.
  • Nagłówek rozszerzający IPv6.

umożliwiają przenoszenie opcjonalnych informacji, takich jak fragmentacja, routing i bezpieczeństwo. Pole 'Następny Nagłówek' wskazuje kolejny nagłówek, a każde rozszerzenie zawiera własne pole tego samego typu. Łańcuch może zawierać między innymi Hop-by-Hop Options, Destination Options, Routing Header i Fragment Header. Ostatni element wskazuje nagłówek warstwy transportowej, na przykład TCP, albo wartość No Next Header.

6. Limit przeskoków - 8 bitów

To 8-bitowe pole odpowiada polu TTL w IPv4. Jest to licznik przeskoków, nie miara czasu. Router zmniejsza je przy każdym przekazaniu pakietu, niezależnie od czasu trwania transmisji.

  • Host wysyłający ustawia początkową wartość Limitu Przeskoków.
  • Każdy router, który przekazuje pakiet, zmniejsza Limit Przeskoków o 1.
  • Jeśli router zmniejszy Limit Przeskoków do 0, odrzuca pakiet i może wysłać do źródła komunikat ICMPv6 Time Exceeded, typu 3 i kodu 0.

Pole ogranicza liczbę kolejnych przekazań pakietu, co zapobiega jego nieograniczonemu krążeniu, gdy na trasie powstanie pętla routingu.

Pola adresowe

7. Adres źródłowy - 128 bitów

To pole zawiera 128-bitowy adres IPv6 źródła pakietu i zajmuje 16 bajtów nagłówka.

8. Adres docelowy - 128 bitów

To pole zawiera 128-bitowy adres odbiorcy pakietu i zajmuje ostatnie 16 bajtów 40-bajtowego nagłówka bazowego. Przy obecności nagłówka Routing adres może wskazywać bieżącego odbiorcę, przy czym końcowy cel jest określony przez przetwarzanie tego nagłówka. Routery podejmują decyzje na podstawie aktualnego adresu docelowego oraz informacji z nagłówka Routing.

Pola pominięte w nagłówku bazowym

W porównaniu z IPv4 nagłówek bazowy IPv6 nie zawiera kilku pól. Ich funkcje zastąpiono stałym układem, nagłówkami rozszerzającymi lub mechanizmami wyższych warstw.

  • Brak pola długości nagłówka (IHL): Bazowy nagłówek IPv6 ma zawsze 40 bajtów, więc długość jest znana z definicji. IHL z IPv4 nie jest potrzebne.
  • Brak pól fragmentacji (ID, Flagi, Przesunięcie): Routery IPv6 nie fragmentują pakietów w trakcie przekazywania. Gdy pakiet przekracza MTU łącza, router odrzuca go i wysyła do źródła komunikat ICMPv6 Packet Too Big zawierający ustalone MTU. Host wysyłający dobiera rozmiar za pomocą Path MTU Discovery. Gdy fragmentacja jest potrzebna, źródło umieszcza opcjonalny Fragment Header, a odbiorca docelowy składa fragmenty. Routery pośrednie nie wykonują tego składania.
  • Brak sumy kontrolnej nagłówka: IPv6 nie ma pola sumy kontrolnej w nagłówku bazowym. W IPv4 zmiana TTL wymagała aktualizacji sumy kontrolnej na każdym przeskoku. Integralność ramki może sprawdzać warstwa łącza, na przykład Ethernet za pomocą FCS, a TCP i UDP korzystają z własnych sum kontrolnych. Suma TCP lub UDP obejmuje także informacje z pseudo-nagłówka IPv6. Brak sumy w nagłówku bazowym ogranicza liczbę operacji wykonywanych przy przekazywaniu pakietu.

Powiązane artykuły