VuePress 站点
首页
数学
计算机基础
Java后端
AI大模型
UI设计
首页
数学
计算机基础
Java后端
AI大模型
UI设计
  • 计算机基础
  • 计算机网络应用

    • 课程笔记:TCP三次握手建立连接
    • 课程笔记:TCP三次握手的必要性
    • 课程笔记:TCP协议缺陷与SYN Flood攻击
    • 课程笔记:TCP四次挥手释放连接
    • 课程笔记:TCP四次挥手释放连接的必要性
    • 课程笔记:TCP 报文段格式与 IP 分组
    • 课程笔记:HTTP/2 新特性——二进制分帧
    • 课程笔记:HTTP/2 新特性——多路复用
    • 课程笔记:HTTP/2 新特性——服务器推送(Server Push)
    • 课程笔记:HTTPS 简介与架构图
    • 课程笔记:HTTPS原理与传输层安全协议(TLS)
    • 课程笔记:HTTPS原理——对称加密算法
    • 课程笔记:HTTPS原理——非对称加密算法
    • 课程笔记:HTTPS 原理 —— 数字签名
    • 课程笔记:HTTPS 原理——证书与 CA
    • 课程笔记:完整的HTTPS协议通信流程
    • 课程笔记:HTTPS 协议的性能损耗
    • 课程笔记:TLS False Start 加速 HTTPS
    • 课程笔记:升级 HTTP 协议到 HTTP/2
    • 课程笔记:通过会话恢复加速 HTTPS
    • 课程笔记:OWASP 组织与十大 Web 安全漏洞
    • 课程笔记:XSS 跨站脚本攻击
    • 课程笔记:存储型XSS跨站脚本攻击
    • 课程笔记:XSS攻击窃取Cookie
    • 课程笔记:反射型XSS跨站脚本攻击
    • 课程笔记:DOM型XSS跨站脚本攻击
    • 课程笔记:植入 JS、HTML 代码攻击
    • 课程笔记:XSS攻击的防护策略
    • 课程笔记:XSS攻击的输入环节防护
    • 课程笔记:XSS 劫持 Cookie 的防护策略
    • 课程笔记:XSS 内容输出防护方案
    • 课程笔记:CSP 内容安全策略
    • 课程笔记:CSP 内容安全策略的应用方式
    • 课程笔记:CSRF 跨站请求伪造攻击原理
    • 课程笔记:CSRF 跨站点请求伪造攻击案例
    • 课程笔记:CSRF 跨站请求伪造防护方案
    • 课程笔记:OWASP CSRFTester 工具的原理与使用
    • 课程笔记:点击劫持攻击原理
    • 课程笔记:点击劫持防护方案
    • 课程笔记:URL 跳转漏洞原理与防护
    • 课程笔记:Session 认证与会话劫持
    • 课程笔记:Session固定与Session保持攻击
    • 课程笔记:注入攻击与 OWASP 靶机平台
    • 课程笔记:SQL盲注与ORM注入攻击及防护
    • 课程笔记:XML注入、代码注入、OS命令注入攻击
    • 课程笔记:文件上传漏洞与文件下载/目录浏览漏洞
    • 课程笔记:访问控制与权限访问漏洞
    • 课程笔记:DDoS 分布式拒绝服务攻击原理与防护
    • 课程笔记:CC(Challenge Collapsar)攻击与防护
    • 课程笔记:CDN 的工作原理
    • 课程笔记:CDN的网络架构和术语说明
    • 课程笔记:CDN应用场景与阿里云CDN
    • 课程笔记:如何使用阿里云CDN服务
    • 课程笔记:CDN 刷新与预热
    • 课程笔记:阿里云 CDN 回源配置
    • 课程笔记:CDN 缓存配置
    • 课程笔记:CDN 访问控制与性能优化
  • 计算机网网络

    • 📖 教材介绍与课程导言
    • 📖 1.1 信息时代的计算机网络
    • 📖 1.2 因特网概述
    • 📖 1.3 电路交换、分组交换和报文交换
    • 📖 1.4 计算机网络的定义和分类
    • 📖 1.5 计算机网络的性能指标(1)
    • 📖 1.5 计算机网络的性能指标(2)
    • 📖 1.6.1 常见的三种计算机网络体系结构
    • 📖 1.6.2 计算机网络体系结构分层的必要性
    • 📖 1.6.3 计算机网络体系结构分层思想举例
    • 📖 计算机网络体系结构中的专用术语
    • 📖 物理层概述
    • 📖 物理层下面的传输媒体
    • 📖 传输方式
    • 📖 编码与调制
    • 📖 2.5 信道的极限容量
    • 📖 2.6 信道复用技术
    • 📖 3.1 数据链路层概述
    • 📖 3.2 数据链路层的三个重要问题
    • 📖 3.2.1 封装成帧和透明传输
    • 📖 3.2.2 差错检测
    • 📖 3.2.3 (1) 可靠传输的相关基本概念
    • 📖 3.2.3 (2) 可靠传输的实现机制 - 停止-等待协议(SW)
    • 📖 3.2.3 (3) 可靠传输的实现机制 - 回退N帧协议(GBN)
    • 📖 3.2.3 (4) 可靠传输的实现机制 - 选择重传协议(SR)
    • 📖 3.3 点对点协议 PPP
    • 📖 3.4 共享式以太网
    • 📖 3.4.1 网络适配器和 MAC 地址
    • 📖 3.4.2 (1) CSMA/CD 协议的基本原理
    • 📖 3.4.2 (2) 共享式以太网的争用期、最小帧长和最大帧长
    • 📖 3.4.2 (3) 共享式以太网的退避算法和信道利用率
    • 📖 3.4.3 使用集线器的共享式以太网
    • 📖 3.4.4 在物理层扩展以太网
    • 📖 3.4.5 (1) 网桥的主要结构和基本工作原理
    • 📖 3.4.5 (2) 透明网桥的自学习和转发帧的过程以及生成树协议STP
    • 📖 3.5 交换式以太网
    • 📖 3.5.1 以太网交换机
    • 📖 3.5.2 共享式以太网和交换式以太网的对比
    • 📖 3.6 以太网的MAC帧格式
    • 📖 3.7.1 虚拟局域网 VLAN 概述
    • 📖 3.7.2 虚拟局域网 VLAN 的实现机制
    • 📖 3.8 以太网的发展
    • 📖 3.9.1 802.11 无线局域网的组成
    • 📖 3.9.2 802.11 无线局域网的物理层
    • 📖 3.9.3 (1) 802.11 无线局域网的数据链路层 —— 使用 CSMA/CA 协议(而不使用 CSMA/CD 协议)
    • 📖 CSMA/CA(载波监听多址接入/碰撞避免)协议的基本工作原理
    • 📖 802.11 无线局域网的 MAC 帧格式
    • 📖 网络层概述
    • 📖 网际协议 IP(网际协议)与异构网络互连
    • 📖 IPv4 地址及其编址方法——概述
    • 📖 IPv4 地址的分类编址方法
    • 📖 IPv4 地址的划分子网编址方法
    • 📖 IPv4 地址的无分类编址方法(CIDR)
    • 📖 IPv4 地址的应用规划
    • 📖 IPv4 地址与 MAC 地址
    • 📖 地址解析协议 ARP
    • 📖 IP 数据报的发送和转发流程
    • 📖 IPv4 数据报的首部格式
    • 📖 静态路由配置
    • 📖 因特网的路由选择协议概述
    • 📖 路由信息协议 RIP(路由信息协议)
    • 📖 开放最短路径优先 OSPF(开放最短路径优先)
    • 📖 边界网关协议 BGP(边界网关协议)
    • 📖 路由器的基本工作原理
    • 📖 网际控制报文协议 ICMP(网际控制报文协议)
    • 📖 虚拟专用网 VPN 和网络地址转换 NAT
    • 📖 IP 多播技术的相关基本概念
    • 📖 在局域网上进行硬件多播
    • 📖 在因特网上进行 IP 多播需要的两种协议
    • 📖 网际组管理协议 IGMP
    • 📖 多播路由选择协议
    • 📖 移动 IP 技术概述
    • 📖 IPv6 引进的主要变化
    • 📖 IPv6 数据报的基本首部和扩展首部
    • 📖 IPv6 地址
    • 📖 从 IPv4 向 IPv6 过渡
    • 📖 网际控制报文协议 ICMPv6
    • 📖 软件定义网络 SDN
    • 📖 运输层概述 — 进程间基于网络的通信
    • 📖 TCP/IP 体系结构运输层中的两个重要协议
    • 📖 运输层端口号、复用与分用的概念
    • 📖 UDP 和 TCP 的对比
    • 📖 TCP 报文段的首部格式
    • 📖 "三报文握手"建立 TCP 连接
    • 📖 "四报文挥手"释放 TCP 连接
    • 📖 TCP 的流量控制 (Flow Control)
    • 📖 TCP 的拥塞控制 (Congestion Control) 及与网际层拥塞控制的关系
    • 📖 TCP 可靠传输的实现
    • 📖 TCP 超时重传时间 (RTO) 的选择
    • 📖 TCP 的选择确认 (SACK)
    • 📖 6.1 应用层概述
    • 📖 6.2 客户—服务器方式和对等方式
    • 📖 6.3 动态主机配置协议 DHCP
    • 📖 6.4 域名系统 DNS
    • 📖 6.5 文件传送协议 FTP
    • 📖 电子邮件
    • 📖 万维网 WWW
    • 📖 网络安全概述
    • 📖 密码学相关基本概念
    • 📖 对称密钥密码体制
    • 📖 公钥密码体制
    • 📖 报文摘要和报文鉴别码
    • 📖 数字签名(digital signature)
    • 📖 实体鉴别
    • 📖 密钥分发
    • 📖 访问控制
    • 📖 网络体系结构各层采取的安全措施—物理层和数据链路层
    • 📖 网络体系结构各层采取的安全措施—网络层
    • 📖 网络体系结构各层采取的安全措施—运输层
    • 📖 网络体系结构各层采取的安全措施—应用层
    • 📖 防火墙访问控制与入侵检测系统
    • 📖 常见的网络攻击及其防范
    • 📖 定长子网划分和变长子网划分的二叉树解法

