浅谈Qos技术

来源:互联网 发布:ping 的端口 编辑:程序博客网 时间:2024/06/05 15:33

Quality of Service服务质量:

而当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报 文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。QoS应运而生。

 

QOS三种模型:指导在各种需求下,如何实施QOS

Best-EffortService   尽力而为服务模型

不实施QOS

In tegratedService   综合服务模型,简称Intserv

发送数据之前,必须先向网络申请带宽

申请带宽时,所用到的协议为Resource Reservation Protocol (RSVP)

现有的网络中,综合服务模型的QOS通常并不被采用

DifferentiatedService  区分服务模型,简称Diffserv

根据不同数据提供不同服务                                             

类型:PHB每跳行为、端到端QOS

 

QOS组件:在实施区分服务模型QOS时,需要考虑四个QOS组件,这些组件相互组合,可以设计出完整的QOS策略,而每个组件中,都会有相应的QOS技术提供支持,

以下是QOS四个组件:

分类和标记(classificationand marking)

管制和整形(Policingand Shaping)

拥塞管理(Congestionmanagement)

拥塞避免(Congestionavoidance)

说明:

分类---将数据分为不同的类别

标记---将数据设置为不同的优先级称

管制---丢弃超出带宽

整形---将超出的带宽缓存在内存中,等到下一秒再传递

拥塞管理---通过队列定义了数据包被传输的先后顺序

拥塞避免---发生拥塞时,先丢低优先级的数据包而传输高优先级的数据包,默认尾丢弃

 

一.分类和标记(Classification and Marking)

分类和标记是区分服务的实现基础。

分类和标记实际上是相辅相成的,分类的依据便是标记。

物理层:物理接口,子接口,PVC

数据链路层:MAC地址、802.1Q或802.1P服务类别(COS)、VLAN标识、帧中继可丢弃指标符(DE)位

网络层:IP Precedence (IP优先级)、DiffServ代码点(DSCP)、源IP地址或目的IP地址

precedence占用前面3位,precedence=4,则TOS=128,计算时只以前面3位换算(4,2,1),DSCP在precedence基础上扩展3位,则DSCP=32

传输层:TCP或UDP端口号

 

二.管制和整形(Policing and Shaping)

整形分为三种:

Generic Traffic Shaping (GTS)为通用流量整形,适用于任何接口。

Frame Relay Traffic Shaping(FRTS) 为帧中继流量整形,是专门针对帧中继接口,通过帧中继专有技术map-class来实现。

Class-Based Shaping(CBS)为基于类的整形,可以将GTS嵌入FRTS。

 

三.拥塞管理(Congestion management)

拥塞管理---通过队列定义了数据包被传输的先后顺序

FIFO queuing 先进先出队列

Priority queuing (PQ) 优先级队列

PQ中有4个队列,分别是high,medium,normal,low  

 会出现“饿死”现象:当优先级高的数据全部传输完成之后,才能传优先级低的数据。

Custom queuing (CQ) 轮循队列

CQ中有1到16共16个队列轮循

Weighted fair queuing (WFQ) 基于Weight的公平队列

Class-based WFQ (CBWFQ) 基于类别的WFQ

Low Latency Queuing (LLQ) 低延迟队列

低延迟队列LLQ为特定的流量划分特定的带宽,划给特定流量的带宽是绝对能够保证的,无论接口有多繁忙,LLQ 中的流量是能够优先传送的,但是这些流量的带宽却不能超过所分配的带宽,如果超过了,也是没关系的,这些超过的流量只有在拥塞时才会被丢弃。为延迟和抖动较敏感的语音或视频数据绝对保证带宽。

补充: IP RTP Priority(Real-Time Transport Protocol)

尽量只为对延迟要求较高的实时数据提供带宽保证,比如尽量只为语音提供带宽保证,受RTP保护的数据流,可以在任何流量之前优先传递,

即使是LLQ和RTP同时出现的情况下,RTP的流量是优先于LLQ传送的,只有UDP目标端口号为 16384至32767的数据才能得到保护。

在接口下配置RTP:

在路由器Serial 1/0接口下配置RTP的,流量保证带宽200 Kbit。

Router(config)#int s1/0

Router(config-if)#ip rtppriority 16888 16383 200

说明:如果需要为VoIP保证带宽,请将端口号分别设置为16384 16383。

 

四.拥塞避免(Congestion avoidance)

Tail Drop 尾丢弃

