一、简介:

Qos(Quality of Service,服务质量),指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。------摘自百度百科

通俗点讲就是有许多的报文在传输,重要性高的报文要优先传输,可靠传输,而重要性不高的报文可以靠后传输。大家也可以参考我的交换机笔记的2.4节的翻译。

二、在说原理前先弄懂交换机中的队列和优先级。

在交换机中将队列分成IEEE的即VLAN的队列(二层)和IP的队列(三层)当然也有带IP头和VLAN头的双重报文。如:某个报文是传输到IP地址为14.215.55.226的地方并且它的VLAN ID 为1234,那么它会发送给VLANID为1234的VLAN域内。优先级按报文类型可以分成在二层中的在802.1Q头中的0x8100标记后的3位(即2^3=8个优先级),以及在IP报文的DiffServ位2^6(64)个优先级。

也就是说:二层VLAN报文有8个优先级,三层IP报文有64个但是有些是有特殊用途的。

三、那么优先级和队列有什么关系呢?

可以这样理解在交换机芯片内部开辟了一定的空间,如有4块空间每块空间前面有一个判断电路,用于将不同的优先级放入不同的空间中。好比高速公路上的路一样,速度不同的车被放入了不同的通道。而交换机中的空间数一般有4个或8个,即与0x8100的优先级正好匹配的8个优先级也有只有它的一半的4个优先级,一半的做法是将0和1放入0队列,2和3放入1队列,4和5放入2队列,6和7放入3队列。这样就可以将8个优先级映射成4个。同理IP的64个优先级也可以映射成4个或8个。

既然是映射那么就会有进入交换机之前帧的优先级称为帧优先级(Fpri)和在交换机中的优先级(Qpri),所以如果换了芯片即将可以映射成8个的改成4个,需要修改Qpri的映射关系即可。

既然可以修改Qpri的映射关系,那么是否可以将帧的优先级改变呢?

答案是肯定的,比如入口优先级是7优先级最高了,我将其优先级覆盖成0,那么也是可以的,等于说是优先级最高的帧被改成优先级最低的了。

理解了上述的概念那么基本上概括就是,开启QoS后,一个帧进入之前的优先级(Fpri)是4,进入之后通过映射在有8个队列的交换机芯片中它被映射到队列4,而在只有4个队列的交换机芯片中被映射成了2(01=0,23=1,45=2,67=3),它的等级其实没有多大的变化都是两种队列中的中间位置。在IP报文中同理只是将64个分成了8份或4份的区别。

四、接下来就是队列的本质是什么?

队列其实就是存储桶,大家可以百度参考一下,大致内容就是帧在进入交换机后没有被处理时会被放入缓存区,而不是被丢弃当然如果满了也是会丢弃的。

五、调度机制

调度机制分成3种,一种是严格优先级,一种是权重均衡,一种是两者的混合模式。

严格优先级:高优先级的报文完全传输完毕之后才会传输低优先级的报文它的优点是可以将优先级高的报文满带宽地优先传输,可以保证使用高优先报文的应用不会延时和阻塞。而如果它一直占有带宽造成阻塞时会导致低优先级的报文被饿死,因为低优先级它的存储桶满了之后会丢弃报文。

权重均衡:将优先级不同的报文放入不同的队列之后,按一定的比例传输报文。这样可以以较低的重要性高报文的延时来确保低优先级的报文不被很快地饿死。它的队列传输的比例可以参考我的交换机笔记中的2.6节。4个队列的默认权重比值为8:4:2:1。8个的为33:25:17:12:6:3:2:1。可以看出比例有规律,8个的更细。

混合模式:对高优先级的某些位严格优先级对剩下的执行权重均衡。