这里简单介绍输入模块的lookup engine.
2.5 Lookup Engine
查找工作是交换机frame转发的核心,直接决定了整个系统throughput的大小。其任务是对所有输入的frame根据frame的目标地址,所属VLAN等信息,通过查找内部转发表,确定要在哪个端口或那几个端口转发此frame。具体系统结构如下图所示:
从图中可看出,Lookup Engine利用帧分类器的输出结果,在内部转发表中查找,输出output vector;而且Lookup Engine使用的内部Filtering Database是由运行在管理模块的Database Update Processes 和 Aging Process完成其具体的更新维护工作的。在output vector中Lookup Engine指明了此frame将转发到target ports还是local sink(由本地CPU处理),还是丢掉。Filtering Database更新的信息来源包括,对frame源地址的学习,GARP多播注册包,GARP VLAN注册包,以及用户配置信息等,Aging Process负责处理转发表项的老化问题。
交换机的查找引擎的设计主要分为集中式和分布式两种架构,其中集中式如下图所示:
整个系统中一个集中的查找引擎负责所有帧的查找工作,各个端口输入模块都将frame data放到集中的shared frame buffer中,而将其帧分类器的分类结果连同frame dscr转发到Central Lookup Engine中,Lookup Engine接收这些请求完成查找工作。这种集中式的方法相对比较简单,成本较低,由于一个引擎负担了整个系统所有帧的查表工作容易成为整个系统的瓶颈,但是由于芯片集成技术的提高也可以提供较高的throughput,因此可适用于中低端交换机。
另外一种分布式的查表引擎架构如下图所示:
从上图可以看出分布式模式下,每个输入端口都有各自的Lookup Engine和各自的转发表,因此整个系统的查表能力也是随输入端口的数量线性增长的,不会给系统带来查找转发上的瓶颈,但是整体成本也自然较高。另外和集中式的相比,由于分布式转发表的存在,系统也必须保证所有转发表之间的一致性。
待续
阅读(946) | 评论(0) | 转发(1) |