首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

很多TIME_WAIT连接导致Cannot assign requested address的解决方法

2012-11-26 
很多TIME_WAIT连接导致Cannot assign requested address的解决办法客户端connect服务器,执行一定时间后,接

很多TIME_WAIT连接导致Cannot assign requested address的解决办法
客户端connect服务器,执行一定时间后,接口返回-99的错误。

查看错误信息: OS error code  99:  Cannot assign requested address

猜想端口被用光的原因,网络搜索得到一个解释:客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即 “Cannot assign requested address”。

通过netstat,的确看到很多TIME_WAIT状态的连接。

因为是调用API,所以无法对连接进行opt设置,只能通过设置系统配置得以解决。

解决办法:

执行命令修改如下2个内核参数:

//  开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用。# sysctl -w net.ipv4.tcp_timestamps=1//  表示开启TCP连接中TIME-WAIT sockets的快速回收。# sysctl -w net.ipv4.tcp_tw_recycle=1



转载自:badguy的个人空间

热点排行