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

3894                                Journal of Software  软件学报 Vol.31, No.12, December 2020

                          第1阶段:插入            布鲁姆过滤器              第2阶段:匹配
                                         掩码:/18  1   r
                                                 3        H 1(b 1)
                                      H 1(P AS1)
                                                 2        H 2(b 1)
                                      H 2(P AS1)  0               b 1=198.3.13.28/18
                                        ...      ...       ...
                                      H k(P AS1)  1       H k(b 1)
                                                 2
                                                 /21       ...
                                        ...
                                                 0   r
                   自治域前缀全集
                 P AS3=198.1.3.0/24   H 1(a 1)   0 1      H 1(b 2)
                    P AS4=198.1.128.0/25                  H 2(b 2)
                                      H 2(a 1)   1                b 2=198.3.13.28/21  到达包目的地址
                   联盟成员前缀集              ...      ...       ...                     198.3.13.28
                   P AS1=198.3.0.0/18  H k(a 1)           H k(b 2)
                   P AS6=198.1.1.0/24            1
                        ...
                                                 0
                                                 /24       ...
                                        ...
                                                 3   a
                                      H 1(P AS6)  1       H 1(b 3)
                                                 0
                                      H 2(P AS6)  0       H 2(b 3)  b 3=198.3.13.28/24
                                        ...                ...
                                                 ...
                                      H k(P AS6)          H k(b 3)
                                                 3
                                                 1
                          第1阶段:插入            布鲁姆过滤器              第2阶段:匹配
                     Fig.6    Traceability packet classification based on Bloom filter (from Fig.1 and Fig.3)
                              图 6   基于布鲁姆过滤器的溯源分组识别(源于图 1 和图 3)

         2.3.1    成员前缀数量优化
             随着联盟扩张,成员前缀集 P={p 1 ,p 2 ,…,p n }规模会越来越大,这就意味着需要压缩到布鲁姆过滤器的元素
         也越来越多,从而产生较大的查询误报率,这会使得更多的非联盟成员被误认为联盟成员,再次引发搭便车问
         题.基于此,若在不影响溯源对等关系的前提下优化成员前缀数量,就能有效地降低误报率.所谓成员前缀优化
                                                                                     −
         其实就是 IP 地址聚合问题,而后者会产生聚合误报率 g.给定成员前缀集 P 以及非成员前缀集 P ,∀ip,ip∈ sub P⇔
               −
         ip∉ sub P ,求解能覆盖 P 所有元素但不产生任何聚合误报率的网络前缀.本文将该问题形式化为
                                         Object    ∑  g  x  =  0                              (4)
                                                 prefix  prefix  prefix
                                                        1, ip ∈
                                      s.t.   ∑     x   =∀       P                             (5)
                                               ∈
                                            prefix :ip prefix  prefix  sub
                                           x prefix ∈{0,1},∀prefix⊆Ω                          (6)
         其中,公式(4)表明优化目标,公式(5)表明每个成员前缀有且只能被选择一次,公式(6)表明决策变量的取值范围.
             定义 12.  决策变量 x prefix ∈{0,1},若 Prefix 被选中,x prefix =1;反之,x prefix =0.
                                  =
             定义 13.  聚合误报率 g   prefix ∑ ip prefix (w ip ) .w ip 是一种符号函数,若 ip∈ sub P,w ip =0;反之,w ip >0.
                                       ∈
                                                             −
                                                                                      −
             定义 14(前缀压缩树).  给定成员前缀集 P 和非成员前缀集 P ,前缀压缩树可表示为 PC(P,P ),它具备以下
         特征:
             1)   完全二叉树;
             2)   非叶子节点的左孩子链接为 0,右孩子链接为 1.
             我们在前期工作中已经证明,IP 地址聚合优化问题满足最优子结构和子问题重叠两个特征,故可采用动态
         规划方法来求解      [13] .最直接的动态规划算法求解过程如下.
             •   首先,聚合 P 中任意两种元素,并求得它所产生的误报率;
             •   其次,挑选出所有误报率为 0 的聚合,将它的两个操作元素从 P 中删除;
   223   224   225   226   227   228   229   230   231   232   233