4.QoS队列调度算法概述

合集下载

层次化QOS(HQOS)

层次化QOS(HQOS)

HQoSHQoSHQoS即层次化QoS(Hierarchical Quality of Service),是一种通过多级队列调度机制,解决Diffserv模型下多用户多业务带宽保证的技术。

传统的QoS采用一级调度,单个端口只能区分业务优先级,无法区分用户。

只要属于同一优先级的流量,使用同一个端口队列,不同用户的流量彼此之间竞争同一个队列资源,无法对端口上单个用户的单个流量进行区分服务。

HQoS采用多级调度的方式,可以精细区分不同用户和不同业务的流量,提供区分的带宽管理。

基本调度模型调度模型分为两部分:调度器:对多个队列进行调度。

调度器执行某种调度算法,决定各个队列之间报文发送的先后顺序。

调度算法包括按优先级调度SP(Strict Priority),或按权重调度(DRR、WRR、DWRR、WFQ算法的其中一种)。

调度算法详细介绍请参见“队列及拥塞管理”。

调度器就一个动作:选择队列。

队列被调度器选中时,队列最前面的报文被发送。

被调度对象:即队列。

报文根据一定的映射关系进入不同的队列。

队列被赋予3种属性:1)根据调度算法,队列被赋予优先级或权重。

2)队列整形速率PIR。

3)报文丢弃策略,包括尾丢弃(Tail-drop)或WRED。

队列有两个动作:1)入队:当系统收到报文时,根据报文丢弃策略决定是否丢弃报文。

如果报文未被丢弃,则报文入队尾。

2)出队:队列被调度器选中时,队列最前面的报文出队。

出队时,先执行队列整形,之后报文被发送。

HQoS层次化调度模型为了实现分层调度,HQoS采用树状结构的层次化调度模型,如图1。

树状结构有三种节点:叶子节点:处于最底层,表示一个队列。

叶子节点是被调度对象,而且只能被调度。

中间节点:处于中间层,既是调度器又是被调度对象。

当作为被调度对象时,一个中间节点可以看成一个虚队列。

所谓虚队列,是指仅作为调度结构中的一个层次,不是实际占用缓存的队列。

根节点:处于最高层,表示最高级别的调度器。

QoS概述

QoS概述

QoS概述QoS简介服务质量QoS(Quality of Service)用于评估服务方满足客户服务需求的能力。

通过配置QoS,对企业的网络流量进行调控,避免并管理网络拥塞,减少报文的丢失率,同时也可以为企业用户提供专用带宽或者为不同的业务(语音、视频、数据等)提供差分服务。

影响网络质量的因素:网络带宽:网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。

网络时延:时延是指一个报文从一个网络的一端传送到另一端所需要的时间。

实时应用通信质量都比较关注时延大小,如语音、视频等。

以语音传输为例,时延是指从说话者开始说话到对方听到所说内容的时间。

若时延太大,会引起通话声音不清晰、不连贯或破碎。

单个网络设备的时延包括传输时延、串行化时延、处理时延、以及队列时延。

•传输时延:一个数据位从发送方到达接收方所需要的时间。

该时延取决于传输距离和传输介质,与带宽无关。

•串行化时延:指发送节点在传输链路上开始发送报文的第一个比特至发完该报文的最后一个比特所需的时间。

该时延取决于链路带宽以及报文大小。

•处理时延:指路由器把报文从入接口放到出接口队列需要的时间。

它的大小跟路由器的处理性能有关。

•队列时延:指报文在队列中等待的时间。

它的大小跟队列中报文的大小和数量、带宽以及队列机制有关。

抖动:由于每个报文的端到端时延不一样,就会导致这些报文不能等间隔到达目的端,这种现象叫做抖动。

一般来说,时延越小则时延抖动的范围越小。

某些业务类型(特别是语音和视频等实时业务)是极其不能容忍抖动的。

报文到达时间的差异将在语音或视频中造成断续;另外,抖动也会影响一些网络协议的处理,有些协议是按固定的时间间隔发送交互性报文,抖动过大就会导致协议震荡,而实际上所有传输系统都有抖动,但只要抖动在规定容差之内就不会影响服务质量,另外,可利用缓存来克服过量的抖动,但这将会增加时延。

