本發明屬于通信技術領域,具體涉及一種基于線性網絡編碼的數據傳輸優化方法。
背景技術:
車聯網(vehicularadhocnetwork,vanet)作為物聯網(internetofthings,iot)和智能交通系統(intelligenttransportsystems,its)的融合體,是以車內網、車際網和車載移動互聯網為基礎,連接車載設備,手持設備、路側設備等通信終端以及移動互聯網基礎設施,進行無線通訊和信息交換的大規模網絡。隨著寬帶移動通信技術的迅速發展和廣泛應用,以及數字化、網絡化、信息化與智能化技術的快速進步,以車、路和人為主題的通信網絡正在逐步建立。車載終端(包括司機和乘車人的智能手機等)作為接入移動互聯網的移動終端,大范圍、高參與度地加入到移動互聯網的數據傳輸業務,以及成為未來移動互聯網絡發展的必然趨勢。各種典型和新興服務類型在內的vanet信息服務將以文字、圖片、音頻和視頻等多種信息類型全面搭載在數量龐大的、附屬在車、路和人上的智能終端構成的vanet之上。隨著各類信息服務的完善與普及,vanet中的數據傳輸流量將呈現出爆炸式增長。在vanet這個復雜耦合的通信系統當中,不斷提高的數據傳輸需求將給承載網絡帶來巨大的傳輸壓力。vanet的數據傳輸負載能力將面臨挑戰。
vanet中網絡環境的動態多變、物理環境的復雜多樣、信息(空間)環境的數據海量性與稀疏性并存,這使得一些傳統的網絡和數據傳輸技術難以對vanet下的數據傳輸提供很好的支持,而這要求vanet下的數據傳輸更加地高效并且要求數據的傳輸足夠地穩定和可靠。
在傳輸過程中采用網絡編碼技術能夠提高傳輸的穩定性和可靠性。盧冀等學者中提出的適用于無線網絡的廣播重傳方法即滿足了對數據傳輸的高效性要求,同時也減少了數據包的重傳,該方法在基站選擇編碼數據包的依據是最小重傳次數。對于需要重傳的數據包,利用kimy提出的機會式網絡編碼方法進行編碼,這樣做可以使得重傳的次數有效減少,最終在目的端從所有重傳的數據包中恢復出丟失的數據包,從而提高目的端恢復丟失數據包的概率。為了提高無線網絡中傳輸的可靠性和網絡資源的利用率,代仕芳等學者利用網絡編碼技術來達到該目標。車輛在道路上的運動軌跡具有隨機性,但是如果提前知道車輛的運動軌跡,那么就可以提前獲取到熱點,并將從中繼處接收到的有用信息通過網絡編碼技術編碼后傳輸到未來要到達這些熱點傳輸范圍內的車輛,zhangd,yeock等采用了這種思想,即提前預測車輛的運動軌跡。路邊基礎設施作為多跳通信中可用的中繼,當其與車輛節點之間的信道質量降低時,網絡連通性就會相應的降低,為了提高網絡連通性,學者khlass采用了協作中繼的方法,同時,當車輛節點與路邊基礎設施之間進行雙向通信時,將引入模擬網絡編碼技術,從而提高車輛節點與路邊基礎設施之間的通信效率。上面這些文獻都利用網絡編碼技術提高了網絡性能,這說明網絡編碼技術在提供網絡性能方面的可行性。wuy等將網絡編碼運用到兩個用戶通過多跳進行數據交互的通信環境中,在此基礎上提出了一種分布式方案。為了減少數據傳輸的次數,謝勇等學者提出了一種基于網絡編碼技術的數據分發算法。為了提高車輛密集場景下數據傳輸的性能并保證數據傳輸的可靠性,馬寧提出了一種基于代間漸進網絡編碼的數據傳輸策略,代間漸進網絡編碼是對傳統代內網絡編碼的改進,即后代編碼數據包包含了其之前所有代的數據包,目的車輛節點在丟包的情況下可通過后代編碼數據包恢復出丟失的編碼數據包,并能及時解碼出源數據包。
從以上關于線性網絡編碼技術的描述可以看出,目前的研究重心是如何減少數據包在傳輸過程中的丟包率和數據包被篡改的可能性,減少數據包的重傳,保證了數據傳輸過程中的可靠性。但對于傳統數據傳輸方法中數據傳輸效率低的問題還沒有有效的解決辦法。
技術實現要素:
本發明的目的在于解決傳統數據傳輸方法中數據傳輸效率低的問題,為此提出一種基于線性網絡編碼的數據傳輸控制優化方法,該方法在發送端對原始數據進行分組加工,在對這些分組信息進行編碼操作后,將其轉發給下一中繼車輛,當中繼接收到上一車輛轉發過來的數據后,會在進行重編碼操作后再轉發給下一中繼車輛,依此類推,直到數據信息到達目的端,目的端車輛對接收到的數據信息進行解碼操作,恢復出原始數據。
本發明為解決上述技術問題所采取的技術方案是一種基于線性網絡編碼的數據傳輸優化方法,具體包括如下步驟:
步驟1:在發送源將需要傳輸的數據信息進行分組,然后采用線性網絡編碼技術對這些分組數據進行編碼;
步驟2:將編碼后的分組數據轉發到中繼車輛,中繼車輛對接收到的編碼后的數據進行重編碼操作,然后進行轉發;
步驟3:如果下一跳車輛不是目的端車輛,則重復步驟2;如果下一跳車輛是目的端車輛,則進行以下步驟;
步驟4:目的端車輛接收到數據時,首先進行線性相關計算,如果接收到的數據不具有線性相關性,則接收該數據,否則,不接收;
步驟5:對接收到的數據進行解碼操作,恢復出原始數據,如果無法解碼出原始數據,則向上一跳中繼車輛進行反饋,要求重傳;
步驟6:如果目的端車輛仍然無法解碼出原始數據,則繼續向上一跳中繼車輛進行反饋,依此類推,直到目的端車輛能夠解碼出原始數據。
進一步,上述步驟1中所述的分組和編碼具體為:在發送節點處,先將需要發送的數據包分成若干組,每組數據包包含m個數據報文,原始數據用xi(xi∈{1,2,…,m})來表示,然后從有限域fq中選取m個編碼系數(gi1,gi2,…,gim),將其添加到對應報文的頭部,同時在報文頭部添加分組標志,以區分編碼后的數據,按照下式所示的編碼規則將上述分組數據包進行編碼:
其中,gij是隨機選取的參數,涉及的“乘”操作和“加”操作都是在galois域gf(2q)上進行的,在分組數據xi頭部添加分組id和一個代碼向量
為了統計剩余分組數據量,在發送節點設置一個初始值為m'的計數器,其中m'>m,每發送一個編碼數據,計數器就相應地減1,發送節點直到計數器變為0時才會終止編碼數據的發送。
上述步驟2中所述重編碼操作和轉發具體包括:假定中繼節點接收到k個編碼報文y1,y2,…,yk,而(gi1,gi2,…,gim)為該報文對應的編碼系數,其中xi=1,2,…,k,根據編碼規則和
根據上式可知,ylr是原始分組數據的隨機線性組合,其中編碼系數
在進行步驟5所述的解碼操作時,當目的車輛接收到的分組數據數大于發送車輛發送的分組數據數時,且所有分組數據之間不具備相關性時,下面的方程組有解,即此時可以利用高斯消元法對方程組進行求解,從而恢復出原始數據,假定目的車輛共接收到y1,y2,…,ym共m份數據,這些數據對應的編碼系數為(gi1,gi2,…,gim),(i=1,2,…,m),為了判斷能否解碼出原始數據,首先判斷這些編碼系數的相關性,如果編碼系數組成的矩陣
與現有技術相比,本發明的有益效果:
1、本發明在傳統的數據傳輸過程中引入了線性網絡編碼技術,數據通過線性網絡編碼技術合成一個數據包進行發送,加大了分組編碼數據之間的耦合程度,能夠有效減少數據在傳輸過程中的丟包率,從而減少數據的重傳次數。
2、本發明在傳輸過程中采用了線性網絡編碼技術導致的重傳次數的減少,從而減少的傳輸過程中所消耗的帶寬。
3、本發明在傳輸過程中采用了線性網絡編碼技術能夠在目的端更好的保證數據的完整性,提高了數據包的交付率。
附圖說明
圖1為本發明的方法流程圖。
圖2為網絡編碼的報文格式。
具體實施方式
下面結合說明書附圖對本發明創造作進一步的詳細說明。
vanet中以車輛作為節點,其數據傳輸過程如圖1所示主要分為三個過程,發送節點編碼、中繼節點重傳和轉發、目的節點解碼,具體分析如下:
首先是發送節點編碼。在發送節點處,先將需要發送的數據包(即原始數據)分成若干組,每組數據包包含m個數據報文,原始數據用xi(xi∈{1,2,…,m})來表示。然后從有限域fq中選取m個編碼系數(gi1,gi2,…,gim),將其添加到對應報文的頭部,同時在報文頭部添加分組標志,以區分編碼后的數據。按照公式1所示的編碼規則將分組數據包進行編碼。
其中,gij是隨機選取的參數,涉及的“乘”操作和“加”操作都是在galois域gf(2q)上進行的。在分組數據xi頭部添加分組id和一個代碼向量
接下來是中繼節點的重傳和轉發。在接收端需要將分組數據進行還原,同組編碼報文對于數據的還原必不可少。為了減少編碼報文之間的相互干擾,需要對同組編碼報文進行集中發送。在中繼車輛簇中,車輛節點間配合著接收分組數據,同時為了區分同組編碼報文,對編碼的分組數據也需要進行標識。在對同組編碼報文進行緩存的過程中,該中繼簇與下一簇之間會進行信息交互,該信息中包含同組編碼報文的完整程度。在整個發送過程中,中繼簇擁有發送和接收雙重身份。假定中繼節點接收到k個編碼報文y1,y2,…,yk,而(gi1,gi2,…,gim)為該報文對應的編碼系數,其中xi=1,2,…,k。根據編碼規則(公式1)和公式2,中繼節點產生的新編碼報文數是k,然后將新報文繼續向下一跳中繼車輛傳輸。
將公式2進行變形:
根據公式3可知,ylr是原始分組數據的隨機線性組合,其中編碼系數
同樣地,當中繼車輛轉發分組數據時,同樣會在ylr的分組數據頭部添加一個新的編碼向量hj=(gi1,gi2,…,gim)。
最后是目的節點解碼。目的車輛節點接收到的數據眾多,而這所有接收到的數據并不全部是目的車輛所需要的,因此,為了提高效率,需要辨別出所需要的數據,僅對該部分數據進行解碼操作。當所有分組數據被目的車輛接收后,首先要進行相關性的計算,如果分組數據沒有重復被收到,則其沒有線性相關性,則將該數據進行保存,否則進行舍棄。所有編碼分組的編碼系數對目的車輛是已知的,表示為公式5,通過對該方程組的求解,就可以恢復出原始數據。然而,根據數學知識可知,公式5并不總是有解的。當目的車輛接收到的分組數據數大于發送車輛發送的分組數據數時,且所有分組數據之間不具備相關性時,方程組有解,即此時可以利用高斯消元法對方程組進行求解,從而恢復出原始數據。假定目的車輛共接收到y1,y2,…,ym共m份數據,這些數據對應的編碼系數為(gi1,gi2,…,gim),(i=1,2,…,m),為了判斷能否解碼出原始數據,首先判斷這些編碼系數的相關性,如果編碼系數組成的矩陣
根據公式5可知,如果目的車輛接收到的同組報文數量不足,則所需要的編碼系數組成的矩陣不滿足滿秩的條件,通過目的車輛就無法解碼出全部的原始數據。當目的車輛無法解碼獲得全部原始數據時,為了尋找同組編碼數據報文,就需要向上一跳中繼車輛進行反饋,如果仍沒有找到,則繼續向上一跳反饋,直到找到足夠解碼出全部原始數據的同組編碼報文。
以上所述的僅是本發明的優選實施方式。應當指出,對于本領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干變形和改進,這些也應視為屬于本發明的保護范圍。