[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:パケット形式
}}}
= パケット形式 = #SECTION07130000000000000000
全ての送受信データは、パケットに分割しsk_buffという構造体に詰めて管理する。各パケットは一つのデータバッファのみを管理する。
下図はTCPのパケットの場合の例である。バッファの領域、パケットしての有効領域、各プロトコル用のヘッダを指すポインタを保有している。
[[Embed(internal22-images:img78.gif)]]
パケットがプロトコル階層を通っていく間に、データのコピーが発生しないように考慮された構造である。
[[Embed(internal22-images:img79.gif)]]
sk_buffは下図のようにキューイングされる。ソケット(sock構造体)とネットワークドライバ管理構造体(device構造体)の両方に同時にリンクされることもある。
受信データはsock構造体のrecive_queueに溜められる。recv処理はこのrecive_queueからパケットを取り出すことをいう。
送信データはsock構造体のwrite_queueに溜められる。この送信データはそのうちネットワークドライバ管理構造体(device構造体)にリンクし直され、パケット内のデータはマシンの外へ送出される。
[[Embed(internal22-images:img80.gif)]]
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]