当前通信网络的应用范围飞速扩展,地面有线网、地面无线网、空间卫星网均已成为承载网络,信息在传输过程中可能会经历几种不同的网络环境,端与端之间的通信不再是单一的协议形式.而空间网络通信的主要挑战来自于链路误码率高、传输时延长、上下行带宽不对称、链路可用时间有限、拓扑变化频繁等,此外不同空间位置(远地链路、星间链路、星地链路等)的通信子网也有很大的性能差异[1],使其难以实现传统地面网络技术所达到的Qos及可靠性要求,要想使其成为未来网络系统的一个重要且可靠的组成部分,则需要针对以上挑战设计有效的协议体系.目前面向空间网络的协议主要分为4类:CCS-DS协议体系[2]、TCP/IP协议体系[3]、CCSDS与TCP/IP结合的协议体系[4]、DTN协议体系.基于DTN的协议体系相比其他体系,在空间网络环境下具有更好的性能和可扩展性[5],被CCSDS作为空间网络互联的发展方向.随着天地一体化的发展,基于DTN的空间网络与基于TCP/IP的地面网络的互联问题亟待解决,本文面向此问题提出DTN环境下异构协议网络互联的设计方法,并通过半物理仿真实验对其性能进行分析.
1相关工作
目前很多针对空间网络异构性的研究面向改进传统的TCP/IP协议[6,7],使之适应空间通信的特点,但这些工作未实现根本机制的改变,所实现的性能改善程度有限.文献[8-10]在地面节点上实现了互联卫星网和地面网的功能,但没有考虑到卫星网中的间断连通特性.空间网络的一个根本特点是链路通断切换频繁,必须以DTN的角度展开设计,文献[11]设计了面向DTN的协议适配网关,但主要面向各种版本TCP协议的兼容.为了促进DTN的快速部署以及与传统TCP/IP网络的互联,NASA提出了IP-over-DTN方案[12].其核心思想是在网络中优先采用IP技术,只有当数据通过受限网络或者网络出现链路中断时才将IP包封装到DTN的Bundle包中,由DTN继续完成数据的传输.这种方案的优点是既可以利用DTN技术在受限网络环境下保证数据的可靠传输,又不用牺牲IP技术的高效性和兼容性,但由于将IP包直接封装到Bundle包中,这种方案有较大的开销.本文的异构协议互联方法则采用协议代理方案实现空间节点上的DTN网关及协议转换功能.该方案不仅开销小,而且突破了DTN网络对传统TCP应用的限制.
2协议代理方案
空间异构协议互联方法在客户端和服务器端使用标准的TCP/IP协议栈,在TCP/IP网络与DTN网络的交界处由DTN网关实现TCP/IP协议与DTN协议间的转换.DTN的核心思想是在应用层与下层之间引入“Bundle层”作为连接不同网络的覆盖层.Bundle层可以通过汇聚层适配器(如TCP适配器、UDP适配器等)在IP网络之上传输DTN流量,从而实现DTN网络与TCP/IP网络的互联.应用层协议需要基于Bundle层接口进行重构,但目前传统IP应用所提供的功能在这种协议体系下还不够成熟.为了实现Bundle协议与TCP协议(卫星链路对TCP/IP数据传输的影响主要体现在TCP协议)的转换,需要定义一个合适的映射协议,解决应用协议负载的传递、地址映射、传输可靠性等问题.以下是协议代理中实现的主要功能:1)ACK欺骗:客户端的DTN网关会伪装成服务器与客户端建立并维持TCP连接.这需要客户端将DTN网关设置为代理服务器或者直接将DTN网关设置为默认网关.另外还要在DTN网关上设置需要代理的协议,并监听相应的TCP端口.2)地址映射:DTN端点和应用可以用端点号(EID)来标识,本文所使用的EID格式为:应用协议名://IP地址/传输层协议/端口号例如,IP地址为192.168.1.100的客户端的HTTP应用的EID为HTTP://192.168.1.100/TCP/80.当客户端应用第一次与DTN网关建立TCP连接时,DTN网关按照这一格式自动根据源和目的IP地址、应用协议名、传输层协议、端口号等信息生成相应的源和目的EID,并且在该DTN网关的Bundle层中为代理的客户端应用注册EID.而靠近服务器方的DTN网关则采用后绑定的方式在Bundle层中注册该目的EID,从目的EID中解析出应用协议名、服务器IP地址、传输层协议和端口等信息,主动与服务器建立连接.3)应用数据的封装和解封装:已经在Bundle协议中注册EID的应用可以使用Bundle协议提供的服务发送和接收数据.当收到普通应用发过来的数据时,TCP代理需要从TCP协议中取出应用数据,然后调用Bundle协议服务,把应用数据封装成Bundle包发送出去.当TCP代理收到Bundle协议交付的数据时,会从相应的TCP连接把应用数据发送出去.此外,在调用Bundle协议的服务时,需要提供Bundle的处理控制参数,指定Bundle所要提供的服务,如是否允许Bundle分片、是否需要托管传输、是否需要状态报告等.这些参数需要TCP代理根据应用的特点以及预先配置的规则决定.
3空间DTN转发节点设计
DTN采用异步通信模式(类似Email),通过DTN路由转发Bundle包以实现源节点到目的节点的信息传输.DTN的Bundle层处于应用层之下,但Bundle下层不一定是传输层,也可以是链路层.这种结构可以实现任意下层协议栈网络间的互联.在托管模式下,DTN路由通过将交付责任委派给下一个有能力交付的DTN路由来确保数据的可靠传输.Bundle可以通过状态报告传送数据交付过程中的状态信息,如来自中间路由的转发和托管信号以及来自目的节点的交付信号.CCSDS针对空间通信的特点提出了一系列链路层协议,在图1所示的空间DTN转发系统架构中,采用IPOVERCCSDSAOS[13]作为链路层协议,可用于空对空、空对地和地对空的通信链路中,在CCSDS链路上实现IP数据报的携带、建立路由、交换和空间IP网际元素的管理等,使空间和地面采用一致的网络协议,实现天基网络与地基网络的无缝连接;采用SCPS-TP[14]作为传输层协议,与TCP协议和UDP协议保持良好的兼容和互操作性;在地面站以及星上局域网中则采用标准的TCP/IP协议栈.DTN转发节点的具体设计如图2所示,Bundle协议代理包括5个模块:Bundle管理、Bundle路由、链路管理、汇聚层适配器和邻居发现.其中Bundle管理实现了Bundle协议的核心功能,包括Bundle封装、注册、保管传输、分片与重组、Bundle冗余等;考虑到卫星都按规划的轨道运行,星间、星地间的连通性可以推导出来,故Bundle路由模块实现了静态路由和接触图路由[15];邻居发现模块用于发现周围邻节点;链路管理模块利用邻居发现模块提供的接触信息来管理链路有效性信息;汇聚层适配器利用汇聚层的服务发送和接受Bundle包.Bundle进程中添加的本地协议代理模块实现了传输层代理的功能,包括IP过滤、传输层欺骗和自动注册等.使用本地代理前,需要先设置过滤条件,DTN转发节点起到网关的作用,会将符合过滤规则的IP包提交给上层,经过传输层提取出数据,然后交给本地代理,本地代理根据传输层协议以及端口号区分不同应用,自动为它们注册EID.注册成功后,来自Internet应用的数据会直接交给Bundle协议代理,由Bundle协议代理对数据进行Bundle封装、发起托管传输,当Bundle包到达目的端DTN网关节点时,本地代理会自动为目的节点应用在目的端DTN网关上进行注册,注册成功后,DTN网关发起交付规程将数据从Bundle包中解封并交付给目的节点.
本文来源:https://www.010zaixian.com/shiyongwen/1934199.htm