APP下载

不依赖IP路由的软件升级设计与实现*

2018-09-29蒋元兵谢文希颜浩洋

通信技术 2018年9期
关键词:分片链路信道

蒋元兵,谢文希,颜浩洋,唐 瑜

(重庆金美通信有限责任公司,重庆 400030)

0 引 言

软件升级可修正设计的缺陷和程序错误,适应数据环境和运行环境的变化,改进已有功能或增加新的功能[1]。软件升级可分为现场升级和远程在线升级。现场升级由维护人员到达目标机现场后,通过本地网络或者仿真器,将目标程序烧写到目标机的Flash。远程在线升级则是利用网络对接入网络的设备进行远程升级。

战术通信网络具有机动、快速和灵活的特点[2],广泛使用无线信道,带宽窄、丢包率高、拓扑变化快、IP路由不稳定。升级文件传输耗时久、重传次数多,经常导致远程在线升级不成功。由于设备分散甚至地处偏远,现场升级费时费力。通常的软件升级方法不能很好地适应战术通信网络。

1 研究现状

1.1 泛洪算法

基本的泛洪算法传播过程是,一个节点发送报文给其所有的邻接点,而收到报文的节点又将报文转发给其所有邻接点,但发给其报文的那个节点除外[3],直到该消息发布给整个网络。泛洪算法在很多领域大面积使用,具有实现简单、健壮性高等优点,可以作为无线网络中一种最基本、最简单的路由算法[4],也是实现网络服务和资源发现的主要手段,可用于无线网络的数据传输。

1.2 软件升级

软件在线升级已经广泛使用,如常用的手机软件、计算机的操作系统软件或者应用软件,均支持在线升级功能。设备只要联网使用,即可检测软件的最新版本,厂家也会主动推送软件版本更新通知。依托稳定可靠的网络,完成软件在线升级。

战术通信网络有安全保密的要求,设备不能连接互联网,只能依托战术网络本身进行软件升级。但是,战术网络的带宽窄、丢包率高、路由动荡频繁,导致IP数据通信不可靠。依托IP数据通信的远程在线升级,不能适应战术通信网络。战术通信网络的软件升级还停留在现场升级的阶段,由维护人员到达设备现场,依靠本地网口或者仿真器将目标程序升级到设备。

2 设计实现

2.1 原理概述

典型组网拓扑如图1所示。

图1 典型网络拓扑

网络通常根据编制划分成多个区域,区域内部采用有线链路或者高带宽的点对点无线链路连接,区域之间采用无线信道(窄带广播信道如卫星)连接。

区域内采用标准的泛洪算法转发升级报文,选择一个节点向无线信道转发升级报文。无线信道支持广播,一个节点发送其他各区域的连接无线信道的节点都能接收,接收的节点再到区域内泛洪。新入网节点向本区域邻居或者通过无线信道向其他区域邻居获取最新版本。

详细原理描述如下。升级终端通过本地网络连接一台目标机,通过现场升级的方式,将升级文件传送给目标机。该目标机作为升级源节点,向全网发送升级请求消息。升级请求消息在有线区域内泛洪转发。连接无线信道且信道同步的节点,先不向无线信道转发,向源节点回复无线信道升级请求消息,在有线区域内泛洪转发到源节点。源节点选择最先收到无线信道升级请求消息的节点作为区域内无线信道升级节点。源节点向无线信道升级节点下发无线信道升级通知消息。接收到无线信道升级通知消息的节点,向无线信道转发升级请求消息。所有接收到升级请求消息的节点接收处理升级文件。

源节点读取升级文件,将升级文件分片封装成消息,通过泛洪算法将消息发送给有线区域内所有节点。无线信道升级节点将消息通过无线信道发送给其他区域。其他区域连接无线信道的节点通过无线信道接收消息,在区域内泛洪。

新入网节点优先通过有线信道向邻接点获取升级文件。无法通过有线信道请求升级文件时,通过无线信道向其他区域节点获取升级文件。

2.2 处理流程

软件升级处理流程图2所示。

图2 升级流程

(1)升级人员通过FTP软件将升级文件上传到本地的目标机,该节点作为升级源节点;

