第六章主动网络技术6.1介绍6.1.1提出DARPA的1994-1995网络未来发展方向。
希望把只有传输作用的网络提升为分布式计算环境。
6.1.2相关研究Massachusetts Institute of Technology:ants;University of Pennsylvania:Switch Ware;Columbia University:NetSript;University of Arizona:Liquid;6.2基本思想6.2.1传统网络的特点●传统网络只是将信息从一个端系统传送到另外一个;●对网络计算的要求很低,包交换网络中仅仅处理报头,面向连接的网络中只处理信令。
6.2.2传统网络的缺点●漫长的标准化过程,减缓了新业务进入市场的进程;●对客户化业务的支持较弱。
6.2.3主动网络的特点●网络本身具有计算能力;●可以在网络中传输程序代码;●网络中的直接处理传输中的用户数据;●用户可以将程序安装到网络中去,使结点能够根据具体用户和具体应用的要求来执行相应的操作;●将被动的信息传输网络提升为一个分布式计算环境。
6.2.4主动网络的优点●在网络中的关键点上,可以实现与用户和应用相关的功能,从而实现客户化业务;●由用户驱动新业务的出现。
与由供应商驱动的标准化过程比较,大大缩短了新业务进入市场的时间;●与只能传输固定数据格式的传统网络比较,代码传输更易根据用户的需求,来支持丰富的协议。
6.2.5主动网络的分类6.2.5.1离散方法程序的装载和执行分离;由包头指定不同的程序来处理不同用户或不同应用的数据。
6.2.5.2集成方法用密封囊代替传统网络中的包。
密封囊:程序和数据。
内部原语处理密封囊中的数据;外部方法访问临时执行环境以外的资源;结果:输出其它密封囊;修改结点状态。
部件存储器图1 主动结点的一种组成方案6.2.6公共模型●与传统网络比较,在主动网络中,网络程序必须在底层网络中传输,并且能够装载到各种平台中。
●传统网络只需对包的语法结构和语义进行标准化,而主动网需对计算模型进行标准化。
●公共模型:程序编码;公共原语;结点资源的表示和分配。
6.2.6.1程序编码要求:移动性:程序的传输和执行;安全性:控制程序对主动结点资源的访问能力;高效性:在一般情况下,网络的性能不能下降太多。
程序移动的层次:源代码层:解释执行的一些Script语言,如:Tcl,Perl等。
关键是解释器正确。
中间代码层:中间指令集和虚拟机;与平台有关的代码层:主要适用于频繁应用的目标代码。
6.2.5.3公共原语主动结点应该提供一组所有密封囊都能访问的公共原语。
分类:●用来管理主动包自身的原语,如改变它的包头和净荷等;●用来访问结点环境的原语,如改变结点的路由表和结点状态等;●用来控制主动包传输的原语,如主动包的转发、拷贝和丢弃等6.2.6.3结点资源的表示和分配●为达到互操作的目的,主动包的编程者必须对资源有共同的理解,如资源是什么,如何命名等;●从安全方面考虑,必须提供相应的机制用来控制主动包程序对某些资源的访问能力。
6.3体系结构●结点体系结构用来定义所有结点都应该具有的能力主动结点的重要组成部分,以及它们之间的界面;●主动网络的体系结构则关心一些全局问题,如寻址和全局资源分配等。
6.3.1主动结点的结构执行环境结点操作系统图6-2 主动结点的组成结点操作系统:●为上层的执行环境提供一些公共的基本功能,如资源(传输、计算和存储)分配;●为执行环境屏蔽了底层的资源分配细节;●消除执行环境之间的相互影响。
执行环境:●为程序的执行提供环境;●代表上层应用向结点操作系统请求服务;●为应用屏蔽了结点操作系统的大部分细节。
管理系统●控制结点的配置;●执行环境的安装和删除;●改变结点的策略库。
6.3.2包处理方法●执行环境请求结点操作系统创建通道;●根据包头的信息和一定的模式对包进行分类;●根据分类结果进行匹配,将包放入相应的通道。
为提高服务质量,结点操作系统应该提供调度机制,用它来控制结点的计算资源和传输资源的分配。
图6-3 主动结点对包的处理过程PacketClassifi-cationInput channelprocessing EE processingOutput channelprocessingScheduling &transmission6.3.2主动网封装协议(ANEP)●ANEP的包头中,类型标识符域用来说明处理该包的执行环境。
类型标识符的指定;通用的执行环境的类型标识符。
●错误控制。
当主动包不能到达指定的执行环境(可能由于该结点不支持这种包或者结点资源不够)时,结点操作系统所执行的操作可以由用户通过ANEP头来决定。
如可以丢弃包,转发包,也可以发送一些错误信息。
后面两种情况需要ANEP头中至少包含一个结点操作系统可以解析的地址。
●安全管理。
ANEP的“option”域为安全管理留下了足够的空间。
●分段和重组。
当底层通道的MTU不能满足高层协议的要求时,这种功能是必需的。
6.3.4执行环境●支持主动包程序运行的虚拟机;●主动网用户可访问的编程接口。
执行环境文档:●执行环境的应用编程接口。
用来定义应用程序如何访问执行环境提供的服务;●执行环境处理的ANEP包类型;●对于那些允许用户预定资源的执行环境,还应该提供相应的方法,来确定处理各种包所需的计算和存储资源。
6.3.5结点操作系统目标:●支持了多执行环境的存在;●提供了统一的底层功能。
功能:●实现通道;●控制资源访问;●提供公共服务(如路由选择)。
结点操作系统的三种资源:线程、内存和通道。
通道类型:●“主动”通道。
这种通道与执行环境相连,用户可以用它们在执行环境和通信底层之间传输包;(a)(b)图6-4 主动和直通通道●“直通”通道。
这种通道直接把包从输入设备转发到输出设备上,其间不经过任何执行环境的处理。
二者的不同作用:前者用于控制信息的传输,后者用于相应的数据传输。
6.3.6接口●执行环境和结点操作系统之间的接口(主动结点供应商和执行环境开发者);该界面是本地概念,不要求每个结点上的这类界面都一致;如果所有的结点操作系统都能为执行环境提供一个标准的基本服务集(如:POSIX),将会大大方便执行环境的开发者。
●执行环境和应用(用户)之间的接口(执行环境和应用的开发者);通用的与具体语言无关的服务(类似于socket);由某种具体语言才可访问的界面(如JA V A)。
●管理接口。
公共业务(如路由选择)的维护和管理。
6.3.7网络体系结构的设计思想●资源保留机制;●必须由用户和结点操作系统共同解释的信息;●为提高全局效率而引入的机制,主要是公共对象和业务。
6.3.7.1资源保留机制主动结点中的资源类型:传输带宽、计算能力和存储器。
保证执行环境和用户对资源的消耗是受限制的:●非故障性的资源浪费;●故障;●恶意破坏。
6.3.7.2与执行环境无关的信息结点操作系统必须直接处理由最终用户提供的信息:资源量化信息要求和安全信息。
要求:提供统一的语法和语义。
6.3.7.3公共对象和业务每个执行环境都可以使用的对象,如路由表;每个执行环境都需要的业务,如装载。
6.4主动网络工程主动网络最近突然发热的原因:●网络用户的“拉”:防火墙、WWW代理、多目传输路由器、移动代理等。
特点:在网络中的结点上利用各种不同的方法执行用户所需的计算,满足用户的各种不同的需求。
用一种通用方法来代替目前的这些专用方法,使用户可以对网络进行编程。
●主动技术的“推”:主动技术已经成功地用在端系统和端到端的网络层(Mobile Agent,Java,Compile on the fly等)。
6.4.1ANTS6.4.1.1ANTS协议体系结构目标:●网络结点必须同时支持能够提供不同业务的不同协议;●在新体系结构中,新协议的构造不需全局统一,只需相关结点保持一致;●支持动态协议配置。
采取方法:●用密封囊代替传统网络中的包;●用主动结点代替传统网络中的路由器和端系统,主动结点执行密封囊中的代码,并维护相关状态;●代码分布机制保证将代码动态地、自动地传输到目标结点。
6.4.1.2协议和密封囊图6-5 协议组成结构●密封囊:其中包含一个功能引用,以调用处理该密封囊的程序;●代码组:相关密封囊类型的集合,代码分布的最小单位;●协议:相关代码组的集合,密封囊结构:Protocol/capsule:协议标识和密封囊类型;Shared header:对所有密封囊都相同的域;Rest of header:与密封囊类型相关的域;Payload:图6-6 密封囊结构6.4.1.3主动结点作用:●为协议的执行提供环境;●为不同协议提供统一的网络视图;●控制单个协议对共享资源的访问;●保护网络不被协议破坏。
实现:●一个基本原语集;●统一的执行模型。
结点原语:主动结点的原语集决定了应用所能调用的处理例程。
●环境访问:路由表,链路状态,本地时间;●密封囊管理:访问密封囊的头和静荷;●控制操作:密封囊的创建、拷贝和丢弃等;●结点存储:管理应用定义的一些临时对象。
执行模型:总原则:计算的目的是更有效地通信;执行模型的重点是支持通用的包前传机制,而不是普通意义上的计算。
特点:密封囊的前传例程由发送结点确定,在密封囊的传输过程中不能修改;一个协议中的密封囊不能创建另外一个协议中的密封囊;不需要所有的结点都执行特定的前传例程;对用户定义的前传例程进行限制;一个密封囊所能访问的数据由它所属的协议决定;6.4.1.4代码分布机制在可编程的基础设施中,需要将程序代码传输到需要它的目标结点。
实现机制:●每个密封囊中都包含相应的程序代码;●程序被预先安装到所有的相关结点中;●按需装载和缓冲。
●标识密封囊的类型和所属的协议,该信息在传输过程中不可修改;●当密封囊到达主动结点时,检查协议代码:向前一个结点发送下载应答,或者继续执行;●当一个结点收到下载请求时,要么发送下载应答,要么继续前传下载请求;●当收到下载请求时,首先对代码进行缓冲,然后唤醒被挂起的密封囊。
图6-6 按需装载和代码组缓冲6.4.1.5原型实现主要构件:Class Key MethodsNodeChannel Application Capsule Address,get,put, routefornode,delivertoapp send,receive,node send,receive,node evaluate,length, encode,decodeNode Class提供监护进程的运行代码;提供密封囊可以调用的代码。
Address:路由选择;Get;put:管理正在执行的协议可以访问的状态;Routerfornode:将密封囊转发到指定的目标结点。