主动网络结构的探讨及应用研究
2009-07-02朱亮
朱 亮
[摘要]描述一种新型的可编程网络体系结构主动网络。它可以根据网络应用和服务的要求,对网络进行编程,因而大大加快了新网络应用和服务的实现。介绍主动网络的概念和体系结构,探讨了三种有代表性的主动网络方案以及主动网络的应用研究。
[关键词]主动网络 体系结构
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0520070-02
一、问题的提出
随着计算机网络的迅速发展,层出不穷的各种新型应用向计算机网络提出了新的挑战。新的应用对网络业务提出了更高的要求,不仅要求更好的服务质量,同时要求新的网络
业务的出现。一些网络业务可以以现有的网络体系为基础,在端系统中实现,但大量的一些新的网络应用对网络层功能提出了更高的要求,如多媒体应用所需的IP多播业务和RSVP业务。按照IP网络的分层体系结构,链路层和应用层由于影响范围的有限,可以迅速地采用新技术和引进新的应用。而网络层是不同链路层技术以及高层应用之间相互交互的基础,一个新的网络协议从制定到大规模使用需要经历一个漫长的标准化和实施过程。同时IP包的固定格式使其很难满足不同网络应用对不同网络业务定制的要求,缺乏必要的灵活性。因此,网络层成为网络
新业务实现的瓶颈。
二、主动网络概述
主动网络(ActiveNetwork)概念是由美国国防部高级防御研究计划管理局(DARPA)在1995年提出的作为一种新型网络体系结构,它赋予网络中间节点一定的可编程能力,使用户可以根据需要定制网络,与传统的网络结构相比,主动网络更加灵活,它可以为网络协议、网络服务的快速升级和部署提供简单的网络平台。主动网络中包含许多由各种可能的网络技术连接起来的网络节点,这些网络节点并不一定都是主动节点。
主动网络的主动性体现在两个方面:一是被称为主动节点的网络中间节点(如路由器、交换机等),在每一个主动节点上都运行有节点操作系统(NodeoperatingSystem)和一个或多个执行环境(ExecutionEnvironme
Nts)。节点操作系统负责分配和调度节点的资源,包括链路带宽、周期CPU和存储器等。每一个执行环境实现了一个虚拟机来解释到达本节点的主动分组,不同的执行环境实现的是不同的虚拟机。用户通过主动应用(ActiveApplications)来获得主动网络提供的服务,主动应用通过对执行环境提供的虚拟机进行编程定制提供端到端的服务。它们不仅完成存储转发等网络级的功能,而且可以对包含数据和程序的所谓主动包进行计算;具有计算能力的网络节点从数据包接收后执行相应的程序,对该数据包进行处理(如路由选择、数据合并、数据解包等),然后将数据包发送给其他网络节点;二是用户根据网络应用和服务的要求可以对网络进行编程以完成这些计算。可编程的网络为今后的应用提供了更多的新途径,而这对传统网络来说是不可想象的。简单地说,主动网络是一种可编程的分组交换网络,通过各种主动技术和移动计算技术,使传统网络从被动的字节传送模式向更一般化的网络计算模式转换,提高网络传输速度、动态定制及网络新服务的能力。
三、主动网络的体系结构
DARPA定义了一个通用的主动网络体系结构,它包括一组通过不同网络技术连接的主动网络节点,每个主动节点运行一个节点操作系统和多个执行环境。
主动网络体系结构的关键在于主动节点(AN,ActiveNede)的体系结构,因为主动分组的执行都是在主动节点上进行的。DARPA所提出的主动节点体系结构对数据包的处理流程进行了描述。在这当中,用户可以根据主动网络提供的服务按照自己的需要来进行定制。主动网络工作组提出的主动节点的逻辑体系结构包括三个部分:即主动应用AA(Aetive Applieatio
n),执行环境EE(Exeeutive Environment)和节点操作系统Nodeos困odeOperatinnSystem)。节点操作系统类似于一般操作系统的内核,通过固定的端口,提供资源,为执行环境进行服务。执行环境实际上是一个与平台无关的可编程空间,多个执行环境可以运行在同一个主动节点上。执行环境为上层应用提供了各种各样的网络编程接口,用户通过执行环境访问节点资源。主动应用是一系列用户定义的程序,在主动节点上运行,来完成相应的功能。主动节点的体系结构如图1所示。
节点操作系统(Node0S)Node0S提供了执行环境所赖以生存的基本功能,它管理主动节点的资源(如传输、计算、存储等),并且在资源之间进行协调。
执行环境(EE)包括两部分:支持主动代码运行的虚拟机和主动网络用户可访问的编程接口。在通常情况下,主动代码的执行都会带来执行环境和主动节点的状态改变,也可能会导致执行环境发出其它包。
主动应用(AA)是在特定EE中运行的,实现某种特定用户业务的可执行代码。一个主动应用AA由一段程序代码(主动代码)和与主动代码相关的数据、状态参数等组成。通过EE对AA的调用和执行可以实现用户定制的网络服务。
四、有代表性的主动网络方案探讨
(一)ANTS
ANTS是1996年由MIT的David发展起来的。它是基于PC硬件,在Linux、Solaris操作系统平台上开发的,执行环境(EE)采用了JDKI.2,ANTS单元和ANTS代码使用JAVA语言。ANTS以移动代码、动态载入和缓存技术为基础,是构建和动态部署网络协议的工具。实现该系统的三个主要构件包括胶囊(主动分组)、主动节点和代码分配机制。
ANTS主动网络结构,为了避免重新为相关分组装载代码,ANTS节点Cache缓存最近使用的代码。在ANTS中,分组被称为一个单元,该单元传输和代码相关的参数。如果一个含有相关代码的分组通过节点时,节点先用分组的参数值初始化代码,然后再执行这些代码。反之,如果这些代码不在这个节点上,这个节点将向最近的上游节点请求代码。ANTS设计的目的是革新网络协议,它比现有的网络更有灵活的革新形式,具体体现在:(1)网络节点必须同时支持提供各种服务的网络协议。(2)结构必须支持动态布置新的协议,不会因为给节点配置新协议而必须离线操作。(3)只要双方同意,则不同的应用可将其特定的协议引入到网络层,从而将本应端节点完成的处理推入到网络由中间节点处理,这样用户可定制自己的网络环境,可网络结构进行编程,而不像在传统的网络环境下需要经过协议标准化、产品化、整个网络用户配置这样一个漫长的过程。
(二)PAN
在ANTS之后,麻省理工大学又开发出了PAN(Practical Active Network)主动网络系统,用于实现可实际使用的基于胶囊的主动网络。PAN的体系结构与ANTS非常类似,但它的性能更适于实际的应用。PAN为建立实际主动网络提供了一个基础,PAN目标是提供一个执行移动代码的执行环境并取得与传统网络可以相媲美的性能。PAN通过四种方法取得性能;在内核中处理单元;减少数据复制;缓存代码为立即执行;为单元提供灵活执行环境。PAN的体系结构可以支持多种移动代码系统。处理单元在内核,而不是在用户层,一个PAN节点避免复制数据在内核空间与用户空间之间。提供一致内存管理系统,PAN试用一种与ANTS相似的主动网络结构,一个胶囊含有要传输的数据和指向代码对象的指针,代码分配机制和ANTS一样。
(三)Switchware
Switchware系统是Pennsylvania大学研究和发展起来的。它是通过离散方式来实现主动网络的技术,该技术是一种将数据和程序分别独立的注入到主动节点上的传输法。用户先把定制好的处理程序代码注入到主动节点中。然后向传统网络一样去传输数据包;当数据包到达主动节点,节点对包头进行检查;如果分组是属于程序代码的类型,则节点经过安全检查后接收这个程序,将其存储起来;如果报文属于数据类型,则根据头部信息来选择相应
的已经驻留在节点中的程序来进行处理。Switchware实现主动网络的方法采用三层结构:主动报文(是一种含有移动代码报文,代替了传统的报文)、主动扩展(提供网络上的向量服务,这能被动态装载)、主路由设施。
四、主动网络应用
主动网络的应用,一类是针对现有网络体系结构下未圆满解决的技术难题,另一类是新颖别致的网络应用。属于前者的主要应用包括利用主动网络实现可靠的组播业务、主动拥塞控制、主动桥、主动差错恢复技术、用主动业务抵御拒绝性服务攻击等;属于后者的实例有Web缓存、主动虚拟网络管理、主动存储、实时多媒体编码中的主动业务、分布式仿真中的主动网络等。主动网络应用也可在传统的被动网络中用一般技术实现,但是IP技术最初的设计理念是把智能化的功能放置在通信的两个端点处,而负责传递信息的路由器只需要简单地根据路由表将数据包送入相应的队列中进行转发,相对而言被动网络将花费很长的时间和巨大的人力物力资源,主动网络使的新应用、新标准、新技术的采用变得迅速而简单,所具有的动态可控性为原来的网络应用带来了极大的性能提升空间。下面以组播、服务质量、流量缓存等为例简单介绍其应用。
(一)组播
网络必须处理多种应用程序流,诸如音频、视频、电话会议等。这些应用程序很多本质上就需要应用组播 ,传统的IP组播服务中,网络路由的拓扑、接收者的数量和位置这些细节信息对于用户都是透明的,如果只要求不可靠的组播,这种传统方法还可以满足条件。如果必须严格保证所有接收者都能够可靠地接收到组播数据,传统的组播方法就难以胜任。问题主要出在差错恢复方面。在组播过程中,只要数据在某点发生了问题,则组播树上位于该点下游的所有接收者收到的数据都存在问题,必须进行重传来纠正差错。传统的处理方式是所有接到错误数据的节点向发送端提出请求,由发送端分别进行重传。这种方法极大的浪费了网络资源,导致网络状况恶化,很容易引发更多的传输错误。在主动网络中,每个网络节点可以同其附近的节点建立联系,当一个网络节点收到的数据有问题时,它可以和同组的临近节点通信。如果临近节点收到的数据是正确的,它就直接从临近节点取得正确数据,而不必要求发送端重传数据。将主动网络技术应用于多播领域已被证明是行之有效的,具有主动性的内节点可以很好的解决目前存在于组播领域的诸多问题。研究人员已经提出了一种称为ARM(ActiveReliableMulticast)的差错恢复方案,它利用主动网络技术进行差错恢复,比较好的解决上述问题。ARM的主要内容是:利用主动技术的中间路由器来保护发送者和带宽免受不必要重复的NAK和重传数据的干扰,避免NAK阻塞;采用基于主动路由器的本地恢复方案,用于减少端到端广域网重传延时,并且将重传的任务分散到多个路由器,减少发送者的负担。特别地,ARM路由器能自动调整缓存状态,尽最大努力缓存数据;ARM路由器采用部分组播的方式限制数据重传的范围,从而减少网络带宽资源占用。
(二)服务质量
传统网络一般采用标准TCP协议的消息反馈式拥塞控制机制,但由于这种机制增加了总量分离拥塞点和端点的工作量,所以它仍不能很好地适应网络带宽和延迟时间的要求。网络延迟越大,则端点对网络是否拥塞作出正确判断所需时间也就越长。网络带宽越高,端点在检测拥塞是否发生的时间内向拥塞网络送出的数据包就越多。网络组件的带宽和延迟性能将直接影响拥塞现象持续时间。主动网络提出的通过数据包对路由器进行再编程的思想,在很大程度上克服了反馈式拥塞控制的缺点。首先,主动节点可以监视可用带宽,并利用其具有大容量缓冲区的优势,控制通道内数据流的传输速率,以尽量减少拥塞现象的发生。其次,主动网络在检测到拥塞现象时,网络拥塞控制机制能够自动的、有选择地丢弃某些相对不重要的消息单元体、数据包或信元,这一措施也能有效地降低发生拥塞现象的可能性,并防止拥塞发生范围的扩大。第三,对于具有不同传输优先级别的数据流,主动节点不仅能够从总体上控制它们的整体流速,甚至还能细化到控制每条数据流的流速,且控制限额速率还能随时进行动态调整。最后,在网络的拥塞发生点,通过执行主动程序能够进行数据转换(如压缩数据格式,改变数据传输路由等),从而避免拥塞向整个网络范围内扩大。
(三)流量缓存
Internet网络通信量的很大一部分都是C/S模式的网络应用中从服务器端送到客户端的信息,增强网络主机的Cache能力是减少网络通信量和延迟时间的有效措施。传统网络一般将大容量Cache建立在“特殊”的网络节点上,如网络边缘主机或网络内部关键的中转节点,以及与之相连接的桩(stub)节点等。如何尽可能地将信息缓存在靠近客户的位置是减少网络流量、提高响应速度的关键。在主动网络中可以将各个主动节点上的小规模的缓存器联合起来,根据实际情况自动作出调整,提供更有效的服务。为了减小数据传输时延,在传统的广域网络中常采用的技术就是网络缓存。具体讲,就是在一些网络关键节点缓存一些用户最近用过的数据,使得用户再访问这些数据时不需要再从远端的数据源获取数据,而从距自己较近的节点就能获取数据,从而减小数据传输时延及网络负荷。然而,这种网络缓存技术对于实时性应用的性能优化几乎起不到什么作用,在某种程度上讲,由于缓存了一些过时的信息,反而会降低应用的性能。一般地,通过Web页面缓存机制可以减小用户访问Web服务器的时延从而提高性能。但是,普通缓存技术在该系统中却不能起到什么作用。首先,普通Web页面缓存无法保证数据的实时性,因为各条信息更新周期不确定:第二,普通缓存技术无法动态调整数据缓存的大小和缓存数据的范围;第三,普通缓存没有考虑最佳缓存点问题,基本都是静态配置,这将会消耗过多的网络资源或影响网络整体性能。利用主动网络技术,可以使得网络具有自组织性。将不同的缓存策略注入到网络节点中去,通过分析统计通过该节点的数据特性,从而动态地调整缓存策略,如选置缓存点、确定缓存数据、设置缓存范围及大小,甚至变“拉”为“推”。
五、结束语
随着网络技术的不断发展和人类对网络的需求不断增加,网络快速适应各种变化的必要性显得越来越重要,未来的网络将必然需要网络设备和网络体系具有整体可延展性。由于受到传统发展中诸如标准一体化等各种因素的限制,Internet现有的体系结构不能达到这种发展要求。主动网络提出的初衷正是为了适应未来网络高度灵活性和动态扩展性的需要,同时还能在系统性能、安全性和互操作性等方面达到或超过现有网络的水平。如何将主动网络各方面的研究结合起来,在Internet上广泛应用,还是一个尚未攻破的难题。因为要将实验系统转换成为实际可应用的网络,不仅需要解决网络本身结构设计中存在的问题,还应考虑到网络的应用、专用
设备的设计等一系列相关的问题;同时还需要制定必需的规范标准。因此,面对主动网络提出的挑战,我们还必须作出不断的努力。
参考文献:
[1]陈鸿、黎忠文,主动网络基于分散式角色激活管理的访问控制[J].计算机技术与发展,2007,(9).
[2]樊玫玫、彭长根、汪学明,主动网络的一种安全体系结构[J].贵州大学学报(自然科学版),2007,(4).
[3]冯运仿,主动网络的安全问题研究[J].湖南理工学院学报(自然科学版),2007,(1).
[4]王建国、魏笔凡、李雅红,主动网络节点资源管理策略研究[J].西安工业大学学报,2007,(1).
[5]何峰赋,关于主动网络的研究及探讨[J].科技信息(学术版),2007,(5).
[6]马燕、邓毅、周润珍,一种主动网络管理系统结构的分析与研究[J].重庆师范大学学报(自然科学版),2006,(4).
[7]姚晓艳、段会川、刘伟,主动网络技术在网络管理中的应用研究[J].网络安全技术与应用,2006,(11).
[8]惠燕、潘煜、王建国,面向业务网络管理的分层结构研究[J].微计算机信息,2006,(27).
作者简介:
朱亮(1980-),女,江苏太仓人,苏州大学计算机科学与技术学院硕士生,苏州工业职业技术学院信息工程系教师。