拥塞管理
拥塞管理是
QOS
一个非常重要的特性。后面的拥塞避免同样是。他们都是作用在出站口上的。我们使用
QOS
,就是为了让数据流按着我们的意思去走。或者快,或者慢,超出了我们设置的界限,该如何处理,是丢弃还是采取其他的一些比较温柔的处理措施。对于一个设备来说,数据有进有出,这个设备上出去的数据流,在另一个设备的角度上看,这就是进来的数据流,所以呢,我们要保证出去的这些数据流都是按着我们个人的意愿来走这个路的,至于到了对端的设备如何来处理这些进的数据,那是他们的事情。而我们现在要做的就是尽量的让我们这个设备上出去的数据更加如人意,争取做到数据流最大程度上传输顺畅,并且不给那个对端接受的设备带来太大的负担。
我们都知道,一个端口是包含多个队列的,包括输入队列和输出队列,并且每种队列都不是一个的。我们这个拥塞管理就是运用在这些输出对列上的。当数据进来的时候,是会被划分到不同的输出队列的。根据什么来分呢?为什么要区分开来呢?既然区分了,那又有什么不一样的处理措施呢?这些问题,是我们知道了这个特性是运用在端口上的,还是具体到端口的各个输出队列上的时候我们必须想到的。带着这些疑问,我们来详解。
在默认的情况下呢,也就是没有使用
QOS
特性的时候,交换机的各个端口中的各个队列对待所有的数据都是一视同仁的,在一个接口中使用的派对方法是:
FIFO
,先进先出。就是说谁来的早就先解决谁。是有先来后到的这么一说的。看起来,挺合理啊。但是,当今社会那里有这么“公平”的事情啊,不都是“老大”说了算的吗?呵呵、、这里的老大就是指的那种老大的身份,谁的地位高,谁就说了算,就先解决谁的问题。
那既然出现了这种不公平的问题,肯定得是有身份依据的。不同身份的数据分配到不同的输出队列。这样一来,我们可以肯定的是:这个特性使得有依据来区分各个队列,并且还可以把不同身份的数据安排到特定的队列中,这不就是特定
DSCP
值的数据分配到特定的队列吗?嘿嘿、、、、这是我们的猜测。我们必须得这样,得先有自己的想法,然后戴着你个人的这些想法去看书,或者是和作者的想法一致,或者是撞击出智慧的火花,对我们来说都是另外的一种收获,我们记忆知识还会更牢固。
来区分队列:
不同型号的交换机的端口支持的队列是不一样的,有支持
3
个的,
4
个的,甚至
2
个的。并且他们在没使用
QOS
的时候,身份还是一样的。即使他们这些队列中有几个个别的队列的骨子里有中特别的气质,哎、、、、但是外界条件不允许啊
~~
没办法,也只能是蓝领一个啊。但是当我们启用了这个
QOS
特性后,启用了端口队列的优先级后,那些有着内在气质的队列,就可以鹤立鸡群了。与众不同!默认情况下,内在的气质是与生俱来的,只要我们启用了这个端口队列的优先级特性,某些队列就成了优先级队列,在这个队列里排队的数据都是优先处理的,只有当这个队列中的数据处理完了,其他的队列的数据才开始进行处理。所以呢,以后我们就可以把一些情况比较紧急的数据放进这个队列里,当然了,这个问题就牵涉到了后面的特性身份的是数据和队列的映射问题了。
OK
,这是默认的情况下,但是呢,气质呢是可以后天培养的,所以我们也可以对平常的那些队列进行特性的培养啊,使我们心仪的队列成为优先级队列,而不是使用默认的优先级队列了。也就说,这个优先级队列的指定的操作性还是很大的嘛,嘿嘿、、、、具体的实现命令是这样的:
使用默认的优先级队列:
端口模式下:priority
―queue out
(cisco 3500
系列,默认的是队列4
)
不同型号的设备的配置命令是不同的。
使用后天形成的优先级队列:
wrr
―queue priority
―queue
wrr
―queue cos
―map [queue id ] [threshold
阀值] [cos value ….]
其中这个阀值是什么意思,我到现在还真的不是很了解,因为对应着一个队列可以有好几个阀值。非常不解。后面的
COS
说的是出站
COS
。而不是内部
DSCP
。
通过使用这个命令,我们就可以将一定
COS
值的数据映射到特定的队列中,并且这个队列也就是我们说的那个后天形成的优先级队列。
通过这几条简单命令的阐述,我们把上面说的俩个问题都解决了:队列的区分和队列与特定数据流的映射。
我们都知道,
QOS
对数据包进行特定处理的依据是内部
DSCP
。我们外面进来的数据
DSCP
在端口的时候有可能被重改写(相关的命令前面已经提到过)或者是通过策略表中的动作来实现
DSCP
的更改。所以呢,我们称这个状态下的
DSCP
值(对于
2
层的数据来说就是
COS
,对于
3
层的来说就是
IP
优先级)为外部
DSCP
,即使被更改了。这个数值到了交换机的内部后,还得进行一次映射,即:
COS/IP
优先级到内部
DSCP
(
QOS
特性处理数据的依据)的映射。这个映射表呢我们也是可以尽心改变的,在前面似乎已经提到了相关的配置命令。当然了,这样说,那么肯定就会存在一个默认的映射关系表啊!最后的时候,如果时间允许我会尽量的给大家画出来。我们一直在强调这个问题:这个内部
DSCP
只是在内部的时候使用的。
上面,我们对命令的参数进行了一定程度上的解释,这里主要的就是那个后面的
COS
值,这个值说的是出站
COS
,而不是内部
DSCP
值。出站是根据这个出站
COS
来对数据进行传输处理的。看来,这里还有一个内部
DSCP
到出站
COS
的映射过程。肯定的啦,存在一个默认的映射关系表的,并且呢,我们也是可以人为的改变这种映射关系的。
相关的配置命令:
Mls qos map dscp―cos [dscp value ] to [ cos value]
我们现在是,可以区分数据了,可以区分不同的队列了,也可以区分把这些数据有区别的映射到不同的队列上了,那接下来的问题就是最关系的问题了:对各个队列的处理又是怎样的呢?
我们可以对各个出站队列设置的特定的监测参数,以及一个特定的阀值。比如为各个队列指定一定的带宽,后面具体的参数的取值范围是
1----255
。再比如队列长度,参数的具体取值范围是
1%---100%
。这些监测参数说明:我给你相应方面的资源就这些(是对各个队列而言的)
端口配置模式下:
Wrr-queue bandwidth [weight for queue1] [weight for queue 2] …..[weight for queue n]
Wrr-queue queue-limit [low priority queue weight ] [medium priority queue weight] [high priority queue weight ]
在这里,第二个命令中,大家都看到了出现了低级队列,中级队列和高级队列的说法。其实,
在端口的队列中确实有这么一种说法的:队列
1
属于低级队列,队列
2
数据高级队列,再往上就是属于严格优先级队列了。所谓的严格优先级队列就是我们说的那个优先级队列。不管是人为指定的,还是那个默认的。我们都叫它严格优先级队列。
但是如果这些分配个各个队列的资源都快用光了或者都用光了咋办啊?当然是产生拥塞了啊,这些是我们最大的忌讳啊
~~~
咋办呢?这就是拥塞避免的事情了。
拥塞避免
简单来讲,快拥塞的时候的一般的处理措施当然就是丢弃后来的那些数据咯,但是如果后面来的那些数据还是非常的重要的,那怎么办呢?我们首要的原则就是为了保证这些重要的应用顺利实现嘛,所以,我们丢弃后来的这些数据包的时候就得有一定的选择了啊,
具体的配置命令如下:
Wrr-queue random-detect min-threshold [queue id ] [thr m%]
Wrr-queue random-detect max-threshold [queue id ] [thr n%]
这俩个命令也就说:当相应的
id
的队列中的数据填满程度达到了该队列的
m%
时,开始进行丢弃这个队列的数据。当达到
n%
的时候就开始采取尾丢弃的方法,也就说说达到这个程度,这个接口的在接受到的任何一个数据包都进行丢弃。
总结一下:
其实,说白了,
QOS
就是保证数据经过的每一个环节都可以得到人为的精确控制。通过什么来实现啊,还是得说那个内部
DSCP
。但是这个东西是用在设备内部的。
那咱就看看,整个数据传输的过程中,有过几次外部的
DSCP(COS
或者
IP
优先级
)
和内部
DSCP
的映射。
1.
进设备端口的时候,得需要给数据加上一个,为什么啊,为的就是让这些数据能有一个
COS
或者
IP
优先级好和内部的
DSCP
映射啊,然后通过这个东西对数据进行分类啊啥的,就是为了得到一个可以对这些数据进行区别对待的依据。
2.
出设备的时候,我们还需要把内部的
DSCP
映射到
COS
,它叫做出站
COS,
为的就是实现拥塞的管理。因为拥塞这家伙就靠这个活着呢。
搞清楚了这么个流程,中间的那些具体的处理措施啊,就简单多了。
大家有没有觉得拥塞管理和拥塞避免与流量调节有点别扭啊?我开始看起来的时候,就总觉得他们在说一回事,有点犯迷糊,呵呵、、、其实,你了解了数据在端端之间的经过的每一个坑吭砍砍的就知道了,他们说的不是一回事,真都不是一回事,呵呵、、、、、考虑考虑!!
凌晨
2
点,整理完毕,有点多,大家慢慢的看,仔细的看。希望对大家有所帮助。
中间如果出现什么问题,还请大家多多指正
~~
谢谢!我会继续努力,争取写出更好的文章。
QQ
:418838267
Email
:
xuhuigang2004@126.com
。
大家有什么想法可以和我交流,让我们共同进步。
不好意思,差点忘记了,我还得给大家写上上述文章中设计到的映射表。
默认的映射关系表:
COS
到内部
DSCP
的映射关系表
COS
值
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
内部DSCP
值
|
0
|
8
|
16
|
24
|
32
|
40
|
48
|
56
|
IP
优先级到内部
DSCP
的映射关系表
IP
优先级
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
内部DSCP
值
|
0
|
8
|
16
|
24
|
32
|
40
|
48
|
56
|
内部
DSCP
到
COS
的映射关系表
内部DSCP
值
|
0~7
|
8~15
|
16~23
|
24~31
|
32~39
|
40~47
|
48~55
|
56~63
|
COS
值
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
本文出自 “ 不动的流星” 博客,请务必保留此出处 http://caihong.blog.51cto.com/277306/118481