Address Resolution Protocol (ARP) – protokół sieciowy umożliwiający mapowanie logicznych adresów warstwy sieciowej (warstwa 3) na fizyczne adresy warstwy łącza danych (2). Protokół ten nie ogranicza się tylko do kojarzenia adresów IP z adresami MAC stosowanymi w sieciach Ethernet, lecz jest także wykorzystywany do odpytywania o adresy fizyczne stosowane w technologiach Token ring czy FDDI. Zdefiniowany jest w RFC 826 i jest określany jako standard internetowy STD 37.
Protokół ARP opisuje także zachowanie systemu operacyjnego, który zarządza tzw. tablicą ARP. Znajdują się w niej pary: adres warstwy sieciowej i przypisany do niego adres fizyczny. Zapobiega to wysyłaniu zapytania ARP przy próbie wysłania każdego pakietu do hosta znajdującego się w tej samej sieci.
Protokół ARP nie jest niezbędny do działania sieci komputerowych, może zostać zastąpiony przez statyczne wpisy w tablicy ARP, przyporządkowujące adresom warstwy sieciowej adresy fizyczne na stałe.
Zasada działania
ARP działa w następujący sposób[1]:
- W celu ustalenia adresu fizycznego hosta docelowego wysyłane jest żądanie ARP request do wszystkich hostów znajdujących się w tej samej sieci. Zapytanie zawiera adres logiczny hosta docelowego oraz adres fizyczny hosta wysyłającego zapytanie.
- Na zapytanie odpowiada tylko ten host, którego adres logiczny jest identyczny z adresem logicznym umieszczonym w zapytaniu. Odpowiedź zawiera adres logiczny i fizyczny hosta docelowego.
- Odebrany adres fizyczny zapisywany jest w tablicy ARP i parowany z adresem logicznym hosta docelowego, dzięki czemu nie będzie wymagane ponowne odkrywanie adresu fizycznego do momentu wyczyszczenia tablicy.
Często po podłączeniu do sieci host rozsyła zapytanie ARP o własny adres. Ma to na celu dwie rzeczy, po pierwsze: ustalenie, czy w sieci jest już podpięty system dysponującym identycznym adresem. Po drugie: każdy host obecny w danej sieci może zapisać w pamięci podręcznej dane o nowym hoście przyłączonym do sieci.
Format komunikatu ARP
EtherType
|
- Typ warstwy fizycznej (HTYPE) – typ protokołu warstwy fizycznej. Możliwe wartości dla pola HTYPE w tabeli po prawej stronie.
Wartość HTYPE | Typ |
---|---|
1 | Ethernet |
6 | IEEE 802.3 |
15 | Frame Relay |
16 | ATM |
17 | HDLC |
18 | Fibre Channel |
19 | ATM |
20 | Serial Line |
30 | ATM |
31 | IPsec |
- Typ protokołu wyższej warstwy (PTYPE) – dla protokołu IPv4 jest to 0x0800. Dopuszczalne wartości są zawarte w tabeli EtherType.
- Długość adresu sprzętowego (HLEN) – długość adresu sprzętowego (MAC) podana w bajtach.
- Długość protokołu wyższej warstwy (PLEN) – długość adresu protokołu, np. IP (4 bajty).
- Operacja (OPER) – kod operacji ARP. Poniżej cztery najważniejsze wartości:
Wartość OPER | Opis | RFC |
---|---|---|
1 | Zapytanie | 826 |
2 | Odpowiedź | 826, 1868 |
3 | Zapytanie odwrotne | 903 |
4 | Odpowiedź odwrotna | 903 |
- Adres sprzętowy źródła (SHA) – sprzętowy adres (MAC) nadawcy
- Adres protokołu wyższej warstwy źródła (SPA) – adres protokołu warstwy wyższej nadawcy, np. adres IP
- Adres sprzętowy przeznaczenia (THA) – sprzętowy adres (MAC) odbiorcy
- Adres protokołu wyższej warstwy przeznaczenia (TPA) – adres protokołu warstwy wyższej odbiorcy, np. adres IP
Zobacz też
Przypisy
- ↑ „Tanenbaum A. S”: Sieci komputerowe.
Linki zewnętrzne
- D. Plummer , Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware, STD 37, RFC 826, IETF, listopad 1982, DOI: 10.17487/RFC0826, ISSN 2070-1721, OCLC 943595667 (ang.).