标记QoS优先级的报文字段
DiffServ模型根据报文头中某些字段记录的QoS信息提供有差别的服务质量。这些和QoS相关的报文字段包括:
IPv4的ToS字段
对于IPv4报文,基于IPv4包首部中的ToS域的前三位(即IP Precedence)或前6位(即DSCP域)来标记报文。使用IP优先级可以将报文最多分成23=8类;使用DSCP域可将报文最多分成26=64类。
ToS域各比特位的含义:
- 比特0~2表示Precedence字段。代表报文传输的8个优先级,按照优先级从高到低顺序取值为7、6、……、1和0。最高优先级是7或6,经常是为路由选择或更新网络控制通信保留的,用户级应用仅能使用0~5级。
- D比特表示延迟要求(Delay,0代表正常延迟,1代表低延迟)。
- T比特表示吞吐量(Throughput,0代表正常吞吐量,1代表高吞吐量)。
- R比特表示可靠性(Reliability,0代表正常可靠性,1代表高可靠性)。
- C比特表示传输开销(Monetary Cost,0代表正常传输开销,1代表低传输开销)。
- 比特6和7保留。
相关标准则定义比特0~6表示DSCP域,其中前3比特是类选择代码点CSCP(Class Selector Code Point),它表示了一类DSCP。网络中支持DiffServ技术的各设备根据DSCP值选择相应的PHB。DSCP和PHB的介绍请参见“DSCP与PHB”章节。
IPv6的TC字段
在IPv6报文中,有两个字段与QoS有关,分别为流量类别TC(Traffic Class)和流标签FL(Flow Label)字段。流量类别字段有8位,和IPv4的服务类型(ToS)字段功能相同,用于对报文的业务类别进行标识;流标签字段有20位,用于标识属于同一业务流的包。流标签和源、目的地址一起惟一标识了一个业务流。同一个流中的所有包具有相同的流标签,以便对有同样QoS要求的流进行快速、相同的处理。
MPLS的EXP字段
对于MPLS报文,则一般是根据MPLS报文中的EXP域进行流分类。EXP域包括3位,通常作为MPLS报文的CoS域,与IP网络的ToS或DSCP域等效。
MPLS报文首部包含3比特长的Exp字段,表示报文传输的8个优先级,按照优先级从高到低顺序取值为7、6、……、1和0。
由于IP报文的优先级字段是3bits,与Exp的长度相同,所以可以直接形成一对一的映射。但IP报文的DSCP字段是6bits,与EXP的长度不一样,所以出现多对一的情况。在IEEE标准的实现中,将DSCP的前3bits(即CSCP)与EXP进行映射,而忽略DSCP的后3bits。
802.1q帧的CoS字段
对于VLAN帧,根据VLAN帧头中的CoS字段(802.1p优先级)进行流分类。VLAN帧头中的PRI字段(即802.1p优先级)标识了服务质量需求,VLAN帧中的PRI字段位置如下图所示。
在VLAN帧头中包含3比特长的PRI字段。PRI字段表示8个传输优先级,按照优先级从高到低顺序取值为7、6、……、1和0。
802.1p/IP Precedence | 典型应用 |
---|---|
7 | 预留给网络控制报文(例如路由协议报文) |
6 | |
5 | 语音流 |
4 | 视频会议 |
3 | 呼叫信令 |
2 | 高优先级数据流 |
1 | 中等优先级数据流 |
0 | BE数据流 |