论文部分内容阅读
三层交换技术将传统的二层转发和路由技术结合起来,特别适合汇聚层的需要。它拥有二层交换的高速数据处理能力,交换带宽可达30Gbps以上,同时能像路由器那样处理三层报文。虽然与骨干网上的路由器相比,三层交换机没有提供丰富的物理接口类型,没有支持那么完善的路由协议,但汇聚层在这两方面的需求并不苛刻。更为重要的是,三层交换机拥有的高交换带宽,更能满足汇聚层对数据交换能力的需要。三层交换机的常见交换架构有集中式和分布式两种。传统的集中式交换架构由于受到主控板三层交换芯片及CPU处理能力的限制,在处理三层报文及跨板转发方面的性能不尽人意。但随着高性能转发芯片的出现及TCAM的引入,主控板的转发速度有了显著提高,能够满足大多数汇聚层的需求。相对于那些分布式交换架构而言,集中式交换架构的接口板成本很低,这更是它的优势所在。本文讲述了我在北京港湾网络有限公司实习时所参与开发的集中式三层交换机。首先介绍了此三层交换机中的硬件转发芯片,包括G750系列转发芯片、芯片与CPU的接口以及芯片处理数据报文的主要流程。接下来讲述了此交换机中供硬件转发使用的存储结构,包括TCAM、RAM及二者的协作关系。本文并没有详细介绍各芯片处理数据报文的过程,以及芯片在转发数据报文时所用到的数据结构,而是重点讲述了接口管理和内存管理两个软件模块的设计及实现。它们都是交换机中重要的管理模块,它们的设计借鉴了Linux内核以及面向对象的思想,具有较强的可扩展性和可移植性。接口管理模块管理着交换机中的所有接口实例,包括它们的属性、能力以及相互间的关系。它通过命令行向用户提供强大的接口管理命令,同时将接口变化事件通知到相关模块并正确设置硬件,以确保硬件的正确行为。内存管理模块借鉴了Linux中slab内存管理思想。此模块高效地管理着用户可支配的内存,并通过引入了内存使用信息统计功能,降低了内存泄露的跟踪定位难度。