第六章:非阻塞网络
第六章:非阻塞网络
包交换网络(packet-switched network):上几章所提到的共享节点的网络
电路交换网络(circuit-switched network):不同于包交换,电路交换网络在通信之前,先建立源点和目标点之间的专用链接,传输完成后断开链接。
非阻塞的电路交换网络的典型案例是电话。从机主到另一个机主的呼叫表示一个连接请求。为了使呼叫通过,必须找到网络中未使用的路径,然后为该呼叫分配路径。如果电话系统是无阻塞的,那么只要接收者的电话不在使用中,呼叫就总是成功的。
非阻塞网络(Non-Blocking Network)与 阻塞网络(Blocking-Network):Non-Blocking 与 Blocking 是 Circuit-Swtiched 网络的一种分类方式。
-
Non-Blocking 网络可以同时为所有由 input 到 output 的数据传输请求建立连接。即在同一时刻,所有的 input 到它所选择的 output 之间的连接不会产生冲突(共享一条channel)。
-
Blocking 网络不能同时处理由所有 input 发出的向 output 建立连接的请求。
非阻塞网络(Non-Blocking Network)的分类:
- Strictly Non-Blocking:连接可以递增地建立。在建立新的连接时,不必改变之前已建立的连接的路由路径。
- Rearrangeably Non-Blocking:在建立新的连接时,可能需要将之前已建立的其他连接重新设置路由路径。
1、非阻塞与非干扰
非干扰网络(non-interfering network):针对包交换网络,只要满足带宽和资源分配的两个约束,它们就可以共享通道和节点而不会受到干扰。
非阻塞网络
2、Crossbar Networks
典型交叉开关网络
Crossbar 最大的缺陷在于它的面积与开销。随着 input 和 output 规模的增大,电路规模会以 n x n 的量级扩大,而后面将介绍的其他 Non-Blocking 网络规模增长的量级仅为 n x logn。
3、Clos网络
结构和性质
经典的 Clos 结构是一个三阶段的网络,每一阶段由若干数量的 crossbar swtich 组成。通常使用三元组(m, n, r)来表示一个 Clos 的参数:
- m 是中间阶段 switch 的数量。
- n 是每个input/output swtich 的端口数量。
- r 是 input、output 阶段 switch 的数量。
- 每个 middle switch 会和所有的 input swtich 和 output swtich 相连。
第一阶段的 r 个 input swtich 是 n x m 的 crossbar,每个 swtich 将各自 n 个输入端口连接到 m 个 middle swtich 上。
第二阶段的 m 个 middle switch 是 r x r 的 crossbar,每个 switch 将 r 个 input swtich 与 r 个 output swtich 相连。
第三阶段的 r 个 output switch 是 m x n 的 crossbar,每个 switch 将 m 个 middle switch 与 n 个输出端口相连。
Unicast Routing on Strictly Non-Blocking Clos Networks
在 Clos 的路由选择上,唯一可以进行选择的地方在 input switch。只要 input switch 到 middle switch 的 channel 没有被占用,input switch 就可以选择该 middle switch 作为建立连接的中间节点。一旦 middle switch 被选定,剩下的路径也就被唯一确定了(或者路径繁忙路由失败)。
定理: 如果对于一个 Clos, m > = 2 n − 1 ,那么它是 strictly non-blocking。
证明: 由 input switch A.i 向 input switch B.j 建立连接。
若 A 的 n-1 个端口和 B 的 n-1 个端口均已建立连接。A 已建立的连接选择前 n-1 个middle switch,B已建立的连接用到后 n-1 个 middle switch。
这时还再需要一个可用的 middle swtich,才能完成 A.i 向 B.j 的连接。
共计是 m = 2 n − 1 m = 2n -1m=2n−1 个 middle switch,能够作为 strictly non-blocking 的充分条件。
Unicast Routing on Rearrangeable Clos Networks
4、排序网络
一个有N个输入的排序网络在它的N个输入终端上接受一组包含排序信息的输入,并在它的N个输出终端上以排序信息的顺序输出。排序网络可以用作非阻塞网络