私が読んだすべてのチュートリアルでは、レイヤーが互いにどのように「通信」するかについては説明されていますが、ハードウェア/ソフトウェアが各レイヤーの制御データを受信し、追加し、送信する方法についてはまったく触れられていません。
IP/TCP の各層に関連するデータを受信/カプセル化/送信するハードウェアとソフトウェアは何ですか?
たとえば、ルータはどのレイヤーで動作しますか? テキスト ファイルを SMTP に変換するソフトウェアは何ですか? フロー制御/転送用のソフトウェアはコンピューターのどこにありますか?
答え1
Layer 1 - Physical - Signaling
Layer 2 - Data Link - Switching (Ethernet frames)
Layer 3 - Network - Routing (IP packets)
Layer 4 - Transport - Multiplexing (TCP segments)
Layer 5 - Session
Layer 6 - Presentation
Layer 7 - Application
特定のソフトウェア/ハードウェア実装について言及されていないのは、それが標準の開発の目的だからです。データが標準に従って提示されている限り、各レイヤーは上位レイヤーと下位レイヤーがその機能をどのように処理するかを気にしません。データはソフトウェア、ハードウェア、ファームウェア、機械的な非電子デバイス、または人間による手動 (真面目でない例については「TCP over career pigeon」を Google で検索してください) で提示されます。
実際の世界では、関係する特定のソフトウェアとハードウェアも大きく異なります。すべての機能をソフトウェアで実行することは完全に可能です (安価ですが低速です)。また、すべての機能をハードウェアで実行することも完全に可能です (高速ですが高価です)。Cisco ルーターなどの専用ネットワーク デバイスは、ルーターとして構成された Linux を実行する PC よりも多くの機能をハードウェアで実行します。
一般的に、レイヤー 1 とレイヤー 2 のほとんどはハードウェアで実行されることが保証されています。レイヤー 3 は、Cisco などのエンタープライズ レベルのルーターでは主にハードウェアで実行されます。多くの NIC には、「TCP オフロード エンジン」と呼ばれる機能が搭載されており、NIC のハードウェアを介してレイヤー 3 と 4 のほとんどを高速化できます。Wal-mart の消費者向けルーターでは、通常、ルーティング機能はすべてソフトウェアで実行されます。レイヤー 5、6、7 は通常ハードウェアで実行されませんが、ハードウェアで実行される場合は、それを実行するデバイスは「アクセラレータ」と呼ばれます。
答え2
IP/TCP の各層に関連するデータを受信/カプセル化/送信するハードウェアとソフトウェアは何ですか?
イーサネット ハードウェアは通常、最下層である物理層とリンク層でのみ使用されます。ハードウェアは、MAC アドレスに基づいて、一致するユニキャスト フレームのみを受け入れます。イーサネット デバイス ドライバーは通常、このデバイスへのソフトウェア インターフェイスを提供します。デバイスは通常、リンクされた (円形の) リングに配置されたバッファーから完全なイーサネット フレームを読み書きでき、ドライバーはバッファー リングの状態の変化 (つまり、フレームの読み取りまたは書き込み操作の完了) について割り込みを処理するか、状態をポーリングします。
このソフトウェアは総称してプロトコルスタックこれはカーネルに組み込まれたプロシージャと関数の集合です。これらはソフトウェアの階層と同じように呼び出されます。ユーザー プログラムがソケット R/W システム コールを行うと、最上位層のアプリケーション ルーチンが呼び出されます。このサブルーチン/プロシージャ階層は、モジュール性、疎結合、高い凝集性を実現する他の適切に構築されたソフトウェアとまったく同じです。
プロトコルの各レイヤーは、データ パケットがフレーム バッファーに格納され、ハードウェアによる出力の準備ができるまで、1 つ以上の (ネストされた) プロシージャ呼び出しによって実行されます。書き込みが正常に完了すると、ステータスがユーザーの呼び出しに返されます。
たとえば、ルータはどのレイヤーで動作しますか?
インターネットは、TCP/IP モデル:
- アプリケーション層
- トランスポート層
- インターネット層
- リンク層
- 物理層
ルーターは、インターネット層である IP アドレスに基づいてパケットを送信します。ただし、ルーターには、Web ベースの構成ユーティリティなどの他のサービスを実行するための独自のプロトコル スタックがあります。ネットワーク上のすべてのホストには、完全なプロトコル スタックがある可能性があります。レイヤーは、ネットワーク ホスト/デバイス間で分散されていません。
テキスト ファイルを SMTP に変換するソフトウェアは何ですか?
メール プログラムはアプリケーション層とインターフェイスします。
フロー制御/輸送用のソフトウェアはコンピュータのどこにありますか?
おそらく、TCP が動作するトランスポート層です。