background image

Protokół ARP (Address Resolution Protocol) 

Protokół ARP jest wymaganym standardem protokołu TCP/IP zdefiniowanym w specyfikacji RFC 826 

„Address Resolution Protocol (ARP)”. Protokół ARP zamienia adresy IP używane przez oprogramowanie 

protokołu TCP/IP na adresy kontroli dostępu do nośnika, z których korzystają urządzenia sieci LAN. 

Protokół ARP oferuje hostom zlokalizowanym w tej samej sieci fizycznej następujące usługi: 

Adresy kontroli dostępu do nośnika są uzyskiwane za pomocą żądania emisji sieciowej mającego formę 

pytania „Jaki jest adres kontroli dostępu do nośnika dla urządzenia, dla którego skonfigurowano 

załączony adres IP?”. 

Jeśli nadejdzie odpowiedź na żądanie ARP, nadawca odpowiedzi ARP i urządzenie, które wysłało żądanie 

ARP, zapiszą swoje adresy IP i adresy kontroli dostępu do nośnika jako wpisy w tabeli lokalnej, zwanej 

także pamięcią podręczną ARP, aby móc ich użyć w przyszłości. 

Adresowanie sprzętowe 

Urządzenia przeznaczone do współpracy z sieciami LAN powinny mieć unikatowe adresy zaprogramowane 

przez producenta. Dla urządzeń pracujących w sieciach Ethernet i Token Ring adres ten znany jest jako 

adres kontroli dostępu do nośnika. 

Każdy adres kontroli dostępu do nośnika określa urządzenie we własnej sieci fizycznej za pomocą 6-

bajtowej liczby zapisanej w pamięci ROM każdego fizycznego urządzenia sprzętowego, takiego jak karta 

sieciowa. Adresy kontroli dostępu do nośnika są zwykle zapisane w notacji szesnastkowej (na przykład 

00-AA-00-3F-89-4A). 

Zarządzanie i rejestrację adresów kontroli dostępu do nośnika nadzoruje instytut IEEE (Institute of 

Electrical and Electronics Engineers). Aktualnie IEEE nadaje unikatowe wartości pierwszym trzem bajtom 

adresu kontroli dostępu do nośnika poszczególnych producentów i rejestruje je. Każdy producent może 

następnie przypisać ostatnie trzy bajty adresu kontroli dostępu do nośnika poszczególnym kartom 

sieciowym. 

Jak adresy kontroli dostępu do nośnika są zamieniane na ruch lokalny 
przez protokół ARP 

Na poniższych rysunkach przedstawiono sposób zamiany adresów IP na adresy kontroli dostępu do 

nośnika za pomocą protokołu ARP dla hostów zlokalizowanych w tej samej sieci lokalnej. 

 

Obraz 

W tym przykładzie dwa hosty TCP/IP, A i B, są zlokalizowane w tej samej sieci fizycznej. Hostowi A 

zostaje przypisany adres IP o wartości 10.0.0.99, a hostowi B adres IP o wartości 10.0.0.100. 

Gdy host A podejmuje próbę połączenia się z hostem B, adres przypisany hostowi B za pomocą 

oprogramowania (10.0.0.100) jest zamieniany na adres kontroli dostępu do nośnika przypisany 

sprzętowo hostowi B w następujący sposób: 

 

background image

1.  Na podstawie zawartości tabeli routingu dla hosta A protokół IP określa, że przy przesyłaniu danych 

do hosta B będzie używany adres IP o wartości 10.0.0.100. Host A szuka odpowiedniego adresu 

sprzętowego dla hosta B w lokalnej pamięci podręcznej ARP. 

2.  Jeśli host A nie znajdzie mapowania adresu w pamięci podręcznej, do wszystkich hostów w sieci 

lokalnej zostanie wyemitowana ramka żądania z pytaniem „Jaki jest adres sprzętowy dla adresu 

10.0.0.100?” W żądaniu ARP jest zawarty zarówno adres sprzętowy źródła, jak i adres programowy 

źródła — hosta A.  

Każdy host w sieci lokalnej otrzymuje żądanie ARP i szuka adresu odpowiadającego własnemu 

adresowi IP. Jeśli host nie może znaleźć pasującego adresu, żądanie ARP zostaje odrzucone.  

3.  Host B określa, czy adres IP zawarty w żądaniu ARP pasuje do jego adresu IP, a następnie dodaje 

mapowanie adresu sprzętowego na adres programowy hosta A do lokalnej pamięci podręcznej ARP.  

4.  Host B wysyła odpowiedź ARP zawierającą jego adres sprzętowy bezpośrednio do hosta A.  

5.  Po otrzymaniu odpowiedzi ARP hosta B przez hosta A, host A aktualizuje swoją pamięć podręczną 

ARP mapowaniem adresu sprzętowego na adres programowy hosta B. 

Po określeniu adresu kontroli dostępu do nośnika hosta B host A może przesłać ruch IP do hosta B, 

