Rechnernetze
Home Nach oben

Address Resolution Protocol (ARP)

Der IP-Adressraum ist ein virtueller Adressraum, der keine Beziehung zum unterliegenden Adressraum des Protokolls der Sicherungsschicht besitzt. Aus diesem Grund ist jedem Netzwerk-Interface neben der frei wählbaren IP-Adresse auch eine fest vorgegebene Adresse der Sicherungsschicht (die auch als Hardware-Adresse bezeichnet wird) zugeordnet, die in Abhängigkeit vom verwendeten Protokoll in ihrem Format variiert (z.B. Ethernet und Token Ring jeweils 2 oder 6 Bytes). Für die Übertragung eines IP-Rahmens ist also eine Umsetzung von der IP-Adresse in die Adresse der Sicherungsschicht erforderlich, um die Nachricht an die Zielstation weiterleiten zu können. Somit benötigt ein Interior Gateway für die Weiterleitung von Datagrammen, die es für Endsysteme seines lokalen Netzwerks empfängt, eine Tabelle, in welcher die Adresspaare (Internet- und Hardware-Adresse) der an das Netzwerk angeschlossenen Endsysteme gespeichert sind.

Diese Tabelle wird mit Hilfe des ARP-Protokolls aufgebaut, welches jedes Endsystem in periodischen Abständen dazu veranlasst, allen anderen Systeme im lokalen Netzwerk sein Adresspaar zu senden. Alle Stationen, die eine ARP-Message mit einem Adresspaar empfangen, bauen eine Adresstabelle auf, in der die Zuordnung zwischen der IP-Adresse und der Hardware-Adresse gespeichert ist. Die für die Bildung des Adresspaares benötigte IP-Adresse wird einem System bei der Installation durch den Netzwerkadministrator zugeteilt und ist danach gewöhnlich auf der lokalen Platte des Endsystems gespeichert. Erhält nun ein Gateway ein Datagramm, das für ein Endsystem in seinem lokalen Netzwerk bestimmt ist, so kann er mit Hilfe der Adresstabelle die Hardwareadresse des Endsystems bestimmen und das Datagramm weiterleiten.

Möchte hingegen ein Endsystem ein Datenpaket an ein anderes Endsystem im gleichen Netzwerk senden, so benötigt es genau wie ein Gateway die Hardwareadresse des adressierten Endsystems. Um diese Adresse zu erhalten, müssen verschiedene Schritte durchlaufen werden.

Als erstes durchsucht das Endsysteme seine lokale Adresstabelle. Findet es dort die gesuchte Adresse, so kann das Endsystem das Datagramm unmittelbar an das Zielsystem übertragen. Ist die Adresse jedoch nicht vorhanden, so sendet es eine sogenannte ARP Request Message mit seinem eigenen Adresspaar und der gesuchten Adresse an alle anderen Systeme des lokalen Netzes. Das Endsystem, das seine eigene (gesuchte) Hardware-Adresse in dieser Nachricht erkennt, durchsucht zunächst seine lokale Tabelle und korrigiert bzw. ergänzt seinen eigenen Tabelleneintrag um das im ARP Request Message gesendete Adresspaar. Anschließend sendet das Endsystem eine ARP Reply Message mit seinem eigenen Adresspaar direkt an das anfragende Endsystem zurück (die Zieladresse hat es aus der ARP Request Message erhalten). Das Endsystem, welches die Reply Message empfängt, ergänzt die eigene Routingtabelle und überträgt anschließend das auf die Übertragung wartende Datagramm an das Zielsystem.

In dem vorhergehenden Abschnitt gingen wir davon aus, dass Endsysteme das eigene Adresspaar auf der Festplatte oder einem anderen permanenten Speicher sichern. Dies ist jedoch nur möglich, wenn das System auch über einen permanenten Speicher verfügt und z.B. keine Diskless Workstation ist. Diese Systeme benötigen beim Ladevorgang (booten) ihre eigene IP-Adresse, um mit dem TFTP Daemon ihres Servers zu kommunizieren und den Ladevorgang einzuleiten. Aus diesem Grund wurde das RARP (Reverse Address Resolution Protocol) entwickelt. Es dient für den umgekehrten Fall, bei dem ein System zwar seine Hardwareadresse (beim Ethernet aus dem Speicher des Ethernet-Kontrollers), jedoch nicht seine IP-Adresse kennt. Es erhält seine Adresse, indem es unmittelbar nach dem Starten einen RARP Broadcast mit seiner eigenen Hardwareadresse an alle Stationen im Netz sendet. Der Server, der für diese Maschine zuständig ist, empfängt diese Nachricht und sendet dann eine Reply Message mit dem erfragten Adresspaar zurück und ermöglicht dem System somit das Laden des Betriebssystems.

ARP bzw. RARP verwenden für die Kommunikation eigene Pakete, in welche die entsprechenden Daten eingetragen werden. Das folgende Bild zeigt den Aufbau der Pakete.

ARPRARPFORMAT.WMF (5158 Byte)

Durch die Verwendung des ARP Protokolls ist es den einzelnen Systemen möglich, eine Zuordnung zwischen der Hardware- und der IP-Adresse zu erhalten. Um jedoch zu vermeiden, dass die ARP-Tabelle zu groß oder inkonsistent wird (etwa durch den Austausch einer Ethernet-Kontrollerkarte), werden die Einträge periodisch gelöscht und erst bei Bedarf wieder aufgebaut. Da dieser Vorgang ausschließlich in lokalen Netzen stattfindet, ist die dadurch entstehende Verzögerung bei der Übertragung von Datenpaketen minimal.