队首阻塞(Head of Line Blocking, HOL)是一种出现在缓存式通信网络交换中的一种现象,其交换结构通常由缓存式FIFO输入端、交换结构(Switch Fabric)、FIFO输出端构成。

HOL阻塞用一个现实生活中的例子说明,就如同你在一条单车道的马路上右转,但是前面有直行车,此时虽然右行线已经空闲,但是你也只能等待。

当在相同的输入端口上到达的分组报文被指向不同的输出端口时,就会出现HOL阻塞现象。

无阻塞交换架构 交换网的内部阻塞_神经网络

造成HOL阻塞的根源是向所有转发方向之后一个队列,无法在不同的转发方向之间进行调度。如果向不同的转发方向有独立的队列,则可以通过在不同队列间的轮询调度,优化报文转发,避免HOL阻塞。

如上图所示,输入队列1和3同时有分组报文要转发到输出队列4,这个时候如果Switch Fabric仲裁输入队列3进行数据转发,那么输入队列1就必须要等待,此时其后的分组报文要转发到输出队列3,虽然输出队列3空闲,但是也得不到处理。

 

克服HOL阻塞的方法是使用VOQ(Virtual Output Queue),其思想是在输入端将发送到不同端口的分组报文虚拟成不同的队列,并且彼此互不影响,这样一来即使队首分组报文被阻塞,也不会影响发送到其他输出端口的分组报文转发。

除了VOQ技术之外,还有许多解决HOL阻塞的算法,如神经网络、iSLIP等。