Zum Hauptinhalt springen

9. Beispiel (Example)

Die Maschinen X und Y befinden sich auf demselben 10-Mbit-Ethernet-Kabel. Ihre Ethernet-Adressen sind EA(X) bzw. EA(Y), und ihre DOD-Internet-Adressen sind IPA(X) bzw. IPA(Y). Sei ET(IP) der Ethernet-Typ für Internet. Die Maschine X ist gerade gestartet und wird früher oder später ein Internet-Paket an die Maschine Y senden müssen, die sich ebenfalls auf demselben Kabel befindet. X weiß, dass es an IPA(Y) senden muss, und teilt dem Hardware-Treiber (hier dem Ethernet-Treiber) die Adresse IPA(Y) mit. Der Treiber befragt das Modul zur Adressauflösung, um <ET(IP), IPA(Y)> in eine 48-Bit-Ethernet-Adresse umzuwandeln, besitzt diese Information aber nicht, da X gerade erst gestartet ist. Er verwirft das Internet-Paket und erzeugt stattdessen ein Paket zur Adressauflösung mit folgendem Inhalt:

(ar$hrd) = ares_hrd$Ethernet
(ar$pro) = ET(IP)
(ar$hln) = length(EA(X))
(ar$pln) = length(IPA(X))
(ar$op) = ares_op$REQUEST
(ar$sha) = EA(X)
(ar$spa) = IPA(X)
(ar$tha) = don't care
(ar$tpa) = IPA(Y)

und überträgt dieses Paket als Broadcast an alle Stationen auf dem Kabel.

Die Maschine Y empfängt dieses Paket, stellt fest, dass sie den Hardwaretyp (Ethernet) unterstützt, das angezeigte Protokoll (Internet) unterstützt und das Paket an sie gerichtet ist ((ar$tpa)=IPA(Y)). Sie trägt (wobei sie einen vorhandenen Eintrag möglicherweise ersetzt) die Abbildung <ET(IP), IPA(X)> auf EA(X) ein. Dann bemerkt sie, dass es sich um eine Anfrage handelt, vertauscht die Felder, trägt EA(Y) in das neue Feld Hardware-Adresse des Senders (ar$sha) ein, setzt den Opcode auf reply und sendet das Paket direkt (nicht als Broadcast) an EA(X). Zu diesem Zeitpunkt weiß Y, wie es an X sendet, aber X weiß noch immer nicht, wie es an Y sendet.

Die Maschine X empfängt das Antwortpaket von Y, bildet die Abbildung von <ET(IP), IPA(Y)> auf EA(Y), stellt fest, dass das Paket eine Antwort ist, und verwirft es. Wenn das Internet-Modul von X das nächste Mal versucht, ein Paket an Y über Ethernet zu senden, wird die Umwandlung erfolgreich sein und das Paket wird (hoffentlich) ankommen. Wenn das Internet-Modul von Y danach mit X kommunizieren möchte, wird dies ebenfalls erfolgreich sein, da Y die Informationen aus der Adressauflösungsanfrage von X gemerkt hat.