抖动的大小跟时延的大小直接相关,时延小则抖动的范围也小,时延大则可能抖动的范围也大。

网络设计 重点知识点

网络设计 重点知识点

网络体系结构计算机网络:利用通信设备,通信线路和通信协议,将分布在不同地点,功能独立的多台计算机互连起来,通过功能完善的网络软件,实现网络资源共享和信息传输的系统。

系统集成:根据一个复杂的信息系统或子系统地要求,验明多种技术和产品,并建立一个完整的解决方案的过程。

系统集成的复杂性:技术、成员、环境、约束四个方面,互为依存关系。

系统集成要选择最适合用户需求和投资规模的产品和技术。

网络体系结构:网络的功能分层与各层通信协议的集合称。

网络体系结构:OSI/RM(开放式系统互联参考模型)和TCP/IP(传输控制协议/互联网协议)TCP/IP协议分层:应用层、传输层、网络层、网络接口层。

TCP/IP网络体系结构的特点:网络协议、软件与设备、网络寻址、网络数据结构、网络标准、应用。

物联网:将物品通过射频识别信息、传感设备与互联网连接起来,实现物品的智能化识别和管理。

物联网的基本特征:互联网特征、识别与通信特征、智能化特征。

网络工程设计模型与原则层次化网络设计分为:核心层、汇聚层和接入层。

网络工程需求分析简介:(1)用户解决问题或达到目标所需的条件;(2)系统满足合同、标准、规范或其他正式规定文档所需要的条件或要求;(3)反映(1)或(2)所描述的条件或要求的文档说明。

IEEE的定义从用户角度(系统的外部行为),以及从设计者的角度(系统的内部特性)来阐述用户需求。

用户需求分析基本方法用户需求分析的内容:用户网络应用环境、用户网络设备状态、用户业务对网络服务的需求、用户业务对网络容量和性能的需求。

用户需求分析的基本原则:需求源于用户的需要。

用户基本要求需求分析用户基本要求需求分析:用户类型的分析、用户网络功能需求分析、网络基本结构需求分析、网络投资约束条件分析。

四大基本服务:DNS、Web、Email、FTP。

网络基本结构需求分析:拓扑结构需求分析、网络节点需求分析、网络链路需求分析。

用户高级要求需求分析用户高级要求需求分析:网络扩展性需求分析、网络性能需求分析、网络可靠性需求分析、网络安全需求分析、网络管理需求分析。

openwrt qos原理 -回复

openwrt qos原理 -回复

openwrt qos原理-回复OpenWRT QoS原理及实现方法引言:随着计算机网络的广泛应用,对于网络性能的要求也越来越高。

在网络中,带宽是一个重要的资源,但是网络上的应用程序很多,它们竞争有限的带宽资源,导致网络拥塞和延迟。

为了优化网络性能,提供更好的用户体验,引入了QoS(Quality of Service,服务质量)技术。

OpenWRT是一个基于Linux的嵌入式操作系统,它允许用户对路由器进行自定义配置和优化。

本文将详细介绍OpenWRT QoS的原理和实现方法。

一、QoS原理1. 什么是QoS?QoS是指在网络中根据不同的应用和服务要求,通过对网络流量进行管理和控制,使得重要的应用和服务能够获得更好的性能和保证,同时限制非关键应用的带宽使用。

QoS可以实现带宽管理、流量控制和优先级调度等功能。

2. QoS实现的基本原理QoS的实现基于两个重要的机制:流量分类和队列调度。

流量分类是将网络流量按照不同的规则进行分类,确定不同流量的优先级;队列调度是按照分类优先级对不同的流量进行排队处理,确保高优先级流量优先发送。

3. 分类和标记在QoS中,首先需要对流量进行分类和标记。

分类可以根据不同的指标进行,比如源IP地址、目的IP地址、端口号等。

标记则是给流量设置一个优先级的标签,用于后续的队列调度。

4. 队列调度队列调度是QoS的核心机制,通过对不同流量的排队处理来实现服务质量控制。

通常使用的调度算法有FIFO(First In First Out)、WFQ (Weighted Fair Queueing)、CBQ(Class Based Queueing)等。

其中,WFQ常用于公平调度,CBQ常用于按照不同流量的优先级进行调度。

