目录

  • V. FASTRULE IN DIFFERENT TCAM LAYOUTS
    • A. Free spaces interleaved between non-free spaces
    • B. Free spaces in the middle
  • VI. Evaluation
    • 1) large size TCAM emulation:
    • 2)Data Set
    • 3) Finite size of TCAM
    • 4) Layout and algorithm
    • 5) Firmware time and TCAM update time
      • A.Firmware time: computing update sequence
      • B.TCAM update time: time of rule updates on the TCAM
      • C. The influence of cavg
      • D.TCAM layout with j free spaces in every i non-free spaces
      • E.Analysis

V. FASTRULE IN DIFFERENT TCAM LAYOUTS

A. Free spaces interleaved between non-free spaces

一般情况下,流表项会安排在TCAM的顶部或者底部,如下图:

这个架构称作original layout, 上面的讨论都是基于这种架构。
还有一些架构是,每j个流表项之间有i个空余空间,可以用来删除插入流表项,贪心算法的循环时间变成i.如下图。

如果中间的层都填满,那么循环时间会增加为Cmax, 所以需要调整移动流表项,这将造成额外的负担,我们在下一节会实验介绍。

B. Free spaces in the middle

还有一种架构是TCAM的流表项分成两部分一部分在顶部,一部分在底部,空余空间在中间。这种架构的插入删除操作也和其他不一样。

上图是一个例子说明这种架构可以减少流表项移动次数。
1)插入:
如果依赖关系fa->f->fb,如果fa, fb都是在顶部,或者都在底部,那么插入f就像以前的算法一样即可。否则将f插入到中间位置,我们需要选择插入到上面还是下面,定义一个阈值t, 上面的流表项数量mt, 下面的流表项数量mb, 如果mt-mb>t, 就把流表项插入到底部,反之顶部。
我们需要衡量Mt和Mb之间的差距,如果两者的差距小,流表项移动相对较少,但是维持的代价也增大。
另一个例子,如下图,插入多个连续流表项,导致很多额外的移动,解决方案就是每次插入流表项从连续的空间中每次随机选择。

2)删除
删除流表项比原来的设计更复杂,两种选择:

  1. dirty delete: 删除流表项,空余的空间可以留下来等新的流表项插入
  2. balance delete: 删除流表项,然后利用现在已存的流表项填补空间。

dirty delete这种方法使用的话就不是中间空余的设计方式了,这会浪费这个空余的空间。
balance delete如下入,我们要移动其他的流表项,这回带来负载。另外我们也需要平衡顶部和底部的流表项数量。

总结一共三种架构,①原始架构(流表项都在顶部或者底部)
② 每i个流表项中间有j个空余空间
③ 流表项分为两部分放在顶部和底部,这里又根据删除不同分为:dirty-delete, balance delete

VI. Evaluation

oNetSwitch上开展试验。

1) large size TCAM emulation:

NNETSwitch中TCAM尺寸很小,RuleTris通过在Linux服务器中模拟大型TCAM来解决此问题。在服务器中,他们在仿真的TCAM上评估其算法,并输出TCAM更新所需的TCAM移动次数–由于每次TCAM移动花费固定的时间量(0.6ms),因此它使用了TCAM移动总数TCAM移动的平均延迟时间,以估算TCAM更新时间。
我们也使用Linux服务器评估算法,但是它仅用于确保算法的正确性(通过检查仿真TCAM中的流条目是否在正确的物理地址中)。为了在ONetSwitch中模拟小尺寸的大TCAM(ONS-HW-TABLE-SIZE,在ONetSwitch中定义)TCAM,我们用(例如(I,f,A%256),ONS-HW-TABLE-SIZE=256)对原始地址进行取模,使用模地址进行更新。

2)Data Set

为了测试算法鲁棒性,使用了各种类型的流表 two from Access Control List (ACL4, ACL5), two from Firewall (FW4, FW5) and one from Routing Table 。
对于ACL4, ACL5, FW4, FW5 这四个表,使用ClassBench【1】生成配置,使用ClassBench-ng 【2】转化为openflow 流表项。
对于Route, 从CAIDA【3】下载L3的路由数据,使用ClassBench-ng【2】转化为openflow流表项。
这些流表的特点总结如表二。

数据集:对于250条流表项生成250条更新;500大小的流表生成500条更新;其他大小的流表生成1000条更新(1K ,2K, 4,10K, 20K)。

