譚奇坤?馬凱?陳業(yè)坤
摘要:戰(zhàn)術(shù)無線數(shù)據(jù)通信協(xié)議充分利用UDP傳輸協(xié)議,具有傳輸速度快、消耗低、延遲小、數(shù)據(jù)傳輸效率高的特點(diǎn),通過定制化的通信協(xié)議設(shè)計(jì)有效滿足戰(zhàn)術(shù)指控系統(tǒng)中數(shù)據(jù)通信需求。在無戰(zhàn)術(shù)云支持的環(huán)境中實(shí)現(xiàn)設(shè)備自主發(fā)現(xiàn)、快速通信及數(shù)據(jù)傳輸安全,完全符合當(dāng)前戰(zhàn)術(shù)級的作戰(zhàn)模式。戰(zhàn)術(shù)通信環(huán)境中的數(shù)據(jù)通信安全是指控系統(tǒng)可用的基本條件,在分析安全風(fēng)險(xiǎn)的基礎(chǔ)上,通過對通信協(xié)議設(shè)計(jì)、設(shè)備身份認(rèn)證、安全技術(shù)增強(qiáng)完全保障了P2P戰(zhàn)術(shù)通信中安全通信的要求。
關(guān)鍵詞:戰(zhàn)術(shù)無線通信;P2P;戰(zhàn)術(shù)云;設(shè)備自主發(fā)現(xiàn);通信安全
一、前言
俄烏沖突爆發(fā)以來,交戰(zhàn)雙方以星鏈、自組網(wǎng)等通信手段靈活組網(wǎng),以連、排為作戰(zhàn)單元,充分運(yùn)用無人機(jī)形成了有人、無人協(xié)同新的作戰(zhàn)樣式[1]。靈活的戰(zhàn)術(shù)通信具備無中心、自組織、分布式特點(diǎn),相比有通信中心的指揮所通信模式更適合分隊(duì)通信。
文獻(xiàn)[ 2]采用基于XMPP協(xié)議的混合網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)P2P通信系統(tǒng),驗(yàn)證了分布式通信系統(tǒng)的正確性及可用性,協(xié)議成熟可擴(kuò)展,但效率低不能完全適應(yīng)戰(zhàn)術(shù)無線通信環(huán)境。
文獻(xiàn)[ 3]采用基于JXTA協(xié)議實(shí)現(xiàn)跨網(wǎng)絡(luò)的混合型通信P2P通信,特點(diǎn)是通過協(xié)議框架將不同通信平臺(tái)集成。
借鑒區(qū)塊鏈通信機(jī)制,文獻(xiàn)[ 4]采用結(jié)構(gòu)化P2P通信機(jī)制,改進(jìn)實(shí)現(xiàn)全分布式結(jié)構(gòu)化的對等網(wǎng)絡(luò)。
二、協(xié)議設(shè)計(jì)
分隊(duì)作戰(zhàn)樣式要求組網(wǎng)靈活、開通時(shí)間短、抗毀能力強(qiáng),同時(shí)電磁干擾、通信障礙使通信節(jié)點(diǎn)常常處于弱網(wǎng)、斷網(wǎng)狀態(tài)。戰(zhàn)術(shù)無線數(shù)據(jù)通信協(xié)議采用P2P全分布式對等通信模型,在分隊(duì)內(nèi)設(shè)計(jì)實(shí)現(xiàn)移動(dòng)通信終端自主發(fā)現(xiàn)及通信加密。戰(zhàn)術(shù)無線數(shù)據(jù)通信協(xié)議設(shè)計(jì)基于UDP,支持實(shí)時(shí)、高效數(shù)據(jù)傳輸。
(一)消息傳輸協(xié)議設(shè)計(jì)
1.節(jié)點(diǎn)發(fā)現(xiàn)報(bào)文協(xié)議
P2P對等網(wǎng)絡(luò)模型要求參與通信的節(jié)點(diǎn)維護(hù)節(jié)點(diǎn)狀態(tài),節(jié)點(diǎn)狀態(tài)數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)更新,記錄加入、退出及離開網(wǎng)絡(luò)的通信節(jié)點(diǎn)。
(1)所有通信節(jié)點(diǎn)通過在節(jié)點(diǎn)間以一定時(shí)間間隔(30—60秒)彼此傳輸設(shè)備節(jié)點(diǎn)發(fā)現(xiàn)報(bào)文從而交換節(jié)點(diǎn)狀態(tài)信息,實(shí)現(xiàn)所有通信節(jié)點(diǎn)數(shù)據(jù)最終一致。
(2)任何通信節(jié)點(diǎn)在關(guān)機(jī)、退出、重啟等狀態(tài)發(fā)生變化時(shí)主動(dòng)向網(wǎng)絡(luò)發(fā)送節(jié)點(diǎn)發(fā)現(xiàn)報(bào)文。節(jié)點(diǎn)發(fā)現(xiàn)報(bào)文字段說明見表1。
2.節(jié)點(diǎn)數(shù)據(jù)報(bào)文協(xié)議
節(jié)點(diǎn)數(shù)據(jù)報(bào)文字段說明見表2。
(二)文件傳輸協(xié)議設(shè)計(jì)
P2P戰(zhàn)術(shù)通信環(huán)境中網(wǎng)絡(luò)通信不穩(wěn)定,文件傳輸協(xié)議設(shè)計(jì)考慮傳輸可靠性,設(shè)計(jì)數(shù)據(jù)分片、確認(rèn)機(jī)制及數(shù)據(jù)包重傳機(jī)制,參考TCP文件傳輸,文獻(xiàn)[ 6]基于UDP協(xié)議設(shè)計(jì)了一種可靠的文件傳輸方法,戰(zhàn)術(shù)通信中必須保障文件可靠傳輸,文件傳輸協(xié)議字段見表3。
1.文件分片大小確定。P2P通信發(fā)生在局域網(wǎng)內(nèi),文件分片大小考慮以太網(wǎng)數(shù)據(jù)包長度1500字節(jié)、IP包頭20字節(jié)、UDP包頭8字節(jié)后最大長度為1472字節(jié)。
2.確認(rèn)重傳。發(fā)送方對每個(gè)包進(jìn)行遞增編號,接收方對發(fā)送方每包進(jìn)行確認(rèn),數(shù)據(jù)包不完整或丟包后要求重傳。
3.超時(shí)重傳。發(fā)送方發(fā)送數(shù)據(jù)包時(shí)啟動(dòng)超時(shí)檢測,超出指定時(shí)間未收到接收方反饋,自動(dòng)重發(fā)當(dāng)前數(shù)據(jù)包。
三、通信安全設(shè)計(jì)
P2P通信網(wǎng)絡(luò)在無線通信環(huán)境下節(jié)點(diǎn)間通信面臨身份假冒、數(shù)據(jù)重防攻擊、通信竊聽、信息篡改安全風(fēng)險(xiǎn)文獻(xiàn)[ 5]。戰(zhàn)術(shù)通信中采用包括節(jié)點(diǎn)身份識別、數(shù)據(jù)加密通信,同時(shí)對數(shù)據(jù)報(bào)文中傳輸?shù)脑O(shè)計(jì)字段進(jìn)行安全技術(shù)處理。
(一)設(shè)備ID識別。設(shè)備識別可采用用戶憑證、可信機(jī)構(gòu)頒發(fā)證書、預(yù)共享證書、生理特征等方式。因在P2P通信中通信雙方互相識別,無法依賴于第三方服務(wù),設(shè)計(jì)采用基于設(shè)備預(yù)共享證書信息計(jì)算生成設(shè)備ID。
(二)傳輸數(shù)據(jù)加密。P2P通信中通信鏈路傳輸?shù)臄?shù)據(jù)信息存在被非授權(quán)者截獲而導(dǎo)致信息泄露的風(fēng)險(xiǎn),針對傳輸數(shù)據(jù)進(jìn)行加密。密鑰交換算法采用前向安全密鑰協(xié)商算法ECDHE,配套證書簽名算法SM2、加密算法SM4、消息認(rèn)證算法SM3。
(三)防數(shù)據(jù)重放。P2P通信節(jié)點(diǎn)雙方按“同一邏輯鏈路上的時(shí)間戳單向變化”原則產(chǎn)生時(shí)間戳。P2P通信雙方保留時(shí)間戳,當(dāng)待處理的數(shù)據(jù)報(bào)文時(shí)間戳與保留時(shí)間戳相比不符合時(shí)間差值要求時(shí)丟棄收到的數(shù)據(jù)報(bào)文。時(shí)間戳隨著每次消息發(fā)送遞增,可有效地抵抗重放攻擊。
(四)報(bào)文簽名驗(yàn)證。驗(yàn)證傳輸報(bào)文合法性,采用消息認(rèn)證算法SM3驗(yàn)證(deviceID+ time Stamp+ payload+ len + checkSum)。
四、關(guān)鍵技術(shù)
(一)節(jié)點(diǎn)發(fā)現(xiàn)
節(jié)點(diǎn)通過自動(dòng)發(fā)現(xiàn)構(gòu)建節(jié)點(diǎn)成員清單,可基于報(bào)文廣播方式及DHT節(jié)點(diǎn)發(fā)現(xiàn)算法。
1.基于廣播的節(jié)點(diǎn)發(fā)現(xiàn)。設(shè)備節(jié)點(diǎn)在上線、退出、離開P2P網(wǎng)絡(luò)時(shí),采用廣播方式廣播其上線、退出、離開P2P網(wǎng)絡(luò)的報(bào)文,其他設(shè)備節(jié)點(diǎn)更新其成員清單。
2.基于DHT算法的節(jié)點(diǎn)發(fā)現(xiàn)。P2P網(wǎng)絡(luò)中每個(gè)設(shè)備節(jié)點(diǎn)只存儲(chǔ)一部分節(jié)點(diǎn)信息到哈希表。當(dāng)任意節(jié)點(diǎn)想要發(fā)現(xiàn)新的設(shè)備節(jié)點(diǎn)信息時(shí),需查詢DHT以獲取該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)列表節(jié)點(diǎn)信息,即獲取其他節(jié)點(diǎn)的路由信息,然后連接其他節(jié)點(diǎn)獲取所需設(shè)備節(jié)點(diǎn)數(shù)據(jù)。
(二)數(shù)據(jù)一致性
在全網(wǎng)保持所有節(jié)點(diǎn)的基礎(chǔ)數(shù)據(jù)一致性,可采用Raft算法及Paxos算法[7],兩種算法都有選主過程,屬于有中心的系統(tǒng)。P2P戰(zhàn)術(shù)通信協(xié)議設(shè)計(jì)采用Gossip協(xié)議算法逐步擴(kuò)散消息方式,使所有節(jié)點(diǎn)數(shù)據(jù)最終保持一致,傳播的時(shí)間收斂在O[Log(N)]以內(nèi),其中N為節(jié)點(diǎn)的數(shù)量。節(jié)點(diǎn)的任意增加和減少、宕機(jī)和重啟都不影響消息的傳播。
五、算法及實(shí)現(xiàn)
(一)DHT 節(jié)點(diǎn)發(fā)現(xiàn)算法
DHT算法中,每個(gè)節(jié)點(diǎn)都可以查詢DHT表來獲取其他節(jié)點(diǎn)的信息,文獻(xiàn)[ 8]基于優(yōu)化Kademlia協(xié)議提高節(jié)點(diǎn)資源查詢成功率。當(dāng)一個(gè)節(jié)點(diǎn)需要發(fā)現(xiàn)新的節(jié)點(diǎn)時(shí),它會(huì)從查詢列表中選擇一個(gè)目標(biāo)節(jié)點(diǎn),并從DHT表中查詢該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)列表。然后,它將鄰居節(jié)點(diǎn)添加到自己的鄰居列表中,并將鄰居節(jié)點(diǎn)添加到查詢列表中,以便繼續(xù)查詢。當(dāng)鄰居列表中的節(jié)點(diǎn)數(shù)量達(dá)到目標(biāo)數(shù)量時(shí),算法停止查詢,輸出所有節(jié)點(diǎn)的鄰居列表和狀態(tài)。偽代碼如下:
1.初始化節(jié)點(diǎn)。生成本地節(jié)點(diǎn)ID,創(chuàng)建一個(gè)空的路由表,創(chuàng)建一個(gè)空的數(shù)據(jù)存儲(chǔ)。
2.存儲(chǔ)數(shù)據(jù)(key, value)。k = hash(key),如果 k 在路由表中,將(value)發(fā)送到最近的n個(gè)節(jié)點(diǎn),否則,將(key, value)存儲(chǔ)在本地。
3.查找數(shù)據(jù)(key)。k = hash(key),如果 k 在本地存儲(chǔ)中,返回對應(yīng)的value, 否則,向路由表中最近的n個(gè)節(jié)點(diǎn)發(fā)送查詢請求。
4.更新路由表。當(dāng)收到來自其他節(jié)點(diǎn)的請求或響應(yīng)時(shí),將該節(jié)點(diǎn)添加到路由表,如果路由表的大小超過限制,刪除最遠(yuǎn)的節(jié)點(diǎn)。
5.節(jié)點(diǎn)加入網(wǎng)絡(luò)。新節(jié)點(diǎn)向已知的節(jié)點(diǎn)發(fā)送ping消息,已知節(jié)點(diǎn)在收到ping消息后更新其路由表并返回響應(yīng),新節(jié)點(diǎn)在收到響應(yīng)后更新其路由表。
6.節(jié)點(diǎn)離開網(wǎng)絡(luò)。向路由表中的所有節(jié)點(diǎn)發(fā)送離開消息。
(二)Gossip 數(shù)據(jù)同步算法
Gossip 數(shù)據(jù)同步算法是一種基于去中心化的分布式系統(tǒng)中數(shù)據(jù)同步的算法。該算法可以有效地處理分布式數(shù)據(jù)增、刪、改操作,同時(shí)保證數(shù)據(jù)的一致性和可靠性。偽代碼如下:
1.初始化本地節(jié)點(diǎn)和數(shù)據(jù)。將本地節(jié)點(diǎn)加入網(wǎng)絡(luò)中,并設(shè)置狀態(tài)為“未同步”。
2.設(shè)定同步周期T,設(shè)定更新閾值U,設(shè)定負(fù)載因子,設(shè)定允許失敗次數(shù)F。
3.在每個(gè)同步周期T內(nèi),選擇一個(gè)隨機(jī)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步。如果同步失敗,則記錄失敗次數(shù),并繼續(xù)步驟3;如果同步成功,則將同步節(jié)點(diǎn)加入鄰居列表中,并將同步節(jié)點(diǎn)的數(shù)據(jù)合并到本地?cái)?shù)據(jù)中;如果本地?cái)?shù)據(jù)有變化,則將更新后的數(shù)據(jù)發(fā)送給其他節(jié)點(diǎn);如果鄰居列表大小超過負(fù)載因子L,從鄰居列表中刪除最早加入的節(jié)點(diǎn)。
4.如果本地?cái)?shù)據(jù)與同步節(jié)點(diǎn)的數(shù)據(jù)差異小于更新閾值U,則將節(jié)點(diǎn)狀態(tài)更新為“已同步”;如果節(jié)點(diǎn)狀態(tài)為“未同步”,并且失敗次數(shù)超過F,則將節(jié)點(diǎn)從網(wǎng)絡(luò)中刪除,返回步驟3。
(三)協(xié)議系統(tǒng)實(shí)現(xiàn)
采用文獻(xiàn)[ 9]中P2P模式通信架構(gòu),基于安卓系統(tǒng)驗(yàn)證無線局域網(wǎng)內(nèi)戰(zhàn)術(shù)無線通信語音功能、文本消息通信功能、終端方位功能及文件可靠傳輸功能,安卓系統(tǒng)驗(yàn)證實(shí)現(xiàn)如圖1。
六、結(jié)語
本文研究了戰(zhàn)術(shù)無線數(shù)據(jù)通信要求及UDP協(xié)議特點(diǎn),提出基于P2P戰(zhàn)術(shù)通信模型,及UDP戰(zhàn)術(shù)通信協(xié)議報(bào)文格式,通過協(xié)議設(shè)計(jì)提升UDP協(xié)議可靠性及數(shù)據(jù)通信安全性,在安卓端實(shí)現(xiàn)了戰(zhàn)術(shù)無線數(shù)據(jù)通信系統(tǒng)基本功能,基本滿足在無戰(zhàn)術(shù)云條件下的自主數(shù)據(jù)通信功能。后續(xù)驗(yàn)證弱網(wǎng)、弱連接下協(xié)議的有效性、可靠性,優(yōu)化系統(tǒng)在文件傳輸過程中對低帶寬、誤碼率高情況下的適應(yīng)性。
參考文獻(xiàn)
[1]劉業(yè)民,田黎曦,龔柳潔,等.“星鏈”在俄烏沖突中的應(yīng)用及對策淺析[J].長江信息通信,2023,36(01):130-133.
[2]徐兵.基于P2P的企業(yè)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2017.
[3]王建.基于JXTA的P2P即時(shí)通信軟件的Java實(shí)現(xiàn)研究[J].無線互聯(lián)科技,2018,15(04):11-12.
[4]丁琳琳,華亞洲,陳澤,等.面向時(shí)空數(shù)據(jù)區(qū)塊鏈的對等網(wǎng)絡(luò)(P2P)通信機(jī)制[J].遼寧大學(xué)學(xué)報(bào)(自然科學(xué)版),2023,50(01):10-19.
[5]蔣華,王坤,楊磊,曲艷博,王偉志,潘文吉.P2P通信中的安全性研究與實(shí)現(xiàn)[J].科技視界,2013(27):12-13.
[6]許坤,趙亮.基于UDP協(xié)議的可靠數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)[J].科技創(chuàng)新導(dǎo)報(bào),2019,16(17):7-8.
[7]張勝.基于Raft算法的分布式系統(tǒng)數(shù)據(jù)一致性研究[D].成都:西南交通大學(xué),2020.
[8]徐衛(wèi)克.基于優(yōu)化Kademlia協(xié)議的P2P網(wǎng)絡(luò)資源發(fā)現(xiàn)算法研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(05):41-42.
[9]丁倩.基于Android平臺(tái)局域網(wǎng)即時(shí)通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2013.
作者單位:中國電子科學(xué)研究院
責(zé)任編輯:尚丹