5. 限速和带宽分配QoS还涉及到限速和带宽分配的问题。

由于带宽资源是有限的,需要通过限速来控制流量的使用。

限速可以按照不同的分类进行设置,确保高优先级流量的带宽需求得到满足。

QoS队列调度算法

QoS队列调度算法

QoS队列调度算法队列指的是在缓存中对报⽂进⾏排序的逻辑。

当流量的速率超过接⼝带宽或超过为该流量设置的带宽时,报⽂就以队列的形式暂存在缓存中。

报⽂离开队列的时间、顺序,以及各个队列之间报⽂离开的相互关系由队列调度算法决定。

华为交换机设备的每个端⼝上都有 8 个下⾏队列,称为CQ(Class Queue)队列,也叫端⼝队列(Port-queue),在交换机内部与前⽂提到的 8 个PHB⼀⼀对应,分别为BE、 AF1、AF2、AF3、AF4、EF、CS6 和CS7。

单个队列的报⽂采⽤ FIFO(First In First Out)原则⼊队和出队。

PQ(Priority Queuing)调度PQ(Priority Queuing)调度,就是严格按照队列优先级的⾼低顺序进⾏调度。

只有⾼优先级队列中的报⽂全部调度完毕后,低优先级队列才有调度机会。

采⽤PQ 调度⽅式,将延迟敏感的关键业务放⼊⾼优先级队列,将⾮关键业务放⼊低优先级队列,从⽽确保关键业务被优先发送。

PQ调度的缺点是:拥塞发⽣时,如果较⾼优先级队列中长时间有分组存在,那么低优先级队列中的报⽂就会由于得不到服务⽽“饿死”。

假设端⼝有 3 个采⽤PQ调度的队列,分别为⾼优先(High)队列、中优先(Medium)队列、和低优先(Low)队列,它们的优先级依次降低。

如图,其中报⽂编号表⽰报⽂到达顺序。

图1 PQ调度RR(Round Robin)调度RR调度采⽤轮询的⽅式,对多个队列进⾏调度。

RR以环形的⽅式轮询多个队列。

如果轮询的队列不为空,则从该队列取⾛⼀个报⽂;如果该队列为空,则直接跳过该队列,调度器不等待。

图2 RR调度RR调度各个队列之间没有优先级之分,都能够有相等的概率得到调度。

RR调度的缺点是:所有队列⽆法体现优先级,对于延迟敏感的关键业务和⾮关键业务⽆法得到区别对待,使得关键业务⽆法及时得到处理WRR(Weighted Round Robin)调度加权轮询WRR(Weighted Round Robin)调度主要解决RR不能设置权重的不⾜。

自相似业务下QoS队列调度算法性能分析

