Page 346 - 《软件学报》2021年第9期
P. 346

2970                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

                                      Table 1    INTEREST routing algorithm
                                          表 1   INTEREST 路由算法
                                     算法 1.  收到 INTEREST 包.
                                     1:   if  缓存未命中  and  未匹配到 PIT 表项  then
                                     2:     if  到达目标节点  then
                                     3:       转发至内容源
                                     4:     else
                                     5:       转发至哈希映射所得目标节点
                                     6:     end if
                                     7:   else
                                     8:     返回 DATA 包
                                     9:   end if
             表 2 中,节点收到 Data 数据分为两类:一类是普通的 Data,另一类是其他节点 RawCache 中替换出的内容重
         新组装成的 Data.若是普通 Data(第 14 行),则按照 RawCache 上采用的 On-path 缓存策略对其进行处理,同时,如
         果在缓存的过程中发生了内容替换,则节点将内容本身及其所对应的 PT 表项封装为新的 Data,转发至哈希映射
         所得目标节点,转发过程中的途经节点不再对其进行处理(第 12 行).当目标节点收到其他节点发送来的 Data 时
         (第 2 行),则将其缓存至 HashCache 中并按照公式(2)更新 PT 表项.HashCache 中替换出的内容会被移动至该节
         点的 RawCache 中,而不会直接丢弃.
                                        Table 2  DATA routing algorithm
                                            表 2   DATA 路由算法
                              算法 2.  收到 DATA 包.
                              1:   if Data 是 RawCache 中替换出的内容  then
                              2:     if  到达目标节点 and Data.popularity>min(PT.popularity) then
                              3:       if  该节点 RawCache 已有该内容  then
                              4:         移动至 HashCache and  更新 PT.popularity
                              5:       else
                              6:         缓存至 HashCache and  更新 PT.popularity
                              7:       end if
                              8:       if  替换掉了其他内容  then
                              9:         将替换出的内容移动至该节点 RawCache
                              10:      end if
                              11:    else
                              12:      转发至下一跳
                              13:    end if
                              14: else if  是普通 DATA 包 and  匹配到 PIT 表项  then
                              15:    执行 On-path 缓存策略处理该内容
                              16:    if  替换掉了内容 and hit>阈值  then
                              17:      将替换掉的内容连同所对应 PT 表项组装为 DATA 包
                              18:      直接转发至哈希映射所得目标节点
                              19:    end if
                              20:    转发普通 DATA 包至下一跳
                              21: end if

         3    仿真实验

             为了评估 CSTC 的缓存效果与性能,我们基于 ccnSim            [28] 设计实现了缓存仿真实验,将 CSTC 与多种现有缓
         存方案进行了对比分析实验,并探究了各缓存因素对缓存性能的影响.本节将从实验环境与配置、对比方案与
         性能指标、仿真结果与分析这 3 个方面详细阐述仿真实验与结果.

         3.1   实验环境与配置
             考虑到一个请求域的大小,我们选择了美国爱荷华州的一个真实拓扑结构                           [29] 作为仿真拓扑网络,该拓扑共
         有 30 个节点、38 条边.为了合理模拟真实网络状态,当内容在域内未命中时,我们设置的出域路由的请求跳数
         为 10 跳.每个节点都连接有一组用户,不间断地连续模拟发起内容请求,用户请求服从泊松分布.仿真实验中共
         有 100 万个不同的内容,我们假设内容整体上服从参数为α的 Zipf 分布,也就是说,排名第 k 的热门内容的请求
   341   342   343   344   345   346   347   348   349   350   351