QoS质量配置

embedded/2025/2/22 15:14:51/

他们祝你挺拔,再挺拔一点;我只祝你,永远年少,永远一骑当先.

1. QoS的概念

QoS(服务质量)是指一个网络能够利用各种各样的基础技术向选定的网络通信提供更好 的服务的能力。这些基础技术包括:帧中继(FrameRelay)、异步传输模式(Asynchronous TransferMode,简写为ATM)、以太网和802.1网络,以及IP-路由网络。为了保证在这 些网络上的QoS,在路由器中实现了排队、时序安排以及QoS信令技术等功能。特别是, 通过采用支持专用带宽和避免并且管理网络拥塞情况等技术,本公司路由器可提供更好 的和更可预测的网络服务。

2. QoS的三种服务模型

服务模型描述了一组端对端的QoS能力,即网络从一端到另外一端传送特殊网络通信所 要求的服务的能力。QoS 软件支持三种类型的服务模型:尽力而为的、集成的以及区分 式服务。

1.尽力而为服务(Best-EffortService)

尽力而为服务是一种单一的服务模型。在这种服务模型中,应用能够在任何必要的时候 发送任意数量的数据,而不需要申请许可或者事先通知网络。对于尽力而为服务来说, 如果条件允许的话,网络就能够传输数据,而不需要在可靠性、延时范围或者吞吐量方 面的保证。实现尽力而为服务的路由器QoS功能是先入先出(firstin,firstout,简写为 FIFO)排队。

2.集成服务(IntegratedService)

集成服务是一种复合的服务模型,它能够适应多种QoS需求。在这种模型中,应用在发 送数据以前通过QoS信令向网络申请一种特殊类型的服务。这个请求主要是为了网络通 知该应用的通信的概况,并且申请某种特殊类型的服务,这种服务可以满足它的带宽和 延时需求。只有从网络得到确认信息以后,这个应用才能够发送数据。并且,它所发送 的数据必须符合它先前所描述的通信概况。

根据来自应用和可用网络资源的信息,网络能够完成准入控制。通过维持每个流的状态, 然后基于不同的流进行智能化排队的操作,只要通信量保持在请求说明的范围之内,网 络就可以实现该应用的QoS需求。

路由器软件的QoS通过使用资源保留协议(ResourceReservationProtocol,简写为 RSVP)提供可控制负载服务(Controlled Load Service)和保障速率服务(Guaranteed RateService)的功能。可控制负载服务即使在网络拥塞期间,也允许应用保持低延时和 高吞吐量的业务。为了实现这个目的,路由器QoS提供了加权公平排队(Weighted Fair Queuing,简写为WFQ)。

3.区分式服务(DifferentiatedService)

区分式服务与集成服务模型不同的是,在发送数据以前,使用区分式服务的应用不需要 明确地给路由器发送信号。

对于区分式服务来说,网络如果想要传送的是一种特殊的服务,就要在每一个数据包中 指定相应的QoS标记。这种指定能够以多种不同的方式体现,例如,在IP数据包中使用 IP优先权位设置。路由器使用这个QoS规定来进行分类,并且完成智能化排队的任务。 路由器QoS提供的加权随机早期检测(WeightedRandomEarlyDetection,简写为 WRED),自定义排队(Custom Queueing, 简写为CQ)以及优先权排队(Priority Queueing, 简写为PQ)可用于发送区分式服务。

3. QoS的各种队列算法

QoS的各种排队算法是实现QoS的重要保证。本公司路由器中实现了带宽分配的加权公 平排队(Weighted Fair Queueing,简写为WFQ),自定义排队(Custom Queueing,简写 为CQ),优先权排队(PriorityQueueing,简写为PQ);实现拥塞控制的加权早期随机检测(WeightedRandomEarlyDetection,简写为WRED);以及最简单的先入先出算法(FIFO)。

1.加权公平排队(WeightedFairQueueing)

