Network Stack
とは?
ネットワークI/O を実現するために必要な要素群
NIC, カーネルの NIC ドライバ、カーネルの TCP/IP スタック、ソケット等
パケット送受信、パケットバッファ管理、プロトコル処理などを含む
TCP/IP のパケットヘッダ解析、チェックサム計算など
3. アプリケーションプロセスは、システムコールでそれを読み取る
code:text
+-----+ +--------+ +---------+
| NIC | -> | Kernel | -> | Process |
+-----+ +--------+ +---------+
ネットワークにアタッチされたコンピュータには、ローカルホスト外にTCP/IPパケットを送出するために、何らかのルーティングの機能が必要になる
ほとんどのネットワーク環境はとてもシンプルで、パケット送出には2つのオプションしかないため、大抵非常に単純なものになる
アーキテクチャ
table:architecture
層 空間
Application layer User space
System call interface Kernel space
Protocol agnostic interface Kernel space
Network protocols Kernel space
Device agnostic interface Kernel space
Device drivers Kernel space