计算机网络---SYN Blood(洪泛攻击)

文章目录


TCP协议是 TCP/IP 协议栈中一个重要的协议,平时我们使用的浏览器,APP等大多使用 TCP 协议通讯的,可见 TCP 协议在网络中扮演的角色是多么的重要。

TCP 协议是一个可靠的、面向连接的流协议,由于 TCP 协议是建立在 IP 协议这种面向无连接的协议,所以 TCP 协议必须自己来维护连接的状态。

三次握手过程

TCP 协议通过 三次握手 来建立客户端与服务端的连接,三次握手 过程的原理如下图

建立连接三次握手过程如下:

  • 客户端需要发送一个 SYN包 给服务端(包含了客户端初始化序列号),并且将连接的状态设置为 SYN_SENT,这个过程由 connect() 系统调用完成。
  • 服务端接收到客户端发送过来的 SYN包 后,回复一个 SYN+ACK包 给客户端(包含了服务端初始化序列号),并且设置连接的状态为 SYN_RCVD
  • 客户端接收到服务端发送过来的 SYN+ACK包 后,设置连接状态为 ESTABLISHED(表示连接已经建立),并且回复一个 ACK包 给服务端。
  • 服务端接收到客户端发送过来的 ACK包 后,将连接状态设置为 ESTABLISHED(表示连接已经建立)。

三次握手 过程完成后,一个 TCP 连接就此建立完成。

SYN Flood攻击原理

上面介绍了建立一个 TCP 连接的 三次握手 过程,我们可以发现,三次握手 属于一个协商的过程,也就是说客户端与服务端必须严格按照这个过程来进行,否则连接就不能建立。

这时,如果客户端发送 SYN包 企图与服务端建立连接,但发送完 SYN包 后就不管,那会发送什么事情呢?

客户端发送一个 SYN包 给服务端后就退出,而服务端接收到 SYN包 后,会回复一个 SYN+ACK包 给客户端,然后等待客户端回复一个 ACK包

但此时客户端并不会回复 ACK包 ,所以服务端只能一直等待直到超时。服务端超时后,会重发 SYN+ACK包 给客户端,默认会重试 5 次,而且每次等待的时间都会增加(可以参考 TCP 协议超时重传的实现)。

另外,当服务端接收到 SYN包 后,会建立一个半连接状态的 Socket。所以,当客户端一直发送 SYN包 ,但不回复 ACK包 ,那么将会耗尽服务端的资源,这就是 SYN Flood 攻击

防御措施

协议层优化

  • SYN Cookie‌:服务器不立即分配资源,通过哈希算法验证连接合法性后再分配‌。
  • 缩短SYN Timeout‌:减少半连接等待时间,加速无效请求释放‌。

网络层拦截

  • 防火墙/IP过滤‌:识别并拦截伪造IP的SYN包,限制单IP连接速率‌。
  • 流量清洗‌:通过DDoS防护设备过滤异常流量,仅转发合法请求‌。

系统配置调整

  • 扩大连接队列 ‌:增加backlog队列容量,缓解短时高并发冲击‌。

    调整

  • 扩大连接队列 ‌:增加backlog队列容量,缓解短时高并发冲击‌。

  • 负载均衡‌:将流量分散至多台服务器,降低单点压力‌。

相关推荐
长江&后浪12 分钟前
防火墙的描述
开发语言·网络·php
小新讲网安36 分钟前
安全运营中心(SOC)建设实战:从SIEM到威胁狩猎全流程指南
网络·安全·web安全·网络安全·网安
SKYLAB011 小时前
打破智能家居生态壁垒|微喇智能 WKV553‑A 模组原生支持 Matter,解锁跨平台互联新体验
网络·智能家居
笨鸟先飞,勤能补拙2 小时前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
KindSuper_liu2 小时前
Unity 游戏网络基础:从 TCP、UDP 到 HTTP、TLS 与 Best HTTP
网络·游戏·unity
caimouse2 小时前
ReactOS 图形系统分析(3):显示驱动 DDI framebuf.dll
linux·运维·网络
M158227690552 小时前
四通道 Profinet 转 Modbus RTU 网关 SG-PN-Modbus_4 全场景落地详解
网络·工控布线
佳児素花痴╮3 小时前
网络问题与基础理论
运维·服务器·网络
Oflycomm3 小时前
IPC网络摄像机与安防监控:Wi-Fi 6模组、AOV低功耗与边缘AI的产业落地
网络·人工智能·安防监控·wifi6·ipc网络摄像机
0x533 小时前
Java网络编程(四)
java·网络