什么是最大段寿命

9 linux networking

我们有一个自制的XMPP服务器,我被问到我们服务器的MSL(最大段寿命)是多少.它是什么意思,我怎样才能获得它?它是在linux/proc TCP设置上吗?

Joh*_*all 10

MSL(最大段寿命)是TCP段预期存在于网络中的最长时间(以秒为单位).最显着的是在TCP连接关闭期间发挥作用 - 在CLOSE_WAIT和CLOSED状态之间,机器等待2个MSL(概念上是到互联网末端的往返并返回)用于任何延迟的数据包.在此期间,机器为最关闭的连接保留资源.如果服务器繁忙,那么以这种方式保存的资源可能会成为一个问题.一个"修复"是降低MSL以便更快地释放它们.通常情况下这可行,但偶尔会导致混乱的故障情况.

在Linux (无论如何,RHEL,这是我所熟悉的),"变量" /proc/sys/net/ipv4/tcp_fin_timeout是2*MSL值.通常是60(秒).要看到它,请执行:

cat /proc/sys/net/ipv4/tcp_fin_timeout
Run Code Online (Sandbox Code Playgroud)

要更改它,请执行以下操作:

echo 5 > /proc/sys/net/ipv4/tcp_fin_timeout
Run Code Online (Sandbox Code Playgroud)

这是TCP状态图.你可以在底部找到有问题的等待.


TCP状态图

  • 我认为你的意思是“在 TIME_WAIT 和 CLOSED 状态之间”。 (2认同)
  • 不能通过tcp_fin_timeout配置TIME_WAIT和CLOSED之间的延迟 (2认同)

Gre*_*ray 7

您还可以在 netstat 或 ss 中使用 -o 来查看套接字的倒数计时器,这有助于显示有关等待多长时间的具体数字。例如,TIME_WAIT 不使用 tcp_fin_timeout(它基于 TCP_TIMEWAIT_LEN,通常硬编码为 60s)。

cat /proc/sys/net/ipv4/tcp_fin_timeout
3

# See countdown timer for all TIME_WAIT sockets in 192.168.0.0-255
ss --numeric -o state time-wait dst 192.168.0.0/24

NetidRecv-Q  Send-Q    Local Address:Port    Peer Address:Port                             
tcp  0       0         192.168.100.1:57516   192.168.0.10:80    timer:(timewait,55sec,0)   
tcp  0       0         192.168.100.1:57356   192.168.0.10:80    timer:(timewait,25sec,0)   
tcp  0       0         192.168.100.1:57334   192.168.0.10:80    timer:(timewait,22sec,0)   
tcp  0       0         192.168.100.1:57282   192.168.0.10:80    timer:(timewait,12sec,0)   
tcp  0       0         192.168.100.1:57418   192.168.0.10:80    timer:(timewait,38sec,0)   
tcp  0       0         192.168.100.1:57458   192.168.0.10:80    timer:(timewait,46sec,0)   
tcp  0       0         192.168.100.1:57252   192.168.0.10:80    timer:(timewait,7.436ms,0) 
tcp  0       0         192.168.100.1:57244   192.168.0.10:80    timer:(timewait,6.536ms,0)
Run Code Online (Sandbox Code Playgroud)


Kla*_*azt 1

这看起来可以回答你的问题:

http://seer.support.veritas.com/docs/264886.htm

我建议您询问为什么有人问您这个问题,并了解这如何适用于 XMPP。

TCP/IP 图解卷 1 已上线,更详细地描述了 2MSL:此处

MSL 也在 TCP RFC 793中进行了描述,如维基百科中所述