WFQ是一个自动的时序安排方法,它对所有的网络通信都提供了公平的带宽分配方案。 WFQ把优先权或者权重应用到确定的通信上以把通信划分成会话,并且决定每一个会话 相对于其他的会话来说可拥有多少带宽。WFQ是基于数据流的算法,它能够把高优先级 通信调度到队列的前端来减少响应时间,同时也能够在高带宽数据流中公平地分享剩余 的带宽。换句话说,WFQ为数据量少的通信(例如Telnet对话)提供比数据量大的通信(例如FTP对话)更高的优先权。WFQ为并发的文件传输提供链接容量的平衡使用; 也就是说,当多个文件传输任务同时进行的时候,为这些数据传输任务提供同等的带宽。

WFQ克服了FIFO排队方式的严重局限性。当FIFO排队方式生效的时候,通信根据抵 达接口的顺序发送出去,而与带宽的耗费或者相关的延时无关。其结果是,文件传输和 其他数据量较大的网络应用常常会耗费几乎所有可用的带宽,从而剥夺其他通信的带宽。 WFQ动态地把通信划分成组成一个个的会话的消息,以便保证带宽在单个的会话之间公 平分享,保证数据量少的通信能够以一种及时的方式进行传输。

基于数据包报头的编址,WFQ可以把通信划分成不同的数据流。由于大部分通信都是IP 数据。所以基于IP头部的各个字段(源和目的地址,源和目的端口,协议类型以及TOS) 对数据包进行分类。

在进行传输以前,WFQ把各种会话的数据包放置在公平排队中。数据包从这些公平排队 中移走的顺序取决于每一个抵达数据包的最后一位所表示的传送虚拟时间(finish number)。

在绝大多数所配置的运行速率为2.048Mbps或者更低的串行接口上,WFQ是作为默认 的排队模式来使用的。

2.具体配置详见WFQ

普通的加权公平排队只是自动识别流,并不能根据需要为某些特殊的流提供专门的服务。 所以本公司路由器提供基于类型的加权公平排队(CBWFQ),这种算法是对普通的加权 公平排队算法的加强。它能根据用户定义识别出某类流,并为该条流分配一定的权重。

3.加权早期随机检测(WeightedRandomEarlyDetection)

随机早期检测(Random Early Detection,RED)技术是一种常用的避免拥塞机制。一旦 配置上RED后,当路由器丢弃信息包时,便可利用RED进行控制。如果你不配置加权 随机早期检测(WeightedRandom EarlyDetection,WRED),路由器将使用一种叫做尾 部丢弃(tail drop)的粗糙的默认信息包丢弃技术。(加权早期随机检测(WRED)并不为专 门的流保证其所占带宽比例)尾部丢弃同等对待所有的通信,不对服务等级进行区分。在发生拥塞时,发送队列将会 堆积一定量的包。当输出队列排满时,信息包将被丢弃,直到拥塞解决、输出队列不再 爆满为止。而当RED 用来解决路由器上的拥塞时,能够避免该问题的全球化(globalization)。全球同步(global synchronization)发生在拥塞峰值时,许多采用TCP协议的主机降低它们的传送速率来响应撤销信息包,然后在拥塞减少后,再次提高它们 的传送速率,而这段时间转送链路未能完全被利用。RED 技术的基础是,假定大多数应用对通信中的丢失很敏感,当它们中的某些数据包被 撤销时,将会暂时降低传输速率。TCP 就是准确地——甚至是很健全地——对丢弃通信 量作出反应,即通过放慢它的传输通信量,来有效地保证RED的丢弃通信量技术像拥塞 避免信令技术一样有效运行。RED 的目标是控制平均队列长度,来指示末端主机,在需要时暂时降低它们的信息包传 送速度来实现的。RED 通过在高拥塞期到来之前对信息包进行随机丢弃,来告诉信息包 源降低它的传输速率。假定信息源使用了TCP,它将降低它的发送速率,直到所有信息 包到达目的地并指示拥塞被清除为止。你可通过使用RED来调用TCP,以降低信息包的 传送速率。TCP 不仅可以暂停发送,而且还可以迅速重新启动,来使传输速率适应网络 可支持的速率。

