当前位置:   article > 正文

Linux和Windows系统修改MSL的值_linux msl 配置

linux msl 配置


MSL,即Maximum Segment Lifetime,一个数据分片(报文)在网络中能够生存的最长时间,在RFC 793中定义MSL通常为2分钟,即超过两分钟即认为这个报文已经在网络中被丢弃了。对于一个TCP连接,在双方进入TIME_WAIT后,通常会等待2倍MSL时间后,再关闭掉连接,作用是为了防止由于FIN报文丢包,对端重发导致与后续的TCP连接请求产生顺序混乱,具体原理这里就不详细解释了,可以参考:http://blog.csdn.net/qwertyupoiuytr/article/details/68938963


MSL的时长其实是一个估计值,由于这个值会影响很多基于TCP的应用的连接复用和调优,所以在实际生产中,需要针对具体的应用来调整MSL的具体值(需要注意的是,由于MSL值是对于系统层面来说,所以调整后,会对系统中部署的全部应用产生影响)。下面说明了针对Linux系统和Windows系统调整MSL的方法。


Linux,CentOS为例:

查看默认的MSL值(60s)

[root@DanCentOS65var]# cat /proc/sys/net/ipv4/tcp_fin_timeout

60


修改默认60120

[root@DanCentOS65var]# echo 120 > /proc/sys/net/ipv4/tcp_fin_timeout


修改完成后,重新加载配置文件:

[root@DanCentOS65var]# sysctl -p /etc/sysctl.conf


查看是否已经生效:

[root@DanCentOS65var]# sysctl -a | grep fin

net.ipv4.tcp_fin_timeout= 120

 

Windows上修改"2MSL"的值:

打开注册表编辑器(regedit):

找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,在右侧找到TcpTimedWaitDelay这一个键值(Win2000之后的系统中可能会没有这个值,如果没有,创建一个即可):

指定对应的值即可:

注意在Windows系统中,这个注册表键值就直接等于TIME_WAIT到CLOSED状态的等待市场,也就是2MSL的值,而不像Linux中,我们修改的是MSL的值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/149039
推荐阅读
相关标签
  

闽ICP备14008679号