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  是否发生.
   425   426   427   428   429   430   431   432   433   434   435