防止短连接耗尽你的动态TCP端口

Posted 云旗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止短连接耗尽你的动态TCP端口相关的知识,希望对你有一定的参考价值。

详见TCP协议
https://en.wikipedia.org/wiki/Transmission_Control_Protocol
技术分享
但是TIME_WAIT是有时间窗口的,Linux默认是60秒。
所以如果不停的产生和关闭TCP会话,就可能导致前面提到的问题。


对于Linux的客户端,通过调整几个操作系统内核参数可以解决这个问题。

net.ipv4.tcp_syncookies=1   # 开启SYN Cookies。当出现SYN等待队列溢出时,启用cookie来处理,可防范少量的SYN攻击
net.ipv4.tcp_tw_recycle=1   # 开启TCP连接中TIME-WAIT套接字的快速回收
net.ipv4.tcp_tw_reuse=1     # 开启重用。允许将TIME-WAIT套接字重新用于新的TCP连接
net.ipv4.tcp_timestamps=1   # 减少time_wait
net.ipv4.tcp_tw_timeout=3   # 收缩TIME_WAIT状态socket的回收时间窗口

以上是关于防止短连接耗尽你的动态TCP端口的主要内容,如果未能解决你的问题,请参考以下文章

WCF 双工服务和 TCP 端口耗尽

【nginx】如何解决使用nginx作为反向代理端口耗尽问题?

对于高并发短连接造成Cannot assign requested address解决方法

网络编程-TCP长连接和短连接

网络编程-TCP长连接和短连接

Windows判断CC攻击的小技巧