亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

樹引導(dǎo)分布鏈路狀態(tài)路由方法

文檔序號(hào):7675650閱讀:230來(lái)源:國(guó)知局

專利名稱::樹引導(dǎo)分布鏈路狀態(tài)路由方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種無(wú)線通信系統(tǒng)的路由方法。更具體地,本發(fā)明涉及一種實(shí)現(xiàn)樹路由和鏈路狀態(tài)路由兩者優(yōu)點(diǎn)特點(diǎn)的無(wú)線通信系統(tǒng)的路由方法。
背景技術(shù)
:在無(wú)線網(wǎng)絡(luò)中的節(jié)點(diǎn)可與彼此通信之前,首先需要發(fā)現(xiàn)路徑。由于通過(guò)將邏輯地址與樹結(jié)構(gòu)進(jìn)行綁定而不需路徑發(fā)現(xiàn)來(lái)完成路由,因此樹結(jié)構(gòu)對(duì)于路由的目的是有用的。同樣,樹路由消除了由路徑發(fā)現(xiàn)引起的初始延遲,并節(jié)省了其它路由表需要的存儲(chǔ)空間。然而,由于非優(yōu)路徑和單點(diǎn)故障(SPF)而不利于樹路由。
發(fā)明內(nèi)容從而,本發(fā)明的示例性實(shí)施例至少解決上述的問(wèn)題和缺點(diǎn),本發(fā)明的示例性實(shí)施例的一個(gè)目的是提供一種能夠自適應(yīng)地分配邏輯地址的無(wú)線通信系統(tǒng)的i各由方法。本發(fā)明的示例性實(shí)施例的另一目的是提供一種能夠有效地處理單點(diǎn)故障(SPF)的無(wú)線通信系統(tǒng)的3各由方法。本發(fā)明的示例性實(shí)施例的另一目的是提供一種能夠提高魯棒性和路徑最優(yōu)化的無(wú)線通信系統(tǒng)的路由方法。才艮據(jù)本發(fā)明的示例性實(shí)施例的一方面,可通過(guò)包括多個(gè)節(jié)點(diǎn)的無(wú)線通信系統(tǒng)的路由方法來(lái)完成上述和其它目的。該路由方法包括步驟產(chǎn)生自適應(yīng)樹表對(duì)樹結(jié)構(gòu)中的網(wǎng)絡(luò)的至少一個(gè)分支與至少一個(gè)節(jié)點(diǎn)進(jìn)行定義;在每個(gè)節(jié)點(diǎn)產(chǎn)生包括關(guān)于鄰居節(jié)點(diǎn)的信息的鏈路狀態(tài)表;基于自適應(yīng)樹表和鏈路狀態(tài)表對(duì)包進(jìn)刊^各由。根據(jù)本發(fā)明的另一方面,所述產(chǎn)生自適應(yīng)樹表的步驟包括初始化自適應(yīng)樹表;確定網(wǎng)絡(luò)是否變化;如果網(wǎng)絡(luò)變化,則對(duì)自適應(yīng)樹表進(jìn)行修改。才艮據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述初始化自適應(yīng)樹表的步驟包括將節(jié)點(diǎn)與分支關(guān)聯(lián)為根節(jié)點(diǎn)、中間節(jié)點(diǎn)、葉節(jié)點(diǎn);并對(duì)這些節(jié)點(diǎn)分配地址。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述關(guān)聯(lián)節(jié)點(diǎn)的步驟在當(dāng)決定是否接受另一節(jié)點(diǎn)為子節(jié)點(diǎn)時(shí)考慮每個(gè)節(jié)點(diǎn)的容量。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述節(jié)點(diǎn)容量由接受度來(lái)指示。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述接受度包括非預(yù)定情況下的接受、預(yù)定情況下的接受、勉強(qiáng)接受和拒絕。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述分配地址的步驟包括確定網(wǎng)絡(luò)的節(jié)點(diǎn)總數(shù)是否等于或少于可用地址的總數(shù);如果節(jié)點(diǎn)總數(shù)等于或少于可用地址的總數(shù),則對(duì)節(jié)點(diǎn)分配地址。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述確定節(jié)點(diǎn)總數(shù)的步驟包括在每個(gè)節(jié)點(diǎn)接收子節(jié)點(diǎn)的各個(gè)分支的節(jié)點(diǎn)數(shù);在根節(jié)點(diǎn)通過(guò)對(duì)就在根節(jié)點(diǎn)下的節(jié)點(diǎn)的分支的節(jié)點(diǎn)數(shù)求和來(lái)計(jì)算節(jié)點(diǎn)數(shù)。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述產(chǎn)生鏈路狀態(tài)表的步驟包括在預(yù)定跳數(shù)之內(nèi)的鄰居之間交換鏈路狀態(tài)信息;基于鏈路狀態(tài)信息在每個(gè)節(jié)點(diǎn)更新鏈路狀態(tài)表。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,交換的鏈路狀態(tài)信息包括分配到節(jié)點(diǎn)的地址塊的開始地址和結(jié)束地址、自適應(yīng)樹表中的節(jié)點(diǎn)的樹級(jí)、和節(jié)點(diǎn)的一跳鄰居。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述鏈路狀態(tài)表包括最大跳鄰居列表和連接矩陣。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述最大跳鄰居列表包括第n節(jié)點(diǎn)具有的地址塊的開始地址(begAddrn)、第n節(jié)點(diǎn)具有的地址塊的結(jié)束地址(endAddr)自適應(yīng)樹表中的第n節(jié)點(diǎn)的樹級(jí)(tree—leveln)、和到第n節(jié)點(diǎn)的跳數(shù)(hopSn)。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,使用連接矩陣來(lái)計(jì)算所述到第n節(jié)點(diǎn)的跳數(shù)(hopsn)。根據(jù)本發(fā)明的示例性實(shí)施例的另一方面,所述路由包的步驟包括基于自適應(yīng)樹表31導(dǎo)包和基于鏈路狀態(tài)表將包路由到下一跳。通過(guò)下面結(jié)合附圖進(jìn)行的描述,本發(fā)明的特定示例性實(shí)施例的上述和其他方面、特點(diǎn)和優(yōu)點(diǎn)將會(huì)變得更加清楚,其中圖1是示出根據(jù)本發(fā)明的示例性實(shí)施例的無(wú)線網(wǎng)絡(luò)的示圖;圖2是示出根據(jù)本發(fā)明的示例性實(shí)施例的用于解釋基礎(chǔ)鏈路狀態(tài)方案的無(wú)線網(wǎng)絡(luò)的示圖;和圖3是示出根據(jù)本發(fā)明的示例性實(shí)施例的用于解釋擴(kuò)展鏈路狀態(tài)方案的無(wú)線網(wǎng)絡(luò)的示圖。在整個(gè)附圖中,相同的標(biāo)號(hào)始終表示相同的部件、組件和結(jié)構(gòu)。具體實(shí)施方式在說(shuō)明中定義如詳細(xì)結(jié)構(gòu)和部件的內(nèi)容以幫助全面理解本發(fā)明實(shí)施例,但僅僅是示例。因此,本領(lǐng)域的技術(shù)人員將意識(shí)到在不脫離本發(fā)明范圍和精神的情況下,可以對(duì)在此描述的實(shí)施例進(jìn)行各種變形和修改。同樣,為了清楚和簡(jiǎn)潔的目的,將忽略對(duì)公知功能和結(jié)構(gòu)的描述。根據(jù)本發(fā)明示例性實(shí)施例的路由算法的示例性實(shí)現(xiàn)在此是指結(jié)合自適應(yīng)樹路由和鏈路狀態(tài)路由的樹引導(dǎo)分布鏈路狀態(tài)(TDLS)算法。將樹結(jié)構(gòu)用作用于指出應(yīng)向哪個(gè)方向中繼包而不是指出精確的下一跳的指導(dǎo)。精確的下一跳信息來(lái)自于每個(gè)中繼節(jié)點(diǎn)的本地鏈路狀態(tài)表。根據(jù)本發(fā)明示例性實(shí)施例的TDLS的非限制性特征具有減化的復(fù)雜性、自適應(yīng)地址分配和分布《連^各狀態(tài)。例如,由于沒(méi)有路徑發(fā)現(xiàn)和路徑修復(fù)而減化了TDLS的復(fù)雜性。TDLS考慮網(wǎng)絡(luò)拓樸來(lái)分配地址。TDLS本質(zhì)上不對(duì)子節(jié)點(diǎn)數(shù)、地址塊大小和最大樹級(jí)作限制。此外,TDLS本質(zhì)上沒(méi)有"跑飛地址,,的問(wèn)題。此外,分布鏈路狀態(tài)技術(shù)提高了可擴(kuò)展性,提供了多路徑和魯棒性,并使路徑變短。在本發(fā)明的示例性實(shí)施例中,每個(gè)節(jié)點(diǎn)保存如下的自適應(yīng)樹表表1<table>tableseeoriginaldocumentpage6</column></row><table>其中肌mJ)rawcA是節(jié)點(diǎn)具有的分支數(shù),6"—^/&是分支i的開始地址(i二l2,3,...),em/—a^/r是分支i的結(jié)束地址(i4,2,3,...)。每個(gè)分支被分配了一塊連續(xù)的地址。在示例性實(shí)施例中,不需要對(duì)這些分支分配連續(xù)的塊。在本發(fā)明的示例性實(shí)施例中,TDLS提出兩個(gè)階段初始化(配置)階段和操作階段。在初始化階段期間,節(jié)點(diǎn)加入網(wǎng)絡(luò)并且樹被形成。初始化之后,網(wǎng)絡(luò)進(jìn)入操作階段,其間常規(guī)通信開始。在操作階段期間,仍然允許新節(jié)點(diǎn)加入網(wǎng)絡(luò),但是新節(jié)點(diǎn)數(shù)應(yīng)比網(wǎng)絡(luò)中已有的節(jié)點(diǎn)數(shù)小。如果節(jié)點(diǎn)數(shù)或網(wǎng)絡(luò)拓樸中的一個(gè)有重大變化,則可重復(fù)初始化。自適應(yīng)樹構(gòu)成過(guò)程被劃分為兩個(gè)階段關(guān)聯(lián)階段和地址分配階段。在關(guān)聯(lián)階段期間,從根開始(通常手動(dòng)指定,例如,通過(guò)按下按鈕),節(jié)點(diǎn)逐漸加入網(wǎng)絡(luò)并且樹;故形成。由于沒(méi)有對(duì)任何節(jié)點(diǎn)分配地址,故該樹還沒(méi)有構(gòu)成自適應(yīng)樹。本質(zhì)上沒(méi)有對(duì)節(jié)點(diǎn)可接受的子節(jié)點(diǎn)數(shù)作出限制。節(jié)點(diǎn)可根據(jù)其容量和其它因素自行確定其將接受的節(jié)點(diǎn)數(shù)(因而確定分支數(shù))。然而,如果子節(jié)點(diǎn)數(shù)不是可變的,則節(jié)點(diǎn)可能找不到任何其它節(jié)點(diǎn)來(lái)關(guān)聯(lián)。因此,節(jié)點(diǎn)使用接受度(AD)來(lái)指示接受的意愿而不是接受或拒絕關(guān)聯(lián)請(qǐng)求,例如,可使用4級(jí)AD:3-非預(yù)定情況下的接受2-預(yù)定情況下的接受1-勉強(qiáng)接受O-拒絕(節(jié)點(diǎn)應(yīng)盡力避免該AD除非絕對(duì)需要)當(dāng)節(jié)點(diǎn)接收多關(guān)聯(lián)響應(yīng)時(shí),應(yīng)選擇具有最高AD的節(jié)點(diǎn)以進(jìn)行關(guān)聯(lián),除非有其它高優(yōu)先級(jí)的因素指示不這樣做。使用AD增加了節(jié)點(diǎn)成功加入網(wǎng)絡(luò)而不使單個(gè)節(jié)點(diǎn)嚴(yán)重過(guò)載的機(jī)會(huì)。在分支到達(dá)它的底部之后,也就是說(shuō),沒(méi)有更多的節(jié)點(diǎn)等待加入網(wǎng)絡(luò)(可為此目的使用適當(dāng)?shù)挠?jì)時(shí)器),使用"下-頂"過(guò)程來(lái)計(jì)算沿著每個(gè)分支的節(jié)點(diǎn)數(shù)。圖。''''、u、、、在圖l中,方括號(hào)中的數(shù)字指示在特定節(jié)點(diǎn)下分支內(nèi)的節(jié)點(diǎn)數(shù)。例如,節(jié)點(diǎn)A110有兩個(gè)分支。第一分支包括8個(gè)節(jié)點(diǎn)B、C、D、E、F、G、H和I,第二分支包括6個(gè)節(jié)點(diǎn)J、K、L、M、N和O。當(dāng)節(jié)點(diǎn)數(shù)被從底部報(bào)告到頂部時(shí),每個(gè)節(jié)點(diǎn)也可指示期望的地址數(shù)。例如,雖然當(dāng)前對(duì)于節(jié)點(diǎn)F120只需一個(gè)地址就足夠了,但節(jié)點(diǎn)F120可指示其希望得到3個(gè)地址(2個(gè)可用于未來(lái)的擴(kuò)展)。節(jié)點(diǎn)E130可指示其希望得到5個(gè)地址(3個(gè)用于節(jié)點(diǎn)F,l個(gè)用于自身,l個(gè)用于未來(lái)的擴(kuò)展)。根節(jié)點(diǎn)AllO從所有分支接收到信息之后,其開始分配地址。在地址分配階段期間,使用"頂-下"過(guò)程。首先,根節(jié)點(diǎn)A110檢查網(wǎng)絡(luò)中的節(jié)點(diǎn)總數(shù)是否小于可用地址總數(shù)。如果不是,則地址分配失敗。在地址溢出情況下的可行的解決方案是將網(wǎng)絡(luò)分為更小的網(wǎng)絡(luò)或增加地址空間。在本發(fā)明的示例性實(shí)施例中,假設(shè)沒(méi)有地址溢出。接下來(lái),考慮實(shí)際的節(jié)點(diǎn)數(shù)和期望的地址凄M艮節(jié)點(diǎn)A110而為每個(gè)在其下方的分支分配一塊連續(xù)的地址。在示例性實(shí)現(xiàn)中,實(shí)際分配的地址數(shù)可少于所希望的地址數(shù)(但不少于實(shí)際的節(jié)點(diǎn)數(shù))或多于所希望的,取決于地址的可用性。該過(guò)程持續(xù)到樹的底部。在地址分配之后,形成了自適應(yīng)樹,并且每個(gè)節(jié)點(diǎn)具有用于跟蹤在其下方的分支的自適應(yīng)樹表。例如,節(jié)點(diǎn)C140可具有如下所示的自適應(yīng)樹表表2<table>tableseeoriginaldocumentpage8</column></row><table>表2指示節(jié)點(diǎn)C140具有3個(gè)分支,節(jié)點(diǎn)C140的第一到第三分支分別具有地址塊[6,7,8]、[9,10,11,12]和[14]。在形成自適應(yīng)樹表之后,網(wǎng)絡(luò)進(jìn)入操作階段。使用自適應(yīng)樹表,可更容易地路由包。例如,當(dāng)接收到包時(shí),節(jié)點(diǎn)C140才企查包的目標(biāo)地址是否屬于它的分支。如果包的目標(biāo)地址屬于第i分支,則通過(guò)具有第i分支的beg—addr,的節(jié)點(diǎn)來(lái)路由包。如果包的目標(biāo)地址不屬于任何分支,則其被路由到節(jié)點(diǎn)C140的父節(jié)點(diǎn)。盡管在常規(guī)階段期間期望沒(méi)有節(jié)點(diǎn)數(shù)或網(wǎng)絡(luò)拓樸的重大改變,但是只要附加地址(在初始化階—險(xiǎn)保留的)可用仍然允許在樹的任何級(jí)增加更多的節(jié)點(diǎn)(因而增加分支)。如果節(jié)點(diǎn)數(shù)或網(wǎng)絡(luò)拓樸有常規(guī)階段期間不能處理的重大改變,則網(wǎng)絡(luò)可再次經(jīng)過(guò)初始化階段。本發(fā)明的示例性實(shí)施例采用了鏈路狀態(tài)路由方案。在基礎(chǔ)鏈路狀態(tài)方案中,每個(gè)節(jié)點(diǎn)在maxHop(由具體應(yīng)用確定的參數(shù))跳之內(nèi)保持用于它所有鄰居的鏈路狀態(tài)表(LST)。每個(gè)鄰居的塊地址被記錄在LST中,從而該鄰居下的整個(gè)分支是可路由的。為了轉(zhuǎn)發(fā)數(shù)據(jù)包,首先詢問(wèn)LST并使用最優(yōu)路徑(可找到多個(gè)路徑);如果在LST中沒(méi)有找到路徑,則將所述包轉(zhuǎn)發(fā)到父節(jié)點(diǎn)。圖2是根據(jù)本發(fā)明的示例性實(shí)施例的用于解釋采用基礎(chǔ)鏈路狀態(tài)方案的無(wú)線網(wǎng)絡(luò)的路由方法的示圖。在圖2中,示出了用于基礎(chǔ)鏈路狀態(tài)方案的節(jié)點(diǎn)J220的2跳鏈路狀態(tài)圖。注意到,不同于節(jié)點(diǎn)K150,節(jié)點(diǎn)D、E、F、M和N(分別為250、130、120、170和260)不在節(jié)點(diǎn)J220的2跳范圍內(nèi),但由于它們是節(jié)點(diǎn)J220的那些可路由鄰居的子節(jié)點(diǎn),故它們?nèi)匀皇侵苯涌陕酚傻?。與純自適應(yīng)樹相比,鏈路狀態(tài)路由提供平均更短的路徑。此外,在多數(shù)情況下消除傳統(tǒng)樹路由的SPF。在擴(kuò)展鏈路狀態(tài)方案中,不迫使節(jié)點(diǎn)使用預(yù)定的maxHop參數(shù)以建立其LST。雖然仍需要節(jié)點(diǎn)交換maxHop鄰居信息,但是節(jié)點(diǎn)可根據(jù)其周圍的節(jié)點(diǎn)密度來(lái)建立用于linkH叩(linkHop〈maxHop)跳鄰居的LST。通常,如果節(jié)點(diǎn)周圍的節(jié)點(diǎn)密度小,則節(jié)點(diǎn)使用較大的linkHop,反之亦然。使用鏈路狀態(tài)路由的其中一個(gè)示例性目的是繞過(guò)損壞的樹路徑。在高節(jié)點(diǎn)密度的情況下,節(jié)點(diǎn)可找到更多路徑,可使用所述路徑來(lái)繞過(guò)損壞的樹路徑。這種提高的可靠性使得節(jié)點(diǎn)能夠建立相對(duì)較小的LST。如果區(qū)域周圍的節(jié)點(diǎn)密度非常小,則即使與maxHop相同大小的linkHop也不足夠。一種解決方案是允許該區(qū)域的節(jié)點(diǎn)使用大于maxHop的linkHop。但是由于在默認(rèn)情況下只有maxHop跳信息被交換,故所有該區(qū)域中的節(jié)點(diǎn)需要再次交換linkHop(在此情況下大于maxHop)跳信息。這里,該示例性實(shí)施例提出了另一種更有效的方法。在基礎(chǔ)LST被建立之后,每個(gè)節(jié)點(diǎn)檢查其是否具有到linkHop跳之內(nèi)的每個(gè)鄰居的多路徑。如果沒(méi)有,則該節(jié)點(diǎn)將其完整的LST單播到這些鄰居。在接收到LST時(shí),節(jié)點(diǎn)將其LST單播回源。這實(shí)際上在相關(guān)節(jié)點(diǎn)之間創(chuàng)建了2xlinkHop跳LST。圖3是根據(jù)本發(fā)明的示例性實(shí)施例的用于解釋使用擴(kuò)展鏈路狀態(tài)方案的無(wú)線網(wǎng)絡(luò)的路由方法的示圖。在圖3中,在基礎(chǔ)LST被建立之后,節(jié)點(diǎn)A310發(fā)現(xiàn)在linkHop(這里是3)跳之內(nèi)它只有一條路徑到節(jié)點(diǎn)D320。故節(jié)點(diǎn)A310將與節(jié)點(diǎn)D320交換LST信息。節(jié)點(diǎn)A310和節(jié)點(diǎn)D320都會(huì)發(fā)現(xiàn)在它們之間有另一路徑,即是,A-I-J-K-L-D。然后它們都將該路徑記錄到LST并且也將消息(具有l(wèi)inkHop的TTL)單播以通知節(jié)點(diǎn)I、J、K和L,因此這些節(jié)點(diǎn)也可更新它們的LST。最后,在節(jié)點(diǎn)A310和節(jié)點(diǎn)D320之間一企測(cè)第二路徑。在lmkHop跳之內(nèi)的所有鄰居之間,節(jié)點(diǎn)的祖先(ancestor)和后代(descendent)(根據(jù)樹結(jié)構(gòu))比其它節(jié)點(diǎn)更加重要。因此,可選地,節(jié)點(diǎn)可有區(qū)別地處理其鄰居。例如,僅保證多路徑對(duì)于祖先和后代可用,或保持比其它節(jié)點(diǎn)更多的祖先和后代的跳鏈路狀態(tài)??傊?,根據(jù)本發(fā)明的示例性實(shí)施例的擴(kuò)展鏈路狀態(tài)方案可比基礎(chǔ)鏈路狀態(tài)方案更加可靠、有效和適應(yīng)性強(qiáng)。在樹信息之后,節(jié)點(diǎn)通過(guò)周期性地廣播幾個(gè)具有maxHop的TTL的Hello消息來(lái)交換鏈路狀態(tài)信息。在表3中給出Hello消息格式的例子。表3begAddrendAddrtree—leveloh—neighbor',oh—neighbor2,...,oh—neighborkbegAddr:節(jié)點(diǎn)具有的地址塊的開始地址(也是分配到節(jié)點(diǎn)本身的地址)endAddr:節(jié)點(diǎn)具有的地址塊的結(jié)束地址tree—level:節(jié)點(diǎn)的才對(duì)級(jí)oh—neighbork:節(jié)點(diǎn)的一跳鄰居當(dāng)接收到每個(gè)Hello消息時(shí),更新如表4所示的由maxHop跳鄰居列表和如表5所示的連接矩陣組成的節(jié)點(diǎn)的鏈路狀態(tài)表。每個(gè)節(jié)點(diǎn)當(dāng)接收到每個(gè)Hello消息時(shí)更新其鄰居列表。注意不僅Hello消息的源被加入到鄰居列表,而且源的一跳鄰居被加入到鄰居列表,endAddr和tree—level臨時(shí)標(biāo)為"未知"。當(dāng)從相應(yīng)的鄰居接收到Hello消息時(shí),將"未知"的endAddr和tree—level替換為實(shí)際值。如果在整個(gè)Hello消息交換過(guò)程期間沒(méi)有從一些鄰居接收到Hello消息,則節(jié)點(diǎn)可通過(guò)對(duì)其一跳鄰居廣播消息來(lái)請(qǐng)求endAddr和tree—level信息,所述一跳鄰居包括endAddr和tree—level丟失的所有鄰居。每個(gè)一跳鄰居接收到消息后,如果可提供包括在消息中的一個(gè)或多個(gè)鄰居的endAddr和tree一level信息,則作出回復(fù)。根據(jù)連接矩陣來(lái)計(jì)算字段"hops"。表4<table>tableseeoriginaldocumentpage11</column></row><table>節(jié)點(diǎn)可從包括在每個(gè)Hello消息中的一跳鄰居信息為鄰居列表中記錄的鄰居構(gòu)造連接矩陣。表5示出連接矩陣的一個(gè)例子。表5<table>tableseeoriginaldocumentpage11</column></row><table>3跳鄰居nb,43兆鄰居nb,可使用連接矩陣來(lái)計(jì)算鄰居列表中的每個(gè)節(jié)點(diǎn)的字段/w戸,首先將每個(gè)節(jié)點(diǎn)的字段力o/w設(shè)為無(wú)窮大。然后,所有直接連接到"我"的節(jié)點(diǎn)是一跳鄰居(在上述例子中是nb2、nb^,...)。接下來(lái),所有直接連接到一跳鄰居(并具有無(wú)窮大的hops)的節(jié)點(diǎn)是二跳鄰居(在上述例子中是nb"nb3,…)持續(xù)該過(guò)程直到構(gòu)成所有鄰居的跳數(shù)。以下偽代碼描述如何為轉(zhuǎn)發(fā)數(shù)據(jù)而選擇下一跳。1:func—nextHop(dst)2:腦.g/^or_/b,<i=searchtheneighborlistforthelowest(i.e.,withthelargesttreelevel)neighborwhoistheancestorof<^butisnotmyancestor;3:ifwe/g7z6or〃向下4:wexL力o產(chǎn)getOneHopNeighbor(腦-g7zZjor5:returnwe《力。P;6:elseifdestinationisnotmydescendent〃向上7:/oimd=isthereaneighborwhohasatreelevellessthanmine8:if_/bww/9:Ao/w2roo^=theminimum(Ao/w+加e一/eve/)foundamongneighborsthathaveatreelevellessthanmine;10:w/w/o/w=theminimumhopsfoundamongneighborsthathaveaofZzo/w2rao,;11:_/^ww^/=selectoneoftheneighborsthathavea(Ao/w+加e—/eve/)ofAo/w2rc>o,anda/zo/wof12:wexL厶o產(chǎn)getOneHopNeighbor(聰'g7^or13:return14:else〃應(yīng)向上,^旦無(wú)法向上15:returnwo—wexZ—16:endif17:else〃應(yīng)向下,^旦無(wú)法向下18:returnwo一w加—Aop;19:endif20:endfunc21:func—getOneHopNeighbor(we妙Zw22:marktheAo/—聽附Z)erofeachneighboras"infinity";23:cwrre《A。戸hopnumberofthe24:whilecwnr《Ao戸〉125:foreachneighbor喊.withaAo/—鹿附Z^ofcw/re《A。戸26:foreachneighbor—.directlyconnectedto喊.27:/6>7—w畫Zerofw/j廣cr^—厶0/7^1;28:endfor29:endfor30:cwrm^—A0^=ci/^re《Aop^-1;31:endwhile32:returnoneoftheneighborswithAo/一鹿mZerof133:endflmc當(dāng)多鄰居可用于選擇且沒(méi)有其它成本度量指示一個(gè)鄰居比另一個(gè)更好時(shí),可能出于負(fù)載平衡的目的隨機(jī)選擇一個(gè)鄰居。然而,為了減輕"順序錯(cuò)誤"的問(wèn)題,最好是一旦選擇了某一鄰居就在一段時(shí)期內(nèi)堅(jiān)持該鄰居(而不是每次隨機(jī)選擇鄰居)。如果由于路由失敗而沒(méi)有找到下一跳,則應(yīng)執(zhí)行環(huán)狀搜索??赏ㄟ^(guò)如在鏈路狀態(tài)產(chǎn)生階段那樣交換Hello消息來(lái)實(shí)現(xiàn)環(huán)狀搜索,但是需要較大的TTL。為了減小通信開銷和干擾,在鏈路狀態(tài)產(chǎn)生階段之后沒(méi)有廣播周期的Hello消息。在鏈路狀態(tài)產(chǎn)生階段之后,僅在檢測(cè)到鏈路失敗、鏈路恢復(fù)或新鄰居時(shí)才廣播Hello消息。如果節(jié)點(diǎn)遺漏了一些Hello消息,則其鏈路狀態(tài)會(huì)不準(zhǔn)確。不準(zhǔn)確的鏈路狀態(tài)不僅可導(dǎo)致繞道路徑的選擇,更嚴(yán)重的,會(huì)導(dǎo)致^各徑循環(huán)。在不使用周期的Hello消息的情況下迅速檢測(cè)不準(zhǔn)確的鏈路狀態(tài)的一種方法是在消息中包括一位"上-下"標(biāo)志和中繼節(jié)點(diǎn)的所謂虛擬樹級(jí)。"上-下"標(biāo)志指示先前的跳將消息向上轉(zhuǎn)發(fā)還是向下轉(zhuǎn)發(fā)。將虛擬樹級(jí)定義為如下等式其中,neighborLevel是在上述偽代碼的21行中給出的neighbor—found的樹級(jí),hops2Nb是到neighbor—found的跳。使flag1=包括在輸入消息中的"上-下"標(biāo)志vTreeLevel嚴(yán)包括在輸入消息中的虛擬樹級(jí)flag^消息的接收器的"上-下"標(biāo)志vTreeLevel2=消息的接收器的虛擬樹級(jí)然后其遵循應(yīng)注意到,如果接收器只使用(maxHops-l)跳鏈路狀態(tài)信息計(jì)算flag2和vTreeLevel2(即是,比先前跳使用的少一跳),則應(yīng)在等式(2)中僅應(yīng)用等號(hào)"=',。更有效的方法是只在消息中包括"上-下,,標(biāo)志和h叩s2Nb值。同樣如下所示來(lái)定義參數(shù)flag產(chǎn)包括在輸入消息中的"上-下"標(biāo)志h叩s2Nb尸包括在輸入消息的hops2Nb值flag^消息的接收器的"上-下"標(biāo)志hops2Nb^消息的接收器的hops2Nb值如果使用maxf/o/跳鏈路狀態(tài)信息計(jì)算所有上述的值,則在Ao/w2M)/與/^,2M)2之間就沒(méi)有關(guān)系。這可從等式(1)和(2)看出。等式(2)給出了在兩個(gè)wW腿/—/eve/之間的關(guān)系。如果均使用max/7o;《連^各狀態(tài)信息(先前跳和接收器具有不同的max/Zo;鏈路狀態(tài)信息)計(jì)算兩個(gè)"e/g/^or丄eve/,則在這兩個(gè)we/g力Zw丄eve/之間沒(méi)有關(guān)系。因此,根據(jù)等式(l),在Ao/w2M)/與Ao戸2M^之間也沒(méi)有關(guān)系。根據(jù)上述內(nèi)容,使用max/Zo/跳鏈路狀態(tài)信息計(jì)算(/7ag,、Ao/w^M)》,但是只有(附0^//0戸-/)跳鏈路狀態(tài)信息來(lái)計(jì)算(/7吸2、Ao戸2M^)。陋.g/z6o-丄eve/_/ops2M(如果向下)腦'gA6orLeve/_Zops27V&(如果向上)vTreeLeve12—vTreeLevell》l(j口果flagl=向下)vTreeLevell-vTreeLeve122l或flag2=向下(如果flagl=向上)在這種情況下,其應(yīng)為'/j,2鹿-—s2脆二l(如果—2場(chǎng)1〉1)后代是我的后代(如果(Ao戸2Mj1=l))且(flagl二向下))receTreeLevel—preHopTreeLevel》1(如果(/o/a2A^1=1》且(flagl=向上))(3)如果沒(méi)有保持等式(2)或(3),則先前跳或/和接收器的鏈路狀態(tài)信息是不準(zhǔn)確的。在這種情況下,接收器將其(maxHops-l)跳連接矩陣發(fā)送到先前跳,然后接收器將接收的連接矩陣與其自身的連接矩陣作比較,并通知給其相關(guān)于兩個(gè)連接矩陣的任何不匹配記錄的鄰居。任何被通知的節(jié)點(diǎn)廣播若千Hello消息來(lái)更新其鄰居的鏈路狀態(tài)。如果節(jié)點(diǎn)探測(cè)到其一跳連接由于鏈路失敗、鏈路恢復(fù)或檢測(cè)到新鄰居而改變,則該節(jié)點(diǎn)應(yīng)以maxHop的TTL廣播若干Hello消息。鏈路失敗(包括節(jié)點(diǎn)失敗)、沖突或背景干擾可引起傳輸失敗。因此每次傳輸失敗降低路徑不是個(gè)好的實(shí)踐。在本發(fā)明的示例性實(shí)施例中,傳輸失敗的鄰居首先放入探測(cè)列表。探測(cè)列表中的鄰居可具有未知或向下的狀態(tài)。使用計(jì)時(shí)器在最后探測(cè)之后的每個(gè)若干探測(cè)間隔秒來(lái)探測(cè)具有未知狀態(tài)的鄰居(計(jì)時(shí)器驅(qū)動(dòng)),或每次所述鄰居被選擇為數(shù)據(jù)傳輸?shù)南乱惶土⒓刺綔y(cè)所述鄰居(計(jì)時(shí)器驅(qū)動(dòng))。雖然具有未知狀態(tài)的鄰居可仍然像正常鄰居一樣被選擇為下一跳,但是實(shí)際上不用于發(fā)送任何數(shù)據(jù)包。如果沒(méi)有足夠的存儲(chǔ)器,則緩沖或丟棄所有使該鄰居作為下一跳的數(shù)據(jù)包。探測(cè)持續(xù)到通往所述鄰居的鏈路被恢復(fù)或者包括計(jì)時(shí)器驅(qū)動(dòng)探測(cè)和數(shù)據(jù)驅(qū)動(dòng)探測(cè)的總探測(cè)數(shù)達(dá)到max_probe—num。如果鏈路被恢復(fù),則相應(yīng)的鄰居被從探測(cè)列表移除,并且對(duì)該鄰居緩沖的所有包(如果有的話)被轉(zhuǎn)發(fā)到該鄰居。如果接收到探測(cè)的MACACK(如果路由層接入MACACK的狀況)或通過(guò)路由層(或如果支持串音則通過(guò)MAC串音)從所述鄰居接收到包括探測(cè)回復(fù)的任何包,則鏈路被認(rèn)為恢復(fù)。如果在鏈路恢復(fù)之前探測(cè)數(shù)達(dá)到max_probe—num,則鄰居的狀態(tài)被變?yōu)橄蛳?。相?yīng)的,更新連接矩陣且以maxHop的TTL廣播Hello消息。在第一Hello消息的廣播之后,所有為鄰居緩存的包(如果有的話)經(jīng)由其它路徑被路由。應(yīng)注意在初始下一跳^皮確定向下且通過(guò)Hello消息向所有maxHop跳鄰居通知這一情況之前,數(shù)據(jù)包不應(yīng)經(jīng)由其它路徑被路由。原因在于,雖然可能性不高,但是由于其它節(jié)點(diǎn)不知道初始下一跳向下,所以數(shù)據(jù)包會(huì)被轉(zhuǎn)發(fā)回當(dāng)前節(jié)點(diǎn)。如果通往鄰居的鏈路被確定向下,則鄰居保留在探測(cè)列表中,但是僅僅被計(jì)時(shí)器探測(cè)(其不會(huì)被用作任何數(shù)據(jù)包的下一跳)且每次探測(cè)后探測(cè)間隔增力口,直到最大^f直max_probe—interval。例長(zhǎng)口,可4吏用間隔2、4、6、...、max_probe—interval秒來(lái)探測(cè)具有向下狀態(tài)的鄰居。如果鏈路恢復(fù),則有助于在不多于max_probe—interval秒內(nèi)4企測(cè)鏈^各。雖然已經(jīng)參照其特定示例性實(shí)施例具體描述和顯示了本發(fā)明,但是本領(lǐng)域的普通技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求及其等同物限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)上的各種改變。權(quán)利要求1、一種包括多個(gè)節(jié)點(diǎn)的無(wú)線通信網(wǎng)絡(luò)的路由方法,該方法包括產(chǎn)生自適應(yīng)樹表對(duì)樹結(jié)構(gòu)中的網(wǎng)絡(luò)的至少一個(gè)分支與至少一個(gè)節(jié)點(diǎn)進(jìn)行定義;在每個(gè)節(jié)點(diǎn)產(chǎn)生包括鄰居節(jié)點(diǎn)的信息的鏈路狀態(tài)表;基于自適應(yīng)樹表和鏈路狀態(tài)表對(duì)數(shù)據(jù)包進(jìn)行路由。2、如權(quán)利要求l所述的方法,其中,所述產(chǎn)生自適應(yīng)樹表的步驟包括初始化自適應(yīng)樹表;確定網(wǎng)絡(luò)是否變化;以及如果網(wǎng)絡(luò)變化,則對(duì)自適應(yīng)樹表進(jìn)行修改。3、如權(quán)利要求2所述的方法,其中,所述初始化自適應(yīng)樹表的步驟包括將節(jié)點(diǎn)與分支關(guān)聯(lián)為根節(jié)點(diǎn)、中間結(jié)點(diǎn)、底葉節(jié)點(diǎn)中的至少一個(gè);以及對(duì)關(guān)聯(lián)的節(jié)點(diǎn)分配地址。4、如權(quán)利要求3所述的方法,其中,所述關(guān)聯(lián)節(jié)點(diǎn)的步驟包括當(dāng)決定是否接受另一節(jié)點(diǎn)為子節(jié)點(diǎn)時(shí),考慮每個(gè)節(jié)點(diǎn)的容量。5、如權(quán)利要求4所述的方法,其中,所述節(jié)點(diǎn)容量由接受度來(lái)指示。6、如權(quán)利要求5所述的方法,其中,所述接受度包括非預(yù)定情況下的接受、預(yù)定情況下的接受、勉強(qiáng)接受和拒絕中的至少一個(gè)。7、如權(quán)利要求3所述的方法,其中,所述分配地址的步驟包括確定網(wǎng)絡(luò)的節(jié)點(diǎn)總數(shù)是否等于或少于可用地址的總數(shù);如果網(wǎng)絡(luò)的節(jié)點(diǎn)總數(shù)等于或少于可用地址的總數(shù),則對(duì)節(jié)點(diǎn)分配地址。8、如權(quán)利要求7所述的方法,其中,所述確定節(jié)點(diǎn)總數(shù)的步驟包括在每個(gè)節(jié)點(diǎn)接收子節(jié)點(diǎn)的各個(gè)分支的節(jié)點(diǎn)數(shù);在根節(jié)點(diǎn)通過(guò)對(duì)根節(jié)點(diǎn)下的節(jié)點(diǎn)的分支的節(jié)點(diǎn)數(shù)求和來(lái)計(jì)算節(jié)點(diǎn)總數(shù)。9、如權(quán)利要求l所述的方法,其中,所述產(chǎn)生鏈路狀態(tài)表的步驟包括在若干跳之內(nèi)的鄰居間交換鏈路狀態(tài)信息;以及基于鏈路狀態(tài)信息在每個(gè)節(jié)點(diǎn)更新鏈路狀態(tài)表。10、如權(quán)利要求9所述的方法,其中,所述交換的鏈路狀態(tài)信息包括分配到節(jié)點(diǎn)的地址塊的開始地址和結(jié)束地址、自適應(yīng)一對(duì)表中的節(jié)點(diǎn)的初十級(jí)、和節(jié)點(diǎn)的一跳鄰居。11、如權(quán)利要求9所述的方法,其中,所述鏈路狀態(tài)表包括最大跳鄰居列表和連接矩陣。12、如權(quán)利要求11所述的方法,其中,所述最大跳鄰居列表包括第n節(jié)點(diǎn)具有的地址塊的開始地址(begAddm)、第n節(jié)點(diǎn)具有的地址塊的結(jié)束地址(endAddrn)、自適應(yīng)樹表中的第n節(jié)點(diǎn)的樹級(jí)(treejeveln)、和第n節(jié)點(diǎn)的跳數(shù)(hopsn)。13、如權(quán)利要求12所述的方法,其中,使用連接矩陣來(lái)計(jì)算所述第n節(jié)點(diǎn)的跳數(shù)(hopsn)。全文摘要提供一種實(shí)現(xiàn)樹路由和鏈路狀態(tài)路由兩者的優(yōu)點(diǎn)的無(wú)線通信系統(tǒng)的路由方法。在該路由方法中,系統(tǒng)產(chǎn)生以至少一個(gè)具有至少一個(gè)節(jié)點(diǎn)的分支的樹結(jié)構(gòu)來(lái)定義網(wǎng)絡(luò)的自適應(yīng)樹表,每個(gè)節(jié)點(diǎn)產(chǎn)生包括關(guān)于鄰居節(jié)點(diǎn)的信息的鏈路狀態(tài)表,從而基于自適應(yīng)樹表和鏈路狀態(tài)表對(duì)包進(jìn)行路由。結(jié)合樹路由和鏈路狀態(tài)路由兩者的優(yōu)點(diǎn)機(jī)制,從而可消除傳統(tǒng)樹路由的大部分單點(diǎn)故障并且提供比傳統(tǒng)樹路徑更短的路徑。文檔編號(hào)H04L12/28GK101401360SQ200780008369公開日2009年4月1日申請(qǐng)日期2007年3月15日優(yōu)先權(quán)日2006年3月16日發(fā)明者丁鎮(zhèn)世,李明鐘,鄭建良申請(qǐng)人:三星電子株式會(huì)社;紐約州立大學(xué)研究基金會(huì)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1