1.IntServ
IntServ可对单个的应用会话提供服务质量的保证,其主要特点:
(1)资源预留。一个路由器需要知道给不断出现的会话已经预留了多少资源(即链路带宽和缓存空间)。
(2)呼叫建立。一个需要服务质量保证的会话,必须首先在源点到终点路径上的每一个路由器预留足够的资源,以保证其端到端的服务质量的要求。因此,在一个会话开始之前必须先有一个呼叫建立(又称为呼叫接纳)过程,它需要在其分组传输路径上的每一个路由器都参加。每一个路由器都要确定该会话所需的本地资源是否够用,同时还不要影响到已经律立的会话的服务质量。
IntServ定义了两类服务:
(1)有保证的服务(guaranteed service),可保证一个分组在通过路由器时的排队时延有一个严格的上限。
(2)受控负载的服务(controlled-load service),可以使应用程序得到比通常的“尽最大努力”更加可靠的服务。
IntServ共有以下四个组成部分:
(1)资源预留协议RSVP,它是IntServ 的信令协议。
(2)接纳控制(admissioncontrol),用来决定是否同意对某一资源的请求。
(3)分类器(classifier),用来把进入路由器的分组进行分类,并根据分类的结果把不同类别的分组放入特定的队列。
(4)调度器(scheduler),根据服务质量要求决定分组发送的前后顺序。
会话必须首先声明它所需的服务质量,以便使路由器能够确定是否有足够的资源来满足该会话的需求。资源预留协议RSVP在进行资源预留时采用了多播树的方式。发送端发送PATH 报文(即存储路径状态报文),给所有的接收端指明通信量的特性。每个中间的路由器都要转发PATH报文,而接收端用RESV报文(即资源预留请求报文)进行响应。路径上的每个路由器对RESV报文的请求都可以拒绝或接受。当请求被某个路由器拒绝时,路由器就发送一个差错报文给接收端,从而终止了这一信令过程。当请求被接受时,链路带宽和缓存空间就被分配给这个分组流,而相关的流(flow)状态信息就保留在路由器中。“流”是在多媒体通信中的一个常用的名词,一般定义为“具有同样的源IP 地址、源端口号、目的IP地址、目的端口号、协议标识符及服务质量需求的一连串分组”。
如图用一个简单例子说明RSVP协议的要点。设主机H1要向互联网上的四台主机H2~H5发送多播视频节目,在图中这四台主机右边标注的数据率就是这些主机打算以这样的数据率来接收 H1发送的视频节目。这个视频节目可使用不同的数据率来接收。用较低数据率接收时,图像和声音的质量也就较差了。
主机H1先以多播方式从源点H1向下游方向发送 PATH报文,如图a所示。当PATH报文传送到多播路径终点的四台主机(即叶节点)时,每一台主机就向多播路径的上游发送RESV报文,指明在接收该多播节目时所需的服务质量等级。路由器若无法预留RESV报文所请求的资源,就返回差错报文。若能预留,则把下游传来的 RESV报文合并构成新的RESV报文,传送给自己的上游路由器,最后传送到源点主机H1。这些情况如图b所示。因此,RSVP协议是面向终点的。
需要注意的是,路由器合并下游的 RESV 报文并不是把下游提出的预留数据率简单地相加而是取其中较大的数值。例如,路由器R4收到两个预留3Mbit/s的RESV报文,但R4向R2发送的RESV报文只要求预留3Mbit/s而不是6Mbit/s(因为向下游方向发送数据是采用可以节省带宽的多播技术)。同理,R3向R2发送的RESV报文要求预留100 kbit/s而不是150kbit/s。最后,R1向源点 H1 发送的 RESV 报文要求预留 3 Mbit/s。当H1收到返回的RESV报文后,就开始发送视频数据报文了。
2.IntServ/RSVP
IntServ/RSVP使得互联网的体系结构发生了根本的变化,因为 IntServ/RSVP 使得互联网不再是提供“尽最大努力交付”的服务。在有关服务质量的协议中,RSVP 是最复杂的。IntServ/RSVP所基于的概念是端系统中与分组流有关的状态信息。各路由器中的预留信息只存储有限的时间(这称为软状态 soft-state),因而各终点对这些预留信息必须定期进行更新。我们还应注意到,RSVP 协议不是运输层协议而是网络层的控制协议。RSVP 不携带应用数据。图中给出了在路由器中实现的IntServ 体系结构。
IntServ 体系结构分为前台和后台两个部分。前台部分画在下面,包括两个功能块,即分类器与分组转发,分组的调度器。每一个进入路由器的分组都要通过这两个功能块。后台部分画在上面(有灰色阴影的部分),包括四个功能块和两个数据库。这四个功能块是:
•路由选择协议,负责维持路由选择数据库。由此可查找出对应于每一个目的地址和每一个流的下一跳地址。
•RSVP协议,为每一个流预留必要的资源,并不断地更新通信量控制数据库。
•接纳控制,当一个新的流产生时,RSVP 就调用接纳控制功能块,以便确定是否有足够的资源可供这个流使用。
•管理代理,用来修改通信量控制数据库和管理接纳控制功能块,包括设置接纳控制策略。
综合服务IntServ体系结构存在的主要问题是:
(1)状态信息的数量与流的数目成正比。例如,对于OC-48 链路 (2.5 Gbit/s)上的主干网路由器,通过64kbit/s 的音频流的数目就超过39000个。如果对数据率再进行压缩,则流的数目就更多。因此在大型网络中,按每个流进行资源预留会产生很大的开销。
(2)IntServ 体系结构复杂。若要得到有保证的服务,所有的路由器都必须装有 RSVP、接纳控制、分类器和调度器。这种路由器称为RSVP 路由器。在应用数据传送的路径中只要有一个路由器不是 RSVP 路由器,整个的服务就又变为“尽最大努力交付”了。
(3)综合服务IntServ 所定义的服务质量等级数量太少,不够灵活。
3.区分服务(DiffServ)
1.区分服务的基本概念
由于综合服务 IntServ 和资源预留协议 RSVP 都较复杂,很难在大规模的网络中实现,因此IETF 提出了一种新的策略,即区分服务 DiffServ (Differentiated Services)[RFC 2475],区分服务有时也简写为 DS。因此,具有区分服务功能的节点就称为 DS 节点。
区分服务 DiffServ的要点如下:
(1)DiffServ 力图不改变网络的基础结构,但在路由器中增加区分服务的功能。因此,DiffServ 将IP 协议中原有8位的IP4的服务类型段和IPV6 的通信量类字段重新定义为区分服务 DS。
路由器根据 DS 字段的值来处理分组的转发。因此,利用DS 字段的不同数值就可提供不同等级的服务质量。根据互联网的建议标准[RFC 2474],DS字段现在只使用其中的前6位,即区分服务码点DSCP(Differentiated Services CodePoint),再后面的两位目前不使用,记为CU(Currently Unused)。因此由DS字段的值所确定的服务质量实际上就是由DS字段中 DSCP的值来确定的。
在使用DS字段之前,互联网的ISP 要和用户商定一个服务等级协定SLA(Service Level Agreement)。在 SLA 中指明了被支持的服务类别(可包括吞吐量、分组丢失率、时延和时延抖动、网络的可用性等) 和每一类别所容许的通信量。
(2) 网络被划分为许多个 DS 域(DS Domain)。一个 DS 域在一个管理实体的控制下实现同样的区分服务策略。DiffServ 将所有的复杂性放在 DS域的边界节点(boundary node)中,而使 DS 域内部路由器工作得尽可能简单。边界节点可以是主机、路由器或防火墙等。为了简单起见,下面只讨论边界节点是边界路由器的情况(原理都是一样的)。图中给了DS 域、边界路由器(boundary router)和内部路由器(interior router)的示意图。图中标有 B的路由器都是边界路由器。
(3)边界路由器中的功能较多,可分为分类器(classifier)和通信量调节器(conditioner)两大部分。调节器又由标记器(marker)、整形器(shaper)和测定器(meter)三个部分组成。分类器根据分组首部中的一些字段(如源地址、目的地址、源端口、目的端口或分组的标识等)对分组进行分类,然后将分组交给标记器。标记器根据分组的类别设置 DS 字段的值。以后在分组的转发过程中,就根据 DS 字段的值使分组得到相应的服务。测定器根据事先商定的SLA 不断地测定分组流的速率(与事前商定的数值相比较),然后确定应采取的行动,例如可重新打标记或交给整形器进行处理。整形器中设有缓存队列,可以将突发的分组峰值速率平滑为较均匀的速率,或丢弃一些分组。在分组进入内部路由器后,路由器就根据分组的DS值进行转发。图中给出了边界路由器中各功能块的关系。
(4)DiffServ 提供了一种聚合(aggregation)功能。DiffServ 不是为网络中的每一个流维持供转发时使用的状态信息,而是把若干个流根据其 DS 值聚合成少量的流。路由器对相同DS值的流都按相同的优先级进行转发。这就大大简化了网络内部的路由器的转发机制。区分服务DiffServ不需要使用RSVP信令。
2.PHB(每跳行为)
DiffServ定义了在转发分组时体现服务水平的每跳行为PHB(Per-Hop Behavior)。所谓“行为”就是指在转发分组时路由器对分组是怎样处理的。“行为”的例子可以是:“首先转发这个分组”或“最后丢弃这个分组”。“每跳”是强调这里所说的行为只涉及本路由器转发的这一跳的行为,而下一个路由器再怎样处理则与本路由器的处理无关。这和IntServ/RSVP考虑的服务质量是“端到端”的很不一样。
IETF 的 DiffServ 工作组已经定义了两种 PHB,即迅速转发 PHB 和确保转发 PHB
迅速转发 PHB (Expedited Forwarding PHB)可记为 EF PHB,或 EF [RFC 3246,建议标准]。EF 指明离开一个路由器的通信量的数据率必须等于或大于某一数值。因此 EF PHB用来构造通过 DS 域的一个低丢失率、低时延、低时延抖动、确保带宽的端到端服务(即不排队或很少排队)。这种服务对端点来说像点对点连接或“虚拟租用线”,又称为 Premium(优质)服务。对应于EF的区分服务码点DSCP的值是101110。
确保转发PHB(Assured Forwarding PHB)可记为AF PHB或AF[RFC297,建议标准],AF用DSCP的第0~2位把通信量划分为四个等级 (分别为001,010,011和100),并给每一种等级提供最低数量的带宽和缓存空间。对于其中的每一个等级再用 DSCP的第 3~5位划分出三个“丢弃优先级”(分别为 010,100 和 110,从最低丢弃优先级到最高丢弃优先级),当发生网络拥塞时,对于每一个等级的 AF,路由器就首先把“丢弃优先级”较高的分组丢弃。
从以上所述可看出,区分服务 DifServ 比较灵活,因为它并没有定义特定的服务或服务类别。当新的服务类别出现而旧的服务类别不再使用时,DiffServ 仍然可以工作。