计算机研究与发展
JOURNAL OF COMPUTER RESEARCH AND DEVELOPMENT
1999年 第36卷 第9期 Vol.36 No.9 1999



> 
一个主动式路由器操作系统：AOSR
马洪军　张尧学　陈　桦　赵艳标
摘　要　主动式网络(active network)是为解决当前网络基础设施适应性及灵活性差、服务更新困难提出的一种全新的网络概念.它是一种可编程的计算机网络.用户可以通过在网络节点运行自己的定制程序，来实现对“流”经它的用户数据的“特别”处理.文中提出并设计了一个新的路由器操作系统，即主动式路由器操作系统AOSR.它以最大限度地满足用户服务质量和提高系统资源利用率为目标，能在高速、安全地转发数据包的同时，为用户提供一个定制程序加载、数据信息定制处理的主动式网络节点运算平台.
关键词　路由器，操作系统，服务质量
中图法分类号　TP316.2； TP393
AN ACTIVE OPERATING SYSTEM FOR ROUTER
MA Hong-Jun, ZHANG Yao-Xue, CHEN Hua, and ZHAO Yan-Biao
(Department of Computer Science & Technology, Tsinghua university, Beijing 100084)
Abstract　Active network is a novel network conception, which can solve the inadaptability and inflexibility of network infrastructure, innovating network services easy and speedily. Active network is a programmable network which users can inject customized programs into active nodes and run it to perform customized computation on the user's, messages passing through them. The paper here introduces a new operating system, an Active Operating System for Router (AOSR), which can satisfy the Quality of Service (QoS) required by applications as much as possible and improve resource utilization of network node. It provides an environment for active nodes for loading and running the user's customized programs, while forwarding the data packets safely and rapidly.
Key words　router, operating system, Quality of Service
1　引言
　　路由器操作系统是当前网络互连的关键设备路由器的核心软件.它主要负责路由器资源的管理与分配、数据包的寻址及转发、数据传输的安全与保密、以及不同物理网络(PSDN、DDN、ISDN、以太网等)间的无缝连接.
　　路由器操作系统大致可以分为两类，一类是Cisco，Bay，3Com等网络公司为自己的路由器产品推出的专用路由器操作系统，如Cisco公司的因特网操作系统IOS(internet operating system)； 另一类是以DOS，UNIX，Windows等通用操作系统或pSOS等嵌入式实时操作系统为平台，在其上增加了相应的数据包路由、安全、转发等功能模块而实现的通用路由器操作系统，如UNIX+gated(gated是美国Corenell university在UNIX基础上开发的寻径程序).前者对应于专用的总线结构和硬件技术，并且它们的各个组成部分按照路由器的工作特点进行了整体优化，因而具有很高数据转发速度和效率.后者则由于受原操作系统的制约，数据的转发速度和效率相对较低.但在网络功能方面，二者并无多少本质的不同.
　　近年来，随着因特网规模的不断扩大，传统的以传输、转发数据为主的路由器操作系统越来越无法满足用户不断发展的集成服务需求［1］.如何解决这类问题是因特网和传统路由器所面临的严重问题之一.
　　本文结合清华大学和桑达公司联合开发成功的SED-08路由器［2］操作系统，提出并设计了一种主动式路由器操作系统AOSR(active operating system for router).该系统除了具有传统的路由器操作系统的功能之外，还能根据应用的服务质量［3］(延迟、抖动、失真率、速率、优先级、服务类型等)要求，从有关端系统或服务器中下载并执行相应定制程序以实现对数据的按需处理，从而更好地满足应用需求，提高网络系统的满意度［4］.
2　主动式网络与主动式路由器
　　主动式网络(active network)是以应用为中心，根据应用需要而调配网络软、硬件资源的计算模式.当前被广泛应用的因特网，除了存在着地址空间不足和缺乏有效管理方式等问题外，还存在着在现有共享网络结构中无法根据应用需要增加新的技术和标准(如多点广播、RSVP等)、无法容纳新的服务、多协议层冗余处理而导致的性能降低等问题.主动式网络就是为解决这些问题而提出的［5］.主动式路由器是构成主动式网络的关键设备.它可和传统路由器一起工作，并能根据用户或应用的要求，动态和加载程序来实现对数据流的相应处理.图1是主动式网络数据流程示例.

