www.tcp-ip.prv.pl

Podstawowa jednostka przesyłanych danych nazwana jest datagramem. Datagram podzielony jest na nagłówek i dane. Nagłówek datagramu zawiera adres nadawcy
i odbiorcy oraz pole typu, które identyfikuje zawartość datagramu. Datagram przypomina ramkę sieci fizycznej. Różnica polega na tym, że nagłówek ramki zawiera adresy fizyczne, zaś nagłówek datagramu adresy IP. Ponieważ przetwarzaniem datagramów zajmują się programy, zawartość i format datagramów nie są uwarunkowane sprzętowo.

Budowa datagramu IP

Rys. Budowa datagramu IP

Budowa nagłówka datagramu

Rys. Budowa nagłówka datagramu

Pole WERSJA - [4-bitowe] - zawiera informację o wersji protokołu IP, która była używana przy tworzeniu datagramu. Informacja ta jest wykorzystywana do sprawdzania, czy nadawca, odbiorca i wszystkie routery zgadzają się na format datagramu. Oprogramowanie IP zawsze sprawdza pole wersji w celu upewnienia się, czy jego format zgadza się ze spodziewanym.

Pole DŁUGOŚĆ NAGŁÓWKA (IHL - Internet Header Length) - [4-bitowe] - zawiera informację o długości nagłówka mierzoną w 32-bitowych słowach. Minimalna wartość to 5 (pole OPCJE IP i UZUPEŁNIENIE najczęściej nie są wypełniane).

Pole TYP OBSŁUGI - [8-bitowe] - określa sposób w jaki powinien być obsłużony datagram. Składa się ono z pięciu podpól.

Budowa pola TYP OBSŁUGI

Rys. Budowa pola TYP OBSŁUGI

Podpole PIERWSZEŃSTWO - [3-bitowe] - zawiera informację o stopniu ważności datagramu, od 0 (normalny stopień ważności) do 7 (sterowanie siecią). Umożliwia to nadawcy wskazanie jak ważny jest dany datagram.

Bity O, S, P określają rodzaj przesyłania, którego wymaga datagram. Ustawienie bitu:

O - oznacza prośbę o krótkie czasy oczekiwania
       (0 - opóźnienie normalne, 1 - opóźnienie małe),
S - o przesyłanie szybkimi łączami
       (0 - wydajność normalna, 1 - wydajność wysoka),
P - o dużą pewność przesyłanych danych
       (0 - niezawodność normalna, 1 - niezawodność wysoka).

Bity 6 i 7 są zarezerwowane do użycia w przyszłości i mają wartość
równą zero.

Ponieważ nie ma pewności, że trasa o wskazanych parametrach będzie dostępna, informacje te należy traktować tylko jako podpowiedź dla algorytmów trasowania. Jednocześnie wskazanie wszystkich trzech sposobów obsługi na raz, zwykle nie ma sensu. W praktyce większość oprogramowania węzłów i routerów ignoruje pole TYP OBSŁUGI.

Pole DŁUGOŚĆ PAKIETU - [16-bitowe] - zawiera, mierzoną w bajtach, długość całego datagramu IP. Rozmiar pola danych można uzyskać przez odjęcie DŁUGOŚCI NAGŁÓWKA od DŁUGOŚCI PAKIETU. Ponieważ pole DŁUGOŚĆ PAKIETU ma 16 bitów długości, to maksymalny możliwy rozmiar datagramu IP wynosi: 216 - 1, czyli 65535 bajtów.

Pole IDENTYFIKATOR - [16-bitowe] - zawiera wartość identyfikacyjną przypisaną nadawanemu pakietowi przed fragmentacją (jeżeli miałaby ona miejsce). W przypadku fragmentacji określa ona przynależność fragmentu do datagramu.

Pole FLAGI - [3-bitowe] - flagi sterujące:

bit nr 0: - zarezerwowany, musi mieć wartość zero;

