メインコンテンツまでスキップ

例 (An Example)

同じ10Mbitイーサネットケーブル上にマシンXとYが存在するとします。それらはイーサネットアドレスEA(X)とEA(Y)、およびDODインターネットアドレスIPA(X)とIPA(Y)を持っています。インターネットのイーサネットタイプをET(IP)とします。マシンXが起動したばかりで、遅かれ早かれ同じケーブル上のマシンYにインターネットパケットを送信したいとします。XはIPA(Y)に送信したいことを知っており、ハードウェアドライバー (ここではイーサネットドライバー) にIPA(Y)を伝えます。ドライバーは、<ET(IP), IPA(Y)> を48ビットイーサネットアドレスに変換するためにアドレス解決モジュールに相談しますが、Xが起動したばかりなので、この情報を持っていません。インターネットパケットを破棄し、代わりにADDRESS RESOLUTIONパケットを作成します:

(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) = 気にしない
(ar$tpa) = IPA(Y)

そして、このパケットをケーブル上のすべての人にブロードキャストします。

マシンYはこのパケットを取得し、ハードウェアタイプ (イーサネット) を理解し、指定されたプロトコル (インターネット) を使用し、パケットが自分宛て ((ar$tpa)=IPA(Y)) であることを判断します。情報 <ET(IP), IPA(X)> がEA(X)にマッピングされることを入力します (おそらく既存のエントリを置き換えます)。その後、これがリクエストであることに気づき、フィールドを交換し、EA(Y)を新しい送信者イーサネットアドレスフィールド (ar$sha) に入れ、オペコードを応答に設定し、パケットをEA(X)に直接 (ブロードキャストではなく) 送信します。この時点でYはXへの送信方法を知っていますが、XはまだYへの送信方法を知りません。

マシンXはYから応答パケットを取得し、<ET(IP), IPA(Y)> からEA(Y)へのマップを形成し、パケットが応答であることに気づき、それを破棄します。次にXのインターネットモジュールがイーサネット上のYにパケットを送信しようとすると、変換は成功し、パケットは (うまくいけば) 到着します。Yのインターネットモジュールがその後Xと通信したい場合、Yは既にXのアドレス解決リクエストから情報を記憶しているため、これも成功します。