国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種應(yīng)用層可靠組播傳輸控制方法

2023-07-05 13:57:04曹雪君
航天控制 2023年3期
關(guān)鍵詞:按序發(fā)送數(shù)據(jù)應(yīng)用層

曹雪君,童 心

北京航天自動控制研究所,北京 100854

0 引言

隨著航天領(lǐng)域業(yè)務(wù)的發(fā)展,戰(zhàn)術(shù)及運載領(lǐng)域?qū)υ囼灁?shù)據(jù)的實時處理效率不斷地提出新的要求。由于試驗數(shù)據(jù)的種類和數(shù)量越來越多,多屏顯示的需求日益增加。數(shù)據(jù)既需要在多個終端之間實現(xiàn)可靠傳輸,又需要保證傳輸?shù)男?。利用TCP通信技術(shù),發(fā)送方與多個終端同時建立多條TCP傳輸通路可以保證傳輸?shù)目煽啃?但TCP的三次握手及確認(rèn)機制,使網(wǎng)絡(luò)傳輸?shù)膲毫^大,由此產(chǎn)生的延遲無法滿足航天領(lǐng)域?qū)?shù)據(jù)處理實時性的要求;基于UDP的組播傳輸能夠解決傳輸效率問題,但由于航天型號試驗中時序數(shù)據(jù)的重要性較高,必須保證傳輸?shù)目煽啃?因此組播的不可靠傳輸又無法滿足此要求。另外,航天領(lǐng)域的特殊性質(zhì)使得設(shè)備的國產(chǎn)化要求日益激增,雖然目前已有一些針對國產(chǎn)化數(shù)據(jù)處理技術(shù)的優(yōu)化方法[1-2],但對于數(shù)據(jù)傳輸?shù)膬?yōu)化研究卻較少。因此,航天領(lǐng)域的數(shù)據(jù)處理對數(shù)據(jù)傳輸提出了更高的要求。

本文提出了一種應(yīng)用層可靠組播傳輸控制方法,該方法在發(fā)送數(shù)據(jù)時添加額外的序號信息、并定時發(fā)送心跳信息,接收方反饋對數(shù)據(jù)的接收情況,通過收發(fā)雙方不斷地進(jìn)行信息交互,實現(xiàn)組播傳輸?shù)目煽啃浴?/p>

1 應(yīng)用層可靠組播傳輸控制技術(shù)研究

1.1 現(xiàn)有應(yīng)用層組播方法

目前對應(yīng)用層組播的研究成果方面,文獻(xiàn)[3-6]主要對應(yīng)用層組播算法進(jìn)行了研究和優(yōu)化,提高了組播傳輸?shù)男省⒎€(wěn)定性等,但并不能保證數(shù)據(jù)傳輸?shù)目煽啃?。在提升可靠性方?目前有M-THROM[7]模型,該模型適用于低時延的情況,但由于模型實現(xiàn)的底層依賴TCP協(xié)議,因此開銷過大;主動隨時較發(fā)[8]通過環(huán)結(jié)構(gòu)提高數(shù)據(jù)傳輸?shù)目煽啃?但該方法依賴概率論,并不保證絕對可靠;此外,基于心跳機制的差錯控制模型[9]采用了心跳與序列號控制的方法,該方法仍只提供合理保證。本文在該方法的基礎(chǔ)上進(jìn)行擴(kuò)展,進(jìn)一步保證應(yīng)用層組播傳輸?shù)目煽啃浴?/p>

1.2 可靠組播實現(xiàn)思路

基于UDP的組播發(fā)送方只負(fù)責(zé)發(fā)送數(shù)據(jù),不考慮接收方對數(shù)據(jù)的接收情況,若要實現(xiàn)可靠傳輸,需要收發(fā)雙方進(jìn)行額外的信息交互,互相反饋各自收發(fā)情況。

對于發(fā)送方,需要定期向接收方反饋已發(fā)送的數(shù)據(jù)報文信息。對于接收方,需要判斷是否存在丟失的數(shù)據(jù)報文,當(dāng)存在丟失的數(shù)據(jù)時,將丟包信息反饋給發(fā)送方進(jìn)行重新發(fā)送。發(fā)送方每發(fā)送一包數(shù)據(jù)報文時,需要先緩存該數(shù)據(jù)報文,以便丟包時重發(fā)。但緩存數(shù)據(jù)又不宜過多,必須定期清除緩存中所有接收方均已收到的數(shù)據(jù)報文。因此,接收方還需要向發(fā)送方反饋已收到的報文信息?;谏鲜鰴C理,將可靠組播傳輸思想闡述如下:

