两种主要的IP QoS服务模型
为满足Inte.net上多种业务对QoS的需求,Internet工程任务组(IETF)先后制定了两种QoS服务模型:集成服务(InterServ)/RSVP模型和区分服务(DiffServ)模型,用来在不同的场合提供相应的质量保证。
Type-of-service (ToS) 比特
在IP数据包头的8位的空间,IP Precedence优先级、DSCP(Differentiated Services Code Point)和ToS 域都使用这一字节。(虽然看上去中文的翻译和英文都有些类似,都使用这个字段,都是0和1,但是有不同的标准对0和1的含义加以定义。
Differentiated Services Code Point (DSCP)
IETF 在RFC2472、RFC2475中提出DiffServ(Differentiated Services Architecture) 体系结构,旨在定义一种实施IP QoS且更容易扩展的方式,以解决IntServ 扩展性差的缺点。
DiffServ力图通过对业务流的分类、整形、标记、调度来实现对业务QoS一定程度上的保证。目前在DiffServ上主要提出了下面两种业务:Expedited Services(EF-RFC 2598) 提供类似于专线或租用线的服务。Assured Services(AF-RFC 2597)提供比Best-Effort尽量好的QoS。
DiffServ 利 用 了IPv4 数据包头的ToS字段(或IPv6的COS字段),作为DSCP(DiffServ 编 码 点) 使用。DSCP使用了前面的6位。
DSCP面临的一个问题是对这一协议支持的网络设备比较少,同时DSCP与早先的IP Precedence不兼容。.
IP Precedence 域
在IP数据包头的ToS字节中,有三位被使用了,RFC 791对此进行了定义(从RFC的编号上可以看出年代久远)。使用IP Precedence,网络管理员可以将网络中传输的数据分为从0到7的八个优先级,并进行标记,网络设备可以依次提供不同服务质量的服务,现今很多应用和路由器支持这一协议。
ToS 域
RFC1349对ToS字段又进行了新的定义,一共定义了从0到15个优先级的值(分为16种),根据这些值,网络设备可以对数据包进行不同的操作,比如尽快转发或者是最大的吞吐量。同上两个标准一样与DSCP不兼容。
Multi-protocol Label Switching (MPLS)
MPLS给数据包打上了标记,用来做路由等处理,同样也可以对数据包进行区分和提供优先级服务,RFC3031对这一技术进行了定义。
IEEE 802.1p
一个支持IEEE 802.1Q协议的主机,在发送数据包时,都在原来的以太网帧头中的源地址后增加了一个4字节的802.1Q帧头。这4个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID--Tag Protocol Identifier,它的值是8100),和两个字节的标签控制信息(TCI--Tag Control Information),TPID是IEEE定义的新的类型,表明这是一个加了802.1Q标签的本文。
这其中,VLAN ID和Priority经常被用到,解释如下:
VLAN Identified( VLAN ID ): 这是一个12位的域,指明VLAN的ID,一共4096个,每个支持IEEE 802.1Q协议的主机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
Priority:这3 位指明帧的优先级。一共有8种优先级,主要用于当交换机阻塞时,优先发送哪个数据包。之所以称之为IEEE 802.1p优先级,是因为有关这些优先级的应用是在802.1p规范中被详细定义。
IEEE 802.1p优先级位于二层报文头部,适用于不需要分析三层报头,而需要在二层环境下保证QoS的场合。
这一协议于IP Precedence非常类似,通常的情况下,以太网帧到达第一个路由器的时候会实现与IP Precedence或者DSCP的替换。
数据包丢失
当一个队列被充满的时候,数据包丢失会出现。当数据包丢失出现,面向连接的协议,比如TCP会降低他们的传输速率,让队列中的数据包被服务。
带宽预留
把一部分的带宽留给一些特定的应用,不论是产生拥塞的时候,这部分带宽也不会被其他的应用所使用,在一些QoS的算法比如WFQ已经启用的时候,这一功能也不应该受到影响。