当前位置:文档之家› 不错的QoS总结

不错的QoS总结

不错的QoS总结
不错的QoS总结

一、QoS理论知识(基础)

QoS:Quality of Service

网络质量:带宽、延迟、抖动、丢包率等

IP网络:没有部署QoS时,FIFO,平等对待

随着网络的融合,在IP网络中存在很多种类型的数据(数据、语音、视频)

IP网络中部署QoS的几种方式:

1)Best Effort:尽力服务(IP网络的特点,或者说根本没有部署QoS)

2)Integrated Service:集成服务

RSVP(资源预留协议)

利用某种信令(例如RSVP)来预先申请网络资源,从而满足该应用的服务质量。

该QoS模型能最好地实现端到端(end-to-end)的服务质量

在IP网络中,集成服务是为每个数据流来保证的

缺点:应用程序需要支持RSVP,网络设备需要记录资源申请的信息(是有状态的结构)

在大型网络中不能很方便地部署

3)Diff Serv:差别服务

对不同类型的报文进行差别对待,提供不同的服务质量。

优点:

是逐跳处理的

每一跳设备首先对报文进行分类,接着为不同类别的数据提供不同的质量

部署时可以逐步部署

应用程序无需进行更改

缺点:

无法实现与集成服务相当的端到端服务质量。

QoS的相关技术:

1)分类(Classification)

可以利用L2头信息,L3信息,L4头信息,L7信息来对报文进行分类,以便后续进行差别对待

分类是DiffServ的基础,如果没有正确的分类,就无法很好地实现DiffServ。

2)标记(Marking)

标记的目的是使得后续的设备能够更简单地进行分类。

通常是把标记打在L2头或L3头上。

L2头:以Ethernet为例,没有空闲字段可以做标记之用。

802.1Q中,带802.1Q标签的Ethernet帧。

802.1Q的4字节中包含:

2字节的协议标识

3比特:User Priority(在802.1p中定义,成为CoS-Class of Service)

1比特:CFI(在令牌环网中使用,Ethernet中该比特为0)

12比特:VLAN_ID(表示VLAN ID号)

L3头:IP头,利用ToS字段(8比特)来作为标记

3)拥塞管理机制(Congestion Management)

即队列机制

FIFO(First In First Out,先进先出)

PQ(Priority Queue,优先级队列)

RR(Round Robin,轮询)

WRR(Weighted Round Robin,加权轮询)

WFQ(Weighted Fair Queue,加权公平队列)

CBWFQ(Class-Based WFQ,基于类的加权公平队列)

LLQ(Low Latency Queue,低延迟队列)

4)拥塞避免机制(Congestion Avoidance)

即丢包技术

Tail-Drop(尾丢包)

RED(随机早期检测)

WRED(加权随机早期检测)

5)管制(Policing)

即限速

可以将某种类别的流量进行限速,使之不超过规定的速率。

管制:对于超出部分进行丢包或者重标记(通常是降低优先级),因此管制通常会增加丢包率。

6)整形(Shaping)

可以将某种类别的流量进行整形,使之不超过规定的速率。

整形:对于超出部分进行缓冲,等空闲再发送,因此整形通常会增加延迟。

7)广域网链路效率机制(WAN Link Efficiency)

a)压缩

b)链路分片或交织(LFI)

二、标记

DSCP:

定义的PHB(每一跳行为)

i)为了与IPP的兼容,定义了CS0~CS7,前3个比特与IPP对应,后3个比特固定为000 ii)AF(确保转发)

AF11,AF12,AF13

AF21,AF22,AF23

AF31,AF32,AF33

AF41,AF42,AF43

在AF的PHB定义中,建议在转发报文时,AF4x>AF3x>AF2x>AF1x

对于同一个类别,AF41,AF42,AF43的报文,建议在需要丢包时,AF43的丢包概率最大,二AF41的丢包概率最小

注:DSCP的6个比特,在AF中,其中前3个比特对应AF的类别,接下来的2个比特对应丢包概率,二最后1个比特固定为0

AF21,010 01 0,对应的十进制18

AFxy,实际上对应的十进制值为8x+2y

iii)EF(Expedited Forward,快速转发)

注:设置标记为EF的报文,将来建议的处理方式是保障带宽,保证低延迟。

EF对应的二进制为101110,十进制为46

补充:

精确匹配:

MAC地址表(二层交换机转发数据)、邻接表(下一跳地址《---》接口和二层地址)

最长匹配:

IP路由表

首次匹配:

ACL、IP前缀列表、Route-map、Policy-map

