什么是虫洞路由?
虫洞路由是虚拟直通的一种特殊情况,其中中间节点的缓冲区大小为一个分片。网络延迟等于虚拟直通中的延迟,因此与通信距离无关。
在网络争用不可忽略的情况下,虫洞路由相较于电路交换和虚拟直通具有优势。在电路交换中,一旦通道分配给某个消息,其他消息就无法使用该通道,直到通道空闲。在虚拟直通中,阻塞的消息应保存在中间节点的缓冲区中。
在虫洞路由中,通过引入虚拟通道方法,多个消息可以共享通道。虚拟通道通过为网络中每个通道支持多个缓冲区,使得多个独立的消息能够使用相同的物理通道。虚拟通道将缓冲区的分配与物理通道的分配解耦。虚拟通道包含一个用于保存额外分片的缓冲区。
如图所示,三个虚拟通道 A、B 和 C 通过一对多路复用器-解复用器单元共享单个单向物理通道的带宽。
对于每个虚拟通道,都采用具有握手协议的双向控制线来确保虚拟通道的流水线使用。低值表示接收端缓冲区的分片为空。多路复用器开关可以选择任意一个控制线为低且发送端分片缓冲区已满的虚拟通道。选择此通道后,相应的控制线将被置高,表示通道已准备好发送分片。分片到达后,只要接收端的分片缓冲区未清空,控制线将保持高电平。
虚拟通道的优势如下:
虚拟通道通过减少物理通道的空闲时间来提高网络吞吐量。
虚拟通道可用于防止死锁。
虚拟通道支持将通信进程的逻辑拓扑映射到特定的物理拓扑。
虚拟通道可以保证特定系统相关功能(包括调试和监控)的连接带宽。
虚拟通道的主要优势在于避免路由网络中的死锁。死锁是指结构中一部分消息都阻塞等待某个其他消息释放缓冲区的情况。死锁通常出现在可以形成循环依赖关系的网络中。避免死锁的方法有以下几种:
- 通过重新路由抢占消息。
- 通过丢弃抢占消息。
- 应用虚拟通道。
第一个解决方案导致了一种自适应路由技术,其中一条被困消息被重新路由到到达目标节点的备用路径上。在第二种方法中,其中一条消息被丢弃,并从源节点通过备用路由重新传输。