發(fā)送方在發(fā)送數(shù)據(jù)時,對數(shù)據(jù)報文進(jìn)行連續(xù)按序遞增編號,即數(shù)據(jù)報文中攜帶報文序號。發(fā)送方定期廣播心跳報文,心跳報文攜帶已發(fā)送的最大報文序號。接收方接收到心跳報文后,根據(jù)心跳報文中攜帶的序號,判斷是否存在丟包。如若丟包,則向發(fā)送方反饋丟包的數(shù)據(jù)報文序號,以便發(fā)送方在收到丟包信息時重新發(fā)送該序號的數(shù)據(jù)。

發(fā)送方在發(fā)送數(shù)據(jù)后將數(shù)據(jù)在本地進(jìn)行緩存。接收方定期向發(fā)送方反饋已連續(xù)按序收到的最大報文序號。發(fā)送方根據(jù)所有接收方反饋的序號判斷可以清除的緩存數(shù)據(jù)。

接收方接收到的數(shù)據(jù)可能存在丟包和亂序,為了提高處理效率,接收方也采用了緩存機制,將非按序接收到的報文數(shù)據(jù)內(nèi)容進(jìn)行緩存。直到接收到的數(shù)據(jù)包使緩存中的數(shù)據(jù)連續(xù),則從緩存中取數(shù)據(jù)進(jìn)行處理并將該數(shù)據(jù)從緩存清除。

2 應(yīng)用層可靠組播設(shè)計與實現(xiàn)

2.1 報文分類與結(jié)構(gòu)

傳統(tǒng)的組播傳播方式中,發(fā)送方直接將數(shù)據(jù)內(nèi)容發(fā)送即可,不考慮接收方丟包及亂序的情況。為了實現(xiàn)組播傳輸?shù)目煽啃?首先對應(yīng)用層的傳輸報文進(jìn)行擴(kuò)展。在本文提出的可靠組播傳輸模型中,發(fā)送方的報文分為2類:數(shù)據(jù)報文和心跳報文。接收方為了反饋接收到的數(shù)據(jù)情況,向發(fā)送方反饋的報文也分為2類:NAK重發(fā)報文和ACK確認(rèn)報文。

2.1.1 發(fā)送方報文

數(shù)據(jù)報文:發(fā)送方的數(shù)據(jù)報文攜帶數(shù)據(jù)內(nèi)容和報文序號,其中報文序號從1開始遞增,用來控制組播傳輸數(shù)據(jù)的可靠性與有序性。

心跳報文:發(fā)送方定時發(fā)送心跳報文,用于通知接收方目前已發(fā)送的最大數(shù)據(jù)報文序號。

發(fā)送方報文的具體格式見表1。

表1 發(fā)送方報文格式

2.1.2 接收方報文

NAK重發(fā)報文:接收方反饋的NAK重發(fā)報文攜帶丟失的報文序號,用于通知發(fā)送方重新發(fā)送該序號的數(shù)據(jù)報文,以實現(xiàn)丟包重傳機制。

ACK確認(rèn)報文:接收方反饋的ACK確認(rèn)報文攜帶已按序且連續(xù)收到的最大報文序號,用于發(fā)送方清除緩存中的數(shù)據(jù)報文。

接收方報文的具體格式見表2。

表2 接收方報文格式

2.2 發(fā)送方對報文的處理策略

1)發(fā)送數(shù)據(jù)報文的處理邏輯

發(fā)送方每發(fā)送一包數(shù)據(jù)報文,首先更新當(dāng)前已經(jīng)發(fā)送的最大報文序號,用于后續(xù)發(fā)送心跳報文時使用;其次緩存該數(shù)據(jù)報文內(nèi)容,以便在接收方丟包時重發(fā)。

2)發(fā)送心跳報文的處理邏輯

發(fā)送方定時發(fā)送心跳報文,心跳報文攜帶發(fā)送方已經(jīng)發(fā)送的最大報文序號。

3)接收NAK重發(fā)報文的處理邏輯

每當(dāng)發(fā)送方收到一條NAK重發(fā)報文,根據(jù)NAK重發(fā)報文中的序號,在緩存中查找該序號對應(yīng)的數(shù)據(jù)內(nèi)容,將該數(shù)據(jù)內(nèi)容重新進(jìn)行廣播發(fā)送。

4)接收ACK確認(rèn)報文的處理邏輯

ACK確認(rèn)報文攜帶該接收方已按序收到的最大報文序號,用于發(fā)送方刪除數(shù)據(jù)報文緩存。由于組播存在多個接收方,每個接收方收到的最大報文序號可能不同,因此需要分別記錄。

