位置:51电子网 » 技术资料 » 其它综合

一种基于通用操作系统的交换式路由器操作系统实现

发布时间:2008/5/28 0:00:00 访问次数:471

  摘 要:提出了一种将通用操作系统及其上层路由软件移植到交换式路由器平台上的方案。此方案可以向上屏蔽交换式路由器与传统的路由器体系结构上的区别,从而把通用操作系统及其上层路由软件移植到交换式路由器的平台上;同时兼顾数据通信和管理维护方面的需求,为上层路由软件提供了与传统路由器相同的接口,从而使基于通用操作系统的路由软件可以在不损失可升级性的条件下快速移植到交换式路由器上。实际应用证实了该方案具有良好的灵活性和兼容性。

  引 言

  路由器最重要的工作是根据ip包头和路由、过滤规则转发ip包。其他功能还包括路由表的维护与路由器系统的维护。实际上路由器可以看成是一种针对ip网络路由需求而设计的专用计算机。随着因特网所承载的业务的演进,因特网对于路由器性能的要求也日渐提高。在交换式路由器中,包转发等绝大多数处理已经转移到以端口为中心的硬件中完成,只有路由规则的生成与维护、网络管理和系统维护等比较复杂的工作仍由软件部分完成。

  实用中路由器所采用的操作系统可分为三大类:(1)以cisco的ios为代表的专用操作系统,常见于网络骨干节点;(2)以vxworks为代表的嵌

入式系统,常见于小型办公/家用接入设备上;(3)采用通用操作系统的则在骨干节点和用户接入设备上都有这类设备。例如juniper的路由产品就采用linux作为操作系统。通用操作系统上的各种路由、网管软件的开发已经有相当长时间,其功能、性能、稳定性和升级灵活性都很优秀,但这些软件仍然是针对传统路由器体系结构开发的,无法直接应用于新的路由器体系结构。本文提出在通用操作系统的驱动栈中插入一个中间层,这样对系统内核及和运行在其上的路由、网管等上层软件屏蔽了下层硬件的特殊性,从而把上层软件和高速硬件平台结合起来。该方案已经应用于高速边缘路由器中,并表现出了良好的实用性和可扩展性。

  1 交换式路由器与传统路由器在体系结构上的差别

  路由器工作在网络的第三层,其处理工作主要涵盖七层模型中的下三层,包括:物理接口处理、数据链路层处理、网络层的路由查找、转发以及队列管理等[1]。在传统的路由器体系结构中,硬件部分只实现物理层的处理,其余工作需要消耗系统计算资源完成:包括cpu周期、内存容量和总线带宽等,因此性能也受限于这些资源。而在交换式路由器中,路由处理机仅处理系统维护、路由表维护等少量工作,数据流的处理都由相对独立的硬件完成,不再受限于系统计算资源,因此其性能远优于传统路由器[2]。

  传统路由器和交换式路由器在体系结构方面有明显的区别:在传统路由器中,所有的物理接口直接挂接在总线上,内核可以通过总线直接访问这些接口;而在交换式路由器中,只有控制卡是直接挂接在总线上的,内核必须通过控制卡间接访问各个接口。这导致操作系统内核中代表网络接口的驱动对象的区别:在传统路由器中,内核存在若干网络设备驱动对象实例,每个实例通过总线直接维护一个端口,为内核及其上面的上层软件提供基本操作支持。而在交换式路由器中,普通的网络设备驱动对象无法直接维护端口,也无法支持系统内核和上层软件操作。因此,交换式路由器体系结构的特殊性使得通用操作系统和上层软件无法直接应用。针对这个问题有两种解决办法:(1)大量修改内核和各种相关软件的源代码以适应新的体系结构。这种做法存在开发工作量大、周期长、局限性强的缺点,丧失了使用通用操作系统的灵活性;(2)在驱动栈中增加一个中间层,支持普通网络驱动对象所能支持的一切操作,这样系统内核和上层软件基本上不必修改就可以运行在交换式路由器上。这就是本文所提出的中间层方案。这种方案克服了第一种方法的复杂性,在保持灵活性的基础上,可以快速地把通用操作系统及上层软件移植到交换式路由器的硬件平台上。

  2 中间层设计

  中间层功能包括数据通信和控制两个方面。从数据通信方面考虑,每个端口的功能都等效于传统路由器中的一个网络接口,所以每个物理端口在内核中都应有对应的网络驱动实例。这样才能支持各种上层软件运行,满足数据通信功能的需要。

  从控制功能方面考虑,对上要把每一种可能的逻辑操作映射成硬件操作;对下要能够和多个设备通信。上层应用包括系统维护、路由软件、网管软件;下层设备包括处理引擎和端口。控制功能的具体实现和硬件平台有关。考虑到多种应用可能同时操作一个硬件

  摘 要:提出了一种将通用操作系统及其上层路由软件移植到交换式路由器平台上的方案。此方案可以向上屏蔽交换式路由器与传统的路由器体系结构上的区别,从而把通用操作系统及其上层路由软件移植到交换式路由器的平台上;同时兼顾数据通信和管理维护方面的需求,为上层路由软件提供了与传统路由器相同的接口,从而使基于通用操作系统的路由软件可以在不损失可升级性的条件下快速移植到交换式路由器上。实际应用证实了该方案具有良好的灵活性和兼容性。

  引 言

  路由器最重要的工作是根据ip包头和路由、过滤规则转发ip包。其他功能还包括路由表的维护与路由器系统的维护。实际上路由器可以看成是一种针对ip网络路由需求而设计的专用计算机。随着因特网所承载的业务的演进,因特网对于路由器性能的要求也日渐提高。在交换式路由器中,包转发等绝大多数处理已经转移到以端口为中心的硬件中完成,只有路由规则的生成与维护、网络管理和系统维护等比较复杂的工作仍由软件部分完成。

  实用中路由器所采用的操作系统可分为三大类:(1)以cisco的ios为代表的专用操作系统,常见于网络骨干节点;(2)以vxworks为代表的嵌

