Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, welches zu einer Netzwerkadresse (IP-Adresse) die zugehörige physische Adresse (MAC-Adresse) ermitteln soll. Dazu wird das ARP in Verbindung mit dem Internet Protokoll Version 4 (IPv4) eingesetzt. Um ein IP-Paket in einem lokalen Netzwerk zuzustellen muss dem Sender die MAC-Adresse des Empfängers bekannt sein. Da IPv4-Adressen bestehen nur aus 32 Bits und sind deshalb nicht in der Lage MAC-Adressen zu speichern. Deshalb herrscht wischen der IP-Adresse und der MAC-Adresse keine feste Beziehung.
Das ARP arbeitet auf der Schicht 2 des OSI ISO Schichtenmodells.
Das ARP unterscheidet bei der Auflösung zwischen lokalem und entfernten Subnetz.
Zuerst wird anhand der Subnetzmaske ermittelt, ob sich die IP-Adresse im gleichen Subnetz befindet. Wenn ja, wird der ARP-Cache des Senders überprüft, ob die MAC-Adresse bereits bekannt ist. Ist dies der Fall, kann die gespeicherte Adresse zur Zustellung verwendet werden.
Ist dies nicht der Fall, wird eine ARP request über den MAC-Broadcast „FF-FF-FF-FF-FF-FF“, an alle Hosts im zugehörigem Subnetz gestellt.
Jeder Empfänger dieser Broadcast Anfrage vergleicht die gesuchte IP-Adresse mit seiner eigenen. Stimmt sie nicht überein, wird die Anfrage einfach verworfen. Stimmt sie überein, wird dem Sender ein ARP reply mit allen benötigten Daten gesendet.
Dieser speichert die MAC-Adresse im Cache ab und ein Austausch von Daten ist nun möglich.
Befindet sich die angefragte IP-Adresse nicht im gleichen Subnetz, wendet sich das ARP an das Standard-Gateway und fragt zuerst dessen Cache ab. Wird es nicht fündig, überprüft das Gateway, ob die gesuchte IP-Adresse im angeschlossenen Subnetz zu finden ist. Wenn ja, wird die MAC-Adresse via lokaler Adressauflösung ermittelt. Wenn nicht, muss sich das Ziel in einem entfernet Subnetz befinden. Das Gateway prüft nun seine Routingtabelle und sendet die Anfrage an sein Standard-Gateway.
Nun wird der Prozess solange wiederholt, bis die gesuchte Adresse gefunden ist, oder der TTL Wert des IP-Paketes auf 0 gesetzt wird. Dann zerfällt das Paket automatisch.
Wird das Ziel, in einem entfernten Netz, ermittelt, antwortet dieses mit einem ICMP-Paket und hinterlegt ein Gateway mit welchem von nun an kommuniziert werden kann.
Mit Hilfe des ARP Caches wird vermieden, dass die oben beschriebenen Prozesse immer und immer wieder abgehandelt werden. Einträge in dem Cache können manuell erfolgen, oder dynamisch durch die Adressauflösung von ARP selber.
Der ARP Cache kann mit folgenden Befehlen ermittelt werden:
Linux, Mac, Windows:
arp -a