Heterogeneous Flow Table Distribution in Software-Defined Networks笔记

来源:互联网 发布:dll编程pdf 编辑:程序博客网 时间:2024/05/22 03:12

一、几个概念

  • homogeneous flow table:同构流表(策略)
    一个入口交换机应该执行相同的策略(ACL)——>由于TCAM容量限制,入口交换机的策略可以分配到由此导出的每条路径上——>为确保每条路径上的流都能匹配到规则,应该在每条路径上存贮相同的规则集(palette),这些被分割的相同的规则集就是同构流表。
    总结:流的需求一样——>所有流经过的路径规则集都一样

  • heterogeneous flow table:异构流表(策略)
    每条路径上可以存贮不同的规则集,即一块策略分割出的不同规则集(可以有重叠部分),那么这条路径只能经过特定(只能匹配到被分割的规则集)的流——>但是规则集变少了。
    总结:流的需求可以不一样——>不同流经过的不同路径的规则集可以不同

  • TCAMs:TCAMs是指交换机中一组小的TCAM片,可以存贮一个子表。——>①将子表的预定大小与TCAM片的容量绑定,即一个TCAM片相当于一个子表②一个TCAM(交换机)可以放多个子表

二、Rule partition and allocation

palette模型——>

一句话:将原始规则表分割成均等的C个子表,(其中图中最短路径的长度是C的上界)然后使用彩虹路径方法将子表放入交换机中,保证每条路径上都要有所有的子表

  • 分割:CBD算法,最小化最大子表,以使子表的规则数最少
  • 分配:贪心算法,首选占有最多路径的节点用颜色c进行染色,直到每条路径都染上了颜色c,然后进行下一次迭代。但是一个交换机只放入一个子表。

本篇论文的模型——>

1、Rule partition 规则分割

将策略分割成预定数量的、规则不相交的子表。这里的意思就是对规则集进行分类。新概念:子表——>same sub-table(相同子表,下面有解释)。

  • 和Palette的分割算法比较:
    • 不同: 这里的预定数量自定义,不是最短路径的节点数
    • 相似:对于有依赖关系的规则,也采用CBD算法分割
  • same sub-table(相同子表):这里子表中的规则属性满足下面三个条件就放在一起(分类标准)——>
    • Policy:规则都服从子策略p。首先相同的规则集Sp,有|Sp|个规则(|Sp|>|sub-table|),z是预定的子表大小——>则表示有Sp/z个子表
    • Dependency:最好将有依赖关系的规则放入同一个子表,以节约规则空间
    • Popularity:受欢迎度。
      ①对于子策略P,衡量标准是会有多少流匹配到P;②对于交换机,衡量标准是会有多少流经过交换机;③合理的情况是高欢迎度的交换机存贮高欢迎度的子策略
  • 可以将不相交的、但是欢迎度相似的规则放在一起,在一个子表中。
  • 默认规则即转发规则,优先级最低。

具体伪代码——>
这里写图片描述

——>得到的这些子表可以看成是一种颜色。这里的子表数大于一条路径中交换机个数。数如何将子表放入一条路径的交换机中呢(一个交换机可以放多个子表)?即如何染色呢?


2、Rule allocation 规则分配

——>首先,我们补充下染色问题。

(0) coloring Algorithm 染色问题

图的染色问题是图论中的一个经典难题,是著名的 NP-完全问题之一。内容包括点染色、边染色、全染色、组合地图的面染色等。

我们主要介绍顶点染色。给定图G = (V, E),设顶点集V(G) = { v1,v2,…,vn},则其点染色是指将图G中顶点集V(G)中的每个元素进行染色,顶点全部染色之后,要求使每个邻接顶点的颜色不同。并希望最小化颜色数。

本篇论文应用的就是顶点染色的Welsh-powell 染色算法。

1)贪心染色法

思想是首先用第一种颜色对图中尽可能多的顶点染色,然后用第二种颜色对余下的顶点中尽可能多的顶点进行染色,以此类推,直到把所有的顶点都染色完毕,而且使图中任意两个顶点的染色都不同。

优缺点:贪心算法染色最重要的一个优点是简单、方便、有效,在求解最小色数的近似解时不失为一种好的算法。但是它的缺点是该算法不能从问题的全局考虑作出最佳选择,只能从问题当前的状态考虑作出当前看似最佳的选择,而且一旦该算
法作出选择则不能更改。

