13. Zadania warstwy łącza danych

13.1. Protokół ARP

Jako użytkownicy sieci, gdy przesyłamy dane z jednego urządzenia na drugie, znamy jego adres IP lub nazwę domeny, dzięki czemu możemy wykonywać takie transfery. Inaczej jest z adresami MAC, na ich podstawie użytkownicy sieci nie określają odbiorcy danych, dzieje się to poza naszą kontrolą. W sieciach komputerowych opartych na protokole IPv4 do uzyskania informacji o adresie MAC danego urządzenia wykorzystywany jest protokół zwany ARP (Address Resolution Protocol).

ARP to mechanizm, który umożliwia mapowanie adresów logicznych (tj. IP) na adresy fizyczne (tj. MAC). Załóżmy, że komputer, który chce wysłać dane do innego urządzenia, zna adres IP, ale nie zna adresu MAC. Aby poznać ten adres, komputer wysyłający dane utworzy ramkę rozgłoszeniową ARP i wyemituje ją do wszystkich urządzeń w tej samej sieci przed wysłaniem określonych danych. W polu adresu źródłowego ramki zapisywany jest adres komputera, który przygotował ramkę, a w polu adresu docelowego rozgłoszeniowy adres MAC: FF-FF-FF-FF-FF-FF.

Każde urządzenie, które odbiera ramkę, dekapsuluje ją do pakietu i sprawdza, czy adres IP pola docelowego jest jego adresem. Jeśli docelowy adres IP jest inny niż jego, zignoruje pakiet, jeśli jest to jego adres IP, utworzy nową ramkę, w której zostanie zapisany jego adres MAC i wyśle ​​go do transmisji.

Komputer wysyłający ramkę rozgłoszeniową zna teraz fizyczny adres urządzenia, z którym chce się komunikować, i może rozpocząć tę komunikację. Informacje o mapowaniu IP na MAC są przechowywane w tabeli ARP każdego urządzenia do późniejszego wykorzystania. Domyślnie w systemach Windows takie wpisy trwają do 10 minut, a następnie są usuwane. Aby wyświetlić tabelę ARP, uruchom arp -a z konsoli.