什么是TCP半连接队列和全连接队列?
在TCP进行三次握手时,Liunx会为其维护两个队列:
- 半连接队列,也叫syn队列
- 全连接队列,也叫accept队列
在客户端发起第一次连接时,服务端会将其加入到syn队列中,并且响应客户端syn+ack报文,等到客户端发送ack应答报文时,服务端将该连接从半连接队列中取出,并新建一个新的连接,加入到accept队列当中。等待进程调用accept请求时,将该连接取出来

不管是半连接队列还是全连接队列,都有最大长度限制,超过限制时,内核会直接丢弃,或返回 RST 包。
半连接队列(syn队列)
如何查看半连接队列的长度呢??
我们可以抓住半连接队列的特点,处于syn_recv状态的tcp连接,就是我们的半连接队列
于是,我们使用如下命令查看处于syn_recv状态的tcp连接
netstat -natp | grep SYN_RECV | wc -l


本文探讨了TCP半连接队列(syn队列)和全连接队列(accept队列)的工作原理,包括如何查看半连接队列长度、模拟syn洪泛攻击及防御策略。此外,讲解了全连接队列的监控、溢出应对措施以及如何调整相关参数以增强系统抗攻击能力。
最低0.47元/天 解锁文章
1051

被折叠的 条评论
为什么被折叠?



