專利名稱:基于aodv的數(shù)根節(jié)點(diǎn)獨(dú)立的多路由技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于一種無(wú)線網(wǎng)絡(luò)通信中的路由協(xié)議,特別是一種基于AODV的Ad Hoc節(jié)點(diǎn)獨(dú)立多路由協(xié)議。
背景技術(shù):
AdHoc網(wǎng)絡(luò)是一種移動(dòng)、多跳的自組織無(wú)線網(wǎng)絡(luò)。由于無(wú)線移動(dòng)節(jié)點(diǎn)的不斷加入和退出,以及無(wú)線信 道的變化,使得該網(wǎng)絡(luò)具有動(dòng)態(tài)的拓?fù)浣Y(jié)構(gòu)。AdHoc網(wǎng)絡(luò)中的節(jié)點(diǎn)間進(jìn)行通信時(shí)受到無(wú)線傳輸范圍的限制, 源節(jié)點(diǎn)到宿節(jié)點(diǎn)間的通信要經(jīng)過(guò)多跳轉(zhuǎn)發(fā),而每個(gè)中間無(wú)線節(jié)點(diǎn)的接入帶寬、存儲(chǔ)容量、處理速度和電池 能量均有限。如何最大HJ能地避免中間節(jié)點(diǎn)的局部網(wǎng)絡(luò)擁塞,減少分組丟失率,合理地選路和分配網(wǎng)絡(luò)流 量以達(dá)到負(fù)載均衡是目前研究的一個(gè)重要問題。另外,由于Ad Hoc網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化較快,從而導(dǎo)致鏈 路失效,引起了較多的路由重新發(fā)現(xiàn)過(guò)程,也就帶來(lái)了更多的網(wǎng)絡(luò)開銷和時(shí)延,因此如何解決路由的強(qiáng)壯 性也是路由協(xié)議研究的熱點(diǎn)。而多徑路由是增強(qiáng)路由健壯性和避免網(wǎng)絡(luò)擁塞的一種有效手段,近來(lái)受到越 來(lái)越多的關(guān)注。
由T Ad Hoc網(wǎng)絡(luò)采用無(wú)線信道,無(wú)線信道的廣播特性和帶寬有限性使得無(wú)線網(wǎng)絡(luò)中的多路由與有線 網(wǎng)中的多路由不同。多條路由之間應(yīng)該盡量獨(dú)立,避免信道競(jìng)爭(zhēng)。所以,不管路徑選擇的依據(jù)是基于跳數(shù) 最少、帶寬最大、時(shí)延最小還是穩(wěn)定性最好等,都必須考慮多條路徑之間的獨(dú)立性問題。多條路徑之間的 獨(dú)立性越強(qiáng),越能充分利用網(wǎng)絡(luò)資源,增大節(jié)點(diǎn)間的有效帶寬。多徑路由中的獨(dú)立性可分為節(jié)點(diǎn)獨(dú)立性 (Node Disjoint)和鏈路獨(dú)立性(Link Disjoint)。節(jié)點(diǎn)獨(dú)立性指除源和宿節(jié)點(diǎn)外,多條路由之間沒有共同 的中間節(jié)點(diǎn)。鏈路獨(dú)立性指多條路由之間沒有共同的鏈路,但可以有共同的節(jié)點(diǎn)。顯然,節(jié)點(diǎn)獨(dú)立的多路 徑比非節(jié)點(diǎn)獨(dú)立的多路徑貝.有更好的獨(dú)立性。所以我們采用節(jié)點(diǎn)獨(dú)立的多路由。
AODV (Ad-Hoc On Demand distance Vector, Ad-Hoc按需距離矢量)是Ad Hoc路由協(xié)議中一種典型 的按需方式的路由協(xié)議。它根據(jù)需要?jiǎng)討B(tài)地維護(hù)路由表,每個(gè)移動(dòng)節(jié)點(diǎn)只建立和維護(hù)自己所需宿節(jié)點(diǎn)的路 由表,而不是維護(hù)自己到網(wǎng)絡(luò)中所有其他節(jié)點(diǎn)的路由。雖然路由建立過(guò)程會(huì)帶來(lái)一定的延時(shí),但可以節(jié)約 有限的無(wú)線網(wǎng)絡(luò)資源,并且可以滿足節(jié)點(diǎn)移動(dòng)頻繁隨時(shí)更新路由的情況。所以,它特別適合于節(jié)點(diǎn)移動(dòng)的 無(wú)線網(wǎng)絡(luò)環(huán)境,也是目前AdHoc網(wǎng)絡(luò)中用得比較多的一種路由坊'議。然而,標(biāo)準(zhǔn)的AODV協(xié)議只維護(hù)一 條源到宿的路由,當(dāng)節(jié)點(diǎn)增大發(fā)送速率時(shí)很容易造成中間節(jié)點(diǎn)局部擁塞,進(jìn)而降低整個(gè)網(wǎng)絡(luò)的吞吐量和增 大端到端的傳輸延遲。這樣不利于網(wǎng)絡(luò)的流量均衡和端到端鏈路的服務(wù)質(zhì)量。在通信過(guò)程中由于中間節(jié)點(diǎn) 移動(dòng)導(dǎo)致鏈路斷掉時(shí),需要重新建立路由,也會(huì)對(duì)服務(wù)質(zhì)量造成很大的影響。本文就Jl述缺點(diǎn)對(duì)AODV 協(xié)議做出改進(jìn),得到支持多路由的TKND —AODV (Tree Root Node Disjoint Ad-Hoc On Demand distance Vector,數(shù)根節(jié)點(diǎn)獨(dú)立的Ad-Hoc按需距離矢量)協(xié)議。而且實(shí)現(xiàn)的多條路由無(wú)論在正向路由還是反向路由 相互之間都不存在交義節(jié)點(diǎn),而且可以解決路由隱含改變的問題,不僅可以很好地實(shí)現(xiàn)備份路由還可以支 持流呈工程的應(yīng)HJ。
發(fā)明內(nèi)容
本發(fā)明的目的是在Ad Hoc網(wǎng)絡(luò)中實(shí)現(xiàn)節(jié)點(diǎn)獨(dú)立的按需多徑路由,以提高Ad Hoc網(wǎng)絡(luò)路由的健壯性和 改善網(wǎng)絡(luò)擁塞程度。
為實(shí)現(xiàn)上述目的,本發(fā)明包括以下內(nèi)容 一.采用節(jié)點(diǎn)樹根算法進(jìn)行路由請(qǐng)求
關(guān)閉AODV中的中間節(jié)點(diǎn)回復(fù)和本地修復(fù),源節(jié)點(diǎn)向宿節(jié)點(diǎn)發(fā)送路由請(qǐng)求時(shí),路由請(qǐng)求消息RREQ (Route Request )所經(jīng)過(guò)的路徑將會(huì)是以源節(jié)點(diǎn)的某些鄰居節(jié)點(diǎn)為樹根的數(shù)棵節(jié)點(diǎn)樹(附圖1)。如果利 用一棵樹無(wú)論有多少分叉但只有一個(gè)樹根的思想,那么只需根據(jù)區(qū)分樹根便可區(qū)分節(jié)點(diǎn)獨(dú)立的所有路由。 擴(kuò)展路由請(qǐng)求消息RREQ的封裝格式,添加源節(jié)點(diǎn)鄰居域Source Ndghbor。源節(jié)點(diǎn)廣播路由請(qǐng)求消息 RREQ,當(dāng)中間W點(diǎn)收到路由請(qǐng)求消息RREQ并判斷其轉(zhuǎn)發(fā)的上一跳是源節(jié)點(diǎn)時(shí),就能夠判斷出自己是源 節(jié)點(diǎn)的下一跳鄰居,也就是樹根節(jié)點(diǎn),則將自己的ip地址填入擴(kuò)展的源節(jié)點(diǎn)鄰居域SourceNe妙bor。不是 源節(jié)點(diǎn)的下一跳鄰居的中間節(jié)點(diǎn)不修改路由請(qǐng)求消息匿Q中的源節(jié)點(diǎn)鄰居域Source Neighbor,
二. 宿節(jié)點(diǎn)對(duì)節(jié)點(diǎn)獨(dú)立多路由的選擇及路由回復(fù)過(guò)程的改進(jìn)
宿節(jié)點(diǎn)維持一個(gè)源節(jié)點(diǎn)鄰居表。表項(xiàng)中關(guān)鍵的兩個(gè)域?yàn)樵吹刂酚蚝驮垂?jié)點(diǎn)鄰居域。宿節(jié)點(diǎn)每收到一個(gè) 路由請(qǐng)求消息RREQ,就會(huì)提取其中的源地址和源節(jié)點(diǎn)鄰居。對(duì)于先后收到來(lái)自同一源節(jié)點(diǎn)的多條路由請(qǐng) 求消息RREQ,有相同的源節(jié)點(diǎn)鄰居域值的路由請(qǐng)求消息RREQ所經(jīng)過(guò)的節(jié)點(diǎn)路徑之間節(jié)點(diǎn)不獨(dú)立,有不 同源節(jié)點(diǎn)鄰居域值的路由請(qǐng)求消息RREQ所經(jīng)過(guò)的節(jié)點(diǎn)路徑之間節(jié)點(diǎn)獨(dú)立。宿節(jié)點(diǎn)會(huì)選擇具有不同源節(jié)點(diǎn) 鄰居的路由請(qǐng)求消息RREQ依次單播路由回復(fù)消息RREP (Route Reply)。這些路由回復(fù)消息RREP所經(jīng) 過(guò)的路徑就為節(jié)點(diǎn)獨(dú)立的多條路徑。
三. 路由表項(xiàng)的改進(jìn)解決路由隱含改變問題
由于網(wǎng)絡(luò)中會(huì)有多個(gè)源一宿節(jié)點(diǎn)對(duì)建立連接,而標(biāo)準(zhǔn)的AODV協(xié)議中節(jié)點(diǎn)在更新到同一宿節(jié)點(diǎn)的#&由 時(shí)采用的是覆蓋的方式,這樣建立好的路由會(huì)隨時(shí)改變所經(jīng)過(guò)的節(jié)點(diǎn)路徑。在建立多路由時(shí)這種情況會(huì)造 成已建立好的多條節(jié)點(diǎn)獨(dú)立的路由改變?yōu)楣?jié)點(diǎn)不獨(dú)立的路由。所以我們?cè)诼酚杀眄?xiàng)中添加源節(jié)點(diǎn)地址域, 路由査找時(shí)根據(jù)源-宿地址對(duì)唯一地確定一條路由,可以很好地解決路由隱含改變的問題。中間節(jié)點(diǎn)在收到 路由請(qǐng)求消息RREQ或路由回復(fù)消息RREP而確定了反向路由或正向路由時(shí),如發(fā)現(xiàn)已有到相同宿節(jié)點(diǎn)但 具有不同源的路由條目,則將新的路由添加在路由表中而不是覆蓋。
四. 源節(jié)點(diǎn)收到路由回復(fù)消息建立多條節(jié)點(diǎn)獨(dú)立的正向路由 每當(dāng)源節(jié)點(diǎn)收到一個(gè)來(lái)自同一宿節(jié)點(diǎn)的路由回復(fù)消息RREP,則在比較序列號(hào)確定是新路由后,在路
由表中添加或更新多路由條目。
圖l基于節(jié)點(diǎn)樹根的多路由改進(jìn)方案 圖2擴(kuò)展的路由請(qǐng)求消息RREQ格式
具體實(shí)施例方式
(1) 擴(kuò)展路由請(qǐng)求消息RREQ的封裝格式,添加源節(jié)點(diǎn)鄰居域,也就是源節(jié)點(diǎn)的某些鄰居節(jié)點(diǎn),見 附圖2。
(2) 源節(jié)點(diǎn)廣播路由請(qǐng)求消息RREQ,當(dāng)中間節(jié)點(diǎn)收到路由請(qǐng)求消息RREQ并判斷其轉(zhuǎn)發(fā)的上一跳是 源節(jié)點(diǎn)時(shí),就能判斷自己是源節(jié)點(diǎn)的下一跳節(jié)點(diǎn),也就是樹根。將自己的ip地址填入擴(kuò)展的源 節(jié)點(diǎn)鄰居域。
(3) 中間節(jié)點(diǎn)在收到路由請(qǐng)求消息RREQ或路由回復(fù)消息RREP確定了反向路由或正向路由時(shí),如 發(fā)現(xiàn)已有到相同宿節(jié)點(diǎn)的路由條目,則將新的到同一宿節(jié)點(diǎn)的路由添加在路由表中而不是覆蓋更 新。為了防止路由隱含改變,需要在路由表項(xiàng)中加上源地址項(xiàng)。即査找路由時(shí)由源和宿地址對(duì)唯 一地確定一條路由。
(4) 宿節(jié)點(diǎn)維持一個(gè)源節(jié)點(diǎn)鄰居表。表項(xiàng)中關(guān)鍵的兩個(gè)域?yàn)樵吹刂酚蚝驮垂?jié)點(diǎn)鄰居域。為了加快査詢 速度,可以采用哈希表(hash表),以路由請(qǐng)求消息RREQ中的源地址為關(guān)鍵字索引。每個(gè)哈希 表項(xiàng)為一個(gè)鏈表指針,鏈表中存放的是對(duì)應(yīng)同一個(gè)源節(jié)點(diǎn)廣播路由請(qǐng)求中的所有樹根鄰居節(jié)點(diǎn)地 址。
(5) 宿節(jié)點(diǎn)每收到一個(gè)路由請(qǐng)求消息RREQ,就會(huì)提取其中的源地址和源節(jié)點(diǎn)鄰居域。如果沒有到源 節(jié)點(diǎn)的路由,說(shuō)明收到的是來(lái)自源節(jié)點(diǎn)的第一條路由請(qǐng)求消息RREQ。如果有到源節(jié)點(diǎn)的路由, 則判斷序列號(hào)。如路由請(qǐng)求消息RREQ中的序列號(hào)小于路由表中的,則直接丟棄。如大于,則 也說(shuō)明是收到來(lái)自源節(jié)點(diǎn)的第一條路由請(qǐng)求消息RREQ。如果等于,則說(shuō)明是收到源節(jié)點(diǎn)以后到 來(lái)的路由請(qǐng)求消息RREQ。
* 如是第一條路由請(qǐng)求消息RREQ,則立即響應(yīng)路由回復(fù)消息RREP;如路由表中原來(lái)有到源 節(jié)點(diǎn)的路由,則全部刪去,同時(shí)建立新的到源節(jié)點(diǎn)的反向路由。并以路由請(qǐng)求消息RREQ攜
帶的源地址為關(guān)鍵字創(chuàng)建哈希表項(xiàng),表項(xiàng)中為一地址鏈表。將路由請(qǐng)求消息RREQ的源節(jié)點(diǎn) 鄰居域中的地址加入鏈表中。
后收到來(lái)自同一源地址的路由請(qǐng)求消息RREQ,以其源地址為關(guān)鍵字索引源節(jié)點(diǎn)鄰居表。然 后査詢其中的地址鏈表,如有和路由請(qǐng)求消息RREQ中源節(jié)點(diǎn)鄰居域相同的表項(xiàng),則直接丟 棄,維持原來(lái)的反向路由。如果表中沒有,則說(shuō)明收到來(lái)自不同節(jié)點(diǎn)樹的路由請(qǐng)求?;貜?fù)該 路由請(qǐng)求消息RREQ,建立反向路由。并將路由請(qǐng)求消息RREQ的源節(jié)點(diǎn)鄰居域中的地址加 入相應(yīng)鏈表中。
* 后收到的路由請(qǐng)求消息RREQ如發(fā)現(xiàn)是不同的源地址,則在源節(jié)點(diǎn)鄰居表中新建關(guān)于該源節(jié) 點(diǎn)的哈希表項(xiàng)和對(duì)應(yīng)的地址鏈表,添加路由表,回復(fù)RREP。
(6) 由于要把現(xiàn)行AODV對(duì)應(yīng)一個(gè)宿節(jié)點(diǎn)地址的單路由改為多路由(不僅源到宿有多條路由,中間節(jié) 點(diǎn)到某宿節(jié)點(diǎn)的轉(zhuǎn)發(fā)路由也有可能有多條),所以需設(shè)計(jì)新的路由表格式。路由表為哈希表,以 宿節(jié)點(diǎn)ip地址為關(guān)鍵字索引。每個(gè)路由表項(xiàng)對(duì)應(yīng)一個(gè)鏈表,鏈表的表項(xiàng)為對(duì)應(yīng)同一個(gè)宿節(jié)點(diǎn)地址 的各個(gè)不同的路由條目,其中不同的路由條目可能對(duì)應(yīng)著不同的源地址。路由表項(xiàng)的過(guò)期時(shí)間對(duì) 應(yīng)的是某宿節(jié)點(diǎn)地址的鏈表中所有路由的過(guò)期時(shí)間。
(7) 每當(dāng)源節(jié)點(diǎn)收到一個(gè)來(lái)自同一宿節(jié)點(diǎn)地址的路由回復(fù)消息RREP,則在比較序列號(hào)確定是新路由 后,在路由表中添加或更新多路由條目。
權(quán)利要求
1.一種基于AODV協(xié)議改進(jìn)的TRND_AODV協(xié)議,其特征在于建立源節(jié)點(diǎn)到宿節(jié)點(diǎn)的多條中間節(jié)點(diǎn)獨(dú)立的路由,且路由不存在隱含改變的問題。
2.根據(jù)權(quán)力要求1中的路由協(xié)議,其特征在于采用節(jié)點(diǎn)樹根算法,源節(jié)點(diǎn)的下一跳節(jié)點(diǎn)在收到的源節(jié)點(diǎn)廣播的路由請(qǐng)求消息RREQ內(nèi)記錄下自己的節(jié)點(diǎn)信息,并繼續(xù)廣播。中間其它節(jié)點(diǎn)不在路由請(qǐng)求消 息RREQ內(nèi)添加自己的節(jié)點(diǎn)信息,直至最后到達(dá)宿節(jié)點(diǎn)。宿節(jié)點(diǎn)根據(jù)收到的來(lái)自同一源節(jié)點(diǎn)的多條路 由請(qǐng)求消息RREQ中的下一跳節(jié)點(diǎn)信息,也就是樹根節(jié)點(diǎn)信息,來(lái)選出多條源節(jié)點(diǎn)到宿節(jié)點(diǎn)的具有不 同樹根節(jié)點(diǎn)的中間節(jié)點(diǎn)獨(dú)立的路由。具有不同的下一跳節(jié)點(diǎn)信息的多條路由請(qǐng)求消息RREQ所經(jīng)過(guò)的 節(jié)點(diǎn)路徑就是需要的節(jié)點(diǎn)獨(dú)立多路徑。
3. 根據(jù)權(quán)力要求1中的路由協(xié)議,其特征在于宿節(jié)點(diǎn)在選出到源節(jié)點(diǎn)的多條節(jié)點(diǎn)獨(dú)立的路徑后,按此 路徑依次發(fā)送多個(gè)路由回復(fù)消息RREP (目的序列號(hào)相同)給源節(jié)點(diǎn),同時(shí)自己建立到源節(jié)點(diǎn)的多條 路由。源節(jié)點(diǎn)在收到來(lái)自同一宿節(jié)點(diǎn)的具有相同目的序列號(hào)的多條路由回復(fù)消息RJREP后,依次建立 到宿節(jié)點(diǎn)的多條路由。
4. 根據(jù)權(quán)力要求1中的路由協(xié)議,其特征在于在路由表項(xiàng)中添加源節(jié)點(diǎn)地址域,中間節(jié)點(diǎn)在收到路由 請(qǐng)求消息RREQ或路由回復(fù)消息RREP確定了反向路由或正向路由時(shí),如發(fā)現(xiàn)己有到相詞宿節(jié)點(diǎn)而不 同源的路由條目,則將新的路由添加在路由表中而不是覆蓋。路由査找時(shí)根據(jù)源-宿地址對(duì)唯一地確定 一條路由。
全文摘要
本發(fā)明是在AODV協(xié)議上做出的改進(jìn),得到支持多路由的TRND_AODV(Tree Root Node DisjointAd-Hoc On Demand distance Vector)協(xié)議。利用節(jié)點(diǎn)樹根算法,簡(jiǎn)單、快捷、高效地在Ad Hoc網(wǎng)絡(luò)中實(shí)現(xiàn)節(jié)點(diǎn)獨(dú)立的按需多徑路由,無(wú)論在正向路由之間或反向路由之間都不存在交叉節(jié)點(diǎn),而且可以解決路由隱含改變的問題。本發(fā)明的新型路由協(xié)議不僅可以很好地實(shí)現(xiàn)備份路由,還可以支持流量工程的應(yīng)用,可以大大提高Ad Hoc網(wǎng)絡(luò)路由的健壯性并降低網(wǎng)絡(luò)擁塞程度。
文檔編號(hào)H04L29/06GK101106520SQ20061009864
公開日2008年1月16日 申請(qǐng)日期2006年7月11日 優(yōu)先權(quán)日2006年7月11日
發(fā)明者煒 丁, 馮澤恒, 張春紅, 徐春秀, 歡 易, 穎 朱, 朱新寧, 武穆清, 蓉 韋, 魏宇欣 申請(qǐng)人:北京郵電大學(xué)