主动网络技术研究
发布时间:2006-10-14 7:58:10   收集提供:gaoqian
何炜 沈金龙
南京邮电学院 计算机科学与技术系
  摘 要 主动网络提出了一种允许配置更为高级的网络服务的新型通信体系结构,在主动网络中,经过其路由结点的分组可以在这些结点上运行由用户定制的服务代码,改变了传统网络只能在端系统执行服务运算的特点。利用主动网络提供的编程环境,我们更易于优化和扩展现有的协议,开发新的协议。本文描述了主动网络的体系结构框架以及两种主要实现方式,回顾并比较了现今已提出的几种主动网络的实验性设计实现。

  关键词 主动网络 移动代码 网络服务

1 引言

  网络技术的飞速发展正强烈影响并深刻改变着人们生活的方方面面,然而传统网络的功能单一而封闭,对网络内部结点的功能开发很少,服务只能在端系统实现,使现有服务的优化和扩展、新服务的开发等受到很大的限制。

  主动网络是一种区别于传统网络被动传输数据的全新网络计算模型,它的网络基础结构能够编程,即网络结点能够执行数据的计算功能,允许用户向网络结点插入定制的程序以便修改、存储或重定向网络中的数据流。主动网络在IP或其他标准化的层次上获得更大的灵活性,极大地改善了现有网络提供网络服务的能力,适应新应用的能力和对异常事件的反应能力。

  一般来说,主动网络从以下两方面体现它的“主动性”。首先,网络中的结点能够在用户数据上执行计算操作;其次,网络中的结点能够由具体用户根据具体要求来实现主动程序的定制。例如,对于一段视频多播会话,可以根据不同结点的带宽资源由主动结点决定相应的视频压缩算法,当接收端的接收带宽有限时,位于接收端上级的主动路由器就根据相应的信息选择使用高压缩比的压缩算法。

2 主动网络概述

2.1 体系结构

  主动网络由结点组成,结点间通过各种低层网络技术(如Ethernet、ATM、SDH、DWDM等)连接,传统的网络结点(路由器、交换机等)与主动网络结点一起工作在主动网络中。主动网络尽量兼容传统网络,主动结点也不是对所有经过它的包都进行“主动”处理,而只是根据一些特征来处理主动包,使主动网络的处理代价与传统网络具有可比性。

2.2 结点模型

  主动结点由路由器升级而成。每个主动结点主要包含一个结点操作系统(Node Operation System,NodeOS),一个或多个执行环境(Execution Environment,EE)。

  结点操作系统NodeOS工作在底层的物理资源(传输带宽、处理器、存储器等)和执行环境之间,主要进行资源管理、存取控制等,还负责基本的网络功能、代码或结点的安全等。NodeOS管理EE提出的访问请求,为EE屏蔽了底层的资源分配细节,也消除了EE之间的相互影响。

  执行环境EE类似于一般计算系统中的“Shell”程序,提供相应网络服务的可编程接口或虚拟机。EE主要完成主动报文的解释执行,各个EE之间相互独立。EE可以根据用户的参数提供与状态无关的简单服务,也可以实现强大的、与状态有关的程序语言的解释,或是介乎两者之间。

  主动应用(Active Application,AA)用于装载和执行嵌入代码,用户是通过AA向主动网络提出业务要求的。AA是一段程序,由主动结点上某特定的EE执行它,实现端到端的服务。

  NodeOS中的安全策略数据库(Security Policy Database)和安全执行引擎(Security Enforcement Engine)保障了结点的安全。当应用或者EE中的实体需要NodeOS提供服务时,EE向NodeOS发出请求消息,该请求消息中带有主体标识符用以指明请求的生成者。NodeOS收到消息后,将它提交给安全执行引擎,若通过了身份验证,再检查安全策略数据库,最后执行相应操作完成EE所请求的服务。

  此外, 每个结点上还有管理执行环境(Manage- ment Execution Enviroment,MgmtEE),用来控制结点的配置,维护结点的安全策略库。通常,MgmtEE在NodeOS中实现,特殊情况下也可以作为普通EE的一部分,但需要经过授权。

