ARP (Address Resolution Protocol) jest protokołem realizującym odwzorowanie adresu IP na
A. adres sprzętowy.
B. nazwę komputera.
C. nazwę domenową.
D. adres poczty e-mail.
Pytanie z egzaminu CKE, styczeń 2014 (arkusz E.13-X-14.01).
ARP, czyli Address Resolution Protocol, służy do odwzorowania adresu IP na adres sprzętowy, najczęściej adres MAC karty sieciowej. To jest dokładnie ta warstwa praktyki sieciowej, gdzie adres logiczny z warstwy sieciowej musi zostać powiązany z adresem używanym w sieci lokalnej Ethernet. Komputer może znać adres IP hosta, np. bramy domyślnej, ale żeby wysłać ramkę Ethernet w LAN, musi znać adres MAC urządzenia docelowego. Wtedy wysyła zapytanie ARP Request jako broadcast, mniej więcej w stylu: kto ma ten adres IP, niech poda swój MAC. Urządzenie z pasującym IP odpowiada ARP Reply, zwykle już bezpośrednio do pytającego. Wynik trafia do tablicy ARP, czyli pamięci podręcznej ARP. W praktyce można ją podejrzeć poleceniem arp -a w Windows albo ip neigh w Linuxie. Protokół ARP jest opisany w RFC 826 i dotyczy głównie IPv4; w IPv6 podobną rolę pełni Neighbor Discovery Protocol, oparty o ICMPv6. Moim zdaniem to jedno z tych pojęć, które warto rozumieć naprawdę praktycznie, bo pomaga diagnozować problemy typu brak komunikacji z bramą, konflikt adresów IP, zła maska podsieci albo podejrzane wpisy po ataku ARP spoofing. Dobra praktyka w sieciach to kontrolowanie tablic ARP przy diagnostyce oraz stosowanie zabezpieczeń takich jak Dynamic ARP Inspection na przełącznikach zarządzalnych.
W tym pytaniu łatwo pomylić kilka różnych mechanizmów tłumaczenia nazw i adresów, bo wszystkie dotyczą komunikacji w sieci, ale działają na innych poziomach. ARP nie zamienia adresu IP na nazwę domenową. Odwzorowanie między nazwą domenową, na przykład example.com, a adresem IP wykonuje DNS. DNS działa wyżej, na poziomie usług nazw, i zwykle użytkownik nawet nie widzi, że system najpierw pyta serwer DNS o adres IP, a dopiero później próbuje wysłać dane do konkretnego hosta. ARP jest bardziej lokalny i techniczny: działa w obrębie segmentu sieci LAN i pomaga zbudować ramkę Ethernet przez znalezienie adresu MAC. Podobnie nazwa komputera nie jest tym, czego szuka ARP. Nazwy hostów mogą być rozwiązywane przez DNS, NetBIOS, LLMNR albo mDNS, zależnie od systemu i konfiguracji. To są mechanizmy identyfikacji wygodne dla człowieka, a nie bezpośrednie adresowanie ramek w sieci Ethernet. Adres poczty e-mail też nie ma tutaj związku. E-mail jest obsługiwany przez protokoły aplikacyjne, takie jak SMTP, IMAP czy POP3, a dostarczanie poczty korzysta dodatkowo z rekordów MX w DNS. Typowy błąd myślowy polega na tym, że skoro ARP ma w nazwie Address Resolution, to ktoś zakłada, że chodzi o dowolne rozwiązywanie adresów. W rzeczywistości chodzi konkretnie o powiązanie IPv4 z adresem sprzętowym MAC w sieci lokalnej. Z mojego doświadczenia najlepiej zapamiętać to tak: DNS pomaga znaleźć IP po nazwie, a ARP pomaga znaleźć MAC po IP, gdy pakiet ma już trafić do urządzenia w danym LAN-ie.