高端路由器的流量控制机制


1. 概述

一些高端路由器上均具备流量控制机制,本篇文档主要介绍3个应用于高端路由器的流量控制机制:反压机制、队列机制、流量监管。

2. 流量控制机制

2.1 反压机制 报文经过上行接口板的处理之后,会送往交换网板进行交换。因为所有报文都要经过交换网的交换,所以交换网是决定路由器性能的最核心单元,交换网应该是“无阻塞”的,其转发容量是所有接口板的转发容量之和。然而,下行接口板性能可能没那么上行接口板那么强,因此,路由器上有“反压机制”,下行接口板来不及接收时,会发生反压,这样交换网板会通知上行接口板暂停发包,将报文进行缓存。其流程如图 2.1 所示。 这里写图片描述

                                  图 2.1 反压机制

2.2 队列机制

配合反压机制,在一些高端路由器的接口板上还有有一块被称为TM(Traffic Management)的部件,里面有高速缓存,在拥塞的情况下,数据包以队列的形式暂存在缓存里,TM再按一定的规则把数据包调度出队,送往交换网。如果装不下,还会按一定规则做报文丢弃。 如图 2.2 所示。 这里写图片描述

                                 图 2.2 队列机制

同理,报文经过交换网板送到下行接口板时,流量有可能超过出接口的发包能力,因此在下行接口板上也需要有TM芯片进行缓存和队列管理。在拥塞的情况下,数据包以队列的形式暂存在缓存里,下行TM再按一定的规则把数据包调度出队,送往出接口发送。

2.3 流量监管(CAR) 流量控制除了上述处理机制外,还有一种机制——流量监管,它能使流量不超过入/出接口允许的带宽,对于超出限制的那部分数据包会被直接丢弃。目前流量监管使用的技术是CAR(Committed Access Rate)。CAR是由包转发引擎PFE完成的,可以在上行PFE上执行,限制流量不超过入口带宽;也可以在下行PFE上执行,限制流量不超过出口带宽。如图 2.3 所示。

这里写图片描述

                                     图 2.3 流量监管

注意:上送CPU以及CPU下发的协议报文不经过CAR处理,这是为了避免当流量突发时协议报文被CAR丢弃(不过,为了避免对CPU的攻击,上送CPU的协议报文会经过CP-CAR处理)。

另外,上文在队列机制里提到的丢弃策略,在高端路由器里,为了防止其协议报文被丢弃,这些报文一般都设置为高服务等级,入高优先级队列,从而被优先调度,这样通常不会被丢弃。