|
Budowa pakietu ICMP
Pakiet ICMP składa się z nagłówka i danych. Nagłówek ma zawsze wielkość 32 bitów (4 bajtów) i znajdują się w nim trzy pola. Pierwsze z nich ma wielkość 8 bitów i przeznaczone jest na typ wiadomości ICMP. Drugie również ma wielkość 8 bitów i jest przeznaczone na kod wiadomości, który pozwala bardziej szczegółowo zidentyfikować rodzaj komunikatu. Kody mają różne znaczenia w zależności od typu komunikatu ICMP, przy czym pole kodu nie jest wykorzystywane przez każdy typ wiadomości. Trzecie pole nagłówka ICMP zajmuje 16 bitów i zawiera sumę kontrolną obliczoną z całej wiadomości ICMP (nagłówka i danych). Suma kontrolna pozwala wykryć ewentualne uszkodzenia przesyłanego pakietu. Uzyskiwana jest na podstawie takiego samego algorytmu jak suma kontrolna nagłówka IP. Do jej obliczenia musi być skompletowana cała wiadomość ICMP a miejsce przeznaczone na sumę wypełnia się zerami.
Bezpośrednio za nagłówkiem rozpoczyna się obszar przeznaczony na dane komunikatu ICMP. Jego wielkość jest zmienna a umieszczane w nim informacje są różne w zależności od typu komunikatu. W przypadku wysyłania komunikatu o błędzie na końcu obszaru danych zawsze umieszczany jest początek pakietu, podczas przesyłania którego wystąpił błąd. Dzięki temu urządzenie wysyłające pakiet może, po odebraniu komunikatu ICMP o błędzie, sprawdzić który program wysyłał pakiet i poinformować go o sytuacji jaka wystąpiła.
|