bit nr 1: DF (don't fragment)

0 - można fragmentować;

1 - informuje komputer węzłowy o tym, że tak oznaczony pakiet może być przesyłany dalej tylko w całości - jego fragmentacja jest zabroniona. Jeżeli pakiet taki okaże się zbyt duży dla komputera docelowego, to zostanie on po prostu skasowany;

bit nr 2: Flaga MF (more fragments) oznacza, że podczas transmisji pomiędzy komputerami pakiet został podzielony na części, a odebrana paczka danych jest tylko jego fragmentem.

0 - ostatnia fragmentacja,

1 - więcej fragmentacji.

Pole PRZESUNIĘCIE FRAGMENTU - [13-bitowe] - pole to wskazuje do którego miejsca pakietu danych należy ten fragment. Bazując na tym parametrze możliwe jest późniejsze odtworzenie pakietu z części. PRZESUNIĘCIE FRAGMENTU jest mierzone w jednostkach 8 bajtowych (64 bitów). Pierwszy fragment ma przesunięcie równe zeru.

Pole CZAS ŻYCIA (TTL - Time To Live) - [8-bitowe] - określa jak długo
w sekundach pakiet może być przesyłany do kolejnych węzłów sieci. Ten limit czasowy wynosi zwykle od 15 do 30 sekund.

Wymogiem protokołu TCP/IP jest aby każdy router podczas przetwarzania nagłówka datagramu zmniejszał wartość pola CZAS ŻYCIA co najmniej o 1, nawet jeśli rzeczywiste przetwarzanie trwało krócej. Jeśli jednak router jest przeciążony i czas przetwarzania jest dłuższy wówczas wartość pola CZAS ŻYCIA zmniejsza się o czas faktycznego pozostawania datagramu wewnątrz routera. Gdy wartość pola zmaleje do zera, router kasuje datagram i wysyła do nadawcy komunikat o błędzie. Mechanizm ten zapobiega podróżowaniu datagramów w sieci w nieskończoność, np. gdy tablice tras są nieaktualne, a routery wyznaczają datagramom trasy w koło.

Pole PROTOKÓŁ - [8-bitowe] - zawiera numer identyfikacyjny protokołu transportowanego dla którego pakiet jest przeznaczony. Numer poszczególnych protokołów transportowych określone są przez INTERNIC (Internet Network Information Center). Najbardziej popularnymi są: ICMP oznaczony numer 1 oraz TCP oznaczony numerem 6. Pełna lista protokołów obejmuje ok. 50 pozycji.

Pole SUMA KONTROLNA NAGŁÓWKA - [16-bitowe] - służy do sprawdzenia sensowności nagłówka. Obejmuje tylko nagłówek IP i nie dotyczy w żadnym stopniu danych. Obliczenie sumy kontrolnej bezpośrednio po otrzymaniu pakietu oraz porównaniu jej z wartością zapisaną w niniejszym polu pozwala wykryć przekłamania.

Pole ADRES NADAWCY - [32-bitowe] - zawiera adres IP pierwotnego nadawcy.

Pole ADRES ODBIORCY - [32-bitowe] - zawiera adres IP końcowego odbiorcy.

Pole OPCJE IP nie występuje w każdym datagramie - pierwotnym zastosowaniem OPCJI było ułatwienie testowania i usuwania błędów. Długość pola OPCJE zmienia się w zależności od tego jakie opcje są wybrane. Niektóre z nich mają długość 1 bajta, inne mają długość zmienną. Każda OPCJA składa się z kodu opcji długości 1 bajta po którym może się pojawić ciąg bajtów tej opcji. Pole OPCJE składa się z trzech części (rysunek).

Budowa pola OPCJE

Rys. Budowa pola OPCJE

1 bitowy znacznik KOPIUJ określa, że opcje mają być przekopiowane do wszystkich fragmentów (wartość 1), bądź tylko do pierwszego (wartość 0).

Bity KLASA OPCJI określają ogólną klasę opcji:

Klasa opcji Znaczenie
0 Kontrola datagramów w sieci
1 Zarezerwowane do przyszłego użytku
2 Poprawianie błędów i pomiary
3 Zarezerwowane do przyszłego użytku

Tab. Znaczenie bitów KLASY i NUMERU OPCJI

Klasa opcji Numer opcji Długość Opis
0 0 - Koniec listy opcji. Używana gdy opcje nie kończą się wraz z końcem nagłówka
0 1 - Bez przypisanej funkcji - wypełnienie
0 2 11 Tajność - używana do zastosowań wojskowych
0 3 zmienna Swobodne trasowanie wg nadawcy - używana do prowadzenia datagramu określoną ścieżką
0 7 zmienna Zapisuj trasę - używana do śledzenia trasy
0 9 zmienna Rygorystyczne trasowanie wg nadawcy - używana do ścisłego prowadzenia datagramu.
2 4 zmienna Intersieciowy datownik - używana do zapisywania czasów wzdłuż ścieżki.

Pole UZUPEŁNIENIE zależy od wybranych opcji. Zawiera ono zerowe bity, które mogą być potrzebne do zapewnienia, że nagłówek ma długość, która jest wielokrotnością 32 bitów (ponieważ DŁUGOŚĆ NAGŁÓWKA zawiera wartość mierzoną w jednostkach 32-bitowych).

Wprowadzenie

Co to jest protokół?

Charakterystyka protokółu TCP/IP

Jak powstał TCP/IP?

Co to jest sieć?

Model OSI

Umiejscowienie protokołu TCP/IP w modelu OSI

Kapsułkowanie

Fragmentacja

Protokół IP

Datagram IP

Adresowanie IP

Protokół ARP i RARP

Podsieci

Maski podsieci

Adresy podsieci

Protokół TCP

Kanał wirtualny TCP

Realizacja niezawodnego połączenia

Idea przesuwających się okien

Segment TCP

Numeracja portów

DNS

Przyszłość TCP/IP

Routing

Podsumowanie i wnioski

Dodatek

Słowniczek

Indeks obiektów

Literatura


E-mail

Zamknij Poprzednia Góra Następna

Copyright © Mariusz Wasak