Który protokół jest stosowany do sprawdzenia poprawności połączenia pomiędzy dwoma hostami?
A. RARP (Reverse Address Resolution Protocol).
B. UDP (User Datagram Protocol).
C. ICMP (Internet Control Message Protocol).
D. RIP (Routing Information Protocol).
Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.13-X-19.06).
ICMP, czyli Internet Control Message Protocol, jest właściwą odpowiedzią, bo właśnie ten protokół służy do przesyłania komunikatów kontrolnych i diagnostycznych w sieciach IP. W praktyce najczęściej spotykasz go przy poleceniu ping, które wysyła komunikat ICMP Echo Request do drugiego hosta i oczekuje odpowiedzi ICMP Echo Reply. Jeśli odpowiedź wróci, można wstępnie stwierdzić, że host jest osiągalny w sieci, trasa działa, a adresacja IP i routing najpewniej są skonfigurowane poprawnie. To nie jest test usługi, np. strony WWW czy FTP, tylko test łączności na poziomie sieciowym. Moim zdaniem to jedno z najbardziej podstawowych narzędzi diagnostycznych, bo szybko pokazuje, czy problem leży w sieci, czy raczej wyżej, np. w aplikacji. ICMP opisuje m.in. RFC 792 dla IPv4, a dla IPv6 używa się ICMPv6, opisanego m.in. w RFC 4443. W dobrej praktyce administrator nie opiera diagnozy tylko na ping, bo zapora sieciowa może blokować ICMP, ale jako pierwszy test jest to naprawdę sensowny wybór.
W tym pytaniu chodzi o sprawdzenie, czy dwa hosty mogą się ze sobą skomunikować na poziomie sieci IP, dlatego trzeba odróżnić protokoły diagnostyczne od protokołów transportowych, routingu i pomocniczej obsługi adresów. UDP jest protokołem warstwy transportowej, używanym np. przez DNS, VoIP, DHCP czy transmisje czasu rzeczywistego. Sam UDP nie potwierdza dostarczenia danych i nie służy typowo do sprawdzania poprawności połączenia między hostami. Częsty błąd polega na tym, że ktoś kojarzy UDP z komunikacją w sieci i uznaje, że skoro coś przesyła, to nada się do testu łączności. No nie do końca, bo UDP nie ma mechanizmu odpowiedzi kontrolnej takiego jak ICMP Echo Reply. RIP to protokół routingu dynamicznego. Jego zadaniem jest wymiana informacji o trasach między routerami, a nie testowanie, czy konkretny komputer odpowiada drugiemu komputerowi. Może mieć wpływ na to, którędy pakiety pójdą, ale nie jest narzędziem diagnostycznym do prostego sprawdzenia hosta. RARP z kolei był używany do uzyskiwania adresu IP na podstawie adresu MAC, głównie w starszych rozwiązaniach. Dzisiaj praktycznie został wyparty przez BOOTP i DHCP. Nie sprawdza on poprawności połączenia między dwoma hostami, tylko dotyczy mapowania adresów w bardzo specyficznym scenariuszu. W praktyce, gdy technik wpisuje ping 192.168.1.1 albo ping nazwa_hosta, korzysta właśnie z ICMP. Trzeba jednak pamiętać, że brak odpowiedzi ping nie zawsze oznacza awarię sieci, bo firewall, ACL na routerze albo polityka bezpieczeństwa mogą blokować komunikaty ICMP. Dlatego poprawna diagnoza zwykle łączy ping z innymi narzędziami, takimi jak traceroute, ipconfig, ifconfig, ip route czy test portu TCP.