陳欲科
(公誠管理咨詢有限公司,廣東 東莞 523000)
在有限的資源條件下,用無線網(wǎng)絡(luò)進行可靠傳輸是值得從業(yè)者深究和重視的問題。因為在當今的社會上,互聯(lián)網(wǎng)飛速發(fā)展,對網(wǎng)絡(luò)的要求也越來越嚴格,許多的應(yīng)用在無線網(wǎng)絡(luò)上進行無線傳輸,這也就提高了無線網(wǎng)絡(luò)技術(shù)的性能要求,要求無線網(wǎng)絡(luò)具有很高的可靠性和低傳輸時延性[1]。隨著智能手機的推行,移動通信技術(shù)也得到了發(fā)展,但是在有限的資源條件下,要盡可能的發(fā)展技術(shù),提高傳輸安全性,減少丟包問題的發(fā)生,同時也要發(fā)展恢復(fù)數(shù)據(jù)技術(shù),減少丟包問題帶來的損失。
現(xiàn)在應(yīng)用對數(shù)據(jù)包的發(fā)送成功率要求較高,達到百分之百,但是一般情況下,由于無線網(wǎng)絡(luò)的布網(wǎng)簡單,受傳輸環(huán)境影響嚴重,發(fā)送成功率僅有百分之二十,所以,無線網(wǎng)絡(luò)的丟包率很高,遠遠大于有線網(wǎng)絡(luò)。環(huán)境因素的不穩(wěn)定容易導(dǎo)致路徑損耗、盲區(qū)衰落、多徑衰落,還需要其他的技術(shù)來保證無線網(wǎng)絡(luò)傳輸?shù)姆€(wěn)定性,從目前的技術(shù)手段來說,主要有以下四種輔助手段[2]。
ARQ是一種自動請求重傳的機制,當傳輸失敗時,會收到NACK的反饋,發(fā)送端獲得反饋后,會自動重新傳輸數(shù)據(jù),直到收到了ACK的反饋。ACK的反饋代表著發(fā)送成功。但是這種機制也存在著一定的問題,例如當傳輸?shù)木W(wǎng)絡(luò)通信節(jié)點較多,同時向發(fā)送端進行反饋,會造成反饋風暴,出現(xiàn)網(wǎng)絡(luò)延時問題。
FEC是從一定數(shù)量的消息中恢復(fù)想要的信息,可以避免大量無效數(shù)據(jù)的重傳,它延遲性低,但是占用的帶寬資源更多,傳輸大量的信息可以擁有較高的糾錯信息能力,在傳輸開銷和傳輸效率間要尋求一個平衡,F(xiàn)EC和NACK結(jié)合起來使用可以達到這個平衡。在應(yīng)用方面FEC和ARQ適用于不同的場景,F(xiàn)EC更合適用在傳輸錯誤率高的情況下[3]。
將ARQ和FEC結(jié)合起來,就是混合差錯控制技術(shù),用FEC的機制可以避免反饋風暴的出現(xiàn),再利用ARQ的方式,可以對傳輸出錯的數(shù)據(jù)進行糾錯重傳,提高傳達成功率。
網(wǎng)絡(luò)編碼是利用路由器和編碼的信息交換技術(shù),與傳統(tǒng)的傳輸技術(shù)不同,傳統(tǒng)數(shù)據(jù)的傳輸是利用中間節(jié)點作為應(yīng)答器,對數(shù)據(jù)進行存儲和傳。網(wǎng)絡(luò)編碼中最重要的機制是當路徑中的節(jié)點收到信息時傳輸?shù)较乱惶瑢γ總€節(jié)點的信息都進行了網(wǎng)絡(luò)編碼,將網(wǎng)絡(luò)鏈路帶寬有效的利用起來,提高了利用率[4]。
像Tetry一樣,RQUDP以內(nèi)聯(lián)冗余率k發(fā)送數(shù)據(jù),可以恢復(fù)丟失的數(shù)據(jù)包,且將數(shù)據(jù)進行平滑的傳輸。其目標是可靠的傳輸機制,且保證數(shù)據(jù)連續(xù)傳輸?shù)綉?yīng)用程序。像這樣一種輕量、自適應(yīng)、可靠的傳輸機制可以實現(xiàn)為II型HARQ(增量冗余)、UDP傳輸代理或可靠的隧道(如RBSCP)[5]。
RQUDP可以恢復(fù)所有的數(shù)據(jù),避免損失,當沒有可發(fā)送的數(shù)據(jù)時還會自動終止。它具有移動的編碼窗口,可以避免突然發(fā)生的不良情況與事件對數(shù)據(jù)傳輸制度的影響,還能限制接收端解碼的復(fù)雜性,可以憑借輕量級確認機制的連續(xù)包丟失率估計的冗余調(diào)整。
自適應(yīng)冗余度的算法在此不做贅述,接下來將詳細介紹前兩種機制。
表1列出了本節(jié)中使用的不同符號。圖1展示了完整的數(shù)據(jù)交換過程,其中數(shù)據(jù)包為黑色,修復(fù)包為紅色,恢復(fù)包為灰色。大小為W=4的編碼窗口是發(fā)送方緩沖區(qū)中的紅色幀。
表1 本節(jié)不同符號的含義
圖1 完全可靠機制原理圖
RQOUDP對NACK方案進行了改進,提供了一個可靠性良好的工作層,可以適應(yīng)各個環(huán)境,它獨立于包錯誤率(packet error rate, PER)和內(nèi)聯(lián)冗余比。確認包可以指定丟失的序列號列表,還可以指定接收包最高連續(xù)序列號。接收方未確認,發(fā)送方則會將沒確認的部分再次發(fā)送,直到被接收方確認,保證線性組合數(shù)據(jù)包的可靠性。在發(fā)送全部的數(shù)據(jù)以后,要在每個發(fā)送的數(shù)據(jù)包里包含一個Flag,發(fā)送方設(shè)置為1,指示流的結(jié)束。當接收者開始解碼,就會自動使用ARQ的F flag進行結(jié)束,關(guān)閉對話框。這避免了反饋風暴的出現(xiàn),提高了傳輸效率[6]。
它記錄窗口號、窗口總數(shù)以及窗口和內(nèi)存中的地址映射關(guān)系,調(diào)用發(fā)送模塊發(fā)送數(shù)據(jù)包。它從內(nèi)存獲取數(shù)據(jù)存儲信息,封裝數(shù)據(jù)到自定義數(shù)據(jù)幀中,并啟動封裝過程,與消息處理狀態(tài)機相似,在接收數(shù)據(jù)的過程中,可以直接用信息處理模塊對信息進行處理,接收和消息處理同時進行可以提高工作效率。當接收的信息和窗口與發(fā)送的一致,就會用接收窗口進行接收,如果不一致,接收端會利用NACK進行反饋。根據(jù)接收端的反饋,發(fā)送端會采取不同的方法,例如ACK代表需要重新傳輸,而NACK則代表需要先找回丟失數(shù)據(jù)再進行傳輸[7]。
發(fā)生混亂時,可以采用接收端計算資源,在嵌入式系統(tǒng)中,使用大小為W的滑動編碼窗口對譯碼的復(fù)雜程度進行界限,這樣的窗口可以一直增長,直到達到最大的大小,比起傳統(tǒng)的有限大小的窗口更加靈活方便。在特殊情況發(fā)生時,編碼窗口可能會被阻礙,這時還是應(yīng)該繼續(xù)照常發(fā)送新的數(shù)據(jù)包,保證接收端可以平滑的接收數(shù)據(jù)。當編碼的窗口已經(jīng)滿了的時候,可以用不同的系數(shù)編碼同一組數(shù)據(jù),使用多個修復(fù)包進行修復(fù)。在使用RaptorQ進行發(fā)送時,發(fā)送方設(shè)計符號來進行編碼,在反饋過程中,當出現(xiàn)傳輸延遲,且延遲較長,則會觸發(fā)重發(fā),所以必須選擇RTO的一部分作為緩沖包的計時器,RTO是RTT的乘法,選擇RTO的時間會避免重新傳輸,重傳定時器與RTO的測量有關(guān),它能測量網(wǎng)絡(luò)動態(tài)參數(shù),及時反映網(wǎng)絡(luò)狀態(tài),保證數(shù)據(jù)傳輸效率,避免數(shù)據(jù)的丟失。無線網(wǎng)絡(luò)傳播延遲長,延遲的時間可以用來收集符號應(yīng)用RaptorQ的編碼,一般來說,會選擇當前RTO時間的三分之一來作為延遲定時器[8]。
在這個信息高速發(fā)達的時代,對計算機的網(wǎng)絡(luò)通信技術(shù)的發(fā)展要求也越來越高,保障數(shù)據(jù)信息的高效、安全、穩(wěn)定是網(wǎng)絡(luò)通信技術(shù)必須滿足的問題,相關(guān)從業(yè)人員要深入研究如何完成數(shù)據(jù)在不同網(wǎng)絡(luò)之間的傳輸,如何提高網(wǎng)絡(luò)傳輸之間的成功率,才能滿足如今時代發(fā)展的需求。