ソケットリッスンのバックログパラメータ、この値を決定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/114874

  •  02-07-2019
  •  | 
  •  

質問

リスニングソケットのバックログパラメータに何を使用するかをどのように決定すればよいですか?単純に非常に大きな数値を指定するのは問題がありますか?

役に立ちましたか?

解決

から ドキュメント:

SOMAXCONN のバックログの値は、ソケットを担当する基礎となるサービス プロバイダーに、保留中の接続のキューの長さを妥当な最大値に設定するように指示する特別な定数です。

他のヒント

これに対する非常に長い答えが、 Winsock プログラマー向け FAQ. 。標準設定と、NT 4.0 のホットフィックスで追加された動的バックログ機能について詳しく説明します。

短いキューを使用する特別な理由がない限り、私は 2 番目に SOMAXCONN を使用します。

新しい接続用のキューに空きがない場合、RST は送信されず、クライアントは SYN を再送信することで自動的に接続の試行を続けることができることに注意してください。

また、backlog 引数はソケットの実装ごとに異なる意味を持つ可能性があります。

  • ほとんどの場合、これは半分開いている接続キューのサイズを意味しますが、完了した接続キューのサイズを意味する場合もあります。
  • 多くの実装では、バックログ引数を乗算して、異なるキューの長さを生成します。
  • 大きすぎる値が指定された場合、すべての実装はいずれにせよ、その値をサイレントに最大キュー長まで切り捨てます。

ブースト ASIO を使用する人への警告として、SOMAXCONN 値はブーストでは 5 として使用されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top