更新类型:①只有insert 操作。②既有insert 又有delete 操作。

3) Finite size of TCAM

TCMA size = exiting flow entries + insert flow entries
流表大小为:500, 1k, 1.1k, 2.1k, 4.1k, 10.1k, 20.1k

4) Layout and algorithm

FR-SB to indicate the separated layout with balance delete
FR-SD to indicate the separated layout with dirtydelete
FR-Otoindicatetheoriginallayout
RuleTris to indicate the dynamic programming algorithm in RuleTris
Na¨ıve to indicate the widely used insertion sort algorithm.

5) Firmware time and TCAM update time

firmware time, which is the time of computing the update sequence from a DAG-based or priority-based flow entry update in the switch firmware: the time is measured from when the computation starts till it is ready to apply the update sequence to the TCAM.
firmeware time:computing the update sequence
TCAM update time, which includes all update times when applying the update sequence to the TCAM: the time is measured from the TCAM updating start to the end
TCMA update time: flow entry move time

A.Firmware time: computing update sequence


分析:

  1. 插入排序在流表大于20k不在画出,因为需要一个半小时以上才可以运行结束。
  2. 插入排序明显要慢得多,10k大小的流表是我们算法的1000倍。
  3. RuleTris 比插入好,但是没有FastRule好
  4. 随着流表 尺寸增加,其他算法时间迅速增长,我们的算法还是很稳定。
  5. 只有insert, FR-SB和FR-SD时间相同,不画出。
  6. 更新只有insert, FR-SB稍微比较快,如果有插入和删除, SR-SB比SR-SD和FR-O慢一点。

B.TCAM update time: time of rule updates on the TCAM

  1. 首先可以看出在TCAMupdate上相对RuleTris没有提高,时间几乎相同。
  2. FR-SD比其他的算法相对较快,但是FR-SB慢,因为他需要挪动TCAM维持平衡。

C. The influence of cavg

  1. 12-a, 12-c图中,ROUTE 和FW4的Cavg是1.6, 1.7 比其他类型要大, 所以明显固件时间高。
  2. 12-a, 12-b图中平均时间FR-SB比FR-O小。
  3. 12-b,12-d两个图中时间似乎和Cavg并不是正相关,因为删除操作和Cavg不相关。
  4. 12-c,12-d图中FR-SB比FR-SD, FR-O慢,因为需要平衡删除操作。FR-SD是最快的操作。

D.TCAM layout with j free spaces in every i non-free spaces

  1. i相同的情况下,j越大更新时间越短。非空余空间的时间越多,那么新流表插入需要很少的移动。贪心算法的循环时间提高到i.
  2. 相同的J,i越大 TCAM的更新时间越大
  3. 另外除了J = 0, 其他情况随着流表增加,TCAM更新时间都骤减。说明这种架构比流表都放在顶部或者底部要好。


给出FastTule和RuleTris的固件时间对比:

  1. 随着流表尺寸增加,固件时间骤减(除了J =0)
  2. 在10K大小,RuleTris性能比FastRule, 因为BIT需要常量时间查询空余空间。
  3. j = 0仍然是最常用的场景,这也说明FastRule实际场景中仍然是最快的。

E.Analysis

  1. 原有的解决方案两层循环:

    首先遍历可用的地址:
    根据现有的地址更新移动的数量。
    时间复杂度O(N^2)。
    我们移动的时间复杂度是O(Cavg).

  2. 只有insert 操作, FR-SB相对较快

  3. 插入和删除一起,FR-SB是FR-O, FR-SD的两倍时间

  4. FR-SB 将流表分成两部分在top和bottom, 减小了Cmax 和Cavg, 降低固件时间,但是有删除操作FR-SB需要维持中间空余空间,增加了复杂。