(2)源节点向本区域发送升级请求消息;

(3)区域内各节点泛洪转发升级请求消息;

(4)区域内连接无线信道且同步的节点生成无线信道升级请求消息发送给源节点,区域内节点泛洪转发到源节点;

(5)源节点选择最先收到无线信道升级请求消息的节点作为无线信道升级节点,向其发送无线信道升级通知消息,区域内各节点泛洪转发到无线信道升级节点;

(6)无线信道升级节点向无线信道发送升级请求消息;

(7)其他区域连接无线信道的节点接收升级请求消息,并在区域内泛洪转发;

(8)源节点读取升级文件,分片封装成消息,发送给邻居;区域内各节点泛洪转发;无线信道升级节点向无线信道转发升级文件;

(9)其他区域连接无线信道的节点通过无线信道接收升级文件,在区域内泛洪转发;

(10)无线信道接收节点从无线信道和区域内有线链路接收的升级文件缺少分片时,通过无线信道向无线信道升级节点发起分片请求;

(11)无线信道升级节点下发分片给请求节点;

(12)各节点组装升级文件,校验文件正确性,更新升级文件;

(13)新入网节点与邻居交互软件版本,发现邻居节点版本高时,向邻居节点发起文件请求;

(14)邻居节点接收到文件请求后,下发文件。

2.3 泛洪算法优化

区域内节点之间的链路通常为有线链路或者无线点对点链路,传输带宽、可靠性较高,采用标准的泛洪算法传输消息。接收消息的节点将消息发送给所有邻接点(除了已经接收到相同消息的节点),消息会通过多条链路到达各节点。

无线信道的带宽窄、时延大、丢包率较高,需要尽量减少在无线信道传输的报文。由于无线信道的广播特性,一个节点发送其他节点都能接收,所以区域内只需要选择一个节点向无线信道转发消息,其他区域的节点都能接收,以大幅减少无线信道传输的消息,避免同一区域内的多个节点同时将消息发送到无线信道而浪费信道资源。

由于无线信道的丢包率较高,其他区域的节点可能出现接收文件不完整的情况。当其他区域存在多个连接无线信道的节点时,每个连接无线信道的节点都会从无线信道接收消息,然后在区域内泛洪,以相互弥补丢失的消息。只有其他区域内所有连接无线信道的节点都未接收到同一消息时,才判断为消息丢失。其他区域的节点缺少某一分片时,通过无线信道向无线信道升级节点请求缺少的分片。当一个节点请求某一分片后,其他节点不需要再请求。

2.4 可靠性保证

分片传输可靠性采用分片长度和校验和予以保证。发送每片升级文件的消息都包含分片序号、分片长度、分片校验和。各节点接收消息后,对消息长度和消息校验和进行校验,校验正确后使用分片。文件完整性和正确性采用文件长度、校验和和试运行保证。升级请求消息中携带升级文件的版本、文件长度和文件校验和,各节点接收完成后对文件进行长度和校验和的校验,对校验正确的文件试运行,试运行后获取的版本与升级请求的版本一致时,使用升级文件替换原有文件。

区域内某条链路的消息丢失由其他链路进行补偿。由于网络拓扑通常为栅格网,每个节点都有多条链路连接邻接点,泛洪转发机制能够保证每个节点从多个邻接点接收到相同序号的分片。有线链路本来丢包率较低,即使发生某条链路分片丢失的情况,也能够从其他邻接点接收到丢失的分片,保证区域内各节点能够接收完整的升级文件。

无线信道传输的可靠性通过无线信道一发多收的特性和分片请求的机制保证。虽然区域内只有一个节点向无线信道转发升级文件,但是接收区域一般都存在多个节点连接无线信道。通过无线信道一发多收的广播特性,接收区域会同时有多个节点接收到升级文件。虽然无线信道丢包率较高,但是通常不会出现接收区域的多个节点同时丢失相同序号的分片。只要其中有一个节点接收到分片,通过有线链路即可泛洪到区域的其他所有节点。当出现接收区域连接无线信道的节点都未接收到某分片时,由其中一个节点通过无线信道向无线信道升级节点请求缺失分片。

2.5 新节点入网

