专栏首页网络技术联盟站通俗易懂讲一下:QOS 概念及术语

通俗易懂讲一下:QOS 概念及术语

session 1 QOS概念及术语澄清

TOS、DSCP、PHB、COS、EXP(MPLS的)、ipv6TC(ipv6 Traffic Class)

ipv4的包头中TOS字段定义了QOS服务质量,其中的被IEEE在RFC中规定的对应关系是:

xxx                      这个是 ippredence=cos=Exp

xxx xxx                  这个是dscp=ipv6TC(8bit用前6bit)

xxx xxx x x              这个是TOS字段,前3bit对应ipp=cos=exp,前6bit对应dscp=ipv6TC,后面2个xx保留

xxx dtr c ?             TOS字段,前3bit表示优先级,后面5bit中分别是D=时延,T=带宽,R=可靠性,C=cost开销(保留),?=保留

                         在PHB中前3bit表示优先级,后2个bit表示丢包,第6bit固定=0,最后2bit保留

综上所述,TOS中的bit包含了ipp、cos、exp、dscp、ipv6tc、phb所用到的bit

1、DSCP与PHB

DSCP只是个标记,PHB是每一跳执行动作。就比如DSCP有0-63=64个,但是这64个之中只有16个值被规定了有相应的PBH转发动作。这个是IEEE规定的在多个RFC文档中有记载。所以DSCP和PHB的关系是DSCP中的16个值被规定成了PHB动作,只有这个16个DSCP值默认会被设备执行相应的PHB转发动作,其余的值并没有被PHB规定,故不存在转发动作,都是按照默认的BE转发执行,这些值都是留给攻城狮可以手动定义转发动作的。

PHB有哪些?答案是16个动作,每个动作就是一个DSCP(命名),没有被PHB规定的其他DSCP值(如001 011)按照BE的优先级执行,PHB按照动作优先级的从优到次分别 如下:

所有的PHB的前3bit都是对应ippredence=cos=Exp的8个优先级,后3bit除了AF使用其中2bit做丢弃优先级用外,其余的CS、EF、BE都是固定值,详细见如下:

CS7     111 000          为什么是CS7?仔细看一下发现前3bit从最低优先级BE开始到CS是0-7刚好对应了ipp中的0-7=8个优先级

CS6     110 000         按照算法xxx=421,那么111=4+2+1=7,而110=4+2+0=6,因为CS6-7(对应ipp6-7)用于网络协议要求的带宽优先级最高,因此前3bit的值最大,后3个bit000代表不允许QOS丢包,正常网络丢包有TCP重传机制来控制

EF5     101 110         EF前3bit是101=5也就是对应了ipp5,用于语音voice或视频video,要求的带宽是高,对于时延、抖动比较敏感因此前3bit仅次于CS,但是不要求丢包率,所以后3bit大以防止占用太多带宽而不丢包会压榨光其他网络流量的带宽

AF4     100 01   0     AF中前3bit分别对应了ipp的1-4(只用1-4是因为PHB规定),所以分别是001、010、011、100也就是AF1-4

        100 10   0      AF中的后2bit为丢弃率,值越大丢弃优先级越高,最后1bit固定=0

        100 11   0      所以AF的格式为xxx yy0 前面的x表示优先级,后面的y表示丢包,这样每个AF就有3种组合,4个AF就有12种组合

AF3     011 01   0     AF一般用于高优先级和中等优先级的数据业务

        011 10   0

        011 11   0

AF2     010 01  0

        010 10   0

        010 11   0

AF1     001 01  0

        001 10   0

        001 11   0

BE0     000 000         BE就是QOS中默认的FOFI先进先出型,尽力而为模型,默认的数据都是这个DSCP值

2、QOS中的PHB规定对应的业务等级

注意下表是ipp对应phb,因为phb就是按照ipp进行划分的所以是1对1的关系,而ipp对应dscp的就是1对8的关系,1个ipp=8个dscp值,因为dscp的后3bit是2的3次方=8中排列(前3bit中ipp与dscp是1对1,后面dscp多了3bit的8中组合,在加上前3bit的话就是8种,所以是1对8),如ipp0对应dscp的0-7(8个)

ipp =cos=exp          phb.dscp=ipv6tc

7         111                      CS7

6         110                      CS6

5         101                      EF(5)

4         100                      AF4

3          011                     AF3

2          010                     AF2

1          001                     AF1

0          000                     BE

ipp与dscp的对应关系

ipp                            dscp

7          111               111   000             56

                             111  001              57

                             111  010              58

                             111  011              59

                             111  100              60

                             111  101              61

                             111  110              62

                             111  111              63

6          110               110  xxx              48-55     剩余的1ipp与8DSCP的对应如法炮制

3、简单的流分类和复杂的流分类

简单的流分类是指,使用默认的PHB的转发优先级去转发,所有设备是默认都支持默认的PHB的,需要开启QOS功能。

也就是说,我们不去手工指定数据包的优先级(ipp、dscp、cos等),而是以数据包自己的qos优先级属性去转发,比如一个voice的报文默认就是EF的phb.dscp值,那么它进入一个开启qos功能的设备后就会被按照默认的phb(EF)优先级进行转发,而一个http的数据包文默认就是BE的phb.dscp值,那么它就会被按照默认的phb(BE)优先级进行转发。

