1

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-WAITTIME-WAIT

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycleカウントを減らしてTIME-WAIT低いレベルに保ち、負荷バランスの問題を放っておくことができるようです。

4

1 に答える 1