2.3 实现方式

  主动网络的实现可分为离散型和集成型。

  离散型是将主动程序的处理与数据代码的分发作为两种独立的机制。这里,主动程序将分别插入可编程的主动结点,与实际的数据包相分离,并可以在网络中传输。用户可以将程序发送至网络结点(交换机、路由器),在结点中被存储,然后当数据抵达结点时执行程序,对数据进行处理。数据中包含引导结点如何处理或处理哪些程序的信息。

  集成型是将一段程序与数据组成一个封装体,然后发送到网络,当这些包到达主动结点时,主动结点将解释这些程序,然后处理包内的数据。

  当然,也有将这两种实现方式相结合的方法,目前已被宾夕法尼亚大学开发的主动网络编程语言(Programming Language for Active Network,PLAN)采用。

3 主动网络实现方案概述

  主动网络的实现建立在对主动网络体系结构框架和主动网络使能技术的研究基础上,目前已有数所大学研究并实现了不同的主动网络体系结构,并开发出了能够成功运行主动应用程序的NodeOS和EE。还有些大学利用已开发出的主动网络基础结构来测试并实现了新的主动程序。

3.1 体系结构的发展

3.1.1 ANTS与PAN

  ANTS(Active Node Transport System)工具包是由麻省理工大学在封装囊(Capsule)模型的基础上开发出来的主动网络工具。每个封装囊包含一个以字节编码的Java程序和用户数据净荷。ANTS的网络应用程序接口包含一个扩充了ANTS类的Java虚拟机,执行对密封囊进行译码和解释的功能。

  首先,包识别出它们的类型和协议,当包抵达结点时,它检查自己的缓存,观察所需的代码是否出现。如果没有出现,则要求上一个结点为当前结点发送代码。当上一个结点收到它可以响应的负载请求时,它将马上发送。当前的结点收到负载请求时,它将这些负载加载到自己的缓存中,然后对等待的包执行所需的操作。这是一种有效的具有鲁棒性的机制,从而使结点能充分利用主动网络的优点。

  最近,麻省理工大学又开发出了PAN(Practi- cal Active Network)主动网络系统,用于实现可实际使用的基于封装囊的主动网络。PAN的体系结构与ANTS非常类似,但它的性能更适于实际的应用。PAN的体系结构可以支持多种移动代码系统。用主动结点内核执行本地代码以转发封装囊的试验表明,其发送1500字节的数据包时的速度可以使100Mbit/s的快速以太网达到饱和,而只比传统网络结点处理每个数据包的时间多出13%。

3.1.2 Switch Ware项目

  宾夕法尼亚大学开发的Switch Ware项目是另一个主动网络的实现原型,它向用户提供了两层编程接口。下面一层是主动分组层,主动分组与ANTS中的封装囊相类似,它们携带着少量程序代码用以激活由上一层,即主动扩展机制层所支持的驻留结点的服务例程。主动扩展机制层常驻结点内部,是由系统管理员或授权用户安装的。主动分组层是用PLAN和Calm语言开发的,而主动扩展机制层是由Calm语言开发。Calm程序能够被动态载入(按照需要从网络上或从本地磁盘安装)到Switch Ware主动结点。

3.1.3 PLANet

  PLAN语言是宾夕法尼亚大学开发的第一种主动分组语言,而后该大学又开发出了SNAP(Safe and Nimble Active Packets),这种语言被设计用来提高PLAN的灵活性、高效性及安全性。研究者旨在找到保护结点的整体性,并对结点提供保护及安全的资源控制的方法,以期建立第一个实际投入使用的主动分组系统。

  该大学的主动网络试验床叫做PLANet,是一种以主动网络为基础的“主动互联网”。它以100Mbit/s以太网为链路层,也可以用IP作为链路层。PLANet的早期开发使用PLAN语言,有相当大的延迟。智能包或网络基础结构中的额外代码,和因此而带来的计算开销的增长造成了网络性能的下降。与PLAN相比,SNAP则展示了其性能的优越性,在ping的延迟和吞吐量测量中与IP网络相当。

