次の2つは混同しやすい項目です。
| キュー | 保持するもの | 主な関連設定 |
|---|---|---|
| SYN backlog | ハンドシェイク未完了の要求 | tcp_max_syn_backlog |
| accept queue | 接続完了後、アプリ未acceptの接続 | somaxconn、listen()のbacklog |
SYNフラッドが直接狙う中心はSYN backlogです。
一方、アプリケーションの処理が遅く、確立済み接続を取り出せない場合はaccept queueが問題になります。
両者を同じ「backlog」として説明すると、原因調査を誤る可能性があります。
Linuxのtcp_synack_retriesは、受動接続でSYN-ACKを再送する回数を制御します。
現行Linuxのカーネル資料では、標準値5の場合、最後の再送まで約31秒、接続要求が最終的に破棄されるまで約63秒と説明されています。
ただし、次の条件で時間は変わります。
OSとカーネルの種類
カーネルバージョン
再送回数の設定
SYN Cookieの使用状態
ファイアウォールやロードバランサーの実装
クラウド事業者の前段防御
そのため、「通常75秒」「必ず数分」と固定して書くのは適切ではありません。