Protokół ARP

Damian Stelmach | 25-02-2017

Kiedy jako użytkownicy sieci, wysyłamy dane z jednego urządzenia do drugiego to albo znamy jego adres IP, albo nazwę domenową co pozwala nam taką transmisję wykonać. Gorzej jest już z adresami MAC, na ich podstawie, my użytkownicy sieci, nie definiujemy odbiorców danych, to dzieje się poza nami. W sieciach komputerowych, opartych na protokole IPv4, do uzyskiwania informacji o adresie MAC danego urządzenia służy protokół zwany ARP (ang. Address Resolution Protocol).

ARP to mechanizm pozwalający na odwzorowanie adresu logicznego, czyli IP na adres fizyczny, czyli MAC. Załóżmy, że komputer chcąc przesłać dane do innego urządzenia zna jego adres IP, ale nie zna adresu MAC. Aby ten adres poznać, komputer będący nadawcą danych, zanim te konkretne dane wyśle, tworzy rozgłoszeniową ramkę ARP, która rozsyłana jest do wszystkich urządzeń w tej samej sieci. W polu adresu źródłowego takiej ramki zapisywany jest adres komputera, który przygotował taką ramkę, a w polu adresu docelowego, rozgłoszeniowy adres MAC: FF-FF-FF-FF-FF-FF.

Rozgłoszeniowa ramka ARP

Każde z urządzeń, które odbierze ramkę, dekapsuluje ją do postaci pakietu i sprawdza, czy w polu docelowym adres IP jest jego adres. Jeśli w polu docelowy adres IP będzie inny adres niż jego, to zignoruje pakiet, jeśli natomiast to jego adres IP, utworzy nową ramkę, w której zapisany będzie jego adres MAC i przekaże ją do przesłania.

Odpowiedź ARP

Teraz już komputer, który wysłał rozgłoszeniową ramkę wie jaki adres fizyczny ma urządzenie, z którym chce się skomunikować i taką komunikację może rozpocząć. Informacje o odwzorowaniu adresu IP na adres MAC zapisywane są w tablicy ARP każdego urządzenia, tak aby można je było wykorzystać w późniejszym czasie. Domyślnie, w systemach Windows wpis taki utrzymuje się maksymalnie do 10 minut, po tym czasie zostaje usunięty. Aby wyświetlić tablicę ARP, należy w konsoli wykonać polecenie arp -a. Jak widać znajdują się tutaj jakieś wpisy, co oznacza, że w ciągu ostatnich 10 minut odbywała się komunikacja pomiędzy moim komputerem a innym urządzeniem.

Polecenie arp-a