当平均队列长度已经超过最小阈值,RED 开始丢弃信息包。信息包丢弃的速率随着平均 队列大小的提高而线性增加,直到平均队列的大小达到最小阈值,信息包丢弃停止。当 平均队列超过最大阈值时,所有信息包将被丢弃。最小阈值要设得足够高,以达到链路 的最大利用率。如果最小阈值太低,信息包将有不必要的丢弃,传送链路将不会被充分 利用。最大、最小阈值间的间距要设置得足够大,以避免全球同步。如果间距太小,许 多信息包会被立刻丢弃,引发全球同步。

4.自定义排队(CustomQueueing)

当自定义排队在某个接口上生效的时候,系统将会为这个接口维护17个输出队列。你可 以指定队列1到16。与每一个输出队列相关的是可配置字节总数以及数据包的类型。可 配置字节总数指定在系统移动到下一个队列以前,系统应当从当前的队列中发送多少字 节的数据。编号为0的队列是一个系统队列;在任何编号为1到16之间的队列得到处理以前,编号 为0的队列将先被清空。系统把优先权级别高的数据包,例如保持活动数据包以及信令 数据包,安排到这个队列。其他的通信不能够使用这个队列。对于编号为1到16的队列来说,系统相继地在这些队列之间循环,在每次循环中都从当 前队列中取出配置好的字节总数,并且在移动到下一个队列以前把这些数据包发送出去。 当处理某个队列的时候,系统就会一直发送数据包,直到发送的字节总数已经超出这个 队列的字节总数或者这个队列已经清空为止。一个队列所使用的带宽只能够根据字节总 数来间接指定。与PQ相似的是,CQ是静态配置的,因此不能够自动地适应不断变化的 网络情况。

5.优先权排队(PriorityQueueing)

优先权排队可以配置四种通信优先级(high,middle,normal,low)。在数据传输期间,优先权 排队给优先权级别高的队列提供比优先权级别低的队列绝对优惠的待遇;只要给予了最 高的优先权级别,重要的通信总会比重要性低的通信提前得到服务。根据用户所定义的标准,对数据包进行分类,然后把它们放置在四种输出队列的其中一 种队列中.未定义优先权级别的数据包将放置在一般队列中。当系统将把数据包发送出一 个接口的时候,系统就按照优先权级别由高向低开始扫描这个接口上的优先权队列。先 扫描高优先权级别的队列,然后扫描中优先权级别的队列,以此类推。然后,选中位于 最高优先权级别队列最前面的数据包,并传输。每当要发送一个数据包的时候,就重复 这个过程。

4. QoS队列配置任务列表

要进行QoS配置你需要配置接口上的队列算法,QoS信令,QoS链路效率机制。后两 种是可选的,第一类配置在每个物理接口上都有默认值,可以根据实际情况进行改变。

  1. * 配置加权公平排队(WFQ)
  2. * 配置接口上所使用的策略映像(CBWFQ)
  3. * 配置加权早期随机检测(WRED)
  4. * 配置自定义排队(CQ)
  5. * 配置优先权排队(PQ)
  6. * 监控QoS

5. QoS队列配置任务

1.配置加权公平排队(WFQ)

如果需要在一个接口上配置公平排队,在指定了这个接口以后,可以在接口配置态中使 用以下命令:

命令

目的

fair-queue

在一个接口上使用公平排队策略。

注意:在运行速率为2.048Mbps或者更低的接口上,WFQ是默认的排队模式。WFQ不适用于封装LAPB或X.25的接口。

2.配置接口上所使用的策略映像(CBWFQ)

在接口上配置某个策略映像后就可使CBWFQ在该接口生效。如果需要在一个接口上配 置某个策略映像,在指定了这个接口以后,可以在接口配置态中使用以下命令:

命令

目的

service-policy output/input_policy__-_name

让接口使用某个policy-map。

注意:该命令output方向只在配置了WFQ 算法的接口有效。

