学习QOS区分模型
出处:http://blog.163.com/k_hunter/blog/static/295037242011313842354/
QOS定义:
从技术角度而言,Qos是网络中管理数据流的可用带宽、延迟、抖动以及分组丢弃的技术集合。
PHB(Per-Hop Behavior)是DS节点作用于数据流的行为。网络管理员可以配置DSCP到PHB的映射关系。
如果DS节点接收到一个报文,检查其DSCP,发现未定义到PHB的映射,则DS节点将选择采用缺省PHB(即Best-Effort,DSCP=000000)进行转发处理。每个DS节点必须支持该缺省PHB。
目前,IETF定义了四种标准的PHB:
l 类选择码CS(Class Selector)
l 加速转发EF(Expedited Forwarding)
l 确保转发AF(Assured Forwarding)
l 尽力而为BE(Best-Effort)
其中,BE是缺省的PHB。
(1)Default(BE) 000 000
标记000000在RFC2474中被定义为尽力服务。这意味只能理解IP优先级的路由器应该是000,也就是在IP优先权环境中尽力服务的定义。
(2)Class Selector(CS)
同样的,RFC2474预留了所有格式为xxx000的标记,以提供与IP优先权值的后向兼容。
如下表:
位优先权含义
001000 类选择1:无区别服务的节点读做001,按优先级1(priority)处理
010000 类选择2:无区别服务的节点读做010,按优先级2(immediate)处理
011000 类选择3:无区别服务的节点读做011,按优先级3(flash)处理
100000 类选择4:无区别服务的节点读做100,按优先级4(flash override)处理
101000 类选择5:无区别服务的节点读做101,按优先级5(critical)处理
110000 类选择6:无区别服务的节点读做110,按优先级6(internet)处理
111000 类选择7:无区别服务的节点读做111,按优先级7(network)处理
(3)保证转发(Assured Forwarding)
AF保证转发根据DSCP值来定义类别,它对于理解DSCP AF术语和DSCP值之间的对应关系至关重要。AF定义了4种AF类型:AF1x-AF4x,每个类之间都彼此完全独立,其中类别AF4比类别AF1更重要。在每种类别中,有3种丢弃概率。根据要求的吞吐量、延迟、抖动和丢包率,用户可以配置数据报的PHB,或者根据访问网络服务的优先权配置PHB,这取决于网络的策略。AF PHB定义了一种给通信流类别提供不同转发保证的方法。
DSCP中前3位用来指定AF PHB的类别,接下来2位指定丢弃概率,最后一位总是为0
表:
PHB 类别 丢弃概率 DSCP值
AF 类别1 AF1x AF11(丢弃概率低) LOW 00 001010 10
AF12(丢弃概率中) MEDIUM 00 001100 12
AF13(丢弃概率高) HIGH 00 001110 14
AF 类别2:AF2x AF21(丢弃概率低) LOW 00 010010 18
AF22(丢弃概率中) MEDIUM 00 010100 20
AF23(丢弃概率高) HIGH 00 010110 22
AF 类别3:AF3x AF31(丢弃概率低) LOW 00 011010 26
AF32(丢弃概率中) MEDIUM 00 011100 28
AF33(丢弃概率高) HIGH 00 011110 30
AF 类别4:AF4x AF41(丢弃概率低) LOW 00 100010 34
AF42(丢弃概率中) MEDIUM 00 100100 36
AF43(丢弃概率高) HIGH 00 100110 38
(4)EF(Expedited Forwarding,快速转发)
快速转发PHB(Expedited Forwarding PHB)可以用来实现的丢失率,低延迟,低抖动,确定带宽,端到端服务.EF PHB针对VoIP和视频会议这样的应用. 导致分组延迟和分组抖动的主要原因是如果一个接口接收到的待转发流量超过其负载能力时,会形成排队延迟, 排队延迟通常是在拥塞时,队列过长引起的,EF PHB确保通信不需要排队或队列足够短。
路由器可以通过使用不同的EF功能实现方法, 为某个端口上特定的离开速率分配资源。 当EF通信可以在高度加权的队列上传送,例如CBWFQ,WRR,DRR等分组调度技术提供了这个功能。对于网络中的 EF通讯,推荐使用DSCP 101110(46)。RFC建议在多数cisco 设备中使用监控程序对EF数据报进行速率限定。特别地,如果配置要求为所有标记DSCP46的分组提供EF,而且如果为具有EF PHB权限的数据流配置128Kbit/s的出口速率,同时带有DSCP46标记的数据流达到129Kbit/s的速率,有1kbit/s带有DSCP46标记的数据流将被丢弃,以确保接收EF队列的速率不超过发送速率。但是如果没有发生拥塞,队列也不会被激活,监控机制也不会被激活。
EF PHB对应的DSCP为: 101110, 46
EF PHB可提供低丢包率、低时延、确保带宽的应用,其提供的QoS质量高于AF PHB.
队列技术
FIFO(First In First Out,先入先出)
是一种最简单的队列机制。 分组的传输顺序与接收顺序相同
2.048M以上接口默认队列方式,硬件队列(TxQ)也基于该队列规则处理数据包.
2.048m以下默认队列方式为WFQ只有一个队列,tail-drop
想在小于E1的接口上也启用FIFO,可在接口上输入no fair-queue命令
设置FIF的队列缓存:R1(config-if)#hold-queue 200 out (200为数据包的个数)
PQ(Priority Queuing,优先级队列)
提供4种队列,高优先级、中优先级、正常优先级和低优先级队列
每个队列为fifo调度.tail-drop.
只要高优先级队列中有数据包,一定先转发高优先级队列的数据包,传完高优先级队列的才传低优先级队列中的
建议在低带宽接口上使用优先级排队.前提是关键型任务或增值应用的流量提供绝对的优先级保证
access-list 101 permit ip any any
priority-list 1 protocol ip high list 101 //把access-list 101定义的数据映射到高优先级队列
priority-list 1 interface fa0/0 medium //把来自fa0/0的流量映射到中等优先级队列
priority-list 1 default normal //所有其他流量映射到正常优先级队列
priority-list 1 queue-limit 20 30 40 50 //定义队列深度,分别代表high,medium,normal,low
interface s1/1
priority-group 1 //把PQ应用在接口上
show queueing (看所以队列)
一般来说,高优先级的会优先传输,因此不需要很深的缓存队列。但是如果超出了队列深度,那么高优先级的也将会有丢弃。默认是20、40、60、80
CQ(Custom Queuing,定制队列)
有1~16队列,0队列是PQ队列,为最优,系统队列,用于处理网络控制信息 ,共17个队列
CQ使用WRR(Round-Robin)机制
建立在PQ的基础上
轮循调度,第一个传完就传第二个
为了能够为每个队列分配一定的带宽,必须为每个队列定义一定字节数的数据包
CQ与PQ不能同时
Queuing 0为系统队列,执行方式为PQ。可以改lowest-custom
queue-list list-number lowest-custom queue-number
比如命令queue-list 1 lowest-custom 3,设置0,1,2都是优先级队列,3以及3以上编号的队列都是定制队列。
interface serial 1/0
custom-queue-list 50 //应用CQ到接口上
queue-list 50 protocol ip 1 list 101 //把access-list 101定义的数据分配到队列1
queue-list 50 queue 1 limit 40 //定义队列1允许通过的最大包数,默认是20,范围是0~32767
queue-list 50 interface fa0/0 2 //把从E0/0进入的流量分配到队列2
queue-list 50 queue 2 byte-count 3000 //定义队列2在一个轮循内转发的平均字节数
queue-list 50 protocol ip 3 //把所有ip流量分配到队列3
queue-list 50 default 4 //所有其他流量分配到队列4
access-list 101 permit ip any any precedence 5
WFQ(Weighted Fair Queuing,加权公平队列)
按流进行分类
WFQ会根据数据包中的源ip,目标ip,ToS,协议号,TCP端口号等自动分类(通过一个Hash算法),相同应用的数据流会被分到同一个队列。WFQ给每个流指定一个权重,权重决定了队列中分组的传输顺序。首先会传输权重小的分组。并加入IP优先级,按流的IP优先级来分配每个流的带宽,优先级的数值越大,分配的带宽就越大,确保相同流中的每个数据报都获得公平的带宽,体现不同流的之间的权值。
注:WFQ在
Low-bandwidth traffic has effective
priority over high-bandwidth traffic, and high-bandwidth traffic shares the transmission service
proportionally according to assigned weights.
第一个是WFQ不支持隧道或采用了加密技术的接口,因为这些技术要修改数据包中WFQ 用于分类的信息。
第二个WFQ提供的带宽控制的精确度不如CBWFQ和CQ等队列机制。
将对延迟不敏感的大包往后排,对延迟敏感的小包往前排。每个队列使用基于流的FIFO队列。
默认256个队列(范围16~4096之间,要配置为2的n次方的数目),最大还支持8个系统队列,和1000个RSVP流队列
WFQ给每个会话分配一个队列,队列优先级分7种。
速率不超过E1(2.048Mbps)的Serial默认使用WFQ。在使用X.25或压缩PPP的Serial,WFQ被禁用。E3/T3 (34M/45M)的WAN接口和Serial不支持WFQ。
每个流所占带宽比例(为自己的优先级数 + 1)/ (所有 (流的优先级 + 1)之和)即每个流可得的带宽比例
队列中的丢弃不再是Tail-Drop,而是WFQ Drop。IP优先级对WFQ的丢弃机制没有影响
HQ(hold-queue保持队列,即最大队列长度)
CDT(congestive-discard-threshold,拥塞丢弃阀值)相当于警戒线
大于HQ,
入站的包属于最长的队列,则drop掉
不属于最长队列,则放入该队列,并drop掉最长队列的最后一个包
大于CDT,
入站的包属于最长的队列,则drop掉
不属于最长队列,则放入该队列
interface so1/0
fair-queue 99 256 0 //99为修改CDT,默认是64,范围16~4096之间,要配置2的n次方的数目
推荐阅读
-
机器学习:基于 Sklearn 和 XGBoost 框架,使用逻辑回归、支持向量机和 XGBClassifier 诊断和预测一个人是否患有自闭症-4。模型训练
-
机器学习--模型评估和调整--K 倍交叉验证
-
[PyTorch] 5 种高级训练技术(损失函数、学习率、模型微调、半精度训练、数据增强、超参数设置)
-
从 RMSE 和 MSE 到更多选择:探索机器学习模型性能指标
-
YoloDeployCsharp]深度学习模型部署测试平台基于 .NET 的 YOLO 深度学习模型部署测试平台
-
KDD 2021|美团联合多所大学提出多任务学习模型,应用于联名卡客户获取场景
-
KDD 2021|美团联合多所大学提出多任务学习模型,应用于联名卡客户获取场景
-
深度学习之美]神经网络不能自说自话,M-P 模型可以找到(入门系列之三)
-
[摘要] 配置运行深度学习模型的主机
-
培训扬声器,通过对比学习初步验证模型