Internet Control Message Protocol

ICMP (ang. Internet Control Message Protocol, dosł. internetowy protokół komunikatów kontrolnych) – opisany w RFC 792 ↓ protokół warstwy sieciowej modelu OSI, wykorzystywany w diagnostyce sieci oraz trasowaniu. Pełni przede wszystkim funkcję kontroli transmisji w sieci. Jest wykorzystywany w programach ping oraz traceroute.

Teoretycznie sieci powinny działać poprawnie przez cały czas, lecz tak nie jest. Gdy coś dzieje się nie tak w warstwie internetowej modelu TCP/IP (w warstwie sieci modelu ISO/OSI), rolę narzędzia do rozwiązywania problemów odgrywa protokół komunikacyjny zarządzania siecią Internet (ICMP — Internet Control Message Protocol). ICMP jest protokołem serwisowym, który zgłasza błędy łączności między hostami.

W warstwie internetowej datagramy dostarczane są w sposób bezpołączeniowy, na zasadzie „najlepiej, jak się da”. Protokół ICMP jest zestawem komunikatów, przesyłanych w datagramach IP i zdolnych do zgłaszania błędów w dostarczaniu innych datagramów IP.

Komunikaty ICMP są narzędziami diagnostycznymi „wbudowanymi” w warstwę internetową. Jeśli dwa hosty nie są w stanie komunikować się ze sobą, komunikaty ICMP mogą pomóc w zdiagnozowaniu problemu. Ponieważ w szybko ewoluującym środowisku może wystąpić zalew komunikatów, niedostarczenie komunikatu ICMP nie powoduje wysłania komunikatu ICMP o błędzie. Szczególnie, gdy komunikat ICMP o niedostępności hosta docelowego nie dotrze do hosta źródłowego, ten nie wysyła kolejnego komunikatu ICMP.

Przykłady wykorzystania

Poniższa lista zawiera kilka sytuacji, z powodu których bramy lub hosty mogą wysyłać komunikaty ICMP:

  • Gdy router lub host jest zbyt obciążony, by móc przyjąć do buforów kolejne datagramy, komunikaty ICMP służą do zwolnienia szybkości napływania datagramów do danego routera.
  • Gdy router lub host znajduje lepsza trasę do miejsca przeznaczenia, może wysłać do hosta źródłowego komunikat ICMP, powiadamiający o krótszej trasie.
  • Gdy host docelowy jest nieosiągalny, ostatnia brama wysyła komunikat ICMP z powrotem do hosta źródłowego, informując o niedostępności adresata.
  • Gdy host lub brama przetwarza pakiet o TTL równym 0 hopów, wówczas odrzuca ten pakiet i ewentualnie wysyła komunikat ICMP do hosta źródłowego.

Pakiet (datagram) ICMP

Bit 0 7Bit 8 15Bit 16 23Bit 24 31
TypKodSuma kontrolna

Dane (opcjonalne)

Lista typów wiadomości

TypZnaczenie
0Echo Reply (zwrot echa – "odpowiedź na ping")
1 - 2Zarezerwowane
3Destination Unreachable (nieosiągalność miejsca przeznaczenia)
4Source Quench (tłumienie nadawcy)
5Redirect Message (zmień trasowanie)
6Alternate Host Address (alternatywny adres hosta)
7Zarezerwowane
8Echo Request (żądanie echa)
9Router Advertisement (ogłoszenie routera)
10Router Solicitation (wybór routera)
11Time Exceeded (przekroczenie limitu czasu)
12Parameter Problem (Problem z parametrem)
13Timestamp (żądanie sygnatury czasowej)
14Timestamp Reply (zwrot sygnatury czasowej)
15Information Request (żądanie informacji)
16Information Reply (zwrot informacji)
17Address Mask Request (żądanie maski adresowej)
18Address Mask Reply (zwrot maski adresowej)
19Zarezerwowane dla bezpieczeństwa
20-29Zarezerwowane
30Traceroute (śledzenie trasy)
31Datagram Conversion Error (błąd konwersji datagramu)
32Mobile Host Redirect (zmiana adresu ruchomego węzła)
33IPv6 Where-Are-You (Pytanie IPv6 "gdzie jesteś")
34IPv6 Here-I-Am (Odpowiedź IPv6 "tu jestem")
35Mobile Registration Request (prośba o rejestrację węzła ruchomego)
36Mobile Registration Reply (odpowiedź na prośbę o rejestrację węzła ruchomego
37Domain Name Request (żądanie nazwy domeny)
38Domain Name Reply (zwrot nazwy domeny)
39SKIP Algorithm Discovery Protocol
40Photuris, Security failures
41-255Zarezerwowane

Zobacz też

Linki zewnętrzne