kierując ten ruch na adres kontroli dostępu do nośnika hosta B.  

Jak protokół ARP zamienia adresy kontroli dostępu do nośnika na 
połączenia zdalne 

Protokół ARP służy także do przesyłania datagramów IP do routerów lokalnych w celu dalszego ich 

przesłania do miejsc docelowych poza siecią lokalną. W tej sytuacji protokół ARP zamienia adres kontroli 

dostępu do nośnika interfejsu routera w sieci lokalnej. 

Na poniższym rysunku przedstawiono sposób zamiany adresów IP na adresy sprzętowe przez protokół 

ARP dla dwóch hostów zlokalizowanych w dwóch różnych sieciach fizycznych połączonych za pomocą 

wspólnego routera. 

 

Obraz 

W tym przykładzie host A ma przypisany adres IP o wartości 10.0.0.99, a host B używa adresu IP o 

wartości 192.168.0.99. Interfejs routera 1 jest zlokalizowany w tej samej sieci fizycznej, co host A i 

używa adresu IP o wartości 10.0.0.1. Interfejs routera 2 jest zlokalizowany w tej samej sieci fizycznej, co 

host B i używa adresu IP o wartości 192.168.0.0.1. 

Gdy host A próbuje połączyć się z hostem B, adres interfejsu routera 1 (10.0.0.1) przypisany 

programowo jest zamieniany na sprzętowy adres kontroli dostępu do nośnika w następujący sposób: 

 

 

 

background image

1.  Na podstawie tabeli routingu hosta A protokół IP określa, że przy przesyłaniu danych do hosta B 

będzie używany adres IP o wartości 10.0.0.1, który jest adresem IP jego bramy domyślnej. Host A 

szuka w lokalnej pamięci podręcznej ARP adresu sprzętowego pasującego do adresu IP 10.0.0.1. 

2.  Jeśli host A nie znajdzie zmapowanego adresu w pamięci podręcznej, do wszystkich hostów w sieci 

lokalnej zostanie wyemitowana ramka żądania z pytaniem „Jaki jest adres sprzętowy dla adresu 

10.0.0.1?” W żądaniu ARP jest zawarty zarówno adres sprzętowy źródła, jak i adres programowy 

źródła — hosta A.  

Każdy host w sieci lokalnej otrzymuje żądanie ARP i szuka adresu odpowiadającego własnemu 

adresowi IP. Jeśli host nie może znaleźć pasującego adresu, żądanie ARP zostaje odrzucone.  

3.  Router określa, czy adres IP zawarty w żądaniu ARP pasuje do jego adresu IP, a następnie dodaje 

mapowanie adresu sprzętowego na adres programowy hosta A do lokalnej pamięci podręcznej ARP.  

4.  Następnie router wysyła bezpośrednio do hosta A odpowiedź ARP zawierającą jego adres sprzętowy.  

5.  Po otrzymaniu przez hosta A odpowiedzi ARP z routera host A aktualizuje swoją pamięć podręczną 

ARP mapowaniem adresu sprzętowego na adres programowy 10.0.0.1. 

Po określeniu adresu kontroli dostępu do nośnika dla interfejsu routera 1 host A może wysyłać ruch IP do 

interfejsu routera 1 na adres kontroli dostępu do nośnika interfejsu routera 1. Następnie router przesyła 

ruch do hosta B, używając procesu ARP opisanego w tej sekcji.  

Pamięć podręczna ARP 

Aby zminimalizować liczbę emisji, protokół ARP obsługuje pamięć podręczną zawierającą mapowania 

adresów IP na adresy kontroli dostępu do nośnika, które mogą być użyte w przyszłości. Pamięć 

podręczna ARP może zawierać zarówno wpisy dynamiczne, jak i statyczne. Wpisy dynamiczne są 

dodawane i usuwane automatycznie cały czas. Wpisy statyczne pozostają w pamięci podręcznej do 

ponownego uruchomienia komputera.  

Każdy wpis dynamiczny w pamięci podręcznej ARP ma żywotność około 10 minut. Nowe wpisy dodawane 

do pamięci podręcznej otrzymują sygnaturę czasową. Jeśli dany wpis nie zostanie ponownie użyty w 

ciągu 2 minut od dodania, mija jego termin ważności i zostaje on usunięty z pamięci podręcznej ARP. 

Jeśli wpis został ponownie użyty, jego żywotność zostaje przedłużona o 2 minuty. Jeśli wpis jest ciągle 

używany, jego okres istnienia jest wydłużany za każdym razem o 2 minuty, ale nie więcej niż do 

10 minut. 

Pamięć podręczną ARP można przeglądać za pomocą plecenia arp. Aby wyświetlić zawartość pamięci 

podręcznej ARP, w wierszu polecenia wpisz polecenie arp –a. Aby wyświetlić opcje wiersza polecenia dla 

polecenia arp, wpisz arp /?.