一種無(wú)線網(wǎng)絡(luò)路由的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種實(shí)現(xiàn)方法,尤其涉及的是一種無(wú)線網(wǎng)絡(luò)路由的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002] 無(wú)線網(wǎng)絡(luò)作為一種新型通信網(wǎng)絡(luò),能夠?qū)崿F(xiàn)節(jié)點(diǎn)與節(jié)點(diǎn)之間的多跳無(wú)線通信。隨 著無(wú)線網(wǎng)絡(luò)技術(shù)的不斷發(fā)展以及各種新應(yīng)用的不斷涌現(xiàn),迫切需要無(wú)線網(wǎng)絡(luò)能夠接入互聯(lián) 網(wǎng)以滿足用戶急劇增長(zhǎng)的應(yīng)用需求。
[0003] 無(wú)線網(wǎng)絡(luò)作為一種特殊類型的移動(dòng)自組網(wǎng),具有移動(dòng)速度快、節(jié)點(diǎn)數(shù)量多、覆蓋面 積大等特點(diǎn)?;贗Pv6的互聯(lián)網(wǎng)(以下簡(jiǎn)稱IPv6網(wǎng)絡(luò))具有移動(dòng)性支持、地址資源豐富 以及擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。因此,無(wú)線網(wǎng)絡(luò)接入IPv6網(wǎng)絡(luò)成為滿足用戶應(yīng)用需求的理想解決方 案。
[0004] 目前的研究人員提出了無(wú)線網(wǎng)絡(luò)通過接入基于IPv6的互聯(lián)網(wǎng)獲取網(wǎng)絡(luò)服務(wù)的模 式并定義了相應(yīng)的協(xié)議棧,但是由于無(wú)線網(wǎng)絡(luò)網(wǎng)的體系結(jié)構(gòu)與IPv6網(wǎng)絡(luò)不通,現(xiàn)有的接入 方法具有一些局限性。因此需要提出一種無(wú)線網(wǎng)絡(luò)的通信實(shí)現(xiàn)方法,從而降低數(shù)據(jù)丟失率, 提尚服務(wù)質(zhì)量。
【發(fā)明內(nèi)容】
[0005] 發(fā)明目的:本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于定 位信息的車聯(lián)網(wǎng)實(shí)現(xiàn)方法。
[0006] 技術(shù)方案:本發(fā)明公開了一種無(wú)線網(wǎng)絡(luò)路由的實(shí)現(xiàn)方法,其特征在于,所述無(wú)線網(wǎng) 絡(luò)包括一個(gè)以上接入路由器和一個(gè)以上無(wú)線節(jié)點(diǎn)兩種節(jié)點(diǎn),無(wú)線網(wǎng)絡(luò)通過接入路由器接入 到互聯(lián)網(wǎng);
[0007] 無(wú)線節(jié)點(diǎn)設(shè)置在道路兩邊的基礎(chǔ)設(shè)施上,例如路燈等,相鄰無(wú)線節(jié)點(diǎn)或者無(wú)線節(jié) 點(diǎn)與相鄰接入路由器之間能夠互相通信;兩個(gè)路口之間的道路稱為路段,路口包括十字路 口,三叉路口和五岔路口,路段中的無(wú)線節(jié)點(diǎn)劃分為三類:開始節(jié)點(diǎn),普通節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn); 開始節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)量大于2,結(jié)束節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)量等于1或者大于2,普通節(jié)點(diǎn)的 鄰居節(jié)點(diǎn)數(shù)量等于2 ;
[0008] -個(gè)路段中的所有節(jié)點(diǎn)構(gòu)成一個(gè)超級(jí)節(jié)點(diǎn);一個(gè)接入路由器以及所有通過該接入 路由器連接到互聯(lián)網(wǎng)的超級(jí)節(jié)點(diǎn)構(gòu)建成一個(gè)子網(wǎng),該子網(wǎng)的拓?fù)浣Y(jié)構(gòu)為樹狀結(jié)構(gòu),稱為超 級(jí)節(jié)點(diǎn)樹,超級(jí)節(jié)點(diǎn)樹的根節(jié)點(diǎn)為接入路由器;一個(gè)超級(jí)節(jié)點(diǎn)中的開始節(jié)點(diǎn)與該超級(jí)節(jié)點(diǎn) 的父超級(jí)節(jié)點(diǎn)中的結(jié)束節(jié)點(diǎn)邏輯相連;
[0009] 無(wú)線網(wǎng)絡(luò)的節(jié)點(diǎn)的IPv6地址由三個(gè)部分構(gòu)成,第一部分為全局網(wǎng)絡(luò)前綴,唯一標(biāo) 識(shí)一個(gè)子網(wǎng),一個(gè)子網(wǎng)內(nèi)所有無(wú)線節(jié)點(diǎn)的全局網(wǎng)絡(luò)前綴都相同,等于相同子網(wǎng)內(nèi)接入路由 器的全局網(wǎng)絡(luò)前綴;第二部分為i比特的超級(jí)節(jié)點(diǎn)ID,唯一標(biāo)識(shí)一個(gè)超級(jí)節(jié)點(diǎn)及對(duì)應(yīng)路段, 位于一個(gè)路段中的所有無(wú)線節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)ID都相同;第三部分為j比特的節(jié)點(diǎn)ID,唯一 標(biāo)識(shí)一個(gè)無(wú)線節(jié)點(diǎn);
[0010] 接入路由器的IPv6地址預(yù)先設(shè)置,接入路由器的超級(jí)節(jié)點(diǎn)ID為0 ;超級(jí)節(jié)點(diǎn)ID和 節(jié)點(diǎn)ID構(gòu)成鏈路地址;鏈路地址的長(zhǎng)度為16比特或者64比特,即i和j的和等于16或者 64 ;
[0011] 超級(jí)節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度1,1 < i,有效長(zhǎng)度1與該超級(jí)節(jié)點(diǎn)所在超級(jí) 節(jié)點(diǎn)樹所處的深度d成正比,如公式(1)所示,其中,f-1是一個(gè)超級(jí)節(jié)點(diǎn)擁有的最大子節(jié) 點(diǎn)數(shù)量,一般情況下,C等于2;
[0012] 1 = dXc 公式(1);
[0013] 無(wú)線節(jié)點(diǎn)啟動(dòng)后,用自己的硬件ID作為臨時(shí)鏈路地址,例如MAC地址,并定期廣播 信標(biāo)幀;無(wú)線節(jié)點(diǎn)通過接收鄰居無(wú)線節(jié)點(diǎn)的信標(biāo)幀來(lái)判斷鄰居節(jié)點(diǎn)的數(shù)量;如果一個(gè)無(wú)線 節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)量為1,則將自己標(biāo)記上結(jié)束節(jié)點(diǎn);如果一個(gè)無(wú)線節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)量 等于2,則將自己標(biāo)記為普通節(jié)點(diǎn);如果一個(gè)無(wú)線節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)量大于2,則將自己標(biāo) 記為開始節(jié)點(diǎn);
[0014] 無(wú)線網(wǎng)絡(luò)初始狀態(tài)下,一個(gè)超級(jí)節(jié)點(diǎn)中最多能包含2個(gè)開始節(jié)點(diǎn),一個(gè)接入路由 器或者一個(gè)結(jié)束節(jié)點(diǎn)廣播的信標(biāo)幀負(fù)載為全局網(wǎng)絡(luò)前綴以及可分配的超級(jí)節(jié)點(diǎn)ID的數(shù) 量;開始節(jié)點(diǎn)和普通節(jié)點(diǎn)廣播的信標(biāo)幀的負(fù)載為全局網(wǎng)絡(luò)前綴。
[0015] 本發(fā)明提出了基于超級(jí)節(jié)點(diǎn)的體系結(jié)構(gòu),超級(jí)節(jié)點(diǎn)的體系結(jié)構(gòu)主要優(yōu)點(diǎn)在于能夠 提高地址配置成功率,從而縮短通信延遲。
[0016] 本發(fā)明所述方法中,接入路由器和結(jié)束節(jié)點(diǎn)保存一個(gè)超級(jí)節(jié)點(diǎn)ID分配表,每個(gè)分 配表包含f-1個(gè)表項(xiàng),每個(gè)表項(xiàng)由三個(gè)域構(gòu)成:超級(jí)節(jié)點(diǎn)ID域,分配狀態(tài)域,生命周期;分 配狀態(tài)域有三個(gè)值:未分配,半分配,已分配;未分配表示超節(jié)點(diǎn)ID可供分配,半分配表示 超級(jí)節(jié)點(diǎn)ID已經(jīng)分配但是未收到確認(rèn)信息,如果在規(guī)定時(shí)間中沒有收到確認(rèn)信息,那么該 超級(jí)節(jié)點(diǎn)ID則轉(zhuǎn)變?yōu)槲捶峙錉顟B(tài),已分配狀態(tài)則表示超級(jí)節(jié)點(diǎn)ID已經(jīng)分配,不能再分配給 其他節(jié)點(diǎn);
[0017] 如果一個(gè)超級(jí)節(jié)點(diǎn)中的開始節(jié)點(diǎn)檢測(cè)到接入路由器為其鄰居節(jié)點(diǎn),那么所述開始 節(jié)點(diǎn)從鄰居路由器獲取超級(jí)節(jié)點(diǎn)ID,否則選擇鏈路地址有效長(zhǎng)度最?。瓷疃茸钚。┣铱?分配超級(jí)節(jié)點(diǎn)ID數(shù)量較大的結(jié)束節(jié)點(diǎn)獲取超級(jí)節(jié)點(diǎn)ID ;如果開始節(jié)點(diǎn)檢測(cè)到兩個(gè)以上結(jié) 束節(jié)點(diǎn)的鏈路地址有效長(zhǎng)度最小且可分配超級(jí)節(jié)點(diǎn)ID數(shù)量都相同,那么所述開始節(jié)點(diǎn)選 擇從信號(hào)最強(qiáng)的結(jié)束節(jié)點(diǎn)獲取超級(jí)節(jié)點(diǎn)ID ;
[0018] 開始節(jié)點(diǎn)SN1從結(jié)束節(jié)點(diǎn)EN1獲取超級(jí)節(jié)點(diǎn)ID的過程包括以下步驟:
[0019] 步驟101:開始;
[0020] 步驟102 :開始節(jié)點(diǎn)SN1向結(jié)束節(jié)點(diǎn)EN1發(fā)送超級(jí)節(jié)點(diǎn)請(qǐng)求命令幀,超級(jí)節(jié)點(diǎn)請(qǐng)求 命令幀的源鏈路地址為臨時(shí)鏈路地址;
[0021] 步驟103 :結(jié)束節(jié)點(diǎn)EN1從超級(jí)節(jié)點(diǎn)ID分配表中選取最小未分配的值X,將該值X 標(biāo)記為半分配狀態(tài),然后構(gòu)建一個(gè)有效長(zhǎng)度為c+Ll的超級(jí)節(jié)點(diǎn)ID,其中L1為結(jié)束節(jié)點(diǎn)EN1 的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度,c的比特值設(shè)置為X,L1比特值設(shè)置為結(jié)束節(jié)點(diǎn)EN1的超級(jí)節(jié) 點(diǎn)ID,結(jié)束節(jié)點(diǎn)EN1向開始節(jié)點(diǎn)SN1返回一個(gè)超級(jí)節(jié)點(diǎn)響應(yīng)命令幀,超級(jí)節(jié)點(diǎn)響應(yīng)命令幀的 負(fù)載為構(gòu)建的超級(jí)節(jié)點(diǎn)ID ;
[0022] 步驟104 :開始節(jié)點(diǎn)SN1收到超級(jí)節(jié)點(diǎn)響應(yīng)命令幀后,在超級(jí)節(jié)點(diǎn)內(nèi)廣播節(jié)點(diǎn)ID 確認(rèn)幀,節(jié)點(diǎn)ID確認(rèn)命令幀的負(fù)載為全局網(wǎng)絡(luò)前綴和結(jié)束節(jié)點(diǎn)EN1分配開始節(jié)點(diǎn)SN1的超 級(jí)節(jié)點(diǎn)ID ;
[0023] 步驟105 :如果收到節(jié)點(diǎn)ID確認(rèn)命令幀的節(jié)點(diǎn)為普通節(jié)點(diǎn),則進(jìn)行步驟106,否則 進(jìn)行步驟111 ;
[0024] 步驟106 :如果普通節(jié)點(diǎn)第一次收到節(jié)點(diǎn)ID確認(rèn)命令幀,則進(jìn)行步驟107,否則進(jìn) 行步驟108 ;
[0025] 步驟107 :第一次收到節(jié)點(diǎn)ID確認(rèn)命令幀的普通節(jié)點(diǎn)轉(zhuǎn)發(fā)該節(jié)點(diǎn)ID確認(rèn)命令幀 并且記錄節(jié)點(diǎn)ID確認(rèn)命令幀中的全局網(wǎng)絡(luò)前綴、超級(jí)節(jié)點(diǎn)ID以及自己到達(dá)該節(jié)點(diǎn)ID確 認(rèn)命令幀的源節(jié)點(diǎn)的跳數(shù),執(zhí)行步驟105 ;源節(jié)點(diǎn)即為節(jié)點(diǎn)ID確認(rèn)命令幀源地址指定的節(jié) 占 .
[0026] 步驟108 :如果滿足條件一,則進(jìn)行步驟109,否則進(jìn)行步驟110 ;
[0027] 條件一的三個(gè)輸入?yún)?shù)分別為:普通節(jié)點(diǎn)第二次收到的節(jié)點(diǎn)ID確認(rèn)命令幀,第二 次收到節(jié)點(diǎn)ID確認(rèn)命令幀的普通節(jié)點(diǎn),普通節(jié)點(diǎn)第一次收到的節(jié)點(diǎn)ID確認(rèn)命令幀;
[0028] 條件一:普通節(jié)點(diǎn)第二次收到的節(jié)點(diǎn)ID確認(rèn)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度 小于該普通節(jié)點(diǎn)記錄的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度,或者普通節(jié)點(diǎn)第二次收到的節(jié)點(diǎn)ID確認(rèn) 命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度等于普通節(jié)點(diǎn)記錄的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度且第二次 收到的節(jié)點(diǎn)ID確認(rèn)命令幀的源鏈路地址小于該普通節(jié)點(diǎn)第一次收到的節(jié)點(diǎn)ID確認(rèn)命令幀 的源鏈路地址;
[0029] 步驟109 :第二次收到節(jié)點(diǎn)ID確認(rèn)命令幀的普通節(jié)點(diǎn)丟棄原來(lái)記錄的數(shù)據(jù),并記 錄第二次收到的節(jié)點(diǎn)ID確認(rèn)命令幀中的全局網(wǎng)絡(luò)前綴,超級(jí)節(jié)點(diǎn)ID以及到達(dá)第二次收到 的節(jié)點(diǎn)ID確認(rèn)命令幀源節(jié)點(diǎn)的跳數(shù),同時(shí)轉(zhuǎn)發(fā)第二次收到的節(jié)點(diǎn)ID確認(rèn)命令幀,執(zhí)行步驟 105 ;
[0030] 步驟110 :第二次收到節(jié)點(diǎn)ID確認(rèn)命令幀的普通節(jié)點(diǎn)丟棄第二次收到的節(jié)點(diǎn)ID 確認(rèn)命令幀,進(jìn)彳丁步驟114 ;
[0031] 步驟111 :如果收到節(jié)點(diǎn)ID確認(rèn)命令幀的開始節(jié)點(diǎn)發(fā)送了超級(jí)節(jié)點(diǎn)請(qǐng)求命令幀并 收到了超級(jí)節(jié)點(diǎn)響應(yīng)命令幀且滿足條件二,則進(jìn)行步驟112,否則進(jìn)行步驟113 ;
[0032] 條件二的三個(gè)輸入?yún)?shù)分別為:收到節(jié)點(diǎn)ID確認(rèn)命令幀的開始節(jié)點(diǎn)收到的超級(jí) 節(jié)點(diǎn)響應(yīng)命令幀,收到節(jié)點(diǎn)ID確認(rèn)命令幀的開始節(jié)點(diǎn),開始節(jié)點(diǎn)收到的節(jié)點(diǎn)ID確認(rèn)命令 幀;
[0033] 條件二:超級(jí)節(jié)點(diǎn)響應(yīng)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度小于開始節(jié)點(diǎn)收到的 節(jié)點(diǎn)ID確認(rèn)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度,或者超級(jí)節(jié)點(diǎn)響應(yīng)命令幀中的超級(jí)節(jié)點(diǎn) ID的有效長(zhǎng)度等于開始節(jié)點(diǎn)收到的節(jié)點(diǎn)ID確認(rèn)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度且開始 節(jié)點(diǎn)的臨時(shí)鏈路地址小于開始節(jié)點(diǎn)收到的節(jié)點(diǎn)ID確認(rèn)命令幀的源地址;
[0034] 步驟112 :收到節(jié)點(diǎn)ID確認(rèn)命令幀的開始節(jié)點(diǎn)在超級(jí)節(jié)點(diǎn)內(nèi)部廣播一個(gè)新的節(jié)點(diǎn) ID確認(rèn)命令幀,該新的節(jié)點(diǎn)ID確認(rèn)命令幀負(fù)載為全局網(wǎng)絡(luò)前綴和獲取的超級(jí)節(jié)點(diǎn)ID,進(jìn)行 步驟105 ;
[0035] 步驟113 :收到節(jié)點(diǎn)ID確認(rèn)命令幀的開始節(jié)點(diǎn)將自己標(biāo)記為結(jié)束節(jié)點(diǎn),記錄收到 的節(jié)點(diǎn)ID確認(rèn)命令幀中的全局網(wǎng)絡(luò)前綴和超級(jí)節(jié)點(diǎn)ID,以及自己到達(dá)節(jié)點(diǎn)ID確認(rèn)命令幀 的源節(jié)點(diǎn)的跳數(shù);
[0036] 步驟114 :如果開始節(jié)點(diǎn)SN1沒收到節(jié)點(diǎn)ID確認(rèn)命令幀或者滿足條件三,則進(jìn)行 步驟115,否則進(jìn)行步驟117;
[0037] 條件三的三個(gè)輸入?yún)?shù)分別為:開始節(jié)點(diǎn)SN1收到的超級(jí)節(jié)點(diǎn)響應(yīng)幀,開始節(jié)點(diǎn) SN1,開始節(jié)點(diǎn)SN1收到的節(jié)點(diǎn)ID確認(rèn)命令幀;
[0038] 條件三:開始節(jié)點(diǎn)SN1收到的超級(jí)節(jié)點(diǎn)響應(yīng)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度小 于開始節(jié)點(diǎn)SN1收到的節(jié)點(diǎn)ID確認(rèn)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度,或者開始節(jié)點(diǎn)SN1 收到的超級(jí)節(jié)點(diǎn)響應(yīng)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度等于開始節(jié)點(diǎn)SN1收到的節(jié)點(diǎn)ID 確認(rèn)命令幀中的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度且開始節(jié)點(diǎn)SN1的臨時(shí)鏈路地址小于開始節(jié)點(diǎn)SN1 收到的節(jié)點(diǎn)ID確認(rèn)命令幀的源地址;
[0039] 步驟115 :開始節(jié)點(diǎn)SN1向結(jié)束節(jié)點(diǎn)EN1發(fā)送一條超級(jí)節(jié)點(diǎn)確認(rèn)命令幀,該超級(jí)節(jié) 點(diǎn)確認(rèn)命令幀的負(fù)載為分配的超級(jí)節(jié)點(diǎn)ID ;
[0040] 步驟116 :結(jié)束節(jié)點(diǎn)EN1收到超級(jí)節(jié)點(diǎn)確認(rèn)命令幀后,將分配給開始節(jié)點(diǎn)SN1的值 X的狀態(tài)修改為已分配,執(zhí)行步驟118 ;
[0041] 步驟117 :開始節(jié)點(diǎn)SN1將自己標(biāo)記為結(jié)束節(jié)點(diǎn)并且記錄下自己收到的節(jié)點(diǎn)ID確 認(rèn)命令幀中的全局網(wǎng)絡(luò)前綴,超級(jí)節(jié)點(diǎn)ID以及自己到達(dá)節(jié)點(diǎn)ID確認(rèn)命令幀的源節(jié)點(diǎn)的跳 數(shù);如果結(jié)束節(jié)點(diǎn)EN1在規(guī)定時(shí)間內(nèi)沒有收到超級(jí)節(jié)點(diǎn)確認(rèn)命令幀,將分配給開始節(jié)點(diǎn)SN1 的值X的狀態(tài)修改為未分配;
[0042] 步驟118:結(jié)束;
[0043] 通過上述過程,無(wú)線網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)可以獲取地址,并進(jìn)行正確通信從而提高 網(wǎng)絡(luò)服務(wù)。由于本發(fā)明以超級(jí)節(jié)點(diǎn)為單位進(jìn)行地址配置,因此大大縮短了地址配置延遲和 通信延遲。
[0044] 開始節(jié)點(diǎn)SN1從接入路由器AR1獲取超級(jí)節(jié)點(diǎn)ID的過程包括以下步驟:
[0045] 步驟401:開始;
[0046] 步驟402 :開始節(jié)點(diǎn)SN1向接入路由器AR1發(fā)送超級(jí)節(jié)點(diǎn)請(qǐng)求命令幀,超級(jí)節(jié)點(diǎn)請(qǐng) 求命令幀的源鏈路地址為臨時(shí)鏈路地址;
[0047] 步驟403 :接入路由器AR1從超級(jí)節(jié)點(diǎn)ID分配表中選取最小未分配的值X,將該值 X標(biāo)記為半分配狀態(tài),然后構(gòu)建一個(gè)有效長(zhǎng)度為c+L3的超級(jí)節(jié)點(diǎn)ID,其中L3為接入路由器 AR1的超級(jí)節(jié)點(diǎn)ID的有效長(zhǎng)度,c的比特值設(shè)置為x,L3比特值設(shè)置為接入路由器AR1的超 級(jí)節(jié)點(diǎn)ID,接入路由器AR1向開始節(jié)點(diǎn)SN1返回一個(gè)超級(jí)節(jié)點(diǎn)響應(yīng)命令幀,超級(jí)節(jié)點(diǎn)響應(yīng)命 令幀的負(fù)載為構(gòu)建的超級(jí)節(jié)點(diǎn)ID ;
[0048] 步驟404 :開始節(jié)點(diǎn)SN1收到超級(jí)節(jié)點(diǎn)響應(yīng)命令幀后,在超級(jí)節(jié)點(diǎn)內(nèi)廣播節(jié)點(diǎn)ID 確認(rèn)幀,節(jié)點(diǎn)ID確認(rèn)命令幀的負(fù)載為全局網(wǎng)絡(luò)前綴和接入路由器AR1分配給開始節(jié)點(diǎn)SN1 的超級(jí)節(jié)點(diǎn)ID ;
[0049