Co to jest protokół komunikatów kontroli Internetu?

Internet Control Message Protocol (ICMP) to narzędzie używane do raportowania błędów i celów diagnostycznych w sieciach komputerowych. ICMP jest częścią pakietu protokołu internetowego (IP) i składa się z predefiniowanych komunikatów o różnym przeznaczeniu. Większość aspektów protokołu Internet Control Message Protocol pozostaje niezauważona przez użytkowników końcowych, ale kilka narzędzi sieciowych, takich jak traceroute i ping, ze względu na swoją funkcjonalność opiera się na komunikatach ICMP.

Sercem zarówno Internetu, jak i mniejszych sieci komputerowych jest zbiór protokołów znany jako IP Suite. Protokoły te określają formaty wiadomości wymienianych między urządzeniami sieciowymi i ustalają zasady wysyłania i odbierania tych wiadomości. Protokoły są również warstwowe, a każda warstwa opiera się na tej znajdującej się pod nią. ICMP jest częścią drugiej co do wielkości warstwy, warstwy internetowej. Warstwa ta obejmuje dobrze znany protokół internetowy odpowiedzialny za transmisję poszczególnych grup danych, zwanych pakietami, przez jedną lub więcej sieci.

Protokół ICMP służy do wysyłania komunikatów o błędach lub informacji diagnostycznych między urządzeniami lub hostami za pomocą protokołu internetowego. Komunikaty ICMP są wstępnie zdefiniowane i można się do nich odnosić za pomocą nazwy lub numeru typu. Większość z tych komunikatów dotyczy różnych typów raportowania błędów. Na przykład, gdy nie można uzyskać dostępu do konkretnego hosta, często generowany jest komunikat ICMP wskazujący na konkretny problem uniemożliwiający dostarczenie danych. Inne rodzaje wiadomości są wysyłane w przypadku uszkodzenia pakietów lub przeciążenia routera lub hosta w sieci.

Maksymalny rozmiar pakietu nie jest z góry określony, ale jest dyktowany przez maksymalną jednostkę transmisji (MTU) konkretnego łącza sieciowego. Różne łącza mogą mieć różne jednostki MTU, ale pakiet musi być mniejszy niż najmniejsza jednostka MTU na danej ścieżce, aby zakończyć podróż. Technika znana jako Path MTU Discovery (PMTUD) wykorzystuje komunikaty ICMP do powiadamiania nadawcy, gdy pakiety są zbyt duże dla określonego segmentu ścieżki.

Powiązany protokół znany jako ICMP Router Discovery Protocol (IRDP) może ułatwić automatyczną konfigurację sieci dla hostów, które go obsługują. Protokół IRDP używa dwóch typów komunikatów protokołu internetowego Control Message Protocol do ogłaszania i wykrywania pobliskich routerów, tj. hostów łączących dwie lub więcej sieci. Router obsługujący protokół IRDP będzie okresowo rozgłaszał komunikat reklamowy routera ICMP, ogłaszając hostom swoją obecność. Hosty mogą również wysłać wiadomość z żądaniem identyfikacji wszystkich pobliskich routerów.

Niektóre popularne narzędzia sieciowe również opierają się na protokole Internet Control Message Protocol. Jedno narzędzie, traceroute, wykorzystuje komunikat ICMP generowany, gdy pakiet wygasł lub przekroczył swój „czas życia” (TTL). Ustawiając celowo niską wartość TTL dla pakietu, traceroute otrzyma komunikat ICMP o przekroczeniu czasu od ostatniego routera, do którego dotarł pakiet przed wygaśnięciem. Powtórzenie tego procesu i zwiększenie wartości TTL teoretycznie spowoduje wygenerowanie listy wszystkich hostów, przez które przechodzą pakiety.
Inne narzędzie o nazwie ping opiera się na komunikacie ICMP Echo Request, na który odpowiada komunikat ICMP Echo Reply. Niestety, ping może być również nadużywany w tak zwanym „ataku smurf”, gdy haker wysyła żądania echa z sfałszowanymi informacjami o nadawcy, na które następnie odpowiada wiele innych maszyn. Może to spowodować przeciążenie sieci do punktu, w którym żadne legalne pakiety nie będą mogły się przedostać, co jest znane jako odmowa usługi.