FIN_WAIT2 時間が経過し、最後の FIN が反対側から来ない場合、アクティブ クローザーは次のどの状態になりますか? TIME-WAIT
またはCLOSED
?
Linux システムでは、FIN-WAIT-2 をファイル /proc/sys/net/ipv4/tcp_fin_timeout で設定できます: man tcp(7)
tcp_fin_timeout (整数; デフォルト: 60; Linux 2.2 以降)
これは、ソケットが強制的に閉じられる前に最後の FIN パケットを待機する秒数を指定します。これは厳密には TCP 仕様に違反していますが、サービス拒否攻撃を防ぐために必要です。Linux 2.2 では、デフォルト値は 180 でした。
TCP_LINGER2 (Linux 2.4 以降)
孤立した FIN_WAIT2 状態のソケットの有効期間。このオプションを使用して、このソケットのファイル /proc/sys/net/ipv4/tcp_fin_timeout のシステム全体の設定をオーバーライドできます。これを socket(7) レベルのオプション SO_LINGER と混同しないでください。このオプションは、移植性を意図したコードでは使用しないでください。
このTCPソケットがFIN_WAIT2
時間切れになった後の状態、強制的に閉じられた後、に移行するCLOSED
かどうかはよくわかりません。または単に状態にジャンプしTIME-WAIT
ますか?
私はテストをしました:
1 : エコー 3 > /proc/sys/net/ipv4/tcp_fin_timeout
2 : Linux で実行される Tomcat のベンチマーク
にたくさん出てきてTIME-WAIT
溜まっnetstat
ていたということは、FIN_WAIT2
時間切れでソケットが飛び込んできたということTIME-WAIT
でしょうか?
もう1つの質問:私はこれを変更しました:
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
他の人が言うように:「ソケットを再利用する」,そしてtcp_fin_timeout:3
. でも何も変わらず、 TIME-WAIT
ただ積み上げていた。状態tcp_tw_reuse
のソケットとは関係ありません。ソケットは再利用できませんか?TIME-WAIT
TIME-WAIT
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
カウントを減らしてTIME-WAIT
低いレベルに保ち、負荷バランスの問題を放っておくことができるようです。