鏈路可靠度模型是建立在隨機(jī)移走模型的基礎(chǔ)之上的,。在隨機(jī)移走模型中,,節(jié)點(diǎn)的運(yùn)動(dòng)過(guò)程由一系列隨機(jī)長(zhǎng)度的時(shí)間段組成,該時(shí)間段被稱為運(yùn)動(dòng)周期(movement epoch),。在一個(gè)時(shí)間段內(nèi)節(jié),,節(jié)點(diǎn)的運(yùn)動(dòng)速度和運(yùn)動(dòng)方向保持不變。節(jié)點(diǎn)勿的運(yùn)動(dòng)屬性由三個(gè)參數(shù)來(lái)確定:λn,、μn和σ2n虧,。下面是對(duì)這三個(gè)參數(shù)的定義和相關(guān)的假設(shè):
①運(yùn)動(dòng)周期Tin的長(zhǎng)度服從參數(shù)為λn的指數(shù)分布,。
?、谶\(yùn)動(dòng)周期內(nèi)的節(jié)點(diǎn)運(yùn)動(dòng)速度Vin是一個(gè)均值為μn方差為σ2n的隨機(jī)變量。
③運(yùn)動(dòng)周期內(nèi)的節(jié)點(diǎn)運(yùn)動(dòng)方向θin,;服從(0,,2π)內(nèi)的均勻分布。
?、苓\(yùn)動(dòng)速度Vin,、運(yùn)動(dòng)方向鳊和運(yùn)動(dòng)周期長(zhǎng)度θin是相互獨(dú)立的。
?、莨?jié)點(diǎn)的運(yùn)動(dòng)是不相關(guān)的,鏈路的失效是獨(dú)立的,。
對(duì)于兩個(gè)節(jié)點(diǎn)間的運(yùn)動(dòng),,我們可以選定其中一個(gè)節(jié)點(diǎn)作為參考點(diǎn),用另一個(gè)節(jié)點(diǎn)的相對(duì)位移來(lái)表示節(jié)點(diǎn)間的運(yùn)動(dòng)關(guān)系,,如圖所示,。圖中兩個(gè)節(jié)點(diǎn)的初始位置是m1和n1,它們之間的距離是C1,;在經(jīng)過(guò)時(shí)間莎后,,兩個(gè)節(jié)點(diǎn)的位置是m2和n2,相互距離是C2,,它們的隨機(jī)移動(dòng)向量是Rm(t)和Rn(t),。若以節(jié)點(diǎn)n為參考點(diǎn),則時(shí)間t后節(jié)點(diǎn)勿相對(duì)于節(jié)點(diǎn)n的位置是m3,,節(jié)點(diǎn)解相對(duì)于節(jié)點(diǎn)刀的相對(duì)隨機(jī)移動(dòng)向量為:Rm,,n(t)=Rm(t)—Rn(t),兩個(gè)節(jié)點(diǎn)之間的相對(duì)運(yùn)動(dòng)速度可表示為:
圖1 兩個(gè)節(jié)點(diǎn)的相對(duì)運(yùn)動(dòng)關(guān)系
若節(jié)點(diǎn)m和節(jié)點(diǎn)n在時(shí)刻t0的相對(duì)的移動(dòng)速度為v,,則在t時(shí)刻,,節(jié)點(diǎn)m相對(duì)于節(jié)點(diǎn)n的移動(dòng)范圍可以用半徑為vt的圓來(lái)表示。根據(jù)t0時(shí)刻節(jié)點(diǎn)m和節(jié)點(diǎn)n的距離C(C≤Req,,Req為移動(dòng)范圍的最大半徑),,其鏈路可靠性可以分為三種情況:
圖2 Ad Hoc網(wǎng)絡(luò)的鏈路可靠性
針對(duì)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),,在路由的過(guò)程中,可以根據(jù)鏈路狀況性選擇可靠性最大的路徑作為路由,,從而在很大程度上減少不可靠路由對(duì)路由協(xié)議的影響并提高通信的質(zhì)量,。為了獲取鏈路的可靠度,在RREQ,、RREP和HELLO分組中都增加了存儲(chǔ)節(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:更新路由請(qǐng)求表,,轉(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:更新路由請(qǐng)求表,轉(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:返回