3.配置策略映像

配置策略映像以及其包含的类型映像可以指定一组不同类型的流。当某个接口使用该策 略映像时,可以根据指定类型进行一定的服务质量保障。

配置一个策略映像首先需要在全局配置态使用以下命令进入策略映像配置态:

命令

目的

policy-map p__olicy-name

配置一个策略映像并进入策略映像配置态。

进入策略映像配置态后,可以配置当前策略映像所用的类型映像的名字,所占带宽和队 列上限。要进行这些配置,可以在策略映像配置态中使用以下命令:

命令

目的

class class-name bandwidth

{bandwidth(kb__p__s)|percent bandwidth(%)} [queue-limit p__acket-numbe__r] [dscp dscp-v__a__lue][precedence prece__d__ence]

在当前策略映像中配置一个类型映像的所占带宽,

队列上限,新的DSCP值和新的优先级值。

4. 配置类型映像

配置类型映像可以定义某种类型的流。当某个接口使用的策略映像包含该类型映像时, 可以根据指定类型进行一定的服务质量保障。

配置类型映像可以在全局配置态使用以下命令:

命令

目的

class-map cl__a__ss-name match protocol

protocol-type

配置一个根据协议类型分类的类型映象。

class-map c__l__a__s__s-name match********interface interface-typeinterface-numb__e__r

配置一个根据接口分类的类型映象。

class-map class-n__a__me match access****-gro********up**** list-name

配置一个根据访问列表分类的类型映象。

class-map c__l__a__ss-name match ip dscp

dscp-v__a__lue

配置一个根据DSCP值分类的类型映象。

Class-map class-name match length min m__i__n-va__l__ue max max-value

配置一个根据长度分类的类型映象。

5.配置加权早期随机检测(WRED)

如果需要在一个接口上配置加权早期随机检测,在指定了这个接口以后,可以在接口配 置态中使用以下命令:

命令

目的

random-detect

在一个接口上使用加权早期随机检测。

6.配置自定义排队(CQ)

如果需要在一个接口上配置自定义排队,在指定了这个接口以后,可以在接口配置态中 使用以下命令:

命令

目的

custom****-queue-****list list-number

在该接口上使用CQ算法,参数list-number为所 采用的自定义列表号。范围是1-16,无默认值。

7.配置自定义列表

自定义列表可以定义相应队列的分类方法,发送字节数和队列上限。当在某接口上使用 该自定义列表时,即可根据该列表进行调度。

配置自定义列表队列上限和发送字节数,可以在全局配置态使用以下命令:

命令

目的

queue-list_list-__n__umbe_rqueue

指定每一个自定义队列的上限。参数

_queue-_n__umberlimitlimit-number

limit-number指定了能够排列在队列中的数据

包的数量。范围是0到32,767,默认为20。

queue-list_list-_n__umberqueue _queue-_n__umberbyte-count byte-count-nu__m__ber

指定每个队列发送字节。参数 _byte-count-nu__m__ber_指定在某个特定的循环中,系统能够从一个给定的队列传输的最小字 节数,默认为1500。

配置自定义列表的分类方式,可以在全局配置态使用以下命令:

命令

目的

queue-list list-num__b__er protocol protocol-type queue-num__b__er [keywor********d key-value]

根据协议类型建立自定义队列。

queue-list list-num__b__er interface interface-type _interface-number queue-_n__umber

根据从某个给定接口输入的数据包,建立自定 义队列。

queue-list list-nu__m__ber default

_queue-_n__umber

为那些不符合自定义列表中的任何一条规则 的数据包,分配一个队列编号,默认为1。

8. 配置优先权排队(PQ)

如果需要在一个接口上配置优先权排队,在指定了这个接口以后,可以在接口配置态中 使用以下命令:

命令

目的

priority-group list-number

在该接口上使用PQ算法,参数list-number为所 采用的自定义列表号。范围是1-16,无默认值。

9.配置优先级列表