自相似业务下QoS队列调度算法性能分析
r e“虹% 。 :2 2: ∞ : 0 I . ∞ 3 ∞ :1
参考 文献 :
【 IGC . 国 Iv 址 资 源 匮乏 【 Iw I P S中  ̄ P 4地 0L. wwdgs o , l pc. r 2 1 cn 0 { H3 网络 学 院教 材 【 . 州: 三 通信 技 术 有 限公 司, 0 2 C I M】杭 华 2 8 0
泊 自相 似流 ) 。 长 的时 间尺度 下呈 现 出统计 自相似 性 不 论 网络 的拓 仿真 输入数 据 的产 生 ( 松流 , 网络 仿 真 输 入 数 据 的产 生 方 法 主 要 应 用 排 队理 扑 结构 、 户 数 量 、 用 服务 和 利 用类 型 如 何 变 化, 种 自 这
环 , 同 的业务对 网络要求 不 同的 Q S Q S参 数包 表 明 了其具 有 尺度 不变 的猝 发 性 不 o。 o 括 分组 时延(ea)时延抖 动(ea t r 预 约带 宽 、 dl 、 y d l it ) y ie 、 吞 f1 2队列调 度算 法 的研 究 吐 量( ru h u)丢失率 ( s rt) t ogpt h 、 1 s a 等。而分 组调度 算法 o e 当前 队列 调度 算法 发 展趋 势基 本 分 为三类 :分组 公平 排 队类 调度 算法 、轮循类 调度 算法 和服 务 曲线类 在 Q S支 持 方 面 具有 非 常 重 要 的影 响 .是 目前 在 I o P
T t mt o ,a e s 。 2 杈 : :  ̄ i : r s :2 c : “ ㈠ B , 僻 £咖 £_】矗踟 j{ ’ 。 e £ c 】v 0 5
置 . 以 封 装 时 的 Iv 所 P 4源 地 址 就 是 L o。 c 1 址 即 op a k 地 B 33 . . 目的 地 址 从 Iv .- 3 3 P 6报 文 的 目 的 地 址 2 0 : 4 0 24 : 0

层次化QOS(HQOS)

层次化QOS(HQOS)

HQoSHQoSHQoS即层次化QoS(Hierarchical Quality of Service),是一种通过多级队列调度机制,解决Diffserv模型下多用户多业务带宽保证的技术。

传统的QoS采用一级调度,单个端口只能区分业务优先级,无法区分用户。

只要属于同一优先级的流量,使用同一个端口队列,不同用户的流量彼此之间竞争同一个队列资源,无法对端口上单个用户的单个流量进行区分服务。

HQoS采用多级调度的方式,可以精细区分不同用户和不同业务的流量,提供区分的带宽管理。

基本调度模型调度模型分为两部分:∙调度器:对多个队列进行调度。

调度器执行某种调度算法,决定各个队列之间报文发送的先后顺序。

调度算法包括按优先级调度SP(Strict Priority),或按权重调度(DRR、WRR、DWRR、WFQ算法的其中一种)。

调度算法详细介绍请参见“队列及拥塞管理”。

调度器就一个动作:选择队列。

队列被调度器选中时,队列最前面的报文被发送。

∙被调度对象:即队列。

报文根据一定的映射关系进入不同的队列。

队列被赋予3种属性:1)根据调度算法,队列被赋予优先级或权重。

2)队列整形速率PIR。

3)报文丢弃策略,包括尾丢弃(Tail-drop)或WRED。

队列有两个动作:1)入队:当系统收到报文时,根据报文丢弃策略决定是否丢弃报文。

如果报文未被丢弃,则报文入队尾。

2)出队:队列被调度器选中时,队列最前面的报文出队。

出队时,先执行队列整形,之后报文被发送。

HQoS层次化调度模型为了实现分层调度,HQoS采用树状结构的层次化调度模型,如图1。

树状结构有三种节点:∙叶子节点:处于最底层,表示一个队列。

叶子节点是被调度对象,而且只能被调度。

∙中间节点:处于中间层,既是调度器又是被调度对象。

当作为被调度对象时,一个中间节点可以看成一个虚队列。

所谓虚队列,是指仅作为调度结构中的一个层次,不是实际占用缓存的队列。

∙根节点:处于最高层,表示最高级别的调度器。

qos小结二(排队算法)

qos小结二(排队算法)

1,FIFO先进,先出(FIFO)队列是最基本的队列排队规则。

在FIFO队列中,所有的数据包被放入一个单行的队列中,按照他们被放入队列的先后顺序来进行服务。

FIFO队列也叫做先进,先服务队列First-come, first-served(FCFS)如图,所有的数据包首先按照先后到达的顺序放入一个队列中,并按照放入队列的顺序来进行服务。

2,PQ优先级队列(PQ)中,所有的数据包先被分类,然后进入不同优先级的队列,仅当高优先级为空,才轮到低优先级。

在每一个优先级队列中,数据包按照FIFO规则来分配。

有两种PQ:●严格优先级队列●约束率优先级队列严格PQ确保高优先级队列中的数据包一直比低优先级队列中的数据包有优先权。

约束率PQ允许高优先级队列的数据包仅当在高优先级队列的大流量低于一个用户配置限制时才能优先于低优先级队列。

3,公平排队(FQ)在FQ中,数据包首先被系统分类成流然后进入被指定给这个流的队列中。

队列按照循环顺序一次服务一个数据包。

空队列被跳过。

FQ也被叫基于流的队列。

FQ是网络边缘最具代表性的应用,FQ算法首先通常用哈希函数把包分成256,512,或1024个队列,哈希函数按照访问的源/目的地址对,源/目的UDP/TCP端口号,TP Tos比特来计算。

