摘 要: 針對(duì)特殊場(chǎng)景下需通過北斗短報(bào)文傳輸大量數(shù)據(jù)信息的需求,探討并設(shè)計(jì)了一種適合于北斗通信的長報(bào)文可靠傳輸協(xié)議框架。通過擴(kuò)展北斗短報(bào)文傳輸協(xié)議,結(jié)合Redis應(yīng)用,提出最大重傳次數(shù)和超時(shí)等待控制因子,建立北斗長報(bào)文傳輸差錯(cuò)重傳機(jī)制,從而解決了大數(shù)據(jù)量報(bào)文在北斗通道的傳輸問題。實(shí)驗(yàn)結(jié)果表明,該傳輸協(xié)議可實(shí)現(xiàn)對(duì)長報(bào)文丟包的差錯(cuò)重傳功能,有效控制“盲目發(fā)送”現(xiàn)象,使得有效信息率得到提高。
關(guān)鍵詞: 北斗衛(wèi)星;長報(bào)文;Redis;可靠傳輸
0 引言
北斗衛(wèi)星導(dǎo)航系統(tǒng)所具備的短報(bào)文通信功能,可在我國領(lǐng)土區(qū)域內(nèi)實(shí)現(xiàn)全覆蓋、全天候服務(wù),具有傳送速度快、不受地形條件和環(huán)境氣候影響等優(yōu)勢(shì),為解決遠(yuǎn)海、沙漠、深山等無移動(dòng)網(wǎng)絡(luò)信號(hào)覆蓋地區(qū)的信息獲取和發(fā)布提供了一種有效的解決途徑。
北斗衛(wèi)星導(dǎo)航系統(tǒng)的信道資源有限,短報(bào)文通信受到北斗卡的通信頻度和通信報(bào)文長度方面的限制。同時(shí),受環(huán)境及設(shè)備狀態(tài)等影響,通信過程存在數(shù)據(jù)丟包現(xiàn)象。這些問題很大程度上影響了短報(bào)文的應(yīng)用效果[1]。實(shí)際應(yīng)用中,傳輸報(bào)文長度往往又是不固定的,傳輸?shù)臄?shù)據(jù)量較大時(shí),單次北斗短報(bào)文通信無法滿足需求。如何有效利用北斗短報(bào)文通信資源,豐富其傳輸內(nèi)容并提高數(shù)據(jù)傳輸可靠性,成為北斗相關(guān)數(shù)據(jù)通信系統(tǒng)建設(shè)的一個(gè)重要課題。
本文針對(duì)北斗報(bào)文傳輸應(yīng)用的實(shí)際需求,結(jié)合北斗數(shù)據(jù)信息服務(wù)平臺(tái)應(yīng)用,設(shè)計(jì)一種適合北斗長報(bào)文傳輸管理的方案。通過對(duì)傳輸數(shù)據(jù)進(jìn)行協(xié)議約定,提出報(bào)文通信重傳控制因子和長報(bào)文信息補(bǔ)發(fā)請(qǐng)求機(jī)制,保證北斗終端與系統(tǒng)平臺(tái)之間報(bào)文的有效傳輸。
1 傳輸協(xié)議分析
針對(duì)北斗短報(bào)文通信特點(diǎn),結(jié)合信息服務(wù)平臺(tái)功能需求,設(shè)計(jì)基于存儲(chǔ)系統(tǒng)的長報(bào)文可靠傳輸框架協(xié)議,以解決數(shù)據(jù)信息服務(wù)系統(tǒng)的通信問題。
1.1 系統(tǒng)組成
本設(shè)計(jì)系統(tǒng)組成如圖1所示,主要包括:北斗通道端、數(shù)據(jù)處理中心、北斗終端、存儲(chǔ)系統(tǒng)和應(yīng)用系統(tǒng)。
根據(jù)北斗信息服務(wù)平臺(tái)設(shè)計(jì)需求,內(nèi)存數(shù)據(jù)庫采用Redis系統(tǒng)。Redis是一款高性能的key-value存儲(chǔ)系統(tǒng),其讀寫效率高,可提高北斗短報(bào)文處理能力,降低響應(yīng)時(shí)間長度。配合協(xié)議設(shè)置及數(shù)據(jù)管理算法,可為長報(bào)文分包處理提供一種有效的解決方案。
1.2 協(xié)議規(guī)約
北斗短報(bào)文功能支持的單次傳輸長度有效,需要對(duì)北斗數(shù)據(jù)傳輸格式進(jìn)行協(xié)議拓展[2],如圖2所示。
本文為使短報(bào)文電文內(nèi)容攜帶控制信息,并豐富數(shù)據(jù)類型,對(duì)協(xié)議二次封裝[3],具體定義如下:
?。?)協(xié)議頭部:為了兼容和區(qū)分標(biāo)準(zhǔn)的北斗數(shù)據(jù)格式及平臺(tái)擴(kuò)展協(xié)議格式,電文開頭設(shè)置協(xié)議編碼部分,占用半個(gè)字節(jié)。
?。?)數(shù)據(jù)標(biāo)識(shí):占用半個(gè)字節(jié),每個(gè)比特字段分別代表一個(gè)標(biāo)識(shí),如標(biāo)識(shí)是否壓縮、加密或補(bǔ)包數(shù)據(jù)等。
?。?)總包數(shù):占用1 B,長報(bào)文數(shù)據(jù)通過總包數(shù)大小字段來判斷數(shù)據(jù)是否需要進(jìn)行數(shù)據(jù)緩存管理。
?。?)當(dāng)前分包編號(hào):占用1 B,標(biāo)識(shí)當(dāng)前報(bào)文屬于分包數(shù)據(jù)的第幾個(gè)分包。如果數(shù)據(jù)不需要分包時(shí),該數(shù)據(jù)字段的值和總包數(shù)字段的值都為1。
(5)應(yīng)用協(xié)議編碼:占用1 B,標(biāo)識(shí)系統(tǒng)通信過程中的不同業(yè)務(wù)編碼。如語言、圖像、導(dǎo)航位置等。
?。?)應(yīng)用數(shù)據(jù)實(shí)體:為電文字段剩余可用部分,具體傳輸數(shù)據(jù)格式可由系統(tǒng)業(yè)務(wù)根據(jù)需要定義。
2 框架模型設(shè)計(jì)
為解決報(bào)文發(fā)送的頻度和長度受限問題,本文采用北斗多卡機(jī)來處理報(bào)文收發(fā)工作,實(shí)現(xiàn)短報(bào)文的多卡工作模式[4],極大提高了短報(bào)文的發(fā)送頻度。
數(shù)據(jù)處理整體流程結(jié)構(gòu)如圖3所示。
2.1 協(xié)議設(shè)計(jì)
?。?)北斗報(bào)文協(xié)議
北斗通道接入層設(shè)備使用的北斗用戶機(jī)接口協(xié)議包括4.0版本和2.1版本。通過軟件設(shè)計(jì)一個(gè)通用數(shù)據(jù)接入實(shí)現(xiàn)層,解決北斗數(shù)據(jù)源差異性問題。
?。?)數(shù)據(jù)傳輸控制
北斗通信主要以大量的小字節(jié)數(shù)據(jù)為主,傳輸控制除對(duì)長報(bào)文數(shù)據(jù)編解碼外,還配合存儲(chǔ)系統(tǒng)實(shí)現(xiàn)對(duì)分包數(shù)據(jù)的重傳管理。
下發(fā)分包數(shù)據(jù)時(shí),先將數(shù)據(jù)存入Redis并設(shè)置有效期,分包發(fā)送結(jié)束后更新發(fā)送狀態(tài)。若在數(shù)據(jù)有效期內(nèi)收到重傳請(qǐng)求,則根據(jù)請(qǐng)求報(bào)文表明的編碼重發(fā)分包,并延長存儲(chǔ)數(shù)據(jù)的有效期,同時(shí)將重傳請(qǐng)求計(jì)數(shù)加1。若重傳超過N次,清除該存儲(chǔ)數(shù)據(jù),結(jié)束本條長報(bào)文的緩存管理。N值由系統(tǒng)能力設(shè)定,默認(rèn)為3。
數(shù)據(jù)接收處理算法流程如圖4所示。
2.2 緩存管理
由于存儲(chǔ)的分包對(duì)象信息較多,本文采用Hash數(shù)據(jù)結(jié)構(gòu)管理數(shù)據(jù),并采用Redis默認(rèn)的數(shù)據(jù)過期策略處理無效數(shù)據(jù)。同時(shí),本文對(duì)緩存對(duì)象結(jié)構(gòu)設(shè)置了數(shù)據(jù)發(fā)送標(biāo)識(shí)及發(fā)送次數(shù)計(jì)數(shù),以便差錯(cuò)重傳過程中能有效識(shí)別重傳數(shù)據(jù)狀態(tài)。
2.3 自適應(yīng)差錯(cuò)重傳
針對(duì)長報(bào)文數(shù)據(jù)傳輸過程中存在的丟包現(xiàn)象,參考文獻(xiàn)[5]中提出了反饋機(jī)制,但只有反饋機(jī)制的情況下,若通信成功率低,容易造成循環(huán)反饋或長時(shí)間等待反饋的現(xiàn)象,盲目請(qǐng)求重發(fā)嚴(yán)重浪費(fèi)了北斗帶寬資源。參考文獻(xiàn)[6]提出了確認(rèn)答復(fù)機(jī)制,但在需要緩沖的數(shù)據(jù)量大時(shí)沒有提出對(duì)應(yīng)管理方式。本設(shè)計(jì)考慮北斗通信過程中實(shí)際通信流量限制等因素,差錯(cuò)重傳方式參考并簡化TCP/IP傳輸機(jī)制。同時(shí),為防止出現(xiàn)反復(fù)重復(fù)發(fā)送重傳請(qǐng)求或長時(shí)間等待補(bǔ)包數(shù)據(jù)帶來的資源開銷問題,引入了重傳控制因子,由請(qǐng)求計(jì)數(shù)N和補(bǔ)包等待時(shí)間T兩個(gè)因素共同組成。同時(shí)對(duì)重傳請(qǐng)求機(jī)制設(shè)定發(fā)送重傳請(qǐng)求次數(shù)的限制,并在接收補(bǔ)包數(shù)據(jù)過程中增設(shè)可動(dòng)態(tài)調(diào)整等待長度機(jī)制。等待時(shí)間T=C×t,其中t為30 s的等待時(shí)間,C為丟包總數(shù)。若在N次的T時(shí)間內(nèi)都沒有收到補(bǔ)包數(shù)據(jù),則放棄請(qǐng)求重傳;若N次重傳請(qǐng)求中有收到補(bǔ)包數(shù)據(jù),但還沒接收完整且N>1時(shí),重新賦值N為N/2,并重新執(zhí)行請(qǐng)求重傳過程。
以接收端的丟包請(qǐng)求重傳為例,控制因子自適應(yīng)調(diào)整算法包含重傳請(qǐng)求控制和數(shù)據(jù)補(bǔ)包處理兩部分。重傳請(qǐng)求控制流程負(fù)責(zé)對(duì)Redis中存在的緩存數(shù)據(jù)進(jìn)行重傳并管理控制因子參數(shù)N和T,具體流程如圖5所示。
數(shù)據(jù)補(bǔ)包處理負(fù)責(zé)對(duì)補(bǔ)包報(bào)文進(jìn)行處理,更新緩存數(shù)據(jù),并根據(jù)實(shí)際補(bǔ)包情況動(dòng)態(tài)調(diào)整控制因子,具體流程如圖6所示。
3 測(cè)試分析
測(cè)試協(xié)議框架過程采用北斗終端上報(bào)海洋漁業(yè)數(shù)據(jù)信息,測(cè)試設(shè)備均采用北斗多卡機(jī)設(shè)備,每個(gè)設(shè)備接入16張北斗卡。測(cè)試過程以發(fā)送230個(gè)漢字的長報(bào)文進(jìn)行多組對(duì)比通信,部分測(cè)試數(shù)據(jù)如表1所示。
從表1可看出,引入控制因子后,通信出現(xiàn)丟包時(shí),平臺(tái)能夠自動(dòng)完成補(bǔ)包請(qǐng)求報(bào)文,雖然會(huì)損耗報(bào)文用于發(fā)送重發(fā)請(qǐng)求,但通過控制因子的調(diào)整,避免了盲目發(fā)送請(qǐng)求的現(xiàn)象,提高了整體通信有效率。第二組數(shù)據(jù)有效通信率沒有得到有效提高,這是實(shí)際通信中受到環(huán)境影響,導(dǎo)致請(qǐng)求重發(fā)過程沒有得到有效的響應(yīng)。測(cè)試結(jié)果表明,本文的北斗報(bào)文可靠傳輸協(xié)議框架設(shè)計(jì)合理,能夠有效解決大數(shù)據(jù)量報(bào)文信息在北斗短報(bào)文傳輸過程中存在的丟包重傳問題,驗(yàn)證了本方案的準(zhǔn)確性和可行性。
4 結(jié)論
隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)建設(shè)力度的不斷加大,基于北斗短報(bào)文通信的應(yīng)用也越來越多。本文在分析北斗衛(wèi)星導(dǎo)航短報(bào)文通信功能的特點(diǎn)基礎(chǔ)上,結(jié)合實(shí)際應(yīng)用需求,探討了基于存儲(chǔ)系統(tǒng)的報(bào)文可靠傳輸框架方案設(shè)計(jì)及實(shí)現(xiàn),對(duì)將北斗短報(bào)文通信更廣泛而深入地應(yīng)用在航空航海運(yùn)輸、物聯(lián)網(wǎng)及地理監(jiān)測(cè)等方面具有一定的借鑒和參考意義,有助于北斗在信息化應(yīng)用中發(fā)揮更大作用。
參考文獻(xiàn)
[1] 史向陽.北斗系統(tǒng)在海上多媒體數(shù)據(jù)傳輸中的應(yīng)用研究[D].大連:大連海事大學(xué),2014.
[2] 楊濤,黃森,鐘戎強(qiáng),等.基于本體的北斗信息采集系統(tǒng)研究[J].電腦編程技巧與維護(hù),2012(24):45-46,116.
[3] Mao Xia, Liu Xiang, Feng Tao, et al. A communication protocol of man overboard system based on BeiDou[C]. 2014 IEEE 17th International Conference on Intelligent Transportation Systems(ITSC), Qingdao, China, 2014: 1910-1911.
[4] 繆袁泉,丁琪,胡知斌,等.基于北斗短報(bào)文功能的疏浚船舶數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[J].中國港灣建設(shè),2014(10):53-56.
[5] 姚作新.基于北斗衛(wèi)星短信通信方式的無人值守自動(dòng)氣象站網(wǎng)[J].氣象科技,2012,40(3):340-344.
[6] 張維杰,陳歡,羅靜,等.基于北斗衛(wèi)星的機(jī)動(dòng)衛(wèi)星通信地球站遠(yuǎn)端技術(shù)支援系統(tǒng)研究[J].微型機(jī)與應(yīng)用,2015,34(4):58-60,63.