windows 网络参数设置

windows网络参数的设置都在注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 下

要调整网络参数,修改该位置下已有键值或新增键值。


1.  MaxUserPort

键值范围:5000 - 65534 (xp, 2003下默认5000,很难想象在2003服务器系统下也是5000,鄙视)

键值作用:设定端口号范围

                    当端口号不足时,发起socket connect连接时会报错:

                       中文:"通常每个套接字地址(协议/网络地址/端口)只允许使用一次"

                       英文:Only one usage of each socket address (protocol/network address/port) is normally permitted.


2. TcpTimedWaitDelay

键值范围:30 - 240 (单位:秒,默认值:240)

键值作用:相信很多人都遇到过犯人的"TIME_WAIT"状态,在多并发程序下容易出现将端口号耗完的情况。

                    "TIME_WAIT"状态是TCP/IP协议规定的一种套接字状态

                    一个socket连接的是两个对象:client <-----> server

                    不管是client还是server,谁先关闭套接字(调用close()),谁就会进入TIME_WAIT状态

                    这是协议规定的,不可避免的,能改变的是等待时间

                    windows下默认为3分钟,linux下默认为1分钟

                    因而在windowds下特别容易出现"TIME_WAIT"占满的情况

                    更有甚者,在win2008环境下,有个严重的bug,如果开机时间长达497天后,TIME_WAIT就永远不释放啦

                    哈哈,再次鄙视微软,这还是服务器系统么,服务器可是常年不关机的啊,

                    参考微软官网:https://support.microsoft.com/zh-cn/kb/2553549?spid=11737&sid=156

                    在服务器上,建议将该值改为60(一分钟)


参考文章:

避免TCP/IP端口耗尽: https://msdn.microsoft.com/zh-cn/library/aa560610(v=bts.10).aspx 



你可能感兴趣的:(windows 网络参数设置)