课程笔记:DDoS 分布式拒绝服务攻击原理与防护

课程名称:计算机网络应用 核心摘要:本讲围绕 DDoS(分布式拒绝服务)攻击展开,讲解其利用底层协议漏洞、通过僵尸网络放大请求耗尽服务器资源的攻击原理;重点剖析基于 TCP 三步握手的 SYN Flood 攻击机制、半连接耗尽过程及重试时间开销,并介绍 Cookie 源认证与 Reset 重置认证两种主流防护方案,最后说明 DDoS 防护的产业现状与局限。

一、 核心概念与原理

1.1 DDoS 攻击定义

  • DDoS(Distributed Denial of Service,分布式拒绝服务):将正常的请求放大若干倍,通过若干个网络节点同时发起攻击,使目标服务器承受不住而拒绝服务。
  • DoS(Denial of Service,拒绝服务):单点发起的拒绝服务攻击;DDoS 是其分布式升级版,依靠规模效应。
  • 本质:利用看似合理、实则不合理的请求,借助底层协议漏洞造成服务器资源过载 / 资源耗尽,导致服务不可用。
  • 任何服务器的并发连接数、CPU、内存都是有限的,攻击者以海量合法请求占满资源后,正常用户请求将被拒绝。

1.2 生活化类比

类比对象对应含义
停车场 100 个车位服务器有限的连接资源
车位停满资源耗尽
后续车辆无法进入正常请求被拒绝服务(DoS)

