基于P2P战术无线数据通信协议设计与系统实现
2023-04-29谭奇坤马凯陈业坤
谭奇坤?马凯?陈业坤
摘要:战术无线数据通信协议充分利用UDP传输协议,具有传输速度快、消耗低、延迟小、数据传输效率高的特点,通过定制化的通信协议设计有效满足战术指控系统中数据通信需求。在无战术云支持的环境中实现设备自主发现、快速通信及数据传输安全,完全符合当前战术级的作战模式。战术通信环境中的数据通信安全是指控系统可用的基本条件,在分析安全风险的基础上,通过对通信协议设计、设备身份认证、安全技术增强完全保障了P2P战术通信中安全通信的要求。
关键词:战术无线通信;P2P;战术云;设备自主发现;通信安全
一、前言
俄乌冲突爆发以来,交战双方以星链、自组网等通信手段灵活组网,以连、排为作战单元,充分运用无人机形成了有人、无人协同新的作战样式[1]。灵活的战术通信具备无中心、自组织、分布式特点,相比有通信中心的指挥所通信模式更适合分队通信。
文献[ 2]采用基于XMPP协议的混合网络结构实现P2P通信系统,验证了分布式通信系统的正确性及可用性,协议成熟可扩展,但效率低不能完全适应战术无线通信环境。
文献[ 3]采用基于JXTA协议实现跨网络的混合型通信P2P通信,特点是通过协议框架将不同通信平台集成。
借鉴区块链通信机制,文献[ 4]采用结构化P2P通信机制,改进实现全分布式结构化的对等网络。
二、协议设计
分队作战样式要求组网灵活、开通时间短、抗毁能力强,同时电磁干扰、通信障碍使通信节点常常处于弱网、断网状态。战术无线数据通信协议采用P2P全分布式对等通信模型,在分队内设计实现移动通信终端自主发现及通信加密。战术无线数据通信协议设计基于UDP,支持实时、高效数据传输。
(一)消息传输协议设计
1.节点发现报文协议
P2P对等网络模型要求参与通信的节点维护节点状态,节点状态数据实时动态更新,记录加入、退出及离开网络的通信节点。
(1)所有通信节点通过在节点间以一定时间间隔(30—60秒)彼此传输设备节点发现报文从而交换节点状态信息,实现所有通信节点数据最终一致。
(2)任何通信节点在关机、退出、重启等状态发生变化时主动向网络发送节点发现报文。节点发现报文字段说明见表1。
2.节点数据报文协议
节点数据报文字段说明见表2。
(二)文件传输协议设计
P2P战术通信环境中网络通信不稳定,文件传输协议设计考虑传输可靠性,设计数据分片、确认机制及数据包重传机制,参考TCP文件传输,文献[ 6]基于UDP协议设计了一种可靠的文件传输方法,战术通信中必须保障文件可靠传输,文件传输协议字段见表3。
1.文件分片大小确定。P2P通信发生在局域网内,文件分片大小考虑以太网数据包长度1500字节、IP包头20字节、UDP包头8字节后最大长度为1472字节。
2.确认重传。发送方对每个包进行递增编号,接收方对发送方每包进行确认,数据包不完整或丢包后要求重传。
3.超时重传。发送方发送数据包时启动超时检测,超出指定时间未收到接收方反馈,自动重发当前数据包。
三、通信安全设计
P2P通信网络在无线通信环境下节点间通信面临身份假冒、数据重防攻击、通信窃听、信息篡改安全风险文献[ 5]。战术通信中采用包括节点身份识别、数据加密通信,同时对数据报文中传输的设计字段进行安全技术处理。
(一)设备ID识别。设备识别可采用用户凭证、可信机构颁发证书、预共享证书、生理特征等方式。因在P2P通信中通信双方互相识别,无法依赖于第三方服务,设计采用基于设备预共享证书信息计算生成设备ID。
(二)传输数据加密。P2P通信中通信链路传输的数据信息存在被非授权者截获而导致信息泄露的风险,针对传输数据进行加密。密钥交换算法采用前向安全密钥协商算法ECDHE,配套证书签名算法SM2、加密算法SM4、消息认证算法SM3。
(三)防数据重放。P2P通信节点双方按“同一逻辑链路上的时间戳单向变化”原则产生时间戳。P2P通信双方保留时间戳,当待处理的数据报文时间戳与保留时间戳相比不符合时间差值要求时丢弃收到的数据报文。时间戳随着每次消息发送递增,可有效地抵抗重放攻击。
(四)报文签名验证。验证传输报文合法性,采用消息認证算法SM3验证(deviceID+ time Stamp+ payload+ len + checkSum)。
四、关键技术
(一)节点发现
节点通过自动发现构建节点成员清单,可基于报文广播方式及DHT节点发现算法。
1.基于广播的节点发现。设备节点在上线、退出、离开P2P网络时,采用广播方式广播其上线、退出、离开P2P网络的报文,其他设备节点更新其成员清单。
2.基于DHT算法的节点发现。P2P网络中每个设备节点只存储一部分节点信息到哈希表。当任意节点想要发现新的设备节点信息时,需查询DHT以获取该节点的邻居节点列表节点信息,即获取其他节点的路由信息,然后连接其他节点获取所需设备节点数据。
(二)数据一致性
在全网保持所有节点的基础数据一致性,可采用Raft算法及Paxos算法[7],两种算法都有选主过程,属于有中心的系统。P2P战术通信协议设计采用Gossip协议算法逐步扩散消息方式,使所有节点数据最终保持一致,传播的时间收敛在O[Log(N)]以内,其中N为节点的数量。节点的任意增加和减少、宕机和重启都不影响消息的传播。
五、算法及实现
(一)DHT 节点发现算法
DHT算法中,每个节点都可以查询DHT表来获取其他节点的信息,文献[ 8]基于优化Kademlia协议提高节点资源查询成功率。当一个节点需要发现新的节点时,它会从查询列表中选择一个目标节点,并从DHT表中查询该节点的邻居节点列表。然后,它将邻居节点添加到自己的邻居列表中,并将邻居节点添加到查询列表中,以便继续查询。当邻居列表中的节点数量达到目标数量时,算法停止查询,输出所有节点的邻居列表和状态。伪代码如下:
1.初始化节点。生成本地节点ID,创建一个空的路由表,创建一个空的数据存储。
2.存储数据(key, value)。k = hash(key),如果 k 在路由表中,将(value)发送到最近的n个节点,否则,将(key, value)存储在本地。
3.查找数据(key)。k = hash(key),如果 k 在本地存储中,返回对应的value, 否则,向路由表中最近的n个节点发送查询请求。
4.更新路由表。当收到来自其他节点的请求或响应时,将该节点添加到路由表,如果路由表的大小超过限制,删除最远的节点。
5.节点加入网络。新节点向已知的节点发送ping消息,已知节点在收到ping消息后更新其路由表并返回响应,新节点在收到响应后更新其路由表。
6.节点离开网络。向路由表中的所有节点发送离开消息。
(二)Gossip 数据同步算法
Gossip 数据同步算法是一种基于去中心化的分布式系统中数据同步的算法。该算法可以有效地处理分布式数据增、删、改操作,同时保证数据的一致性和可靠性。伪代码如下:
1.初始化本地节点和数据。将本地节点加入网络中,并设置状态为“未同步”。
2.设定同步周期T,设定更新阈值U,设定负载因子,设定允许失败次数F。
3.在每个同步周期T内,选择一个随机节点进行数据同步。如果同步失败,则记录失败次数,并继续步骤3;如果同步成功,则将同步节点加入邻居列表中,并将同步节点的数据合并到本地数据中;如果本地数据有变化,则将更新后的数据发送给其他节点;如果邻居列表大小超过负载因子L,从邻居列表中删除最早加入的节点。
4.如果本地数据与同步节点的数据差异小于更新阈值U,则将节点状态更新为“已同步”;如果节点状态为“未同步”,并且失败次数超过F,则将节点从网络中删除,返回步骤3。
(三)协议系统实现
采用文献[ 9]中P2P模式通信架构,基于安卓系统验证无线局域网内战术无线通信语音功能、文本消息通信功能、终端方位功能及文件可靠传输功能,安卓系统验证实现如图1。
六、结语
本文研究了战术无线数据通信要求及UDP协议特点,提出基于P2P战术通信模型,及UDP战术通信协议报文格式,通过协议设计提升UDP协议可靠性及数据通信安全性,在安卓端实现了战术无线数据通信系统基本功能,基本满足在无战术云条件下的自主数据通信功能。后续验证弱网、弱连接下协议的有效性、可靠性,优化系统在文件传输过程中对低带宽、误码率高情况下的适应性。
参考文献
[1]刘业民,田黎曦,龚柳洁,等.“星链”在俄乌冲突中的应用及对策浅析[J].长江信息通信,2023,36(01):130-133.
[2]徐兵.基于P2P的企业通信系统的设计与实现[D].武汉:华中科技大学,2017.
[3]王建.基于JXTA的P2P即时通信软件的Java实现研究[J].无线互联科技,2018,15(04):11-12.
[4]丁琳琳,华亚洲,陈泽,等.面向时空数据区块链的对等网络(P2P)通信机制[J].辽宁大学学报(自然科学版),2023,50(01):10-19.
[5]蒋华,王坤,杨磊,曲艳博,王伟志,潘文吉.P2P通信中的安全性研究与实现[J].科技视界,2013(27):12-13.
[6]许坤,赵亮.基于UDP协议的可靠数据传输的实现[J].科技创新导报,2019,16(17):7-8.
[7]张胜.基于Raft算法的分布式系统数据一致性研究[D].成都:西南交通大学,2020.
[8]徐卫克.基于优化Kademlia协议的P2P网络资源发现算法研究[J].网络安全技术与应用,2021(05):41-42.
[9]丁倩.基于Android平台局域网即时通讯软件的设计与实现[D].西安:西安电子科技大学,2013.
作者单位:中国电子科学研究院
责任编辑:尚丹