qos_百度百科
解决网络延迟和阻塞等问题的一种技术
收藏
0有用+1
0
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
中文名
服务质量(网络)
外文名
Quality of Service
简    称
QoS
属    性
为指定的网络通信提供服务能力
学    科
计算机科学
定    义
评价对一个服务的满意程度

定义

播报
编辑
QoS功能示意图
当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。QoS应运而生。支持QoS功能的设备,能够提供传输品质服务;针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。配置了QoS的网络环境,增加了网络性能的可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。
下面从QoS服务模型出发,对使用最多、最成熟的一些QoS技术逐一进行描述。在特定的环境下合理地使用这些技术,可以有效地提高服务质量。
通常QoS提供以下三种服务模型:Best-Effort service(尽力而为服务模型),Integrated service(综合服务模型,简称Int-Serv),Differentiated service(区分服务模型,简称Diff-Serv)。
1. Best-Effort服务模型是一个单一的服务模型,也是最简单的服务模型。对Best-Effort服务模型,网络尽最大的可能性来发送报文。但对延时、可靠性等性能不提供任何保证。
Best-Effort服务模型是网络的缺省服务模型,通过FIFO(first in first out 先入先出)队列来实现。它适用于绝大多数网络应用,如FTP、E-Mail等。
2. Int-Serv服务模型Int-Serv是一个综合服务模型,它可以满足多种QoS需求。该模型使用资源预留协议(RSVP),RSVP运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗资源过多。这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的服务质量区分。但是,Inter-Serv模型对设备的要求很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。Inter-Serv模型可扩展性很差,难以在Internet核心网络实施。
3. Diff-Serv服务模型是一个多服务模型,它可以满足不同的QoS需求。与Int-Serv不同,它不需要通知网络为每个业务预留资源。区分服务实现简单,扩展性较好。 [1]

相关介绍

播报
编辑

产生背景

因特网创建初期,没有意识到QoS应用的需要。因此,整个因特网运作如一个“竭尽全力”的系统。每段信息都有4个“服务类别”位和3个“优先级”位,但是他们完全没有派上用场。依发送和接收者看来,数据包从起点到终点的传输过程中会发生许多事情,并产生如下有问题的结果:
·丢失数据包- 当数据包到达一个缓冲器buffer)已满的路由器时,则代表此次的发送失败,路由器会依网络的状况决定要丢弃、不丢弃一部份或者是所有的数据包,而且这不可能在预先就知道,接收端的应用程序在这时必须请求重新传送,而这同时可能造成总体传输严重的延迟。
·延迟- 或许需要很长时间才能将数据包传送到终点,因为它会被漫长的队列迟滞,或需要运用间接路由以避免阻塞;也许能找到快速、直接的路由。总之,延迟非常难以预料。
·传输顺序出错- 当一群相关的数据包被路由经过因特网时,不同的数据包可能选择不同的路由器,这会导致每个数据包有不同的延迟时间。最后数据包到达目的地的顺序会和数据包从发送端发送出去的顺序不一致,这个问题必须要有特殊额外的协议负责刷新失序的数据包。
·出错- 有些时候,数据包在被运送的途中会发生跑错路径、被合并甚至是毁坏的情况,这时接收端必须要能侦测出这些情况,并将它们统统判别为已遗失的数据包,再请求发送端再送一份同样的数据包。
吞吐量:在特定时段内可以实现的请求数量,这个指标同样也受到负载能力和延时性的限制 [2]

释义

1.国际电信联盟(ITU)在x.902标准即“信息技术开放式处理参考模型”中定义服务质量(QoS)为:定义在一个或多个对象的集体行为上的一套质量需求的集合。吞吐量传输延迟和错误率等一些服务质量参数描述了数据传输的速度和可靠性等。
2.在ATM中定义服务质量(QoS)为“关于ATM性能参数集合的术语,这些参数描述了在一个给定虚拟连接上数据流量的特征”。服务质量参数大多应用在较低层次的协议层上,这些参数并不直接被应用程序所观察和感觉到。这些参数包括信元丢失率、信元错误率、信元错误插入率、信元延迟变化、信元传输延迟和平均信元传输延迟。根据服务质量参数定义了五种服务级别,级别0指的是“尽最大努力”服务方式,在这种服务级别中没有特定的流量参数和绝对的服务质量保证。
3.IETF在研究ATM时就已经开始考虑服务质量的问题。即有陈述:“随着在网络上实时服务的逐步增加,在共享网络上要求提供确定的传输服务。这些确定的传输服务要求应用程序和网络基础设施有能力请求、设置和强化数据的传输。总的来说,这些服务指的是带宽预留和服务质量”。在“基于ATM的IP”中这样描述: “实时应用程序所使用的服务质量参数被假设在数据传输之前的资源预留协议中设置,或者以某种形式携带在数据之中”。“工作正在重点研究服务质量参数怎样被表达出来和怎样做出本地的决定”。

处理流程

播报
编辑

分类

Classifying即分类,其过程是根据信任策略或者根据分析每个报文的内容来确定将这些报文归类到以CoS值来表示的各个数据流中,因此分类动作的核心任务是确定输入报文的CoS值。分类发生在端口接收输入报文阶段,当某个端口关联了一个表示QoS策略的Policy-map后,分类就在该端口上生效,它对所有从该端口输入的报文起作用。
  1. 1.
    协议