1.3 攻击执行链路

  1. 黑客通过木马程序入侵大量主机,将其控制为肉鸡。
  2. 由大量肉鸡组成僵尸网络(Botnet),大型僵尸网络可达数万至数十万台设备。
  3. 黑客操控僵尸网络中所有设备,以最大负荷报文同时向目标服务器发送请求。
  4. 服务器资源在极短时间内被耗尽,无法再处理正常请求。

历史案例:2000 年代初期,百度曾遭受僵尸网络攻击,连续数小时无法对外提供服务。该方法原始但有效,直接耗尽资源,难以彻底处理。

二、 技术细节与协议分析

2.1 DDoS 攻击分类

DDoS 是一个大类,按所利用的底层协议不同细分为:

攻击类型所属协议说明
SYN FloodTCP历史上影响最严重,利用 TCP 三步握手漏洞,防护困难
UDP FloodUDP基于 UDP 协议发起的洪水攻击
ICMP FloodICMP基于 ICMP 协议发起的洪水攻击

重点:基于 TCP 的 SYN Flood 是影响最严重、最典型的 DDoS 攻击方式,本讲重点剖析。

2.2 SYN Flood 攻击原理

攻击利用 TCP 三步握手机制

握手步骤正常流程SYN Flood 攻击流程
第一步客户端发送 SYN, SEQ=X攻击者伪造源 IP 发送 SYN 请求建立连接
第二步服务端回复 SYN+ACK, SEQ=Y, ACK=X+1服务端回复 SYN+ACK,等待客户端确认
第三步客户端回复 ACK, ACK=Y+1,连接建立伪造源 IP 不做任何回复,连接停留在半连接状态

