详细解析 SYN泛洪

SYN 泛洪及相关知识解析

当面试官问这个问题的时候,不要被 "SYN 泛洪" 这个名词给震慑到,其实面试官就是想知道计算机网络中关于 DDoS 攻击和 TCP 建立连接三次握手的相关知识的考核。不要担心,接下来将详细介绍一下 SYN 泛洪及其相关知识。

什么是 SYN 泛洪?

TCP 是面向连接的传输层协议,建立连接前必须完成三次握手,确保双方收发能力正常:

  1. 第一次握手(SYN) :客户端向服务器发送SYN(同步序列编号)报文,请求建立连接。报文中包含客户端的初始序列号(ISN-C)。
  2. 第二次握手(SYN+ACK) :服务器收到SYN报文后,会执行两个操作:
    • 分配资源:创建 ** 半连接(Half-Open Connection)** 条目,存入半连接队列(SYN Backlog),占用内存、端口等系统资源。
    • 回复报文:向客户端发送SYN+ACK报文,包含服务器的初始序列号(ISN-S)和对客户端 ISN-C 的确认(ISN-C+1)。
  3. 第三次握手(ACK) :客户端收到SYN+ACK报文后,向服务器发送ACK报文,确认服务器的 ISN-S(ISN-S+1)。
  4. 连接建立 :服务器收到ACK报文后,将半连接从半连接队列转移到全连接队列(Accept Queue),资源正式投入使用,连接建立完成。

关键特性 :服务器在第二次握手后,会持续占用资源直到收到第三次握手的 ACK,或等待超时(默认数十秒)

攻击者利用上述 "服务器第二次握手后会占用资源等待 ACK" 的特性,通过以下步骤发起攻击:

  1. 伪造源 IP :攻击者使用工具生成大量伪造的源 IP 地址 (可随机生成,或使用不存在的 IP、私网 IP),避免被溯源,同时确保目标服务器的SYN+ACK报文无法被真实主机接收。
  2. 发送海量 SYN 报文 :攻击者向目标服务器的特定端口(如 80、443、8080)发送大量伪造源 IP 的SYN报文。
  3. 服务器资源耗尽
    • 服务器每收到一个SYN报文,就会创建一个半连接条目,存入半连接队列,占用资源。
    • 由于源 IP 是伪造的,没有任何主机会向服务器回复ACK报文。
    • 服务器会为每个半连接等待超时(通常 30~60 秒),期间半连接队列被占满,系统内存、可用端口等资源被耗尽。
  4. 拒绝服务 :当半连接队列满后,服务器会丢弃后续所有合法的SYN请求,导致合法用户无法建立 TCP 连接,实现拒绝服务的目标。

解决方案

增强网络基础措施

提升网络带宽、增加服务器的处理能力和承载能力,通过增强基础设施的能力来抵御攻击

使用 SYN Cookie 的目的就是绕过半连接队列的情况下建立连接。服务端收到 SYN 报文后,不分配半连接资源,而是通过源 IP、目的 IP、端口、时间戳等信息,经加密算法生成一个 "SYN Cookie" 放到第二次握手 SYN+ACK 的序列号中。客户端收到带 Cookie 的 SYN + ACK 并回复 ACK 时,服务端验证序列号的合法性,若合法则直接建立连接。

半连接队列优化

增大内核参数 somaxconn (最大监听队列长度),提升服务端处理并发连接的能力。减少 tcp_synack_retries(SYN+ACK 报文的重传次数,默认 5 次,可降低至 2-3 次),缩短半连接的超时时间,加快资源释放。

调大 netdev_max_backlog

这个队列用于接收网络处理不过来的数据包,但个人感觉调大了用处不大,攻击者伪造的 SYN 请求也能更大

拓展:什么是 DDoS 攻击?

SYN 泛洪攻击只是 DDoS 攻击的一种,DDoS,即分布式拒绝服务。顾名思义,DDoS 攻击的目的就是通过某种手段让正常的请求无法获得其服务。

是通过什么手段呢?攻击者通过控制海量僵尸主机组成的僵尸网络,从多个分布式节点同时向目标(服务器 / 网络 / 应用)发起恶意流量或请求,耗尽其带宽、CPU、内存、连接数等核心资源,使目标无法处理合法用户请求,最终导致服务中断或瘫痪。

核心特点

  • 分布式多源:流量来自全球大量节点,溯源难度高
  • 隐蔽性强:攻击流量常伪装为正常请求,难被传统设备识别
  • 规模化与持续性:可产生数百 Gbps 甚至 Tbps 流量,持续数小时至数月
  • 低成本高破坏:利用僵尸网络或放大技术,攻击成本低,却能造成服务中断、收入损失与声誉损害

常见的攻击类型

  • 网络层攻击,如 UDP 反射攻击
  • 传输层攻击,如 SYN 泛洪
  • 会话层攻击,如 SSL 连接攻击
  • 应用层攻击,如 DNS 泛洪,HTTP 泛洪

防御策略

  • 流量清洗:通过高防 IP、DDoS 防护设备,过滤异常流量,仅转发合法请求
  • 弹性扩容:借助云服务的弹性带宽 / 实例,动态应对突发流量峰值
  • 协议优化:配置 SYN Cookie、连接限速、超时控制,抵御协议层攻击
  • 智能识别:基于 AI / 机器学习,区分正常与攻击流量,降低误杀率
  • 链路冗余:多线路接入与 Anycast,避免单链路拥塞导致全网瘫痪
相关推荐
呉師傅5 小时前
东芝3525AC彩色复印机CC219测试页打印方法【实际操作】
运维·网络·windows·计算机外设·电脑
开开心心就好6 小时前
音频编辑工具,多端支持基础剪辑易操作
java·网络·windows·java-ee·电脑·maven·excel
GeekyGuru6 小时前
TCP/IP协议栈深度解析:从分层原理到内核实现与调优
网络·网络协议·tcp/ip
凯子坚持 c6 小时前
Protocol Buffers C++ 进阶数据类型与应用逻辑深度解析
java·服务器·c++
宴之敖者、6 小时前
Linux——权限
linux·运维·服务器
txinyu的博客6 小时前
MAC 地址
服务器·网络·macos
googleccsdn7 小时前
ENSP Pro Lab笔记:配置BGP VXLAN双栈(3)
网络·笔记
百***78758 小时前
【实操】一步API对接GPT-5.2全流程(多语言示例+高并发优化+避坑指南)
网络·gpt
科技块儿8 小时前
【场景:识别C2通信】评估出站IP是否为已知恶意地址,方法:IP离线库+威胁情报融合
网络·网络协议·tcp/ip
咕噜签名-铁蛋8 小时前
火山云豆包:重新定义AI交互,让智能触手可及
服务器