QoS
有些协议非常“健谈”,只要它们存在就会导致业务延迟,因此根据协议对数据包进行识别和优先级处理可以降低延迟。应用可以通过它们的EtherType进行识别。譬如,AppleTalk协议采用0x809B,IPX使用0x8137。根据协议进行优先级处理是控制或阻止少数较老设备所使用的“健谈”协议的一种强有力方法。
(2) TCPUDP端口号码
许多应用都采用一些TCP或UDP端口进行通信,如HTTP采用TCP端口80。通过检查IP数据包的端口号码,智能网络可以确定数据包是由哪类应用产生的,这种方法也称为第四层交换,因为TCP和UDP都位于OSI模型的第四层。
(3) 源IP地址
许多应用都是通过其源IP地址进行识别的。由于服务器有时是专门针对单一应用而配置的,如电子邮件服务器,所以分析数据包的源IP地址可以识别该数据包是由什么应用产生的。当识别交换机与应用服务器不直接相连,而且许多不同服务器的数据流都到达该交换机时,这种方法就非常有用。
(4) 物理端口号码
与源IP地址类似,物理端口号码可以指示哪个服务器正在发送数据。这种方法取决于交换机物理端口和应用服务器的映射关系。虽然这是最简单的分类形式,但是它依赖于直接与该交换机连接的服务器。

策略

Policing 即策略,发生在数据流分类完成后,用于约束被分类的数据流所占用的传输带宽。Policing动作检查被归类的数据流中的每一个报文,如果该报文超出了作用于该数据流的Police所允许的限制带宽,那么该报文将会被做特殊处理,它或者要被丢弃,或者要被赋予另外的DSCP 值。
在QoS 处理流程中,Policing 动作是可选的。如果没有Policing 动作,那么被分类的数据流中的报文的DSCP 值将不会作任何修改,报文也不会在送往Marking 动作之前被丢弃。

标识

Marking即标识,经过Classifying 和Policing 动作处理之后,为了确保被分类报文对应DSCP的值能够传递给网络上的下一跳设备,需要通过Marking 动作将为报文写入QoS 信息,可以使用QoS ACLs 改变报文的QoS信息,也可以使用Trust 方式直接保留报文中QoS 信息,例如,选择Trust DSCP 从而保留IP 报文头的DSCP 信息。

队列

Queueing即队列,负责将数据流中报文送往端口的某个输出队列中,送往端口的不同输出队列的报文将获得不同等级和性质的传输服务策略。
每一个端口上都拥有8 个输出队列,通过设备上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 两张映射表来将报文的DSCP 值转化成输出队列号,以便确定报文应该被送往的输出队列。

调度

Scheduling即调度,为QoS 流程的最后一个环节。当报文被送到端口的不同输出队列上之后,设备将采用WRR 或者其它算法发送8 个队列中的报文。
可以通过设置WRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文个数,从而影响传输带宽。或通过设置DRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文字节数,从而影响传输带宽。

相关技术