2)Welsh-powell 染色算法(穷举法)

步骤:

  1. 将图 G 中的顶点按度数从大到小(即递减的次序)进行排列(相同度数的顶点排序可以随意)。
  2. 把第一个顶点染上第一种颜色,紧接着按步骤( 1)中排列的次序对与第一个顶点不相邻的顶点染上同一种颜色,即第一种颜色。
  3. 用剩下的颜色继续对步骤( 1)已排序顶点中尚未染色的顶点及与其不相邻 的顶点染色,直到图中所有的顶点都被染色。

例:
这里写图片描述

  • 图中各顶点按度数大小排列,排列的结果是 C、A、B、F、G、H、D、E。
  • 第一种颜色:CAG,第二种颜色:BHDE,第三种颜色:F,即x(G) = 3。

优缺点:Welch-powell 染色算法跟贪心染色算法一样是一种较为简单、方便、有效的方法。但是跟贪心算法比较,Welch-powell 算法可以得出最优解,但是在这里有一个疑问:当顶点度数排列唯一时,这个算法得出的解是最优解,但如果顶点度数的排列不唯一时,染色的方法不固定,这个算法的解会不会是整体最优解是不确定的。


染色问题中每个顶点都是相互平等。但是规则分配中因为还有交换机TCAM组的约束,子表(顶点)不是平等的。染色问题不能直接运用到规则分配中。需要先构造染色模型。

——>路径P分为以下两种情况讨论:

(1)路径中没有共享交换机

这是最简单的情况,路径中没有共享的交换机。我们首先分析网路拓扑中只有一条路径。

对于一条路径Pi,有Ni个交换机。怎么存放ti个子表呢(ti>Ni)?——>为了保持交换机对规则的负载均衡,均匀分配子表,每个交换机Si至少要存放Li=ti/Ni个子表。——>染色问题的变形。

这里写图片描述

几个概念:

  • ti:路径Pi上需要存放的ti个子表。
  • α-clique:α表示策略中所有的子表数。represented clique,这里称为路径Pi的团体,代表一条路径Pi可能有的总子表,用于构造染色问题,代表染色问题的所有颜色。
  • auxiliary nodes,辅助节点:α − ti的节点,用做染色问题的约束节点。
  • Li应是一个整数。若计算后不是整数,则在路径Pi随机取一个交换机节点放入⌈Li⌉子表(向上取整),剩下的节点放入⌊Li⌋子表。

如上图,加入这么多实线的意思就是抽象成染色问题的约束条件:一条路径(团体C)中的相邻节点不能染同样的颜色,即在一条路径中一个颜色(子表)只能放一个。加入辅助节点,这里等同于规定了颜色的数量。

上图完成对一条路径的染色问题构造Clique construction (α, pi)。


(2)路径中有共享交换机

上升到一般性问题。假设网络拓扑中有两条路径Pi,Pj,并且有一个共享交换机S1

问题的步骤:
这里写图片描述

  1. 对每条路径分别构造染色问题(Clique)
  2. 将构造好的所有路径进行整合
  3. 最后依次染色

——>我们下面对步骤一个个分析:

这里写图片描述

1)Clique construction (α, pi)

如上面路径无共享交换机问题的分析,首先计算出每条路径Pi的Li。然后构造Clique(染色问题)。

伪代码如下:
这里写图片描述

2)Integration (H, Ci)

——>两条路径有共享交换做为关节点,如何整合呢?

即在共享交换机中的找到各个路径中最小的Li,为共享子表节点。在每条路径中该节点可以分别染同一个颜色。节约了路径中的规则存放空间。

如图中Pi的Li为3,Pj的Lj为2,最小的L就为2,则整合后的共享节点为2。

伪代码如下:
这里写图片描述

3)Refinement

——>最后如何染色是问题的重点

概念:

  • invalid color:无效颜色。有效颜色还未染完,但是由于相邻的约束条件,不能在该节点染色。该颜色j>α。
  • valid color:有效颜色。该颜色j在α其中,j<α。

对共享节点进行染色会出现α个颜色中颜色k不能染,只能染上无效颜色。为什么未染色的共享节点不能染颜色k?

