|
|
|
DATAGRAM IP
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.

Rys. Budowa datagramu IP

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.
|

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).
|

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).
|
|
|