播报
编辑
链路层QoS技术主要针对ATM(Asynchronous Transfer Mode,异步传输模式)、帧中继、令牌环等链路层协议支持QoS。作为一种面向连接的技术,ATM提供对QoS最强有力的支持,而且可以基于每个连接提供特定的QoS保证。帧中继网络确保连接的CIR(Committed Information Rate,承诺信息速率)最小,即在网络拥塞时,传输速度不能小于这个值。令牌环和更新的IEEE802.1p标准具有区分服务的机制。
链路效率机制
链路效率机制,用于改善链路的性能,间接提高网络的QoS,如降低链路发包的时延(针对特定业务)、调整有效带宽。链路效率机制有很多种,下面介绍两种比较典型的链路效率机制及其基本原理。
1. 链路分片与交叉(Link Fragment & Interleave,LFI)
对于低速链路,即使为语音等实时业务报文配置了高优先级队列(如RTP优先队列或LLQ),也不能够保证其时延与抖动,原因在于接口在发送其他数据报文的瞬间,语音业务报文只能等待,而对于低速接口发送较大的数据报文要花费相当的时间。采用LFI以后,数据报文(非RTP实时队列和LLQ中的报文)在发送前被分片、逐一发送,而此时如果有语音报文到达则被优先发送,从而保证了语音等实时业务的时延与抖动。LFI主要用于低速链路。
链路效率机制的工作原理图如图11 所示:
图11 链路效率
如上图11所示,应用LFI技术,在大报文出队的时候,可以将其分为定制长度的小片报文,这就使RTP优先队列或LLQ中的报文不必等到大片报文发完后再得到调度,它等候的时间只是其中小片报文的发送时间,这样就很大程度的降低了低速链路因为发送大片报文造成的时延。
2. RTP报文头压缩(RTP Header Compression,cRTP)
cRTP主要在低速链路上使用,可将40字节的IP/UDP/RTP头压缩到2~4个字节(不使用校验和可到2字节),提高链路的利用率。cRTP主要得益于同一会话的语音分组头和语音分组头之间的差别往往是不变的,因此只需传递增量。
RTP协议用于在IP网络上承载语音、视频等实时多媒体业务。RTP报文包括数据部分和头部分,RTP的数据部分相对小,而RTP的报头部分较大。12字节的RTP头,加上20字节的IP头和8字节的UDP头,就是40字节的IP/UDP/RTP头。而RTP典型的负载是20字节到160字节。为了避免不必要的带宽消耗,可以使用cRTP特性对报文头进行压缩。cRTP可以将IP/UDP/RTP头从40字节压缩到2~5字节,对于40字节的负载,头压缩到5字节,压缩比为(40+40)/(40+5),约为1.78,可见效果是相当可观的,可以有效的减少链路,尤其是低速链路带宽的消耗。
rtp
ATM QoS
ATM是一种大小固定的信元交换和多路复用技术,它是面向连接的,任何用户数据在两个或更多ATM连接设备之间传输之前,都必须建立虚电路(VC,Virtual Circuit)。ATM有两种主要的连接方式(或VC):永久虚电路(PVC,Permanent Virtual Circuit)和交换虚电路(SVC,Switched Virtual Circuit)。PVC通常是静态的,需要手工或外部配置来建立;而SVC是动态,根据需要创建。它们的创建需要在ATM端点和ATM交换机之间运行信令协议。
ATM通过使ATM端系统显示流量合同来提供QoS保证,流量合同描述了希望的通信流指标。流描述符包括QoS参数,例如峰值信元速率(PCR,Peak Cell Rate)、持续信元速率(SCR,Sustained Cell Rate)以及突发量。
ATM端系统负责确保传输的流量符合QoS合同。ATM端系统通过缓冲数据来对流量进行整形,并按约定的QoS参数传输通信。ATM交换机控制每个用户的通信指标,并将其与QoS合同进行比较。对于超过了QoS合同的通信,交换机可以设置不顺从通信的CLP位。在网络拥塞时,CLP位被设置的信元被丢弃的可能性更大。
FR QoS
FR(Frame Relay,帧中继)是一种流行的适用于数据通信的广域网(WAN)分组技术。它是一种较简单的协议,消除了X.25网络中链路层流控和纠错功能,这些功能被留给端点站的应用程序处理。这种协议最适合于数据通信,因为它可以传送偶然的突发。
帧中继使用VC(Virtual Circuit)运行,VC提供了帧中继网络上两个端点之间的逻辑连接,网络可以使用帧中继VC代替私有的租用线。PVC是网络操作员在网络管理站创建的,而SVC是基于呼叫动态建立的。
帧中继报头中的3个位提供了帧中继网络中的拥塞控制机制,这3个位分别叫做向前显式拥塞通知(FECN,Forward Explicit Congestion Notification)位、向后显式拥塞通知(BECN,Backward Explicit Congestion Notification)位和丢弃合格(DE,Discard Eligible)位。可以通过交换机将FECN位置1来告知诸如路由器等目标数据终端设备(DTE,Data Terminal Equipment),在帧从源传送到目的地的方向发生了拥塞。交换机将BECN位置1则告知目标路由器,在帧从源传送到目的地的反方向上发生了拥塞。DE位由路由器或其他DTE设备设置,指出被标记的帧没有传输的其他帧那么重要,它在帧中继网络中提供了一种基本的优先级机制,如果发生拥塞时,DE位被设置的帧将在DE位没有被设置的帧之前被丢弃。
帧中继流量整形(FRTS,Frame Relay Traffic Shaping)对从帧中继VC输出的通信进行整形,使之与配置速率一致,它将超出平均速率的分组放到缓冲区来使突发通信变得平滑。根据配置的排队机制,当有足够的可用资源时,这些缓冲的分组出队并等候被传输。排队算法是基于单个VC配置的,它只能针对接口的出站通信进行设置。FRTS可对每个VC的流量进行整形,将其峰值速率整形为承诺信息速率(CIR,Committed Information Rate)或其他定义的值,如超额信息速率(EIR,Excess Information Rate)。自适应模式的FRTS还能够根据收到的网络BECN拥塞指示符降低帧中继VC的输出量,将PVC的输出流量整形为与网络的可用带宽一致
MPLS QoS
MPLS标签交换路由器(LSR)在标签交换的转发过程中并不检查IP头,所以MPLS标签交换路由器利用MPLS标签中的EXP比特来配置QoS策略。因此,在MPLS网络中可以利用MPLS标签中的EXP比特来设置MPLS报文的优先级别,从而实现区分服务。类似对IP报文实施的区分服务一样,我们可以利用class-map命令将MPLS报文分成一个类或者多个类别,可以利用policy-map命令对已经分好的类进行QoS策略设置。最后利用service-policy命令将已经配置好的QoS策略应用于接口上 [3]
MPLS QoS即在MPLS网络上应用QoS。MPLS QoS并没有定义专门的QoS结构。在实际的MPLS网络中,MPLS QoS通常使用区分服务(Differentiated Services)结构(又称分类服务),区分服务结构是为IP QoS而专门定义的。MPLS QoS结构就是在区分服务结构基础上增加了MPLS对区分服务的支持。
区分服务的基本原理是:在网络边缘,根据业务的QoS要求将该业务映射到一定的业务类别中,如果是IP报文,可以通过6比特的区分服务代码点字段(DSCP)来设置报文的优先级别,从而唯一地标记该类业务,然后,骨干网络中的各节点根据该字段对各种业务采取预先设定的服务策略,保证相应的服务质量。与传统的IP QoS的不同在于,MPLS QoS是以MPLS标签中的EXP比特来设置MPLS报文的优先级别从而实现区分服务。
下面对MPLS QoS的部分专业术语进行介绍:
图1 MPLS标签结构
EXP比特指的是MPLS标签中第20到第22比特,这3位比特称为实验(EXP)比特,专用于服务质量(QoS)。EXP字段在MPLS标签中的位置,请参见图1-2。与IP传输中可以按照IP报文中的IP优先级或者DSCP比特来分类并标记类似,在MPLS网络中,可以按照MPLS报文的EXP比特来分类并标记。
MPLS标签结构
每跳行为PHB(Per-hop Behavior)指在转发报文时,路由器对报文是如何处理的。"每跳"是强调这里所说的行为只涉及到本路由器转发的这一跳的行为,而下一个路由器再怎样处理则与本路由器的处理无关。 通常我们把基于IP报文中的IP Precedence/DSCP的转发行为称为IP PHB,基于MPLS报文中的EXP的转发行为称为MPLS PHB。
由EXP 比特决定PHB 的LSP。在转发过程中,LSP 决定转发路径,但是EXP比特决定在每一跳LSR 上的调度和丢弃优先级,因此同一条LSP 可以承载8 类不同PHB 的流(3比特的EXP字段的取值范围为0-7),通过MPLS头部的EXP 比特来进行区分。
LER(Label Switching Edge Router)位于MPLS的网络边缘,负责将进入到MPLS网络的流量压入对应的MPLS标签。负责将离开MPLS网络的流量弹出标签还原为原始的报文。LER通常又称作Provider Edge(PE)Router。
LSR(Label Switching Router)是MPLS网络的核心设备,它提供标签交换和标签分发功能。LSR通常又称作Provider(P)Router。
IP QoS
对于Ip QoS,QoS是由流量标记、拥塞管理、拥塞避免和流量整形构成,可以对IP报文实施WRR(带权重的队列轮转),DRR,SP等调度方式,实施加权随机早期检测(WRED),流量监管,以及流量整形。在为MPLS报文实施QoS的时候可以根据EXP比特来使用相同的特性。

