通过上文的OFFICER模型的启发式算法,我们得到了一个优化的流矩阵A(|F|-by-|L+| binary matrix)。但是对于一个大型的网络拓扑,流矩阵A的规模将十分巨大,无法实际处理。同时TCAM节点的容量有限。——>如何减少A的规模呢?
网络中的流可以分为两种:
- small flows :老鼠流。流量(流的大小)小,但是数量多
- large flows:大象流。流量大,但是数量少。
为此,我们可以只考虑大象流,即将重要的大象流放入流矩阵A中处理,而将数量众多的老鼠流交给控制器处理,默认转发。
With thousands of servers, if flows are defined by their TCP/IP 4-tuple, the matrix can be composed of tens of millions of entries.
A way to reduce the size of the allocation matrix is to ignore the small flows that, even if they are numerous, do not account for a large amount of traffic and can hence be treated by the controller.
本文的作者在此基础上继续优化模型,提出了aOFFICER模型。
——>该模型是被动放置问题
online ORPP, in which the set of flows is unknown and varies over time.——>reactive approach
——>核心思想:
aOFFICER, that can detect the important, large flows and install rules for them on appropriate paths.
其思想分为两个部分:
- how rules are chosen 怎么区别合适的大象流?
- how rules are installed 怎么安放对应的规则?
how rules are installed ?
首先我们看下aOFFICER模型怎么安放规则的。
这里有三种路径:
- default load(默认路径): the load on the default devices
- signaling load(信道路径):the load on the controller
- TCAM交换机节点构成的正常路径,需要被动安放规则
因为是被动模型。对于大象流,可以通过向控制器申请合适的路径(最短路径或OFFICER模型的路径),将规则安装到节点上。而对于老鼠流,直接在默认设备的默认路径上转发到目的地,节省了节点的容量空间。默认设备类似于规则缓存中的软件交换机。默认设备:软件交换机,非TCAM,具有无限的容量,但是匹配转发流的延迟高。只适合老鼠流。
- 所有的流在开始时都必须在默认路径上转发。
- 随后,流f向控制器申请的过程:
①对于流f的数据包量超过阈值H时,来一个数据包向控制申请一次,希望在正常路径节点上安放规则。
②如果申请不成功,下个相同流f的数据包来了接着申请,直到成功或流f用完
③申请成功,可以安放规则。但是,由于节点容量有限,规则安放也有成功率r。
how rules are chosen ?
上节介绍了该模型安放流的套路。但是节点容量有限,怎么选择合适的流安放呢,也就是怎样确定合适的区分大小流的阈值H?
——>首先,通过模型得到我们的优化目标:
我们的目标是最小化默认路径和信道路径的负载(C d 和C s )。但是两者存在矛盾,如果更多的流被安放,那么默认路径的开销变小,但是信道路径的开销变大。
所以我们的目标是在两者之间找到一个最佳的平衡点,最小两者之和(total cost:C=C d +C s )
——>如何和得到C呢?
我们抽象(H,r)的函数:
1)当流f的流量n f < H,流f只在默认路径转发,没有向控制器申请(即没有在节点上安装规则,在正常路径上转发),得:a f = n f , b f = 0, d f = 0。
2)当流f的流量n f > H,且H ≤ a f ≤ n f ,第k个流:a f = k ——>(H ≤ k < n f ) ,此时流f超过H部分的数据包k − H + 1向控制器申请,希望流f在节点上安装规则在正常路径上转发。
此时第k个数据包申请成功的概率(即前k-H个申请失败,第k-H+1申请成功):
当流f到最后一个数据包,k=n
f
,有申请成功和申请失败两种可能:
每第k次申请,不管是否成功,都有k个数据包在默认路径转发,根据全概率公式,得到默认路径的开销a
f
:
综上1)2)得到默认路径开销a
f
:
一旦数据包量到达H-1,就开始向控制器申请安装规则。没申请一次就是一次信道路径的开销b
f
:
能安装流f(规则)的可能性p
f
:
申请被拒绝的次数d
f
,分为申请成功之前的被拒绝和一直被拒绝两种情况:
——>综上:
对所有流的默认路径开销:
对流的信道路径开销:
当一个数据包申请成功时,需要向n个节点下发规则,并n个规则超时还要想控制器发送超时移除规则通知。所以β
f
=(1+2n)。
对于每个流f,分为申请失败和成功两种情况的信道开销:d
f
+β
f
p
f
——>总的成本cost:
——>我们得到了一个C与(H,r)的关系函数:
- 高成本区域:r—>0,H—>1
- r低,安放规则成功率低,H应该高,避免申请控制器,减少信道开销
- r高,安放规则成功率高,H应该低,更多的流被安放,减少默认设备开销
- 通过调节阈值H来维护r的高成功率
——>r的高成功率很重要,那么怎么通过H来维护呢?
本文提出了一种主动算法aOFFICER,类似于TCP的拥塞控制(发送量线性增长,但发现拥塞时发送变为一半,然后接着线性增长),通过调节阈值H来避免进入高成本区域。
1)首先,我们使用指数加权平均模型(EWMA)来估计下一次的规则安放成功可能性r n
2)接着,我们了Multiplicative Increase/Multiplicative Decrease (MIMD) algorithm 算法,来动态调整阈值H,从而来维护r。(类似TCP拥塞策略)
当r过低时,即容量不足,适当的增加阈值H。在下一次中r
n
中会增加;
当r过低高时,即容量充足,适当的降低阈值H。在下一次中r
n
中会降低。
注:为了避免H过高无法安装规则,在T间隔后若无申请则自动减操作。
仿真实验
略
引用:
- Nguyen, Xuan Nam. “The OpenFlow rules placement problem : a black box approach.” (2016).
- X.N. Nguyen, D. Saucez, C. Barakat and T. Turletti, “OFFICER:A general Optimization Framework for OpenFlow Rule Allocation and Endpoint Policy Enforcement”, IEEE INFOCOM 2015, Hongkong, China, April 2015