Internet Protocol Message Protocol (ICMP) to protokół sieciowy do tworzenia sieci IP. ICMP przesyła informacje sterujące o statusie samej sieci zamiast danych aplikacji. Sieć IP wymaga protokołu ICMP w celu prawidłowego działania.
Komunikaty ICMP są specyficznym rodzajem wiadomości IP różniących się od TCP i UDP.
Najbardziej znanym przykładem komunikatów ICMP w praktyce jest narzędzie ping, które wykorzystuje ICMP do sondowania hostów zdalnych w celu uzyskania odpowiedzi oraz do pomiaru ogólnego czasu obiegu komunikatów sondy.
Protokół ICMP obsługuje także inne narzędzia, takie jak traceroute, które identyfikują pośrednie urządzenia trasujące ("przeskoki") na ścieżce między źródłem a miejscem docelowym.
ICMP versus ICMPv6
Oryginalna definicja protokołu ICMP obsługującego protokoły internetowe w wersji 4 (IPv4). Protokół IPv6 zawiera poprawioną formę protokołu zwanego umownie protokołem ICMPv6 w celu odróżnienia go od oryginalnego protokołu ICMP (czasami nazywanego ICMPv4).
Typy wiadomości ICMP i formaty wiadomości
Komunikaty ICMP zawierają dane niezbędne do działania i administrowania siecią komputerową. Protokół zgłasza warunki, takie jak brak reakcji urządzeń, błędy transmisji i problemy z przeciążeniem sieci.
Podobnie jak inne protokoły z rodziny IP, ICMP definiuje nagłówek wiadomości. Nagłówek zawiera cztery pola w następującej kolejności:
- Typ (8 bitów)
- Kod (8 bitów)
- Suma kontrolna (16 bitów)
- Dane ICMP (32 bity)
Protokół ICMP definiuje listę określonych typów komunikatów i przypisuje każdemu unikalny numer.
Jak pokazano w poniższej tabeli, ICMPv4 i ICMPv6 udostępniają niektóre typowe typy wiadomości (ale często o różnych numerach), a także niektóre wiadomości unikalne dla każdego z nich. (Typowe typy wiadomości również mogą się nieco różnić w ich zachowaniu między wersjami IP).
v4 # | V6 # | Rodzaj | Opis |
---|---|---|---|
0 | 129 | Odpowiedź Echo | Wiadomość wysłana w odpowiedzi na wniosek Echo (patrz poniżej) |
3 | 1 | Cel podróży nieosiągalny | Wysyłane w odpowiedzi na nieprzekazanie wiadomości IP z różnych powodów. |
4 | - | Źródło gaszenia | Urządzenie może wysłać tę wiadomość z powrotem do nadawcy, który generuje ruch przychodzący w szybszym tempie niż można go przetworzyć. (Zastąpione innymi metodami). |
5 | 137 | Przekieruj wiadomość | Urządzenia routingu mogą generować tę metodę, jeśli wykryją zmianę żądanej trasy, ponieważ komunikat IP powinien zostać zmieniony. |
8 | 128 | Prośba o echo | Wiadomość wysłana przez narzędzia ping w celu sprawdzenia reakcji urządzenia docelowego |
11 | 3 | Przekroczono czas | Routery wygenerowały ten komunikat, gdy przychodzące dane osiągnęły swój limit "przeskoku". Używany przez traceroute. |
12 | - | Problem z parametrem | Generowane, gdy urządzenie wykryje uszkodzone lub brakujące dane w przychodzącym komunikacie IP. |
13, 14 | - | Znacznik czasu (prośba, odpowiedź) | Zaprojektowany do synchronizowania zegarów czasu między dwoma urządzeniami za pośrednictwem protokołu IPv4 (zastąpione innymi, bardziej niezawodnymi metodami). |
- | 2 | Pakiet za duży | Routery generują ten komunikat po otrzymaniu wiadomości, która nie może zostać przekazana do miejsca przeznaczenia z powodu przekroczenia limitu długości. |
Protokół wypełnia pola danych Kod i ICMP w zależności od komunikatu Typ wybrany do udostępniania dodatkowych informacji. Na przykład komunikat Destination Unreachable może mieć wiele różnych wartości kodu, w zależności od rodzaju niepowodzenia.