TIME-WAIT 状態にある TCP 接続の再利用を高速化する方法
Issue
- 場合によっては、TCP クライアントが、ごく最近終了した接続と同じ送信元ポートとアドレスを再利用して、RHEL サーバーに接続しようとすることがあります。RHEL サーバーは、新しい接続からのシーケンス番号と一致しない ACK (SYN なし) で SYN パケットに応答します。これにより、クライアントは RST を返送することになり、接続を確立できなくなります。sysctl net.ipv4.tcp_tw_recycle や net.ipv4.tcp_tw_reuse を有効にしても問題は解決されません。
Environment
- Red Hat Enterprise Linux 5 上の TCP サーバー (おそらく RHEL3、RHEL4、RHEL6 にも適用されます)。
- クライアントが (tcpdump によると) TCP タイムスタンプオプションを使用していません。
- サーバー側に引き続き TIME-WAIT 状態で残っているタイミング (netstat で確認可能、または直前の接続終了から約 60 秒未満) で、クライアントが同じ送信元/宛先のアドレスとポートの 4 つの組み合わせの再利用を試行しています。
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.