扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
传输流管理器
传输流管理器可以解决一些问题,但是一些厂商对太多依赖这一机制持谨慎态度。
现有高端Switch Fabric采用了许多避免丢包或至少保证高优先级包不被丢弃的技巧。首先,大型Switch Fabric在多个位置需要队列。在理想的情况下,你可能只在输出端口上具有队列,但是如果有一个输出端口变得太拥挤,将使交换机容易受到阻塞的影响。例如,如果每个输入端口在每个时钟周期向输出端口1发送一个信元的话,除非队列缓冲区无限大,否则这个输出端口会迅速溢出。
因此,输入端口上或中心Switch Fabric自身需要队列。Vitesse Semiconductor公司的TeraStream结构就是一个例子。这种设计用于聚合高达160 Gbps的吞吐量的结构,利用多层次的调度功能和一种存储―转发架构。在其存储转发架构中,除了输出端口上的缓冲区外,在Switch Fabric中还有一组缓冲区。每个纵横位置都有一组优先级队列。因此,即使输出端口十分繁忙,仍可以从输入端口发送帧,发送的帧将被保存在Switch Fabric中。
但是如果传输流在到达输出端口前排成长队,那么有造成可怕的线端(head-of-line)阻塞的可能性。假设有一个低优先级包到达输入端口1,并且后面紧跟着一个高优先级包。端口1现在陷入了困境,因为高优先级包要等到低优先级包移动之后才能移动,而低优先级包可能一时不会移动到任何地方。
因此,大多数现代Switch Fabric采用虚拟输出队列,在虚拟输出队列中,每个输入端口都有一条针对每个输出端口的独立队列。这就防止了线端阻塞,但却造成了调度问题:对于一台具有N个端口的路由器来说,这意味着系统需要应付N × N条队列。为了调度这些队列,大多数高端结构采用一种请求与批准系统。现任斯坦福大学副教授Nick McKeown发明的iSlip算法就是这样的经典例子。像iSlip这样的算法执行请求-批准过程的多次迭代,寻找输入端口/输出端口匹配的最佳排列。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。