龙源期刊网 http://www.qikan.com.cn
基于ICE双向连接的卫星空地通信系统
作者:晋良银 黎明 苟江 赵斌 何娣 来源:《计算机与网络》2019年第09期
摘要:将ICE中间件的双向连接机制引入卫星空地通信系统中,并给出了一种基于ICE双向连接的卫星空地通信系统设计方案,讨论了ICE中间件相关概念,介绍了ICE的双向连接功能及原理。在卫星通信网络环境下进行设计、实现与测试,并分析了系统测试结果,测试结果表明ICE双向连接可以解决卫星空地链路单向连接的问题。 关键词:ICE中间件;双向连接;机载客舱系统;单向连接
中图分类号:TP393文献标志码:A文章编号:1008-1739(2019)09-69-3
0引言
目前,机载客舱系统与地面航空公司空地通信主要有ATG和卫星通信等方式,本文仅讨论卫星通信链路下机载客舱系统与地面的空地通信。在应用中,客舱系统通过卫星接入公网与航空公司进行通信,通信协议采用TCP/IP。航空公司的服务器具有公网IP地址,但卫星通信系统分配给客舱系统的地址是私有IP。在初始化状态下,客舱系统可以向航空公司发起连接请求,但航空公司却无法主动向客舱系统发起应用连接。因此,客舱系统与地面的航空公司间的空地通信存在单向连接问题。
基于ICE中间件的双向连接机制提供了一种新的思路。ICE中间件通过双向连接机制首先由机载客舱系统向航空公司发起并建立连接,ICE保持并维护此连接,航空公司利用该连接可以向机载端发送消息。针对上述分析,设计了一种基于ICE双向连接的卫星空地通信系统方案,并给出其在卫星通信环境下的测试结果。
龙源期刊网 http://www.qikan.com.cn
1 ICE中间件
ICE中间件是ZeroC公司开发的一款开源面向对象的简单高效的中间件平台[1],借鉴了CORBA,DCOM,SOAP等中间件的优点,并解决了这些中间件的应用局限[5]。ICE提供了建立面向对象的客户/服务端应用程序所需要的工具、API和类库,使得分布式客户/服务端应用程序的建立变得简单[6]。而且ICE应用适合在异种环境中使用,客户端和服务端可以使用不同的编程语言来实现,同时它可以运行在不同的操作系统平台以及不同的硬件架构上,有效地解决了C/S模式兼容性差、开发成本高以及开发周期长等问题[7]。ICE支持多种网络信息交互技术(TCP/UDP、SSL、通过插件功能扩展协议)。 2 ICE双向连接
ICE连接通常允许请求仅在一个方向上流动。如果应用程序的设计要求服务器向客户端进行回调,则服务器通常会建立与该客户端的新连接以发送回调请求,该请求过程如图1所示。
但是在实际的网络环境中,网络限制通常会阻止服务器创建与客户端的单独连接,例如当客户端位于防火墙后面,如图2所示。
在这种情况下,防火墙会阻止任何直接與客户端建立连接的尝试。此时,双向连接提供了一种解决方案。请求可以在双向连接上双向流动,使服务器能够通过客户端到服务器的现有连接向客户端发送回调请求。有2种方式使用双向连接:①使用ICE的Glacier功能,在这种情况下,双向连接被自动使用;②手动配置双向连接,使用ICE双向连接的手动配置方式解决卫通空地单向连接的问题。
龙源期刊网 http://www.qikan.com.cn
3系统设计与测试 3.1系统架构
基于ICE双向连接的卫星空地通信系统架构示意图如图3所示。系统中的各功能模块采用分布式部署,主要由3部分组成:模拟机载客舱系统的客户端(Client)、模拟地面航空公司的服务器端(Server)以及卫星通信设备。地面服务器端的IP地址是公网地址,而机载客户端的IP地址是卫星通信系统分配的私网地址。因此,在实际通信中,Client可以访问到Server,但Server无法访问Client。针对上述问题,本文引入ICE双向连接机制实现空地之间的双向通信。
3.2 ICE安装及开发环境配置
该系统的Client与Server应用在Centos7 64位操作系统下开发并运行。ICE版本为3.5.1。Client与Server分别安装在2台不同的笔记本上。Client模拟机载客舱系统端(以下统称机载端)使用卫星通信系统分配的私有网IP地址,Server模拟航空公司地面端(以下统称地面端)使用公网IP地址。地面端与机载端网络配置如图4所示。
Server的网络配置包括3项内容。TCP表示ICE通信遵循的TCP/IP协议;-h
218.104.XXX.XXX表示Server的IP地址为218.104.XXX.XXX;-p 10000表示Server监听端口为10000。机载端的网络配置如图5所示。