tcp连接Recv-Q、syn flood攻击及backlog监控

本文详细介绍了TCP连接中Recv-Q和Send-Q的含义,特别是非监听和监听状态下的区别。针对Syn flooding攻击,文章讨论了SYN cookie机制、增大SYN最大半连接数、减小超时值等防御措施,并提供了Linux系统配置示例。此外,还阐述了如何监控backlog队列,通过`netstat -s`命令观察异常情况,以及在实验中模拟连接溢出的情况。
摘要由CSDN通过智能技术生成

1、Recv-Q和Send-Q


1.1、非listening状态的tcp连接

[root@centos64-1 ~]# netstat -ntp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0    284 192.168.132.128:22          192.168.132.1:32242         ESTABLISHED 4264/sshd           
tcp        0      0 192.168.132.128:9000        192.168.132.1:42029         ESTABLISHED 6552/java 

等同于 ss -n 命令

里面的Recv-Q 表示此连接等待用户接收的byte个数(已到内核,但还未被用户进程read的字节个数)

Send-Q 表示发送还未被ack的字节个数

Recv-Q
实验:

服务端卡死到accept前面:


客户端走到发送完处

注意:虽然此时服务端并未accpet此连接,但客户端还是能走到发送完成的代码处的。


可以看到,此时服务端的recv-q已经有等待用户进程read的数据了(另外,服务器端,只有没有不read,此处会一直显示等待接收的字节数)。


1.2、listen状态的tcp连接

netstat -lntp

ss -l -n  (能看出效果)


里面的Recv-Q 表示等待accept的连接个数,即完成队列的个数

实验:
服务端走到accept前面:



客户端走到发送数据完成处:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值