【1】 D. E. Taylor and J. S. Turner, “Classbench: A packet classification benchmark,” IEEE/ACM Trans. Networking, vol. 15, no. 3, pp. 499– 511, 2007.
【2】J. Matouˇsek, G. Antichi, A. Luˇcansk`y, A. W. Moore, and J. Koˇrenek, “Classbench-ng: Recasting classbench after a decade of network evolution,” in Proc. IEEE ANCS, 2017, pp. 204–216.
【3】CAIDA,Center for Applied Internet Data Analysis. Accessed: 2018-0206. [Online]. Available: https://www.caida.org/home/

FastRule: Efficient Flow Entry Updates for TCAM-based OpenFlow Switches(二)相关推荐

  1. FastRule: Efficient Flow Entry Updates for TCAM-based OpenFlow Switches(一)

    目录 abstract Introduction background A. flow dependency B.Flow entry update in existing hardware swit ...

  2. A Zero Flow Entry Expiration Timeout P4 Switch

    文章名称:A Zero Flow Entry Expiration Timeout P4 Switch 零流表项期满超时P4交换机 发表时间:2018 期刊来源:SOSR ABSTRACT (摘要) ...

  3. 《Real-Time Rendering》第四版学习笔记——Chapter 9 Physically Based Shading(二)

    上接文章:<Real-Time Rendering>第四版学习笔记--Chapter 9 Physically Based Shading(一) 六.微观几何 每个可见的表面点都包含了很多 ...

  4. GRAIL Efficient Time Series Representation Learning论文阅读笔记(二)

    GRAIL Efficient Time Series Representation Learning 有效的时间序列表示学习 作者 芝加哥大学的John Paparrizos和Michael J. ...

  5. Openflow协议详解

    http://www.h3c.com/cn/d_201811/1131080_30005_0.htm# 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 .在SDN网络架构中,控制平 ...

  6. Efficient local alignment discovery amongst noisy long reads

    有效的局部比对发现在嘈杂的长读 Long read sequencers portend the possibility of producing reference quality genomes ...

  7. 支持tcam的服务器,一种支持TCAM规则更新和压缩方法.doc

    一种支持TCAM规则更新和压缩方法 一种支持TCAM规则更新和压缩方法 收稿日期 基金项目:国家科技支撑计划资助项目(2012BAH09B02):长沙市重点科技计划资助项目(K1204006111) ...

  8. 支持tcam的服务器,一种支持TCAM规则更新与压缩方法.doc

    一种支持TCAM规则更新与压缩方法 收稿日期 基金项目:国家科技支撑计划资助项目(2012BAH09B02):长沙市重点科技计划资助项目(K1204006111) 作者简介:蔡立军(1964-),男, ...

  9. Linux flow offload提高路由转发效率

    凡是正确的东西,该来的最终还是会来的. (当然了,经理可能也有同感.) 来看看几年前我写的文章: 利用nf_conntrack机制存储路由,省去每包路由查找: https://blog.csdn.ne ...

最新文章

  1. 风格化手绘纹理包 CGTrader – Stylized Mix Vol. 41 – Hand Painted Texture Pack
  2. 【大牛疯狂教学】java程序员大专找不到工作
  3. 管理文库]我喜欢的10个经典管理学定律点评
  4. CSDN修改博客皮肤模板
  5. vue表单中批量导入功能_spring boot mybatis+ vue 使用POI实现从Excel中批量导入数据
  6. python对英语的要求_英语和数学都不好,但是我想学Python编程可以吗?
  7. 5-11attention网络结构
  8. Redmi K50系列年后登场:最高搭载天玑9000+2K直屏
  9. 卡耐基梅隆大学计算机熬夜,卡耐基梅隆大学:作为一所CS牛校,我也很无奈啊...
  10. python一只青蛙一次可以_Python面试题系列之11 变态青蛙跳
  11. Win7下安装Ubuntu16.04成双系统
  12. 存储过程和存储函数的关系及使用方法
  13. 集中隔离第17天2022.3.13
  14. OpenGL学习04_点画模式(点画线)
  15. 9343拆机 xps13_戴尔(DELL)XPS 13 XPS13D-9343-1808T超极本拆解图评测-ZOL中关村在线
  16. [计算机网络]各种时延的计算
  17. 学校计算机机房应急预案,中心机房应急预案管理制度
  18. 刘浩林的博客园初体验
  19. ylmf os安装小心丢失系统
  20. 含泪整理最优质窗帘 落地3d模型素材,你想要的这里都有

热门文章

  1. 前端学习——HTML(一)
  2. 【推荐系统多任务学习 MTL】PLE论文精读笔记(含代码实现)
  3. R语言多重比较示例:Bonferroni校正法和Benjamini Hochberg法
  4. WLAN@Wi-Fi
  5. python学习-reshape()函数理解
  6. 关于双目立体视觉的一些总结(一)
  7. 欧拉中的俯仰、横滚、偏航角
  8. CIPP翻转内衬法整体修复技术简介
  9. python中的除法、取整和求模_python中的除法,取整和求模-Go语言中文社区
  10. Linux iperf 用法介绍