但是简单的流分类并不简单,反而更加复杂。复杂在你需要事先了解这所有的默认QOS的属性和规则,如PHB、DSCP、ipp等

4、复杂的流分类

这个虽然叫复杂的流分类,但是相对于简单流分类反而还简单些,这种操作模式是有攻城狮手工去配置数据的转发优先级和动作的,最常见的是按照数据包的五元组、特征信息等使用ACL、traffic-class、behavior、traffic-policy等工具来直接定义数据包的优先级和转发动作,比较浅显和易理解

5、Service Class服务类和标准QOS的映射

服务类也叫做内部标记(内部自定义的转发优先级和转发动作PHB),对应的默认的QOS属性(通用的ipp、dscp、PHB等的值)也叫做外部标记

通常数据在进入(上行)设备的时候,会将外部标记转换成内部标记,而出去(下行)设备的时候,会将内部标记恢复为外部标记以便下个设备能够得到数据本身的标准的QOS属性,如下图中,一个voice数据包默认的QOS属性是ipp=5、phb=ef,而本地的内部标记Service Class可将它定义为ipp=0、phb=be执行转发(当然没有人会这样做,这里只是举例说明内部标记和外部标记的概念,不然容易懵逼),如果不进行转发的话,那么在有内部标记(自定义QOS)的情况下,出去到下游的设备的数据包的QOS会携带内部标记的QOS,不会恢复成标准的QOS外部标记

6、QOS的端口信任

下游设备可以在端口上配置QOS的信任(trust)或不信任,来信任/不信任(继承)上游设备发来的带有QOS优先级的报文,就如上图中假设AR1出去的报文没有进行内部标记到外部标记的恢复映射,那么从AR1出来的voice报文的ipp=0、phb=be。这时AR2可以选择信任或者不信任AR1发来的数据包的qos优先级,如果信任则继承voice报文ipp=0、phb=be的qos属性,如果不信任则会按照标准的qos来恢复这个voice报文ipp=5、phb=ef的qos属性。接口默认都是untrust不信任的。

但如果AR2中有内部标记service class定义voice报文的ipp=1、phb=af11的话,那么进入AR2的voice报文的qos属性就会表位ipp=1、phb=af11这样的qos属性

本文为CSDN博主「alone_map」的原创文章 原文链接:https://blog.csdn.net/alone_map/article/details/81106610

本文分享自微信公众号 - 网络技术联盟站(it666lmz),作者:夏轩

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • H3CNE实验系列 | 三层交换&GVRP

    实现不同 VLAN 间通信,其中 PC1 在 VLAN10,PC2 在 VLAN20。

    网络技术联盟站
  • Comware V7系统设备,密码+秘钥双因子认证方式,登陆设备典型配置案例

    1.首先制作密钥对:密钥对可以在Conware V7系统网络设备上生成后下载到客户端,也可以在客户端上通过工具软件,如security CRT等进行制作后,通过...

    网络技术联盟站
  • 这种讲解equals和==区别的方式,全网第一!

    开始学习Java的总是被equals、==混淆,即使看了相关的技术贴子,过一段时间也很容易忘记,那么有没有一种办法使得还在“淤泥”中挣扎中的攻城狮们过目不忘呢?...

    网络技术联盟站
  • 了解NIO

    总结一下上面那段话,io就相当于一个自来水管,水相当于数据,水通过自来水管流向其他地方相当于我们的数据传输;那么nio呢,它其实相当于坐高铁/火车,我们(数据)...

    奕仁
  • Mysql常用sql语句(9)- like 模糊查询

    https://www.cnblogs.com/poloyy/category/1683347.html

    小菠萝测试笔记
  • postman测试上传图片接口步骤教程

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,前端也要学会使用,只有这样,当接口调试不通的时候,用测试工具,才能够更有底气的甩...

    祈澈菇凉
  • Python数据处理从零开始----第二章(pandas)(十)pandas合并数据

    先介绍一下几种数据合并方式:左连接(left join)、右连接(right join)、内连接(inner join)、全连接(full join)。

    用户1359560
  • DC综合5--基本的时序路径约束(上)

    时序约束可以很复杂,这里我们先介绍基本的时序路径约束,复杂的时序约束我们将在后面进行介绍。

    数字IC小站
  • “历史遗留”漏洞:浅析新型SSL/TLS漏洞FREAK

    最近安全研究人员发现一种新型SSL/TLS漏洞。预计在十年内,数以百万计的苹果、安卓用户访问HTTPS网站时将可能遭受中间人进而被窃取账号和密码,即使这些网站使...

    FB客服
  • 多维度数据分析是什么?该怎么做?

    做数据分析的同学们都遇到过这个问题:从多维度分析问题,提出对业务有意义的建议。这个题目看起来很简单,可很多同学辛辛苦苦跑了一堆报表,结果只落得业务一堆抱怨:

    接地气的陈老师

扫码关注云+社区

领取腾讯云代金券