Page 231 - 《软件学报》2020年第12期
P. 231

鲁宁  等:联盟模式下高效单包溯源方法研究                                                            3897


                                                 ⎛   − ⎞  nk  k
                                                   − ⎜
                                              P =  ⎜  1e  m  ⎟  ⎟                             (8)
                                                 ⎝      ⎠
         其中,n 为插入布鲁姆过滤器的元素个数,k 为哈希函数个数,m 为该布鲁姆过滤器存储容量.很明显,P 的大小取
         决于 k,n 和 m.
             •   首先分析 k.本文依据路由器的计算性能和最大并行度来设置 k 的数量;
             •   然后分析 n.因误报率会随着 n 的增长而迅速变大,故本文只考虑最坏情况,即插满布鲁姆过滤器.
                                                                       I
             假设某布鲁姆过滤器的掩码长度为 I≤32,那么它插入元素的最大数量为 2 ,所需匹配的最大 IP 地址数量为
         2 32−I+1 .已知布鲁姆过滤器 i 插满时误报率为 P i ,任给一个 IP 包,只有 32 个布鲁姆过滤器的查询结果全部准确,
         最终结果才会正确,PCBF 的精确度 E total 为
                                             E total  =  32 1 (1 p− ∏  i )                    (9)
                                                    i=
             基于此,本节主要研究如何最小化布鲁姆过滤器集的误报总数,也就是:
                                        max(1−p 1 )×(1−p 2 )×…×(1−p 32 )                     (10)
             根据定理 1 可知:只有满足 P 1 =P 2 =…=P 32 ,误报总数才会最小.若想达到取等号的条件,各布鲁姆过滤器的存
                         i−1
         储容量需满足 m i =2 ×m 32 .进一步考虑到 m 1 +m 2 +…+m 32 =M,根据等比数列求和,可得:
                                        m =  2 31 i−  ×  M  ,m =  M                          (11)
                                          i
                                                            32
                                                 2 − 1  32  2 − 1
                                                  32
             这也就是说,只要满足公式(11),即按照公式(11)为布鲁姆过滤器分配存储容量,就可获得最小误报期望.
             在联盟构建初期,各个布鲁姆过滤器不可能全部插满元素,因此本文提出两种分配策略:动态分配和静态分
         配.前者以 m 32 存储空间为初始分配值,每插入一个元素就增长一个存储空间,因此其空间利用率较高,但误报率
         较大;后者直接以计算得出的比例依次为不同布鲁姆过滤器分配存储空间,特点是误报率低,空间利用率也低.
             定理 1.  当 P 1 =P 2 =…=P 32 时,公式(10)就会成立.
                                                                           1/n
             证明:已知 1≥P i ≥0,根据算术几何均值不等式:[(a 1 +a 2 +...+a t )/n]≥(a 1 ×a 2 ×...×a t ) ,当且仅当 a 1 =a 2 =...=a t 等
         号成立.基于此,当(1−P 1 )=(1−P 2 )=…=(1−P 32 )时,公式(10)成立.                                     □
         3    性能评价

             为了验证提出的 TIST 方法,本文进行了理论分析和仿真实验,其中,第 3.1 节将使用理论分析来证明方法的
         可部署性,第 3.2 节则通过基于真实网络拓扑的实验仿真来补充分析结果,第 3.3 节重点讨论大规模部署时方法
         的优势以及可能存在的问题.
         3.1   理论评估
                                                                      [8]
             本节将使用数学方法来比较分析 TIST 与经典单包溯源方法(包括 HIT ,SEE                     [12] 等)的性能指标.重点是那
         些第 2.2 节提出的非功能、可测试指标(例如高效性、高精度),至于功能性指标(例如松耦合、动态扩展),我们
         在方法论述过程中就已说明.根据第 2.1 节所述,TIST 方法被划分为控制层和数据层:前者承担溯源联盟构建,
         而后者承担链路指纹建立和攻击路径回溯.在构建溯源联盟过程中,联盟注册服务器和各成员域的控制器既需
         要彼此之间频繁通信,又需要各自记录成员信息.
             基于此,我们重点评估控制层的通信开销(communication overhead for  tracing-alliance establishment,简称
         CTE)和存储开销(storage overhead for tracing-alliance establishment,简称 STE).此外,TIST 部署激励性(incentive
         for deployment,简称 IDP)的提高,是因构建溯源联盟而造成的,因此,相关评估也在这一部分.
             在链路指纹建立过程中,溯源路由器既需要提取指纹,也需要记录它们,故我们主要评估它的存储开销
         (storage  overhead for fingerprint establishment,简称 SFE)和处 理开销 (processing overhead for fingerprint
         establishment,简称 PFE).
             在攻击路径回溯过程中,各成员域控制器需要提取和匹配若干溯源路由器上的指纹,而匹配又存在误报率
   226   227   228   229   230   231   232   233   234   235   236