图1　主动式网络数据流程示意图
　　主动式路由器有两种程序加载模式：即可编程模式(programming switch approach)和包封装模式(capsule approach).在可编程模式下，程序的加载一般由管理员控制，它和数据的处理是分开的，并且数据包格式可以和现在的兼容.而在包封装模式下，数据包的格式需作相应改变，其内同时封装着程序和数据.当它们“流”过主动式路由器时，包内程序被加载、执行.
3　主动式路由器操作系统AOSR
　　AOSR是为SED-08系列路由器设计的新一代主动式路由器操作系统，其硬件平台是Pentium处理器芯片.它除了支持传统路由器的高速数据转发外，还具有安全管理、服务质量(QoS)控制、程序动态加载(可编程)等主动式功能.另外，为了适应协议栈、物理网络的多样性，它还支持开放式网络接口，以保证路由器系统的开放性.为完成以上功能，AOSR包括了微内核、命令接口界面、协议软件、开放网络接口、安全管理、QoS控制、可编程支持、文件管理等模块，如图2所示.

图2　主动式路由器操作系统结构
　　路由器操作系统的内存管理、进程(线程)调度以及时钟管理等方面与传统的多任务操作系统有许多相似之处，AOSR在这几部分的设计与实现方面主要借鉴了LINUX和UNIX系统的内核实现技术.
　　下面将重点介绍AOSR系统主要模块的基本功能和原理，有关实现的具体细节则在另文中论述.
3.1　微内核
　　微内核提供系统基本的资源管理及调度服务.
　　路由器的资源主要包括CPU、内存、缓冲区、网卡、网络输入输出端口等物理资源和进程、线程、队列、时钟等逻辑资源.下面分别介绍CPU、缓冲区以及网络输入输出端口的管理与分配机制.
3.1.1　CPU管理与调度
　　在本系统中，CPU的运算能力用CPU处理时间来衡量，并采用两级方法进行分配和调度.
　　第一级是任务(进程)级.这一级将CPU处理时间(除去系统固有开销)在各协议栈间(TCP/IP栈、SPX/IPX栈)进行分配、调度.分配比例可以由系统管理员进行策略调整，高度采用了抢先式时间片轮询方式.
　　第二级是包调度级.这一级是在任务级基础上实现的.它将分配给各协议栈的时间片在各数据流间进行分配、调度.这种分配是在QoS协商时完成的，其高度采用了加权公平队列(weighted fair queuing)等技术［1］.
3.1.2　数据包缓冲区
　　为了提高路由器的性能，加快数据包的转发，路由器中大量采用数据缓冲技术.AOSR在LINUX系统的段页式内存管理基础上，创建了一个动态自适应数据包缓冲区，以存储和转发数据包及缓存装有可执行程序的数据包.
　　缓冲区采用链栈方式管理.系统在初始化时为每一类型的网络接口创建一个数据包缓冲区链栈.缓冲区的大小由网络接口的最大传输单元(MTV)决定，缓冲区的数量由系统的可用内存空间和该类缓冲区的使用情况共同决定.
　　属于同一个数据流缓冲区边接到一个具有一个优先级的队列，即该数据流的接收队列.AOSR通过对接收队列长度的控制以实现对数据流的策略控制.
3.1.3　网络输入输出端口管理
　　AOSR采用端口开关表来管理输入输出端口(一个网卡包含一个或几个输入输出端口).开关表的每一项对应一个输入输出端口的控制结构.该结构记录着相应端口名称、状态、操作函数(如：初始化函数、打开函数、关闭函数、收发函数、状态统计函数等)、协议栈地址、输出队列等.当对一个端口进行操作时，就从端口开关表中查找到该端口的控制结构并从中调用相应的操作函数.
3.2　命令接口界面
　　命令接口界面提供了一个与Cisco IOS命令兼容的命令集，用以对路由器进行监控、管理和配置.
3.3　协议栈软件
　　AOSR提供了多协议栈支持机制.任一协议栈可通过和开放网络接口的链接而成为系统的一部分.当前AOSR支持TCP/IP，SPX/IPX两个协议栈.实现的相关协议有：IP,IPX,ICMP,PPP,LCP,PAP,ARP,RIP,OSPF,TCP,UDP,SNMP,TELNET,RADIUS等在内的58个RFC协议.
3.4　开放网络接口
　　开放网络接口分为两个部分，即和各种物理网络驱动程序链接的界面以及和高层协议栈链接的界面.其链接原理参与了Netware网络操作的ODI(开放工数据链路接口)技术［6］.该接口不但提供了针对各种通用数据链路层协议(如802.3、HDLC等)开发的检测、识别和链接接口调用，以链接各种不同的物理网卡，还提供了识别和链接不同协议栈的各种服务，以方便协议栈的安装.这样，它既可链接各种通用网卡，接收并转发驱动程序传递来的数据包到相应协议栈，又可为高层协议提供服务，将它们的报文识别后交相应驱动程序发送.
3.5　驱动程序
　　驱动程序是路由操作系统中最为复杂的组成部分之一.AOSR理论上支持各种和PCI总线兼容的网卡驱动程序.目前，AOSR主要支持IEEE802.3以太网驱动程序、IEEE802.5令牌环网驱动程序、PPP(点到点协议)同步协议及其网卡驱动程序等.驱动程序负责接收和发送报文并完成相应的出错处理.
3.6　QoS控制
　　QoS控制模块负责接收、转发和处理有关服务质量控制的各种数据及程序包，包括QoS协商、资源预约与分配以及QoS监视等.
3.6.1　QoS协调及资源预约
　　QoS控制模块接收并分析来自端系统或其他路由器系统的QoS参数包.这些包中带有用户要求的QoS参数(延迟、抖动、丢失率、平均速率、峰值速率等)、网络资源变化情况或相应的处理程序等.
　　如果是QoS参数，则将它映射为对系统资源(CPU、内存空间、缓冲区、带宽)的需求并向系统微内核进行预约.如果当前资源能满足QoS需求，则准许连接建立；否则，连接失败.然后，向用户提示当前的资源状况，以便用户重新协商请求资源.有关QoS协商的详细讨论，请参考文献［3］.
　　如果是待执行程序包，则将该程序存放入程序包缓冲区，并对它们进行组装、连接和重定位后，交调度程序高度执行.
3.6.2　QoS监视
　　QoS监控部分是一个后台线程.它有两个作用：
　　(1) 动态监视每个应用所拥有的资源是否发生了变化(如资源丢失、失效等).如果发现其资源低于保证用户要求的QoS的最低限度时，则向原请求者报告资源变化情况，并由原请求者自行决定是中止当前行为，还是对QoS进行再协商；
　　(2) 动态监视应用的变化，如应用的中止、应用传送数据的速率提高或降低等.如果一个应用中止或其数据速率变化超限，则启动QoS协商程序，以重新调整和分配资源.
3.7　安全管理
　　AOSR提供了防火墙、存取管理等安全控制机制.
3.7.1　防火墙
　　AOSR实现的是网络级(IP层)防火墙.它能根据数据包的源地址、目的地址、源端口、目的端口及协议类型等信息对通过的数据包进行检查和过滤，从而禁止对指定主机、服务器的访问或防止指定用户信息的外出.
3.7.2　访问控制
　　AOSR提供了登录认证、程序加载认证等安全控制机制，以防止用户对系统重要信息、资源等进行非法访问、占用、修改甚至破坏.
　　登录认证包括本地认证和安全服务器的远程认证两种.
　　本地认证将用户输入的帐号和口令与本地路由器中的数据库中的值作比较.如果一致，则认证通过，并授权用户的操作范围.如果不一致，则拒绝登录.
　　远程认证将用户输入的帐号和口令经路由器转发给安全认证服务器，由认证服务器进行确认，并给出授权的操作范围.AOSR的远程认证实现了用户拨入服务远程认证协议(RADIUS).
　　程序加载认证是程序加载时，对加载程序的用户和应用进行的双重确认.一般说来，加载程序不但要占用系统资源，而且可能会引起系统崩溃.因此，路由器必须对进行程序加载的用户和应用进行严格的限制和认证.目前，AOSR的程序加载仅限于网络管理员和QoS协商过程中.
3.8　可编程交换机制
　　如前面所述，主动式路由器有两种程序加载模式.鉴于第一种模式能在保持和现在的数据包格式同时，提高网络的智能，满足用户对数据特殊处理要求，AOSR实现了对第一种模式的支持.主要支持内容包括：
　　(1) 对编程的支持.AOSR提供数据包操作等原语，以供编写程序时调用.要加载的程序应编译成可动态连接、可重定位的目标代码.
　　(2) 对程序加载的支持.AOSR具有资源预约、程序加载认证、动态连入和删除定制程序函数模块等功能.
4　结束语
　　路由器操作系统是一种为网络间数据包转发而设计的专用操作系统.早期的路由器操作系统只要求具有高的数据转发速率和路由管理功能.随着网络复杂性以及分布式多媒体应用的急剧增加，高安全性、可扩展性、服务质量QoS保证等新的要求出现了，这就激发了能综合考虑和调配网络系统资源的主动式路由器概念的出现.SED-08系列路由器的操作系统(AOSR)就是一个具有主动功能的路由器操作系统.它已安装于SED-08A路由器中投入市场.由于主动式网络是一个全新的概念，AOSR的“主动”功能也还比较弱，我们正在加强主动式网络的互操作性以及资源的安全控制和管理等方面的研究.
注：本课题得到“八六三”高技术计划、国家教委跨世纪人才基金、日本富士通研究所基金资助.
作者简介：马洪军，男，1966年10月生，博士研究生，研究方向为路由器操作系统.
张尧学，男，1956年1月生，博士生导师，研究方向为网络互连、操作系统、服务质量控制等.
陈桦，男，1972年11月生，博士研究生，研究方向为服务质量控制.
赵艳标，男，1972年12月生，硕士，助教，研究方向为网络互连等.
作者单位：清华大学计算机科学与技术系　北京　100084
参考文献
1　　Steinmetz R, Nahrstedt K. Multimedia Computing, Communications & Applications. Beijing: Tsinghua University Press, 1996
2　　张尧学，赵艳标，盖峰. SED-08路由器. 高技术通讯，1997, 7(10): 32～34
　　　(Zhang Yaoxue, Zhao Yanbiao, Gai Feng. SED-08 router. High Technology Letters(in Chinese), 1997, 7(10): 32～34)
3　　陈桦，张尧学，马洪军.多媒体服务质量(QoS)协商控制系统.清华大学学报，1998, 38(s1): 36～39
　　　(Chen Hua, Zhang Yaoxue, Ma Hongjun. Multimedia quality-of-service(QoS) negotiation manager system. Journal of Tsinghua University(in Chinese), 1998, 38(s1): 36～39)
4　　Shenker S. Fundamental design issues for the future internet. IEEE Journal on Selected Areas in Communications, 1995, 13(7): 1176～1188
5　　Tennenhouse D, Smith J, Sincoskie W et al. A survey of active network research. IEEE Communications Magazine, 1997, 35(1): 80～86
6　　Clark D, Shenker S, Zhang L. Supporting real-time applications in an integrated services packet network: Architecture and mechanism. In: Proc SIGCOMM ′92， 1992. 14～26 
原稿收到日期：1997-11-25；修改稿收到日期：1999-03-08.