当全网升级完成后,未入网的节点没有完成软件升级,需要自动完成软件升级。节点通过邻居学习功能学习邻居节点的版本,发现版本不一致时,由版本低的节点向高版本的节点发起文件请求。

节点可能通过有线链路或者无线信道学习到高版本的邻居节点,优先选择有线链路请求升级文件。学习到高版本的邻居节点后,低版本的节点向高版本的节点发起文件请求,高版本的节点下发升级文件。

当通过无线信道请求升级文件时,区域内可能会存在多个节点同时连接了无线信道,导致多个节点向不同的邻居节点请求升级文件,浪费无线信道资源。为解决上述问题,设计了一种半双工机制。由于无线信道的广播特性,一个节点发送的文件请求消息,所有节点都能够接收,所以只要一个节点向邻居节点发起文件请求,接收到文件请求消息的邻居节点将占用无线信道,并向无线信道发送升级文件,而其他节点不再发起文件请求消息,也不响应文件请求消息。

3 测试验证

3.1 网络搭建

搭建如图3所示的测试网络拓扑。

图3 测试网络拓扑

如图3所示,节点1、节点2、节点3通过有线链路连接组成区域1,升级终端连接到节点1;节点4和节点5通过有线连接组成区域2;节点6组成区域3。三个区域通过无线信道(卫星链路)连接。

网络连接完成后,配置设备间的链路参数,保证链路层正常通信,IP参数不需要配置。各设备初始版本V0.0.1/2018.05.25,升级文件版本号V0.0.2/2018.05.28。通过升级终端给网络中的各节点进行软件升级。首先,通过本地网络采用FTP协议将升级文件发送给节点1,由节点1向全网发起软件升级。升级完成后,查看网络中各节点的版本号,见表1。

表1 升级完成后的版本号

从表1可以看出,全网各节点的软件版本已经升级到升级文件的版本,说明软件升级成功。

3.2 无线信道升级节点选择

从网络拓扑分析,节点2到节点1为1跳,节点3到节点2为2跳且需要经过节点2,选择的无线信道转发节点应该是节点2。当节点1向全网发起升级请求消息后,抓包分析,先收到了节点2的无线信道升级请求消息,然后收到了节点3的无线信道升级请求消息,选择节点2作为区域内的无线信道转发节点。通过区域2接收的升级请求消息判断,来自于节点2,与前面分析一致。

3.3 可靠性测试

在节点4设置丢弃从无线信道接收的报文序号为除10余0的升级文件消息。从可靠性保证原理上分析,节点4丢失的分片能够通过节点5补齐。查看节点4的升级结果,发现升级文件接收正确,说明可靠性保证机制有效。

3.4 新入网节点测试

将节点5和节点6还原为V0.0.1/2018.05.25,连接节点5和节点4之间的有线链路,连接节点6的卫星链路。等待一段时间后,查看节点5和节点6的软件版本,结果显示两个节点的版本均升级为V0.0.2/2018.05.28,说明新入网节点自动获取升级文件成功。

4 结 语

本文完成了一种适用于战术通信网络的软件升级方法设计。该方法不依赖IP路由,采用泛洪算法完成软件升级。使用标准的泛洪算法完成区域内节点之间的消息转发,将泛洪算法与无线信道广播特性相结合,对泛洪算法进行优化,大幅减少了升级消息占用无线信道的开销。设计的软件升级方法能够很好地适应战术通信网络带宽窄、丢包率高和路由不稳定的特性,具有较强的通用性。最后,对该方法进行了工程实现,并且进行了组网验证。

猜你喜欢

分片链路信道
上下分片與詞的時空佈局
降低跨分片交易回滚概率的多轮验证方案
天空地一体化网络多中继链路自适应调度技术
信号/数据处理数字信道接收机中同时双信道选择与处理方法
基于星间链路的导航卫星时间自主恢复策略
基于模糊二分查找的帧分片算法设计与实现
一种无人机数据链信道选择和功率控制方法
一种IS?IS网络中的链路异常检测方法、系统、装置、芯片
通用导弹雷达罩曲面分片展开系统的开发
基于导频的OFDM信道估计技术