每當(dāng)發(fā)送方收到一條ACK確認(rèn)報文,記錄該報文發(fā)送者的IP地址、發(fā)送時間、以及攜帶的最大報文序號。由于接收方可能中途退出或掉線,當(dāng)發(fā)送方清除數(shù)據(jù)報文緩存時,首先需要判斷當(dāng)前在線的接收方。判斷某個接收方是否在線時,根據(jù)當(dāng)前時間以及最后收到該接收方ACK確認(rèn)報文的時間,當(dāng)兩者之間的時間差超過一定域值時,認(rèn)為該接收方已經(jīng)退出。其次,比較所有在線接收方的最大報文序號,取最小值作為發(fā)送方可以刪除的最大報文序號,這樣可保證所有當(dāng)前在線的接收方均已收到該序號前的所有數(shù)據(jù)報文。發(fā)送方清除該序號前的所有緩存報文。

2.3 接收方對報文的處理策略

2.3.1 接收數(shù)據(jù)報文處理邏輯

應(yīng)用層可靠組播傳輸?shù)暮诵脑谟诮邮辗綄?shù)據(jù)報文的處理。當(dāng)收到亂序甚至丟包的數(shù)據(jù)報文時,如何對報文進(jìn)行緩存、重排處理,是整個可靠組播技術(shù)的關(guān)鍵所在。

接收方收到數(shù)據(jù)報文后,根據(jù)該數(shù)據(jù)報文的序號,有如下幾種操作方式:丟棄處理、緩存處理、正常處理該報文、處理該報文及緩存報文。

1)丟棄處理:由于存在多個接收方,某一接收方丟失數(shù)據(jù)并要求發(fā)送方重發(fā)數(shù)據(jù)報文時,其他接收方可能會收到重復(fù)的數(shù)據(jù)報文,對于收到的重復(fù)報文,直接丟棄即可。

2)緩存處理:當(dāng)收到一條未收到過的非按序的數(shù)據(jù)報文時,將該報文內(nèi)容進(jìn)行緩存,待接收到全部連續(xù)按序報文時再進(jìn)行處理。例如,已收到序號為4~6的數(shù)據(jù)報文,然后收到了序號為8的數(shù)據(jù)報文,則將該報文內(nèi)容緩存,待收到序號為7的數(shù)據(jù)報文后再進(jìn)行處理,以防止亂序。

3)正常處理該報文:當(dāng)已收到的所有報文序號均連續(xù),且下一條收到的數(shù)據(jù)報文序號也是按序的,則正常處理該報文即可。例如已收到序號為1~5的報文,接下來收到序號為6的數(shù)據(jù)報文。

4)處理該報文及緩存報文。針對上述2)中緩存數(shù)據(jù)報文的情形,當(dāng)收到的報文使緩存報文按序且連續(xù)時,屬于該情形。如2)中的示例,已收到序號為4、5、6和8的數(shù)據(jù)報文(序號為8的報文已緩存),當(dāng)收到序號為7的數(shù)據(jù)報文時,依次處理序號為7和8的數(shù)據(jù)報文,即處理序號為7的該報文以及序號為8的緩存報文。

2.3.2 接收心跳報文處理邏輯

接收方收到心跳報文后,根據(jù)心跳報文中的序號,判斷該序號前的數(shù)據(jù)報文是否有未收到的情形,若存在未收到的數(shù)據(jù)報文,則向發(fā)送方發(fā)送攜帶丟失數(shù)據(jù)報文序號的NAK重發(fā)報文。

2.4 發(fā)送方與接收方處理流程

2.4.1 發(fā)送方流程

發(fā)送方的處理包括以下幾個流程:

1)發(fā)送數(shù)據(jù):發(fā)送數(shù)據(jù)報文并緩存,其中報文序號從1開始按序遞增。

2)發(fā)送心跳:定時廣播當(dāng)前已發(fā)送最大數(shù)據(jù)報文序號的心跳報文。

3)監(jiān)聽反饋報文:若收到NAK重發(fā)報文,優(yōu)先發(fā)送丟失的數(shù)據(jù)報文;若收到ACK確認(rèn)報文,記錄該接收方已按序收到的最大報文序號。

4)清除緩存:根據(jù)接收方反饋的ACK確認(rèn)報文序號,定時清除緩存中所有當(dāng)前在線接收方均已收到的數(shù)據(jù)報文。

發(fā)送方的具體處理流程如圖1所示。

圖1 發(fā)送方處理流程

2.4.2 接收方流程

接收方的處理包括以下幾個流程:

1)監(jiān)聽報文:根據(jù)接收到的報文類型,判斷該報文的處理邏輯。

2)處理數(shù)據(jù)報文:根據(jù)報文序號進(jìn)行相應(yīng)的處理(包括丟棄、正常處理、緩存等)。

3)處理心跳報文:首先根據(jù)心跳報文中的報文序號和目前已經(jīng)接收到的數(shù)據(jù)報文序號,判斷是否丟失數(shù)據(jù),在丟失數(shù)據(jù)時發(fā)送NAK重發(fā)報文。其次根據(jù)已按序收到的最大報文序號發(fā)送ACK確認(rèn)報文。

