Die guten alten IP-Adressen sind vielen Menschen bestens bekannt. Das Internet Protocol erlaubt es, mehrere verbundene Rechner in logische Netze aufzuteilen. Bei der Adressierung ist es somit nicht mehr notwendig zu wissen, wer genau der Empfänger ist, sondern in welchem Netzwerk er sich befindet. Diesem Protokoll verdanken wir nicht zuletzt auch das Internet.
Nichtsdestotrotz nutzen zwei direkt verbundene Netzwerkteilnehmer sogenannte MAC-Adressen (Media-Access-Control), um sich gegenseitig eindeutig zu identifizieren und Datenpakete zu tauschen. Ausgehend von einer IP-Adresse muss also zunächst eine MAC-Adresse ermittelt werden, um zu wissen, an welchen Nachbarn Pakete verschickt werden müssen. Eine hierfür verwendete Technik heißt Address Resolution Protocol (ARP).
Im OSI-Schichtenmodell…
Datentransport im Netzwerk basiert auf verschiedenen Abstraktionsebenen. Im OSI-Schichtenmodell können wir ARP, IP und MAC folgendermaßen einordnen:
OSI-Schicht | Schichtname | Protokolle |
---|---|---|
1 | Physical Layer | |
2 | Data Link Layer | MAC |
3 | Network Layer | IP, ARP |
Ausgehend von Schicht 3 brauchen wir nun also ein Protokoll, um Datenpakete für Schicht 2 umzuwandeln. Da das entsprechende Protokoll mit Layer 3 vertraut sein muss, ist ebenfalls in diese Schicht einzuordnen.
Die Funktionsweise von ARP
ARP verfolgt einen recht simplen Ansatz. Zu einer gegebenen IP-Adresse wird eine Anfrage an alle Nachbarn verschickt, wer über die entsprechende Adresse verfügt:
sg@sg-desktop:~$ sudo tcpdump -i eth0 arp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 22:41:04.915921 ARP, Request who-has 192.168.1.33 tell 192.168.1.1, length 46 22:41:04.915947 ARP, Reply 192.168.1.33 is-at 20:cf:30:6e:e1:f6, length 28
In der vorletzten Zeile sehen wir eine Anfrage der 192.168.1.1
, wer der Nachbarn die Adresse 192.168.1.33
hat. Zudem wird in dem Paket mitgeteilt, an wen die Antwort geschickt werden soll (letzte Zeile). In dieser Antwort sehen wir, unter welcher MAC-Adresse die entsprechende IP zu erreichen ist: 20:cf:30:6e:e1:f6
. Interessanterweise sieht man hier eine weitere angenehme Eigenschaft von ARP: Es ist für den Sendenden unwichtig, ob der Antwortende selbst wirklich die entsprechende IP hat, oder aber nur als Zwischenstation an die Adresse dient.
Flexibilität
ARP ist generell sehr flexibel organisiert und keineswegs auf IP und MAC beschränkt. Erst im ARP-Paket werden Protokoll und Hardware spezifiziert, welche übersetzt werden sollen:
Header-Bytes | Inhalt |
---|---|
1-2 | Typ der Hardware, zum Beispiel 1 für Ethernet |
3-4 | Typ der Protokolladresse, etwa IPv4 |
5 | Größe der Hardwareadresse |
6 | Größe der Protokolladresse |
entsprechend | Hardwareadresse des Fragestellers |
entsprechend | Protokolladresse des Fragestellers |
entsprechend | Hardwareadresse des Antwortenden |
entsprechend | Protokolladresse des Antwortenden |
Zukunft
Ungeachtet seiner Möglichkeiten, auch bei anderen Protokollen eingesetzt werden zu können, scheint ARP das Schicksal von IPv4 zu teilen: In der sechsten Version des Internet-Protokolls wird auf das neue Neighbor Discovery Protocol (NDP) gesetzt, welches dort die selben Aufgaben übernimmt.
Quellen
- Wikipedia, Address Resolution Protocol
- Dirk Geschke, Netzwerkgrundlagen
Zudem basiert dieser Artikel auf meinen Erkenntnissen und Mitschriften aus Vorlesungen an der Universität Rostock.
Artikelbild
Das Artikelbild ist Eigentum von Chris Dag, zur Verfügung gestellt via Flicker zu den Bedingungen „Creative Commons —Attribution 2.0 Generic“.