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

パケット生成 (Packet Generation)

パケットがネットワーク層を下に送信されるとき、ルーティング (Routing) はパケットの次のホップのプロトコルアドレスと、直接のターゲットプロトコルアドレスを持つステーションをどのハードウェア上で見つけることを期待するかを決定します。10Mbitイーサネットの場合、アドレス解決が必要であり、いくつかの下位層 (おそらくハードウェアドライバー) がアドレス解決モジュール (Address Resolution Module) (おそらくイーサネットサポートモジュールに実装されている) に相談して、<プロトコルタイプ, ターゲットプロトコルアドレス> ペアを48ビットイーサネットアドレスに変換しなければなりません。アドレス解決モジュールは、このペアをテーブル内で検索しようとします。ペアが見つかった場合、対応する48ビットイーサネットアドレスを呼び出し元 (ハードウェアドライバー) に返し、その後パケットを送信します。見つからない場合、おそらく呼び出し元にパケットを破棄していることを通知し (パケットはより高いネットワーク層によって再送信されると仮定して)、タイプフィールドが ether_type$ADDRESS_RESOLUTION のイーサネットパケットを生成します。その後、アドレス解決モジュールは、ar$hrdフィールドを ares_hrd$Ethernet に、ar$proを解決されるプロトコルタイプに、ar$hlnを6 (48ビットイーサネットアドレスのバイト数) に、ar$plnをそのプロトコルのアドレスの長さに、ar$opを ares_op$REQUEST に、ar$shaを自身の48ビットイーサネットアドレスに、ar$spaを自身のプロトコルアドレスに、ar$tpaをアクセスしようとしているマシンのプロトコルアドレスに設定します。ar$thaは特定の値に設定しません。なぜなら、これが決定しようとしている値だからです。実装の何らかの側面にとって都合が良い場合、ar$thaをハードウェアのブロードキャストアドレス (10Mbitイーサネットの場合は全て1) に設定することもできます (may)。その後、このパケットをルーティング機構によって最初に決定されたイーサネットケーブル上のすべてのステーションにブロードキャストします。