语音的编码:ITU-T

G.711 一路语音,语音载荷占用带宽为64Kbps

Voice载荷

RTP头(12字节)

UDP头(8字节)

IP头(20字节)

L2头(根据不同的2层封装协议而不同)G.723 一路语音,语音载荷占用带宽为8Kbps G.729 一路语音,语音载荷占用带宽为8Kbps

视频编码:

H.263

H.264

三、拥塞管理和拥塞避免机制

1、队列技术

1)路由器的队列体系结构

2)具体的队列技术

a)FIFO

只有一个队,也就是说所有的报文是按照达到的先后顺序依次排入该队中。

思科设备:高速接口默认是使用FIFO

低速接口默认是WFQ

硬件队列:一定是FIFO

b)PQ(Priority Queue,优先级队列)

总共有4个队(high、medium、normal、low),到达的报文可以根据配置排入4个队之一。

PQ的调度机制:

只要高优先级的队中有报文,一定先将其排列到硬件队列中。

只有当高优先级的队没有报文时,才会轮到下一个级别进行调度。

优点:实现优先级

缺点:可能饿死低优先级的队列

配置实例:

priority-list 1 protocol ip high

interface f0/0

priority-group 1

上述的配置采用legacy CLI(传统QoS命令行配置),而不是MQC(模块化QoS命令行)

c)CQ(Custom Queue)

实际上就是实现了RR和WRR

CQ最多可以配置17个队(0~16),其中0保留给系统使用,用户数据通常放入1~16中。

配置实例:

queue-list 1 protocol ip 1

queue-list 1 queue 1 byte-count 4000 表示轮到队1时,可以发送4000字节的报文

int f0/0

custom-queue-list 1

注意:一个接口只能应用1个队列技术

d)RR(Round Robin)

不同的报文可以排到不同的队中。

RR的调度机制:

多个队轮流调度,即第一个队发送一些报文,接着轮着第二个队,依次类推。

轮到某个队调度时,发送多少报文,可以通过权重来控制,体现不同队的优先级。

e)WRR(Weighted Round Robin)

不同的报文可以排到不同的队中。

WRR的调度机制:

多个对轮流调度,即第一个队发送一些报文,接着轮着第二个队,依次类推。

轮到某个队调度时,发送多少报文,可以通过权重来控制,体现不同队的优先级。

f)WFQ

WFQ的目的是希望每个流都有机会得到转发,并且根据每个流的IP优先级来设置

权重,权重越大,将来占用的带宽越多。

WFQ自动将数据进行分类,用户无法控制

WFQ会根据数据的流信息来进行分类,会将不同流排到不同的队列中。

WFQ采用某种hash(哈希)函数:

(源IP地址、目的IP地址、ToS字段、协议号、源/目的端口号等等)

WFQ的队列数量是可控制的,为了实现不同流都能得到传输的机会,必须让不同流排到不同队中,

因此通常需要配置WFQ的队列数量使之大于实际网络中流的数量。

假设某个网络中存在以下几个流:

flow 1:IPP=3

flow 2:IPP=3

flow 3:IPP=0

flow 4:IPP=5

flow 1的权重(3+1)/((3+1)+(3+1)+(0+1)+(5+1))

由于WFQ无法让用户自行对流量进行分类,并且每个流能够占用多少带宽也是无法设置的。

因此WFQ通常用于class-default中

配置:

int s0/0

fair-queue

fair-queue 64 512 16

其中64为CDT(即每个队的长度,默认为64),512为WFQ中队的数量

hold-queue 2000 out

指该接口下所有队的报文数量不能超过2000

在WFQ中,什么时候会丢包?

1)当该报文所属的队已经排满了

2)当该接口的所有队的报文累加起来已经达到2000,此时也会丢包

配置时一般要将队的数量大于实际网络中流的数量,16为WFQ保留给RSVP的保留队列数量(默认为0)

g)CBWFQ

CBWFQ允许用户自行定义分类,并未某种分类设定带宽值(即该类的最小带宽保证)CBWFQ的队列数量等于类的数量,CBWFQ能为不同类保留带宽,并且允许class-default使用WFQ

缺点:

CBWFQ对于像语音这样的实时数据,无法保证低延迟。

h)LLQ(Low Latency Queue)

CBWFQ+PQ

在CBWFQ的基础上,将PQ整合进来。

将语音排入PQ,优先转发;而其他数据放入CBWFQ队列中来调度。

注意:由于PQ的抢占特性,可能饿死低优先级数据;

