Page 431 - 《软件学报》2025年第8期
P. 431
3854 软件学报 2025 年第 36 卷第 8 期
而 Jaqen 机制是一种依赖控制平面的 DDoS 检测系统, 数据平面仅负责网络流量信息的采集与存储, 当一个观察
窗口通过后, Jaqen 需要将所记录的信息上传至控制平面并做进一步的处理, 此时的数据-控制平面交互过程约为
116 ms, 这一交互时延远高于控制平面数据包的处理时延, 从而导致了 DDoS 攻击检测的性能受限.
与流量采集方法相比, 本文机制在可编程数据面上的完全部署能够实现更高的检测性能与更小的通信开销.
产生这一现象的原因是在传统的将流量信息转发至控制面或特定服务器进行处理的方式中, 数据-控制平面交互
过程产生了较大的延迟与通信开销. 同时, 该方法需要在每观察窗口结束后批量地处理数据包, 由于没有对流量信
息进行压缩和预处理, 该方法中的每窗口通信量与控制面计算时间明显大于其余方法, 从而导致 DDoS 攻击检测
性能受限.
为了进一步说明检测性能与观察窗口大小的关系, 我们在表 6 中列出了在数据包发送速率达到 150 Mpps 时,
不同观察窗口大小下的检测延时与通信量, 相比于对比方法, 本文的机制基于可编程数据平面的实现能够有效地
减小检测延时与通信开销. 与对比机制 Jaqen 相比, 本文机制在任意观察窗口大小中均有着明显的性能优势, 这一
现象的产生原因是, 在高吞吐量的网络中, DDoS 攻击检测时延的瓶颈在于控制面-数据面之间的交互时间, 而本文
机制能够完全部署在可编程数据面上, 避免了这一交互过程. Jaqen 中依赖控制面执行攻击检测, 虽然在高吞吐的
实验环境中数据面处理时间较小, 但控制面-数据面交互流程 (约 116 ms) 无法避免; 在流量采集方法中, 将流量信
息采集至控制面集中处理的方法也无法避免控制面-数据面交互流程, 同时, 由于没有对流量信息进行压缩和预处
理, 当需要处理的数据包数量增大时, 其攻击检测所需的计算时间随观察窗口大小明显增大.
表 6 观察窗口大小与 DDoS 攻击检测开销
观察窗口大小1k (150 Mpps) 观察窗口大小10k (150 Mpps) 观察窗口大小90k (150 Mpps)
窗口大小 DDoS检测延时 每窗口通信量 DDoS检测延时 每窗口通信量 DDoS检测延时 每窗口通信量
(ms) (KB) (ms) (KB) (ms) (KB)
本文机制 0.02 0 0.20 0 1.8 0
Jaqen 116 0.1 116 0.1 117 0.1
流量采集 17 34 162 340 1 630 3.06
以上结果说明本文所述的 DDoS 攻击检测与防御机制相对于现有的研究工作具有更好的实时性, 并且更适用
于高性能网络.
5.7 资源占用情况及分析
对于不同的 DDoS 攻击检测机制部署方式, 图 21(a) 记录了对应的控制面程序在控制面中的 CPU 资源占用情
况. 其中, 基于流量采集的 DDoS 攻击检测完全在控制平面部署; Jaqen 基于可编程数据面记录流量信息, 并使用控
制面进行攻击检测; 本文机制完全部署于可编程数据平面. 在进行攻击检测时, 基于流量采集的方法需要持续占用
控制面的计算资源对采集到的流量信息进行处理. Jaqen 控制平面定期向数据平面发起表项查询, 对控制面的
CPU 资源占用率周期性波动. 本文所述机制能够完全在可编程硬件上进行部署, 在启动时完成表项部署后无须控
制平面参与后续的 DDoS 攻击检测与防御, 能够有效地减少控制平面计算资源的占用.
与对比机制 Euclid 相比, 本文所提出的 DDoS 攻击检测机制能够适应可编程交换机硬件的计算与存储资源限
制. Euclid 与本文机制均使用 Sketch 算法用于熵值的计算与保存. 图 21(b) 针对熵值计算模块, 对比了本文机制与
Euclid 中 Sketch 的资源占用情况. 实验结果中展示了在不同存储资源占用下的熵值估计误差. 本文机制相比于
Euclid, 能够使用更少的存储资源, 保证相同的熵值估计误差. 同时, 本文所提出的 Sketch 轮换工作与副本保存能
够有效地适应可编程硬件交换机的计算模式, 而 Euclid 中的对应模块无法部署于真实的可编程交换机硬件上.
表 7 中展示了本文机制在可编程交换机中详细的资源消耗情况. 所述 DDoS 攻击检测与防御机制使用 P4 语
言实现, 并部署于基于 Intel-Tofino 交换芯片的可编程交换机上, 所设计的机制共占用可编程交换机中 11 级流水
线, 产生了 95 个表, 其中, 72 个表部署于入口流水线, 23 个表部署于出口流水线. 由于计算复杂且流程较长, 本文
所设计的机制需要占用较多流水线阶段, 但对于每一个流水线阶段, 该机制所占用的可编程交换机资源占比较小.

