HCIE面试中有关流分类与队列关系简要说明

digest [复制链接]
发表于 : 2018-3-12 12:51:20 最新回复:2018-03-27 17:25:45
4178 16
忧郁的红雨伞  专家  

大家好:


      经常听到在IE面试中大家总是提到硬件硬件队列和软件队列等等;另外,对于队列与流分类、GTS的关系问题存在很多的模糊或错误认识,下面通过一个简单的示例阐述流分类与队列的关系。


     首先,看一下《一个报文的路由器之旅》中关于QOS处理流程的示意图,建议大家有空关注一下这些转发流程;另外,该文档是以NE路由器为例的,由于NE路由器是分布式架构,所以存在接口板、网板,而对于AR这种多核路由器大家可以忽略交换网板,可以理解为总线就好了,另外,TM(traffic-manager)芯片只有CE128、NE这种级别的设备才有,主要的作用是做VOQ和内部信元的切片和重组,大家可以参考一下数据中心交换交够的资料。


     

    


    

   综合,这两张图用一个比较直观的图例进行说明,由于本例中我们仅关注流分类与队列的问题,着色问题后续再进行说明:


   


   这里面大家可能最疑惑的就是那个内部标记,下面通过一个简单的示例进行说明:



   示例拓扑如上图,设备间运行OSPF保证连通性,AR1是本例中关注的焦点。


在SW1交换机的上行接口配置配置重标记策略,将2.2.2.2到3.3.3.3的数据包的DSCP值改为 AF32


[SW1-GigabitEthernet0/0/1]dis this

#

interface GigabitEthernet0/0/1

 undo portswitch

 ip address 13.1.1.2 255.255.255.0

 traffic-remark outbound acl 3001 dscp af32

 ospf network-type p2p

 ospf enable 10 area 0.0.0.1

#

return

[SW1-GigabitEthernet0/0/1]dis acl 3001

Advanced ACL 3001, 2 rules

Acl's step is 5

 rule 10 permit ip source 2.2.2.2 0 destination 3.3.3.3 0

 rule 20 deny ip


     在AR1路由器与SW1连接的接口配置qos trust dscp,目的是为了在接收SW1发出的带有DSCP AF32的IP包时,直接使用数据包携带的DSCP值进行入向映射。


[R1-GigabitEthernet0/0/1]dis this

[V200R007C00SPC600]

#

interface GigabitEthernet0/0/1

 ip address 13.1.1.1 255.255.255.0

 trust dscp

 ospf network-type p2p

 ospf enable 10 area 0.0.0.1

#


在AR1的qos map-table 中配置一个 入向 DSCP 28 到 出向 802.1p(Cos 7)的映射:


 [R1-maptbl-dscp-dot1p]dis this

[V200R007C00SPC600]

#

qos map-table dscp-dot1p

  input 28 output 4


   需要注意的是SW1交换机进行DSCP remark的时候使用的是二进制方式,而AR1在进行map映射的时候使用的是十进制,本例中dscp af32 所对应的十进制是28。

[SW1-GigabitEthernet0/0/1]traffic-remark  outbound  acl  3001 dscp ?

  INTEGER<0-63>  DSCP (DiffServ CodePoint) value

  af32           AF32 DSCP (011100)


  在完成上述配置后,在SW1上使用2.2.2.2作为源地址,ping 3.3.3.3 :


[SW1]ping -a 2.2.2.2 3.3.3.3 

  PING 3.3.3.3: 56  data bytes, press CTRL_C to break

    Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=26 ms

    Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=25 ms

    Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=26 ms

    Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=26 ms

    Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=26 ms

     

 在AR1上查看与AR2互联接口的队列统计情况,可以看到4号队列刚好有个5个数据包的统计:


<R1>display qos queue statistics interface se1/0/0 

-----------------------------------------------------------------------------

Queue            Passed          Pass Rate        Dropped         Drop Rate

            (Packets/Bytes)      (pps/bps)    (Packets/Bytes)     (pps/bps)

-----------------------------------------------------------------------------

Protocol              10/              0/              0/              0/

                     339               0               0               0 

0                      0/              0/              0/              0/

                       0               0               0               0 

1                      0/              0/              0/              0/

                       0               0               0               0 

2                      0/              0/              0/              0/

                       0               0               0               0 

3                      0/              0/              0/              0/

                       0               0               0               0 

4                      5/              0/              0/              0/

                     460               0               0               0 

5                      0/              0/              0/              0/

                       0               0               0               0 

6                      0/              0/              0/              0/

                       0               0               0               0 

7                      0/              0/              0/              0/

                       0               0               0               0 

