2 QoS实现技术
网络设备对转发报文进行QoS保障的处理,发生在报文从设备的一个接口进入,到从另一个接口出去的整个过程中。从技术上,这个过程按照处理顺序分为报文分类、拥塞管理、拥塞避免、流量监管与整形等部分。
2.1 报文分类
报文分类是QoS的基础,只有区分了不同的报文业务,才能进行分别处理及保障相应业务的服务质量。一般在网络边界,利用ACL等技术,根据物理接口、源地址、目的地址、MAC地址、IP协议或应用程序的端口号等依据对报文进行分类,并同时设置报文IP头的TOS字段作为报文的IP优先级;在网络的内部则可使用边缘设置好的IP优先级作为分类的标准,以提高网络的处理效率。
2.2 拥塞管理
网络资源总是有限的,当网上业务流量超过网络提供的能力时,即发生了拥塞。
在发生拥塞时,如何进行管理和控制呢?处理的方法是使用队列技术。在一个接口没有发生拥塞的时候,报文在到达接口后立即就被发送出去;在报文到达的速度超过接口发送报文的速度时,接口就发生了拥塞。拥塞管理就会将这些报文进行分类,送入不同的队列;而队列调度对不同优先级的报文进行分别处理,优先级高的报文会得到优先处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ,CQ,WFQ等,下面简单介绍各种队列技术的特性。
1)先进先出队列(FIFO)
顾名思义,先进先出队列(简称FIFO)不对报文进行分类,按报文到达接口的先后顺序让报文进入队列,在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
2)优先队列(PQ)
优先队列(简称PQ)对报文进行分类,将所有报文依据预先配置分成最多4类,按照先进先出的策略分别进入4个优先级不同的队列。在报文出队的时候,高优先级的队列相对于低优先级的队列具有绝对的优先权,只有高优先级队列报文发送完毕,较低优先级才得到发送,而且较低优先级的报文会在发生拥塞时被较高优先级的报文抢断。因此采用这种队列机制可以保证在网络发生拥塞的情况下,重要业务(高优先级)的数据传输得到绝对的优先传送。但在较高优先级的报文的速度总是大于接口的速度时,会使较低优先级的报文始终得不到发送的机会。
3)定制队列(CQ)
定制队列(简称CQ)根据设置将所有报文分成最多至17类,按照先进先出的策略分别进入1个系统队列和16个用户队列。在出队调度上,系统队列具有绝对的优先权,系统总是先处理完该队列后再用处理用户队列;16个用户队列占用出口带宽的比例可以设置,CQ按定义的比例使各队列之间在占用的接口带宽上满足管理员预先配置的比例关系。采用这种队列机制,当拥塞发生时,能保证不同业务根据比例获得相应的带宽占用,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽,避免PQ的一些缺点。另外,没有拥塞时,各业务可以根据流量中业务的相对比例充分使用接口带宽,提高资源利用率。
4)加权公平队列(WFQ)
加权公平队列(简称WFQ)对报文按流进行分类(相同源IP地址,目的IP地址,源端口号,目的端口号,协议号,TOS相同的报文属于同一个流),每一个流被分配到一个队列。在出队发送的时候,WFQ根据报文分类时设置的流的优先级(precedence)来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。在拥塞发生时,它能保证任何流量的流(业务),都能公平地得到一定的带宽占用,减少这个网络的时延,并当流(业务个数)的数目减少时,能自动增加现存流可占的带宽。
2.3 拥塞避免
由于网络资源有限,当拥塞发生时,按照传统的队列尾丢弃处理方式,对于TCP报文,会引发TCP的慢启动和拥塞避免机制,使TCP减少报文的发送。当同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为:TCP全局同步。这使得发向网络的报文流量总是忽大忽小,线路上的流量总在极少和饱满之间波动,造成网络利用率降低。
为了避免这种拥塞情况的发生,可以采用随机早期检测(RED)或加权随机早期检测(WRED)的丢弃策略。可避免使多个TCP连接同时降低发送速度,避免TCP的全局同步现象。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率,降低拥塞的发生。
丢弃策略对网络中TCP方式的应用有比较好的效果,但对网络中UDP数据产生的拥塞则不会有很大的改善。
2.4 流量监管和整形
流量监管的作用是限制进入网络的某一连接流量与突发,在报文满足一定的条件下,如某个连接的报文流量过大,流量监管就可以选择丢弃报文,或重新设置报文的优先级。通常是使用CAR来限制某类报文的流量,如限制FTP报文不能占用超过50%的网络带宽。如果需要限制流出网络的某一连接流量报文,以比较均匀的速度向外发送,则使用流量整形。
约定访问速率(CAR)——是一种带宽管理机制,利用令牌桶技术来实现带宽的分配和测量。网络管理员可以为不同的业务分配不同的带宽,定义业务占用的带宽超过分配额度时的处理策略,通过限制通过路由器某一端口的流量,很好地保证整个网络的QOS。CAR既可用于网络的入口也可用于网络的出口,可以报文分类完成的结果区分不同的业务流。另外,它还可以对报文的IP优先级根据需要加以重新标记。
在网络中不出现资源争用和拥塞时,并不需要复杂的QoS技术进行业务保障,因此网络发展的一个方面是提高网络传输带宽及资源利用率,以减少网络拥塞的出现。而当网络带宽不足发生拥塞时,就应综合考虑网络整体业务的需要,选择使用合适的QoS技术,以消除网络拥塞,提高网络资源利用率,迅速恢复网络及保证业务的正常运转。