交换技术的design space是什么?
交换是将消息从输入缓冲区移到输出缓冲区的实际机制。所应用的交换技术对消息延迟有巨大影响,因此在设计任何分布式内存计算机时,交换方法的选择至关重要。交换技术的design space如图所示。
分组交换(存储转发)
在第一代多计算机中,分组交换机制借鉴自计算机网络领域。分组交换机制以存储转发的方式运行,类似于邮政服务。消息被分成数据包,这些数据包通过源节点和目标节点之间的通信网络独立发送。
电路交换
电路交换方法类似于电话系统,其中在源和目标之间首先建立一条路径,并且在传输整个消息之前保持电路连接。电路交换机制分为三个阶段:
- 电路建立阶段
- 传输阶段
- 终止阶段
在第一阶段,通过向网络发送称为探测器的特殊短消息来建立通信电路。探测器在分组交换方案中与数据包报头起着类似的作用。当建立通信电路后,可以启动第二阶段,在此阶段,实际消息通过通信电路发送。在此阶段,构成电路的信道被独占保留,其他任何消息都无法通过它们传输。
在最后阶段,电路被销毁,这可以通过传输消息的尾部或目标节点返回的确认消息来实现。如果在电路建立阶段所需信道被另一个电路占用,则部分建立的电路可能会被销毁。
虚拟直通
虚拟直通试图整合分组交换和电路交换的优点。消息被分成称为流量控制数字或微数据包的小单元。只要所需的信道空闲,消息就会以流水线方式在节点之间逐个微数据包转发。
如果所需的信道繁忙,则微数据包会在中间节点缓冲。根据可用缓冲区的大小,虚拟直通可以以不同的方式运行。如果缓冲区足够大,则整个消息会在阻塞的中间节点缓冲,导致行为类似于分组交换。如果缓冲区不够大,则消息将跨多个节点缓冲,从而占用它们之间的链路。
虫洞路由
虫洞路由是虚拟直通的一种特例,其中中间节点的缓冲区大小为一个微数据包。在争用不可忽略的网络中,虫洞路由优于电路交换和虚拟直通。在电路交换中,一旦信道分配给消息,在信道空闲之前,其他消息就无法使用它。在虚拟直通中,阻塞的消息必须存储在中间节点的缓冲区中。