最近帮一个朋友测试服务器,其中一个测试项目是每次传送数据后立刻断开连接。然而测试开始没几 分钟,客户端就报告了大量的错误,错误原因是 only one usage of each socket address (protocol/network address/port) is normally permitted”. 用 netstat 查看客户端的连接情况,发现有大量的状态为 TIME_WAIT 的连接存在。Google 以后确定 原因在于 TCP 会在关闭 Socket 之后继续占用端口一段时间,在这段时间内,如果要创建新的连接, Socket 会分配一个新端口给它。 这取决于两个注册表值,都是位于这个键下: HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters TcpTimedWaitDelay 表示关闭 Socket 后占用端口的秒数,默认是240 MaxUserPort 表示最大的可用端口,默认是 5000 如果发送请求的速度是 300/秒,那么5000个端口(实际上还要扣掉1024个保留端口)只能用14秒左右 ,从第15秒开始就没有可用端口,因此 WinSock 就要报错了。 推荐的修改值为 TcpTimedWaitDelay = 30 MaxUserPort = 65534
转:http://www.cpper.com/site/comments/tcp_time_delay/一个怪异的服务器问题
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Redis7.2启动程序源码解析
原創
2024-06-05 22:52:48
第 53 期:MySQL 创建了用户却无法登陆
原創
2024-06-04 02:43:21
第 53 期:MySQL 创建了用户却无法登陆
原創
2024-06-04 02:43:03
分享一份物联网SAAS平台架构设计
原創
2024-04-30 23:42:19
Python中两种网络编程方式:Socket和HTTP协议
原創
2024-04-16 10:33:01
uos安装docker
原創
2024-03-09 23:48:38
优酷鸿蒙开发实践 | 鸿蒙卡片开发
阿里巴巴移动技术
2021-10-22 15:33:55
数据库测试的基础要素
Jonathan Allen
2021-10-22 15:33:55
一年40万次实验,字节跳动A/B测试平台是怎么炼出来的?
Tina
2021-09-26 15:43:52
阿里淘系自研编解码器包揽两项世界冠军!
osc_hzf6peqc
2024-05-14 01:40:19
Redis开源社区持续壮大,华为云为Valkey项目注入新的活力
原創
2024-05-06 22:32:57
浏览器输入地址访问网页过程
原創
2024-04-16 11:34:39
为什么我们的系统复杂度这么高了?
原創
2024-03-14 02:53:29
云原生周刊:Terraform 1.8 发布 | 2024.5.6
原創
2024-05-06 22:46:37