FQ需要最小的配置(开启或关闭)它自己会最优化---每n个活动的队列分配1/n的出口带宽。

当队列的数目改变了,分配给每个队列的带宽也改变。

例如,如果队列数目从n增长到n+1,带宽分配到每个队列也减少到外出带宽的从1/n到1/(n+1)。

4,基于类的FQ在基于类的FQ中,外出端口被分为一定许多不同的服务类型。

每个服务类型被配置为用户设置的出口带宽的百分比。

在阻止每个服务类型的带宽内,FQ被应用,每个类型的队列分到的带宽为此类型的1/n。

5,加权公平队列(WFQ)每个数据包被分类,放入相应的队列中,调度算法计算并分配给每个数据包一个完成时间值,转发完成时间值最小的数据包,在所有的队列中比较完成时间最小的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

QoS队列调度算法概述作者:上传时间:2011-04-22 关键字:网络大爬虫4-QoS专题文常慧锋【摘要】本文概述了常用队列调度算法的实现机制,并在此基础上对比了基于理想流模型的WFQ队列算法与其他队列调度算法的公平性能。

【关键字】服务质量队列调度通用处理器共享加权公平队列1. 引言队列调度算法是实现网络QoS(Quality of Service,服务质量)控制的核心机制之一,是网络资源管理的重要内容,通过控制不同类型的分组对链路带宽的使用,使不同的数据流得到不同等级的服务。

通常调度算法的工作模式可以分为两种:工作保留模式(work-conserving)和非工作保留模式(non-work-conserving)。

如果队列中有数据包等待发送服务器就工作的调度算法称为工作保留调度算法;如果队列中有数据包等待发送但服务器仍然处于空闲状态的调度算法称为非工作保留调度算法,例如,即使服务器处于空闲状态同时队列中有数据包等待发送,但是为了等待下一个高优先级的数据包服务器也会推迟当前数据包的传输,这种调度算法就属于非工作保留调度算法。

当数据包的传输时间很短时,非工作保留调度算法几乎是不公平的。

调度算法的另一种分类方法是根据调度算法的内部结构来划分的,主要有两种:基于优先级分类的调度算法和基于帧结构的调度算法。

在基于优先级的调度算法中有一个称为虚拟时间(virtual time)的全局变量。

调度算法根据该变量为每个数据包计算一个时间戳,然后根据时间戳对数据包排序和调度。

虚拟时钟,加权公平队列都属于这种结构。

基于优先级的调度算法的实现复杂度取决于两个因素:更新优先级列表算法和选择最高优先级数据包算法的复杂度(至少是,其中是共享输出链路的队列数)和计算时间戳算法的复杂度(这主要取决于所采用的调度算法,加权公平队列(WFQ)的时间戳的计算复杂度为,虚拟时钟的计算复杂度只为O(1))。

在基于帧结构的调度算法中,时间被分为固定长度或可变长度的帧。

每个数据流所能使用的带宽资源就是每一帧中所允许传输业务量的最大值。

存储转发队列是帧长度固定的基于帧结构的调度算法,在这种结构中,如果一帧中数据流的业务量小于预留带宽,服务器就会空闲。

加权循环队列,差额循环队列允许帧长度可变,同时,如果一个数据流的业务量小于预留带宽时,下一个数据流就可以提前被调度。

基于帧结构的调度算法最大的优点是实现简单,成本低,最大的缺点是缺乏灵活性和扩展性。

2. 典型的调度算法简介2.1先进先出队列(FIFO)FIFO队列是最简单的基于优先级的调度算法。

在FIFO队列中数据包的时间戳就是数据包的到达时间。

FIFO队列提供了基本的存储转发功能,也是目前因特网中使用最广泛的一种方式,它采用默认的排队方法,不需要配置。

其优点是实现简单,成本低,缺点是不能提供QoS功能和隔离技术,缺乏公平性,易于受到非法用户的攻击。

2.2严格优先级调度算法(PQ)严格优先级调度算法维护一个优先级递减的队列系列并且只有当更高优先级的所有队列为空时才服务低优先级的队列(如图1所示)。

假设队列1比队列2具有更高的优先权,队列2比队列3具有更高的优先权等等。

只要链路能够传输分组,队列1尽可能快地被服务。

