网络---socket耗尽问题

SYN Flood攻击导致服务端半链接队列耗尽,影响正常连接。解决方法包括增大半连接队列容量和启用tcp_syncookies功能。通过调整listen函数参数和系统配置可以扩大半链接队列,而tcp_syncookies能避免半连接队列耗尽问题。
摘要由CSDN通过智能技术生成

SYN Flood攻击又称DOS(Denial Of Service),一般是指伪造客户端ip发送大量的syn包,服务端收到syn包后响应syn+ack根本无法到达客户端,服务端重发syn+ack,这个过程中socket处于半链接状态SYN_RECV,并占用一个半链接队列单元。半链接状态的socket足够多时,会将半连接队列耗光,导致后续syn包直接丢弃。

即使没有攻击,网络状态很差情况,服务端处发送syn+ack后到收到ack间隔时间过长,同样会积累大量的SYN_RECV的链路,导致半链接状态耗尽,同样会导致丢弃syn请求。

解决这个问题的方法:

方法1:修改参数,扩大实际的半链接队列,修改后需要重启服务进程。

listen(backlog)

{

somaxconn = sock_net(sock->sk)->core.sysctl_somaxconn;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值