关键指标

播报
编辑
QoS in Internet
QoS的关键指标主要包括:可用性、吞吐量、时延、时延变化(包括抖动和漂移)和丢失。下面详细叙述。
可用性
可用性是当用户需要时网络即能工作的时间百分比。可用性主要是设备可靠性和网络存活性相结合的结果。对它起作用的还有一些其他因素,包括软件稳定性以及网络演进或升级时不中断服务的能力。
吞吐量
吞吐量是在一定时间段内对网上流量(或带宽)的度量。对IP网而言可以从帧中继网借用一些概念。根据应用和服务类型,服务水平协议(SLA)可以规定承诺信息速率(CIR)、突发信息速率(BIR)和最大突发信号长度。承诺信息速率是应该予以严格保证的,对突发信息速率可以有所限定,以在容纳预定长度突发信号的同时容纳从话音到视像以及一般数据的各种服务。一般讲,吞吐量越大越好。
时延
时延指一项服务从网络入口到出口的平均经过时间。许多服务,特别是话音和视像等实时服务都是高度不能容忍时延的。当时延超过200-250毫秒时,交互式会话是非常麻烦的。为了提供高质量话音和会议电视,网络设备必须能保证低的时延。
产生时延的因素很多,包括分组时延、排队时延、交换时延和传播时延。传播时延是信息通过铜线、光纤或无线链路所需的时间,它是光速的函数。在任何系统中,包括同步数字系列(SDH)、异步传输模式(ATM)和弹性分组环路(RPR),传播时延总是存在的。
时延变化
QoS流程
时延变化是指同一业务流中不同分组所呈现的时延不同。高频率的时延变化称作抖动,而低频率的时延变化称作漂移。抖动主要是由于业务流中相继分组的排队等候时间不同引起的,是对服务质量影响最大的一个问题。某些业务类型,特别是话音和视像等实时业务是极不容忍抖动的。分组到达时间的差异将在话音或视像中造成断续。所有传送系统都有抖动,只要抖动落在规定容差之内就不会影响服务质量。利用缓存可以克服过量的抖动,但这将增加时延,造成其他问题。
漂移是任何同步传输系统都有的一个问题。在SDH系统中是通过严格的全网分级定时来克服漂移的。在异步系统中,漂移一般不是问题。漂移会造成基群失帧,使服务质量的要求不能满足。
丢包
不管是比特丢失还是分组丢失,对分组数据业务的影响比对实时业务的影响都大。在通话期间,丢失一个比特或一个分组的信息往往用户注意不到。在视像广播期间,这在屏幕上可能造成瞬间的波形干扰,然后视像很快恢复如初。即便是用传输控制协议(TCP)传送数据也能处理丢失,因为传输控制协议允许丢失的信息重发。事实上,一种叫做随机早丢(RED)的拥塞控制机制在故意丢失分组,其目的是在流量达到设定门限时抑制TCP传输速率,减少拥塞,同时还使TCP流失去同步,以防止因速率窗口的闭合引起吞吐量摆动。但分组丢失多了,会影响传输质量。所以,要保持统计数字,当超过预定门限时就向网络管理人员告警。

主要应用

播报
编辑
QoS应用示意图
QoS是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定,例如,传输延迟允许时间、最小传输画面失真度以及声像同步等,是用来解决网络延迟和阻塞等问题的一种技术。路由器一般均支持QoS。QoS 是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如 Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
在Internet等计算机网络上为用户提供高质量的QoS必须解决以下问题:
1. QoS的分类与定义。对QoS进行分类和定义的目的是使网络可以根据不同类型的QoS进行管理和分配资源。例如 ,给实时服务分配较大的带宽和较多的CPU处理时间等,另一方面,对QoS进行分类定义也方便用户根据不同的应用提出QoS需求。
2. 准入控制和协商。即根据网络中资源的使用情况,允许用户进入网络进行多媒体信息传输并协商其QoS。
3. 资源预约。为了给用户提供满意的QoS,必须对端系统路由器以及传输带宽等相应的资源进行预约,以确保这些资源不被其他应用所强用。
4. 资源调度与管理。对资源进行预约之后,是否能得到这些资源,还依赖于相应的资源调度与管理系统。
Internet仅提供尽力而为(best-effort service)的传送服务,业务量尽快传送,没有明确的时间和可靠性保障。随着网络多媒体技术的飞速发展,Internet上的多媒体应用层出不穷,如IP电话、视频会议、视频点播(VOD)、远程教育等多媒体实时业务、电子商务在Internet上传送等。Internet已逐步从单一的数据传送网向数据、语音、图像等多媒体信息的综合传输网演化。这些不同的应用需要有不同的Qos(quality of service)要求,Qos通常用带宽、时延、时延抖动和分组丢失率来衡量。各种应用对服务质量的需求在迅速增长。
显然,现有的尽力传送服务已无法满足各种应用对网络传输质量的不同要求,需要Internet提供多种服务质量类型的业务。而尽力而为的服务仍将提供给那些只需要连通性的应用。
服务质量Qos系指用来表示服务性能之属性的任何组合。为了使其具有价值,这些属性必须是可提供的、可管理的、可验证和计费的,而且在使用时它们必须是始终如一的、可预测的、有的属性甚至是起决定性作用的。为了满足各种用户应用的需要,构建对IP最优并具备各种服务质量机制的网络是完全必要的。专线服务、语音、文件传递、存储转发、交互式视频和广播视频是现有应用的一些例子。

