Internet Control Message Protocol ICMP (Internet Control Message Protocol) to mechanizm raportowania błędów, ważny podprotokół w klastrze protokołów TCP/IP, zwykle używany przez protokoły warstwy IP lub wyższej (TCP lub UDP), należy do protokołu warstwy sieciowej, głównie wykorzystywanego do przesyłania komunikatów sterujących między hostami IP a routerami, służącego do raportowania, czy host jest osiągalny, czy dostępna jest trasa itd. Chociaż te komunikaty sterujące nie przesyłają danych użytkownika, odgrywają kluczową rolę w zbieraniu różnych informacji sieciowych, diagnozowaniu i rozwiązywaniu różnych usterek sieci oraz przesyłaniu danych użytkownika.
Dlaczego potrzebujesz ICMP?
W procesie transmisji danych IP zapewnia usługę best-effort, czyli dokładne staranie się wysyłać pakiety danych do adresu docelowego. Nie weryfikuje, czy host docelowy otrzymuje pakiet, i nie może wykonywać kontroli przepływu ani kontroli błędów. Dlatego podczas procesu przesyłania pakietów nieuniknione są różne błędy. ICMP został stworzony, aby efektywniej przekazywać pakiety IP i zwiększać szanse na sukces dostarczania pakietów. W przypadku ICMP, gdy występuje problem z transmisją pakietów w sieci, host lub urządzenie zgłasza sytuację błędu do protokołu wyższej warstwy i przekazuje raport o nieprawidłowej sytuacji, aby protokół wyższej warstwy mógł ocenić, czy komunikacja jest poprawna, za pomocą własnego programu kontroli błędów do kontroli ruchu i kontroli błędów, aby zapewnić jakość usług.
Jakie są scenariusze zastosowania ICMP?
Raportowanie błędów
Komunikaty o błędach ICMP zgłaszają błędy sieciowe, takie jak niedostępność docelowa, limity czasu lub problemy z segmentacją. Wiadomości te są szczególnie ważne dla protokołu User Datagram Protocol (UDP) z modelem komunikacji bezpołączeniowej.
UDP nie zapewnia niezawodnej, uporządkowanej transmisji pakietów. Podczas wysyłania pakietów UDP pakiety mogą zostać utracone lub zawiodować, na przykład w przypadku błędów sumy kontrolnej podczas transmisji. Jeśli tak się stanie, odbiorca wysyła komunikat ICMP o błędzie do nadawcy, aby powiadomić o problemie.
Diagnoza
Możesz użyć ICMP do diagnostyki sieci. Najczęściej używany jest do pingowania i traceroute.
Polecenie ping testuje dostępność urządzeń sieciowych, wysyłając pakiety żądań ICMP echo do urządzenia docelowego. Jeśli urządzenie jest dostępne, zwracana jest odpowiedź echa ICMP. Niezawodnie sprawdza opóźnienia sieci i zapewnia dostępność urządzeń.
Polecenie traceroute śledzi ścieżkę pakietu od źródła do celu. Aby to zrobić, komenda wysyła echo request i echo reply do zamierzonego miejsca docelowego.
Żądania Echo zawierają wartość czasu do życia (TTL), która jest zmniejszana o 1 dla każdego routera, przez który przechodzi pakiet. Gdy pakiet dotrze do routera z zerowym TTL, router wysyła wiadomość ICMP do źródła.
Wiadomość zawiera informacje o trasie, którą przeszedł pakiet. Traceroute pokazuje dokładną trasę pakietu i może dostarczyć szczegółów dotyczących wydajności sieci.
Cyberbezpieczeństwo
Możesz użyć ICMP do wykrywania nieautoryzowanego ruchu sieciowego i przepuszczać tylko legalny ruch przez sieć. Zapory sieciowe wykorzystują ICMP do zezwalania lub blokowania określonych typów ruchu. Administratorzy sieci korzystają również z narzędzi monitorujących ICMP do monitorowania statusu i łączności urządzeń sieciowych oraz wykrywania nieznanych urządzeń.
Możesz także użyć go do wykrywania nietypowych wzorców ruchu, które mogą wskazywać na nieautoryzowaną aktywność.
Format komunikatu protokołu ICMP
Format pakietu ICMP przedstawiono na rysunku, a każda wiadomość ICMP zawiera pełny nagłówek IP pakietu, który pochodził z wiadomości ICMP, a pakiet ICMP jest zamknięty wewnątrz pakietu IP jako część pakietu IP. Trzy stałe pola zawarte w nagłówku ICMP stanowią główną podstawę, na której urządzenie źródłowe określa typ występującego błędu.
Pole Type wskazuje typ wiadomości ICMP; Pole Code reprezentuje podtyp segmentu typu wiadomości ICMP; Pole sumy kontrolnej reprezentuje sumę kontrolną pakietów ICMP.
Różne typy pakietów ICMP dzielą się na dwa typy: pakiety błędu i pakiety zapytań, jak pokazano w tabeli klasyfikacji pakietów ICMP.
Klasyfikacja pakietów ICMP
Typ | | | | Odpowiedź 0-Echo | 0 | Echo odpowiada na wiadomość | Zapytać | 3- Cel jest nieosiągalny | 0 | Docelowa sieć nie może dotrzeć do pakietu | Błąd | 1 | Docelowy host nie może dotrzeć do pakietu | Błąd | 2 | Umowa docelowa nie może dotrzeć do pakietu | Błąd | 3 | Port docelowy nie może dotrzeć do pakietu | Błąd | 4 | Komunikaty flagowe segmentacji i DF | Błąd | 5 | Pakiety nieudane przez trasę źródłową | Błąd | 6 | Pakiety sieci docelowej nieznanych | Błąd | 7 | Pakiety hosta nieznanego miejsca docelowego | Błąd | 8 | Host źródłowy izoluje pakiety | Błąd | 9 | Pakiety sieciowe, do których dostęp jest zabroniony | Błąd | 10 | Wiadomości hostowane, do których dostęp jest zabroniony | Błąd | 11 | Pakiety nie są dostępne dla konkretnej sieci TOS | Błąd | 12 | Pakiety nie są dostępne do konkretnego hosta TOS | Błąd | 13 | Pakiety są tłumione z powodu filtrowania ruchu sieciowego | Błąd | 14 | Wiadomość o przekroczeniu uprawnień hosta | Błąd | 15 | Komunikat o skutecznym zakończeniu priorytetu | Błąd | 5- Przekierowanie | 0 | Przekierowywanie pakietów sieciowych | Błąd | 1 | Przekierowanie pakietów hosta | Błąd | 2 | Pakiety przekierowania sieci oparte na TOS | Błąd | 3 | Pakiety przekierowania hosta oparte na TOS | Błąd | 8- Prośba o echo | 0 | Echo prosi o pakiety | Zapytać | 9- Ogłoszenie routera | 0 | Wiadomości o ogłoszeniu trasowania | Zapytać | 10 - Żądanie routera | 0 | Odkrywaj/wybieraj/żądaj pakietów dla routerów | Zapytać | 11 - Przerwa ICMP | 0 | Wiadomość TTL o timeoutzie | Błąd | 1 | Fragmentowanie i reorganizacja pakietów timeoutów | Błąd | 12- Problemy parametrów | 0 | Komunikat o błędzie pierwszego parametru raportu IP | Błąd | 1 | Brak wymaganych pakietów opcji | Błąd | 2 | Pakiety długości nieobsługiwane | Błąd | 13- Prośba o znacznik czasu | 0 | Pakiety żądań znaczników czasowych | Zapytać | Odpowiedź z 14-znacznikami czasowymi | 0 | Pakiety odpowiedzi z oznacznikiem czasowym | Zapytać | 15- Prośba o informacje | 0 | Pakiety żądania informacji | Zapytać | 16- Odpowiedź informacyjna | 0 | Pakiety odpowiedzi na wiadomości | Zapytać |
Różnica między ICMP a TCP
TCP to protokół zorientowany na połączenie, umożliwiający niezawodną, sprawdzoną transmisję danych. Jest powszechnie wykorzystywany do przeglądania stron internetowych, e-maili, zdalnego logowania oraz aplikacji do przesyłania plików. TCP wymaga uścisku dłoni, czyli serii wiadomości, które ustanawiają zaufanie i uwierzytelnianie między nadawcą a odbiorcą. TCP gwarantuje dostarczanie wiadomości.
Dla porównania, protokół Internet Control Message Protocol (ICMP) jest protokołem bezpołączeniowym. Nie gwarantuje to dostarczania wiadomości. Ponieważ ICMP służy wyłącznie do raportowania błędów, wiadomości ICMP są również mniejsze niż pakiety TCP.
ICMP i TCP są używane razem do ustalenia przyczyny awarii transmisji TCP. |