Page 430 - 《软件学报》2025年第8期
P. 430
武文浩 等: 可编程数据平面 DDoS 检测与防御机制 3853
销及 DDoS 攻击检测与防御机制的响应时间, 同时, 与 Jaqen 机制和基于远程服务器的流量采集方法进行对比. 实
验结果中还提供了当可编程数据面仅作转发功能时的数据包处理时间作为参考. 对于单个数据包的处理时延, 本
文所提出机制在入口流水线中占用 225 个时钟周期, 在出口流水线中占用了 163 个时钟周期, 相比于 Jaqen 机制,
在数据面中引入了 60 个时钟周期的额外处理时间; 相比于仅作转发的 P4 程序, 引入了 163 个时钟周期的额外处
理时间. 在频率为 150 MHz 的可编程交换机中, 单个数据包的处理时间增加了约 0.41–1.09 μs. 由于 Tofino 可编程
交换机中采用流水线实现所编写逻辑, 当不发生回环时, 无论所实现功能如何, 均能以线速处理数据包, 本文中所
提出机制的部署不会对可编程交换机的吞吐率产生影响.
0.6
窗口大小 10 000
0.4
0.2
0
0.6
窗口大小 1000
0.4
假阳性
0.2
0
0.6
0.4 窗口大小 90 000
0.2 假阴性
0
0 1 000 000 2 000 000 3 000 000 4 000 000 5 000 000 6 000 000 7 000 000 8 000 000 9 000 000
数据包数量
图 20 不同观察窗口大小对应的源目地址熵值差
表 5 DDoS 攻击检测开销
入口流水线处理 出口流水线 处理 单个数据包处理 控制面处理 DDoS检测延时 DDoS检测延时 每窗口通信量
资源类型
周期 (cycles) 周期 (cycles) 时间 (μs) 时间 (ms) (447 Kpps) (ms) (150 Mpps) (ms) (KB)
本文机制 225 163 2.59 - 67 0.20 0
Jaqen 160 168 2.18 116 138 116 0.1
流量采集 57 168 1.50 162 183 162 340
仅转发 57 168 1.50 - - - -
在 DDoS 攻击检测速度的评估上, 网络中第 1 个包含 DDoS 攻击数据包的窗口出现至 DDoS 攻击防御机制部
署到数据面的时间视为 DDoS 检测延时. 本文中所提出的机制完全基于可编程数据平面实现, 无须控制面参与
DDoS 攻击检测流程, 其 DDoS 检测延时即为 3 个观察窗口通过交换机的时间, 与数据包的通过速率有关, 当数据
包通过可编程交换机的速率为 447 Kpps 时, DDoS 检测延时约为 67 ms. 在 Jaqen 机制中, 完成一个观察窗口的数
据包检测后需要使用控制面程序查询相应计数器完成攻击检测, 其中控制面处理时间约为 116 ms, 当数据包通过
可编程交换机的速率为 447 Kpps 时, DDoS 检测延时约为 138 ms. 在基于流量采集并在远程服务器进行攻击检测
的实现方案中, 控制面处理时间约为 162 ms, 当数据包通过可编程交换机的速率为 447 Kpps 时, DDoS 检测延时
约为 183 ms. 同时, 由于将数据包的头部信息采集至数据平面, 这种部署方式在检测过程中, 每窗口均引入了较大
的数据平面与控制平面之间的通信开销. 随着网络中数据包发送速率的增大, 数据平面中一个观察窗口的通过时
间会进一步减小, 而 Jaqen 和流量采集方法由于依赖控制面程序参与检测机制, 其控制面处理时间将会成为检测
时间瓶颈. 如表 5 所示, 当数据包发送速率达到 150 Mpps 时, 本文中提出的检测机制的检测延时相较于对比机制
更加明显.
与对比机制 Jaqen 相比, 本文所提出的机制具有更小的 DDoS 检测延时和更小的每窗口通信量. 当网络吞吐
量达到 150 Mpps 时, 一个观察窗口通过交换机的时间约为 0.07 ms, 由于本文所述机制完全在可编程数据平面上
部署, 能够实现与网络吞吐量完全匹配的检测性能, 可以在 3 个时间窗口的时间内 (0.20 ms) 检测 DDoS 是否发生.

