扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
摘要
本文对Internet的三种服务模型:Best-Effort、Intserv和Diffserv,以及服务模型的发展历程进行了简单介绍,较为详细地介绍了华为3Com公司系列数据通信产品所支持的QoS特性和相关技术,内容包括:报文分类、拥塞管理、拥塞避免、流量监控、流量整形及物理接口总速率限制和链路效率机制等技术。并且简要描述了在相关应用中的实际QoS解决方案。网络运营商及行业用户等通过对这些QoS特性的灵活运用,可以在Internet或任何基于IP的网络上为客户提供有保证的区分服务。
关键词
QoS,服务模型,Intserv,Diffserv,拥塞管理,拥塞避免,队列技术,流量监管,流量整形,链路效率机制
缩略语清单:
名词 |
英文解释 |
中文解释 |
ACL |
Access Control List |
访问控制列表,用于对IP报文进行流分类。 |
AF |
Assured Forwarding |
确保转发 |
CAR |
Committed Access Rate |
约定访问速率 |
CBWFQ |
Class Based Weighted Fair Queuing |
基于类的加权公平队列 |
CQ |
Custom Queuing |
定制队列 |
DiffServ |
Differentiated Service |
区分服务 |
DSCP |
Differentiated Services Codepoint |
区分服务编码点 |
DS-TE |
DiffServ-Aware Traffic Engineering |
DiffServ感知的流量工程 |
EF |
Expedited Forwarding |
加速转发 |
FIFO |
First in First out |
先入先出 |
FTP |
File Transfer Protocol |
文件传输协议 |
GTS |
Generic Traffic Shaping |
通用流量整形 |
IntServ |
Integrated Service |
综合服务 |
IPHC |
IP Header Compression |
IP头压缩 |
ISP |
Internet Service Provider |
Internet服务提供商 |
LFI |
Link Fragmentation & Interleaving |
链路分片与交叉 |
LLQ |
Low Latency Queueing |
低时延队列 |
MPLS |
Multiprotocol Label Switching |
多协议标签交换 |
PHB |
Per-hop Behavior |
单中继段行为,指IP转发中每一跳的转发行为 |
PQ |
Priority Queuing |
优先队列 |
QoS |
Quality of Service |
服务质量,指报文传送的吞吐量、时延、时延抖动、丢失率等性能 |
RSVP |
Resource Reservation Protocol |
资源预留协议 |
SQC |
Structual QoS CLI |
结构化命令行 |
TE |
Traffic Engineering |
流量工程 |
VoIP |
Voice over IP |
通过IP报文传递语音包 |
VPN |
Virtual Private Network |
虚拟私网 |
VRP |
Versatile Routing Platform |
通用路由平台,是华为3Com数据通信产品软件系统的总称。 |
WFQ |
Weighted Fair Queuing |
加权公平队列 |
WRED |
Weighted Random Early Detection |
加权随机早期检测 |
1 概述1.1 QoS及其功能
在传统的IP网络中,所有的报文都被无区别的等同对待,每个路由器对所有的报文均采用先入先出(FIFO)的策略进行处理,它尽最大的努力(Best-Effort)将报文送到目的地,但对报文传送的可靠性、传送延迟等性能不提供任何保证。
网络发展日新月异,随着IP网络上新应用的不断出现,对IP网络的服务质量也提出了新的要求,例如VoIP(Voice over IP,IP语音)等实时业务就对报文的传输延迟提出了较高要求,如果报文传送延时太长,将是用户所不能接受的(相对而言,E-Mail和FTP业务对时间延迟并不敏感)。为了支持具有不同服务需求的语音、视频以及数据等业务,要求网络能够区分出不同的通信,进而为之提供相应的服务。传统IP网络的尽力服务不可能识别和区分出网络中的各种通信类别,而具备通信类别的区分能力正是为不同的通信提供不同服务的前提,所以说传统网络的尽力服务模式已不能满足应用的需要。QoS(Quality of Service,服务质量)技术的出现便致力于解决这个问题。
QoS旨在针对各种应用的不同需求,为其提供不同的服务质量,例如:提供专用带宽、减少报文丢失率、降低报文传送时延及时延抖动等。为实现上述目的,QoS提供了下述功能:
报文分类和着色
网络拥塞管理
网络拥塞避免
流量监管和流量整形
QoS信令协议
下面用简单的例子对比了在网络发生拥塞时,报文在无QoS保证和有QoS保证网络中的不同处理过程。
图1所示为发生拥塞时,网络设备的一个接口在不支持QoS的情况下,报文的发送情况:
图 1 先进先出队列示意图
所有要从该接口输出的报文,按照到达的先后顺序进入接口的FIFO队列尾部,而接口在发送报文时,从FIFO(First in First out,先入先出)队列的头部开始,依次发送报文,所有的报文在发送过程中,没有任何区别,也不对报文传送的质量提供任何保证。
图2则是一个用PQ(Priority Queuing)队列来支持QoS的报文发送情况:
图 2 PQ队列示意图
在报文到达接口后,首先对报文进行分类,然后按照报文所属的类别让报文进入所属队列的尾部,在报文发送时,按照优先级,总是在所有优先级较高的队列中的报文发送完毕后,再发送低优先级队列中的报文。这样在每次发送报文时,总是将优先级高的报文先发出去,保证了属于较高优先级队列的报文有较低的时延,报文的丢失率和时延这两个性能指标在网络拥塞时也可以有一定的保障。
QoS可以控制各种网络应用和满足多种网络应用要求,如:
控制资源:如可以限制骨干网上FTP使用的带宽,也可以给数据库访问以较高优先级。
可裁剪的服务:对于ISP(Inernet Service Provider,Internet服务提供商),其用户可能传送语音、视频或其他实时业务,QoS使ISP能区分这些不同的报文,并提供不同服务。
多种需求并存:可以为时间敏感的多媒体业务提供带宽和低时延保证,而其他业务在使用网络时,也不会影响这些时间敏感的业务。
在一个网络中,需要以下的三个部分来完成端到端的QoS:
l 各网络元件(路由器、以太网交换机等)支持QoS,提供队列调度、流量整形等功能。
l 信令技术来协调端到端之间的网络元件,为报文提供QoS。
l QoS技术控制和管理端到端之间的报文在一个网络上的发送。
每个网络元件提供如下功能:
l 报文分类,对不同类别的报文提供不同的处理。
l 队列管理和调度来满足不同应用要求的不同服务质量。
l 流量监管和流量整形限制和调整报文输出的速度。
l 接入控制来确定是否允许用户信息流使用网络资源。
1.2 服务模型
服务模型,是指一组端到端的QoS功能,通常QoS提供以下三种服务模型:
l Best-Effort service(尽力而为服务模型)
l Integrated service(综合服务模型,简称Intserv)
l Differentiated service(区分服务模型,简称Diffserv)
1.2.1 Best-Effort服务模型
Best-Effort是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候,发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。对Best-Effort服务,网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证。 Best-Effort服务是现在Internet的缺省服务模型,它适用于绝大多数网络应用,如FTP、E-Mail等,它通过先入先出(FIFO)队列来实现。
1.2.2 Intserv服务模型
Intserv是一个综合服务模型,它可以满足多种QoS需求。这种服务模型在发送报文前,需要向网络申请特定的服务。这个请求是通过信令(signal)来完成的。应用程序首先通知网络它自己的流量参数和需要的特定服务质量请求,包括带宽、时延等,应用程序一般在收到网络的确认信息,即确认网络已经为这个应用程序的报文预留了资源后,才开始发送报文。同时应用程序发出的报文应该控制在流量参数描述的范围以内。
网络在收到应用程序的资源请求后,执行资源分配检查(Admission control),即基于应用程序的资源申请和网络现有的资源情况,判断是否为应用程序分配资源。一旦网络确认为应用程序的报文分配了资源,则只要应用程序的报文控制在流量参数描述的范围内,网络将承诺满足应用程序的QoS需求。而网络将为每个流(flow,由两端的IP地址、端口号、协议号确定)维护一个状态,并基于这个状态执行报文的分类、流量监管(policing)、排队及其调度,来实现对应用程序的承诺。
在IntServ服务模型中,负责传送QoS请求的信令是RSVP(Resource Reservation Protocol,资源预留协议),它通知路由器应用程序的QoS需求。RSVP是在应用程序开始发送报文之前来为该应用申请网络资源的,所以是带外(out-bind)信令。
IntServ可以提供以下两种服务:
保证服务(Guaranteed service) 它提供保证的带宽和时延限制来满足应用程序的要求。如VoIP应用可以预留10M带宽和要求不超过1秒的时延。
负载控制服务(Controlled-Load service) 它保证即使在网络过载(overload)的情况下,能对报文提供近似于网络未过载类似的服务,即在网络拥塞的情况下,保证某些应用程序的报文低时延和高通过。
1.2.3 DiffServ服务模型
DiffServ是一个多服务模型,它可以满足不同的QoS需求。与IntServ不同,它不需要使用RSVP,即应用程序在发出报文前,不需要通知路由器为其预留资源。对DiffServ服务模型,网络不需要为每个流维护状态,它根据每个报文指定的QoS,来提供特定的服务。可以用不同的方法来指定报文的QoS,如IP报文的优先级位(IP Precedence),报文的源地址和目的地址等。网络通过这些信息来进行报文的分类、流量整形、流量监管和队列调度。
DiffServ一般用来为一些重要的应用提供端到端的QoS。它通过下列技术来实现:
CAR:它根据报文的ToS或CoS值(对于IP报文是指IP优先级或者DSCP,对于MPLS报文是指EXP域等等)、IP报文的五元组等信息进行报文分类,完成报文的标记和流量监管。
队列技术:WRED、PQ、CQ、WFQ、CBWFQ等队列技术对拥塞的报文进行缓存和调度,实现拥塞管理。
通常在配置DiffServ时,边界路由器通过报文的源地址和目的地址等对报文进行分类,对不同的报文设置不同的CoS值,而其他路由器只需要用CoS值来进行报文的分类。
在MPLS上应用DiffServ用以下两种方法来解决:
在以太网等网络中,MPLS报文在二层链路层和三层网络层之间有一个薄层(shim),我们扩展薄层中未用的字段??EXP(包含三个位),由这几个位来决定报文的队列调度及丢弃的优先级。
在ATM,FR等网络中,其MPLS报文没有薄层(shim),可针对FEC(Forwarding Equivalance Class 转发等价类)和QoS请求的组合来分配标签,而不同于以前仅针对FEC分配标签(lable)。这样在收到一个MPLS报文后,根据收到报文的标签,就可以确定发出报文的标签及报文所要求的服务。
1.2.4 Intserv与Diffserv之间的互通
一般来讲,在提供IP网络的QoS时,为了实现规模适应性,在IP骨干网往往需要采用Diffserv体系结构,在IP边缘网可以有两种选择:采用Diffserv体系结构或采用Intserv体系结构。目前在IP边缘网络采用哪一种QoS体系结构还没有定论,也许这两种会同时并存于IP边缘网中。在IP边缘网采用Diffserv体系结构的情况下,IP骨干网与IP边缘网之间的互通没有问题。在IP边缘网采用Intserv体系结构的情况下,需要解决Intserv与Diffserv之间的互通问题,包括RSVP在Diffserv域的处理方式、Intserv支持的业务与Diffserv支持的PHB (Per-Hop Behavior,单中继段行为)之间的映射。
RSVP在Diffserv域的处理可以有多种可选择的方式。例如一种方式为RSVP对Diffserv域透明,RSVP在Intserv域边界路由器终结,Diffserv域对Intserv域采用静态资源提供方式;一种方式为Diffserv域参与RSVP协议处理,Diffserv域对Intserv域采用动态资源提供方式。前一种互通方式实现相对简单,可能造成Diffserv域资源的浪费,后一种互通方式实现相对复杂,可以优化Diffserv域资源的使用。
除此以外,还需要解决Intserv支持的业务与Diffserv支持的PHB之间的映射问题,映射标准为两者支持的应用是否相同或相近。为了说明这个问题我们首先回顾一下Intserv支持的业务,它支持的业务包括:保证服务(Guaranteed Service)、负载控制服务(Controlled-Load Service),前者可以为用户应用提供严格的端到端时延及带宽保证,适用于实时应用;后者在网络负荷较重的情况下为用户应用提供与网络轻负荷情况下相近似的性能,不能保证端到端的时延。 Diffserv提供的PHB包括:EF(Expedited Forwarding,加速转发)、AF(Assured Forwarding,确保转发)。EF用于支持低丢失率、低时延、确保带宽的应用,AF可以保证在应用向网络发送的业务流量没有超过约定值的情况下,该应用的报文丢失概率非常低,AF有4类,每一类可以设置3个不同的丢弃优先级。从上面的叙述易于获得Diffserv与Intserv 之间的映射关系:
将Intserv中的保证服务映射为Diffserv中的EF。
将Intserv中的负载控制服务映射为Diffserv中的AF。
华为3Com公司路由器的QoS采用了上述Intserv支持的业务与Diffserv支持的PHB之间的映射关系。
1.2.5 服务模型的发展历程
随着人们认识问题的逐步深入,QoS技术的发展经历了一个漫长、曲折的过程,如图3:
图 3 QoS技术的发展历程
1)20世纪80年代,当时的Internet主要承载数据业务,网络采用尽力而为的服务、无QoS保障。
2)到了20世纪90年代初期,由于受到VoIP等实时业务的驱动,IETF组织在IP QoS领域做了第一次尝试,在1994年推出了基于RSVP的IntServ解决方案,这是一种端到端基于流的QoS技术。
IntServ主要借鉴了窄带PSTN领域的成功经验,通信前先通过信令协议建立端到端的通信路径、解决QoS问题,但同样的思想在IP领域却没有获得成功,其中一个重要的原因在于IP网络与PSTN网络的流量模型和业务模型是不同的,参见表1。
表1 IP网络和PSTN网络流量模型和业务模型的比较
|
流量模型 |
业务模型 |
PSTN网络 |
以本地网范围内的业务(市话)为主,少量的业务(长话)要穿透本地网 |
对于一个源电话号码和目的电话号码对,只需提供一条64Kbps的电路交换路径 |
IP网络 |
大量的业务都要穿透本地网 |
对于一个源IP地址和目的IP地址对,可并发存在多种业务,如FTP、WWW、E-Mail、VOIP等,各类业务的QoS要求也不相同 |
由于IP网络流量模型和业务模型的特点,使得Internet骨干网瞬间要为成千上万的业务流提供服务,因此粒度为单个流的路径预留的解决思路在Internet骨干网上无法扩展,这严重制约了IntServ在实际网络中的应用。当然还存在其他一些限制IntServ应用的因素,包括RSVP信令大规模的部署、不同厂商设备之间的互通以及基于业务的管理(认证、计费)等。可以说基于RSVP的IntServ解决方案是在IP QoS方面一次失败的尝试,IntServ从1994年推出至今并没有获得任何规模的商用。
3)为了寻求扩展性和简易性,IETF组织在1998年推出了基于DSCP的DiffServ解决方案,这是一种基于类的QoS技术。使用DiffServ,在网络入口处根据服务要求对业务进行分类、流量控制,同时设置报文的DSCP域;在网络中根据实施好的QoS机制来区分每一类通信(依据分组的DSCP值)、并为之服务(包括资源分配、队列调度、分组丢弃策略等,统称为PHB),DiffServ域中的所有节点都将根据分组的DSCP字段来遵守PHB。DiffServ通过将业务定义为有限的类、可以很好地解决扩展性的问题。
4)MPLS网络本身的QoS技术可以采用两种思路,首先可以采用IntServ方案,提供基于流的QoS,但由于IntServ存在的问题,这条路在一开始就没有走通。MPLS QoS的另一种思路是采用DiffServ方案。
MPLS与DiffServ都具有很好的可扩展性,处理过程也类似:在网络边缘聚合(DSCP或标签)、在网络核心处理(基于DSCP的PHB或基于标签的转发);如果将DSCP字节的设置融入MPLS的标签分配过程中,MPLS的标签将具备区分分组服务质量的能力。
IP报文头的DSCP对MPLS设备(LSR)是不可见的,因此必须存在某种机制让DSCP对LSR是可见的,根据将IP DiffServ信息通过标签传达给LSR方式的不同,业界存在两种MPLS QoS的解决方案:
E-LSP:在LER上将IP DSCP映射到MPLS的EXP位,通过EXP位向LSR表示分组的QoS要求,这样一个LSP最多可支持8个服务等级;LSR根据标签和EXP对分组进行队列调度,根据EXP进行报文丢弃,同一LSP中的分组可能被分到不同的队列;E-LSP是通过LDP协议建立的普通的LSP。
L-LSP:在LER上将IP DSCP映射为一个LSP,通过标签和EXP位向LSR表示分组的QoS要求;LSR根据标签对分组进行队列调度,根据EXP进行报文丢弃,同一LSP中的分组被分到同一个队列。 L-LSP需要通过CR-LDP或RSVP扩展来建立。
选择上述两种方案主要取决网络所规划的业务类别数目、分组丢弃值以及MPLS运行的模式(帧模式或信元模式);当采用信元模式的MPLS操作时,标签与VPI/VCI相对应,只能采用L-LSP,此时将标签的EXP映射为信元的CLP;当采用帧模式的MPLS操作时,采用E-LSP或L-LSP方案都可以;目前大部分网络运营商所使用的业务等级都在4个以内(话音、视频、VPN与高质量上网、普通上网),所以E-LSP基本能够满足应用,又能很容易与IP优先级和802.1p做到互通; L-LSP与MPLS DS-Aware TE使用了很多相同的机制,DS-TE本身就使用L-LSP,两者都可以为不同服务等级的业务提供不同的LSP、满足业务要求,但DS-TE比L-LSP功能更为强大,例如DS-TE可以对整个网络的资源进行优化;目前业界趋向于采用E-LSP方式。
5)MPLS TE是一种间接改善网络QoS的技术。传统路由协议(如OSPF或IS-IS)主要是保障网络的连通性和可达性,通常选取不是非常灵敏的参数作为SPF计算根据,导致网络负载不均衡、路由动荡等缺陷;MPLS TE在网络资源有限的前提下,将网络流量合理引导,达到实际网络流量负载与物理网络资源相匹配的目的,间接改善了网络的服务质量。
根据用户需求(显示路由、带宽等)及网络资源的情况,MPLS TE能够自动通过CR-LDP信令(或RSVP扩展)建立一条跨越骨干网的从LER到LER的隧道,同时可完成隧道的维护、统计、属性修改(如带宽)及备份等功能;LER与LER设备之间,可以认为通过一个隧道直连;MPLS TE隧道可广泛应用于VPN、各类接入及互联业务中。
通过MPLS TE,可为用户创建具有带宽保证的隧道,但如果在隧道中同时传送EF、AF及BE业务时,业务之间会相互干扰,也就是说MPLS TE存在一个严重的问题?? MPLS TE隧道不能够感知业务类型。
6)2002年业界提出了一种MPLS DiffServ-Aware TE 的解决方案。
DiffServ提供了基于类的QoS,具有良好的可扩展性,但缺乏有效的端到端部署的机制;MPLS TE通过有效地管理带宽资源间接改善网络服务质量,但其带宽管理以及MPLS TE隧道都无法做到基于业务类别,如果EF、AF、BE业务都承载在一个MPLS TE隧道中,EF和AF业务将受到严重的影响。MPLS DiffServ-Aware TE在原来MPLS TE的基础上,增加了基于类别的资源管理,例如可根据带宽及时延的不同将接口资源划分为EF、AF、BE三类,通过IGP协议对每个类别的资源使用情况进行收集、分别建立TED,通过信令协议携带类别建立LSP。
MPLS DS-TE充分利用了DiffServ的可扩展性以及MPLS 的显示路由能力,是解决骨干网QoS的有效技术,网络资源可根据用户的需求得到最优的利用。
通过上面的分析我们可以看出,在众多的QoS技术中,IP DiffServ、MPLS DiffServ E-LSP及MPLS DiffServ-Aware TE将成为主流的QoS技术,这也是华为3Com公司研究与开发的重点。
同时我们也应看到,IP网络的QoS技术即使发展到今天,也不存在这样一种技术可以提供类似于PSTN网络的、全网范围的、端到端的、基于流的QoS,原因是多方面的,涉及到IP网络业务、技术及设备等多方面的因素。因此解决现有网络的QoS问题,需要详细分析网上各类业务的流量模型、业务模型,详细分析现有网络的各个环节、找出影响业务QoS的关键因素所在,充分运用各种QoS技术(如IP网络QoS及各种二层网络的QoS技术),从IP承载网、业务终端和应用程序以及用户管理(包括认证与计费等)等多方面着手,提供QoS解决方案。
1.3 信令
信令技术给网络通讯的两端和网络的中间节点提供了一种方法,让它们向相邻的网络节点请求对一类报文的特殊处理。QoS的信令协调了端到端通讯的中间节点包括交换机、路由器等为这个通讯提供服务。
信令技术包括两种,即带内(in-band)和带外(out-band)信令技术。带内信令通过每个报文中携带的IP优先级、DSCP、MPLS EXP、802.1p CoS等信息,通知网络节点为这个报文提供相应服务。带外信令则是通过一个独立的协议RSVP,来为不同的报文流申请网络资源。带内信令应用于Differentiated service,RSVP则应用于IntServ。
1.3.1 RSVP简介
RSVP是第一个标准QoS信令协议,它用来动态地建立端到端的QoS,它允许应用程序动态地申请网络带宽等。RSVP协议不是一个路由协议,相反,它按照路由协议规定的报文流的路径为报文申请预留资源,在路由发生变化后,它会按照新路由进行调整,并在新的路径上申请预留资源。RSVP只是在网络节点之间传递QoS请求,它本身不完成这些QoS的要求实现,而是通过其他技术如WFQ,CBWFQ等技术来完成这些要求的实现。
RSVP的处理是接收方发出资源请求,按照报文发送的反向路径发送资源请求,所以它可以满足非常大的多播组,多播组的成员也可以动态变化。RSVP协议是针对多播设计的,单播可以看作是多播的一个特例。
由于RSVP在Internet上还没有得到广泛的推广,在主机不支持RSVP的情况下,我们可以通过配置RSVP代理,即代替不支持RSVP的主机发送RSVP报文来获得这种服务。对报文流路径上不支持RSVP的路由器,它只需要简单的转发RSVP报文,所以对RSVP协议不会有太大影响,但这些节点不会对报文提供所要求的QoS。
1.3.2 资源预留
RSVP信令在网络节点之间传送资源请求,而网络节点在收到这些请求后,需要为这些请求分配资源,这就是资源预留。网络节点比较资源请求和网络现有的资源,确定是否接受请求,在资源不够的情况下,这个请求可以被拒绝。
可以对每个资源请求设置不同的优先级,这样,优先级较高的资源请求可以在网络资源不够的情况下,抢占较低优先级的预留资源,来优先满足高优先级的资源请求。
资源预留判断是否接受资源请求,并承诺对接受了的资源请求提供请求的服务。但资源预留本身不实现承诺的服务,需要通过队列等其他技术来实现。
2 VRP QoS特性及相关技术
华为3Com公司的网络产品已经全面提供对IP DiffServ解决方案的支持:完全兼容IETF DiffServ解决方案的相关标准,包括RFC2474、RFC2475、RFC2497、RFC2498;支持以IP Precedence或DSCP作为QoS带内信令,可灵活配置;支持DiffServ相关的功能组件,包括流量调节器(包括分类器、标记器、测量单元、整形器和丢弃器等)和各类PHB(拥塞管理、拥塞避免等)。
华为3Com公司的网络产品已经全面提供对MPLS DiffServ解决方案的支持:采用E-LSP方案,以MPLS EXP作为QoS信令;所有的DiffServ功能组件(流量调节器和各类PHB)均为EXP做了扩展。
在2003年华为3Com公司即将提供对MPLS DS-TE解决方案的支持。
华为3Com的QoS整体解决方案由其核心路由软件平台 - VRP提供,华为3Com公司所有采用VRP的产品,包括R系列中低端路由器、NE系列高端路由器、S系列以太网交换机,均可相互配合提供端到端的QoS解决方案。
VRP的QoS具有以下特性:
l 流量的分类和标记
l 拥塞管理
l 拥塞避免
l 流量监管和流量整形
l 物理接口总速率限制
l 链路效率机制
2.1 流量分类和标记
流量分类是将数据报文划分为多个优先级或多个服务类,如使用IP报文头的ToS(Type of service,服务类型)字段的前三位(即IP优先级)来标记报文,可以将报文最多分成8类;若使用DSCP(Differentiated Services Codepoint,区分服务编码点,ToS域的前6位),则最多可分成64类。在报文分类后,就可以将其它的QoS特性应用到不同的分类,实现基于类的拥塞管理、流量整形等。
网络管理者可以设置报文分类的策略,这个策略除可以包括IP报文的IP优先级或DSCP值、MPLS报文的EXP域值、802.1p的CoS值等带内信令,还可以包括输入接口、源地址、目的地址、MAC地址、IP协议或应用程序的端口号等。分类的结果是没有范围限制的,它可以是一个由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)确定的流这样狭小的范围,也可以是到某某网段的所有报文。
通常于网络边界处对报文进行分类时,同时标记IP优先级或DSCP,这样,在网络的内部就可以简单的使用IP优先级或DSCP作为分类的标准。而队列技术如WFQ,CBWFQ就可以使用这个优先级来对报文进行不同的处理。下游(downstream)网络可以选择接收上游(upstream)网络的分类结果,也可以按照自己的分类标准对数据流量重新进行分类。
例如:在网络的边界做如下分类和标记:
所有VoIP数据报文聚合为EF业务类,将报文的IP优先级标记为5,或者将DSCP值标记为EF;
所有VoIP控制报文聚合AF业务类,将报文的IP优先级标记为4,或者将DSCP值标记为AF31。
当报文在网络边界被标记分类之后,在网络的中间节点,就可以根据标记,对不同类别的流量给予差别服务了。例如对上述例子中的EF业务类保证时延和减少抖动,同时进行流量监管;对AF业务类在网络拥塞时仍然保证一定的带宽,等等。
对于MPLS QoS,所谓标记就是MPLS报文中的EXP域进行设置。EXP域包括3位,虽然RFC 3032把它叫做实验(experimental)域,但它通常作为MPLS报文的CoS域,与IP网络的ToS域等效,用来区分数据流量的服务等级,以支持MPLS网络的DiffServ。
在IP网络,由IP报文的IP优先级或DSCP标识服务等级。但是对于MPLS网络,由于报文的IP头对LSR设备是不可见的,所以需要在MPLS网络的边缘对MPLS报文的EXP域进行标记。
缺省的情况下,在MPLS网络的边缘,将IP报文的IP优先级直接拷贝到MPLS报文的EXP域,但是在下面的情况下,如ISP不信任用户网络,或者ISP定义的差别服务类别不同于用户网络,则可以根据一定的分类策略,例如IP报文的IP优先级或DSCP 、IP报文的五元组、输入接口等,在MPLS网络边缘重新设置MPLS报文的EXP域,而在MPLS网络转发的过程中保持IP报文的ToS域不变。
在MPLS网络的中间节点,根据对MPLS报文的EXP域对报文进行分类,并实现拥塞管理,流量监管或者流量整形等PHB。
2.2 拥塞管理 2.2.1 什么是拥塞和拥塞管理
图 4 网络拥塞示意图
在计算机数据通信中,通信信道是被多个计算机共享的,并且,广域网的带宽通常要比局域网的带宽小,这样,当一个局域网的计算机向另一个局域网的计算机发送数据时,由于广域网的带宽小于局域网的带宽,数据将不可能按局域网发送的速度在广域网上传输。此时,处在局域网和广域网之间的路由器将不能发送一些报文,即网络发生了拥塞。
如图4所示,当公司局域网1向公司局域网2以10M的速度发送数据时,将会使路由器1的串口s1发生拥塞。
拥塞管理是指网络在发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ,CQ,RTP优先队列,WFQ,CBWFQ等。
拥塞管理的处理包括队列的创建、报文的分类、将报文送入不同的队列、队列调度等。在一个接口没有发生拥塞的时候,报文在到达接口后立即就被发送出去,在报文到达的速度超过接口发送报文的速度时,接口就发生了拥塞。拥塞管理就会将这些报文进行分类,送入不同的队列;而队列调度对不同优先级的报文进行分别处理,优先级高的报文会得到优先处理。
2.2.2 拥塞管理技术
对于拥塞的管理,一般采用队列技术,使得报文在路由器中按一定的策略暂时缓存到队列中,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。根据入队和出队策略的不同,拥塞管理分为以下几种:
2.2.2.1 1.先进先出队列(First In First Out Queuing, FIFO)
先进先出队列(以后简称FIFO)不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
在如图4所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,则FIFO不会对这两种不同业务的报文做任何区别对待,报文的出队完全依赖于报文到来的先后顺序。
2.2.2.2 2.优先队列(Priority Queuing, PQ)
图 6 优先队列示意图
如图6所示,优先队列(以后简称PQ)对报文进行分类,对于IP网络,可以根据IP报文的优先级/DSCP,五元组等条件进行分类,对于MPLS网络,则根据MPLS报文EXP域值进行分类。最终将所有报文分成最多至4类,分别属于PQ的4个队列中的一个,然后,按报文的类别将报文送入相应的队列。PQ的4个队列分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出队的时候,PQ首先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,然后发送中优先队列中的报文,同样,直到发送完,然后是正常优先队列和低优先队列。这样,分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先,使得高优先级业务(如VoIP)的报文能够得到优先处理,较低优先级业务(如E-Mail)的报文在网络处理完关键业务后的空闲中得到处理,既保证了高优先级业务的优先,又充分利用了网络资源。
在如图4所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,如果对路由器1的串口1配置PQ进行拥塞管理,同时配置服务器间的数据流的进入较高优先级的队列,PC间的数据流进入较低优先级的队列,则PQ将对这两种不同业务的报文做区别对待,首先让较高优先级队列中的报文出队并发送,直到此队列中的报文发送完,然后再发送较低优先级队列中的报文。即服务器间的报文总是被先发送,直到暂时没有服务器间的报文,路由器才发送PC间的报文。
2.2.2.3 定制队列(Custom Queuing, CQ)
图 7 定制队列示意图
如图7所示,定制队列(以后简称CQ)对报文进行分类,对于IP网络,可以根据IP报文的优先级/DSCP,五元组等条件进行分类,对于MPLS网络,则根据MPLS报文EXP域值进行进行分类。最终将所有报文分成最多至17类,分别属于CQ的17个队列中的一个,然后,按报文的类别将报文送入相应的队列。CQ的17个队列中,0号队列是优先队列,路由器总是先把0号队列中的报文发送完,然后才处理1到16号队列中的报文,所以0号队列一般作为系统队列,把实时性要求高的交互式协议和链路层协议报文放到0号队列。1到16号队列可以按用户的定义分配它们能占用接口带宽的比例,在报文出队的时候,CQ按定义的带宽比例分别从1到16号队列中取一定量的报文在接口上发送出去。
现在我们将CQ和PQ做个比较。PQ赋予较高优先级的报文绝对的优先权,这样虽然可以保证关键业务的优先,但在较高优先级的报文的速度总是大于接口的速度时,将会使较低优先级的报文始终得不到发送的机会。采用CQ,则可以避免这种情况的发生。CQ可以把报文分类,然后按类别将报文分配到CQ的一个队列中去,而对每个队列,又可以规定队列中的报文所占接口带宽的比例,这样,就可以让不同业务的报文获得合理的带宽,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。但是,由于CQ轮循调度各个队列,它对高优先级尤其是实时业务的时延保证不如PQ。
在如图3所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,如果对路由器1的串口1配置CQ进行拥塞管理,同时配置服务器间的数据流的进入队列1,队列1中的报文占有60%的带宽,例如每次出队6000个字节的报文,PC间的数据流进入队列2,队列2 中的报文占有20%的带宽,例如每次出队2000个字节的报文,则CQ对这两种不同业务的报文将做区别对待。报文的发送采用轮询调度的方式,首先让队列1中的报文出队并发送,直到此队列中的报文被发送的字节数不少于6000字节,然后才开始发送队列2中的报文,直到此队列中的报文被发送的字节数不少于2000字节,然后是其他队列。路由器1的串口1的物理带宽是2M,则局域网1的服务器向局域网2的服务器发送关键业务的数据所能占的带宽将至少为1.2M(2 * 0.6),局域网1的PC向局域网2的PC发送非关键业务的数据所能占的带宽将至少为0.4M(2 * 0.2)。并且,不同于时分复用(Time Division Multiplexing, TDM)的系统,当路由器1的串口1中除了上述两个数据流外没有其他数据要发送时,这两种数据流将按比例分享接口的剩余空闲带宽,即局域网1的服务器向局域网2的服务器发送关键业务的数据所能占的带宽将为1.5M(2 * 0.6 / (0.2 + 0.6) ),局域网1的PC向局域网2的PC发送非关键业务的数据所能占的带宽为0.5M(2 * 0.2 / (0.2 + 0.6))。当局域网1的服务器向局域网2的服务器不发送关键业务的数据时,并且,除了局域网1的PC向局域网2的PC发送非关键业务的数据外,没有其他的数据流,则局域网1的PC向局域网2的PC发送非关键业务的数据所能占的带宽将可以为2M。
2.2.2.4 加权公平队列(Weighted Fair Queuing, WFQ)
图 8 加权公平队列示意图
如图8所示,加权公平队列(以后简称WFQ)对报文按流进行分类,对于IP网络,相同源IP地址,目的IP地址,源端口号,目的端口号,协议号,IP优先级的报文属于同一个流,而对于MPLS网络,具有相同的标签和EXP域值的报文属于同一个流。每一个流被分配到一个队列,该过程称为散列,采用HASH算法来自动完成,尽量将不同的流分入不同的队列。WFQ的队列数目N可以配置。在出队的时候,WFQ按流的IP优先级来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。这样就保证了相同优先级业务之间的公平,体现了不同优先级业务之间的权值。例如:接口中当前有8个流,它们的优先级分别为0、1、2、3、4、5、6、7。则带宽的总配额将是所有(流的优先级 + 1) 之和,即:1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36
每个流所占带宽比例为:(自己的优先级数+ 1)/(所有 (流的优先级 + 1)之和)。即,每个流可得的带宽比例分别为:1/36、2/36、3/36、4/36、5/36、6/36、7 /36、8/36。
又如:当前共4个流,3个流的优先级为4,1个流的优先级为5,则带宽的总配额将是:
(4 + 1) * 3 + (5 + 1) = 21
那么,3个优先级为4的流获得的带宽比例均为5/21,优先级为5的流获得的带宽比例为6/21。
由此可见,WFQ在保证公平的基础上对不同优先级的业务体现权值,而权值依赖于IP报文头中所携带的IP优先级。
2.2.2.5 基于类的加权公平队列(Class Based Weighted Fair Queuing, CBWFQ)
图 9 基于类的加权公平队列示意图
如图9所示,基于类的加权公平队列(以后简称CBWFQ)首先根据IP优先级或者DSCP、输入接口、IP报文的五元组等规则来对报文进行分类;对于MPLS网络的LSR,主要是根据EXP域值进行分类。然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,报文被送入系统定义的缺省类。
图中所示LLQ (Low Latency Queueing)是一个具有较高优先级的队列,它的优先级仅次于二层协议队列与RTP优先队列(RTP优先队列的参见后文介绍),一个或多个类的报文可以被设定进入LLQ队列。不同类别的报文可设定占用不同的带宽。在调度出队的时候,若LLQ中有报文,则总是优先发送LLQ中的报文,直到LLQ中没有报文时,或者超过为LLQ配置的最大预留带宽时才调度发送其他队列中的报文。
进入LLQ的报文在接口没有发生拥塞的时候(此时所有队列中都没有报文),所有属于LLQ的报文都可以被发送。在接口发生拥塞的时候(队列中有报文时),进入LLQ的报文被限速,超出规定流量的报文将被丢弃。这样,在接口不发生拥塞的情况下,可以使属于LLQ的报文能获得空闲的带宽,在接口拥塞的情况下,又可以保证属于LLQ的报文不会占用超出规定的带宽,保护了其他报文的应得带宽。另外,由于只要LLQ中有报文,系统就会发送LLQ中的报文,所以LLQ中的报文被发送的延迟最多是接口发送一个最大长度报文的时间,无论是时延还是时延抖动,LLQ都可以将之降低为最低限度。这为对时延敏感的应用如VoIP业务提供了良好的服务质量保证。
图9中1到64的队列为各类报文的队列,每类报文占一个队列,我们称它们为BQ(Bandwidth Queuing)。在系统调度报文出队的时候,按用户为各类报文设定的带宽将报文出队发送。这种队列技术应用了先进的队列调度算法,可以实现各个类的队列的公平调度。属于1到N1号BQ队列的报文可以被确保得到用户设定的带宽。当接口中某些类别的报文没有时,BQ队列的报文还可以公平地得到空闲的带宽,和时分复用系统相比,大大提高了线路的利用率。同时,在接口拥塞的时候,仍然能保证各类报文得到用户设定的最小带宽。
当报文不匹配用户设定的所有类别时,报文被送入系统定义的缺省类。虽然允许为缺省类配置带宽,使其作为BQ类进行基于类的队列调度,但是更多的情况是为缺省类配置WFQ,使所有进入缺省类的报文进行基于流的队列调度。
CBWFQ最多允许配置64个BQ类,缺省类的WFQ的队列个数N2可以由用户设定。
对于缺省类的WFQ和BQ,当队列的长度达到队列的最大长度时,缺省采用尾丢弃的策略。但用户还可以选择用加权随机早期检测(Weighted Random Early Detection, WRED)的丢弃策略。加权随机早期检测的丢弃策略请参见后面加权随机早期检测WRED的描述。
对于LLQ,由于在接口拥塞的时候流量限制开始起作用,所以用户不必设置队列的长度。由于优先队列中的报文一般是语音报文(Voice over IP, VoIP),采用的是UDP报文,所以没有必要采用WRED的丢弃策略。
综上所述,CBWFQ有一个低时延队列 - LLQ,用来支撑EF类业务,被绝对优先发送,保证实验;另外有64个BQ,用来支撑AF类业务,可以保证每一个队列的带宽及可控的时延;还有一个WFQ,对应BE业务,使用接口剩余带宽进行发送。CBWFQ可根据报文的输入接口、ACL、IP优先级/DSCP、MPLS EXP等规则对报文进行分类、进入相应队列,规则可以是通过结构化命令行(SQC)或网管进行手工配置,也可以是通过MPLS DiffServ-Aware TE的控制平面进行的自动配置。对于进入LLQ和BQ的报文,要进行测量;考虑到链路层控制报文的发送、链路层封装开销及物理层开销(如ATM信元税),建议RTP优先队列、LLQ与BQ占用接口的总带宽不要超过接口带宽的75%。LLQ只采用尾丢弃,BQ可采用尾丢弃、WRED(基于IP优先级,DSCP或MPLS EXP) ,WFQ可采用尾丢弃和RED。CBWFQ可为不同的业务定义不同的调度策略(如带宽、时延等),由于涉及到复杂的流分类,对于高速接口(GE以上)启用CBWFQ特性系统资源存在一定的开销。
2.2.2.6 RTP优先队列(Real Time Protocol Priority Queueing)
RTP优先队列是一种解决实时业务(包括语音与视频业务)服务质量的简单的队列技术。其原理就是将承载语音或视频的RTP报文送入高优先级队列,使其得到优先发送,保证时延和抖动降低为最低限度,从而保证了语音或视频这种对时延敏感业务的服务质量。
如图10所示,RTP优先队列将RTP报文送入一个具有较高优先级的队列,RTP报文是端口号在一定范围内为偶数的UDP报文,端口号的范围可以配置,一般为16384~32767。RTP优先队列可以同前面所述的任何一种队列(包括FIFO、PQ、CQ、WFQ与CBWFQ)结合使用,它的优先级是最高的。由于CBWFQ中的LLQ完全可以解决实时业务的QoS问题,所以不推荐将RTP优先队列与CBWFQ结合应用。
图 10 RTP优先队列示意图
由于对进入RTP优先队列的报文进行了限速,超出规定流量的报文将被丢弃,这样在接口拥塞的情况下,可以保证属于RTP优先队列的报文不会占用超出规定的带宽,保护了其他报文的应得带宽,解决了PQ的高优先级队列的流量可能“饿死”低优先级流量的问题。
2.2.3 拥塞管理技术的对比
华为3Com的VRP提供了以上拥塞管理技术。突破了传统IP设备的单一FIFO拥塞管理策略,提供了强大的QoS能力,使得IP设备可以满足不同业务所要求的不同服务质量的要求。为了更好的利用华为3Com的拥塞管理技术,现对各种队列技术做一比较。
表2 拥塞管理技术对比
|
队列数 |
优 点 |
缺 点 |
FIFO |
1 |
1、缺省队列机制,队列长度配置简单,易于使用。 2、处理简单,处理延迟小。 |
1、所有报文同等对待,报文到来的次序决定了报文可占用的带宽、报文的延迟、报文的丢失。 2、对不配合的数据源(如UDP报文发送)无约束力,不配合的数据源会造成配合的数据源(如TCP报文发送)带宽受损失。 3、对时间敏感的实时应用(如VoIP)的延迟得不到保证。 |
PQ |
4 |
可对不同业务数据提供绝对的优先,对时间敏感的实时应用(如VoIP)的延迟可以得到保证。对优先业务的报文的带宽占用可以绝对优先。 |
1、需配置,处理速度慢。 2、如果不对高优先级的报文的带宽加限制,会造成低优先级的报文得不到带宽。 |
CQ |
17 |
1、可对不同业务的报文按带宽比例分配带宽。 2、当没有某些类别的报文时,能自动增加现存类别的报文可占的带宽。 |
1、需配置,处理速度慢。 2、不适于解决对时延敏感的实时业务。 |
WFQ |
用户决定 |
1、配置简单,报文分类自动完成。 2、可以保护配合(交互)的数据源(如TCP报文发送)的带宽。 3、可以使延迟的抖动减小。 4、可以减小数据量小的交互式应用的延迟。 5、可以为不同优先级的流分配不同的带宽。 6、当流的数目减少时,能自动增加现存流可占的带宽。 |
1、处理速度比FIFO要慢。但比PQ、CQ要快。 2、不适于解决对时延敏感的实时业务。 |
CBWFQ |
用户决定 (0~63) |
1、可以对数据根据灵活、多样的分类规则进行划分,分别为EF(加速转发)、AF(确保转发)、BE(尽力转发)业务提供不同的队列调度机制。 2、可以为AF业务提供严格、精确的带宽保证,并且保证各类AF业务之间根据权植按一定的比例关系进行队列调度。 3、可以为EF业务提供绝对优先的队列调度,确保实时数据的时延;同时通过对高优先级数据流量的限制,克服了PQ的低优先级队列可能“饿死”的弊病。 4、对于尽力转发的缺省类数据,提供基于流的公平队列调度机制(WFQ)。 |
当配置的类较多时,系统开销比较大。 |
2.3 拥塞避免
由于内存资源的有限,按照传统的处理方法,当队列的长度达到规定的最大长度时,所有到来的报文都被丢弃。对于TCP报文,如果大量的报文被丢弃,将造成TCP超时,从而引发TCP的慢启动和拥塞避免机制,使TCP减少报文的发送。当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为:TCP全局同步。这样多个TCP连接发向队列的报文将同时减少,使得发向队列的报文的量不及线路发送的速度,减少了线路带宽的利用。并且,发向队列的报文的流量总是忽大忽小,使线路的上的流量总在极少和饱满之间波动。
为了避免这种情况的发生,队列可以采用加权随机早期检测WRED(Weighted Random Early Detection )的报文丢弃策略(WRED与RED的区别在于前者引入IP优先权,DSCP值,和MPLS EXP来区别丢弃策略)。采用WRED时,用户可以设定队列的阈值(threshold)。当队列的长度小于低阈值时,不丢弃报文;当队列的长度在低阈值和高阈值之间时,WRED开始随机丢弃报文(队列的长度越长,丢弃的概率越高);当队列的长度大于高阈值时,丢弃所有的报文。
由于WRED随机地丢弃报文,将避免使多个TCP连接同时降低发送速度,从而避免了TCP的全局同步现象。当某个TCP连接的报文被丢弃,开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。
如果直接采用队列的长度与用户设定的阈值比较并进行丢弃(这是设置队列门限的绝对长度),将会对突发性的数据流造成不公正的待遇,不利于数据流的传输。所以,在与设定的阈值比较并进行丢弃时,采用队列的平均长度(这是设置队列门限与平均长度比较的相对值)。队列的平均长度是队列长度被低通滤波后的结果。它既反映了队列的变化趋势,又对队列长度的突发变化不敏感,避免了对突发性的数据流造成不公正的待遇。
WRED可以感知QoS的带内信令,包括IP优先级、DSCP,和MPLS EXP。可以为不同IP优先级,DSCP,或MPLS EXP的报文设定不同的队列长度滤波系数、队列阈值、丢弃概率,从而对不同优先级的报文提供不同的丢弃特性。
WRED和队列机制的关系如下图所示。
图 11 WRED和队列机制关系示意图
当WRED和WFQ配合使用时,还可以实现基于流的WRED。这是因为,在进行分类的时候,不同的流有自己的队列,对于流量小的流,由于其队列长度总是比较小,所以丢弃的概率将比较小。而流量大的流将会有较大的队列长度,从而丢弃较多的报文,保护了流量较小的流的利益。
即使WRED和其他的队列机制配合使用,对于流量小的流,由于其报文的个数较少,所以从统计概率来说,被丢弃的概率也会较小,也可以保护流量较小的流的利益。
2.4 流量监管与流量整形
流量监管(traffic policing)的典型作用是限制进入某一网络的某一连接的流量与突发。在报文满足一定的条件时,如某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,例如丢弃报文,或重新设置报文的优先级等。通常的用法是使用CAR来限制某类报文的流量,例如限制HTTP报文不能占用超过50%的网络带宽。
流量整形(traffic shaping)的典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。
2.4.1 约定访问速率(Committed Access Rate,CAR)
对于ISP来说,对用户送入网络中的流量进行控制是十分必要的。对于企业网,对某些应用的流量进行控制也是一个有力的控制网络状况的工具。网络管理者可以使用约定访问速率(以后简称CAR)来对流量进行控制。
CAR利用令牌桶(Token Bucket, TB)进行流量控制。
图 12 CAR进行流量控制的基本处理过程示意图
图12所示为利用CAR进行流量控制的基本处理过程。首先,根据预先设置的匹配规则来对报文进行分类,如果是没有规定流量特性的报文,就直接继续发送,并不需要经过令牌桶的处理;如果是需要进行流量控制的报文,则会进入令牌桶中进行处理。如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过,报文可以被继续发送下去。如果令牌桶中的令牌不满足报文的发送条件,则报文被丢弃。这样,就可以对某类报文的流量进行控制。
令牌桶按用户设定的速度向桶中放置令牌,并且,用户可以设置令牌桶的容量,当桶中令牌的量超出桶的容量的时候,令牌的量不再增加。当报文被令牌桶处理的时候,如果令牌桶中有足够的令牌可以用来发送报文,则报文可以通过,可以被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文被丢弃。
令牌桶是一个控制数据流量的很好的工具。当令牌桶中充满令牌的时候,桶中所有的令牌代表的报文都可以被发送,这样可以允许数据的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文的流量只能是小于等于令牌生成的速度,达到限制流量的目的。
在实际应用中,VRP的CAR不仅可以用来进行流量控制,还可以进行报文的标记(mark)或重新标记(re-mark)。具体来讲就是CAR可以设置IP报文的优先级或修改IP报文的优先级,达到标记报文的目的。
例如,当报文符合流量特性的时候,可以设置报文的优先级为5,当报文不符合流量特性的时候,可以丢弃,也可以设置报文的优先级为1并继续进行发送。这样,后续的处理可以尽量保证不丢弃优先级为5的报文,在网络不拥塞的情况下,也发送优先级为1的报文,当网络拥塞时,首先丢弃优先级为1的报文,然后才丢弃优先级为5 的报文。
CAR可以为不同类别的报文设置不同的流量特性和标记特性。即,首先对报文进行分类,然后不同类别的报文有不同的流量特性和标记特性。
此外,CAR的策略还可以进行串联处理。例如,可以对所有的报文限制一个总的流量,然后在总的流量中,再限制部分报文的流量符合某个流量特性。
华为3Com还实现了智能流量控制技术ISPKeeper,其原理如图13所示。
图 13 ISPKeeper工作原理示意图
ISPKeeper具有一个智能的分类器,给定一个IP地址段,能够自动根据到达报文的源或目的IP地址识别并记录每一个流(无需针对每一个流进行配置);根据分类的结果先进行“测量单元A”处理,针对每一个流进行测量,不满足约定将报文丢弃;然后经过“测量单元B”处理,针对整个IP地址段内的流进行测量,不满足约定将报文丢弃。
ISPKeeper主要采用了令牌桶及Hash等技术,沿用了地址转换简易的配置风格,配置简单、灵活,运行高效,提供丰富的统计信息及日志信息;通过在ISP出口路由器的上行接口或下行接口上配置ISPKeeper,可很好地抵御黑客对ISP进行的流量攻击,也可以用于限制局域网用户对广域网带宽的使用。
2.4.2 通用流量整形(Generic Traffic Shaping,GTS)
通用流量整形(以后简称GTS)可以对不规则或不符合预定流量特性的流量进行整形,以利于网络上下游之间的带宽匹配。
GTS与CAR一样,均采用了令牌桶技术来控制流量。GTS与CAR的主要区别在于:利用CAR进行报文流量控制时,对不符合流量特性的报文进行丢弃;而GTS对于不符合流量特性的报文则是进行缓冲,减少了报文的丢弃,同时满足报文的流量特性。
GTS的基本处理过程如图14所示,其中用于缓存报文的队列称为GTS队列。
图 14 GTS处理过程示意图
GTS可以对接口上指定的报文流或所有报文进行整形。当报文到来的时候,首先对报文进行分类,如果报文不需要进行GTS处理,就继续发送,不需要经过令牌桶的处理;如果报文需要进行GTS处理,则与令牌桶中的令牌进行比较。令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中。当GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到队列中的报文不能再发送或是队列中的报文全部发送完毕为止。
为了减少报文的丢失,可以在路由器1的出口对报文进行GTS处理,对于超出GTS流量特性的报文,将在路由器1中缓冲。当可以继续发送下一批报文时,GTS再从缓冲队列中取出报文进行发送。这样,发往路由器2的报文将都符合路由器2的流量规定,从而减少报文在路由器2上的丢弃。相反,如果不在路由器1的出口做GTS处理,则所有超出路由器2的CAR流量特性的报文将被路由器2丢弃。
2.5 物理接口总速率限制(Line rate, LR)
利用物理接口总速率限制(以后简称LR)可以 在一个物理接口上,限制接口发送报文(包括紧急报文)的总速率。
LR的处理过程仍然采用令牌桶进行流量控制。如果用户在路由器的某个接口上配置了LR ,规定了流量特性,则所有经由该接口发送的报文首先要经过LR的令牌桶进行处理。如果令牌桶中有足够的令牌可以用来发送报文,则报文可以发送。如果令牌桶中的令牌不满足报文的发送条件,则报文入QOS队列进行拥塞管理。这样,就可以对通过该物理接口的报文流量进行控制。
图 15 LR处理过程示意图
LR的处理过程如图15所示。同样的,由于采用了令牌桶控制流量,当令牌桶中积存有令牌时,可以允许报文的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文的流量只能是小于等于令牌生成的速度,具有限制流量,同时允许突发流量通过的目的。
LR相比较于CAR,能够限制在物理接口上通过的所有报文。CAR由于在IP层实现,对于不经过IP层处理的报文不起作用。较之于GTS,LR 不但能够对超过流量限制的报文进行缓存,并且利用QoS丰富的队列来缓存报文,而GTS则是将报文缓存在GTS队列中。由于CAR和GTS是在IP层实现的,所以对于不经过IP层处理的报文不起作用。
在用户只要求对所有报文限速时,使用LR所需的配置操作简单。对于网络建设投资者,可以对客户隐藏实际带宽,客户只能严格按所购买的带宽来使用。
2.6 链路效率机制
链路效率机制,用于改善链路的性能,间接提高网络的QoS,如降低链路发包的时延(针对特定业务)、调整有效带宽;目前VRP提供了LFI和IPHC两种链路效率机制。
2.6.1 链路分片与交叉(Link Fragment &Interleave,LFI)
对于低速链路,即使为语音等实时业务报文配置了高优先级队列(如RTP优先队列或LLQ),也不能够保证其时延与抖动,原因在于接口在发送其他数据报文的瞬间,语音业务报文只能等待,而对于低速接口发送较大的数据报文要花费相当的时间。采用LFI以后,数据报文(非RTP优先队列和非LLQ中的报文)在发送前被分片、逐一发送,而此时如果有语音报文到达则被优先发送,从而保证了语音等实时业务的时延与抖动。LFI主要用于低速链路。
图 16 LFI工作原理示意
如图16所示,应用LFI技术,在大报文出队的时候,可以将其分为定制长度的小片报文,这就使RTP优先队列或LLQ中的报文不必等到大片报文发完后再得到调度,它等候的时间只是其中小片报文的发送时间,这样就很大程度的降低了低速链路因为发送大片报文造成的时延。
2.6.2 IP报文头压缩(IP Header Compression, IPHC)
IPHC主要在低速链路上使用,可将40字节的IP/UDP/RTP头压缩到2~4个字节(不使用校验和可到2字节),提高链路的利用率。IPHC主要得益于同一会话的语音分组头和语音分组头之间的差别往往是不变的,因此只需传递增量。
RTP协议用于在IP网络上承载语音、视频等实时多媒体业务。RTP报文包括数据部分和头部分,RTP的数据部分相对小,而RTP的头部分较大。12字节的RTP头,加上20字节的IP头和8字节的UDP头,就是40字节的IP/UDP/RTP头。而RTP典型的负载是20字节到160字节。为了避免不必要的带宽消耗,可以使用IPHC特性对报文头进行压缩。IPHC可以将IP/UDP/RTP头从40字节压缩到2~5字节,对于40字节的负载,头压缩到5字节,压缩比为(40+40)/(40+5),约为1.78,可见效果是相当可观的,可以有效的减少链路,尤其是低速链路带宽的消耗。
2.7 QoS特性的配合
至此我们介绍了华为3Com的VRP所支持的各种QoS特性,包括报文分类、拥塞管理和拥塞避免、流量监管和流量整形以及物理接口总速率限制、链路效率机制等。图17所示为各QoS特性模块在VRP整个系统结构中的位置。
图 17 QoS特性模块在VRP系统结构中的位置
可以看出流量监管(CAR)与流量整形(GTS)是在IP层对报文进行处理的,而物理接口总速率限制LR则在链路层与物理层之间对报文进行处理,所以LR能够限制在物理接口上通过的所有报文,而CAR和GTS对于不经过IP层处理的报文不起作用。拥塞管理(各种队列技术)和拥塞避免(WRED)与LR一样,也是在链路层与物理层之间对报文进行处理。
各网络设备(路由器、交换机等)均支持QoS是实现端到端的QoS的一个基本要求,网络设备对QoS的支持是通过结合各种QOS特性技术来实现的。
图 18 各QoS特性在同一网络设备中的处理顺序
图18描述了VRP的各种QoS特性在网络设备中的处理顺序。首先是报文分类(报文分类和识别报文的类别是为不同的业务提供区分服务的必要前提),其后根据报文所属类别再将CAR、GTS、WRED、队列等各种技术运用其上,最终为具有不同网络需求的各种业务提供并保证所承诺的服务。
VRP丰富的QoS特性保证了华为3Com路由器等网络产品的QoS能力,利用华为3Com数通设备组建的网络能够完全支持端到端的QoS,可为不同业务提供不同服务,实现了区分服务。
3 QoS应用3.1 企业VPN QoS实施
ISP可以通过IP网络向企业提供VPN(Virtual Private Network,虚拟专网)业务以降低企业的建网费用/租用线费用,对于企业很有吸引力。VPN可以用于连接出差人员与企业总部、异地分支机构与企业总部、企业合作伙伴与企业总部,提供它们之间的信息传输。但是如果VPN不能保证企业运营数据的及时有效发送,即,提供有效的QoS保证,那么VPN将仍然不能有效的为企业服务。如往来工作函件、数据库访问需要受到优先对待,保证这些应用的带宽要求。而对于与工作无关的E-Mmail、WWW访问等则可以按照Best-Effort信息流对待。
华为3Com的VRP QoS提供的丰富QoS机制完全能够满足企业VPN的上述要求:
l 对于不同的业务分别对IP优先级/DSCP进行标记,并且基于IP优先级/DSCP对流量进行分类
l 通过CBWFQ队列调度算法,保证企业运营数据的带宽、时延、时延抖动等QoS性能
l 通过WRED/尾丢弃机制对于VPN信息区别对待,避免网络内部流量振荡
l 通过流量监管机制限制VPN中不同信息流的流量
在VPN各个站点的CE路由器上对业务流进行分类和着色,例如可以将业务流分为数据库访问、重要工作函件和WWW访问三类,并且根据需要利用CAR将这三种业务报文的优先级分别标记为高、中、低。同时VPN服务提供商还可在每个CE路由器的接入端口设置CAR和GTS功能,分别用于流量监管和流量整形,以此来控制由各VPN站点进入服务提供商网络的报文流量不会超过承诺的流量高限。LR则可以应用在CE路由器上进行接口总速率限制,裁减和控制CE路由器接入端口的带宽,保护VPN服务提供商的利益。在VPN服务提供商网络的各PE路由器上,缺省情况下,MPLS EXP会拷贝IP报文的优先级。这样可以在VPN服务提供商网络的各PE和P路由器,通过配置WFQ,CBWFQ等队列来控制报文的调度方式,保证在网络拥塞发生时具有较高优先级的报文能够优先获得服务,以达到低时延、低时延抖动等目的,同时可以设置WRED来避免TCP流量的全局同步现象。
另外,如果ISP希望定义与用户网络不同的服务级别,或者不信任用户网络的IP优先级,也可以采用在PE路由器的入口,根据一定的规则,对MPLS EXP进行重新标记的方式。
3.2 多媒体通信支持
在目前网络环境下,用户访问互联网的带宽是不同的,有ISDN(Integrated Services Digital Network,综合业务服务网)接入、ADSL(Asymmetrical Digital Subscriber Loop,非对称数字用户环线)接入等多种方式。多媒体应用应该适应这种网络环境,在不同的接入方式下满足用户的不同需要。
对于有多个目的地的MPEG(Motion Picture Experts Group,运动图象专家组)编码图像信息,华为3Com的VRP QoS可以为不同的帧类型(I、P、B)分配不同的优先级。对于ISDN接入用户,仅仅发送给他高优先级信息,而将所有信息发送给使用ADSL接入的用户,在网络拥塞的情况下对于所有用户可以仅将高优先级信息发送给他们。
3.3 VoIP支持
随着网络的持续发展,人们提出了非传统数据应用,例如IP语音(VoIP)以及视频会议。语音、视频、数据融合成为一个网络的三网合一是网络发展的大势所趋,它可以降低网络维护费用,提高通信运营商的竞争力。这样IP网络必须能够保证语音信息的时延与时延抖动要求,提供与PSTN(Public Switched Telephone Network,公共开关电话网络)网络可比拟的语音质量。
华为3Com的VRP提供的丰富QoS机制完全能够满足三网合一的上述要求。为了降低语音包的传输时延,还可以将以下技术结合起来:
采用LLQ队列调度算法,使得语音包进入LLQ,保证语音包在拥塞发生的情况下被优先调度;也可以采用RTP优先队列与WFQ结合的方式,如图19所示。
图 19 VoIP支持
在低速链路上采用IPHC报文头压缩技术提高链路利用率、降低包时延,如图20所示。
图 20 IP报文头压缩
在低速链路上采用LFI技术降低语音包的时延。
在三网合一的应用中,在路由器上将业务流分为语音、视频和数据三类,并且利用CAR的着色功能分别对这三类报文设置不同的优先级,同时配置RTP优先队列或者LLQ来保证高优先级的语音报文在网络拥塞时能够优先获得服务,降低语音报文的传输时延。在路由器上配置CAR和GTS,在报文由路由器进入DS(DiffServ)区域时对报文的流量进行控制。而当报文进入了DS区域后,就会根据报文的类别按照相应的PHB进行转发。在DS区域的各路由器上可配置WRED以降低网络拥塞的发生,同时利用RTP优先队列或者LLQ等队列技术来保证网络拥塞时语音报文的优先调度,降低报文的传输时延及时延抖动等,最终提高对时间敏感的语音实时业务的传输质量。
4 结论
网络应用飞速发展,新型业务不断出现,例如IP语音和视频会议等非传统数据通信业务,能够融合语音、视频、数据的三网合一是网络发展的趋势。对于具有不同网络服务要求的语音、视频和数据应用通信而言,要求IP网络核心具有区分出不同的通信的能力,进而为之提供不同的服务,达到区分服务的目的。华为3Com路由器、交换机等数通产品所具备的丰富QoS特性,能够提供报文分类和着色、拥塞管理和拥塞避免,流量监管和流量整形等功能。华为3Com路由器等网络设备组建的网络能够支持QoS,具备根据通信报文的不同类别提供和保证预期服务的能力。
对于网络运营商和行业用户来讲,可以通过灵活配置应用这些QoS特性,为客户业务提供可裁减的、有效的区分服务,并实现和保证所承诺的服务质量。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者