C で UDP/TCP の raw ソケット プログラミングを行っているときに、データのカプセル化にイーサネット ヘッダー フレームを使用しないのはなぜですか。udp/tcp ヘッダーと ip ヘッダーのみを使用するのはなぜですか??
1 に答える
3
OSI モデルについて考える必要があります。トランスポート層またはレイヤー 4 にある TCP および UDP ヘッダーを指定する生データを送信しています。これには、ネットワーク層であるアドレッシングに関して、レイヤー 3 または IP の部分が含まれます。
レイヤ 2 については気にする必要はありません。それがイーサネットです。イーサネットを使用することさえ保証されていません。組み込みシステムは、ADSL、DOCSIS、ファイバー リンク、wifi などを介して送信できます。
もう 1 つの理由は、ネットワーク カードのハードウェアが既にレイヤー 2 のヘッダーを処理していることです。回路と伝送固有の複雑さのために、独自のパリティ、フロー制御、およびその他のものをパケットに配置しません。
必要に応じて、特定のドライバーを使用してレイヤー 2 フレームを編集できます。ただし、ルーターが独自のレイヤー 2 フレームで再送信するため、複数のホップでは役に立ちません。さらに、不正なフレームは、エラー修正の詳細の欠如またはエラーにより、ハードウェアによってドロップされる可能性が高く、より低いレベルで処理されるという事実によります。
于 2013-07-22T18:58:12.050 に答える