-----------------------------------------------------------------------------


     数据包进入接口的4号队列的根本原因就是,在AR1连接SW1接口收到的数据包中带有DSCP 值 af32(28),且AR1信任了该DSCP值,同时,配置了出项映射两DSCP af32(28)映射为了出向8021p 4,大家都知道802.1p 为3个bit 0 - 7 ,那么这0 - 7  八个值刚好和接口的8个队列一 一 对应,这样就建立了数据包与出口队列的对应关系。那么后续我们在做GTS、队列调度的时候就可以针对不同的队列部署相应的策略达到相应的目的了。


   为了便于更加直接的看到内部标记与出口队列的关系,在SW1上可以查看这个关系的映射表,这里面我们就可以看到大家所熟悉的内部标记的名称了,这就是我们常说的RFC1349中定义的PHB,而正是有了队列才能对有不同转发需求的数据包进行不同的Qos策略,以达到这些数据包所声明的服务需求。


[SW1]display qos local-precedence-queue-map 

 Current configurations of mapping between local-precedence and queue:

  local-precedence value: be     queue index: 0

  local-precedence value: af1    queue index: 1

  local-precedence value: af2    queue index: 2

  local-precedence value: af3    queue index: 3

  local-precedence value: af4    queue index: 4

  local-precedence value: ef     queue index: 5

  local-precedence value: cs6    queue index: 6

  local-precedence value: cs7    queue index: 7


PHB

常见用途

CS6CS7

CS6CS7默认用于协议报文,比如说OSPF报文,BGP报文等应该优先保障,因为如果这些报文无法接收会引起协议中断。

EF

EF用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。

说明

EF PHB提供的是低时延服务,应该具有最低的抖动和丢包率,因而必须限制EF的专用带宽,以免其他服务得不到可用带宽。

AF4

AF4用来承载语音的信令流量。

说明

语音流量必须优先于语音的信令,因为语音信令是语音的呼叫控制,在接通的时候等待几秒钟是可以忍受的,但是在通话过程的中断是绝对不能允许的。所以语音要优先于信令。

AF3

AF3可以用来承载IPTV的直播流量。直播的实时性强,需要有连续性和大吞吐量的保证。

AF2

AF2可以用来承载VoDVideo on Demand)的流量。VoD要求的实时性不如IPTV直播强,允许有延迟或者缓冲。

AF1

AF1可以承载专线业务,因为IPTV和语音是运营商最关键的业务,需要最优先保证,其次才是专线业务。当然面向银行之类需要钻石级保证的业务,可以安排为AF4甚至为EF

BE

当前Internet尽力而为的服务。


    另外,每个队列都有一个队列长度的概念,这个其实就是我们常说的缓冲区,从默认值大家就应该能够体会到,由于默认不信任任何接收数据包的Qos标记值,自然数据包在发出的时候都会进入默认队列0,默认队列0的队列长度要比其他队列大的多,这点就不较好理解了。

<SW4>display qos max-length interface g0/0/1 all 


 Port                          Queue               Max-length (Packets)


 ----------------------------------------------------------------------


 GigabitEthernet0/0/1          0                   400                 

 GigabitEthernet0/0/1          1                   89                  

 GigabitEthernet0/0/1          2                   89                  

 GigabitEthernet0/0/1          3                   89                  

 GigabitEthernet0/0/1          4                   89                  

 GigabitEthernet0/0/1          5                   89                  

 GigabitEthernet0/0/1          6                   89                  

 GigabitEthernet0/0/1          7                   89    

  

     最后通过一张Marvel芯片的qos示意图说明一下,实质上不同的ASIC、NP都有不同的Qos特性,而我们说的队列、队列长度、队列调度方法、标记映射等都是这些芯片为系统根据自身实现留出了相应的接口,而我们所说的Qos特性都是围绕着这些内部标记进行的,基本上都是在ASIC、NP芯片也就是转发面实现的 。




该芯片提供了128QoS Profile 用于优先级调度,

QOS Profile 包含如下属性:
qTC :芯片内部使用的队列优先级
qDP:丢弃指引(三色桶标记)
qUP:用于修改的UP
qDSCP:用于修改的DSCP

qEXP:用于修改的EXP

谢谢。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
跳转到指定楼层
doctor.zhang     发表于 2018-3-12 13:54:21 已赞(0) 赞(0)

伞兄又出总结啦,赞!
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-3-12 14:01:25 已赞(0) 赞(0)

doctor.zhang 发表于 2018-3-12 13:54 伞兄又出总结啦,赞!
尽量吧,趁着现在还有机会,不管怎么说也是通过论坛我才有了来过的机会,也算是回报吧。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
hxft  精英   发表于 2018-3-12 14:16:35 已赞(0) 赞(0)

感谢分享!
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-3-12 14:26:42 已赞(0) 赞(0)

谢谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
忧郁的红雨伞  专家   发表于 2018-3-12 14:26:44 已赞(0) 赞(0)

谢谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
S5700     发表于 2018-3-12 14:56:34 已赞(0) 赞(0)

伞哥棒棒!
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-3-12 15:03:21 已赞(0) 赞(0)

感谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
李宗易  版主   发表于 2018-3-12 16:03:56 已赞(0) 赞(0)

谢谢伞大神的精彩总结及分享
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-3-12 17:34:04 已赞(0) 赞(0)

李宗易 发表于 2018-3-12 16:03 谢谢伞大神的精彩总结及分享
感谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
12
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
快速回复 返回顶部