何宝宏
(信息产业部电信传输研究所 北京100045)
1 “尽力而为”的IP网
因特网取得巨大成功的一个重要原因是它所使用的IP的简单性。IP的基本设计原理来自于“端到端”的理念:把“智能”放到网络边缘结点(源和目的主机),留下“傻瓜型”的核心网络。网络核心结点(路由器)除了把IP包的目的地址与转发表对照,确定它的下一跳(hop)并转发外,几乎不需要做任何其他工作。如果下一跳的队列较长,则IP包的转发可能会被延迟;如果下一跳的队列满或不可用,则允许路由器丢弃IP包。因此因特网提供的是一种“尽力而为(best effort)”的服务,其服务质量是无法预知的。IP的“尽力而为”服务到目前为止工作得很好,那为什么还需要做改动,增加服务质量(QoS)机制呢?其实到现在仍然是一个有争议的问题。反对为IP增加QoS机制的理由主要有以下几点:
(1)在异类的子网之上(即网络层)的任何一种连接都是难以管理的。
(2)如果IP包经历太多的延迟或丢失,那势必要提高链路的带宽和路由器的处理能力。光纤和DWDM(密集波分复用)技术将会使网络带宽充裕和便宜到自动保证QoS的程度,在带宽不再很贵的时候,这种方法会比增加新的QoS机制所增加的复杂性要便宜得多。
(3)如果IP包经历太多的延迟抖动,那么就需要在接收端增加一个较大的缓冲区。
(4)即使这样问题仍然存在,那么就需要编写能够适应网络拥塞变化的自适应性的应用程序。实验已经表明自适应应用程序能够明显改善多媒体应用的服务质量。
(5)具有QoS能力的网络在资源不足的情况下,为了保证较高QoS要求的用户的服务,必然会牺牲其他用户的服务质量,从而降低了全网的总体服务水平;而如果资源充足,“尽力而为”的IP网络所提供的服务质量与具有QoS机制的网络是一样的。
现在业界主流的观点认为虽然现在的计算机处理能力正在飞速提高,光纤和DWDM技术所提供的传输带宽也在大幅度增加,但增加网络资源无法解决全部问题,这除了经济方面的考虑外(网络资源永远会是有成本的,不会是免费的),另外一个重要原因是因特网流量不仅随着用户和应用的增加而几乎同步增长,并且流量的特点也在发生着巨大的变化。很多新出现的IP网上的多媒体应用,要么要求巨大的带宽,要么需要严格的延迟保证,要么要求一点到多点或多点到多点的通信能力。这些新业务要求IP网除了提供简单的“尽力而为”服务以外,还需要新的服务方式,因此单靠增加网络资源无法解决问题,IP网结构本身也需要跟着改变,引入能够支持QoS的一些机制。当然,同时必须强调的是因特网一直追求的是“KISS(Keep It Simple and Stupid)”原则,增加资源的成本正在随着技术的进步不断快速下降,因此任何新引入的QoS机制必须是简单的,其代价必须明显低于增加资源的成本。
2 IP网络性能模型
与传统的IP网络分层模型相对应,对IP网络的QoS也应分层[ITU-T Y.1540/Y.1541] 研究。分层可以是按垂直方向,也可以是按水平方向。从水平方向看,端到端的QoS要求发送端和接收端主机必须支持QoS,并且只能保证与性能最差的链路同等的通信质量。另外,垂直方向由顶至底的不同层次上的性能也是必须要考虑的,以保证网络中高优先级的业务的发送和接收能获得较多或较早的处理机会。
2.1 垂直模型
从垂直方向看,通常从上往下可把 IP网络依次划分为应用层、IP层、链路层和网元层(设备和链路)。IP网网络性能取决于IP层的信息传送能力,并在很大程度上依赖于承载IP的底层链路的传输性能,同时应用层业务的相关特性也会影响IP网所表现出来的外在性能。
链路层和物理层为IP数据包提供面向连接或无连接的传送能力。“链路”没有端到端的含义,它的终点是IP数据包被转发的地方(如路由器、源主机、宿主机)。链路技术包括ATM、FR、SDH、PDH、ISDN、Ethernet等。
IP层提供IP数据包的无连接传送能力。IP层在特定源主机和宿主机之间通信,具有端到端的含义。当IP数据包在网络中传送时,网络可能会修改IP报文中的某些字段,但IP层和低层不能修改用户数据部分。
IP层支持的高层协议(如TCP、UDP、FTP、RTP、HTTP等)能够进一步强化端到端的通信,并会对IP层的性能产生影响。
2.2 水平模型
从水平方向看,主要由两部分组成:电路段和网络段。电路段和网络段又可以由不同的网元组成。从源主机(SRC)到宿主机(DST)之间传送IP数据包的一组电路段和网络段构成了端到端的IP网络。
从网络的边缘向核心看,一条端到端的IP包转发路径通常由用户设备(如主机+Modem/
网卡),用户接入链路(ISDN/PSTN、 ADSL、 Ethernet等),运营商网络边缘设备(窄带/宽带接入服务器,DNS服务器,边缘路由器),骨干链路(如ATM/
SDH/DWDM)和核心设备(高速路由器,标记交换路由器)等组成,这些设备或链路都有可能会影响到用户所感受到的IP网络的性能。
3 导致QoS问题的原因
导致IP网络QoS问题出现的原因大致有两类:一是与网络相关的一些因素,二是与网络无关的一些因素。
3.1 与网络无关的因素
· 业务服务器过载。如WWW服务器或E-mail服务器等过载。解决这类问题的方法是对这些服务器进行升级,或增加业务服务器的数量并在它们之间做负载均衡。
· 人为因素。配置路由器/服务器在技术上是一件很复杂的事情,很容易出现错误。比如配置重复了的IP地址会导致路由错误。
3.2 网络的原因
· 网络设备原因。现在的路由器和交换机都是由非常复杂的软硬件系统组成的,每秒需要处理上百万个IP包。数据产品制造商被迫尽可能快地推出他们的设备,因此客户发现路由器或交换机经常存在软/硬件问题是不足为怪的。必须采取适当的措施来提高设备的可用性,特别是对重要的流量更应如此。
· 接入链路的容量。出于经济方面的考虑,客户接入链路总是低速的,并且运营商通常会超卖上游链路。从技术上讲解决这类问题的方法很简单:(1)提高接入链路的能力;(2)对流量进行分类并做标记,利用策略、整形等技术分类处理。
· 不均衡的流量分布导致的拥塞。这是网络引起QoS问题的最主要原因。即使一个网络的平均链路利用率可能会比较低(比如30%),但完全有可能该网络中的某一小部分链路的利用率接近100%。这些拥塞的链路将导致包延迟加长和出现抖动,甚至导致包丢失。导致网络中出现这些拥塞热点的原因可能会是:(1)无法预期的事件,如线缆切断或设备故障;(2)流量模式发生大的变化,而网络路由、拓扑和容量无法及时得到调整。在骨干网中,不可能指望在合适的时间和合适的地点总是具有足够的容量。因此,一个Web站点的突然成功,一个计划外的多媒体流量广播或不断变化的需求都可能会导致网络中某些链路出现拥塞。
3.3 解决的思路
根据上面的分层模型,上层与下层之间是一种网络资源(包括带宽、内存和处理能力等)的需求和供给的关系。上层向其下层提出服务所需要的资源请求(可以是显式的,也可以是隐式的),下层做出响应(显式的请求)和提供资源。因此在传递IP包时,出现QoS问题最主要的原因是网络中的上下层之间的资源需求和供给不匹配,下层网络资源不足导致网络发生了拥塞。因此解决IP 网络上的服务质量问题,主要是如何避免和消除拥塞的问题,这可以从网络的角度(如何更好地提供服务)和业务的角度(如何合理地提出需求)加以考虑。
从网络的角度看,一是当整个网络发生拥塞时,设法尽量增加网络资源。充足的网络资源是解决服务质量问题的关键。在网络没有拥塞时有无QoS机制都行,因为即使是“尽力而为”的IP包也能够得到很好的服务。二是根据网络拓扑、流量和流向等因素合理优化网络的规划和设计,引导流量流向,尽量提高网络资源的利用率。比如可以用流量工程的方法来解决负载不均衡的问题。
从业务的角度看,就是在IP网络资源一定的情况下,在IP网络上提供有别于“尽力而为”的其他类型的业务,即提供有区别的业务。这可以借助InterServ模型(主要适用于LAN和接入网),也可以借助于DiffServ模型(主要适用于核心网)。比如在网络有可能发生拥塞时,对服务质量比较敏感的业务设置较高的优先级,使其能够尽量优先得到服务。但无论是采用什么样的QoS模型,这些思路都以牺牲低优先级的业务为代价,来换取高优先业务的QoS保证。
4 典型QoS技术
从QoS分层模型看,上下层之间是一种资源请求和供给的关系,因此在任何层面上都需要一定的QoS机制来保证服务质量。下面简单介绍在不同的层面上提出的或应该使用的几种典型的QoS机制。
4.1 应用层
改善服务质量可以在应用层进行。这种方式的QoS机制通常是在IP网络边缘的主机上实现。它根据网络所能够提供的资源情况,通过做单个应用的流量控制和服务器负载重定向等来改善该应用所感受到的服务性能。应用层QoS机制一般不需要对现有的IP网络做任何修改,因此实现和部署相对容易,但缺点是QoS机制的调节能力有限,并且不同的应用层QoS机制之间无法协同工作,消除网络拥塞相对不容易。
流量控制使得应用程序根据网络所提供的资源情况动态调节(比如不同速率的话音/视频编码)其向网络所发送数据的速率。当网络所提供的资源充足时,应用增加对网络资源的需求(从而获得较高的服务质量),否则降低对网络资源的需求(获得的服务质量下降)。比如根据编码原理,接收端播放相同数量的G.711话音包和G.723/G.729话音包时,用户所感受到的话音质量是完全不同的。因此可以在VoIP应用层基于RTP/RTCP这样做:如果发送端发现网络资源充足,就采用编码质量比较高的G.711 (64kbit/s)方式;如果发送端发现网络资源不足,就采用编码质量稍差的G.729(8kbit/s)、G.729.A(8kbit/s)或G.723.1(5.3kbit/s,6.3kbit/s)。
服务器负载重定向是在提供服务的多个应用服务器之间做流量的均衡。当某个服务器或访问该服务器的链路发生拥塞时,客户应用程序在不同的服务器簇之间做流量的重定向,把客户请求导向服务器资源和网络资源充足的服务器,改善了用户所感受到的服务质量。
4.2 传输层
传输层主要是对业务进行分类或为业务预留资源,是从业务的角度提供有别于尽力而为的服务类型,主要包括InterServ和DiffServ两种模型。除尽力而为的业务类型外,InterServ模型提供的新业务类型包括保证型业务(guaranteed service)和控制型载荷(controlled load)两种,DiffServ模型提供的新业务类型包括加速转发(EF)和多种确保转发(EF)两类。有关InterServ模型、DiffServ模型以及相关的技术将在下面的讲座中做进一步的介绍。
4.3 网络层
网络层的QoS技术包括流量工程/QoS路由,流量控制和拥塞控制等。介绍流量工程/QoS路由的资料较多,因此本节只做一个基本概念的介绍。流量控制和拥塞控制将在后面的讲座中加以介绍。
现在的动态路由协议RIP、OSPF和IS-IS都会导致不均匀的流量分布,因为它们总是选择最短路径转发IP包。结果在两个结点之间顺着最短路径上的路由器和链路可能发生了拥塞,而沿较长路径的路由器和链路却是空闲的。流量工程可以安排流量如何合理通过网络,以避免不均匀地使用网络而导致的拥塞。流量工程可以人工进行,也可以借助多协议标记交换(MPLS)等工具实施。
流量工程通常与约束路由存在密切的关联,约束路由可为DiffServ、InteServ和流量工程等提供满足QoS要求的路径。约束路由决定一个路由时,不仅涉及网络的拓扑结构,而且还包括流提出的资源需求、链路资源可用性以及网络管理员规定的一些可能的管制策略。因此约束路由可能会找到一条较长和较轻负载的路径,这条路径优于重负载的最短路径,网络流量会因此而更均匀一些。要想实现约束路由,路由器需要计算新链路的状态信息,再根据这些状态信息计算路由。
4.4 链路层
这里讨论QoS时的链路层以局域网(LAN)技术为例。根据分层模型,如果IP包承载在LAN上,那么LAN技术也就必须支持高层的IP QoS机制。ATM LAN已经能够支持QoS,因此下面侧重于另外一种最常见的LAN技术——以太网(Ethernet)支持QoS的技术。
LAN标准IEEE 802.1Q和802.1D扩展了以太网的帧格式,增加了4字节,包括在以太网上传输数据时的VLAN (Virtual LAN)标记和显式的“user_priority”字段。802.1D“user_priority”字段(以前在802.1p中做了定义)使用802.1Q VLAN标记的3bit定义了8种以太网上的流量类型。对于以太网交换机上的某端口上的一定数量的队列,802.1D定义了使用哪种流量类型,以及如何把它们指派给这些队列的方式。
将DiffServ模型的服务类型映射到IEEE 802类型的LAN上是一件很简单的事情,只需要将DiffServ的DSCP(DiffServ Coding Point)值映射到IEEE 802的“user_priority”字段中就可以了。
而将InterServ模型的服务类型映射到IEEE 802类型的LAN上就没有那么容易了,因为InterServ使用了信令协议RSVP,而IEEE 802类型的LAN没有与QoS相关的信令机制。为此,IETF制定了子网带宽管理(SBM)协议(RFC2814),它是一种工作在IEEE 802类型LAN网络上的,基于RSVP的许可控制信令协议。SBM提供了一种把因特网级的“setup(建立)”协议(比如RSVP)映射到IEEE 802类型网络上的方法,尤其是提出了一种RSVP使能的主机/路由器与链路层设备(交换机、桥)的互操作机制,以支持为RSVP使能的数据流能够预留LAN资源。
5 小结
现在的互联网已经不是专门用于非赢利的学术研究了,而是一种商业服务:获取互联网接入或增值服务的用户是互联网服务的消费者,向用户出售互联网业务的运营商是服务的提供者。任何服务都可能存在服务质量差异,因此收费的标准通常与该服务的质量有关。比如同样是把乘客送到目的地,飞机与火车,公共汽车与出租车,甚至不同档次的出租车的收费标准都不一样。
运营商不做服务质量保证是互联网发展初期的现象,随着技术的进步、竞争的加剧、开展业务的需要以及客户对互联网服务质量意识的提高,越来越多的消费者、政府监管部门和运营商都已经非常关注他们所使用的、经营的或监管的IP网络的服务质量。
但尽管目前对QoS技术的研究已经取得了巨大的进展,但仍然有一些关键因素制约着该技术的大规模部署和使用(RFC 2990),只有将下列这些问题解决后,才有可能将目前的QoS技术转变成一种统一的端到端业务传输平台。这些问题包括:
· 目前还不能确定QoS是应该基于每个应用的InterServ模型方式,还是基于聚合流的DiffServ模型方式。InterServ提供QoS时的准确性较好,但可扩展性差;DiffServ的可扩展性较好,但粒度较粗。如何结合二者的优势是一个需要研究的问题。
· 如何做QoS的发现、路由、计费、监测和管理等。
· 不同层QoS机制之间的协同问题,QoS对其他协议的影响。如DiffServ与InterServ互通,流量工程与TCP的交互等。
· 部署问题。不可能指望所有的IP网络同时使用相同的QoS技术,因此能够支持异构环境下的QoS部署非常重要。另外,QoS不仅会在域内使用,也应该能够跨域使用,因此需要QoS域间信令的支持。最后,是先部署支持QoS的主机应用,还是先由网络提供QoS支持是一个先有鸡还是先有蛋的问题。
(参考文献略)
何宝宏,毕业于中国科学院,获博士学位。现供职于信息产业部电信传输研究所,从事IP QoS、IP VPN等技术研究,任主任工程师,高级工程师。发表文章近40篇,编著有《IP虚拟专用网》一书。
----《中国数据通信》