Routery i hosty używają komunikatów ICMP do raportowania warunków takich jak nieosiągalny cel, wygasły limit skoków lub pakiet zbyt duży dla ścieżki. ICMP jest częścią działania IP, a nie ogólnym transportem danych aplikacji.
IPv4 używa ICMP, a IPv6 używa ICMPv6, które obsługuje także istotne funkcje IPv6. Komunikaty echo request i echo reply leżą u podstaw znajomego testu ping, ale to tylko dwa typy komunikatów. Traceroute powszechnie wywołuje komunikaty time-exceeded, wysyłając pakiety z progresywnie większymi wartościami time-to-live IPv4 lub hop-limit IPv6.
Najważniejsze punkty
Raportowanie błędówICMP raportuje problem nadawcy; nie naprawia nieudanej dostawy ani nie gwarantuje, że każdy błąd sieciowy wygeneruje komunikat.
DiagnostykaPing, traceroute i systemy monitorujące używają wybranych zachowań ICMP do testowania osiągalności i badania ścieżek, opóźnień i strat.
Bezpieczne filtrowanieZezwalaj na typy komunikatów potrzebne do poprawnego działania, waliduj je w kontekście tam, gdzie możliwe, ograniczaj tempo nadużyć i ograniczaj zbędny ruch zamiast stosować niekrytyczną blokadę.
Istotne ograniczenieKomunikaty ICMP nie są z natury dowodem tożsamości nadawcy ani zgłoszonego stanu. Mogą być sfałszowane, filtrowane, ograniczane tempem lub nadużywane, a zablokowanie całego ICMP może uszkodzić diagnostykę i funkcje takie jak Path MTU Discovery, zwłaszcza w IPv6.