自作の XMPP サーバーがあり、サーバーの MSL (Maximum Segment Lifetime) を尋ねられました。
それはどういう意味ですか、どうすれば入手できますか? Linuxの/proc
TCP設定に何かありますか?
3 に答える
MSL (Maximum Segment Lifetime) は、TCP セグメントがネットワークに存在すると予想される最長時間 (秒単位) です。最も顕著なのは、TCP 接続のクローズ中に発生します。CLOSE_WAIT 状態と CLOSED 状態の間で、マシンは遅延パケットを 2 MSL (概念的にはインターネットの最後までの往復) 待機します。この間、マシンはほとんど閉じられた接続のリソースを保持しています。サーバーがビジー状態の場合、この方法で保持されているリソースが問題になる可能性があります。1 つの "修正" は、MSL を下げて、より早くリリースされるようにすることです。通常はこれで問題ありませんが、場合によっては混乱を招く障害シナリオが発生する可能性があります。
Linux (とにかくRHEL、私はよく知っています)では、「変数」/proc/sys/net/ipv4/tcp_fin_timeout
は 2*MSL 値です。通常は 60(秒)です。それを見るには、次のようにします。
cat /proc/sys/net/ipv4/tcp_fin_timeout
変更するには、次のようにします。
echo 5 > /proc/sys/net/ipv4/tcp_fin_timeout
これが TCP ステート ダイアグラムです。問題の待機は下部にあります。
これはあなたの質問に答えることができるようです:
http://seer.support.veritas.com/docs/264886.htm
誰かがあなたにこれを尋ねた理由を尋ね、それが XMPP にどのように当てはまるかを調べることをお勧めします。
TCP/IP Illustrated volume 1 はオンラインで、2MSL について詳しく説明しています。
ウィキペディアで言及されているように、MSL は TCP RFC 793でも説明されています。