Internet Control Message Protocol (ICMP), dosł. internetowy protokół komunikatów kontrolnych) – opisany w 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 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 7 Bit 8 15 Bit 16 23 Bit 24 31 Typ Kod Suma kontrolna Dane (opcjonalne)

Lista typów wiadomości Typ Znaczenie 0 (zwrot echa – „odpowiedź na ping”) 1 - 2 Zarezerwowane 3 (nieosiągalność miejsca przeznaczenia) 4 (tłumienie nadawcy) 5 (zmień trasowanie) 6 (alternatywny adres hosta) 7 Zarezerwowane 8 (żądanie echa) 9 (ogłoszenie routera) 10 (wybór routera) 11 (przekroczenie limitu czasu) 12 (Problem z parametrem) 13 (żądanie sygnatury czasowej) 14 (zwrot sygnatury czasowej) 15 (żądanie informacji) 16 (zwrot informacji) 17 (żądanie maski adresowej) 18 (zwrot maski adresowej) 19 Zarezerwowane dla bezpieczeństwa 20-29 Zarezerwowane 30 (śledzenie trasy) 31 (błąd konwersji datagramu) 32 (zmiana adresu ruchomego węzła) 33 IPv6 (Pytanie IPv6 „gdzie jesteś”) 34 IPv6 (Odpowiedź IPv6 „tu jestem”) 35 (prośba o rejestrację węzła ruchomego) 36 (odpowiedź na prośbę o rejestrację węzła ruchomego 37 (żądanie nazwy domeny) 38 (zwrot nazwy domeny) 39 40 , 41-255 Zarezerwowane

Zobacz też protokoły komunikacyjne TCP UDP RTP SCTP

Linki zewnętrzne

Kategoria:Protokoły warstwy sieciowej