基于鏈路可靠性的路由協(xié)議
鏈路可靠度模型是建立在隨機(jī)移走模型的基礎(chǔ)之上的。在隨機(jī)移走模型中,節(jié)點(diǎn)的運(yùn)動過程由一系列隨機(jī)長度的時間段組成,該時間段被稱為運(yùn)動周期(movement epoch)。在一個時間段內(nèi)節(jié),節(jié)點(diǎn)的運(yùn)動速度和運(yùn)動方向保持不變。節(jié)點(diǎn)勿的運(yùn)動屬性由三個參數(shù)來確定:λn、μn和σ2n虧。下面是對這三個參數(shù)的定義和相關(guān)的假設(shè):
?、龠\(yùn)動周期Tin的長度服從參數(shù)為λn的指數(shù)分布。
?、谶\(yùn)動周期內(nèi)的節(jié)點(diǎn)運(yùn)動速度Vin是一個均值為μn方差為σ2n的隨機(jī)變量。
③運(yùn)動周期內(nèi)的節(jié)點(diǎn)運(yùn)動方向θin;服從(0,2π)內(nèi)的均勻分布。
④運(yùn)動速度Vin、運(yùn)動方向鳊和運(yùn)動周期長度θin是相互獨(dú)立的。
⑤節(jié)點(diǎn)的運(yùn)動是不相關(guān)的,鏈路的失效是獨(dú)立的。
對于兩個節(jié)點(diǎn)間的運(yùn)動,我們可以選定其中一個節(jié)點(diǎn)作為參考點(diǎn),用另一個節(jié)點(diǎn)的相對位移來表示節(jié)點(diǎn)間的運(yùn)動關(guān)系,如圖所示。圖中兩個節(jié)點(diǎn)的初始位置是m1和n1,它們之間的距離是C1;在經(jīng)過時間莎后,兩個節(jié)點(diǎn)的位置是m2和n2,相互距離是C2,它們的隨機(jī)移動向量是Rm(t)和Rn(t)。若以節(jié)點(diǎn)n為參考點(diǎn),則時間t后節(jié)點(diǎn)勿相對于節(jié)點(diǎn)n的位置是m3,節(jié)點(diǎn)解相對于節(jié)點(diǎn)刀的相對隨機(jī)移動向量為:Rm,n(t)=Rm(t)—Rn(t),兩個節(jié)點(diǎn)之間的相對運(yùn)動速度可表示為:
圖 兩個節(jié)點(diǎn)的相對運(yùn)動關(guān)系
若節(jié)點(diǎn)m和節(jié)點(diǎn)n在時刻t0的相對的移動速度為v,則在t時刻,節(jié)點(diǎn)m相對于節(jié)點(diǎn)n的移動范圍可以用半徑為vt的圓來表示。根據(jù)t0時刻節(jié)點(diǎn)m和節(jié)點(diǎn)n的距離C(C≤Req,Req為移動范圍的最大半徑),其鏈路可靠性可以分為三種情況:
圖2 Ad Hoc網(wǎng)絡(luò)的鏈路可靠性
針對Ad Hoc網(wǎng)絡(luò)節(jié)點(diǎn)間的通信鏈路的不可靠性,本章這里在AD0V協(xié)議的基礎(chǔ)上進(jìn)行改進(jìn),得到了一種基于鏈路可靠性的Ad Hoc網(wǎng)絡(luò)路由協(xié)議:LRBA(link reliability based AODV),在路由的過程中,可以根據(jù)鏈路狀況性選擇可靠性最大的路徑作為路由,從而在很大程度上減少不可靠路由對路由協(xié)議的影響并提高通信的質(zhì)量。為了獲取鏈路的可靠度,在RREQ、RREP和HELLO分組中都增加了存儲節(jié)點(diǎn)坐標(biāo)信息的域,其他節(jié)點(diǎn)在收到這些消息后就可根據(jù)公式(5,1)、(5.2)、(5.3)進(jìn)行鏈路可靠度計(jì)算,并根據(jù)結(jié)果選擇路由或更新路由表。
下面是節(jié)點(diǎn)收到RREQ分組后的處理步驟:
Step1:判斷是杏重復(fù),不重復(fù)轉(zhuǎn)Step2,否則銷毀RREQ轉(zhuǎn)Step8;
Step2:更新路由請求表,轉(zhuǎn)Step3;
Step3:獲取RREQ中的節(jié)點(diǎn)坐標(biāo)信息,獲取鄰表中的節(jié)點(diǎn)歷史信息,計(jì)算鏈路可靠度,轉(zhuǎn)Step4;
Step4:更新鄰表和路由表中到達(dá)源節(jié)點(diǎn)的表項(xiàng),轉(zhuǎn)Step5;
Step5:到達(dá)目的節(jié)點(diǎn)則轉(zhuǎn)Step7,否則轉(zhuǎn)Step6;
Step6:查找路由表,找到到達(dá)目的節(jié)點(diǎn)的路由轉(zhuǎn)Step7,否則轉(zhuǎn)Step8;
Step7:構(gòu)造RREP單播至上一跳節(jié)點(diǎn),銷毀RREQ,轉(zhuǎn)Step9;
Step8:更新RREQ中的節(jié)點(diǎn)坐標(biāo)信息,廣播RREQ,轉(zhuǎn)Step9;
Step9:返回。
下面是節(jié)點(diǎn)收到RREP分組后的處理步驟:
Step1:判斷是否重復(fù),不重復(fù)轉(zhuǎn)Step2,否則銷毀RREQ轉(zhuǎn)Step9;
Step2:更新路由請求表,轉(zhuǎn)Step3;
Step3:獲取RREP中的節(jié)點(diǎn)坐標(biāo)信息,獲取鄰表中的節(jié)點(diǎn)歷史信息,計(jì)算鏈路可靠度,轉(zhuǎn)Step4;
Step4:更新鄰表和路由表中到達(dá)源節(jié)點(diǎn)的表項(xiàng),轉(zhuǎn)Step5;
Step5:到達(dá)目的節(jié)點(diǎn)則轉(zhuǎn)Step6,否則轉(zhuǎn)Step7;
Step6:更新路由表,銷毀RREP,轉(zhuǎn)Step9;
Step7:查找路由表,找到到達(dá)目的節(jié)點(diǎn)的反向路由轉(zhuǎn)Step8,否則銷毀RREP轉(zhuǎn)Step9;
Step8:更新RREP中的節(jié)點(diǎn)坐標(biāo)信息,轉(zhuǎn)發(fā)RREP,轉(zhuǎn)Step9;
Step9:返回