由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作(MaxUserPort,TcpTimedWaitDelay)

文章来源:http://blog.sina.com.cn/s/blog_406127500101ehkt.html

utorrent 出现 “由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作”tracker红肿如何解决:


答:
可能是你留作种的原因,所以tcp的端口(UserPort)请求已经达到你pc上本地设置的界限(MaxUserPort),可以试着修改此键值;
方法如下(修改前请备份好你的注册表文件,以免发生意外):
.启动注册表编辑器。
..在注册表中,找到以下子项,然后单击$参数(Parameters 翻译过来就是>>参数<<的意思)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
...在编辑菜单中,单击新建,然后添加以下注册表项:
值名称: MaxUserPort
值类型: 双字节
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0x1388 (5000 十进制)
....退出注册表编辑器,然后重新启动计算机

参考:

TcpTimedWaitDelay和MaxUserPort设置与网络吞吐量

TcpTimedWaitDelay

    • 描述:确定 TCP/IP 在释放已关闭的连接并再次使用其资源前必须经过的时间。关闭与释放之间的这段时间称为 TIME_WAIT 状态或者两倍最大段生存期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。通过减少此条目的值,TCP/IP 可以更快地释放关闭的连接,并为新连接提供更多资源。如果运行中的应用程序要求快速释放连接或创建新连接,或者由于多个连接处于 TIME_WAIT 状态而导致吞吐量较低,请调整此参数。
    • 如何查看或设置:

1.     使用regedit命令,访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 注册表子键,然后创建新的 REG_DWORD 值TcpTimedWaitDelay。

2.     将此值设置为十进制30,即十六进制 0x0000001e。此值将等待时间设置为 30 秒。

3.     停止并重新启动系统。

    • 缺省值:0xF0,此值将等待时间设置为 240 秒(4 分钟)。
    • 建议值:最小值为0x1E,此值将等待时间设置为 30 秒。
  • MaxUserPort
    • 描述:确定当应用程序向系统请求获取可用的用户端口时,TCP/IP 可指定的最高端口号。
    • 如何查看或设置:

1.     使用regedit命令,访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 注册表子键,然后创建新的 REG_DWORD 值MaxUserPort。

2.     将此值至少设置为十进制32768。

3.     停止并重新启动系统。

    • 缺省值:
    • 建议值:至少为十进制32768。
  • 建议将 MaxUserPort 值设置为 60000(十六进制ea60。如果设置的 MaxUserPort 值低于 60000,可能会显示名称服务提供程序接口 (NSPI) 代理警告,例如事件 9040。
  • 最大连接储备
    • 描述:如果同时接收到许多连接尝试,请增大操作系统支持的缺省暂挂连接数。
    • 如何查看或设置:

1.     使用regedit命令并访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters 注册表子键。

2.     根据需要创建并设置下列值:

3. "EnableDynamicBacklog"=dword:00000001

4. "MinimumDynamicBacklog"=dword:00000020

5. "MaximumDynamicBacklog"=dword:00001000

6. "DynamicBacklogGrowthDelta"=dword:00000010

7.     这些值将最小可用连接数设置为 20,将最大可用连接数设置为 1000。每当可用连接数小于最小可用连接数时,可用连接数都会增加 10。

8. 停止并重新启动系统。

  • KeepAliveInterval
    • 描述:确定 TCP 在未接收到响应时重新尝试保持活动传输的频率。
    • 如何查看或设置:

1.     使用regedit命令,访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters 注册表子键,然后创建新的 REG_DWORD 值KeepAliveInterval。

2.     将此值设置为1秒。

3.     停止并重新启动系统。

  • 缺省值:1秒
  • 建议值:
TcpNumConnections

Windows 下单机最大TCP连接数

有效范围:0 - 0xfffffe 
默认值:0xfffffe 
说明:此参数限制 TCP 能同时打开的最大连接数

TCPWindowSize

TCPWindowSize的值表示TCP的窗口大小。TCP Receive Window(TCP数据接收缓冲)定义了发送端在没有获得接收端的确认信息的状态下可以发送的最大字节数。此数值越大,返回的确认信息就越少,相应的在发送端和接收端之间的通信就越好。此数值较小时可以降低发送端在等待接收端返回确认信息时发生超时的可能性,但这将增加网络流量,降低有效吞吐率。浏览至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子键,在Parameters子键下创建或修改名为TCPWindowSize的REG_DWORD值,该值的范围是从0到65535,将该值设置为62420。


----------------------------

参考微软各个参数的解释:
https://technet.microsoft.com/en-us/library/cc938196.aspx
DOS cmd命令“netstat -n”,可以查看TCP连接情况

由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作(MaxUserPort,TcpTimedWaitDelay)_第1张图片

你可能感兴趣的:(Windows)