組織全部更新消息;當(dāng)全部更新時(shí)間間隔沒有到期時(shí),根據(jù)當(dāng)前的拓?fù)渥訕湫畔⑴c前次報(bào)告的拓?fù)渥訕湫畔⒅g的差別確定添加更新消息或刪除更新消息。
[0045]本發(fā)明實(shí)施例提供的一種主動(dòng)式路由的方法及裝置,提供逐跳的最短路徑,在鄰居節(jié)點(diǎn)發(fā)現(xiàn)過程中只發(fā)送和接收,不進(jìn)行轉(zhuǎn)發(fā)、回復(fù)或洪泛,鄰居節(jié)點(diǎn)發(fā)現(xiàn)操作僅僅限于I個(gè)跳數(shù)的鄰居節(jié)點(diǎn)之間,極大減少了網(wǎng)絡(luò)消息的開銷。同時(shí)能夠及時(shí)快速發(fā)現(xiàn)節(jié)點(diǎn)及網(wǎng)絡(luò)狀態(tài)的變化,較好地解決了復(fù)雜多變的惡劣信道特性所導(dǎo)致的網(wǎng)絡(luò)不穩(wěn)定性的技術(shù)問題。在路由控制過程中,只向鄰居節(jié)點(diǎn)廣播拓?fù)渥訕湫畔ⅲ皇菍⒄麄€(gè)拓?fù)浔硐蜞従庸?jié)點(diǎn)擴(kuò)散,大大減少了路由控制消息造成的開銷。
[0046]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
[0047]下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說明】
[0048]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0049]圖1為本發(fā)明實(shí)施例中主動(dòng)式路由方法的流程圖;
[0050]圖2為本發(fā)明實(shí)施例中拓?fù)渚S護(hù)方法的流程圖;
[0051]圖3為本發(fā)明實(shí)施例一中拓?fù)渚S護(hù)方法的流程圖;
[0052]圖4為本發(fā)明實(shí)施例中主動(dòng)式路由裝置的第一結(jié)構(gòu)圖;
[0053]圖5為本發(fā)明實(shí)施例中第一更新模塊的結(jié)構(gòu)圖;
[0054]圖6為本發(fā)明實(shí)施例中主動(dòng)式路由裝置的第二結(jié)構(gòu)圖;
[0055]圖7為本發(fā)明實(shí)施例中主動(dòng)式路由裝置的第三結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0056]下面結(jié)合附圖,對本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)描述,但應(yīng)當(dāng)理解本發(fā)明的保護(hù)范圍并不受【具體實(shí)施方式】的限制。
[0057]根據(jù)本發(fā)明實(shí)施例,提供了一種主動(dòng)式路由的方法,圖1為該主動(dòng)式路由方法的流程圖,包括步驟101-105:
[0058]步驟101:向鄰居節(jié)點(diǎn)廣播第一問候消息,第一問候消息包括本地節(jié)點(diǎn)的地址標(biāo)識(shí);同時(shí)接收鄰居節(jié)點(diǎn)廣播的包括鄰居節(jié)點(diǎn)的地址標(biāo)識(shí)的第二問候消息。
[0059]本發(fā)明實(shí)施例中,第一問候消息為本地節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)送的問候消息,第二問候消息為鄰居節(jié)點(diǎn)向本地節(jié)點(diǎn)發(fā)送的問候消息;第一問候消息和第二問候消息均為問候消息,只是發(fā)送方向不同而已。同時(shí),本地節(jié)點(diǎn)和鄰居節(jié)點(diǎn)之間的關(guān)系是相互的,即對于該鄰居節(jié)點(diǎn)來說,該本地節(jié)點(diǎn)同樣為該鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。例如,節(jié)點(diǎn)A (本地節(jié)點(diǎn))向節(jié)點(diǎn)B(節(jié)點(diǎn)A的鄰居節(jié)點(diǎn))發(fā)送問候消息(第一問候消息),同時(shí)可以接收節(jié)點(diǎn)B向節(jié)點(diǎn)A發(fā)送的問候消息(第二問候消息);而對于節(jié)點(diǎn)B來說,此時(shí)節(jié)點(diǎn)B為本地節(jié)點(diǎn),節(jié)點(diǎn)A為節(jié)點(diǎn)B的鄰居節(jié)點(diǎn),因此,節(jié)點(diǎn)B向節(jié)點(diǎn)A發(fā)送的問候消息為第一問候消息,節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送的問候消息為第二問候消息。設(shè)置第一和第二問候消息的目的是用于區(qū)分兩個(gè)問候消息。
[0060]步驟102:記錄鄰居節(jié)點(diǎn)的地址標(biāo)識(shí),并更新本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)表。
[0061 ] 本地節(jié)點(diǎn)根據(jù)鄰居節(jié)點(diǎn)發(fā)送的第二問候消息可以確定本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)表中是否存在該鄰居節(jié)點(diǎn)條目,如果不存在,則執(zhí)行上述步驟102。同時(shí),本地節(jié)點(diǎn)只記錄第二問候消息中的鄰居節(jié)點(diǎn)的地址標(biāo)識(shí),不再轉(zhuǎn)發(fā)或回復(fù)該第二問候消息,且也不進(jìn)行洪泛;同時(shí),問候消息的交互僅限于一跳范圍內(nèi)的節(jié)點(diǎn),即僅限于鄰居節(jié)點(diǎn)之間,極大減少了網(wǎng)絡(luò)消息的開銷。
[0062]步驟103:向鄰居節(jié)點(diǎn)廣播拓?fù)渥訕湫畔?,拓?fù)渥訕湫畔ū镜毓?jié)點(diǎn)到所有鄰居節(jié)點(diǎn)的鏈路和第一鄰居節(jié)點(diǎn)到第二鄰居節(jié)點(diǎn)的最短路徑。
[0063]本發(fā)明實(shí)施例中,路由控制過程中通過向鄰居節(jié)點(diǎn)僅僅廣播拓?fù)渥訕湫畔?,而不是將本地?jié)點(diǎn)存儲(chǔ)的整個(gè)拓?fù)浔硐蜞従庸?jié)點(diǎn)擴(kuò)散,從而可以大大降低路由控制信息的開銷。
[0064]具體的,拓?fù)渥訕湫畔ū镜毓?jié)點(diǎn)到所有鄰居節(jié)點(diǎn)的鏈路和第一鄰居節(jié)點(diǎn)到第二鄰居節(jié)點(diǎn)的最短路徑,該第一鄰居節(jié)點(diǎn)和第二鄰居節(jié)點(diǎn)為本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)中兩個(gè)互不相同的鄰居節(jié)點(diǎn)。例如,本地節(jié)點(diǎn)為節(jié)點(diǎn)A,節(jié)點(diǎn)A的鄰居節(jié)點(diǎn)包括節(jié)點(diǎn)B、節(jié)點(diǎn)C和節(jié)點(diǎn)D,則該拓?fù)渥訕湫畔ü?jié)點(diǎn)A分別到節(jié)點(diǎn)B、節(jié)點(diǎn)C和節(jié)點(diǎn)D的鏈路,還包括兩個(gè)鄰居節(jié)點(diǎn)之間(例如節(jié)點(diǎn)B與C之間,節(jié)點(diǎn)B與D之間、或節(jié)點(diǎn)C與節(jié)點(diǎn)D之間)的最短路徑。
[0065]步驟104:路由收斂后,更新拓?fù)浔?,并確定本地路由表,本地路由表包括以本地節(jié)點(diǎn)為根、到網(wǎng)絡(luò)中任意其他節(jié)點(diǎn)的最短路由。
[0066]具體的,步驟101-102中的鄰居節(jié)點(diǎn)發(fā)現(xiàn)步驟會(huì)導(dǎo)致網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)發(fā)生變化,從而在路由收斂后需要更新拓?fù)浔?,進(jìn)而確定本地節(jié)點(diǎn)的本地路由表。
[0067]在本發(fā)明實(shí)施例中,確定本地路由表,具體包括步驟A1-A2:
[0068]步驟Al、根據(jù)本地節(jié)點(diǎn)的拓?fù)浔碇写鎯?chǔ)的拓?fù)湫畔⒋_定本地節(jié)點(diǎn)的源節(jié)點(diǎn)樹,源節(jié)點(diǎn)樹包括本地節(jié)點(diǎn)到其余節(jié)點(diǎn)的最短路徑;
[0069]步驟A2、根據(jù)源節(jié)點(diǎn)樹計(jì)算本地節(jié)點(diǎn)到其余節(jié)點(diǎn)的路由,并更新本地路由表。
[0070]其中,步驟Al中的確定本地節(jié)點(diǎn)的源節(jié)點(diǎn)樹,具體包括:根據(jù)路由算法確定本地節(jié)點(diǎn)的源節(jié)點(diǎn)樹,該路由算法包括Dijkstra算法、鏈路狀態(tài)路由算法、距離向量路由算法中的一項(xiàng)或多項(xiàng)。
[0071]本發(fā)明實(shí)施例中,通過路由算法生成包括以本地節(jié)點(diǎn)為根、到達(dá)所有可達(dá)節(jié)點(diǎn)的最短路徑的源節(jié)點(diǎn)樹,進(jìn)而更新本地路由表,避免因信道環(huán)境惡劣導(dǎo)致網(wǎng)絡(luò)穩(wěn)定性差。
[0072]步驟105:在接收到數(shù)據(jù)包時(shí),提取目的節(jié)點(diǎn),根據(jù)本地路由表確定目的節(jié)點(diǎn)最短路徑;將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳節(jié)點(diǎn),并指示下一跳節(jié)點(diǎn)根據(jù)目的節(jié)點(diǎn)最短路徑繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)包,直至數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)。
[0073]具體的,在接收到數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包的內(nèi)容可以提取目的節(jié)點(diǎn),進(jìn)而可以根據(jù)更新后的本地路由表確定從本地節(jié)點(diǎn)到目的節(jié)點(diǎn)的最短路徑(即步驟105中的目的節(jié)點(diǎn)最短路徑)。根據(jù)該目的節(jié)點(diǎn)最短路徑即可以確定本地節(jié)點(diǎn)需要將數(shù)據(jù)包發(fā)送至哪一個(gè)下一跳節(jié)點(diǎn)。例如,本地節(jié)點(diǎn)A需要發(fā)送數(shù)據(jù)包至目的節(jié)點(diǎn)B,該目的節(jié)點(diǎn)最短路徑為節(jié)點(diǎn)A —節(jié)點(diǎn)E —節(jié)點(diǎn)C —節(jié)點(diǎn)B,此時(shí)本地節(jié)點(diǎn)A將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳節(jié)點(diǎn)(即節(jié)點(diǎn)E),并指示節(jié)點(diǎn)E將數(shù)據(jù)包轉(zhuǎn)發(fā)至節(jié)點(diǎn)C……以此類推,直至數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)B。
[0074]本發(fā)明實(shí)施例提供的一種主動(dòng)式路由的方法,提供逐跳的最短路徑,在鄰居節(jié)點(diǎn)發(fā)現(xiàn)過程中只發(fā)送和接收,不進(jìn)行轉(zhuǎn)發(fā)、回復(fù)或洪泛,鄰居節(jié)點(diǎn)發(fā)現(xiàn)操作僅僅限于I個(gè)跳數(shù)的鄰居節(jié)點(diǎn)之間,極大減少了網(wǎng)絡(luò)消息的開銷。同時(shí)能夠及時(shí)快速發(fā)現(xiàn)節(jié)點(diǎn)及網(wǎng)絡(luò)狀態(tài)的變化,較好地解決了復(fù)雜多變的惡劣信道特性所導(dǎo)致的網(wǎng)絡(luò)不穩(wěn)定性的技術(shù)問題。在路由控制過程中,只向鄰居節(jié)點(diǎn)廣播拓?fù)渥訕湫畔?,而不是將整個(gè)拓?fù)浔硐蜞従庸?jié)點(diǎn)擴(kuò)散,大大減少了路由控制消息造成的開銷。
[0075]優(yōu)選的,拓?fù)渥訕湫畔⒊税ū镜毓?jié)點(diǎn)到所有鄰居節(jié)點(diǎn)的鏈路和第一鄰居節(jié)點(diǎn)到第二鄰居節(jié)點(diǎn)的最短路徑,還通過以下步驟B1-B2增加拓?fù)渥訕湫畔⒌膬?nèi)容:
[0076]步驟B1、當(dāng)?shù)谝秽従庸?jié)點(diǎn)到第二鄰居節(jié)點(diǎn)的最短路徑經(jīng)過本地節(jié)點(diǎn)時(shí),拓?fù)渥訕湫畔⑦€包括第二鄰居節(jié)點(diǎn)。
[0077]具體的,例如,本地節(jié)點(diǎn)為節(jié)點(diǎn)A,節(jié)點(diǎn)A的鄰居節(jié)點(diǎn)包括節(jié)點(diǎn)B、節(jié)點(diǎn)C和節(jié)點(diǎn)D,則第一鄰居節(jié)點(diǎn)到第二鄰居節(jié)點(diǎn)為節(jié)點(diǎn)B、節(jié)點(diǎn)C和節(jié)點(diǎn)D中的兩個(gè)節(jié)點(diǎn),如果節(jié)點(diǎn)B到節(jié)點(diǎn)C的最短路徑經(jīng)過本地節(jié)點(diǎn)A(即節(jié)點(diǎn)B到節(jié)點(diǎn)C的最短路徑為:節(jié)點(diǎn)B —節(jié)點(diǎn)A —節(jié)