Weighted Random Early Detection(WRED) 随机早侦测:设定丢弃概率

 

MQC(Modular Qos Command-Line)

模块化QOS命令行,是配置Qos处理数据的一种方式。

1.定义流量:

(config)#access-list 1 permit10.1.1.1 0.0.0.0

(config)# class-map match-allccie

(config-cmap)#match access-group1

2.设置策略:

(config)#policy-map cisco

(config-pmap)#class ccie

(config-pmap-c)#drop

3.应用策略:

(config)#interface f0/0

(config-if)#service-policyoutput cisco

 

Qos的令牌桶算法(token bucket algorithm)

Qos的一个重要作用就是对端口流量进行监控,这是通过Qos的令牌桶机制时下的。

令牌桶中会放置一定数量的令牌,一个令牌允许接口发送或接收1bit数据(有时是1 Byte数据)。

当接口通过1bit数据后,同时也要从桶中移除一个令牌。

当桶里没有令牌的时候,任何流量都被视为超过额定带宽。

只有当桶中有令牌时,数据才可以通过接口。

令牌桶中的令牌不仅仅可以被移除,同样也可以往里添加。

为了保证接口随时有数据通过,就必须不停地往桶里加令牌。

往桶里加令牌的速度,就决定了数据通过接口的速度。

我们通过控制往令牌桶里加令牌的速度从而控制用户流量的带宽。

设置用户的带宽为1000 bit每秒,只要保证每秒钟往桶里添加1000个令牌即可。

 

用户传输数据的速率被称为承诺信息速率(CIR),通常以秒为单位

CIR 加令牌速率

Burst size(Bc) 一次性加进的令牌数量

Time interval(Tc)加令牌的时间间隔

Bc / CIR= Tc

CIR是8000,Bc是4000,那就是每秒加两次,Tc就是4000/8000=0.5,也就是0.5秒,即500 ms。

如果Bc设为2000,那Tc就是2000/8000=0.25, 也就是250 ms。

 

令牌桶算法:单速双色、单速三色、双速三色

单速双色:单一速率下,存在两种结果(符合,超出)

只存在一个令牌桶,并且流量只会出现两种结果,即符合CIR(conform)和超出CIR(exceed)

例:

将CIR设置为8000 bit,每一秒都会往桶里加8000个令牌,在一秒钟结束后,没有用完的令牌会被全部清空,由下一秒重新加入。

第1秒,加入8000令牌,用户使用5000后,剩余3000被清空。

第2秒,加入8000令牌,用户使用6000后,剩余2000被清空。

第3秒,加入8000令牌,用户使用8000后,没有剩余。

第4秒,加入8000令牌,用户使用7000后,剩余1000被清空。

 

单速三色:

单一速率下存在三种结果(符合,超出,违反)

使用两个令牌桶,用户每秒的可用带宽,总是两个桶的令牌之和

第一个桶---单速双色。关键在于第二个桶,第二个桶的令牌不能直接加入,只有当一秒钟结束后,第一个桶中存在剩余令牌,被转移到第二个桶。

限制转移最大数量被称为  Excess Burst size(Be)Be是不可能超过CIR的。

在每一秒结束时,第二个桶的没用完令牌全部被清除。

第二个桶中的令牌,都是来自于上一秒第一个桶没用完的令牌。

 

由于使用了两个桶,所以用户的流量也会出现三种结果:

小于或等于CIR(也就是符合CIR)  (conform)

大于CIR并小于或等于CIR与Be之和(也就是符合两个桶令牌之和)(exceed)

超过CIR与Be之和(也就是超过两个桶令牌之和)(violate)

 

双速三色:

同样使用两个令牌桶,然而这两个桶是相互独立

第一个桶---单速双色。

第二个桶可以直接设置为CIR+Be之和,称为PIR。

也就是说第二个桶总是比第一个桶要大,用户的流量总是以第二个桶的大小传输,而不用像单速三色的令牌桶算法中,需要在上一秒钟以低于CIR的速度传输。

 

当用户的数据通过接口时,总是先检查第二个桶的最大速率,即PIR。如果超出则采取动作,如果未超出;

再检查是是否符合第一个桶的CIR,如果超出CIR,则采取相应动作。 如果未超过CIR,则正常传输。

 

推荐王达博客关于Qos令牌桶的文章:http://blog.csdn.net/lycb_gz/article/details/7492468

 

 

0 0
原创粉丝点击