本机测试TCP/IOCP重载时发现,只能连接不到4000个链接,链接满后浏览器都不好用了,查了半天原因,才从netsata中看出来,默认端口已用完,而且关闭时间也很漫长.
MaxUserPort 确定从系统请求任何可用用户端口时所用最大端口数,TCP/IP 可指定的最高端口号. 如果建立 TCP 连接最大端口连接大于 5000, 本地计算机响应以下错误信息WSAENOBUFS (10055):
因为系统缺乏足够缓冲区或者因为队列已满而无法执行套接字上操作, 从而导致应用程序的10048错误.
Microsoft : TcpTimedWaitDelay 项确定在 TCP 释放已关闭的连接并重用其资源之前必须经过的时间。关闭和释放之间的这段间隔称为 TIME_WAIT 状态或 2MSL 状态。在此期间,可以重新打开连接,
对客户端和服务器来说这比建立新连接的成本要低得多。如果减小此项的值,则允许 TCP 更快地释放已关闭的连接,从而为新连接提供更多的资源。
但是,如果该值过小,则 TCP 可能会在连接完成之前释放连接资源,要求服务器使用其他资源重新建立连接。建议在将 TcpTimedWaitDelay 项设置为其默认值 60。