对报文的标记方法包括以下几种:
(1)、RFC791定义的IP头中有一个8位长的ToS(Type of Service)字段。用于区分IP包的服务类型。对这一字段的标记方法主要有以下两种。
①、RFC1394 IP Prececence(IP优先级)标记。
②、RFC2474 DSCP(DiffServ Code Point,区分服务代码点)标记。早期Qos分类简单,使用Tos字段的高3个bit作为TTP的不同组合值(定义IP优先级方案,后来发现不够,IETF对TOS字段重新分配,提出了DSCP,用6比特取代了原来的3比特。
(2)、IEEE802.1p定义了CoS(Class of Service,服务等级)标记,用于对以太网帧的类型进行区分。
(3)、MPLS标签中保留了3位的EXP(expermental,实验)字段,用于实验性用途。该字段主要被用于对MPLS报文的类型进行标记。
对于 IP 报文,基于 IP 包首部中的 ToS 域的前三位(即 IP Precedence)或前 6 位(即 DSCP 域)来标记报文。
比特 0~2 表示 Precedence 字段。代表报文传输的 8 个优先级,按照优先级从高到低顺序取值为 7、6、……、1 和 0,与 802.1p 字段对应的报文优先级对应。
IP优先级十进制 | IP优先级二进制 | 含义 | 应用 |
---|---|---|---|
0 | 000 | Routine 普通 | 缺省标记值 |
1 | 001 | Priority 优先 | 数据业务 |
2 | 010 | Immediate快速 | 数据业务 |
3 | 011 | Flash 闪速 | 语音控制数据 |
4 | 100 | Flash Override 疾速 | 视频会议和视频流 |
5 | 101 | Critic 关键 | 语音数据 |
6 | 110 | Internetwork Control 网间控制 | 网络控制数据 |
7 | 111 | Network Control 网络控制 | 网络控制数据 |
ToS占用ToS字段中第3~6位,用于衡量包的延迟、吞吐量、可靠性、花费。
由于对区分服务类型的多样化的要求,IP优先级的8个优先级是远远不够的,在之后的RFC2474文档中对TOS字段进行了重新的分配,命名为DSCP,取值范围为0~63,共能标识出64个优先级值(值越大,优先级越高),最后两位保留,用于显示拥塞通知(Explicit Congestion Notification,ECN)。
RFC 2474 则定义比特 0—5表示 DSCP 域,在IPv4报文中,DS(Differentiated Service)字节的低6位(比特0~5)用作区分服务代码点DSCP,高2位(比特6、7)是保留位。DSCP中的低3位(比特0~2)是类选择代码点CSCP(Class Selector Code Point),它表示了一类DSCP。网络中支持DiffServ技术的各设备根据DSCP值选择相应的转发行为。
总结:前3bit用来标识不同类型,默认可以分为8种不同类别的标识;后3bit用来比较丢弃值,数值越大丢弃率也越高,并且最后1bit为0。
DSCP字段有64个可能代码点。在这个码值空间划分为三个池。第一个池末位为0,用作标准标记操作。其余两个池为EXP/LU(Expermental/Local Use,实验/本地使用)预留,其中第三个池可能会在第一个池的代码点耗尽后作为补充使用。
三个池:
三个池 | 代码点空间 | 分配策略 |
---|---|---|
1 | XXXXX0 | 标准操作 |
2 | XXXX11 | EXP/LU实验/本地使用 |
3 | XXXX01 | EXP/LU补充使用 |
第一池目前定义的DSCP总共分成了4类:
在IPv6报文中,有两个字段与QoS有关,分别为流量类别TC(Traffic Class)和流标签FL(Flow Label)字段。流量类别字段有8位,和IPv4的服务类型(ToS)字段功能相同,用于对报文的业务类别进行标识;流标签字段有20位,用于标识属于同一业务流的包。流标签和源、目的地址一起,惟一标识了一个业务流。同一个流中的所有包具有相同的流标签,以便对有同样QoS要求的流进行快速、相同的处理。
在MPLS网络中,路由器不会检查IP报文头的内容,因此无法通过ToS或DSCP字段来进行流量分类。相关标准定义了两种方案实现MPLS网络的流量分类。
第一种方案:E-LSP
第一种方案是使用MPLS报文首部的3bit的Exp字段来承载DiffServ信息。转发时报文根据标签转发,而由Exp字段决定PHB。
第二种方案:L-LSP
第二种解决方案适用于超过8个PHB的网络。由于Exp只有3bit,不能仅用Exp来区分超过8个的PHB,而MPLS报头其他字段中,可用于区分PHB的唯一一个字段只有标签。标签有20bit,可以与IP QoS完全映射。这种使用标签来传输所需PHB信息的LSP被称为L-LSP(Label-Only-Inferred-PSC LSP)。
一般目前网络上提供最多4种类型的服务,E-LSP就可以满足了。
由于IP报文的优先级字段是3bits,与EXP的长度相同,可以直接形成一对一的映射。但IP报文的DSCP字段是6bits,与EXP的长度不一样,因此E-LSP与IP QoS不能完全映射。在IEEE标准的实现中,将DSCP的前3bits(即CSCP)与EXP进行映射,而忽略DSCP的后3bits。
VLAN帧头中的802.1P字段(取值范围0~7)。根据IEEE 802.1Q的定义, 优先级从高到低顺序取值为7、6、……、1 和 0。
TPID(Tag ProtocolIdentifier标签协议标识):2字节的定值0X8100,表明这是一个加了802.1Q标签的帧。
TCI(Tag Control Information):2字节,包含了帧的控制信息。
Priority:802.1P优先级,3bit,取值0-7。
CFI:1bit,暂时保留未用,为0说明是规范格式,1为非规范格式,被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。
VLANID:12bit,取值范围0-4095,由于0 和4095保留,实际取值范围是1-4094,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
流量类型 | 优先级 | 协议举例 | 业务特征 |
---|---|---|---|
Network Control | 7 | BGP, PIM, SNMP | 网络维护与管理报文的可靠传输,要求低丢包率 |
Internet Work Control | 6 | STP, OSPF, RIP | 大型网络中区分于普通流量的网络协议控制报文 |
Voice | 5 | SIP, MGCP | 适用于语音业务,一般要求时延小于10 ms |
Video | 4 | RTP | 适用于视频业务,一般要求时延小于 100 ms |
Critical Applications | 3 | NFS, SMB, RPC | 适用于要求确保最小带宽的业务 |
Excellent Effort | 2 | SQL | 用于一般的信息组织向最重要的客户发送信息 |
Background | 1 | FTP, SMTP | 适用于不影响用户或关键应用的批量传输业务 |
Best Effort | 0 | HTTP, IM, X11 | 缺省业务类型,只要求"尽力而为"的服务质量 |
IETF RFC2597标准中定义了PHB(Per-HopBehavior,逐跳行为),PHB是DS节点对行为聚合分配资源的方法。通过PHB值可以确定在网关处对IP包的转发行为。
PHB具有单跳性和独立性的特点,就是说每个节点具有独立的PHB策略,各节点、各域之间相互没有影响。DS节点上,通过一定的缓冲区管理和分组调度策略实现的。DS节点根据入站报文携带的标记为其提供适当的PHB。一个DS节点可以实现多种PHB。代码点到PHB的映射关系可以是一对一的,也可以是多对一的。
DSCP取值范围为0-63,共能标识出64个优先级值,值越大,优先级越高。各种转发类别以DSCP优先级值为标准的优先级高低。IEEE定义了8种调度优先级的PHB(CS7、CS6、EF、AF4-AF1、BE),对于AF4~AF1又定义了3种丢弃优先级的PHB。因此,PHB数量是4 + 4*3 = 16种。
在DSCP分类中,将PHB分为四种类型:
(1)、在RFC2597中定义了CS (Class Selector,类选择符)PHB ,一个CLass Selector代码点的值越高,其重要性和优先级也越高,CLass Selector PHB的存在是为了兼容普通存在的IP Precedence实现,因此CS也分为8类,分别是CS0、CS1、CS2、CS3、CS4、CS5、CS6、CS7。CS对应DSCP取值XXX000,其中X取值0或1。当X为全0时,就是Default PHB,即BE类型PHB。
(2)、在RFC2597中定义了4种AF(AssureForwarding,确保转发)PHB,允许管理员在没有超过线路允许速率的情况下提供尽可能的传输质量保证,但如果超出用户线路速率则可能在出现拥塞时丢弃数据包。AF确保转发分为4类:AF1、AF2、AF3、AF4。AF对应DSCPXXX YY0,其中X取值0或1,XXX对应IP Precedence,XXX由于有三个bit,最大取值为8,但是目前只用到了1~4。YY有二个bit,最大是3,代表三个丢弃优先级。
AF确保转发分为4类:AF1类、AF2类、AF3类、AF4类。丢弃优先级三类对应表
丢弃优先级 | AF1 | AF2 | AF3 | AF4 | Color |
---|---|---|---|---|---|
低丢弃优先级 | AF11 | AF21 | AF31 | AF41 | Green |
中丢弃优先级 | AF12 | AF22 | AF32 | AF42 | Yellow |
高丢弃优先级 | AF13 | AF23 | AF33 | AF43 | Red |
Color是指报文在设备内部的丢弃优先级,IEEE定义的优先级从低到高依次为Green、Yellow、Red。
(3)、在RFC2598标准中,定义了EF (Expedited Forwarding,加速转发)PHB,此类PHB具有低延时、低开销和低抖动特性,适用于话音、视频和其他实时服务,一般具有比其他通信类型更加优先的队列。为了保证不对其他业务产生过大影响,需要对这类PHB报文的流量进行限制,超过限制的报文被丢弃。EF对应DSCP取值101110。
(4)、缺省的PHB,BE (Best Effort,尽力而为)PHB,默认的PHB。只关注可达性,其他方面不做任何要求。提供尽力而为的服务,服务没有作保证。EF对应DSCP取值000000。
常规QoS DSCP的优先级从高到低分别为:CS7>CS6>EF>AF4>AF3>AF2>AF1>BE。通常CS级别为网络内部协议使用,所以最高级别为EF。各级别的业务应用:
(1)、CS6和CS7默认用于协议报文比如路由协议,而且是大多数厂商设备的硬件队列里最高优先级的报文,因为如果这些报文无法接收的话会引起协议中断。
(2)、EF常用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
(3)、AF4用来承载语音的信令流量,信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的。
(4)、AF3可以用来承载IPTV的直播流量,直播的实时性很强,需要连续性和大吞吐量的保证。
(5)、AF2可以用来承载VOD(Video on Demand:视频点播)的流量,相对于直播流量来说,VOD对实时性要求没那么强烈,允许有时延或者缓冲。
(6)、AF1可以用来承载普通上网业务。
(7)、BE 表示尽力而为转发行为,应用于不需要严格 QoS 保证的尽力发送业务,只关注可达性,其他方面不做任何要求,如传统的 IP 分组投递服务。
Cisco推荐的几个业务使用DSCP值:
业务分类建议:
类别 | DSCP值(十进制) | DSCP(二进制) |
---|---|---|
CS7 | 56 | 111000 |
CS6 | 48 | 110000 |
EF | 46 | 101110 |
AF43 | 38 | 100110 |
AF42 | 36 | 100100 |
AF41 | 34 | 100010 |
CS5 | 40 | 101000 |
CS4 | 32 | 100000 |
AF33 | 30 | 011110 |
AF32 | 28 | 011100 |
CS3 | 24 | 011000 |
AF31 | 26 | 011010 |
AF23 | 22 | 010110 |
AF22 | 20 | 010100 |
AF21 | 18 | 010010 |
CS2 | 16 | 010000 |
AF13 | 14 | 001110 |
AF12 | 12 | 001100 |
AF11 | 10 | 001010 |
CS1 | 8 | 001000 |
BE | 0 | 000000 |
业务类型到DSCP的映射(摘自RFC - Figure 3)
业务类型 | 业务特征 | 类别 | DSCP值 |
---|---|---|---|
Network Control | 网络控制平面的业务流,如路由协议、VRRP、RSVP-TE | CS6 | 110000(48) |
Telephony | VoIP电话业务 | EF | 101110(46) |
Signaling | IP语音和视频业务的信令流。如SIP, SIP-T, H.323, H.248 | CS5 | 101000(40) |
Multimedia Conferencing | 桌面多媒体会议(仅包括语音和视频,其数据归到Low-Latency Data类) | AF41\AF42\AF43 | 34\36\38 |
Real-Time Interactive | 视频会议\高清视频\交互式游戏(使用RTP/UDP) | CS4 | 100000(32) |
Multimedia Streaming | VoD视频点播 | AF31\AF32\AF33 | 26\28\30 |
Broadcast Video | 广播电视、实时视频监控业务 | CS3 | 011000(24) |
Low-Latency Data | 交互式的重要数据业务,要求响应时间短,如VCX IP消息业务、ERP、CRM、DB。 | AF21\AF22\AF23 | 18\20\22 |
OAM | 网络运维、维护和管理业务,例如SNMP、Syslog、SSH | CS2 | 010000(16) |
High-Throughput Data | 非交互性的背景业务如E-mail、FTP | AF11\AF12\AF13 | 10\12\14 |
Low-Priority Data | 非实时的弹性的业务,如娱乐视频流量。 | CS1 | 001000(8) |
Standard | 默认的Internet业务,如果业务没有标记优先级,可将其归为此类。 | CS0 | 000000(0) |