2012-02-03 11 views
1

(Linux 3.0の、x86_64版)Linux 3.0のTCPスタックの受信バッファカーネルアーキテクチャ

私はのrecvを呼び出しを停止した場合(2)接続されているTCPソケットでしばらく、および他のホストは、おそらくよりも、データを送信し続けますこのデータはカーネルによって受信されバッファリングされるので、次にrecvを呼び出すと、すべての待機データとともにすばやく戻ります。

私の質問はこの受信バッファの大きさです。どのように機能しますか?動作を調整するために使用できる関連するカーネルまたはソケットの設定はありますか? tcpスタックはいっぱいになりますか?

答えて

2

受信バッファはsetsockopt(SO_RCVBUF)で変更できます。デフォルトサイズはtcp_rmem sysctlによって制御されます。バッファがいっぱいになると、スタックは受信ウィンドウを他の側に拡張しなくなり、バッファに空きがなくなるまでデータの送信を停止します。

関連する問題