前面我们知道了QOS有三种服务模型,分别是尽力而为的服务模型(默认使用)、综合的服务模型(代价大,不适用于大面积使用)、差分服务模型(目前使用最多的)。但是要对不同的业务流量提供差分服务,前提就需要设备能够对这些流量进行分类和识别,然后对不同类型的流量提供相应的差分服务行为。
目录
1、报文的分类
1.1 报文分类的依据
报文分类可依据不同链路类型传输的不同类别报文,且其自身所含有的标识QOS优先级的字段值来对报文进行分类:由于其只能依据一种粗略地分类方式且匹配规则较简单,故被称为简单的流分类。
VLAN 802.1P字段/MPLS EXP字段
VLAN帧头中的802.1P字段(取值范围0~7)。根据IEEE 802.1Q的定义, 优先级从高到低顺序取值为7、6、……、1 和 0。
MPLS 报文与普通的 IP 报文相比增加了标签信息。标签的长度为 4 个字节。MPLS报文中的EXP字段(取值范围0~7)作为 MPLS 报文的CoS(Class of Service)域。对于MPLS报文,通常将标签信息中的EXP域作为MPLS报文的COS域,与IP报文中的TOS域等效,用于区分数据流量的等级服务。(注:S:1 比特,栈底标识。MPLS 支持标签的分层结构,即多重标签,S 值为 1 时表明为最底层标签)
缺省的情况下,在MPLS网络的边缘,将 IP 报文的 IP 优先级直接拷贝到 MPLS 报文的EXP域;但是在某些情况下,如ISP不信任用户网络、或者ISP定义的差别服务类别不同于用户网络,则可以根据一定的简单分类策略,依据内部的服务等级重新设置 MPLS 报文的EXP域,而在MPLS网络转发的过程中保持IP报文的ToS域不变。在MPLS网络的中间节点,根据MPLS报文的EXP域对报文进行分类,并实现拥塞管理,流量监管或者流量整形等PHB。
IPv4报文中的IP-Precedence字段/IPv4报文的DSCP字段
IP报文使用IP-Precedence字段标识其优先级(取值范围0~7)。但是IP-Precedence字段最多只能将IP报文分为8类,而在实际的网络部署时,这些优先级是远远不够的。
- D bit代表延迟(delay),T bit代表吞吐量(throughput),R bit代表可靠性(reliability)。
- 根据RFC定义,IP报文头TOS域中的precedence字段标识了该报文的优先级。
IPv4的DSCP字段值对IP-precedence字段进行了扩充。在RFC中对IPv4报文头的TOS字段进行了重新定义,称为DS(Differentiated Service)字段。
DSCP值有两种表达方式:
- 数字形式:DSCP取值范围0~63;
- 关键字表达方式:用关键字标识的DSCP值。
AFxy中,x代表不同的类别,根据不同的分类后续可以定义进入相对应的队列,y代表当队列被装满的时候丢包的概率,例如AF1类中的报文,其中丢包概率由小到大排序为AF11<AF12<AF13。
不同关键字常用于标识不同报文(可自行定义):
- CS6和CS7默认用于协议报文,而且是大多数厂商设备的硬件队列里最高优先级的报文,因为如果这些报文无法接收的话会引起协议中断。
- EF常用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
- AF4用来承载语音的信令流量,这里大家可能会有疑问为什么这里语音要优先于信令呢? 其实是这样的,这里的信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的,但是绝对不能允许在通话的时候的中断。所以语音要优先于信令。
- AF3可以用来承载IPTV的直播流量,直播的实时性很强,需要连续性和大吞吐量的保证。
- AF2可以用来承载VOD(Video on Demand:视频点播)的流量,相对于直播流量来说,VOD对实时性要求没那么强烈,允许有时延或者缓冲。
- AF1可以用来承载普通上网业务。
- BE 表示尽力而为转发行为,应用于不需要严格 QoS 保证的尽力发送业务,只关注可达性,其他方面不做任何要求,如传统的 IP 分组投递服务。DSCP 取值为“000000”。
DSCP/IP-precedence/802.1P/EXP值表
![](https://img-blog.csdnimg.cn/20201114153901793.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk5NzUzMA==,size_16,color_FFFFFF,t_70)
以上提到的都为简单流分类,但是在实际网络部署时,常常需要更复杂的分类需求,现提出复杂流分类:
复杂流分类是指根据五元组(源地址、目的地址、源端口、目的端口、协议号)等报文信息对报文进行精细的分类(一般的分类依据都局限在封装报文的都不信息,使用报文内容作为分类的标准比较少见)。
1.2 报文分类的应用
- 一般在DS边界节点对报文进行分类(如图SWA、SWB)。
- 上游设备可以选择接受上游设备的分类结果,也可以按照自己的分类标准对报文进行重新分类。
- 端到端进行QOS部署时,如果需要每台设备都需要对报文进行分类,那么就会导致耗费大量的设备处理资源,为此提出了对报文标记的方法。
2、报文的标记
端到端进行QOS部署时,就需要每台设备都对报文进行分类,这样就会导致耗费大量地设备处理资源,为此提出了对报文进行标记的方法,这样下游设备只需要对标记进行识别即可提供差分服务。
- 一般在DS边界节点(如图SWA、SWB)对报文进行标记,DS节点对标记进行识别并提供差分服务即可。
- 像语音电话、视频终端等设备一般发送的报文都是携带设备默认的优先级值。若想通过自定义值来提供差分服务可以通过remake操作对报文进行重新标记。
在DS边界节点SWA上对报文重新进行remark,为DS域提供一个可信任的标记值。DS域内节点可根据此标记值进行QoS调度服务。在此例中,边界节点SWA被称为可信任边界。
补充:优先级映射
不同的报文使用不同的QOS优先级,例如VLAN报文使用802.1p,IP报文使用DSCP,MPLS报文使用EXP。当报文经过不同网络是,为了保持报文的优先级,需要在连接不同网络的网关处配置这些优先级标记的映射关系。
为了保证不同的报文的服务质量,在报文进入设备时,需要将报文携带的优先级映射到本地优先级LP(即设备为报文分配的一种具有本地意义的优先级,对应出端口队列序号);在报文出设备时,可以将本地优先级映射为QOS优先级或者直接重标记报文优先级,以便后续网络设备能够根据QOS优先级提供相应的服务质量。
报文数据流进入设备端口之后,设备会根据端口配置的信任模式来分配报文的各类优先级。端口的信任模式如下,对于二层网络中的报文,可以选择信任802.1p模式;对于三层网络中的报文,可以选择信任DSCP模式。
- 使用端口的优先级
缺省情况下,端口模式为不信任报文优先级,即使用端口优先级,按照端口的优先级,根据映射表为报文分配优先级。
- 信任DSCP模式
配置为信任DSCP优先级时,根据报文的DSCP优先级作为索引,查看DSCP映射表,得到报文的802.1p、DSCP、LP优先级,在设备内转发的时候使用LP作为拥塞处理的优先级值。当报文从设备转发出去时,把映射后的优先级更新到出报文的VLAN Tag、IP DSCP字段。
- 信任802.1p模式
配置为信任 802.1P 优先级时,根据报文的 802.1P 优先级作为索引,查看802.1P映射表,得到报文的 802.1P、DSCP、LP 优先级,在设备内转发的时候使用 LP 作为拥塞处理的优先级值。当报文从设备转发出去时,把映射后的优先级更新到出报文的 VLAN tag、IP、或DSCP 字段。