优先级列表可以定义相应队列的分类方法和队列上限。当在某接口上使用该优先级列表 时,即可根据该列表进行调度。

配置优先级列表队列上限,可以在全局配置态使用以下命令:

命令

目的

priority****-listlist-number****queue-limit high-limitmiddle-limitnormal-limit**** ****low****-****limit

指定每一个优先权队列的队列上限,默认值高

20,中40,普通60,低80。

10.QoS显示

1.显示接口队列情况paradise

要显示接口的队列的状况,可以使用以下命令:

命令

说明

showqu********eueinterface-type__inte__r__f__ace-number

显示该接口上的队列信息。

2.显示自定义列表的配置

要显示自定义列表的配置的状况,可以使用以下命令:

命令

说明

show queueing custom

显示自定义列表的配置。

3.显示优先级列表的配置

要显示优先级列表的配置的状况,可以使用以下命令:

命令

说明

show queueing priority

显示优先级列表的配置。

4.显示类型映像的配置

要显示类型映像的配置,可以使用以下命令:

命令

说明

showclass-ma********p [class-na__m__e]

显示类型映像的配置。

5.显示策略映像的配置

要显示策略映像的配置,可以使用以下命令:

命令

说明

show********policy-map [policy-nam__e]

显示策略映像的配置。

11. QoS配置方案

如果用户有四种类型的应用A,B,C和D,期望的带宽比例为10/20/40/30,包长为1428/582/371/1525。由于每次当这个队列接收服务时,系统会发送的字节数为包长的整 数倍。因此配置字节总数时应考虑包的长度,而不是简单的设为100/200/400/300,这样 配的话,带宽分配实际为1428/582/371/1525。要实现理想效果可按以下步骤进行:

(1) 对于每一个队列,都用你想分配给这个队列的带宽百分数除以数据包的大小(以字 节为单位)。在这个示例中比率应当是:10/1428,20/582,40/371,30/1525或者0.007,0.03436,0.10782,0.01967。

(2) 使用最小的数字来把上面所列出的四个数字进行归一化处理:1,4.9,15.4,2.8这个结果是必须被发送的数据包数量的比率。

(3) 任何一个比率值的尾数都意味着系统将要发送一个额外的数据包。把比率值进行只 入不舍操作,所得到的整数就是实际所要发送的数据包的总数。在这个示例中,实 际的所发送的数据包的比率将是1:5:16:3。

(4) 用每一种协议的数据包总数乘上相应的数据包大小,可以把数据包数目比率转换成 字节总数。在这个示例中,所发送的数据包总数是一个1428字节的数据包、5个582字节的数据包,16个371字节的数据包以及3个1525字节的数据包;即分 别从每一个队列发送1428、2910、5936和4575字节。这就是你将在你的自定义队列配置中指定的字节总数。

(5) 为了确定这个比率所代表的带宽分配,首先要确定当对三个队列都提供一次服务的 时候,系统所传输的字节总数:(1×1428)+(5×582)+(16×371)+(3×1525) =1428+2910+5936+4575=14849。然后确定每一个队列所发送的字节总数的百分比:1428/14849,2910/14849,5936/14849,4575 /14849= 9.6%,19.5%,39.8%和30.8%。正如你所看见的一样,这三个百分比很接近我们所期望的比率10/20/40/30。

(6) 如果实际的带宽比率与所希望的带宽比率不太接近,则可以用原来的比率乘上最佳 的值,这样能够使实际的带宽比率尽量地靠近这三个整数。注意,你所使用的乘数 不必是一个整数。

具体配置如下:(假定四种应用分别为udp端口100,200,400,700;使用的是一号用户列 表)

(1) 首先为这四种应用分配相应的队列(2,3,4,5)

queue-list 1 p ip 2 udp 100 queue-list 1 p ip 3 udp 200 queue-list 1 p ip 4 udp 400 queue-list 1 p ip 5 udp 700

(2) 制定每个队列的发送字节数