分类标准

播报
编辑
优先级分类根据各种网络所关注的业务类型已经出现多种不同的标准,相关标准可以参考:
RFC 791
根据各IP应用的特点,将业务分为Network Control、Internetwork Control、CRITIC/ECP、Flash Override、Flash、Immediate、Priority、Routine共8类优先级。其中,Routine优先级最低,Network Control优先级最高。
RFC 1349
将业务按照TOS的定义分为16类优先级,TOS使用4个bit位分别表示:minimize delay、maximize throughput、minimize monetary cost、maximize reliability,并建议了各IP应用应该如何取TOS值,例如,FTP CONTROL报文建议其TOS取值为minimize delay。
RFC 1490
将业务按照Frame Relay Discard Eligibility bit的定义分为2类丢弃优先级。
RFC 1483
Multiprotocol Encapsulation over ATM Adaptation Layer 5
将业务按照ATM Cell Loss Priority bit的定义分为2类丢弃优先级。
RFC 2474
Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Header
DiffServ网络定义了四类PHB:EF(Expedited Forwarding)PHB适用于低时延、低丢失、低抖动、确保带宽的优先业务;AF(Assured Forwarding)PHB分为四类,每个AF类又分为三个丢弃优先级,可以对相应业务进行等级细分,QoS性能参数低于EF类型;CS(class selector)PHB是从IP TOS字段演变而来,共8类;BE PHB是CS中特殊一类,没有任何保证,现有IP网络流量也都默认为此类。
IEEE 802.5
Token ring access method and Physical Layer specifications
令牌环网的优先级,可以将业务根据Access Priority的定义为8类优先级 。
IEEE 802.1p,Class of Service
以太网优先级,可以将业务根据802.1P Priority的定义分为8类优先级,0类至7类优先级相应递增,0类是BE业务,尽力传输)。

配置信息

