Internet Control Message Protocol
Internet Control Message Protocol (ICMP), 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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]| Bit 0 7 | Bit 8 15 | Bit 16 23 | Bit 24 31 |
|---|---|---|---|
| Typ | Kod | Suma kontrolna | |
Dane (opcjonalne) | |||
Lista typów wiadomości
[edytuj | edytuj kod]| Typ | Znaczenie |
|---|---|
| 0 | Echo Reply (zwrot echa – „odpowiedź na ping”) |
| 1 - 2 | Zarezerwowane |
| 3 | Destination Unreachable (nieosiągalność miejsca przeznaczenia) |
| 4 | Source Quench (tłumienie nadawcy) |
| 5 | Redirect Message (zmień trasowanie) |
| 6 | Alternate Host Address (alternatywny adres hosta) |
| 7 | Zarezerwowane |
| 8 | Echo Request (żądanie echa) |
| 9 | Router Advertisement (ogłoszenie routera) |
| 10 | Router Solicitation (wybór routera) |
| 11 | Time Exceeded (przekroczenie limitu czasu) |
| 12 | Parameter Problem (Problem z parametrem) |
| 13 | Timestamp (żądanie sygnatury czasowej) |
| 14 | Timestamp Reply (zwrot sygnatury czasowej) |
| 15 | Information Request (żądanie informacji) |
| 16 | Information Reply (zwrot informacji) |
| 17 | Address Mask Request (żądanie maski adresowej) |
| 18 | Address Mask Reply (zwrot maski adresowej) |
| 19 | Zarezerwowane dla bezpieczeństwa |
| 20-29 | Zarezerwowane |
| 30 | Traceroute (śledzenie trasy) |
| 31 | Datagram Conversion Error (błąd konwersji datagramu) |
| 32 | Mobile Host Redirect (zmiana adresu ruchomego węzła) |
| 33 | IPv6 Where-Are-You (Pytanie IPv6 „gdzie jesteś”) |
| 34 | IPv6 Here-I-Am (Odpowiedź IPv6 „tu jestem”) |
| 35 | Mobile Registration Request (prośba o rejestrację węzła ruchomego) |
| 36 | Mobile Registration Reply (odpowiedź na prośbę o rejestrację węzła ruchomego |
| 37 | Domain Name Request (żądanie nazwy domeny) |
| 38 | Domain Name Reply (zwrot nazwy domeny) |
| 39 | SKIP Algorithm Discovery Protocol |
| 40 | Photuris, Security failures |
| 41-255 | Zarezerwowane |
Zobacz też
[edytuj | edytuj kod]Linki zewnętrzne
[edytuj | edytuj kod]- Jon Postel, Internet Control Message Protocol, STD 5, RFC 792, IETF, wrzesień 1981, DOI: 10.17487/RFC0792, ISSN 2070-1721, OCLC 943595667 (ang.).