半连接与重试机制的关键参数

  • 半连接:未完成三步握手的连接。攻击者发送大量伪造源地址的 SYN 请求,服务器为每个半连接消耗 CPU、内存、时间 资源。
  • 重试机制:TCP 作为可靠协议,服务端未收到响应会自动重试,默认重试 5 次。
  • 重试时间间隔:每次间隔为上一次的 2 倍(指数退避)。
重试次数等待时间
第 1 次1 秒
第 2 次2 秒
第 3 次4 秒
第 4 次8 秒
第 5 次16 秒
第 5 次发出后额外等待32 秒
合计约 63 秒
  • 半连接总数上限:1024 个。在极短时间内,服务器的半连接资源即被完全耗尽。
  • 后果:半连接资源耗尽后,服务器无法再对正常请求发起三步握手,新的合法请求被直接拒绝 → 拒绝服务。

为什么 SYN Flood 难以根治

  • 漏洞源于 TCP 协议本身,属于协议级漏洞,无法通过单方面修补解决。
  • TCP 是整个互联网的基础协议,牵一发动全身;市场上几乎所有互联网设备均已支持现有 TCP 协议,升级修补是一个缓慢过程。
  • 仅靠单一企业之力难以彻底解决,但防护思路是存在的。

2.3 SYN Flood 防护方案

主流防护思路:在客户端与目标服务器之间插入 DDoS 防护系统(中间层),由防护系统代理完成握手验证,验证通过的真实客户端加入白名单后才能与 Server 通信。

[客户端/攻击者]  <-->  [DDoS 防护系统]  <-->  [目标 Server]

方案一:Cookie 源认证

步骤报文字段值
① 客户端发起握手SYN, SEQ=X—
② 防护系统回复SYN+ACKSEQ=cookie,ACK=X+1
③ 正常客户端回复ACKACK=cookie+1(正确响应)
③' 伪造源地址无任何回复—
④ 验证结果回复正确 → 加入白名单,允许访问 Server不回复 → 丢弃,不加白名单

方案二:Reset 重置认证

步骤报文字段值
① 客户端发起握手SYN, SEQ=X—
② 防护系统回复(故意错误)SYN+ACKSEQ=Y,ACK=cookie(ACK 应为 X+1,此处故意错误)
③ 正常客户端发现确认号错误发送 RST(Reset) 重置报文SEQ=cookie+1
③' 伪造源地址无任何回复—
④ 验证结果发送 RST → 说明是真实客户端 → 加入白名单不回复 → 丢弃

