目前的交换机/路由器设备基本上是属于存储转发方式(Store and Forwarding/LIFO),报文进入设备后,从一个芯片的缓存转发到其它芯片上的缓存(如果基于NP/CPU转发,就会多了一层CPU的队列转发),再从缓存中进入转发队列,并从目的地端口上转发出去;缓存的分配包括配置到端口的缓存及公共缓存。设备缓存的大小及队列调度能力会体现在对于拥塞的处理能力上。这种能力不仅仅表现在拥塞的处理上,而且报文在缓存中的排队效率也会影响应用层的性能。通过增加缓存可以减小拥塞时处理能力,但这方面会增加硬件成本。另外,过多的缓存会增加报文转发的时延,从而也会影响应用层的性能。缓存及漏斗的粒度控制也会对不同帧长度的报文转发存在不同的影响。缓存的分配与队列管理要基于效率与公平的原则,既要保证端口拥塞处理的性能需要,也要保证严重拥塞产生时不相关的端口被阻塞甚至得不到调度而饿死。
4 拥塞处理能力评估
如何评估测试设备的拥塞处理能力及队列调度能力?传统的测试方法包括RFC2544的Back-to-Back,RFC2889的Congestion Control Test,但这些传统的L2/L3测试手段首先只能是局部地测试设备的几个端口,另外测试结果也只是一个量值,无法将其跟真实的业务表现关联起来,而且难以与同类产品进行比较。