APP下载

基于冗余链路的车载卫星宽带数据传输系统的研究

2017-06-05于德志贾正锋

电脑知识与技术 2017年10期

于德志 贾正锋

摘要:针对采用卫星宽带作为车载等移动网络的数据接入场景中存在的由于建筑物覆盖、恶劣天气影响下的“对星不准确”,传输效率较差的问题,该文提出了一种基于冗余移动4G网络与卫星宽带相结合的方式来增强卫星宽带数据传输能力的方法。该方法针对卫星宽带信号较差的情况下,采用同时通过多个移动4G网络和卫星宽带同步传输的方式发送数据,在数据接收端对数据进行去重,将数据传输至目标网络中。经过实验结果表明,该方法可显著提高卫星宽带的数据传输可靠性和降低卫星宽带的使用成本开销。

关键词:卫星宽带;移动4G网络;冗余传输

中图分类号:TP393.1

文献标志码:A

文章编号:1009-3044(2017)10-0033-03

在基于车载、船载等环境下的数据通信系统中,由于其移动性要求,在网络接入方面多数采用了卫星宽带网络。卫星宽带网络由于其覆盖区域的广泛性,可为移动网络环境提供便捷的远距离数据传输。

但采用卫星宽带网络作为接入网络存在着很多不足。例如卫星宽带网络在建筑物、山峦、树林等遮挡情况下,会出现“对星不成功”或者链路传输质量较差的情况;在恶劣天气情况下,如下雪、雾天、阴天等对卫星信号质量影响较为明显的情况下,卫星宽带网络的传输效率和可靠性会难以得到保障。目前使用卫星链路作为数据传输的应用场景,多是以应急指挥、紧急救援等为主,对通信链路的可靠性和通信质量都有着较高的要求。

随着国内4G/LTE网络覆盖范围的逐步完善,使得采用移动4G/LTE网络进行移动数据传输成为了可能。与卫星宽带相比较,移动4G网络的资费和链路的通信效率都具有较明显的优势。对于非涉密类的通信而言,采用移动4G网络进行数据传输已经成为一种趋势。

1.系统构成

1.1原有网络结构

对于车载通信网络,其原有的网络结构如下图所示:

在图1中,车载通信设备接入到车载通信子网交换机,车载卫星接收站的调制解调器接人到车载通信子网交换机。车载通信设备通过车载卫星接收站将通信数据通过卫星链路发送到地面卫星接收站,进入到对端子网交换机中,进而有对端通信设备对通信数据进行处理。通信卫星作为物理层通信设备,连通了车载通信子网和地面站后的对端通信子网,从网络地址的划分上,是属于同一个局域网。

在上述网络结构中,两个部分的子网连通性完全依赖于卫星链路。如前所述在卫星信号质量较差的情况下,两个部分的子网通信就无法开展。另外,由于卫星链路的高延迟的特点,在基于卫星链路的通信结构中,传输实时性要求较高的数据就变得不太可能。

1.2改进后的网络结构

为了复用目前较为成熟的移动4G通信网络,本文提出了如下的一种改进后的车载通信结构,参见图2。

在改进后的网络结构图中,增加了如下兩个设备:接入主机和汇接主机。接入主机通过接人车载通信子网交换机,同时有多个网络接口可连接卫星宽带接收器、多个移动4G/LTE路由器;汇接主机通过网卡0接人到车载通信子网对端交换机,网卡1和网卡2分别接入到卫星宽带接收站和互联网宽带路由器中。

在接入主机上,包括如下功能单元:信号质量采集单元、数据包发送单元、数据包接收单元、策略路由单元。

其中信号质量采集单元通过RS232接口与卫星宽带接收器连接,以实时接收卫星宽带接收器对卫星信号的上报,通过网卡2和网卡3与移动4G/LTE路由器连接,获取移动信号质量反馈;

数据包发送单元通过读取网卡0获取到的交换机中的数据,并将需要发送的数据包通过Linux内核的模块进行排队处理,并添加数据包包头,根据信号质量单元的探测结果选择最优的链路进行数据发送,如果发送数据的链路超过1个,需要对数据包复制后再发送;

策略路由模块,是依据发送数据包时所使用的通信目标地址和源地址,选择合适的路由;

数据包接收模块,是对接收到的数据包进行去重处理,并依据数据包头对收到的数据包进行去重和排队处理,并将接收到的数据包通过网卡0发送到本地交换机中。

在汇接主机中,包括如下功能单元:数据包接收模块,数据包发送模块,策略路由模块。其功能与接收主机的功能模块类似。

2.系统的实现

2.1数据包发送单元的实现

数据包发送单元包括数据包的抓取、数据包过滤、数据包复制、数据包发送四个部分组成。

