第11章 通信网络
在计算机科学中,通信网络建模是有向图的一项重要应用。在此类模型中,顶点代表计算机、处理器和交换机;边表示电缆、光纤或其他用于数据传输的线缆。
在本章中,我们将介绍一些最好和最常用的结构化网络。
11.1 路由
11.1.1 完全二叉树
下图是一个具有4个输入和是个输出的完全二叉树
正方形表示终端:数据包的发射端或接收端。
圆形表示交换机:交换机从入边接收数据包,然后将数据包沿着出边的方向转发。
在一棵树中,每对顶点之间都有一条唯一路径,所以只有一种方式可以将数据包从输入端路由到输出端。
11.1.2 路由问题
数据包从哪一个输入端开始走到哪里,由[0…N-1]的一个排列所指定。那么一个排列 π \pi π就定义了一个路由问题将从输人i处开始的数据包传输到输出 π ( i ) \pi(i) π(i)。解决路由问题 π \pi π的路线是从每个输入到其指定输出的路径( path )集合P。也就是说,P是路径 P i P_i Pi的集合,其中P是从输入i到输出 π ( i ) \pi(i) π(i)的路径,i∈ [0…N-1]。
11.2 路由评价指标
11.2.1 网络直径
数据包通常沿着可能的最短路径从输入经过路由到输出。使用最短路径路由,最差情况下的延迟是距离最远的输入和输出之间的距离。这被称为网络的直径。换句话说,网络的直径是所有输入和输出之间最短路径的集合中,最长的那个值。
注:与图直径的通常定义不同,图直径(简单图或有向图)的定义通常是指,任意图中任意两个顶点间距离的最大值,但在本文中我们只关注通信网络的输入端和输出端的最大值,而不是任意两个顶点。
具有N个输入输出的完全二叉树的直径为2logN+2
交换机的大小
降低网络直径的一种方法是使用较大的交换机。例如,在完全二叉树中,大多数交换机具有三个入边和三个出边,这使得它们成为3×3的交换机。如果用4×4的交换机,那么我们就可以构建一个更小直径的完全三叉树。原则上,我们甚至可以通过单个巨大的N×N交换机来连接所有的输入和输出。
但是,这样效率并不会更高。因为使用大的交换机只不过是把原来的网络设计问题掩盖到了交换机内部。因此,设计通信网络的挑战在于如何用固定大小的基本设备(如3×3交换机)设计获得N×N交换机的功能。
11.2.2 交换机的数量
设计通信网络的另一个目标是尽可能使用较少的交换机。在一棵有N个输入的完全二叉树中,交换机的总数是2N-1,这是3×3交换机下最好的情况。
11.2.3 网络时延
对于任何路由,最大延迟的数据包将是路由中沿最长路径传输的数据包。路由中最长路径的长度称为时延。
网络的时延取决于要优化的目标。网络时延被定义为这些最佳路由之间最大的路由延迟。如果始终选择路由来优化延迟,则网络时延将等于网络直径,但如果选择路由来优化其他任务,则网络时延可能会变得相当大。
11.2.4 拥塞
完全二叉树有一个致命的缺点:根交换机是瓶颈。根交换机一旦出现问题,网络将会被分成大小相同的两个部分。
如果路由问题由恒等排列 I d ( i ) : = i Id(i):= i Id(i):=i给出,那么就有一个简单的路由P来解决问题:令 P i P_i Pi为从输人i经过一个交换机到达输出i的路径。另一方面,如果问题由 π ( i ) : : = ( N − 1 ) − i \pi(i)::= (N-1)- i π(i)::=(N−1)−i给出,那么在任何解决 π \pi π的方案Q中,每条从输人i开始的路径 Q i Q_i Qi最终都会经过根交换机然后再到达输出(N - 1) - i。下图说明了这两种情况。
我们可以基于拥塞情况来区分“好”的路径和“坏”的路径。路由P的拥塞等价于穿过单个交换机的最大路径数。
由上图可知,左边图的路由拥塞值是1,右边图的路由拥塞值是4。
通过将拥塞概念扩展到网络,我们还可以在瓶颈问题上区分网络的“好”和“坏”。对于网络的每个路由问题 π \pi π,我们假设选择最优化拥塞的路由,即在解决 π \pi π的所有路由中具有最小拥塞。那么交换机将遭受的最大拥塞将是这些最佳路由中最大的拥塞。这个“最大”拥塞称为网络拥塞。
完全二叉树的的最差排列是将 π ( i ) : : = ( N − 1 ) − i \pi(i)::= (N-1)- i π(i)::=(N−1)−i,这样所有的数据包都将通过根节点,那么完全二叉树的最大拥塞都将会达到N。
11.3 网络设计
11.3.1 二维阵列
除了完全二叉树,通信网络也可以设计成二维阵列或网格。图11.3所示的是一个具有4个输入和4个输出的二维阵列。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-grk34Nz8-1668065044185)(https://typora-img1.oss-cn-beijing.aliyuncs.com/image-20221031150201637.png)]
由上图可知,具有N个输入和N个输出的阵列的直径为2N,这比直径为2logN +2的完全二叉树要差很多。但是同时,阵列几乎消除了完全二叉树中存在的拥塞问题。
定理11.3.1: N个输入的阵列网络的拥塞度为2。
与树一样,最小化拥塞时,网络的时延与直径相等。这是因为给定输入和输出之间的所有路径都是相同的长度。
二维阵列的特征如下:
11.3.2 蝶形网络
蝶形网络是一个处于完全二叉树和阵列网络折中的一个网络。
在定义时,我们仅考虑交换机和连接,使用递归定义蝶形网络。
我们递归地将F(n)定义为有 N : : = 2 n N::= 2^n N::=2n个输人输出的蝶形网络中的交换机和连接的数量。
基本情形 F 1 F_1 F1: F 1 F_1 F1有2个输入交换机和2个输出交换机互联
在构造阶段,我们将⒉个 F n F_n Fn网络互联,就可以构造出一个 F n + 1 F_{n+1} Fn+1网络,如图11.5所示。也就是说,第i个和第 2 n + i 2^n+i 2n+i个新的输入交换机各自连接到相同的两个交换机上,即两个 F n F_n Fn部件各自的第i个交换机(i= 1,…2n )。 F n + 1 F_{n+1} Fn+1的输出交换机就是每个 F n F_n Fn的输出交换机的复本。
F n + 1 F_{n+1} Fn+1的每一条从输人到输出的路径长度都为n+1,但是有 2 n + 1 2^{n+1} 2n+1个输入的蝶形网络的直径是n+3
我们可以证明在蝶形网络的基本情形和构造情形下,只要给定了输入路由器和输出路由器,路由过程是唯一确定的。这意味着在最小化拥塞时,网络的延迟与网络的直径相等。
蝶形网络的拥塞约为 N \sqrt{N} N。更准确地,当N是2的偶数次幂时拥塞是 N \sqrt{N} N,N是2的奇数次幂时为 N / 2 \sqrt{N/2} N/2。
蝶形网络具有比完全二叉树结构更低的网络拥塞,与阵列结构相比,它使用了更少的交换机,具有更小的网络直径。然而,蝶形网络不能达到每个网络结构的最佳性质,只是两者的一个折中。
11.3.3 Benes网络
Benes网络相当于通过在每个递归构造的每个阶段同时添加一列输入和输出交换机,来扩展 Benes网络。
我们同意可以用递归的方式来定义 B n B_n Bn, B n B_n Bn为具有 N : : = 2 n N::= 2^n N::=2n个输入和输出交换机的 Benes网络中的交换机及其之间的互联。
Benes网络的基础情形为 B 1 B_1 B1,仅有2个输人交换机,2个输出交换机,和图11.4所示的 F 1 F_1 F1是—样的。
在构造步骤,我们由两个 B n B_n Bn构造 B n + 1 B_{n+1} Bn+1,将两个 B n B_n Bn连接到 2 n + 1 2^{n+1} 2n+1个新的输入交换机,以及 2 n + 1 2^{n+1} 2n+1个新的输出交换机。如图11.6所示。
B n + 1 B_{n+1} Bn+1网络的交换机数量为 2 ( n + 1 ) 2 n + 1 2(n+1)2^{n+1} 2(n+1)2n+1
B n + 1 B_{n+1} Bn+1中从输人交换机到输出交换机的所有路径的长度都是2(n+1)-1,具有 2 n + 1 2^{n+1} 2n+1个输人的Benes网络就是这个长度加上2——连接到输入和输出终端的两条边。
Benes网络的交换机数量和直径相比于蝶形网络都加倍了,但是它也完全消除了拥塞问题。
定理11.3.2:有N个输入的 Benes网络的拥塞度为1。
证明:通过对n进行归纳,N = 2 n 2^n 2n。所以归纳假设为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-55NiU2Dd-1668065044191)(https://typora-img1.oss-cn-beijing.aliyuncs.com/image-20221101093259822.png)]
基本情形(n =1): B 1 B_1 B1= F 1 F_1 F1,如图11.4所示。 F 1 F_1 F1中唯一的路由路线的拥塞度为1。
归纳步骤:我们假设N= 2 n 2^n 2n个输入的 Benes网络的拥塞度为1,接下来证明2N个输入的Benes网络的拥塞度也为1。
例子:
对于如上的N = 8的网络和路由问题,因为我们已经假设N = 4时的子网拥塞为一,如果数据包可以安全的通过第一层和最后一层,那么就可以证明其归纳假设。
由图可知,我们不能让0号和4号数据包通过同一个子网,因为这将导致两个数据包在单个交换机处相撞,导致拥塞。相反,必须一个数据包经过上层网络,而另一个数据包通过下层网络。相似地,数据包1和5、2和6、3和7必须通过不同的子网传输。
用图表示以上的关系,两个数据包若必须通过不同的网络传输,则他们之间有一条边。
对于输出端做同样的规定。比如,目的地为输出0(6号数据包)的数据包和目的地为4的数据包(2号数据包)不能同时通过同一个网络。同样的用边在图中表示以上的约束。
现在的问题是,我们能否用红色和蓝色将每个顶点进行着色,使其相邻的顶点颜色不同。那么当我们将着红色的数据包通过上层网络传输,而着蓝色的数据包通过下层网络传输时,所有的限制条件都可以被满足。
引理11.3.3证明:如果图的边可以分成两组,使得每个顶点只与每组中的一条边相连,那么这个图就是可2-着色的。
由此,我们可以将Benes网络中的第一层和最后一层的约束抽象为以下的图:
令 π \pi π为一个[0…N -1]的任意排列,令图G的顶点为数据包的编号0,1,…,N -1,边来自下面两个集合的并集:
的一条边相连,那么这个图就是可2-着色的。
现在任意一个顶点u最多与两条边相连,据引理11.3.3,图G的顶点存在一种2-着色的方案。现在将一种颜色的数据包从上层的子网传送,另一种从下层的子网传输。因此假设得证。