只有当队列1为空,调度器才考虑队列2。

当队列2有分组等待传输且队列1为空时,队列2以链路速率接受类似地服务。

当队列1和队列2为空时,队列3以链路速率接收服务等等。

然而该调度机制会使低优先级队列处于饥饿状态。

例如,如果影射到队列1的数据流在一段时间内以100%的输出链路速率到达,调度器将从不为队列2、3、4服务。

避免队列饥饿需要上游路由器精心规定数据流的业务特性以确保映射到队列1的业务类不超出输出链路容量的一定比例,这样可以使队列1常常为空,允许调度器为低优先级队列服务。

严格优先级调度算法对低时延业务非常有用。

假定数据流X在每一个节点都被映射到最高优先级队列,那么当数据流X的分组到达时,如果调度器是空闲的,则分组被立即服务。

图1 严格优先权调度器图2 通用处理器共享2.3通用处理器共享算法(GPS)和加权公平队列算法(WFQ)u 通用处理器共享(Generalized Processor Sharing)GPS算法是一种理想的调度算法(如图2所示),是根据流模型定义的,也就是假设数据包是可以被无限细分的。

在GPS算法中,假设服务器的处理速率恒为。

在时刻,如果数据流的数据包在队列中等待处理,就认为数据流在时刻处于激活状态。

假设有正整数代表各数据流的权重,是时间间隔中服务器为数据流提供的服务,那么对于时间间隔内任何暂存在服务器中的数据流获得的服务,GPS算法定义为。

假设r为服务器的处理速率,将数据流累加可得。

根据轮换对称性,任意数据流的保证速率(最小服务速率)为。

GPS算法具有如下特性:l 假设是数据流的平均速率,只要,就可以保证数据流独立于其它数据流的吞吐率。

还可以保证数据流的瞬时数据以大于等于的速率被处理。

l 由于数据流i在任意时刻获得的服务独立于其他数据流,数据流的时延抖动是自己队列长度和达到时间的函数,独立于其它连接的队列长度和到达时间。

其它调度算法如FIFO和PQ 没有这种性质。

l 通过改变我们可以以不同的方式处理不同的数据流。

例如,当所有的都相同时,GPS就退化为均衡处理器共享(Uniform Processor Sharing)。

另外只要数据流的平均速率之和小于,不论怎么分配,系统总是稳定的。

l 通过增加就可以减少数据包经历的时延,虽然这种方式是以牺牲其它数据包的时延作为代价的,但是当激活数据流稳定时,这种代价并不是很大。

所以GPS算法和速率整形器联合使用时可以得到性能优良的调度器,为数据流提供最坏情况下的时延和时延抖动保证。

u 加权公平队列算法(WFQ)GPS算法最大的缺点是不能处理长度可变的数据包。

WFQ算法是GPS算法的近似。

假设是数据包在GPS算法中的离开时间,那么WFQ算法就是一个模拟GPS算法并按升序调度数据包的工作保留算法,也就是说WFQ算法总是选择值最小的数据包进行调度。

下面介绍WFQ算法的虚拟时间实现。

假设时间是事件的发生时间(同时发生的事件可以任意排序),服务器的处理速率为。

在服务器中,第一个发生事件的时间记为=0。

可以看出在时间间隔(,)内处于激活状态的数据流是固定的,我们将它记为集合。

当服务器空闲时,虚拟时间记为0,那么WFQ的计算如下:的变化率为,每个暂存的数据流接收到的处理速度为。

假设数据流的第个数据包的到达时间为,长度为,和分别表示这个数据包的开始虚拟时间和结束虚拟时间,,那么,我们可以得到:从实现的角度来看,WFQ算法的虚拟时间实现有两个重要优点:l 数据包的完成时间决定于数据包的到达时间和上一个数据包的完成时间;l 数据包根据完成时间升序被处理;WFQ使用虚拟时间存在的缺点:跟踪集合需要花费很大的开销。

2.4虚拟时钟算法(Virtual Clock)虚拟时钟算法根据数据包的到达时间和用户定义的保留速率计算数据包的时间戳。

