CloudService 发表于 2022-9-19 14:08:34

IP QoS排队及调度

DiffServ定义了一种合适的IP

QoS体系结构,这需要在网络中每一个节点上对DSCP识别与PHB的实现来得以完成。DSCP的识别较为简单,只需在IP数据包头中查找相应的字段。对PHB的实现较为复杂,主要是依靠节点的出口接口上的排队机制。基于数据包头中的目的地址与DSCP码,数据包被分配到指定出口接口上的对应队列中去。根据排队机制的不同可以为数据分配需要的出口带宽与优先级别,以实现多种PHB。另外,在网络的边界节点,还需要对进入的数据流进行整形与分类,并分配相应的DSCP编码。下面对这些功能加以介绍。
排队机制
队列是网络设备接口的数据包缓存区,实际上是一段内存空间。数据包从入接口进入,经过路由或交换处理后到达出接口,被放入队列中等待,然后根据排队机制先后发送。主要的排队机制包括以下几种:
(1)先进先出
先进先出(FIFO)是最为简单直观的排队机制,先到达的数据包先处理,后到达的后处理。其缺点是无法区别对待不同优先级别的数据包。
(2)严格的优先排队
严格的优先排队机制具有从高到低的优先级别,并严格地按照级别的高低作先后处理。这样的机制可以保证高优先级别数据的优先处理,但如果这样的数据包过多,则低优先级的数据包可能会因长时间无法得到处理而造成拥塞。
(3)公平排队
公平排队(FQ)机制为从高到低的优先级别分配不同比例的处理能力(即对应接口带宽),按照高低顺序轮流的方式循环处理(即round

robin),这样就能保证即使是低优先级的数据包也可以获得一定的带宽。
(4)带权重的公平排队
公平排队的问题在于,由于数据包的长度不同,所需的处理时间不同,简单的FQ导致短小的数据包可能会因等待对一个长数据包的处理而空闲很长时间。为此,带权重的公平排队(WFQ)作为FQ的一种改进,在比例的分配中考虑了包长度的权重,减少了短小数据包的不必要等待。
(5)基于类别的队列
基于类别的队列(CBQ)是一种两层的队列机制,以实现更为精细的控制。首先,不同服务类别的数据包被放入不同的队列中,这些队列有优先级别的高低。同时,在任意队列内部,也可以有不同的优先级别。队列间的优先级别可以保证不同服务需求的数据得到相应的处理,而对列内的优先级别则可进一步保证同一服务类别中不同的应用得到相应处理。
(6)结构化的CBQ

结构化的CBQ将基于类别的队列的两层队列扩展到更多层的队列结构,每一层中可以有子层。这里,一个突出的改进是一个子层在自身分配的带宽不够时,可以向其他的空闲子层借用带宽,从而提高了带宽利用率与接口的吞吐量。这一机制相应的算法相当复杂。
包丢弃机制
队列与排队机制是网络设备(路由器,交换机)上的一个重要功能,IP

QoS的实现离不开一个好的队列管理与排队机制。队列管理的另一个功能是在队列溢出时的包丢弃机制,属于拥塞控制的范围。
最简单的丢弃机制是对尾丢弃,因队列的空间有限,在接口出现拥塞的情况下,数据包会在队列中堆积直至队列溢出(队列的空间被占满)。超过队列空间的数据包被丢弃,新到达的数据包也被丢弃。对于高层协议,如传输控制协议(TCP)而言,这样的数据包丢弃会有引发网络崩溃的危险。因为包丢弃导致TCP的重传,反而带来更多的数据包,进而占用大量的带宽与路由器CPU,导致路由器瘫痪。随机提前检测(RED)为解决这一问题提供了办法。
其原理是,当队列充满到一定程度(这可由一个设定的队列长度阈值决定)时,队列开始随机地丢弃一些新到达的数据包以保证队列不会溢出,因为被丢弃的少量数据包会引起TCP减缓数据的发送。这影响到了一些TCP连接的性能,但从整体上维护了网络的稳定性。带权重的随机提前检测(WRED)改进了随机的选择数据包丢弃,增加了有针对性的选择数据包丢弃。
页: [1]
查看完整版本: IP QoS排队及调度