第九章:遗忘路由算法(Oblivious)
Oblivious Routing 指在选取 packet 的路由路径时,不考虑网络当前状态的路由方法,这种方法实现简单且易于分析。
Oblivious Routing 路由方法需要在 局部性(locality)、均衡负载(load balance) 方面做取舍。
1、Valiant’s Randomized Routing Algorithm
一个 packet 希望从 s 发送至 d,首先会发送给一个随机选择的中间节点 x,之后再由 x 发向 d。在这两阶段中,可以采用任意的路由算法。通常经验来讲,使用在 uniform traffic 条件下能有效均衡负载的路由算法工作效果更好。
由于中间节点的随机选择,每一阶段的数据传输均为 uniform random pattern。从总体上看,Valiant的算法将任何流量模式的负载减少到随机流量负载的一半。
Valiant’s Algorithm on T orus T opologies
据包通过随机选择的中间节点x = 31路由。在第一阶段,数据包使用维序路由从s = 00到x = 31,经过4个跳,如黑体线所示。然后,在第二阶段,数据包从x = 31路由到d = 12需要额外的3跳。随机路由需要7跳才能到达目的地,而最小路由算法只需3跳即可到达目的地,牺牲了局部性。
Valiant’s Algorithm on Indirect Networks
2、Minimal Oblivious Routing
Minimal oblivious routing 严格控制选择的路由路径为最短路径。这种方法在层次化的拓扑结构中表现良好,能在兼顾 locality 的同时使负载均衡。
Minimal Oblivious Routing on a Folded Clos (Fat Tree)
从 s 向 d 发送数据包,会选择一个距离二者最近的共同祖先节点 x 作为中间节点,先由 s 发送至 x,再从 x 发送至 d。
上图展示了从1发送至6,可以有两条路径选择,经过0XXXA 或 经过0XXXB,二者都是距离最短的路径。
Minimal Oblivious Routing on a T orus
在 Torus 拓扑中的 Minimal Oblivious Routing,限制路由路径的中间节点位于最小象限之内(由 s 和 d 组成的长方形),并确定在每一维度上的移动方向是朝目标移动距离最短的方向。
下面展示了从 00 到 21 的多条路由路径。可以通过随机选择多条路径中的一条来均衡负载。
Torus 拓扑中采取 minimal oblivious 路由,在保留 locality 的方面表现较好,在 random traffic 中也能有效均衡负载。然而在某些最坏情况的 traffic 中,均衡负载的表现很差,如 tornado traffic。
(因为由于必须使用距离最短路径的缘故,只能使用象限内的节点作为中间节点。一旦某个较小象限内的数据传输较密集,就会造成严重的拥挤)
第十章:自适应路由
1、自适应路由基础
自适应路由算法使用有关网络状态的信息(如队列占用情况),在空闲路径中选择传递数据包的路径。由于路由依赖于网络状态,自适应路由算法与流量控制机制紧密耦合。
一个出色的适应性路由算法,理论上讲会比 oblivious routing 更出色,因为他使用了网络的状态作为决策信息之一。然而在现实中,适应性路由在最坏情况下,性能非常糟糕。很大程度上这是因为,在路由的决策节点上只能获取局部的拥塞状况,在将包导向局部最优的路径时,经常会导致全局的负载不均衡
由节点3向节点7发送数据,既可以选择实箭头路线,也可以选择虚箭头路线,但此时节点5和6之间正在传输数据。
- 3通过自身局部节点状态进行路由选择,由于不知道5-6之间正在传输,因此会对两条路径随机选择
- 3直接向7发送数据,包在5处阻塞,5向4发送backpressure,4不再向5发送数据包。
- 等4处队列也满了之后,4向3发送backpressure,此时3感知到前方阻塞,换另一条路径进行路由。
Stiff Flow Control (较小的队列容量)更适用于 Adaptive Routing。 这可以使 backpressure 信号更快地从堵塞处传递给决策节点。
在 Torus 等更复杂拓扑中采用适应性路由,通常在每一跳根据局部信息作一次路由选择。这也会带来非全局最优的问题。
在下面的 Torus 由 00 向 23 发数据。在 01 处,由于 01 到 02 轻度拥塞,所以选择了向 11 转发。这导致了之后所走的路径都是重度拥塞。
2、最小路径自适应路由
最小自适应路由算法在从源s到目的d的最小(最短)路由中进行选择,在每一跳上使用有关网络状态的信息做出路由决策。
3、完全自适应路由
全适应路由,不再严格要求路由路径为最短路径。为了避免一些拥塞路段,包可以暂时向远离目的节点的方向作转发。我们称做出这种选择的行为 Misrouting。
活锁
由绕路而导致
- 限制 Misrouting 的次数,达到次数上限后采用 Minimal Adaptive 方法。
- 限制 Misrouting 的频率,每执行若干次 Minimal Routing 才能选择一次 Misrouting。
4、负载均衡自适应路由
先进行象限选择,在象限内使用无回溯的自适应路由