Address Resolution Protocol

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]:

  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.
  2. 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.
  3. 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
+Bity 0 – 78 – 1516 – 31
0Typ warstwy fizycznej (HTYPE)Typ protokołu wyższej warstwy (PTYPE)
32Długość adresu sprzętowego (HLEN)Długość protokołu wyższej warstwy (PLEN)Operacja (OPER)
64Adres sprzętowy źródła (SHA)
?Adres protokołu wyższej warstwy źródła (SPA)
?Adres sprzętowy przeznaczenia (THA)
?Adres protokołu wyższej warstwy przeznaczenia (TPA)
  • Typ warstwy fizycznej (HTYPE) – typ protokołu warstwy fizycznej. Możliwe wartości dla pola HTYPE w tabeli po prawej stronie.
Wartość HTYPETyp
1Ethernet
6IEEE 802.3
15Frame Relay
16ATM
17HDLC
18Fibre Channel
19ATM
20Serial Line
30ATM
31IPsec
  • 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ść OPEROpisRFC
1Zapytanie826
2Odpowiedź826, 1868
3Zapytanie odwrotne903
4Odpowiedź odwrotna903
  • 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

  1. „Tanenbaum A. S”: Sieci komputerowe.

Linki zewnętrzne