

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SYN洪水袭击
<a name="syn-flood-attacks"></a>

 当用户连接到传输控制协议 (TCP) 服务（例如 Web 服务器）时，他们的客户端会发送一个SYN数据包。服务器返回同步确认 (SYN-ACK) 数据包，最后，客户端使用确认 () 数据包进行响应，该数据包完成了预期ACK的三次握手。下图说明了这种典型的握手。

![\[描绘SYN三方握手的示意图\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/aws-best-practices-ddos-resiliency/images/syn-three-way-handshake.png)


 在SYN洪水攻击中，恶意客户端发送大量SYN数据包，但从不发送最后ACK的数据包来完成握手。服务器只能等待对半开TCP连接的响应，其想法是目标最终会耗尽容量，无法接受新TCP连接，这会阻止新用户连接到服务器，但是实际影响更加细微差别。默认情况下，现代操作系统都实现了 SYN Cookie，以此作为抵御SYN洪水攻击导致状态表耗尽的机制。SYN队列长度达到预先确定的阈值后，服务器将使用ACK包含精心编制的初始序列号的 SYN-进行响应，而不在其SYN队列中创建条目。如果服务器随后收到ACK包含正确递增的确认号，则可以将该条目添加到其状态表中并照常进行。SYN洪水对目标设备的实际影响往往是网络容量和CPU耗尽，但是防火墙（或EC2安全组[连接跟踪）等中间状态设备可能会出现TCP状态表耗尽并丢弃新连接](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)。