引 言
路由器最重要的工作是根据IP包头和路由、过滤规则转发IP包 。其他功能还包括路由表的维护与路由器系统的维护 。实际上路由器可以看成是一种针对IP网络路由需求而设计的专用计算机 。随着因特网所承载的业务的演进,因特网对于路由器性能的要求也日渐提高 。在交换式路由器中,包转发等绝大多数处理已经转移到以端口为中心的硬件中完成,只有路由规则的生成与维护、网络治理和系统维护等比较复杂的工作仍由软件部分完成 。
实用中路由器所采用的操作系统可分为三大类:(1)以Cisco的IOS为代表的专用操作系统,常见于网络骨干节点;(2)以VxWorks为代表的嵌入式系统,常见于小型办公/家用接入设备上;(3)采用通用操作系统的则在骨干节点和用户接入设备上都有这类设备 。例如Juniper的路由产品就采用Linux作为操作系统 。通用操作系统上的各种路由、网管软件的开发已经有相当长时间,其功能、性能、稳定性和升级灵活性都很优秀,但这些软件仍然是针对传统路由器体系结构开发的,无法直接应用于新的路由器体系结构 。本文提出在通用操作系统的驱动栈中插入一个中间层,这样对系统内核及和运行在其上的路由、网管等上层软件屏蔽了下层硬件的非凡性,从而把上层软件和高速硬件平台结合起来 。该方案已经应用于高速边缘路由器中,并表现出了良好的实用性和可扩展性 。
1 交换式路由器与传统路由器在体系结构上的差别
路由器工作在网络的第三层,其处理工作主要涵盖七层模型中的下三层,包括:物理接口处理、数据链路层处理、网络层的路由查找、转发以及队列治理等[1] 。在传统的路由器体系结构中,硬件部分只实现物理层的处理,其余工作需要消耗系统计算资源完成:包括CPU周期、内存容量和总线带宽等,因此性能也受限于这些资源 。而在交换式路由器中,路由处理机仅处理系统维护、路由表维护等少量工作,数据流的处理都由相对独立的硬件完成,不再受限于系统计算资源,因此其性能远优于传统路由器[2] 。如图1所示 。
传统路由器和交换式路由器在体系结构方面有明显的区别:在传统路由器中,所有的物理接口直接挂接在总线上,内核可以通过总线直接访问这些接口;而在交换式路由器中,只有控制卡是直接挂接在总线上的,内核必须通过控制卡间接访问各个接口 。这导致操作系统内核中代表网络接口的驱动对象的区别:在传统路由器中,内核存在若干网络设备驱动对象实例,每个实例通过总线直接维护一个端口,为内核及其上面的上层软件提供基本操作支持 。而在交换式路由器中,普通的网络设备驱动对象无法直接维护端口,也无法支持系统内核和上层软件操作 。因此,交换式路由器体系结构的非凡性使得通用操作系统和上层软件无法直接应用 。针对这个问题有两种解决办法:(1)大量修改内核和各种相关软件的源代码以适应新的体系结构 。这种做法存在开发工作量大、周期长、局限性强的缺点,丧失了使用通用操作系统的灵活性;(2)在驱动栈中增加一个中间层,支持普通网络驱动对象所能支持的一切操作,这样系统内核和上层软件基本上不必修改就可以运行在交换式路由器上 。这就是本文所提出的中间层方案 。这种方案克服了第一种方法的复杂性,在保持灵活性的基础上,可以快速地把通用操作系统及上层软件移植到交换式路由器的硬件平台上 。
2 中间层设计
中间层功能包括数据通信和控制两个方面 。从数据通信方面考虑,每个端口的功能都等效于传统路由器中的一个网络接口,所以每个物理端口在内核中都应有对应的网络驱动实例 。这样才能支持各种上层软件运行,满足数据通信功能的需要 。
推荐阅读
- 上海贝尔阿尔卡特7670路由交换平台 版本2.2
- CISCO路由器与交换机口令回复步骤
- 波长交换路由器的特点和应用
- MPLS VPN 路由器与交换机选购指南
- 基于软交换路由技术的探讨
- 如何用交换路由器提升宽带差异服务
- 三层交换机和路由器的区别
- 浅谈多层交换路由器中的架构演进
- MPLS交换路由器的设计与实现
- 什么是定向流量包和通用流量包