播报
编辑
缺省QOS设置
用户在进行QoS配置之前,需要清楚和QoS有关的几点信息,如下:
一个接口最多关联1个Policy-map
一个Policy-map可以拥有多个Class-map
一个Class-map最多关联1个ACL,该ACL的所有ACE必须具有相同过滤域模板
一个接口上关联的ACE的个数服从“配置安全ACL”章节的限制
缺省情况下,QoS 功能是关闭的,即设备对所有的报文同等处理。但当您将一个Policy Map 关联到某一个接口上,并设置了接口的信任模式时,该接口的QoS 功能即被打开。要关闭该接口的QoS 功能,您可以通过解除该接口的Policy Map 设置,并将接口的信任模式设为Off 即可。以下为QOS的缺省配置:
缺省CoS值
0
队列个数
8
队列轮转算法
WRR
QueueWeight
1:1:1:1:1:1:1:1
WRR Weight Range
1:15
DRR Weight Range
1:15
信任模式
No Trust
Cos值到队列的默认映射表
CoS
0
1
2
3
4
5
6
7
队列
1
2
3
4
5
6
7
8
CoS to DSCP默认映射表
CoS
0
1
2
3
4
5
6
7
DSCP
0
8
16
24
32
40
48
56
IP-Precedence to DSCP默认映射表
IP-Precedence
0
1
2
3
4
5
6
7
DSCP
0
8
16
24
32
40
48
56
DSCP to CoS的默认映射表
DSCP
0
8
16
24
32
40
48
56
CoS
0
1
2
3
4
5
6
7
信任模式
缺省情况下,接口的Qos信任模式是不信任
命令
作用
SW# configure terminal
进入配置模式
SW(config)# interfaceinterface
进入接口配置模式
SW(config-if)# mls qos trust {cos | ip-precedence | dscp}
配置接口的Qos 信任模式
cos,dscp或 ip-precedence
SW(config-if)# no mls qos trust
恢复接口默认Qos 信任模式
以下命令将端口interface GigabitEthernet 0/4信任模式设置为DSCP:
SW(config)# interface gigabitEthernet 0/4
SW(config-if)# mls qos trust dscp
SW(config-if)# end
SW# show mls qos interface g0/4
Interface: GigabitEthernet 0/4
Attached input policy-map:
Default trust: trust dscp
Default COS: 0
缺省CoS值
您可以通过下面的设置步骤来配置每一个接口的缺省CoS值
缺省情况下,接口的缺省CoS值为0
命令
作用
R# configure terminal
进入配置模式
R(config)# interface interface
进入接口配置模式
R(config-if)# mls qos cos default-cos
配置接口的缺省CoS值, default-cos为要设置的缺省CoS值, 取值范围为0~7
R(config-if)# no mls qos cos
默认的缺省CoS值
下面的例子将接口Interface g0/4缺省CoS值设置为6
R# configure terminal
R(config)#interface g 0/4
R(config-if)# mls qos cos 6
R(config-if)# end
R# show mls qos interface g 0/4
Interface: GigabitEthernet 0/4
Attached input policy-map:
Default trust: trust dscp
Default COS: 6
端口组
在接口配置模式下,请按如下步骤将端口加入逻辑端口组:
命令
作用
R(config-if)#
[no] virtual-group virtual-group-number
将该接口加入一个逻辑端口组或退出一个逻辑端口组。virtual-group-number表示逻辑端口组成员端口组的编号,即逻辑端口组号。
在接口配置模式下使用no virtual-group virtual-group-number命令将一个物理端口退出逻辑端口组。
下面的例子是将以太网接口0/1配置成逻辑端口组 5的成员:
R# configure terminal
R(config)# interface gigabitEthernet 0/1
R(config-if-range)# virtual-group5
R(config-if-range)# end
配置Class Maps
您可以通过下面的设置步骤来创建并配置Class Maps
命令
作用
R# configure terminal
进入配置模式
R(config)# ip access-list extended {id | name}
R(config)# ip access-list standard {id | name}
R(config)# mac access-list extended {id | name}
R(config)# expert access-list extended {id |name}
R(config)# ipv6 access-list extended name
R(config)# access-list id […]
创建ACL
R(config)# [no] class-map class-map-name
创建并进入class map配置模式,class-map-name是要创建的class map的名字
no选项 删除一个已经存在的class map
R(config-cmap)# [no] match access-group {acl-num | acl-name }
设置匹配ACL, acl-name 为已经创建的ACL 名字,
acl-num为已经创建的ACL id,no选项删除该匹配
R(config-cmap)# [no] match ip dscp
dscp-value1 [dscp-value2 [dscp-valueN]]
设置要匹配的报文的ip dscp值,dscp-valueN为要匹配的DSCP值,一次最多可以匹配8个不同的值。
R(config-cmap)# [no] match ip
precedence
ip-pre-value1 [ip-pre-value2 [ip-pre-valueN]]
设置要匹配的报文的ip precedence值,ip-pre-valueN为要匹配的EXP值,一次最多可以匹配8个不同的值。
例如,以下设置步骤创建了一个名为Class1的Class-map,它关联一个ACL:acl_1。这个Class-map将分类所有端口号为80的TCP报文
R(config)# ip access-list extended acl_1
R(config-ext-nacl)# permit tcp any any eq 80
R(config-ext-nacl)# exit
R(config)# class-map class1
R(config-cmap)# match access-group acl_1
R(config-cmap)# end
配置Policy Maps
您可以通过下面的设置步骤来创建并配置Policy Maps
命令
作用
R# configure terminal
进入配置模式
R(config)# [no] policy-map policy-map-name
创建并进入policymap配置模式,policy-map-name是要创建的policymap的名字
no选项 删除一个已经存在的policy map
R(config-pmap)# [no] class class-map-name
创建并进入数据分类配置模式,class-map-name 是已经创建的class map名字
no选项 删除该数据分类
R(config-pmap-c)# [no] set {ip dscpnew-dscp | cosnew-cos [none-tos]}
为该数据流中的IP报文设置新的 ip dscp值或者设置新的cos值;对于非IP报文,设置新的ip dscp不起作用;
new-dscp 是要设置的新DSCP值,取值范围依产品不同而不同;
new-cos 是要设置的新CoS值,取值范围为0-7;
none-tos 是代表设置新的CoS值,同时不修改报文的DSCP值,仅S8600,S12000系列设备支持none-tos选项
R(config-pmap-c)# policerate-bps burst-byte [exceed-action {drop | dscp dscp-value | cos cos-value [none-tos]}]
限制该数据流的带宽和为带宽超限部分指定处理动作,rate-bps是每秒钟带宽限制量(kbps),burst-byte猝发流量限制值(Kbyte),drop来丢弃带宽超限部分的报文,dscp dscp-value改写带宽超限部分报文的DSCP值,dscp-value取值范围依产品不同而不同,cos cos-value改写带宽超限部分的报文的CoS值,cos-vlaue取值范围为0-7,none-tos选项代表改写报文的CoS值时,不修改报文的DSCP值,仅S8600,S12000系列设备支持改写带宽超限部分的报文的CoS值,且仅作用于输入方向;
对于S2900系列,rate-bps的有效范围是1-10000000;
burst-byte的有效范围是4-2097152
R(config-pmap-c)# no police
取消限制该数据流的带宽和为带宽超限部分指定处理动作
例如,以下的设置步骤创建了一个名为Policy1的Policy-map,并将该Policy-map关联接口Gigabitethernet 1/1
R(config)# policy-map policy1
R(config-pmap)# class class1
R(config-pmap-c)# set ip dscp 48
R(config-pmap-c)# exit
R(config-pmap)# exit
R(config)# interface gigabitethernet 1/1
R(config-if)# switchport mode trunk
R(config-if)# mls qos trust cos
R(config-if)# service-policy input policy1
应用Policy Maps
可以通过下面的设置步骤将Policy Maps应用到端口上:
命令
作用
R# configure terminal
进入配置模式
R(config)# interfaceinterface
进入接口配置模式
R(config-if)# [no] service-policy {input | output} policy-map-name
将创建的Policy Map应用到接口上;policy-map-name是已经创建的policy map的名字,input 为输入,output 为输出
应用Policy Maps
可以通过下面的设置步骤将Policy Maps应用到逻辑端口组上
命令
作用
configure terminal
进入配置模式
virtual-group-number
进入逻辑端口组配置模式
[no] service-policy {input | output}
policy-map-name
将创建的Policy Map应用到逻辑端口组上;policy-map-name是已经创建的policy map的名字,input 为输入限速,output 为输出限速
调度算法
您可以为端口的输出队列调度算法:WRR,SP,RR和DRR,缺省情况下,输出队列算法为WRR(带权重的队列轮转)
您可以通过以下步骤对端口优先级队列调度方式进行设置。
命令
作用
R# configure terminal
进入配置模式
R(config)# mls qos scheduler {sp | rr | wrr | drr | wfq}
端口优先级队列调度方式,sp为绝对优先级调度,rr为 轮转调度,wrr为带帧数量权重轮转调度,drr为带帧长度权重轮转调度
R(config)#no mls qos scheduler
恢复为缺省wrr调度
例如,以下的设置步骤将端口的输出轮转算法设置成SP:
R# configure terminal
R(config)# mls qos scheduler sp
R(config)# end
R# show mls qos scheduler
Global Multi-Layer Switching scheduling
Strict Priority
输出轮转权重
可以通过以下步骤设置端口的输出轮转权重
命令
作用
R#configure terminal
进入配置模式
R(config)# {wrr-queue | drr-queue}bandwidth weight1...weightn
weight1...weightn 为指定的输出队列的权重值,个数及取值范围见缺省QOS设置
R(config)#no {wrr-queue | drr-queue} bandwidth
no 选项恢复权重的缺省值
下面的例子将wrr调度权重设置为1:2:3:4:5:6:7:8
R# configure terminal
R(config)# wrr-queue bandwidth1 2 3 4 5 6 7 8
R(config)#end
R# show mls qos queueing
Cos-queue map:
cos qid
--- ---
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
wrr bandwidth weights:
qid weights
--- -------
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
R(config)#
Cos-Map
您可以通过设置Cos-Map来选择报文输出时进入哪个输出队列,Cos-Map的缺省设置见缺省QOS配置
命令
作用
R# configure terminal
进入配置模式
R(config)#priority-queue Cos-Map qid cos0 [cos1 [cos2 [cos3 [cos4 [cos5 [cos6 [cos7]]]]]]]
qid 为队列id,cos0..cos7 为指定和这个队列关联的CoS 值。
R(config)# no priority-queue cos-map
Cos-Map恢复成缺省值
下面是设置CoS Map的例子
R# configure terminal
R(config)#priority-queue Cos-Map 1 2 4 6 7 5
R(config)# end
R#show mls qos queueing
Cos-queue map:
cos qid
--- ---
0 1
1 2
2 1
3 4
4 1
5 1
6 1
7 1
wrr bandwidth weights:
qid weights
--- -------
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
CoS-to-DSCP Map
CoS-to-DSCP Map 用于将报文的CoS 值映射到内部DSCP 值,您可以通过以下步骤对CoS-to-DSCP Map 进行设置 ,CoS-to-DSCP Map的缺省设置见缺省QOS配置
命令
作用
R# configure terminal
进入配置模式
R(config)# mls qos map cos-dscp dscp1...dscp8
修改CoS-to-DSCP Map 的设置,dscp1...dscp8 是对应于CoS 值0~7 的DSCP 值,DSCP 取值范围依产品不同而不同
R(config)# no mls qos map cos-dscp
恢复缺省值
例如如下配置:
R#configure terminal
R(config)# mls qos map cos-dscp 56 48 46 40 34 32 26 24
R(config)# end
R# show mls qos maps cos-dscp
cos dscp
--- ----
0 56
1 48
2 46
3 40
4 34
5 32
6 26
7 24
配置DSCP-to-CoS Map
DSCP-to-CoS 用于将报文的内部DSCP 值映射到CoS 值,以便为报文选择输出队列
DSCP-to-CoS Map的缺省设置见缺省QOS配置, 您可以通过以下步骤对DSCP-to-CoS Map 进行设置:
命令
作用
R# configure terminal
进入配置模式
R(config)# mls qos map dscp-cos dscp-list to cos
设置DSCP to COS Map,
dscp-list :要设置的DSCP 值的列表,DSCP 值之间用空格分隔,取值范围依产品不同而不同,cos :对应DSCP 值的CoS 值,取值范围为:0~7;
R(config)#no mls qos map dscp-cos
设置为默认值
例如,以下的设置步骤将DSCP值0、32、56设置对应成6:
R# configure terminal
R(config)#mls qos map dscp-cos 0 32 56 to 6
R(config)# show mls qos maps dscp-cos
dscp cos dscp cos dscp cos dscp cos
---- --- ---- --- ---- --- ---- ---
0 6 1 0 2 0 3 0
4 0 5 0 6 0 7 0
8 1 9 1 10 1 11 1
12 1 13 1 14 1 15 1
16 2 17 2 18 2 19 2
20 2 21 2 22 2 23 2
24 3 25 3 26 3 27 3
28 3 29 3 30 3 31 3
32 6 33 4 34 4 35 4
36 4 37 4 38 4 39 4
40 5 41 5 42 5 43 5
44 5 45 5 46 5 47 5
48 6 49 6 50 6 51 6
52 6 53 6 54 6 55 6
56 6 57 7 58 7 59 7
60 7 61 7 62 7 63 7
配置端口速率限制
可以通过以下步骤对端口速率限制进行设置
命令
作用
R# configure terminal
进入配置模式
R(config)# interfaceinterface
进入接口配置模式
R(config-if)# rate-limit {input | output }
bps burst-size
端口速率限制,input 为输入限速,output 为输出限速,bps 是每秒钟的带宽限制量(kbps),
burst-size猝发流量限制值(Kbyte)
R(config-if)# no rate-limit
取消端口限速
R# configure terminal
R(config)# interface gigabitEthernet 0/4
R(config-if)# rate-limit input 100 100
R(config-if)# end
配置IPpre to DSCP Map
IPpre-to-Dscp用于将报文的IPpre值映射到内部DSCP值, IPpre-to-DSCP Map的缺省设置见缺省QOS配置,您可以通过以下步骤对IPpre-to-Dscp Map进行设置:
命令
作用
R# configure terminal
进入配置模式
R(config)# mls qos map ip-prec-dscp dscp1...dscp8
修改IP-Precedence-to-Dscp Map的设置,dscp1...dscp8 是对应于IP-Precedence值0~7 的DSCP 值
R(config)# no mls qos map ip-prec-dscp
恢复缺省配置。
例如如下配置:
R# configure terminal
R(config)# mls qos map ip-precedence-dscp 56 48 46 40 34 32 26 24
R(config)# end
R# show mls qos maps ip-prec-dscp
ip-precedence dscp
------------- ----
0 56
1 48
2 46
3 40
4 34
5 32
6 26
7 24
配置交换机buffer
可以配置交换机buffer管理处于802.3x flow-control状态或处于QoS状态。
命令
作用
R# configure terminal
进入配置模式
R(config)# buffer management { fc | qos }
配置交换机的buffer管理模式
FC:802.3xflow-control
QoS:QoS模式
R(config)# no buffer management
取消交换机的Buffer管理
例如如下配置交换机处于qos模式:
R# configure terminal
R(config)#buffer management qos
R(config)# end
R# show buffer management
%current port's buffer management mode: qos