3.1.4 Bowman和CANE

  乔治亚大学研究开发出了Odyssey软件包,由Bowman主动网络操作系统和CANE执行环境两部分组成。Bowman建立在一个标准的传统操作系统基础上,作为实现CANE执行环境的平台。以插槽处理模型为基础的CANE执行环境包括两部分:一部分是固定的承载程序,它是一个运行时可重定位的模块,由主动结点管理器负责装载。承载程序为包提供处理平台,可以看作是一个全局操作的模板;另一部分是可变的嵌入程序,嵌入程序支持用户主动代码的定制。承载程序中供嵌入程序运行的特定点叫做插槽(Slot),用户将定制程序与这些插槽相连接。

3.1.5 其他

  除此之外,还有一些机构也参与了主动网络的研究。哥伦比亚大学研究开发了NetScript。NetScri- pt语言提供了一种处理分组流的脚本语言,NetScript代理能够较容易地被发送到远端系统,比如路由器和交换机,来使这些结点可编程。

  另外还有BBN技术组的智能包(Smart Packet),能够利用主动网络技术以助于网络的管理问题。

  在大多数情况下,主动网络的实现采用离散型实现机制,如ANTS和PAN。离散型机制的性能要优于集成型机制,因为在网络中传输的控制信息达到了最小化。PAN实现模型从本质上讲是ANTS实现模型的内核,它使用了本地代码,有较高的性能,但在资源管理和安全上却比较薄弱。可以这样说,要在主动网络上同时具有较高的性能、安全性和互操作性,关键在于要有一种短小的、可嵌入的、高性能的移动代码系统。

3.2 主动应用程序的发展

  主动网络得以实现新的网络服务能力,因为它们是基于软件的,而且主动程序可以下载到网络结点中。

  麻省理工学院在多播树中的主动路由器中实现了主动可靠多播(ARM)协议。路由器尽力而为地缓冲经过它的多播数据,通过在重传中进行本地多播,对NACK报文进行抑制。麻省理工大学还提出了一个用以提高在线拍卖服务性能的主动协议,这一主动解决方案通过在主动结点中嵌入代码,来实现过滤低价竞标价的功能。

  TASC和马萨诸塞州联合研制开发出了PANAMA(Protocol for Active Networking with Adap- tive Multicast Application)项目,该项目已被证明其所提供的主动服务具有较高的网络性能。这些主动服务包括差错恢复和分组汇聚,从而能够降低修复延迟,节省网络带宽。

  类似地,乔治亚大学利用CANEs实现了AER(Active Error Recovery)。AER利用一个安装在网络中的修复服务器来缓存包以响应重传请求,在接收端抑制冗余的NACK报文,检测分组丢失等。

  BBN技术组正在研究通过辅以智能包(Smart Packet)的主动技术来提高大型复杂网络的性能。利用主动网络的技术优势,管理决策点能够被移动到更靠近被管理结点,反馈信息也能够按照需要被控制和管理。

  在哥伦比亚大学,NetScript已经被建议使用在网络管理应用方面的研究开发中,比如远程网络监控,它使一个机构能够从远程终端监控网络及协议的性能与状态。NetScript还能够用来构造SNMP代理,或在ATM网络中增加可编程能力以便于发送信号。

  在肯塔基大学,与多播服务在逻辑上相反的汇聚播(Concast)服务,和允许客户端按照特定程序的设置约束来动态识别一个或多个服务器的任意播(Anycast)服务已经被研究开发。

4 结束语

  主动网络作为一种动态的运行环境,它支持大量的网络服务,同时也允许在网络体系结构中加入新设计的服务。主动网络技术的研究得到了许多关注,同时它在安全、路由、资源分配、网络管理服务以及移动性等方面还有待进一步地研究,且有许多研究成果已经被运用到主动网络的演示中,虽然目前主动网络尚在研究试验阶段,未曾有实际网络投入使用,但主动网络技术的可行性已经开始改变我们对计算机网络的概念,它对未来技术的形成起到重要的推动作用。

  何 炜,南京邮电学院科学与技术系计算机应用技术专业2001级研究生,研究方向为计算机通信与网间互连。

  沈金龙,南京邮电学院科学与技术系计算机应用技术专业教授,研究方向为计算机通信与网间互连、多媒体通信。

摘自《中国数据通信》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50