摘 要: 針對(duì)特殊場(chǎng)景下需通過(guò)北斗短報(bào)文傳輸大量數(shù)據(jù)信息的需求,探討并設(shè)計(jì)了一種適合于北斗通信的長(zhǎng)報(bào)文可靠傳輸協(xié)議框架,。通過(guò)擴(kuò)展北斗短報(bào)文傳輸協(xié)議,,結(jié)合Redis應(yīng)用,提出最大重傳次數(shù)和超時(shí)等待控制因子,,建立北斗長(zhǎng)報(bào)文傳輸差錯(cuò)重傳機(jī)制,,從而解決了大數(shù)據(jù)量報(bào)文在北斗通道的傳輸問(wèn)題,。實(shí)驗(yàn)結(jié)果表明,該傳輸協(xié)議可實(shí)現(xiàn)對(duì)長(zhǎng)報(bào)文丟包的差錯(cuò)重傳功能,,有效控制“盲目發(fā)送”現(xiàn)象,,使得有效信息率得到提高。
關(guān)鍵詞: 北斗衛(wèi)星,;長(zhǎng)報(bào)文,;Redis;可靠傳輸
0 引言
北斗衛(wèi)星導(dǎo)航系統(tǒng)所具備的短報(bào)文通信功能,,可在我國(guó)領(lǐng)土區(qū)域內(nèi)實(shí)現(xiàn)全覆蓋,、全天候服務(wù),具有傳送速度快,、不受地形條件和環(huán)境氣候影響等優(yōu)勢(shì),,為解決遠(yuǎn)海、沙漠,、深山等無(wú)移動(dòng)網(wǎng)絡(luò)信號(hào)覆蓋地區(qū)的信息獲取和發(fā)布提供了一種有效的解決途徑,。
北斗衛(wèi)星導(dǎo)航系統(tǒng)的信道資源有限,短報(bào)文通信受到北斗卡的通信頻度和通信報(bào)文長(zhǎng)度方面的限制,。同時(shí),,受環(huán)境及設(shè)備狀態(tài)等影響,通信過(guò)程存在數(shù)據(jù)丟包現(xiàn)象,。這些問(wèn)題很大程度上影響了短報(bào)文的應(yīng)用效果[1],。實(shí)際應(yīng)用中,傳輸報(bào)文長(zhǎng)度往往又是不固定的,,傳輸?shù)臄?shù)據(jù)量較大時(shí),,單次北斗短報(bào)文通信無(wú)法滿足需求。如何有效利用北斗短報(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ì)一種適合北斗長(zhǎng)報(bào)文傳輸管理的方案。通過(guò)對(duì)傳輸數(shù)據(jù)進(jìn)行協(xié)議約定,,提出報(bào)文通信重傳控制因子和長(zhǎng)報(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)的長(zhǎng)報(bào)文可靠傳輸框架協(xié)議,以解決數(shù)據(jù)信息服務(wù)系統(tǒng)的通信問(wèn)題,。
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ù)庫(kù)采用Redis系統(tǒng),。Redis是一款高性能的key-value存儲(chǔ)系統(tǒng),其讀寫效率高,,可提高北斗短報(bào)文處理能力,,降低響應(yīng)時(shí)間長(zhǎng)度。配合協(xié)議設(shè)置及數(shù)據(jù)管理算法,,可為長(zhǎng)報(bào)文分包處理提供一種有效的解決方案,。
1.2 協(xié)議規(guī)約
北斗短報(bào)文功能支持的單次傳輸長(zhǎng)度有效,需要對(duì)北斗數(shù)據(jù)傳輸格式進(jìn)行協(xié)議拓展[2],,如圖2所示,。
本文為使短報(bào)文電文內(nèi)容攜帶控制信息,并豐富數(shù)據(jù)類型,,對(duì)協(xié)議二次封裝[3],,具體定義如下:
(1)協(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ù)等,。
(3)總包數(shù):占用1 B,,長(zhǎng)報(bào)文數(shù)據(jù)通過(guò)總包數(shù)大小字段來(lái)判斷數(shù)據(jù)是否需要進(jìn)行數(shù)據(jù)緩存管理,。
(4)當(dāng)前分包編號(hào):占用1 B,,標(biāo)識(shí)當(dāng)前報(bào)文屬于分包數(shù)據(jù)的第幾個(gè)分包,。如果數(shù)據(jù)不需要分包時(shí),該數(shù)據(jù)字段的值和總包數(shù)字段的值都為1,。
?。?)應(yīng)用協(xié)議編碼:占用1 B,標(biāo)識(shí)系統(tǒng)通信過(guò)程中的不同業(yè)務(wù)編碼,。如語(yǔ)言,、圖像,、導(dǎo)航位置等。
?。?)應(yīng)用數(shù)據(jù)實(shí)體:為電文字段剩余可用部分,,具體傳輸數(shù)據(jù)格式可由系統(tǒng)業(yè)務(wù)根據(jù)需要定義。
2 框架模型設(shè)計(jì)
為解決報(bào)文發(fā)送的頻度和長(zhǎng)度受限問(wèn)題,,本文采用北斗多卡機(jī)來(lái)處理報(bào)文收發(fā)工作,,實(shí)現(xiàn)短報(bào)文的多卡工作模式[4],極大提高了短報(bào)文的發(fā)送頻度,。
數(shù)據(jù)處理整體流程結(jié)構(gòu)如圖3所示,。
2.1 協(xié)議設(shè)計(jì)
(1)北斗報(bào)文協(xié)議
北斗通道接入層設(shè)備使用的北斗用戶機(jī)接口協(xié)議包括4.0版本和2.1版本,。通過(guò)軟件設(shè)計(jì)一個(gè)通用數(shù)據(jù)接入實(shí)現(xiàn)層,,解決北斗數(shù)據(jù)源差異性問(wèn)題。
?。?)數(shù)據(jù)傳輸控制
北斗通信主要以大量的小字節(jié)數(shù)據(jù)為主,,傳輸控制除對(duì)長(zhǎng)報(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ā)分包,并延長(zhǎng)存儲(chǔ)數(shù)據(jù)的有效期,,同時(shí)將重傳請(qǐng)求計(jì)數(shù)加1,。若重傳超過(guò)N次,清除該存儲(chǔ)數(shù)據(jù),,結(jié)束本條長(zhǎng)報(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ù)過(guò)期策略處理無(wú)效數(shù)據(jù),。同時(shí),本文對(duì)緩存對(duì)象結(jié)構(gòu)設(shè)置了數(shù)據(jù)發(fā)送標(biāo)識(shí)及發(fā)送次數(shù)計(jì)數(shù),,以便差錯(cuò)重傳過(guò)程中能有效識(shí)別重傳數(shù)據(jù)狀態(tài),。
2.3 自適應(yīng)差錯(cuò)重傳
針對(duì)長(zhǎng)報(bào)文數(shù)據(jù)傳輸過(guò)程中存在的丟包現(xiàn)象,參考文獻(xiàn)[5]中提出了反饋機(jī)制,,但只有反饋機(jī)制的情況下,,若通信成功率低,,容易造成循環(huán)反饋或長(zhǎng)時(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ì)考慮北斗通信過(guò)程中實(shí)際通信流量限制等因素,,差錯(cuò)重傳方式參考并簡(jiǎn)化TCP/IP傳輸機(jī)制,。同時(shí),為防止出現(xiàn)反復(fù)重復(fù)發(fā)送重傳請(qǐng)求或長(zhǎng)時(shí)間等待補(bǔ)包數(shù)據(jù)帶來(lái)的資源開銷問(wèn)題,,引入了重傳控制因子,,由請(qǐng)求計(jì)數(shù)N和補(bǔ)包等待時(shí)間T兩個(gè)因素共同組成。同時(shí)對(duì)重傳請(qǐng)求機(jī)制設(shè)定發(fā)送重傳請(qǐng)求次數(shù)的限制,,并在接收補(bǔ)包數(shù)據(jù)過(guò)程中增設(shè)可動(dòng)態(tài)調(diào)整等待長(zhǎng)度機(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)求重傳過(guò)程。
以接收端的丟包請(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é)議框架過(guò)程采用北斗終端上報(bào)海洋漁業(yè)數(shù)據(jù)信息,測(cè)試設(shè)備均采用北斗多卡機(jī)設(shè)備,,每個(gè)設(shè)備接入16張北斗卡,。測(cè)試過(guò)程以發(fā)送230個(gè)漢字的長(zhǎng)報(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)求,,但通過(guò)控制因子的調(diào)整,避免了盲目發(fā)送請(qǐng)求的現(xiàn)象,,提高了整體通信有效率,。第二組數(shù)據(jù)有效通信率沒有得到有效提高,這是實(shí)際通信中受到環(huán)境影響,,導(dǎo)致請(qǐng)求重發(fā)過(guò)程沒有得到有效的響應(yīng),。測(cè)試結(jié)果表明,本文的北斗報(bào)文可靠傳輸協(xié)議框架設(shè)計(jì)合理,,能夠有效解決大數(shù)據(jù)量報(bào)文信息在北斗短報(bào)文傳輸過(guò)程中存在的丟包重傳問(wèn)題,,驗(yàn)證了本方案的準(zhǔn)確性和可行性。
4 結(jié)論
隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)建設(shè)力度的不斷加大,,基于北斗短報(bào)文通信的應(yīng)用也越來(lái)越多,。本文在分析北斗衛(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] 史向陽(yáng).北斗系統(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].中國(guó)港灣建設(shè),2014(10):53-56.
[5] 姚作新.基于北斗衛(wèi)星短信通信方式的無(wú)人值守自動(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.