假设是数据流的第个数据包的时间戳,是数据流的保留速率,是长度为的数据包的实际到达时间,那么数据包的时间戳定义如下:←如果数据包比预期的到达时间晚,那么经过最大延迟后数据包被传输;如果数据包比预期的到达时间早,在最坏情况下,数据包被传输的时间为。

最坏情况下的服务质量不受其它连接行为的影响。

2.5存储转发队列(Stop-and-Go)存储转发队列将输入和输出链路的时间轴分为固定长度的时隙“帧”。

在两帧之间到达的数据包只能在下一帧中被传输,在同一帧中的数据包可以以任何次序传输,因此每个数据包都被引入一个固定的时延。

如果数据包的最大到达速率小于帧中保留的时间片,那么这种算法能确保有限的时延和时延抖动。

存储转发队列有两个问题:因为算法是非工作保留的,所以没有静态统计复用收益;时延与帧分配的颗粒度有关,选择小的帧长度可以获得小的,但是,为了得到好的带宽利用率应该选择大一些的帧长度。

2.6循环队列(round-robin)循环队列通过循环服务避免局部队列饥饿。

调度器总是顺序地移到下一个有分组要发送的队列(空队列被跳过)。

如果每个队列都有分组等待发送,调度顺序和队列顺序匹配;如果一些队列为空,则其它队列被频繁地服务。

在极端情况下,如果其它队列都为空,单个队列就可以使用全部链路带宽。

当分组进入一个空队列时,该队列在下一个循环中被服务,这样就可以避免队列“饥饿”。

循环调度的缺点是分组时延难于改进,它不可能为低时延业务分配专用队列。

每个队列的服务间隔完全依赖于那段时间内其他队列中有多少分组等待发送以及这些分组的长度,这些变量难以准确预测,所以RR调度容易产生时延抖动。

调度器可以通过改变服务顺序(例如采用顺序1,2,3,2,4,2,1,2,…)更频繁地调度某些队列以给这些队列更频繁的传送机会,然而分组大小的随机分布仍然会造成时延抖动问题。

2.7差额循环队列(DRR)和加权循环队列(WRR)DRR算法是RR算法的扩展。

DRR算法为每个队列分配一个常量QN(以权重为比例的时间片)和一个变量DN(差额)。

QN反应了该队列可以发送的长期平均字节数。

DN的初始值为零且当队列为空时复位为0。

当DRR算法服务一个新队列时,调度器复位计数器Bsent(表示该循环已经从队列中发送的字节数)。

当下面两个条件满足时,DRR算法从队列中发送分组:l 队列中有分组等待发送;l (QN+DN)大于等于(Bsent+队列中下一个分组的长度)。

否则,该队列的差额DN+1被置为QN+DN-Bsent,调度器按顺序移到下一个队列。

QN+DN 表示在服务时间间隔内队列能够发送的最大字节数,在一定程度上DN可以平滑数据流的突发。

队列通过QN可以获得长期的相对带宽分配。

如果激活队列的数目小于N,则激活队列可以根据QN值共享未用的输出链路带宽。

WRR算法非常类似于DRR算法。

WRR算法采用类似的时间片和差额的概念,但是算法稍有不同。

在WRR中,当队列发送(Bsent)的字节数超过队列允许的限制时(仍为QN+DN),才对下一个队列进行服务。

因此,差额是一个负数值(超出QN+DN的数量)且被当作下一个循环该队列发送的字节数的减少量。

3. WFQ算法与其他调度算法的比较在DRR算法中,每个队列都有一个权值。

服务器按照预先规定的顺序以速率轮询每个队列。

如果遇到一个空队列,服务器立即移到下一个队列。

如果队列错过了它的传输时序就只能等到下一个属于它的时序才能传输。

如果每个队列都在使用,那么该队列的数据包要等到所有的队列都处理完之后才能被处理。

WFQ不受这种影响,而且比DRR更适合于处理变长数据包。

图3 虚拟时钟算法(VC)的局部不公平性虚拟时钟算法(VC)可以为数据流提供带宽和平均时延保证,但是,如果当系统处于轻负荷状态时,某个数据流发送了大量的突发分组,那么当其他数据流被激活以后,这个数据流会受到惩罚(称为局部不公平性,如图3所示),WFQ算法不会产生局部不公平性,这样数据流就可以充分利用网络轻载时的系统资源。

相关文档
最新文档