[LINUX] Linux SO_SNDBUF/SO_RCVBUF
Linuxでsetsockopt()とgetsockoptを使う時の注意。Linuxはsocketのバッファの半分をカーネル内部のメタデータ(skbuffなど)用に使用する。BSDはそうではないので伝統的なBSDを想定しているプログラムはこのようなことを期待していない。よってこのようなプログラムではLinuxにおいて期待するバッファよりも小さいものしかなくなる。 socket(7)にも以下の記述がある:
注意
Linux は、送受信バッファの半分を内部のカーネル構造体で用い
ると仮定している。したがって sysctl はネットの回線上での大
きさの 2 倍になる。
0 件のコメント:
コメントを投稿