入式系统,常见于小型办公/家用接入设备上;(3)采用通用操作系统的则在骨干节点和用户接入设备上都有这类设备。例如juniper的路由产品就采用linux作为操作系统。通用操作系统上的各种路由、网管软件的开发已经有相当长时间,其功能、性能、稳定性和升级灵活性都很优秀,但这些软件仍然是针对传统路由器体系结构开发的,无法直接应用于新的路由器体系结构。本文提出在通用操作系统的驱动栈中插入一个中间层,这样对系统内核及和运行在其上的路由、网管等上层软件屏蔽了下层硬件的特殊性,从而把上层软件和高速硬件平台结合起来。该方案已经应用于高速边缘路由器中,并表现出了良好的实用性和可扩展性。

  1 交换式路由器与传统路由器在体系结构上的差别

  路由器工作在网络的第三层,其处理工作主要涵盖七层模型中的下三层,包括:物理接口处理、数据链路层处理、网络层的路由查找、转发以及队列管理等[1]。在传统的路由器体系结构中,硬件部分只实现物理层的处理,其余工作需要消耗系统计算资源完成:包括cpu周期、内存容量和总线带宽等,因此性能也受限于这些资源。而在交换式路由器中,路由处理机仅处理系统维护、路由表维护等少量工作,数据流的处理都由相对独立的硬件完成,不再受限于系统计算资源,因此其性能远优于传统路由器[2]。

  传统路由器和交换式路由器在体系结构方面有明显的区别:在传统路由器中,所有的物理接口直接挂接在总线上,内核可以通过总线直接访问这些接口;而在交换式路由器中,只有控制卡是直接挂接在总线上的,内核必须通过控制卡间接访问各个接口。这导致操作系统内核中代表网络接口的驱动对象的区别:在传统路由器中,内核存在若干网络设备驱动对象实例,每个实例通过总线直接维护一个端口,为内核及其上面的上层软件提供基本操作支持。而在交换式路由器中,普通的网络设备驱动对象无法直接维护端口,也无法支持系统内核和上层软件操作。因此,交换式路由器体系结构的特殊性使得通用操作系统和上层软件无法直接应用。针对这个问题有两种解决办法:(1)大量修改内核和各种相关软件的源代码以适应新的体系结构。这种做法存在开发工作量大、周期长、局限性强的缺点,丧失了使用通用操作系统的灵活性;(2)在驱动栈中增加一个中间层,支持普通网络驱动对象所能支持的一切操作,这样系统内核和上层软件基本上不必修改就可以运行在交换式路由器上。这就是本文所提出的中间层方案。这种方案克服了第一种方法的复杂性,在保持灵活性的基础上,可以快速地把通用操作系统及上层软件移植到交换式路由器的硬件平台上。

  2 中间层设计

  中间层功能包括数据通信和控制两个方面。从数据通信方面考虑,每个端口的功能都等效于传统路由器中的一个网络接口,所以每个物理端口在内核中都应有对应的网络驱动实例。这样才能支持各种上层软件运行,满足数据通信功能的需要。

  从控制功能方面考虑,对上要把每一种可能的逻辑操作映射成硬件操作;对下要能够和多个设备通信。上层应用包括系统维护、路由软件、网管软件;下层设备包括处理引擎和端口。控制功能的具体实现和硬件平台有关。考虑到多种应用可能同时操作一个硬件

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!