显示命令

播报
编辑
显示class-map
您可以通过以下步骤显示class-map内容
命令
作用
show class-map [class-name]
显示class map实体的内容
例如:
R# show class-map
Class Map cc
Match access-group 1
R#
显示policy-map
您可以通过以下步骤显示Policy-map内容
命令
作用
show policy-map [policy-name [class class-name]]
显示QoS policy map,
policy-name为选定的policy map名,指定class class-name时显示相应policy map绑定的class map。
例如:
R# show policy-map
Policy Map pp
Class cc
R#
显示mls qos interface
您可以通过以下步骤显示所有端口qos信息
命令
作用
show mls qos interface [interface | policers]
显示接口的QoS信息,
Policers选项显示接口应用的Policy map
例如:
R# show mls qos interface gigabitEthernet 0/4
Interface: GigabitEthernet 0/4
Attached input policy-map: pp
Default trust: trust dscp
Default COS: 6
R# show mls qos interface policers
Interface: GigabitEthernet 0/4
Attached input policy-map: pp
R#
显示mls qos virtual-group
您可以通过以下步骤显示所有端口qos信息
命令
作用
show mls qos virtual-group [virtual-group-number | policers]
显示逻辑端口组关联的police信息
Policers选项显示逻辑端口组关联的police
例如:
R# show mls qos virtual-group 1
Virtual-group: 1
Attached input policy-map: pp
R#show mls qos virtual-group policers
Virtual-group: 1
Attached input policy-map: pp
R#
显示mls qos queueing
您可以通过以下步骤显示qos队列信息
命令
作用
show mls qos queueing
显示QoS队列信息,
CoS-to-queue map,wrr weight及drr weight;
举例如下:
R# show mls qos queueing
Cos-queue map:
cos qid
--- ---
0 1
1 2
2 1
3 4
4 1
5 1
6 1
7 1
wrr bandwidth weights:
qid weights
--- -------
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
显示mls qos scheduler
您可以通过以下步骤显示QOS调度方式
命令
作用
show mls qos scheduler
显示端口优先级队列调度方式
举例如下:
R# show mls qos scheduler
Global Multi-Layer Switching scheduling
Strict Priority
R#
显示mls qos maps
您可以通过以下步骤显示mls qos maps对应表
命令
作用
show mls qos maps [cos-dscp | dscp-cos | ip-prec-dscp]
显示cos-dscp maps
dscp-cos maps
ip-prec-dscp maps
举例如下:
R# show mls qos maps cos-dscp
cos dscp
--- ----
0 0
1 8
2 16
3 24
4 32
5 40
6 48
7 56
R# show mls qos maps dscp-cos
dscp cos dscp cos dscp cos dscp cos
---- --- ---- --- ---- --- ---- ---
0 6 1 0 2 0 3 0
4 0 5 0 6 0 7 0
8 1 9 1 10 1 11 1
12 1 13 1 14 1 15 1
16 2 17 2 18 2 19 2
20 2 21 2 22 2 23 2
24 3 25 3 26 3 27 3
28 3 29 3 30 3 31 3
32 6 33 4 34 4 35 4
36 4 37 4 38 4 39 4
40 5 41 5 42 5 43 5
44 5 45 5 46 5 47 5
48 6 49 6 50 6 51 6
52 6 53 6 54 6 55 6
56 6 57 7 58 7 59 7
60 7 61 7 62 7 63 7
R# show mls qos maps ip-prec-dscp
ip-precedence dscp
------------- ----
0 56
1 48
2 46
3 40
4 34
5 32
6 26
7 24
显示mls qos rate-limit
您可以通过以下步骤显示端口速率限制信息
命令
作用
show mls qos rate-limit [interface interface]
显示[端口] 速率限制
举例:
R# show mls qos rate-limit
Interface: GigabitEthernet 0/4
rate limit input bps = 100 burst = 100
显示show policy-map interface
您可以通过以下步骤显示端口policymap的配置
命令
作用
show policy-map interfaceinterface
显示[端口] policymap配置
举例:
R# show policy-map interface f0/1
FastEthernet 0/1 input (tc policy): pp
Class cc
set ip dscp 22
mark count 0
显示交换机buffer管理模式
您可以通过以下步骤显示交换机buffer管理模式
命令
作用
show buffer management
显示交换机buffer管理模式
举例:
R# show buffer management
%current port's buffer management mode: qos
显示virtual-group
在特权模式下,请按如下步骤显示virtual-group设置。
命令
作用
show virtual-group [virtual-group-number | summary]
显示逻辑端口组信息。
R#show virtual-group 1
virtual-group member
------------- -------------------------
1 Gi0/2 Gi0/3 Gi0/4 Gi0/5
Gi0/6 Gi0/7 Gi0/8 Gi0/9 Gi0/10
R#show virtual-group summary
virtual-group member
------------- -------------------------
1 Gi0/1 Gi0/2 Gi0/3 Gi0/4
Gi0/5 Gi0/6 Gi0/7 Gi0/8 Gi0/9
2 Gi0/11 Gi0/12 Gi0/13 Gi0/14
Gi0/15 Gi0/16 Gi0/17 Gi0/18 Gi0/19