文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.166813
中文引用格式: 姚玉坤,王宇,呂盼成. 基于節(jié)點編碼感知的機會轉(zhuǎn)發(fā)路由協(xié)議[J].電子技術(shù)應(yīng)用,2017,43(9):119-122.
英文引用格式: Yao Yukun,Wang Yu,Lv Pancheng. An opportunistic forwarding routing protocol based on node network coding-aware[J].Application of Electronic Technique,2017,43(9):119-122.
0 引言
2000年,AHLSWEDE R等人首次提出了網(wǎng)絡(luò)編碼[1]的理論。網(wǎng)絡(luò)編碼允許中間節(jié)點對數(shù)據(jù)進行編碼后轉(zhuǎn)發(fā),增加了單次轉(zhuǎn)發(fā)的信息量。相比于傳統(tǒng)的傳輸方式可以減少信息的傳輸次數(shù),提高網(wǎng)絡(luò)吞吐量,實現(xiàn)理論上的最大傳輸容量。
編碼感知[2]是指在路由建立過程中把編碼機會考慮進去,通過主動探索、創(chuàng)造并利用網(wǎng)絡(luò)中潛在的編碼機會,使網(wǎng)絡(luò)的吞吐量得到進一步的提高。將編碼感知與路由算法相結(jié)合已成為數(shù)據(jù)轉(zhuǎn)發(fā)策略的一個重要研究方向。隨著對無線多跳網(wǎng)絡(luò)中網(wǎng)絡(luò)編碼路由協(xié)議研究的不斷深入,學者們發(fā)現(xiàn)現(xiàn)有的路由協(xié)議中編碼機會得不到充分的利用,并沒有讓網(wǎng)絡(luò)編碼的性能得到最大限度的利用。在數(shù)據(jù)轉(zhuǎn)發(fā)過程中,如何發(fā)現(xiàn)并利用更多的編碼機會已成為科研人員研究的重點。
文獻[3]由KATTI S等人首次提出了適用于無線 mesh的網(wǎng)絡(luò)編碼路由協(xié)議COPE。在COPE協(xié)議中節(jié)點利用機會監(jiān)聽和網(wǎng)絡(luò)編碼減少了數(shù)據(jù)傳輸次數(shù),提高了網(wǎng)絡(luò)吞吐量。但節(jié)點需要周期性地廣播控制報文信息,且只能探索兩跳范圍內(nèi)的編碼機會,限制了網(wǎng)絡(luò)編碼的性能。CORE[4]與CORMEN[5]是將編碼感知與機會式路由相結(jié)合,規(guī)定在轉(zhuǎn)發(fā)節(jié)點集內(nèi)選擇具有更多編碼機會的節(jié)點優(yōu)先轉(zhuǎn)發(fā)數(shù)據(jù)包,這樣在一次傳輸過程中更加有效地利用網(wǎng)絡(luò)中的編碼機會。該類協(xié)議采用的編碼機制也是COPE,但它需要維護兩跳范圍內(nèi)所有節(jié)點緩存隊列中的數(shù)據(jù)包信息,編碼帶來的網(wǎng)絡(luò)開銷較大。文獻[6]根據(jù)節(jié)點間的社會屬性設(shè)計了一種編碼節(jié)點狀態(tài)感知的容遲網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)機制,該機制減少了網(wǎng)絡(luò)資源開銷,改善了網(wǎng)絡(luò)資源利用率。文獻[7]提出了一種適用于無線mesh網(wǎng)絡(luò)的編碼感知且負載均衡的多播路由,在編碼感知的基礎(chǔ)上增加了對路徑上所有節(jié)點通信密集程度與網(wǎng)絡(luò)擁塞程度的考慮。
充分考慮節(jié)點編碼機會的編碼感知路由協(xié)議[8] ExCAR能有效地發(fā)現(xiàn)多跳范圍的編碼機會,但該協(xié)議在節(jié)點編碼機會計算時可能存在誤判以及在轉(zhuǎn)發(fā)節(jié)點集內(nèi)選擇最優(yōu)編碼節(jié)點時需要交換大量的數(shù)據(jù)包緩存信息,會導致較大的時延和網(wǎng)絡(luò)開銷。為解決ExCAR協(xié)議存在的問題,本文提出了一種適用于多跳無線網(wǎng)絡(luò)的節(jié)點編碼感知機會轉(zhuǎn)發(fā)路由協(xié)議——NAOFP,并對該路由協(xié)議的性能進行了理論分析和仿真驗證。
1 ExCAR協(xié)議問題描述
經(jīng)深入研究,發(fā)現(xiàn)ExCAR協(xié)議存在以下缺陷:
(1)原協(xié)議為了判斷數(shù)據(jù)包在中間節(jié)點的編碼機會時,將發(fā)送節(jié)點的所有一跳鄰居節(jié)點的ID全部附加到即將發(fā)送的數(shù)據(jù)包上,沒有考慮實際的無線網(wǎng)絡(luò)鏈路存在不穩(wěn)定性,在判斷編碼機會時可能會造成誤判,導致到達的編碼包不能成功解碼,浪費網(wǎng)絡(luò)資源。
(2)原協(xié)議在轉(zhuǎn)發(fā)節(jié)點集內(nèi)選擇轉(zhuǎn)發(fā)節(jié)點時,需要節(jié)點計算自己的編碼機會,而且集合內(nèi)的各個節(jié)點周期性地轉(zhuǎn)發(fā)各自擁有的數(shù)據(jù)包信息和偵聽緩存的數(shù)據(jù)包信息來計算其他節(jié)點的編碼機會,最后通過與其他節(jié)點的比較選擇出最佳轉(zhuǎn)發(fā)節(jié)點。在此過程中,每個節(jié)點的傳輸開銷和計算開銷比較大,同時由于計算轉(zhuǎn)發(fā)集內(nèi)其他節(jié)點的編碼機會也會增加數(shù)據(jù)包的處理時延。
(3)原協(xié)議在偵聽緩存時把附加信息packet holders也一并放入緩存中,但這些packet holders附加信息對解碼不起作用,且占據(jù)了一定的緩存空間。
2 NAOFP協(xié)議
本文提出的NAOFP協(xié)議通過引入基于偵聽概率的附加ID信息添加、最優(yōu)轉(zhuǎn)發(fā)節(jié)點選擇、數(shù)據(jù)包的高效緩存3個新的機制來解決ExCAR協(xié)議存在的上述3個問題。下面對NAOFP協(xié)議的編碼機會的判斷、提出的新機制以及該協(xié)議的具體執(zhí)行步驟進行詳細介紹。
2.1 編碼機會的判斷
2.1.1 基于偵聽概率的附加ID信息添加機制
節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包時,將該節(jié)點的ID和一跳鄰居節(jié)點的ID添加在即將發(fā)送的數(shù)據(jù)包頭部。為保證編碼包的解碼成功率,在添加附加ID時需要將發(fā)送節(jié)點與其鄰居節(jié)點的鏈路情況考慮進來。該機制具體步驟如下:
(1)計算。依次計算發(fā)送節(jié)點S與其各個一跳鄰居節(jié)點ni的偵聽概率P(s,ni):
其中,P(s,ni)為鄰居節(jié)點ni成功偵聽到節(jié)點S發(fā)送數(shù)據(jù)包的概率,ni為發(fā)送節(jié)點S的第i個鄰居節(jié)點,Pf(s,ni)為節(jié)點S到其鄰居節(jié)點ni的鏈路正向丟包率;
(2)判斷。依次判斷每個鄰居節(jié)點的偵聽概率P(s,ni)與閾值Pth的大??;
(3)添加。如果某一鄰居節(jié)點的P(s,ni)比閾值Pth大,說明S到該鄰居節(jié)點ni的鏈路狀況良好,則將此鄰居節(jié)點的ID附加到待發(fā)數(shù)據(jù)包p的頭部。
如圖1所示,節(jié)點S1需發(fā)送數(shù)據(jù)包p到目的節(jié)點D1,節(jié)點S2需發(fā)送數(shù)據(jù)包q到目的節(jié)點D2。當S1在發(fā)送數(shù)據(jù)包p前,利用基于偵聽概率的附加ID信息添加機制將符合要求的節(jié)點ID添加到數(shù)據(jù)包P的頭部,假設(shè)其鄰居節(jié)點R1、R2、D2的偵聽概率均滿足上述要求,則數(shù)據(jù)包p的附加ID信息的添加情況如圖2所示。
在數(shù)據(jù)包相遇時,可由packet holders信息得知哪些節(jié)點已緩存了該數(shù)據(jù)包的備份。
2.1.2 編碼機會判斷規(guī)則
數(shù)據(jù)包能在一起編碼的前提是目的節(jié)點已緩存了能用于解碼的數(shù)據(jù)包,保證編碼包在目的節(jié)點能成功解碼。本文利用附加ID信息來判斷數(shù)據(jù)包在編碼前目的節(jié)點是否已緩存了用于解碼的數(shù)據(jù)包。假設(shè)中間節(jié)點收到來自不同數(shù)據(jù)流的兩個數(shù)據(jù)包p、q,若同時滿足式(2)和式(3)成立,則數(shù)據(jù)包p、q可進行編碼發(fā)送。
2.2 最優(yōu)轉(zhuǎn)發(fā)節(jié)點選擇機制
轉(zhuǎn)發(fā)節(jié)點集內(nèi)的節(jié)點各自計算本節(jié)點的編碼機會,然后各節(jié)點間只需通過交換各自的編碼機會次數(shù)選擇出次數(shù)最多的節(jié)點。
假設(shè)轉(zhuǎn)發(fā)節(jié)點集內(nèi)有x、y兩個節(jié)點,當收到帶有附加ID信息的數(shù)據(jù)包p時,從轉(zhuǎn)發(fā)節(jié)點集內(nèi)選擇出最優(yōu)轉(zhuǎn)發(fā)節(jié)點的具體步驟如下:
第一步:轉(zhuǎn)發(fā)節(jié)點集內(nèi)的每個節(jié)點各自計算編碼機會次數(shù)count,即節(jié)點x、y的發(fā)送隊列中能與數(shù)據(jù)包p一起編碼發(fā)送的數(shù)據(jù)包個數(shù)。以節(jié)點x為例,具體計算過程如下所示。
輸入:p ; //節(jié)點x收到帶有附加ID的數(shù)據(jù)包p
輸出:count(x) ; //節(jié)點x的輸出隊列中能與P一起編碼的數(shù)據(jù)包個數(shù)
Procedure:
count(x)=0;
while(node x output queue !=Null) {
for(i=1;i<n;i++) {
//判斷是否滿足編碼機會判斷規(guī)則,其中pi表示節(jié)點
x的輸出隊列中的第i個數(shù)據(jù)包
If(Dest_p∈Setpi && Dest_pi∈Setp) {
pcode1=p⊕pi;//進行編碼,獲得編碼包pcode1
Count(x) ++;//更新編碼包pcode1的附加信息
Setpcode1=Setp∩Setpi;
Dest_pcode1=Dest_p∪Dest_pi;
pcode1 is stored to the buffer;
remove pi from output queue;
p=pcode1; }
continue; }
return count(x); }
同理,節(jié)點y也可以通過上述過程計算出能與p一起編碼的數(shù)據(jù)包個數(shù)count(y)。
第二步:轉(zhuǎn)發(fā)集內(nèi)節(jié)點交換各自的編碼機會。此時,節(jié)點x知道count(y)的值,節(jié)點y知道count(x)的值;
第三步:轉(zhuǎn)發(fā)節(jié)點集內(nèi)的節(jié)點通過與其他節(jié)點的count值比較,如果發(fā)現(xiàn)自己的count值最大,則選為最優(yōu)轉(zhuǎn)發(fā)節(jié)點。
2.3 數(shù)據(jù)包高效緩存機制
由于無線鏈路的廣播特性,網(wǎng)絡(luò)中有數(shù)據(jù)發(fā)送時,位于該節(jié)點的鄰居節(jié)點能夠以一定的概率偵聽到該數(shù)據(jù)包并放入緩存中,用于編碼數(shù)據(jù)包的解碼。在NAOFP協(xié)議中,網(wǎng)絡(luò)中的節(jié)點偵聽到數(shù)據(jù)包時,去掉附加在數(shù)據(jù)包上的packet holders信息后放入緩存。由于去掉了packet holders附加信息,在節(jié)點緩存大小相同的情況下能夠緩存更多數(shù)量的數(shù)據(jù)包用于解碼,提高了編碼包的解碼成功率,進而提高了網(wǎng)絡(luò)的實際吞吐量。
2.4 NAOFP協(xié)議的執(zhí)行步驟
NAOFP協(xié)議各階段的具體執(zhí)行步驟如下。
(1)附加ID信息的添加
當網(wǎng)絡(luò)中的節(jié)點有數(shù)據(jù)包要發(fā)送時,按照2.1.1節(jié)所述的基于偵聽概率的附加ID信息添加機制將該發(fā)送節(jié)點的ID和符合要求的鄰居節(jié)點ID添加在即將發(fā)送的數(shù)據(jù)包的頭部,用于編碼機會的判斷。
(2)轉(zhuǎn)發(fā)節(jié)點集的選取
在NAOFP協(xié)議中不預(yù)先使用指定的節(jié)點對數(shù)據(jù)包轉(zhuǎn)發(fā),而是在數(shù)據(jù)包發(fā)送前預(yù)先選取多個節(jié)點作為數(shù)據(jù)包的潛在轉(zhuǎn)發(fā)節(jié)點,這些節(jié)點的集合即為轉(zhuǎn)發(fā)節(jié)點集。以下為轉(zhuǎn)發(fā)節(jié)點集內(nèi)節(jié)點選取所必須滿足的條件:
①該節(jié)點必須是發(fā)送節(jié)點的下一跳鄰居節(jié)點;
②為了避免數(shù)據(jù)包的轉(zhuǎn)發(fā)遠離目的節(jié)點,該節(jié)點必須距離目的節(jié)點更近。本文使用ETX度量值來衡量,即轉(zhuǎn)發(fā)節(jié)點集內(nèi)節(jié)點的ETX度量值要小于發(fā)送節(jié)點的ETX度量值;
③在轉(zhuǎn)發(fā)節(jié)點集內(nèi)的節(jié)點必須能夠相互偵聽;
④轉(zhuǎn)發(fā)節(jié)點集選取節(jié)點的個數(shù)不應(yīng)超過6個。
(3)最優(yōu)轉(zhuǎn)發(fā)節(jié)點的選擇
將帶有附加ID信息的數(shù)據(jù)包發(fā)送到轉(zhuǎn)發(fā)節(jié)點集內(nèi)的節(jié)點后,按照2.2節(jié)所述的最優(yōu)轉(zhuǎn)發(fā)節(jié)點選擇機制,選擇出具有編碼機會數(shù)量最大的節(jié)點選作該數(shù)據(jù)包的下一跳轉(zhuǎn)發(fā)節(jié)點。如果轉(zhuǎn)發(fā)節(jié)點集內(nèi)出現(xiàn)具有相同編碼機會次數(shù)的多個節(jié)點時,應(yīng)選擇ETX度量值最小的節(jié)點來進行數(shù)據(jù)包的轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)集內(nèi)的其他節(jié)點偵聽到該數(shù)據(jù)包被成功發(fā)送后,將該數(shù)據(jù)包從發(fā)送隊列中刪除。
網(wǎng)絡(luò)中的節(jié)點偵聽到的數(shù)據(jù)包按照2.3節(jié)所述的數(shù)據(jù)包高效緩存機制進行處理。
3 仿真實驗及結(jié)果分析
3.1 仿真場景及參數(shù)設(shè)置
本文采用網(wǎng)絡(luò)仿真軟件OPNET 14.5版本搭建仿真平臺,對NAOFP協(xié)議與ExCAR協(xié)議的性能進行分析與比較。實驗場景是在500 m×500 m的區(qū)域范圍內(nèi)隨機分布15個無線節(jié)點,其中MAC層使用較為普遍的IEEE 802.11b標準協(xié)議。具體的仿真參數(shù)設(shè)置如表1所示。
3.2 仿真結(jié)果分析
3.2.1 網(wǎng)絡(luò)吞吐量
如圖3所示,NAOFP協(xié)議的網(wǎng)絡(luò)吞吐量在不同的網(wǎng)絡(luò)負載下均高于ExCAR協(xié)議。這是由于NAOFP協(xié)議在進行數(shù)據(jù)包附加ID信息添加的過程中考慮了無線鏈路的不穩(wěn)定性,發(fā)送節(jié)點與其鄰居節(jié)點的偵聽概率P(s,ni)小于閾值Pth,則不將此鄰居節(jié)點的ID添加,這樣在目的節(jié)點保障了較高的解碼率,避免了編碼包不能成功解碼而造成的網(wǎng)絡(luò)資源浪費,從而使網(wǎng)絡(luò)吞吐量得到了有效的提高。
3.2.2 平均端到端時延
如圖4所示,NAOFP協(xié)議的數(shù)據(jù)包平均端到端時延在不同的網(wǎng)絡(luò)負載下均低于ExCAR協(xié)議。這是因為NAOFP協(xié)議在轉(zhuǎn)發(fā)節(jié)點集內(nèi)選擇編碼機會數(shù)量最大的節(jié)點時,并不需要節(jié)點間相互交換各自的數(shù)據(jù)包信息,也不需要計算其他節(jié)點的編碼機會次數(shù),這樣減少了數(shù)據(jù)包在轉(zhuǎn)發(fā)節(jié)點的處理和等待時間,從而使網(wǎng)絡(luò)中的平均端到端時延得到明顯的降低。
3.2.3 編碼包的解碼成功率
如圖5所示,NAOFP協(xié)議的編碼包的解碼成功率在不同的網(wǎng)絡(luò)負載下均高于ExCAR協(xié)議。這是因為在NAOFP協(xié)議的步驟一中采用了基于偵聽概率的附加ID信息添加機制,保障了編碼包的可解性。另外,節(jié)點在偵聽緩存網(wǎng)絡(luò)中的數(shù)據(jù)包時,將數(shù)據(jù)包的附加信息去掉后緩存,這樣在緩存大小一定的情況下可以緩存更多的數(shù)據(jù)包用于解碼,從而使網(wǎng)絡(luò)中編碼包的解碼成功率得到有效的提高。
4 結(jié)論
本文針對ExCAR路由協(xié)議在無線鏈路不穩(wěn)定的情況下,節(jié)點在計算編碼機會時存在誤判,以及在選擇最佳編碼節(jié)點時需要交換大量的數(shù)據(jù)包緩存信息,提出了一種節(jié)點編碼感知的機會轉(zhuǎn)發(fā)路由協(xié)議NAOFP,且在該協(xié)議中引入了基于偵聽概率的附加ID信息添加機制和最優(yōu)轉(zhuǎn)發(fā)節(jié)點選擇機制。仿真實驗結(jié)果表明,與ExCAR路由協(xié)議相比,NAOFP協(xié)議在網(wǎng)絡(luò)吞吐量、平均端到端時延、編碼包的解碼成功率等方面的性能均得到了有效的改善。
參考文獻
[1] AHLSWEDE R,CAI N,LI S,et al.Network information flow[J].IEEE Transactions on Information Theory,2000,46(4):1204-1216.
[2] CHEN C,DONG C,MAO Y F,et al.Survey on network-coding-aware routing in wireless network[J].Journal of Software,2015,26(1):82-97.
[3] KATTI S,RAHUL H,HU W J,et al.XORs in the air: practical wireless network coding[C].ACM SIGCOMM,Pisa,Italy,2006:243-254.
[4] YAN Y,ZHANG B X,ZHENG J.CORE:A coding-aware opportunistic routing mechanism for wireless mesh networks[J].IEEE Wireless Communications,2010,17(3):96-103.
[5] ISLAM J,SINGH P K.CORMEN:Coding-aware opportunistic routing in wireless mesh network[J].Journal of Computing,2010,2(6):71-77.
[6] 王汝言,樓芃雯,樊思龍,等.容遲網(wǎng)絡(luò)編碼節(jié)點狀態(tài)感知的數(shù)據(jù)轉(zhuǎn)發(fā)策略[J].重慶郵電大學學報(自然科學版),2013,25(2):215-220.
[7] 沈小建,陳志剛,劉立.無線mesh網(wǎng)絡(luò)中編碼感知且負載均衡的多播路由[J].通信學報,2015,36(4):89-95.
[8] 趙蘊龍,王博識,張凱,等.充分考慮節(jié)點編碼機會的編碼感知路由協(xié)議[J].應(yīng)用科學學報,2014,32(1):7-12.
作者信息:
姚玉坤,王 宇,呂盼成
(重慶郵電大學 移動通信技術(shù)重慶市重點實驗室,重慶400065)