本文设计并实现了一个基于Linux内核的模块mirror。该模块将网卡0的数据抓取到后,复制到用户空间的mirroro设备上,并提供了该设备上的缓冲区,将读取到的数据按照数据接收的先后顺序写入到该缓冲区中;同时提供了基于poll的接口,以供应用程序来读取该设备缓冲区上的数据。

数据的接收,为了能够接收到网卡0上的所有数据,这里需要将网卡设置为混杂模式(Promiscuous)。为保证接收到的数据包可以进入到mirror的处理函数中,需要向Linux内核注册一个struct packet_type数据包的处理钩子,定义需要获取的数据包类型来获取对应的数据帧,如果需要获取所有数据帧,传人给该结构体的type取值为ETH_P_ALL。

对于上述接收到的数据包,在Mirror模块中缓存到该模块的缓冲区中,该缓冲区按照环形队列的方式进行组织。同时该模块中提供poll函数的支持,根据环形队列中数据的多少,返回给应用程序poll的结果。如果存在数据,则返回POLLIN,否则返回0。

数据包的复制,是通过用户层的应用程序来负责完成的。该应用层程序获取到目前可用的通信链路,对读取到的数据添加数据帧头。数据帧头的构成包括发送数据的时间戳、数据帧的顺序号。应用程序对添加完数据帧头的数据帧进行复制,并通过socket通信的方式发送到卫星地面站接收端和互联网宽带公网地址处的通信端口处。

数据包的过滤,本地子网之间的通讯数据没有必要经过卫星链路或者移动4G通信链路发送到对端。这里可通过基于源MAC地址学习的方式来逐步建立本地设备与MAC地址的对应关系,具体描述为:从接收到数据帧,分析其发送MAC地址,将该MAC地址记录至本地mac列表;如果该mac地址已经存在,则更新其保活时间;接收到的数据帧,如果其目标MAC地址在本地MAC地址列表中,則该数据无需进入处理流程。

2.2数据包接收单元的实现

在接入主机或者汇接主机的数据包接收单元,是通过用户空间的应用程序来完成的。该应用程序默认情况下监听Sock-et通信端口,接收来自对端的数据发送,接收数据。

对于接收到的数据,按照数据帧的格式进行解析,首先解析出数据帧的帧头部分。并将数据帧头部分按照数据帧的发送时间以及发送的数据帧序号排序处理,同时对于重复的数据帧进行丢弃处理。

经过上述预处理后的数据帧就是要发送给本地交换机上的数据,应用程序通过向mirror设备发起写操作,进而通过内核的数据发送操作将数据通过网卡0发送至本地交换机上。

2.3信号质量采集单元的实现

信号质量采集单元是一个应用程序,分别通过RS232串口,网卡2和网卡3访问车载卫星接收站、移动4G/LTE路由器l和移动4G/LTE路由器2的信号质量,按照预设时间间隔的方式获取对应设备的信号质量,以确定发送数据的链路可用性。

上述探测的信号质量结果可以作为数据包发送单元中的数据包复制的参考依据。

3.系统的测试

3.1测试环境

为了验证本文中提出的改进方案,本文的测试采用的是安装在轨道车上的车载卫星工作站,该卫星接收器通过与位于北京的卫星地面站接入到通信目标网络中。测试中通过对轨道车上的车载摄像头的业务数据传输来对方案进行对比分析。

3.2可靠性测试对比

通过对摄像头的网络地址进行ping,测试持续时间为30分钟,其测试结果见表1。

在实验测试的环境中,由于要穿越桥梁、树林、城市内的高楼等建筑物环境,因此对于原来采用卫星宽带的方案中,其丢包数量较为明显。由于测试是在市区和郊区,移动4G/LTE网络覆盖较为完善,对ping结果没有明显影响。

3.3视频监控业务的测试对比

通过对轨道车上的车载摄像头进行远程视频预览,分析两个方案中的视频流的帧丢失数量,其对比结果如图3所示。

从图3的结果来看,随着视频流的码率上限逐渐增加,原方案中的帧丢失比率出现较明显的增加,特别是超过10%以上的帧丢失时,视频流的图片已经出现明显的马赛克情况。而采用了冗余时,由于移动4G网络的补充,可显著降低由于卫星宽带不可用时导致的帧丢失情况。

4.结束语

本文通过将移动4G/LTE网络应用于车载卫星宽带中,可在原有卫星宽带使用受限的条件下,较大程度上提升车载设备的通信的可靠性,并可明显降低通信的延迟。

在本文提及到的方案中,由于采用了多路移动4G/LTE网络,在发送数据时,选择了所有可用的通信链路,这在一定程度上存在着资源过度浪费的情况。可在后续的研究和实现中对这部分进行优化,保证有两份可靠的数据传输即可。