网络服务质量(QoS)既可以用来描述网络某些应用的用户体验,也可以通过差异化网络服务控制应用性能。面对一些网络性能方面的挑战(比如在广域网连接中赋予VoIP高于其他网络流量的优先级),IT部门可以把QoS作为一种直截了当的解决方案,尽管这种方案可能需要在广域网服务合同中添加条款,但它不用在网络中增加新的设备。
使用QoS DSCP
差分服务代码点(DSCP)占据IP头中的6个比特位,通过它可以在广域网层面上来管理QoS。DSCP采用64个可能值中的任意一个,也就是说最多允许64种QoS分类——超过任何人曾经使用过的分类数目。事际上,对大多数QoS用户来说,4个分类已经足以满足需要。
DSCP数位域标识出数据包所属的特定交付分类,具体实现方法是企业为分类制定明确的交付目标。路由器和其它设备可以通过数据包队列(本质上就是缓冲区)和相应算法,传递数据包,实现交付目标。一些推荐标准涉及到DSCP数位域的值(如RFC2474中列举的),它们围绕加速转发(进一步描述可参见RFC3246)和确保转发(RFC2597)定义了一些期望行为:加速转发让交付过程低丢包、低延时和抖动最小;确保转发则保证无损交付。
RFC推荐使用DSCP值46来标记加速转发分类(6位DSCP的二进制值为101110),它适用于诸如VoIP或IP会议的实时交互多媒体流;为确保转发流量分配了包含12个标记值的集合,来保证不同等级的交付。
没有开放标准来对QoS行为予以严格规定,因此供应商们各行其道。诸如AT&T、Verizon等广域网服务供应商,它们可用的QoS分类数字及其含义各不相同。相同的DSCP值或许在两个不同的供应商中代表不同的意思,同一个DSCP值可能表示有5个、7个或11个分类等等。某些情况下,单一供应商将会针对其不同的产品实施一些严格的管理方案。
采用QoS队列策略
队列策略本身并没有标准。队列策略仅仅是一种算法,告知网络节点如何处理队列中的数据包。如果队列代表交付分类,队列策略则负责保证DSCP标签所代表的交付承诺。
通过队列策略来利用QoS限制带宽的核心策略如下:
- 公平队列策略(FQ):它为数据流平均分配带宽。FQ要求一个包等待其他包传递完毕后才能交付,所以FQ对QoS并没有帮助。事实上除非你能保证从来没有连接拥塞,否则FQ反而会妨碍QoS。
- 加权公平队列策略(WFQ):通过加权为一些数据流分配更多带宽,因此带宽没有被平均分配。
- 基于分类的加权公平队列策略(CBWFQ):将数据流划分成类,将带宽分配给每一个类,并在每一类中采用WFQ。
- 基于优先级的CBWFQ(P-CBWFQ) :添加严格的优先级分类,因此路由器可以确保在某一队列中等待的数据包总是先于其他队列中的数据包被传递出去。
在系统中添加优先级可以限制队列的最大延时,从而使交付满足实时流的要求,达到比没有优先级的方案抖动更小。不论有无优先级,基于分类的方案保证转发的同时,还实现了加速转发。
确保优先级符合广域网环境
标记数据包可以在局域网或广域网边界的节点进行。比如,IP电话或PC终端可以标记流量是属于加速转发分类的,从而确保所有中间节点优待这些数据包,使语音电话听起来效果很棒。这样做是将打标记的任务推给了生成和消耗流量的节点,进一步在网络内保证工作任务与设备无关。例如,windows 7可以使用组策略对象(GPO)进行带外流量标记,标记可以根据源节点、目标节点、源应用以及其他东西。通过将每个本地应用标记为失效,把控制范围限制在GPO内,这样或许可以使更多组织信任来自终端节点的标记。
但是,如果局域网边界的带宽像大多数地方一样大量地未被充分利用,那么聚合路由器或许有足够的能力代替终端节点来打标记。如果你由于不使用GPO而使节点设备不可信,那么将打标签工作放到核心层来进行,也可以确保它更好地处于IT部门的控制之下。
你也可以将打标签工作放到广域网边界路由器,因为那里最可能存在拥塞问题,确实需要差异化服务。路由器可以根据策略进行标记和队列操作,如果广域网链接是曾经发生拥塞的唯一地方,那么它们将是你必须为QoS进行配置的唯一网络部分。
标记的基本策略是定义分类和相关的队列策略行为,然后使用类似于防火墙的访问控制列表,按照分类标记流量。你需要知道将要被标记的流量的网络地址、端口或协议。
在购买其他解决方案之前尝试一下QoS
如果实时应用正在遭受聚合广域网链接中普遍存在的丢包、延时或抖动问题,利用QoS或许是最简单、最便宜的解决方法。尽管它不是万能的,但是对于一些问题,QoS是你已经拥有、却未曾知晓的解决方法。