Nagłówek Datagramu IPv6
Uproszczona struktura nagłówka w IPv6.
Nowy Projekt Internetowej „Koperty”
Jak badaliśmy w dyskusji o nagłówku IPv4, działa jako „koperta” dla każdego pakietu danych podróżującego przez internet. Zawiera on instrukcje, których używają routery do kierowania pakietu do miejsca docelowego. Projektanci IPv6, mając za sobą dekady doświadczeń z ograniczeniami IPv4, postanowili stworzyć nagłówek, który byłby nie tylko większy pod względem pojemności adresowej, ale także fundamentalnie bardziej wydajny.
Główna filozofia projektowa nagłówka IPv6 to prostota i wydajność. Podczas gdy same adresy stały się czterokrotnie dłuższe (128 bitów vs 32 bity), nagłówek bazowy został usprawniony. Wiele pól z nagłówka IPv4, które były opcjonalne, rzadko używane lub wymagały przetwarzania w każdym routerze, zostało usuniętych lub przeniesionych do opcjonalnych Nagłówków Rozszerzających. Ten wybór projektowy znacznie przyspiesza przetwarzanie pakietów w routerach szkieletowych internetu, co jest kluczowe dla obsługi współczesnych wolumenów ruchu sieciowego.
Anatomia Nagłówka IPv6: Stały, Szybki i Skoncentrowany
W przeciwieństwie do nagłówka IPv4, który miał zmienną długość, co routery musiały sprawdzać za każdym razem, bazowy nagłówek IPv6 ma stały rozmiar 40 bajtów (320 bitów). Ta przewidywalność pozwala routerom przetwarzać pakiety znacznie szybciej, ponieważ zawsze wiedzą, gdzie dokładnie kończy się nagłówek, a zaczynają dane.
Interaktywny nagłówek IPv6
Kliknij pole, aby poznać jego znaczenie i zobaczyć przykładowe datagramy.
Zawsze 6 dla pakietów IPv6.
Przykładowe datagramy
Klient zestawia połączenie TLS przez TCP.
Przeanalizujmy każde z ośmiu pól bazowego nagłówka IPv6, aby zrozumieć jego rolę.
Pierwsza Linia: Klasyfikacja i Kontrola Przepływu
1. Wersja - 4 bity
To pierwsze pole, podobnie jak w IPv4, identyfikuje wersję IP. Dla IPv6 pole to zawsze zawiera wartość binarną 0110 (dziesiętnie 6). Gdy router otrzymuje pakiet, pierwszą rzeczą, na którą patrzy, jest to pole. Jeśli widzi '6', wie, że resztę nagłówka ma interpretować zgodnie z regułami IPv6. Jeśli widzi '4' (0100), używa reguł IPv4. To fundamentalny mechanizm pozwalający na współistnienie IPv4 i IPv6 w tych samych łączach sieciowych.
2. Klasa Ruchu - 8 bitów
To pole jest bezpośrednim następcą pola Typ Usługi (ToS) / DSCP z IPv4. Jego celem jest umożliwienie routerom różnicowania obsługi różnych typów ruchu, co pozwala na realizację . Na przykład, pakiety należące do wideokonferencji w czasie rzeczywistym (wrażliwej na opóźnienia) mogą być oznaczone wyższym priorytetem niż pakiety pochodzące z pobierania dużego pliku. Routery na trasie mogą wykorzystać tę informację do priorytetyzacji pakietów wideokonferencji, jeśli sieć stanie się przeciążona.
3. Etykieta Przepływu - 20 bitów
Etykieta Przepływu to zupełnie nowe pole w IPv6, zaprojektowane w celu poprawy QoS i wydajności routingu. „Przepływ” to sekwencja pakietów z określonego źródła do określonego celu, które są częścią tej samej konwersacji i wymagają tego samego specjalnego traktowania.
Zamiast zmuszać każdy router do inspekcji pełnego nagłówka każdego pakietu w celu ustalenia jego priorytetu, host źródłowy może przypisać unikalną Etykietę Przepływu do wszystkich pakietów w danym przepływie. Routery szkieletowe muszą jedynie spojrzeć na tę etykietę, aby wiedzieć, jak postępować z pakietem, co jest znacznie szybsze. Działa to jak umieszczenie kolorowej naklejki na każdej paczce w jednej przesyłce; pracownicy po drodze widzą tylko kolor, aby wiedzieć, na który pas priorytetowy ją skierować, zamiast czytać pełny adres na każdej paczce. Jest to szczególnie użyteczne dla aplikacji czasu rzeczywistego, takich jak VoIP i strumieniowanie wideo.
Druga Linia: Długość i Rozszerzalność
4. Długość Ładunku - 16 bitów
To 16-bitowe pole określa długość tylko ładunku (części danych pakietu, włączając wszelkie nagłówki rozszerzające) w bajtach. Bazowy nagłówek, mający stałe 40 bajtów, nie jest wliczany do tej wartości.
- Jako pole 16-bitowe, może określać długość ładunku do bajtów.
- IPv6 obsługuje również „jumbogramy”, czyli pakiety większe niż 65 535 bajtów. Jest to realizowane za pomocą opcji w nagłówku rozszerzącym, a w takim przypadku pole Długość Ładunku jest ustawiane na 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 pole jest jedną z najpotężniejszych innowacji w IPv6. Służy dwóm celom. Po pierwsze, identyfikuje typ nagłówka, który znajduje się bezpośrednio po bazowym 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 Nagłówka Rozszerzającego IPv6.
to mechanizm używany do obsługi opcjonalnych informacji bez zaśmiecania nagłówka bazowego. Pole 'Następny Nagłówek' w nagłówku głównym wskazuje na pierwszy nagłówek rozszerzający. Ten nagłówek rozszerzający ma własne pole 'Następny Nagłówek', które wskazuje na następny, i tak dalej, tworząc łańcuch. Ostatni nagłówek w łańcuchu wskazuje na ładunek warstwy transportowej (np. TCP). To podejście "łańcuchowe" pozwala na dużą elastyczność i rozszerzalność, jednocześnie utrzymując prostotę nagłówka bazowego dla szybkiego przetwarzania przez routery.
6. Limit Przeskoków - 8 bitów
To 8-bitowe pole jest bezpośrednim odpowiednikiem pola Czas Życia (TTL) w IPv4. Nazwa została zmieniona, aby dokładniej odzwierciedlać jego funkcję: jest to licznik przeskoków, a nie miara czasu.
- 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.
Jego cel pozostaje ten sam: zapobieganie uwięzieniu pakietów w nieskończonej pętli routingu i zapychaniu sieci.
Pola Adresowe
7. Adres Źródłowy - 128 bitów
To pole zawiera pełny 128-bitowy adres IPv6 pierwotnego nadawcy pakietu. Zajmuje 16 bajtów nagłówka.
8. Adres Docelowy - 128 bitów
To pole zawiera pełny 128-bitowy adres IPv6 ostatecznego odbiorcy pakietu. Jest to podstawowe pole używane przez routery internetowe do podejmowania decyzji o przekierowaniu. Zajmuje ono ostatnie 16 bajtów 40-bajtowego nagłówka bazowego.
Czego Brakuje i Dlaczego? Geniusz Upraszczania
Równie ważne jak to, co znajduje się w nagłówku IPv6, jest to, co zostało celowo usunięte w porównaniu do IPv4. Te pominięcia są kluczem do zwiększonej wydajności IPv6.
- Brak Pola Długości Nagłówka (IHL): Ponieważ bazowy nagłówek IPv6 ma zawsze stałą długość 40 bajtów, to pole nie jest już potrzebne. Routery nie muszą tracić czasu na obliczanie, gdzie kończy się nagłówek.
- Brak Pól Fragmentacji (ID, Flagi, Przesunięcie): Fragmentacja jest kosztownym procesem dla routerów. W IPv6 routery na trasie nie fragmentują pakietów. Jeśli pakiet jest za duży, router go odrzuca i wysyła komunikat o błędzie. Odpowiedzialność za zapewnienie odpowiedniego rozmiaru pakietu spoczywa na hoście wysyłającym (przy użyciu procesu zwanego Path MTU Discovery). Jeśli fragmentacja jest konieczna, jest obsługiwana za pomocą opcjonalnego Nagłówka Rozszerzającego Fragmentacji, który jest przetwarzany tylko przez hosta docelowego, a nie przez routery pośredniczące.
- Brak Sumy Kontrolnej Nagłówka: To ogromne ulepszenie wydajności. W IPv4 każdy router musiał ponownie obliczać sumę kontrolną nagłówka, ponieważ pole TTL zmieniało się przy każdym przeskoku. To zużywało cenne cykle procesora. Projektanci IPv6 całkowicie wyeliminowali to pole, zakładając, że technologie warstwy łącza danych (jak Ethernet, który ma własną sumę kontrolną) oraz protokoły warstwy transportowej (jak TCP i UDP, które również mają sumy kontrolne) zapewniają wystarczające wykrywanie błędów. Znacząco zmniejsza to obciążenie routerów, pozwalając im na znacznie szybsze przekazywanie pakietów.