前言
随着网络的发展,数据流量的增加,网络中时常发生拥塞现象,导致延时增大,严重时还会产生丢包,这时关键业务数据的传输将无法得到保障,那么如何在有限的宽带上控制不同业务的流量呢?这时就需要使用本章价绍的Qos
1. QOS
1.1Qos技术概述
随着网络的发展,互联网流量迅速增加,网咯产生拥塞,延时增大,有时还会造成丢包,导致业务质量下降,当网络出现拥塞时,如何保证重要数据的带宽和实时性数据能够快速转发呢?
1.1.1 Qos的应用需求
1.Qos概述 随着网络的高速发展,接入网络的用户越来越多。网络普及,业务多样化,使得网络流量迅速增大,导致网络流量迅速增大,导致网络带宽不能满足网络的需求,这是就出现了网络拥塞现象。 由于网络拥塞导致报文产生不能预期的传达,延迟抖动,丢包等现象,将造成业务质量的下降甚至不可使用。为了应对网络拥塞,最直接的方式就是阔大网络带宽,但是由于技术或经济等方面的限制,又是不能通过增加带宽的方法来解决,这是就需要一种技术能够在有限的带宽上保证报文的带宽以免延迟,丢包,这种技术就是Qos技术。 Qos是一种网络拥塞的解决方法,其基本思想就是把数据进行分类,放在不同列表中,然后根据数据的类型决定传输的先后或保证一定的带宽。而解决网络拥塞的根本放大就是增加网络带宽,Qos没有任何价值 在企业或运营商的网络环境中部署Qos时,能够保证最低延时,应用业务的快速转发,控制网络拥塞时的丢包率,在网络拥塞时为不同的 业务保留一定带宽等。 2.网络拥塞 (1)网络拥塞的产生 产生网络拥塞的两种常见的情况 1.数据从高速端口进入设备,从低端口转发出去 2.流量汇聚,流量由多个端口进入设备,从一个端口转发出去,并且进入设备端口的速率之和大于转发接口的速率 一般情况下,网络拥塞是由于网络中出现瓶颈造成的。列如,设备转发处理能力不够,链路带宽过小,设备缓冲区或内存不够等。此外,当某一时间访问网络的流量超过运营商分配的贷款时,也会发生网络拥塞。网络上的流量攻击也是造成网络拥塞的一种可能原因。 (2)网络拥塞的影响 当网络出现拥塞时,可能对网络造成一下一些影响 1.报文传输延迟,延迟抖动和丢包率增加。 2.由于过高的延迟和丢包导致报文重传,增加网络负担。、 3.由于网络拥塞,报文重传导致网络的有效吞吐量降低。 (3)网络拥塞的解决方法 在无法提高网络带宽的情况下,解决网络拥塞有效的方法是合理利用网络带宽,在网络发生拥塞时,根据业务的性质需要使用QoS技术合理分配现有基宽降低网络拥塞的影响。
1.1.2 Qos服务模型
QoS在网络中的服务模型一共分为三种。 (1)Best- -Effort Service: 尽力而为的服务模型。 (2)Integrated Service: 综合服务模型,简称IntServ。 (3)Differentiated Service: 区分服务模型,简称DiffServ。 1.BesEfor Srvice服务模型 Best-EffortService是一种单一的服务模型, 也是最简单的服务模型,应用程序可以在任何时候发送任意数量的报文。网络尽最大可能发送这些报文,但对于延时,可靠性不做保证。Best- -Effort Sevice. 是现在互联网中默认的服务模型, 其遵循先进先出的转发规则。 2. IntServ 服务模型 Intserv 服务模型在使用网络资源时,需要提前申请,申请的过程是通过RSVP (Resource ReservationFrocol,资源预留协议)完成的。应用程序会通过RSVP将需要的时延,带宽、 丢包率等性能通知其他节点。这些节点收到资源预留请求后,根据用户合法性、资源使用情况来决定是否预留资源。IntServ服务模型的扩展性很差,在实际网络中实施较为困难,并且RSVP 自身存在一定缺陷, 与路由协议不能很好地协调工作,这些都限制了IntServ 服务模型的广泛应用。 3.DiffServ 服务模型 Differv服务模型可以满足不同的QoS需求。与intServ不同,其不需要预留资源,网络不为每个端到端的流量进行维护。Differv服务模型可以使用不同的方法来指定报文的QoS.如报文的优先级、MAC地址、源IP 地址、目的IP地址等,网络通过这些信息来提供特定的服务(报文分类、流量整形等)。
1.2 Qos的操作模型
Qos涉及四大组件,分别是分类和标记,整形和监管,拥塞和监管
首先,数据进入设备进行流分类,根据流量的重要程度划分不同的类别,并打上不同的标记。然后使用GTS或CAR技术进行整形和监管,并根据策略对违规报文进行操作,限制流量的速率。随后通过WRED技术随机丢弃相对不重要的报文避免网络拥塞,最后通过拥塞管理的队列技术将报又放入不同的队列。队列达到最大长度后,后到的报文将被丢弃,通过队列的出队调度技术转发报文。
1.2.1 分类和标记
QoS是一个整体的设计框架,不局限于一台设备。 整个网络中设备相互配合,最终达到流量优化的目的。QoS的核心是保证重要的流量优先通过网络设备。默认情况下,网络设备对任何报文都一视同仁, 为了可以让任何设备都可以识别重要的流量,在网络的边界,也就是任何进入网络的流量都应该根据重要程度被分类,并打上不同的标记,后续设备基于这些标记来识别哪些流量是相对比较重要的。
1.分类 流分类是进行区别服务的基础。流分类可以使用报文的优先级来识别不同流分类完全由网络也可以使用源地址、目的地址、 MAC地址、协议或端口等信息来识别不同流量。 管理人员定义,不同的网络,流量重要性也不同。例如,对于小型公司而言,HTTP流量可能是比较重要的:而对于大型公司而言,语音流量才是比较重要的。重要是相对而言的,任何流量都应该通过网络,QoS 只是优先保证重要的流量.流分类必须与某种流量控制或带宽分配的动作关联起来才有意义。 流分类一般通过 ACL区分不同的流量,尤其是扩展ACL,基本上可以定义大部分流量.
2.标记 在Qos技术的diffserv服务模型中,对于IP报文中的ds字段使用DSCP作为QOS优先级描述 DS字段一共八位,在DiffServ中使用DS的前六位,即DS0~DS5定义了0 ~63共64个优先级,QoS也可以使用DS字段中的P优先级,使用DS的前三位P.优先级共八个等级,其中0表示正常流量(尽力转发),道循尽力发送原则。
默认情况下在实际的网络通信中,如果不做任何设置,正常的数据优先级都是0.而像RIP或OSPF报文,默认的优先级是6.
QoS中标记可以通过PBR (Policy Based Routing.策略路由)或者Class -Based Marking. 前者多用于策略路由 ,后者通过一个配置模板实现。
在配置时,首先定义匹配类,然后定义流量控制策略,最后在端口实施策略,
1.2.2 整形和监管
为了更好地利用网络资源,避免大量用户产生突发流量,需要对网络中的用户进行限速,当端口接收到某一流量超出限额时,就需要采取措施,限制每用户的带宽,当用户产生突发流量时采取丢弃的措施,这样可以避免由于过多的突发流量导致网络拥塞。
在对流量 进行监控时一 般可以设定三个参数:承诺平均速率、突发量,额外突发量.
?承诺平均速率(CIR): 允许流量通过的平均速率,
?突发量(Excess Burst size, Be)允许突发产生流量的大小,设置的大小必须大于最大报文长度。
?额外突发量(Excess Burst size,. Be): 表示流量超出突发量后还可以转发的流量的大小.1)流量策略
对于符合规定部分的流量视为合规流量,而对于超出规定部分的流量视为违规流量.设置流量策略时,既可以设置合规流量策略,也可以设置违规流量策略。一般流量策略有以下几种.
?转发:对于合规流量和违规流量都可以设置策略为转发。
?丢弃:对于合规流量和违规流量都可以设置策略为丢弃.
?标记:标记报文的优先级。例如,将合规流量报文的P优先级设定为5. 而将违规流量报文的P优先级设定为0.
?进入下一级流量策略, 流量策略可以多级处理,可以将流量提交给下一级流量策略来进行 (2)整形与监管 流量整形) (Generic Trfftit Shaping, GTS) 是一-种调节 输出速率的措施.流量整形使用缓冲区使流量均匀地进行转发。流量进入设备进行分类,不需 要进行整形的流量直接通过设备转发,需要进行整形的流量根据配置分为合规流量和违规流量。当流量速率超过设定时,设备将多金的流量缓存到GTS队列。然后按照配置的CIR, 将报文均匀地转发出去,以保证网络流量平稳。
由于流量整形使用缓存来保存违规流量,所以可以减小丢包率,避免了报文重发,但是使用缓存将导致数据转发时增加时延。流量整形一般应 用在整体流量较小,但有时出现突发流量的环境中。监管是一种流量控制措施,监管使用的三个参数分别是承诺平均速率、Bc 和Be.所以监管中Bc+Be的大小是允许突发的最大流量的大小。监管的核心技术是承诺访问速率(Committed Access Rate, CAR).
Bc和Be相当于信用的积累,如果一致守信(小于规定流量),其信用值就不断增加到某个数值(Bc);如果继续守信,则信用值就会继续增加到一个规定的最大值(Bc+Be). 这时,如果出现违规现象(流量速率超过规定速率),信用就会减小,直到信用值为0.所以BC、Be是一个积累使用的过程,而不是始终存在的(最初时Bc和Be为满的)。
在使用CAR技术限制流量速率时,违规流量-般会被直接丢弃而不进行缓存.
1.2.3 流量整形与监管配置
1.流量整形配置有两种方式,一种是基本的流量整形配置,另一种是基于访问控制列表(ACL)的流量整形配置。
2.承诺访问速率配置 与流量整形相同,承诺访问速率也有两种配置方式,一种是基本的承诺访问速率配置,另一种是扩展的承诺访问速率配置。
1.2.4 拥塞管理
虽然使用GTS和CAR技术可以控制带宽,但是这样也无法避免网络发生拥塞,如果设备没有足楼的经存区域来保存到达的数据,就会导致部分数据丢失,造成超时重传,最终导致恶性循环。那尖生网络拥塞时,如何决定资源的使用、带宽的分配、报文的转发顺序呢?这时就需要使用拥塞管理技术。
1.拥塞管理技术
拥塞管理般采用队列调度技术,通过队列调度技术的算法使得不同的数据流拥有不同的优先级和带宽信息等,从而确定不同数据流被转发的顺序和带宽。拥塞管理技术主要包括以下五种技术。 (1)FFO (First In First out Queuing):先进先出队列。
(2)PQ (Priority Queuing): 优先级队列。
(3)cQ (Custom Queuing): 定制队列。
(4)WFQ (Weighted Fair Queuing): 加权公平队列.
(5)C8WFO (Clas Based Weighed Fair Queingl; 基于类的加权公平队列, 这里主要介绍WFQ和CBWFQ拥塞管理技术,对于其他队列技术可以参见其他相关资科。
(1) WFQ
WFQ根据数据流的源IP地址、目的IP 地址、协议、端口号、IP 优先级等信息将不同的流分配到不同的队列(流分类是路由器自动完成的,无须进行配置). WFQ尽量将不同的流量分入不同的队列,以从整体上均衡各个流的时延.在出队的时候,WFQ按照流的优先级来分配出口的带宽,优先级越小得到的带宽越小,优先级越大得到的带宽越大。每个流所占用的带宽比例为(自身流优先级加1) / (所有流优先级分别加1的和)。
例如,如果有六个流优先级,分别为0、1、 2、3. 4、5,则带宽总配额(所有流优先级分别加1的和)为1+2+3+4+5+6-21每个流获得的端口带宽分别是1/21.2/21. 3/21.4/21.5/ 21.6/21.
最后,轮询各个队列,并根据带宽占用比例进行报文转发. WFQ是Cisco低速端口的默认配置,如串口等。
- CBWFQ
CBWFQ扩展了WFQ的功能,CBWFQ 可以根据数据的优先级、源IP地址和目的IP地址、协议等进行分类,并让不同的报文进入不同的队列。如图6.12所示,LQ (LowLatency Queuing,低延时队列)是一个优先类队列,首先转发此队列中的数据,只有此队列没有数据时才转发其他队列中的数据。LLQ可以保证实时性要求较高的业务(如 VolP)的服务质量. BQ (Bandwidth Queuing) 共64个,数据分类后每一类进入一个队列,队列采用WFQ方式进行调度。Default class 为默认类队列,在数据分类时没有匹配任何条件的数据被系统送入默认类队列,默认类队列一般采用先进先出或WFQ方式进行调度。
CBWFQ进行出队调度时,首先转发a中的数据,直到LO中数据为0,然后采用 WF0万式转发其他队列中的数据。为了避免转发LLQ队列中的数据时其他队列长时间等待,CBWFQ可以设定一个最大带宽的参数, 来限制在网络发生拥塞时优先类队列转发的速率。当网络拥塞时,优先类队列中超过配置的流量将被丢弃。
BQ进行出队调度时,可以通过配置保证最小带宽参数来保证网络拥塞时队列的最小带宽。当网络没有发生拥塞时,能够保证队列可以获得设定的最小带宽,使数据能够被及时转发。另外,在网络拥塞时,如果某队列没有数据,则其他队列可以按照配置的保证最小带宽的比例公平地得到空闲带宽。
在CBWFQ技术中,当队列达到设定队列长度的最大值时,需要丢弃后到的数据.这就是尾丢弃。· 除了尾丢弃外,还可以采用加权随机预检测(Weighted Random Early Detection, WRED)的丢弃策略。
1.2.5 拥塞避免
虽然拥塞管理可以通过队列技术保证关键业务的带宽,但是过度的网络拥塞对于网络的危害是很大的。那么如何有效地避免拥塞呢?避免拥塞就要主动丢弃部分报文,以减缓网络的拥塞程度。 1.尾丢弃 尾丢弃是传统的丟包策略,即当队列达到最大长度后,将所有后续来到的报文全部丢弃的策略,使用这种策略能同时丢弃多个TCP报文,从而使得多个TCP连接进入拥塞避免的状态而调整流量.但这将导致网络中的流量忽大忽小,极不稳定。
在CBWFO中配置尾丢弃的命令是quee limit通过此命令来限制队列的长度。
- WRED
为了避免出现尾丢弃的现象,随机预检测(FED) 为每个队列设定两个值,分别为低商值和高阈值,并采用如下算法。
?_ 小于低阈值时,不进行报文丢弃.
?大于高阈值时,完全丢弃报文.
?在低阈值和高阈值之 间时,WRED 开始进行随机丢弃报文。队列越长,丢弃的概率越高.WRED的原理和RED相同,只是在随机丢弃报文时,加入了报文优先级来区分丢弃策略.通过RED避免了多个TCP连接同时进入拥塞避免状态的情况,只是让个别TCP连接进入拥塞避免状态。WRED的配置可以直接配置在接口上,也可以通过policy- -map配置。
总结
延迟:报文从一端达到另一端的世家。 延迟抖动:延迟不固定,抖动为延迟的时间差。
CIR表示速率,而Bc和Be表示大小。
不同的设备和技术手册规定的 Bc和Be数值的配置可能不同一般推荐使用如下公式:
Bc=2X RTTX CIR/8
其中,RTT表示流量往返的时间,可以使用 ping命令测试。Be洁量一般等于Bc。
GTS只能应用在output方向,而CAR可以应用在两个方向。
在配置cbwfq时,需要对默认队列配置保证最小带宽,否则在网络拥塞时,默认队列的带宽为0.
|