DSCP差分服务代码点(Differentiated Services Code Point)。它在每个数据包IP头部的服务类别TOS标识字节中,利用已使用的6比特和未使用的2比特,通过编码值来区分优先级。
IP的优先权:
RFC791中定义了TOS位的前三位为IP Precedence,这三位可划分八个优先级,即:IP优先级字段,可以应用于流分类,数值越大表示优先级越高。IP优先权有八种服务可以标记,其应用类型如下:
7 预留 6 预留 5 语音 4 视频会议 3 呼叫信号 2 高优先级数据 1 中优先级数据 0 尽力服务数据
也就是说,原来的3位IP优先级字段只能划分出八种服务的优先级,这在服务种类单一,业务量少的年代,是足够使用了。但是在网络中实际部署的时候,八个优先级是远远不够用的,于是RFC 2474中又对TOS进行了新的定义,把前六位定义成了DSCP,后两位保留。这样,DSCP值的范围就是0到63。
DSCP值有两种表达方式,数字形式和关键字形式。
一种表达方式是数字形式。DSCP使用6比特,十进制区间是0~63,可以定义64个等级(优先级。)如二进制DSCP值000000=十进制DSCP值0,二进制DSCP值010010=十进制DSCP值18。
另一种关键字形式的DSCP值称为逐跳行为(PHB),目前有三类已定义的PHB,分别是尽力服务(BE或DSCP 0)、确保转发(AFxy)和加速转发(EF)。由于DSCP和IP Precedence是共存的,于是存在兼容性的问题,DSCP可读性较差,比如DSCP 43我们一眼看去并不知道对应着IP Precedence的什么取值,于是把DSCP进行进一步分类, DSCP总共分成四类:
类选择器Class Selector(CS)aaa 000
加速转发Expedited Forwarding(EF) 101 110
确保转发Assured Forwarding(AF) aaa bb0
默认Default(BE) 000 000
CS6和CS7默认用于协议报文。因为如果这些报文无法接收的话会引起协议中断。而且是大多数厂商硬件队列里最高优先级的报文。
EF用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
AF4用来承载语音的信令流量,这里大家可能会有疑问为什么这里语音要优先于信令呢? 其实是这样的,这里的信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的,但是绝对不能允许在通话的时候的中断。所以语音要优先于信令。
AF3可以用来承载IPTV的直播流量,直播的实时性很强需要连续性和大吞吐量的保证。
AF2可以用来承载VOD的流量,相对于直播VOD要求实时性不是很强,允许有时延或者缓冲。
AF1可以承载不是很重要的专线业务,因为专线业务相对于IPTV和VOICE来讲,IPTV和VOICE是运营商最关键的业务,需要最优先来保证。当然面向银行之类需要钻石级保证的业务来讲,可以安排为AF4甚至为EF。
最不重要的业务是Internet业务,可以放在BE模型来传输。这也是我们为什么老抱怨网络不好。
可以说,有了DSCP,就初步实现了通讯业务中的时间管理,我们日常的通讯业务才能保质保量地高效运行
位置信息:
以太网交换机可为特定报文提供优先级标记的服务,优先级的种类包括Precedence,TOS、DSCP、802.1p prioriy等,这些优先级分别适用于不同的QoS 模型,在不同的模型中被定义。Precedence、TOS和DSCP优先级是定义在三层IP头中的TOS字段;802.1p用户优先级定义在二层802.1Q 标签头中的TCI字段中。
IP header 有一个8-bit的TOS(服务类型)优先级区域,它通常被分为precedence部分(IP优先级)和TOS部分,最后一位作保留;它的具体定义如下:
由于对区分服务类型的多样化的要求,在之后的RFC文档中对这个区域进行了重新的分配,命名为DSCP:也就是IP包头的区分服务标记域。DSCP优先级是把整个8位的前6位重新定义了一下,称为DSCP优先级;
数据帧里有4个字节的802。1q标签头,包含2字节的标签和2字节的控制信息,在控制信息(vlan tag的TCI区域)的前3位,就定义为802.1p优先级。它指明帧的优先级。一共有8 种优先级,主要用于当交换机阻塞时,优先发送优先级高的数据包。