接收方的具體處理流程如圖2所示。

圖2 接收方處理流程

3 實驗與應(yīng)用

3.1 實驗參數(shù)設(shè)置

實驗部分,通過不同的實驗組合驗證組播傳輸?shù)目煽啃?。分別在1~3個接收端的情況下,發(fā)送方連續(xù)發(fā)送700萬條組播數(shù)據(jù),數(shù)據(jù)載荷長度不等,分為長、中、短3個級別。短級別載荷長度包括幾個字節(jié)數(shù)據(jù),中級別載荷長度包括幾十個字節(jié)數(shù)據(jù),長級別載荷長度包括幾百個字節(jié)數(shù)據(jù)。

實驗中,人為地模擬丟包情形。在發(fā)送方模擬丟包場景,丟包率分別為2%、1%和0.5%。為了更有效地接近真實的丟包場景,實驗中不僅在發(fā)送原始數(shù)據(jù)包時模擬丟包,在發(fā)送重發(fā)數(shù)據(jù)包時也模擬丟包情形。

3.2 實驗結(jié)果

為了直觀地看到接收方是否完整且有序地收到數(shù)據(jù)包,某次實驗中,令發(fā)送方按序發(fā)送從1開始遞增的數(shù)字,使發(fā)送報文編號與數(shù)據(jù)內(nèi)容一致,便 于記錄每包數(shù)據(jù)對應(yīng)的報文序號。觀察發(fā)送方的重發(fā)數(shù)據(jù)包與接收方收到的數(shù)據(jù)內(nèi)容。

實驗中,發(fā)送方模擬丟包并重發(fā)了部分?jǐn)?shù)據(jù)報文,如編號為562、567和573的報文;觀察接收方收到的數(shù)據(jù),接收方能夠按序且完整地收到發(fā)送方重發(fā)的所有數(shù)據(jù)報文。

此外,對3.1節(jié)不同實驗參數(shù)下,分別進(jìn)行了各組實驗。當(dāng)數(shù)據(jù)載荷長度分別為幾字節(jié)、幾十字節(jié)和幾百字節(jié)時,發(fā)送方連續(xù)發(fā)送700萬條組播數(shù)據(jù),在不同丟包率情形下,所有接收方均能收到完整有序的數(shù)據(jù)。因此,實驗驗證了本文提出的應(yīng)用層可靠組播傳輸方法的有效性。

3.3 航天領(lǐng)域應(yīng)用

目前組播主要應(yīng)用于航天型號的運載和戰(zhàn)術(shù)領(lǐng)域的數(shù)據(jù)處理。型號在試驗過程中,同時存在多個終端顯示不同的試驗數(shù)據(jù)。發(fā)送方通過組播發(fā)送數(shù)據(jù),多個客戶端同時接收數(shù)據(jù),并對本客戶端所需展示的數(shù)據(jù)進(jìn)行篩選、處理、顯示等操作。

4 結(jié)論

基于重傳與確認(rèn)機制的應(yīng)用層可靠組播傳輸方法結(jié)合了TCP和UDP傳輸?shù)膬?yōu)點,實現(xiàn)了可靠、按序、快速的數(shù)據(jù)傳輸。該方法在較低的網(wǎng)絡(luò)開銷下,有效地滿足了航天運載和戰(zhàn)術(shù)領(lǐng)域多個客戶端同時、可靠、高效地顯示不同數(shù)據(jù)的需求。

猜你喜歡
按序發(fā)送數(shù)據(jù)應(yīng)用層
移動自組網(wǎng)中MAC層協(xié)議研究
深圳翼虎投資董事長余定恒:兔年市場圍繞車聯(lián)網(wǎng)、創(chuàng)新藥、消費復(fù)蘇等“按序”展開
閱讀光陰
揚子江詩刊(2022年3期)2022-05-06 08:46:42
原料自動化立體倉庫按序均衡投料系統(tǒng)設(shè)計
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點性能分析
帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
基于分級保護(hù)的OA系統(tǒng)應(yīng)用層訪問控制研究
使用IPSec安全傳輸數(shù)據(jù)
基于雙線性對的多重數(shù)字簽名方案
新一代雙向互動電力線通信技術(shù)的應(yīng)用層協(xié)議研究
通州市| 新平| 怀远县| 兴山县| 龙南县| 五寨县| 江永县| 买车| 蕲春县| 泗阳县| 新泰市| 苗栗县| 定州市| 合肥市| 丹江口市| 西吉县| 航空| 深泽县| 孟连| 西城区| 玉树县| 浦县| 京山县| 高邮市| 化德县| 永德县| 富裕县| 随州市| 哈巴河县| 桂东县| 房产| 聊城市| 平凉市| 灵丘县| 红安县| 新兴县| 广宁县| 铜川市| 乌什县| 韩城市| 六盘水市|