服务提供商和企业一般建造并维护不同的网络来承载语音、视频、关键任务和非关键任务通信,然而现在越来越趋向于将所有这些网络融合为单一的基于分组的IP网络。
最大的IP网络当然是Internet, 它的使用和基于Internet的应用的数量在过去几年里呈指数级增长。由于Internet和企业内部网的持续发展,人们提出了非传统数据应用,例如IP语音( VoIP) 以及视频会议。每天都有越来越多的用户和应用出现在Internet上,所以Internet需要能够同时支持已有的和新出现的应用和服务。然而,当前的Internet只能够提供尽力而为的服务,而尽力而为的服务并不提供关于数据分组何时或是否被传送给接收方的服务保证。
1994年,IETF成立了Intserv (集成服务) 工作组,扩展Internet服务模型,以更好地满足新出现的各种语音/视频应用程序的需要。它的目标是清楚地定义新的增强型Internet服务模型,并为应用程序提供使用路由器支持机制和子网技术表达端到端资源要求的手段,旨在分别管理需要特定QoS的流。但Intserv模型要求在Internet上保证每个流的QoS,由于现在的Internet上有成千上万的流,因此路由器需要的状态信息量特别大。随着流数目的增加,状态信息量也将增加,这将导致扩展性问题,从而使得Interserv难以在Internet上部署。 1998年,IETF成立了Diffserv(区分服务)工作组。Diffserv是联系Intserv的保证QoS要求和目前Internet所提供的尽力而为服务的桥梁,通过将通信分成几类并为之提供相关的服务优先级来区分通信。
一、Diffserv体系结构原理
区分服务(Diffserv)模型的提出源于集成服务模型暴露出的种种缺陷,IETF为此制定这个相对扩展性较强的
方案来保证IP网络的服务质量QoS。
Diffserv体系模型的核心思想是:在网络边界将数据流按QoS要求进行简单分类,不同的类别在内部节点的每次转发中实现不同的转发特性。Diffserv体系使得ISP能够提供给每个用户不同等级和质量的服务。用户(或网络边界节点)通过设置每个数据包的DS字段(IPv4首标中的服务类型(ToS)字段或Ipv6首标中的通信类(Traffic Class)字段)的值要求特定的服务等级。其中,被设置的DS字段被称为区分服务码点(DSCP)。在每个支持Diffserv的网络节点中,这个DS值将数据报映射到一类转发行为PHB(Per-Hop Behavior)中去,从而在转发中区别对待。用户和ISP之间有一个协定,此协定规定了该用户在每个服务等级上所能发送的最大数据率。超过此最大速率的数据包或被丢弃,或无法享受到它所要求的服务。Diffserv网络最大的特征是其可扩容性。此体系将许多复杂的控制移到了网络边界,使内部节点能对叠加之后的数据流进行处理,而不必对每个数据流分别处理,从而大大减小了网络内部应该记录的状态,简化了网络内部节点的操作。
在Diffserv体系中定义了三种服务质量,分别为尽力而为服务(BE)、奖赏服务(EF)和保证服务(AF),其中奖赏服务是指将网络带宽中的一小部分带宽分配给奖赏服务用户使用,主要用于实时服务;而保证服务是提供比尽力而为服务尽可能好的服务质量,其与尽力而为服务的区别在于当网络拥塞时先丢弃尽力而为分组。
二、 Diffserv体系结构中路由器的实现
边缘路由器的实现机制。分组由输入接口进入路由器进行处理,最后通过输出接口对分组进行转发。
首先,分组从输入接口进入路由器,路由器中的分类器将对分组的IP报头中的DS字段的数值进行检查,对分组进行分类。分组分类后进入标记模块,标记器的工作过程,在标记器中对AF分组使用RIO算法(该算法将在下一章详细介绍),而AF和Best Effort分组直接输出。AF分组进入标记器后,标记器检查是否有足够的令牌转发该分组,若有足够的令牌,则该分组直接进入输出接口转发;若没有足够的令牌,则标记器将该分组标记为Best Effort(Out)分组后,再输出该分组。分组标记后,如果分组为EF分组,则分组将送到测量器模块,若分组为Best-Effort或AF分组,则该分组将被直接送到转发模块。测量器模块使用令牌桶机制,令牌桶包括两个参数:令牌产生速率和令牌桶容量。令牌桶以指定速率产生,当令牌桶满时,产生的令牌将全部丢弃。当分组到达测量器时,测量器检查是否有足够的令牌。若没有足够的令牌,则分组将被丢弃;若有足够的令牌,则分组将进入转发模块。转发模块的功能是查找路由器,找出转发分组的输出接口。整形器的实现与测量器相似,其与测量器的不同之处在于测量器当没有令牌时丢弃分组,而整形器却将分组首先放到缓冲区内,当令牌桶有足够令牌时再将分组转发,只有当缓冲区满时才会丢弃分组。
测量器的工作过程。分组经过分类器处理后,Best Effort和AF分组直接进入转发模块而不进入测量器进行处理,而EF分组进入测量器。在测量器中,令牌的产生速率为r bit/s,该速率应该与分配给EF服务的最大传输速率相同。当EF分组进入测量器时,若令牌桶中有令牌,则该分组进入转发模块;若令牌桶中没有足够的令牌,说明EF分组的速率超出了分配给EF服务的最大传输速率,所以丢弃该分组。
整形器的工作过程。整形器检查是否有足够的令牌转发该分组,若有足够的令牌,则该分组直接进入输出接口转发;或没有足够的分组和足够的令牌,则将该分组放入缓