queue-list 1 queue 2 byte-count 1428 queue-list 1 queue 3 byte-count 2910 queue-list 1 queue 4 byte-count 5936 queue-list 1 queue 5 byte-count 4575

(3) 将该用户列表配置到端口上

interface s1/0 custom-queue-list 1

12.QoS配置示例

1.配置自定义排队(CQ)示例
  1. 把匹配IP访问列表aaa的通信分配给队列编号1:
  2. queue-list 1 protocol ip 1 list aaa

这个示例把Telnet数据包分配给队列编号2:

queue-list 4 protocols ip 2 tcp telenet

把UDP域名服务(Domain Name Service)数据包分配给队列编号3:

queue-list 4 protocol ip 3 udpdns

把大于1000字节的数据包分配给队列编号6:

queue-list 5 protocol ip 6 gt 1000

2.配置优先权排队(PQ)示例

把队列上限分别设为15 5070 100。 prority-list 4 queue-limit 15 5070 100 配置优先级列表的分类方式,可以在全局配置态使用以下命令:

命令

目的

priority****-list list-num__b__er ****protocol**** protocol-type {high | medium | normal | ****lo****w****}[key__w__ord k__ey-val__u__e]

根据协议的类型来建立排队优先级。

priority****-list list-num__b__er interface interface-type interface-number{high| medium| ****normal****| ****lo****w****}

为进入某个给定接口的数据包建立排队优先 级。

priority****-list list-nu__m__ber ****defa****ult****

_queue-_n__umber

为那些不符合优先级列表内的任何规则的数 据包,分配一个优先权队列,默认为normal。


http://www.ppmy.cn/embedded/164369.html

相关文章

路由器的WAN口和LAN口有什么区别?

今时今日,移动终端盛行的时代,WIFI可以说是家家户户都有使用到的网络接入方式。那么路由器当然也就是家家户户都不可或缺的设备了。而路由器上的两个实现网络连接的基础接口 ——WAN 口和 LAN 口,到底有什么区别?它们的功能和作用…

oracle数据库awr取间隔调整

一、查看取值间隔 SQL> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL ---------- ------------------------------ ------------------------------ ---------- 1549435079 00000 01:00:00.0 00008 00:00:00.0 DEFAULT 二、修改采集间隔和…

跳跃游戏II(力扣45)

这道题在跳跃游戏(力扣55)-CSDN博客 的基础上需要找到最小的跳跃次数。那么我们需要用一个变量来统计跳跃次数,而难点就在于何时让该变量的值增加。这一点我写在注释中,大家结合我的代码会更好理解。其他部分跟跳跃游戏(力扣55)-CSDN博客 几乎相同&#…

SpringBoot高级-底层原理

目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…

网工项目实践2.4 北京公司安全加固、服务需求分析及方案制定

本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 全网拓扑图展示 一.局域网规划设计 1.子公司北京总部局域网安全加固、网络服务需求 子公司北京总部在与运营商边界需要部署一台防火墙,保护内网的安全。…

Openssl之SM2加解密命令

### 1. 生成 SM2 私钥openssl genpkey -algorithm EC \-pkeyopt ec_paramgen_curve:sm2 \-out sm2_private_key.pem### 2. 从私钥导出 SM2 公钥openssl pkey -in sm2_private_key.pem \-pubout \-out sm2_public_key.pem### 3. 使用 SM2 公钥加密openssl pkeyutl -encrypt \-pu…

云服务中的“高可用性架构”是怎样的?

在云计算中,“高可用性架构”(High Availability Architecture,简称HA架构)是指通过设计和配置,使得系统、服务或应用能够在发生硬件故障、软件故障、网络问题等情况下,依然保持正常运行,最大程…

最多提取字串

最多提取字串 真题目录: 点击去查看 E 卷 100分题型 题目描述 给定 [a-z],26个英文字母小写字符串组成的字符串 A 和 B,其中 A 可能存在重复字母,B 不会存在重复字母,现从字符串 A 中按规则挑选一些字母,可以组成字符串B。 挑选规则如下: 同一个位置的字母只能挑选一次…