因此在LLQ中引入PQ时,做了适当的管制,即在网络拥塞时,PQ所占用的带宽不能超过设定的带宽值。

2、丢包技术

1)Tail-Drop(尾丢包)

2)WRED(加权随机早期检测Weighted Random Early Detect)

注意:WRED必须与某种队列技术配合使用(目前能够配合的包括WFQ和CBWFQ)实例1:

class-map test01

match access-group 100

class-map test02

match access-group 101

policy-map test

class test01

bandwidth 256

random-detect 默认是基于IPP的

class test02

bandwidth 128

random-detect dscp-based 开启WRED,基于DSCP

random-detect dscp af11 30 40 20

接口上也可以直接配置random-detect

在VOIP中是不能使用WRED的

交换机中的拥塞管理(队列技术)和拥塞避免(丢包技术)

交换机中的队列技术已WRR(Weighted Round Robin,加权轮询)为主

配置命令:

int f0/1

wrr-queue bandwidth 10 15 25 0

设置4个队轮询的带宽比例(如果配置了priority-queue out,最后一个参数为PQ,因此不参加轮询)

wrr-queue cos-map 1 0 1

wrr-queue cos-map 2 2 3

wrr-queue cos-map 3 4 5 6

wrr-queue cos-map 4 5

设置将不同CoS值的报文放入4个队之一

priority-queue out

设置队4为优先级队列

注意:在Catalyst 3550中,只能将队4配置为优先级队列

管制和整形

比如物理层速率为256kbps,现在希望限速64kbps

假设Tc=125ms

通过64kbps×125ms来计算每个Tc内能发送的比特数量

8000比特

31.25ms

在每个Tc内,其中31.25ms是以满速率(物理层速率)来发送数据,而接下来的93.75ms 则静默。

Tc:时间间隔

Bc:承诺突发尺寸,指在每个Tc间隔内能够发送的比特数量

CIR:承诺信息速率,即整形的速率。

Be:额外的突发尺寸

正常情况下,一个Tc周期内能发送Bc比特的数据

但是如果在前一段时间所发送的数据没有达到整形的带宽(相当于发送了较少的速率),那么在接下来的一个或多个Tc间隔内发送Bc+Be的数据

BECN(后向拥塞指示)

FECN(前向拥塞指示)

R1---PVC---帧中继网络——PVC---R2

假设R1通过该PVC向R2发送数据,此时在帧中继网络中发生拥塞,它可以发送带BECN 比特的帧中继报文给R1

或者发送带FECN比特的帧中继报文给R2

帧中继流量整形的自适应:

当收到BECN时,开始进行流量整形;75%×CIR

再收到BECN时,继续流量整形,并将整形速率逐步下降,直到整形速率减为mincir(该值通常为CIR×50%)

当一段时间内没有收到BECN,则整形速率逐步增加,直到恢复为CIR

示例:

shape peak 64000

实际整形的速率:64(1+(BC+BE))=128kbps

BC=8000bit BE=8000bit

实例1:

policy-map SHAPE

class class-default

shape average percent 50 125 ms

int s0/0

bandwidth 128

service-policy output SHAPE(针对s0/0接口出流量进行整形(速率为64kbps,TC为125ms,Bc为64kbps×125ms)

实例2:

policy-map SHAPE

class class-default

shape peak 64000

实例3:(结合自适应整形流量)用于帧中继

policy-map SHAPE

class class-default

shape average 64000

shape adaptive 32000

int s0/0

encapsulation frame-relay

service-policy output SHAPE

该接口出流量整形为64kbps,若帧中继网络持续拥塞,则整形速率会持续减少,知道32kbps (MinCir)

传统的FRTS配置

map-class frame-relay FR1

frame-relay cir 64000

int s0/0

encapsulation frame-relay

frame interface-dlci 101

frame-relay traffic-shaping

frame-relay class FR1

基于MQC的FRTS配置

policy-map MQC_FRTS

class class-default

shape average 64000

map-class frame-relay FR2

service-policy MQC_FRTS

int s0/0

encapsulation frame-relay

frame interface-dlci 101

frame-relay traffic-shaping 注意这条命令要删除

frame-relay class FR2

基于MQC的FRTS配置只能基于class-default,不能基于其他的class

假设CIR为64kbps,PIR为128kbps

如果使用双速率,三颜色的模型

一个报文到达,离上一个报文的时间为100ms,

此时将向Bc桶放入64kbps×100ms/8=800字节,将向Be桶放入128kbps×100ms/8=1600字节

相关主题
文本预览
相关文档 最新文档