——>首先,k是两条路径中的相同颜色(子表)。其次,因为在C’中k已经被染色了。由于两条路径在染色问题模型中相邻,在C中就不能在染了,否则在C’中重复。

步骤:

  1. 先使用Welsh-Powell染色法把能染的有效颜色颜色先染上。
  2. 对未染色的共享节点染上无效颜色。
  3. 最后解决无效颜色问题,增加节点用有效颜色代替。

例:

这里写图片描述

  • 四条路径有共享交换机

这里写图片描述

  • 对每条路径构造染色问题

这里写图片描述

  • 先染上有效染色,在对未染色的节点染上无效颜色

这里写图片描述

  • 最后通过增加节点消除路径相邻,来消除无效颜色

——>问题:染色问题只说染颜色没有说可以先染哪种颜色?以更好的解决无效颜色问题


三、实验结果

(1)Rule partition

实验条件:假定50个交换机,每个交换机能存贮5个子表(TCAM),每个子表能存贮30个规则,每个规则6位。规则依赖、网络拓扑(路径)、流都是随机产生。

基准方法:参考Palette模型。分割时不管共享交换机,每条路径都必须放入所有的子表(策略)

1)随路径的增加

这里写图片描述

  • 一条路径中的子表数

这里写图片描述

  • 总子表数(需要TCAM的数量)

结论:

  • 基准方法随路径增加子表数增加,因为每条路径都要复制放入相应的子表;
  • 本篇论文的方法子表数不怎么增加。因为,路径增加,但是交换机不增加。随着路径的增加,许多交换机都成为共享交换机,则其实路径不需要增加子表。
  • 优势的原因是几条路径中只需一种子表,因为有共享交换机

(2)Rule replications

随着通配符规则的增加:

这里写图片描述

需要复制的规则数:

  • 本篇方法规则复制少的原因:把有依赖的一组规则放在同一个子表,只有当子表规则数太多时分割
  • 基线算法复制多的原因:直接分割,并且每条路径都要放置所有的 规则

(3)Rule allocation

这里的基线方法:参考Palette分配规则的q-greedy algorithm(q-贪心算法)。即依次将子表放入共享程度最大的交换机中。并且每条路径都要存储所有的子表。

衡量标准:平衡因子,1 − D/T

  • D:交换机存贮的最大子表数与另一个交换存贮的最小子表数之差
  • T:交换机能存贮的子表数
  • 越高说明子表数越平均

4种检测:

  • 随着最短路径的增加
  • 随着TCAM的增大(交换机能存放的子表数增大)
  • 随着流的增多
  • 随着交换机数量的增加

1)随着最短路径的增加

这里写图片描述

  • 总子表的变化

这里写图片描述

  • 平衡因子的变化

结论:

  • q-贪心法随着路径增加,共享交换机增多,所以总子表数减少。平衡因子接近于0的原因:不是均衡分配子表。而是贪心的。
  • 本篇算法在交换机中均衡分配子表,路径的增加不带来规则的变化,总子表数基本不变。

2)随着TCAM的增大(交换机能存放的子表数增大)

这里写图片描述

  • 总子表的变化

这里写图片描述

  • 平衡因子的变化

结论:

  • 贪心法总子表减少的原因: tcam增大,共享交换机可以存贮更多的规则
  • 本篇方法不变的原因:有很高的平衡因子,均匀分配在各个交换机 中

3)随着流的增多

这里写图片描述

  • 总子表数的变化

这里写图片描述

  • 平衡因子的变化

结论:

  • q-贪心法在每条路径存储了所有的子表,所以流增加时比较稳定。
  • 本篇算法流增加时需要新的子表对应,所以总子表数增加。

4)随着交换机数量的增加

这里写图片描述

  • 总子表数的变化

这里写图片描述

  • 平衡因子的变化

结论:

  • q-贪心法总子表增加。因为交换机增加,路径不变,则共享交换机减少,路径缺少共享交换机子表需要其他交换机复制子表。
  • 本篇方法保持稳定。总的子表数不随交换机数量的变化而变化。

四、引用:

  • Toupin, L., et al. “Heterogeneous Flow Table Distribution in Software-defined Networks.” IEEE Transactions on Emerging Topics in Computing 4.2(2016):252-261.
  • 梁政. “图染色问题应用研究.” (2017).
阅读全文
0 0
原创粉丝点击