两种方案对比

对比项Cookie 源认证Reset 重置认证
验证方式期望客户端回复正确的 ACK期望客户端发现错误并回复 RST
第二步 SEQ 值cookieY
第二步 ACK 值X+1(正确)cookie(故意错误)
客户端预期响应ACK = cookie+1RST, SEQ = cookie+1
核心思想验证客户端是否为真实有效客户端同左
通过验证后加入白名单,可与 Server 通信同左

共同本质:无论哪种方案,都是验证客户端是否为真实有效的客户端;真实客户端加入白名单后与 Server 通信,否则丢弃。等同于在 Server 外层加了一道防火墙 / 防护层。

三、 实践应用与配置命令

3.1 产业级防护实践

  • 阿里云等云厂商推出抗 DDoS 产品,本质是在服务前置入防火墙/防护层。
  • 对抗 DDoS 产品中一般综合使用多种算法,结合攻击情况对流量进行流量清洗——清洗目的即洗掉攻击者流量。

3.2 DDoS 防护的局限与应对

现状说明
仍是业内难题当攻击流量超出网络设备(含 DDoS 防护系统)承载上限时,防护系统本身崩溃,Server 随之瘫痪
大厂"能扛"的真相阿里、京东级别站点靠充足带宽和海量集群分散压力,并非协议层面真正解决
攻击流量规模实际 DDoS 攻击流量可达 G 级甚至数十 G,若无硬件负载均衡则直接崩溃
终极应对仅靠自身无法防御,需与网络运营商合作,共同完成 DDoS 流量清洗与牵引

学习定位:DDoS 底层攻防属复杂课题,本讲仅限理论层面讨论。实际防护方案多采购现成产品,企业几乎不可能自行实现协议级防护。本讲是为后续 CC 攻击(应用层 DDoS) 做铺垫,同时拓宽安全防护(安防)知识储备。

四、 重点与难点提示

  • 考点 1:DDoS 与 DoS 的区别——分布式与规模效应;DDoS 依赖僵尸网络 / 肉鸡。
  • 考点 2:DDoS 本质——利用看似合理实则不合理的请求,借助底层协议漏洞造成资源耗尽。
  • 考点 3:SYN Flood 利用 TCP 三步握手,伪造源 IP 制造半连接,半连接上限 1024。
  • 考点 4:TCP 重试机制——默认 5 次,间隔指数退避(1+2+4+8+16 秒 + 末次等待 32 秒 ≈ 63 秒)。
  • 考点 5:两种防护方案的核心区别——Cookie 源认证回复正确 ACK 期待正确回应;Reset 重置认证故意发错误 ACK,期待客户端回 RST。
  • 易错点:防护系统的 SEQ 与 ACK 取值在两种方案中正好相反,勿混淆。
  • 难点:为何 SYN Flood 难根治——协议级漏洞,TCP 是互联网基石,升级牵一发动全身。
  • 面试题:简述 SYN Flood 攻击原理及两种主流防护方案的差异。

五、 课后疑问/遗留问题

  1. UDP Flood 与 ICMP Flood 的攻击原理与防护方案分别是什么?(本讲未展开,待补充)
  2. 反射放大攻击(如 NTP 放大、DNS 放大)与 SYN Flood 的区别与联系是什么?
  3. 黑洞路由作为 DDoS 应急手段是如何工作的?与流量清洗的差别?
  4. CDN 防护 / 云防护如何缓解 DDoS?其与本地 DDoS 防护系统的分工边界?
  5. 后续课程将进入 CC 攻击(应用层 DDoS) 与 IP 黑白名单 防护方案,注意其与本讲网络层 DDoS 的层次差异。
最近更新: 2026/6/23 17:18
Contributors: yangwenguang
Prev
课程笔记:访问控制与权限访问漏洞
Next
课程笔记:CC(Challenge Collapsar)攻击与防护