專利名稱:下一代全ip無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)的實(shí)現(xiàn)系統(tǒng),尤其涉及的是一種下一代全I(xiàn)P無線傳感器網(wǎng)
絡(luò)的實(shí)現(xiàn)方法。
背景技術(shù):
隨著下一代網(wǎng)絡(luò)(IPv6網(wǎng)絡(luò))的不斷成熟和發(fā)展,無線傳感器網(wǎng)絡(luò)與下一代網(wǎng)絡(luò)實(shí)現(xiàn)全I(xiàn)P通信互聯(lián)已成為未來發(fā)展的必然趨勢(shì)。全I(xiàn)P互聯(lián)方式具有以下優(yōu)勢(shì)
(1) IPv6是下一代互聯(lián)網(wǎng)的協(xié)議標(biāo)準(zhǔn),無線傳感器網(wǎng)絡(luò)采用IPv6協(xié)議實(shí)現(xiàn)與下一代網(wǎng)絡(luò)的全I(xiàn)P通信有助于推動(dòng)無線傳感器網(wǎng)絡(luò)通信協(xié)議的標(biāo)準(zhǔn)化; (2) IPv6的許多技術(shù)特點(diǎn)(如地址自動(dòng)配置等)對(duì)大規(guī)模無線傳感器網(wǎng)絡(luò)的自組織管理提供了良好支持; (3) IPv6網(wǎng)絡(luò)的組網(wǎng)方式可以供無線傳感器網(wǎng)絡(luò)充分借鑒,使其成為無線傳感器網(wǎng)絡(luò)的一種合理拓展。 目前實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)與下一代互聯(lián)網(wǎng)的全I(xiàn)P通信互聯(lián)關(guān)鍵技術(shù)還不成熟,主要表現(xiàn)在以下方面 (1)地址自動(dòng)配置地址自動(dòng)配置是IPv6的一個(gè)重要技術(shù)特色,可以在無人干預(yù)的情況下為每個(gè)接口配置相應(yīng)的IPv6地址。這一點(diǎn)與無線傳感器網(wǎng)絡(luò)自組織、自配置的設(shè)計(jì)目標(biāo)非常吻合。但是,現(xiàn)有的IPv6地址自動(dòng)配置方式在無線傳感器網(wǎng)絡(luò)中還存在一些問題,例如有狀態(tài)地址配置會(huì)帶來大量的控制消息開銷、根據(jù)MAC地址生成IPv6地址的無狀態(tài)地址配置對(duì)傳感器節(jié)點(diǎn)間的路由尋址未帶來任何方便,因此針對(duì)下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)需要建立一種新的IPv6地址自動(dòng)配置機(jī)制; (2)路由方案無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)不同,在IPv6網(wǎng)絡(luò)中,路由器與普通節(jié)點(diǎn)之間有數(shù)據(jù)鏈路層連接,可以通過一跳到達(dá),而無線傳感器節(jié)點(diǎn)具有路由器與普通節(jié)點(diǎn)雙重身份,節(jié)點(diǎn)之間沒有數(shù)據(jù)鏈路層連接,因此在無線傳感器網(wǎng)絡(luò)中需要建立一種新的路由方式實(shí)現(xiàn)IPv6節(jié)點(diǎn)與傳感器節(jié)點(diǎn)之間的通信。 (3) IPv6協(xié)議棧優(yōu)化方案由于無線傳感器網(wǎng)絡(luò)資源受限,而IPv6網(wǎng)絡(luò)最初并沒有考慮嵌入式應(yīng)用,因此要在儲(chǔ)存器和處理器等資源極其有限的傳感器節(jié)點(diǎn)上實(shí)現(xiàn)IPv6協(xié)議,必須對(duì)其進(jìn)行合理精簡。
發(fā)明內(nèi)容
發(fā)明目的本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法。 技術(shù)方案本發(fā)明公開了一種下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,所述下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)為與IPv6網(wǎng)絡(luò)實(shí)現(xiàn)全I(xiàn)P通信互聯(lián)的無線傳感器網(wǎng)絡(luò),是IPv6網(wǎng)絡(luò)的末端網(wǎng)絡(luò);所述無線傳感器網(wǎng)絡(luò)中的每個(gè)傳感器節(jié)點(diǎn)擁有全球唯一的IPv6地址,IPv6節(jié)點(diǎn)通過無線傳感器節(jié)點(diǎn)的IPv6地址實(shí)現(xiàn)與傳感器節(jié)點(diǎn)的全I(xiàn)P通信;
所述系統(tǒng)設(shè)置三類節(jié)點(diǎn)IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn);所述簇首節(jié)點(diǎn)與 簇內(nèi)節(jié)點(diǎn)根據(jù)最大連通度算法自動(dòng)生成;所述IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)為樹 狀結(jié)構(gòu),IPv6接入節(jié)點(diǎn)為樹狀結(jié)構(gòu)的根節(jié)點(diǎn),簇首節(jié)點(diǎn)為樹狀結(jié)構(gòu)的中間節(jié)點(diǎn)及葉子節(jié)點(diǎn), IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)為固定節(jié)點(diǎn);所述無線傳感器網(wǎng)絡(luò)的路由系統(tǒng)通過IPv6接入節(jié) 點(diǎn)與簇首節(jié)點(diǎn)構(gòu)建的樹狀結(jié)構(gòu)來實(shí)現(xiàn);所述簇內(nèi)節(jié)點(diǎn)用于無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)采集與 數(shù)據(jù)處理,為固定節(jié)點(diǎn);簇內(nèi)節(jié)點(diǎn)直接將數(shù)據(jù)發(fā)送至簇首節(jié)點(diǎn),簇首節(jié)點(diǎn)通過所在樹狀結(jié)構(gòu) 實(shí)現(xiàn)對(duì)數(shù)據(jù)的路由;IPv6接入節(jié)點(diǎn)用于連接無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò);所述無線傳感器 網(wǎng)絡(luò)通過n個(gè)IPv6接入節(jié)點(diǎn)與IPv6網(wǎng)絡(luò)連接,且n > 1,當(dāng)n > 2時(shí),IPv6接入節(jié)點(diǎn)之間 通過IPv6網(wǎng)絡(luò)進(jìn)行多播通信;所述無線傳感器網(wǎng)絡(luò)被n個(gè)IPv6接入節(jié)點(diǎn)劃分為n個(gè)樹狀 結(jié)構(gòu),每個(gè)樹狀結(jié)構(gòu)中有且只有一個(gè)IPv6接入節(jié)點(diǎn),且所述IPv6接入節(jié)點(diǎn)為樹狀結(jié)構(gòu)的根 節(jié)點(diǎn),每個(gè)IPv6接入節(jié)點(diǎn)具有一個(gè)ID,該ID唯一地標(biāo)識(shí)IPv6接入節(jié)點(diǎn)以及以此IPv6接入 節(jié)點(diǎn)為根節(jié)點(diǎn)的樹狀結(jié)構(gòu); 所述無線傳感器網(wǎng)絡(luò)由多個(gè)簇組成,每個(gè)簇包括一個(gè)簇首節(jié)點(diǎn)和多個(gè)簇內(nèi)節(jié)點(diǎn),
簇內(nèi)節(jié)點(diǎn)在簇首節(jié)點(diǎn)的一跳范圍內(nèi),拓?fù)浣Y(jié)構(gòu)為星形。 所述簇首節(jié)點(diǎn)和簇內(nèi)節(jié)點(diǎn)的生成,包括以下步驟 步驟301 :處于孤立狀態(tài)的所有傳感器節(jié)點(diǎn)都設(shè)有一個(gè)具有相同值的初始衰減時(shí) 間; 步驟302 :處于孤立狀態(tài)的一個(gè)傳感器節(jié)點(diǎn)X定期廣播一個(gè)包含自己信息的信息 幀; 步驟303 :幀覆蓋范圍內(nèi)的傳感器節(jié)點(diǎn)Y收到幀后,判斷自己是否被標(biāo)記為簇內(nèi)節(jié) 點(diǎn),如果是,進(jìn)行步驟311,如果不是,進(jìn)行步驟304 ; 步驟304 :傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X加入到自己的鄰居列表中; 步驟305 :上述傳感器節(jié)點(diǎn)Y判斷自己是否已經(jīng)標(biāo)記為簇首節(jié)點(diǎn),如果是,進(jìn)行步
驟309,否則進(jìn)行步驟306 ; 步驟306 :上述傳感器節(jié)點(diǎn)Y將自身的衰減時(shí)間衰減一個(gè)預(yù)定值T ; 步驟307 :上述傳感器節(jié)點(diǎn)Y判斷衰減時(shí)間是否到期,即衰減為O,如果是,進(jìn)行步
驟308,否則進(jìn)行步驟311 ; 步驟308 :上述傳感器節(jié)點(diǎn)Y將自己標(biāo)識(shí)為簇首節(jié)點(diǎn),同時(shí)向鄰居列表中的傳感器 節(jié)點(diǎn)發(fā)送請(qǐng)求加入簇的命令幀,進(jìn)行步驟310 ; 步驟309 :上述傳感器節(jié)點(diǎn)Y向上述傳感器節(jié)點(diǎn)X發(fā)送請(qǐng)求加入簇的命令幀;
步驟310 :上述傳感器節(jié)點(diǎn)X收到命令幀后,判斷自己是否處于孤立狀態(tài)且衰減時(shí) 間沒有到期,如果是,進(jìn)行步驟312,否則進(jìn)行步驟311 ;
步驟311 :放棄處理此幀,進(jìn)行步驟316 ; 步驟312 :上述傳感器節(jié)點(diǎn)X將自己標(biāo)識(shí)為簇內(nèi)節(jié)點(diǎn),并返回一個(gè)包含所加入簇簇
首節(jié)點(diǎn)Y信息的確認(rèn)命令幀; 步驟313 :上述傳感器節(jié)點(diǎn)Y判斷收到的確認(rèn)幀中簇首節(jié)點(diǎn)信息是否為自己的信 息,如果是,進(jìn)行步驟314,否則進(jìn)行步驟315 ; 步驟314 :上述傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X加入到簇內(nèi)節(jié)點(diǎn)列表中;
步驟315 :上述傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X從鄰居列表中刪除;
步驟316:過程結(jié)束; 其中傳感器節(jié)點(diǎn)Y為除傳感器節(jié)點(diǎn)X以外且在傳感器節(jié)點(diǎn)X—跳范圍內(nèi)的任意一 個(gè)傳感器節(jié)點(diǎn),且以上步驟中所述的傳感器節(jié)點(diǎn)Y為同一個(gè)傳感器節(jié)點(diǎn),傳感器節(jié)點(diǎn)X為同 一個(gè)傳感器節(jié)點(diǎn)。 本發(fā)明所述方法中,所述IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn)的IPv6地址由兩個(gè) 部分組成,第一部分是全局路由前綴,一個(gè)傳感器網(wǎng)絡(luò)中所有傳感器節(jié)點(diǎn)的IPv6地址的全 局路由前綴都相同;第二部分為傳感器節(jié)點(diǎn)ID,傳感器節(jié)點(diǎn)ID分為樹ID、簇ID以及簇內(nèi)ID 三個(gè)組成部分,其中樹ID唯一地標(biāo)識(shí)一個(gè)以IPv6接入節(jié)點(diǎn)為根節(jié)點(diǎn)的樹狀結(jié)構(gòu), 一個(gè)樹狀 結(jié)構(gòu)中所有簇首節(jié)點(diǎn)和簇內(nèi)節(jié)點(diǎn)IPv6地址的樹ID都相同;簇ID唯一地標(biāo)識(shí)一個(gè)簇,一個(gè) 簇中的所有簇內(nèi)節(jié)點(diǎn)的簇ID都相同厲內(nèi)ID唯一地標(biāo)識(shí)一個(gè)簇內(nèi)節(jié)點(diǎn);所述IPv6接入節(jié) 點(diǎn)IPv6地址的簇ID及簇內(nèi)ID為O,其中樹狀結(jié)構(gòu)的根節(jié)點(diǎn)的子節(jié)點(diǎn)所在的層次為1。
本發(fā)明所述方法中,所述簇首節(jié)點(diǎn)通過加入距離本簇首節(jié)點(diǎn)最近的IPv6接入節(jié) 點(diǎn)所在的樹狀結(jié)構(gòu)實(shí)現(xiàn)IPv6地址的傳感器節(jié)點(diǎn)ID自動(dòng)配置,距離的度量單位為跳數(shù);在獲 取傳感器節(jié)點(diǎn)ID之后,簇首節(jié)點(diǎn)采用有狀態(tài)地址分配方式為簇內(nèi)節(jié)點(diǎn)分配傳感器節(jié)點(diǎn)ID。
本發(fā)明所述方法中,所述簇首節(jié)點(diǎn)即將失效時(shí),它從本簇內(nèi)選擇性能參數(shù)最好的 簇內(nèi)節(jié)點(diǎn)成為新的簇首節(jié)點(diǎn),新的簇首節(jié)點(diǎn)使用原來簇首節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,所述性能 參數(shù)一般包括剩余能量、處理能力、存儲(chǔ)資源、帶寬等。 本發(fā)明所述方法中,所述IPv6接入節(jié)點(diǎn)的IPv6地址的樹ID的有效比特位為 i (64 > i > 1);所述簇首節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層次與它IPv6地址的簇首ID的有效比特位 成正比關(guān)系,即簇首節(jié)點(diǎn)IPv6地址的簇首ID的有效比特位等于它所在樹狀結(jié)構(gòu)的層次數(shù) 乘以i(64 > i > 1)比特,其中,i值可根據(jù)傳感器節(jié)點(diǎn)分布密度與傳感器網(wǎng)絡(luò)規(guī)模進(jìn)行調(diào) 整,其中樹狀結(jié)構(gòu)的根節(jié)點(diǎn)所在的層次為0。 本發(fā)明所述方法中,所述下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的路由在鏈路層實(shí)現(xiàn),傳感 器網(wǎng)絡(luò)的鏈路地址為它的傳感器節(jié)點(diǎn)ID。 本發(fā)明所述方法中,所述IPv6接入節(jié)點(diǎn)對(duì)IPv6數(shù)據(jù)包按照數(shù)據(jù)流方式進(jìn)行分片
處理,即只有第一分片包含IPv6頭部結(jié)構(gòu),其他分片只包含IPv6負(fù)載;一個(gè)數(shù)據(jù)分片用適
配層頭部、Mesh delivery頭部及幀頭進(jìn)行封裝為一個(gè)數(shù)據(jù)幀;數(shù)據(jù)幀的幀頭中源地址為
IPv6接入節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,目的地址為目的簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID。 根本發(fā)明所述方法中,數(shù)據(jù)幀通過IPv6接入節(jié)點(diǎn)所在的樹狀結(jié)構(gòu)自動(dòng)完成路由,
到達(dá)目的簇內(nèi)節(jié)點(diǎn),步驟為 步驟901 : IPv6節(jié)點(diǎn)N發(fā)送一條獲取簇內(nèi)節(jié)點(diǎn)X采集數(shù)據(jù)的服務(wù)請(qǐng)求數(shù)據(jù)包,此數(shù) 據(jù)包的目的地址為簇內(nèi)節(jié)點(diǎn)X的IPv6地址; 步驟902 :此數(shù)據(jù)包在IPv6網(wǎng)絡(luò)中路由,最后到達(dá)與簇內(nèi)節(jié)點(diǎn)X所在無線傳感器 網(wǎng)絡(luò)連接的IPv6接入節(jié)點(diǎn),IPv6接入節(jié)點(diǎn)通過檢查簇內(nèi)節(jié)點(diǎn)X的IPv6地址的樹ID判斷 簇內(nèi)節(jié)點(diǎn)X是否在本樹狀結(jié)構(gòu)內(nèi),如果不在,則進(jìn)行多播,最后此請(qǐng)求數(shù)據(jù)包到達(dá)簇內(nèi)節(jié)點(diǎn) X所在簇的簇首節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的根節(jié)點(diǎn)或IPv6接入節(jié)點(diǎn)T ; 步驟903 :根節(jié)點(diǎn)T提取簇內(nèi)節(jié)點(diǎn)X的鏈路層地址,即簇內(nèi)節(jié)點(diǎn)X的IPv6地址的 傳感器節(jié)點(diǎn)ID,對(duì)數(shù)據(jù)包進(jìn)行分片處理,用適配層頭部、Mesh delivery頭部及鏈路幀頭部 將數(shù)據(jù)分片封裝為數(shù)據(jù)幀,其中,Mesh delivery頭部的源地址為上述根節(jié)點(diǎn)或IPv6接入節(jié)點(diǎn)根節(jié)點(diǎn)T的傳感器節(jié)點(diǎn)ID,目的地址為簇內(nèi)節(jié)點(diǎn)X的傳感器節(jié)點(diǎn)ID,鏈路幀頭部目的 地址為簇內(nèi)節(jié)點(diǎn)X所在簇的簇首節(jié)點(diǎn)H所在分枝的下一跳子節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù) 幀發(fā)送出去; 步驟904 :簇首節(jié)點(diǎn)收到數(shù)據(jù)幀后,根據(jù)數(shù)據(jù)幀Mesh delivery頭部的目的地址判 斷自己是否是目的簇內(nèi)節(jié)點(diǎn)X所在簇的簇首節(jié)點(diǎn)H,如果不是,進(jìn)行步驟905,否則進(jìn)行步驟
906 ; 步驟905 :簇首節(jié)點(diǎn)將數(shù)據(jù)幀的目的地址更新為簇首節(jié)點(diǎn)H所在分枝下一跳子節(jié) 點(diǎn)的傳感器節(jié)點(diǎn)ID,簇首節(jié)點(diǎn)繼續(xù)發(fā)送數(shù)據(jù)幀,進(jìn)行步驟904 ; 步驟906 :簇首節(jié)點(diǎn)H在簇內(nèi)廣播此數(shù)據(jù)幀,最終,簇內(nèi)節(jié)點(diǎn)X收到此數(shù)據(jù)幀;
步驟907 :簇內(nèi)節(jié)點(diǎn)X收到所有的數(shù)據(jù)幀后,將分片進(jìn)行重組,處理服務(wù)請(qǐng)求數(shù)據(jù) 包,將服務(wù)響應(yīng)數(shù)據(jù)封裝成IPv6響應(yīng)數(shù)據(jù)包,對(duì)其進(jìn)行分片處理,用適配層頭部及鏈路頭 部將數(shù)據(jù)分片封裝成數(shù)據(jù)幀,其中,鏈路幀頭部的源地址為簇內(nèi)節(jié)點(diǎn)X的傳感器節(jié)點(diǎn)ID,目 的地址為簇首節(jié)點(diǎn)H的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出去; 步驟908 :簇首節(jié)點(diǎn)收到數(shù)據(jù)幀后,檢測(cè)自己的傳感器節(jié)點(diǎn)ID判斷自己是否為 IPv6接入節(jié)點(diǎn)T,如果是,進(jìn)行步驟910,否則進(jìn)行步驟909 ; 步驟909 :簇首節(jié)點(diǎn)將鏈路幀頭部的源地址更新為自己的傳感器節(jié)點(diǎn)ID,目的地 址更新為其父節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出去,進(jìn)行步驟908 ;
步驟910 :IPv6接入節(jié)點(diǎn)T收到所有數(shù)據(jù)幀后,將分片進(jìn)行重組成服務(wù)響應(yīng)數(shù)據(jù) 包,將數(shù)據(jù)包發(fā)送到IPv6網(wǎng)絡(luò)上,數(shù)據(jù)包按照IPv6路由方式最終到達(dá)所述IPv6網(wǎng)絡(luò)內(nèi)的 節(jié)點(diǎn)N;; 步驟911 :路由過程結(jié)束。 本發(fā)明中,所述簇首節(jié)點(diǎn)為簇內(nèi)節(jié)點(diǎn)分配傳感器節(jié)點(diǎn)ID的方式為有狀態(tài)地址分
配方式,即記錄地址分配狀態(tài)分配傳感器節(jié)點(diǎn)ID,用于避免地址重復(fù)分配。 有益效果本發(fā)明提供了一種下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,所述下一
代全I(xiàn)P無線傳感器網(wǎng)絡(luò)為與IPv6網(wǎng)絡(luò)實(shí)現(xiàn)全I(xiàn)P通信互聯(lián)的無線傳感器網(wǎng)絡(luò),它作為IPv6
網(wǎng)絡(luò)的末端網(wǎng)絡(luò)存在,無線傳感器網(wǎng)絡(luò)中的每個(gè)傳感器節(jié)點(diǎn)擁有全球唯一的IPv6地址,
IPv6網(wǎng)絡(luò)節(jié)點(diǎn)通過無線傳感器節(jié)點(diǎn)的IPv6地址實(shí)現(xiàn)彼此的全I(xiàn)P通信,獲取傳感器節(jié)點(diǎn)采
集的數(shù)據(jù)信息。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明做更進(jìn)一步的具體說明,本發(fā)明的上述和 /或其他方面的優(yōu)點(diǎn)將會(huì)變得更加清楚。
圖1為本發(fā)明所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖。 圖2為本發(fā)明所述的IPv6接入節(jié)點(diǎn)/簇首節(jié)點(diǎn)/簇內(nèi)節(jié)點(diǎn)的IPv6地址結(jié)構(gòu)示意圖。 圖3為本發(fā)明所述的簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn)的產(chǎn)生流程示意圖。
圖4為本發(fā)明所述的簇首節(jié)點(diǎn)獲取傳感器節(jié)點(diǎn)ID的流程示意圖。
圖5為本發(fā)明所述的簇內(nèi)節(jié)點(diǎn)傳感器節(jié)點(diǎn)ID結(jié)構(gòu)示意圖。
圖6為本發(fā)明所述的簇內(nèi)節(jié)點(diǎn)獲取傳感器節(jié)點(diǎn)ID的流程示意圖。
圖7為本發(fā)明所述的簇首節(jié)點(diǎn)/簇內(nèi)節(jié)點(diǎn)失效處理流程示意圖。
圖8為本發(fā)明所述的數(shù)據(jù)幀封裝格式示意圖。 圖9為本發(fā)明所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)路由流程示意圖。
具體實(shí)施例方式
本發(fā)明提供了下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,在所述系統(tǒng)中,無線傳感 器網(wǎng)絡(luò)作為IPv6網(wǎng)絡(luò)的末端網(wǎng)絡(luò)存在,無線傳感器網(wǎng)絡(luò)中的每個(gè)傳感器節(jié)點(diǎn)擁有全球唯 一的IPv6地址,IPv6網(wǎng)絡(luò)節(jié)點(diǎn)通過無線傳感器節(jié)點(diǎn)的IPv6地址實(shí)現(xiàn)彼此的全I(xiàn)P通信,獲 取傳感器節(jié)點(diǎn)采集的數(shù)據(jù)信息。 圖1所示的是下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖,本發(fā)明中的全I(xiàn)P無 線傳感器網(wǎng)絡(luò)設(shè)置了三類節(jié)點(diǎn)IPv6接入節(jié)點(diǎn)l、簇首節(jié)點(diǎn)2及簇內(nèi)節(jié)點(diǎn)3,其中,一個(gè)IPv6 接入節(jié)點(diǎn)1與多個(gè)簇首節(jié)點(diǎn)2構(gòu)成為樹狀結(jié)構(gòu),IPv6接入節(jié)點(diǎn)1為此樹狀結(jié)構(gòu)的根節(jié)點(diǎn),簇 首節(jié)點(diǎn)為此樹狀結(jié)構(gòu)的中間及葉子節(jié)點(diǎn),此樹狀結(jié)構(gòu)構(gòu)建成無線傳感器網(wǎng)絡(luò)的路由系統(tǒng), 簇內(nèi)節(jié)點(diǎn)3用于數(shù)據(jù)采集與數(shù)據(jù)處理,IPv6接入節(jié)點(diǎn)1、簇首節(jié)點(diǎn)2與簇內(nèi)節(jié)點(diǎn)3均為固定 節(jié)點(diǎn),IPv6接入節(jié)點(diǎn)1連接無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)。無線傳感器網(wǎng)絡(luò)由多個(gè)簇4組 成,每個(gè)簇包括一個(gè)簇首節(jié)點(diǎn)2和多個(gè)簇內(nèi)節(jié)點(diǎn)3,簇內(nèi)節(jié)點(diǎn)3在簇首節(jié)點(diǎn)的一跳范圍內(nèi), 拓?fù)浣Y(jié)構(gòu)為星形。所述無線傳感器網(wǎng)絡(luò)的路由在鏈路層實(shí)現(xiàn),IPv6接入節(jié)點(diǎn)收到來自IPv6 節(jié)點(diǎn)5的數(shù)據(jù)包時(shí),它對(duì)數(shù)據(jù)包進(jìn)行分片處理,把每個(gè)數(shù)據(jù)分片封裝為一個(gè)數(shù)據(jù)幀,并在本 樹狀結(jié)構(gòu)中自動(dòng)實(shí)現(xiàn)路由,將數(shù)據(jù)幀路由到目的簇內(nèi)節(jié)點(diǎn)。 圖2所示的是本發(fā)明所述的IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)、簇內(nèi)節(jié)點(diǎn)的IPv6地址結(jié)構(gòu) 示意圖,IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn)的IPv6地址由兩個(gè)部分組成,第一部分是64 比特的全局路由前綴, 一個(gè)全I(xiàn)P無線傳感器網(wǎng)絡(luò)中所有IPv6接入節(jié)點(diǎn)/簇首節(jié)點(diǎn)/簇內(nèi) 節(jié)點(diǎn)的IPv6地址的全局路由前綴都相同;第二部分為64比特的傳感器節(jié)點(diǎn)ID,它又分為i 比特的樹ID、n比特的簇ID以及(64-i-n)比特的簇內(nèi)ID三個(gè)組成部分,其中樹ID唯一地 標(biāo)識(shí)一個(gè)由IPv6接入節(jié)點(diǎn)與多個(gè)簇首節(jié)點(diǎn)構(gòu)成的樹狀結(jié)構(gòu),一個(gè)樹狀結(jié)構(gòu)中的IPv6接入 節(jié)點(diǎn)及所有簇首節(jié)點(diǎn)(包括簇內(nèi)節(jié)點(diǎn))的樹ID都相同;簇ID唯一地標(biāo)識(shí)一個(gè)簇,一個(gè)簇的 簇首節(jié)點(diǎn)及所有簇內(nèi)節(jié)點(diǎn)的簇ID都相同厲內(nèi)ID唯一地標(biāo)識(shí)一個(gè)簇內(nèi)節(jié)點(diǎn)。IPv6接入節(jié) 點(diǎn)IPv6地址的簇ID與簇內(nèi)ID為0 ;簇首節(jié)點(diǎn)IPv6地址中的簇內(nèi)ID為0。簇首節(jié)點(diǎn)所在樹 狀結(jié)構(gòu)的層次與它IPv6地址的簇首ID的有效比特位長度n成正比關(guān)系,即簇首節(jié)點(diǎn)IPv6 地址的簇首ID的有效比特位長度n等于它所在樹狀結(jié)構(gòu)的層次數(shù)乘以i (64 > i > 1),其 中,i值可根據(jù)傳感器節(jié)點(diǎn)分布密度與傳感器網(wǎng)絡(luò)規(guī)模進(jìn)行調(diào)整,樹狀結(jié)構(gòu)的根節(jié)點(diǎn)所在 的層次為0。例如,當(dāng)i值取4時(shí), 一個(gè)全I(xiàn)P無線傳感器網(wǎng)絡(luò)最多可包含15(0000分配給 簇內(nèi)節(jié)點(diǎn))棵以IPv6接入節(jié)點(diǎn)為根結(jié)點(diǎn)的樹狀結(jié)構(gòu),此樹狀結(jié)構(gòu)的層次最多可達(dá)16,樹狀 結(jié)構(gòu)中的簇首節(jié)點(diǎn)最多可擁有15個(gè)子節(jié)點(diǎn)(0000分配給簇內(nèi)節(jié)點(diǎn)),假設(shè)IPv6接入節(jié)點(diǎn) 的IPv6地址為全局路由前綴1000: :O,那么它的子節(jié)點(diǎn)的IPv6地址為全局路由前綴 1x00: :0,其中x = 1,2......F,以此類推。 圖3所示的是本發(fā)明所述的簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn)的產(chǎn)生流程示意圖,初始狀態(tài) 下,處于孤立狀態(tài)的傳感器節(jié)點(diǎn)(即傳感器節(jié)點(diǎn)既沒有標(biāo)記為簇首節(jié)點(diǎn)也沒有標(biāo)記為簇內(nèi) 節(jié)點(diǎn))都有一個(gè)具有相同值的初始衰減時(shí)間。簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn)的產(chǎn)生流程描述如下
9
步驟301 :處于孤立狀態(tài)的所有傳感器節(jié)點(diǎn)都設(shè)有一個(gè)具有相同值的初始衰減時(shí) 間; 步驟302 :處于孤立狀態(tài)的一個(gè)傳感器節(jié)點(diǎn)X定期廣播一個(gè)包含自己信息的信息 幀; 步驟303 :幀覆蓋范圍內(nèi)的傳感器節(jié)點(diǎn)Y收到幀后,判斷自己是否被標(biāo)記為簇內(nèi)節(jié) 點(diǎn),如果是,進(jìn)行步驟311,如果不是,進(jìn)行步驟304 ; 步驟304 :傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X加入到自己的鄰居列表中; 步驟305 :上述傳感器節(jié)點(diǎn)Y判斷自己是否已經(jīng)標(biāo)記為簇首節(jié)點(diǎn),如果是,進(jìn)行步
驟309,否則進(jìn)行步驟306 ; 步驟306 :上述傳感器節(jié)點(diǎn)Y將自身的衰減時(shí)間衰減一個(gè)預(yù)定值T ; 步驟307 :上述傳感器節(jié)點(diǎn)Y判斷衰減時(shí)間是否到期,即衰減為O,如果是,進(jìn)行步
驟308,否則進(jìn)行步驟311 ; 步驟308 :上述傳感器節(jié)點(diǎn)Y將自己標(biāo)識(shí)為簇首節(jié)點(diǎn),同時(shí)向鄰居列表中的傳感器 節(jié)點(diǎn)發(fā)送請(qǐng)求加入簇的命令幀,進(jìn)行步驟310 ; 步驟309 :上述傳感器節(jié)點(diǎn)Y向上述傳感器節(jié)點(diǎn)X發(fā)送請(qǐng)求加入簇的命令幀;
步驟310 :上述傳感器節(jié)點(diǎn)X收到命令幀后,判斷自己是否處于孤立狀態(tài)且衰減時(shí) 間沒有到期,如果是,進(jìn)行步驟312,否則進(jìn)行步驟311 ;
步驟311 :放棄處理此幀,進(jìn)行步驟316 ; 步驟312 :上述傳感器節(jié)點(diǎn)X將自己標(biāo)識(shí)為簇內(nèi)節(jié)點(diǎn),并返回一個(gè)包含所加入簇簇
首節(jié)點(diǎn)Y信息的確認(rèn)命令幀; 步驟313 :上述傳感器節(jié)點(diǎn)Y判斷收到的確認(rèn)幀中簇首節(jié)點(diǎn)信息是否為自己的信 息,如果是,進(jìn)行步驟314,否則進(jìn)行步驟315 ; 步驟314 :上述傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X加入到簇內(nèi)節(jié)點(diǎn)列表中;
步驟315 :上述傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X從鄰居列表中刪除;
步驟316:過程結(jié)束。 圖4所示的是簇首節(jié)點(diǎn)獲取傳感器節(jié)點(diǎn)ID的流程示意圖,簇首節(jié)點(diǎn)獲取傳感器節(jié) 點(diǎn)ID的流程描述如下 步驟401 :簇首節(jié)點(diǎn)H發(fā)送請(qǐng)求傳感器節(jié)點(diǎn)ID的命令幀; 步驟402 :幀覆蓋范圍內(nèi)的其他的簇首節(jié)點(diǎn)收到命令幀后,判斷自己是否還有剩 余地址資源可供分配,如果有,進(jìn)行步驟404,否則進(jìn)行步驟403 ;
步驟403 :放棄處理此幀,轉(zhuǎn)到步驟408 ; 步驟404 :所述其他的簇首節(jié)點(diǎn)向簇首節(jié)點(diǎn)H返回一個(gè)響應(yīng)幀,此幀包括將要分配 的簇首ID ; 步驟405 :若所述簇首節(jié)點(diǎn)H在規(guī)定時(shí)間內(nèi)收到其他多個(gè)簇首節(jié)點(diǎn)返回的響應(yīng)幀, 則簇首節(jié)點(diǎn)H根據(jù)響應(yīng)幀返回的簇首ID計(jì)算出返回響應(yīng)幀的簇首節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層 數(shù),選擇層數(shù)值最小的簇首節(jié)點(diǎn)做為父節(jié)點(diǎn)并向父節(jié)點(diǎn)返回一個(gè)確認(rèn)幀,同時(shí)從父節(jié)點(diǎn)返 回的響應(yīng)幀的鏈路源地址中抽取樹ID,將樹ID與父節(jié)點(diǎn)分配的簇首ID相結(jié)合形成自己的 傳感器節(jié)點(diǎn)ID ; 步驟406 :父節(jié)點(diǎn)收到確認(rèn)幀后,將分配給簇首節(jié)點(diǎn)H的簇首ID標(biāo)記為已分配,以免重復(fù)分配; 步驟407 :簇首節(jié)點(diǎn)H成功加入樹狀結(jié)構(gòu)并獲取自己的傳感器節(jié)點(diǎn)ID ;
步驟408:過程結(jié)束。 圖5所示的是本發(fā)明所述的簇內(nèi)節(jié)點(diǎn)傳感器節(jié)點(diǎn)ID結(jié)構(gòu)示意圖,簇內(nèi)節(jié)點(diǎn)傳感器 節(jié)點(diǎn)ID包括四個(gè)部分,第一部分是i比特的樹ID ;第二部分為n比特的簇ID ;第三部分為 i比特的簇內(nèi)節(jié)點(diǎn)標(biāo)識(shí)符,其值為O ;第四部分為(64-i-n-i)比特的簇內(nèi)節(jié)點(diǎn)ID,其值為非 0。其中,i與n的含義與圖2相同。 圖6所示的是本發(fā)明所述的簇內(nèi)節(jié)點(diǎn)獲取傳感器節(jié)點(diǎn)ID的流程示意圖,簇首節(jié)點(diǎn) 采用記錄地址分配狀態(tài)的方式為簇內(nèi)節(jié)點(diǎn)分配傳感器節(jié)點(diǎn)ID以避免地址重復(fù)分配,簇內(nèi) 節(jié)點(diǎn)獲取傳感器節(jié)點(diǎn)ID的流程描述如下 步驟601 :簇內(nèi)節(jié)點(diǎn)向所在簇的簇首節(jié)點(diǎn)發(fā)送請(qǐng)求傳感器節(jié)點(diǎn)ID的命令幀;
步驟602 :所述簇首節(jié)點(diǎn)收到命令幀后,判斷自己是否還有剩余地址資源可供分 配,如果是進(jìn)行步驟603,否則進(jìn)行步驟604 ; 步驟603 :所述簇首節(jié)點(diǎn)向所述簇內(nèi)節(jié)點(diǎn)返回一個(gè)響應(yīng)幀,此幀包括將要分配的 簇內(nèi)節(jié)點(diǎn)ID,進(jìn)行步驟605 ; 步驟604 :所述簇首節(jié)點(diǎn)向所述簇內(nèi)節(jié)點(diǎn)返回一個(gè)響應(yīng)幀,此幀返回的簇內(nèi)節(jié)點(diǎn) ID為O ; 步驟605 :所述簇內(nèi)節(jié)點(diǎn)收到響應(yīng)幀后,判斷返回的簇內(nèi)節(jié)點(diǎn)ID是否為O,如果不 為0,進(jìn)行步驟606,否則進(jìn)行步驟609 ; 步驟606 :所述簇內(nèi)節(jié)點(diǎn)從響應(yīng)幀的源鏈路地址中獲取樹ID及簇ID,然后將它們 與分配的簇內(nèi)節(jié)點(diǎn)ID相結(jié)合形成自己的傳感器節(jié)點(diǎn)ID,同時(shí)向所述簇首節(jié)點(diǎn)返回一個(gè)確 認(rèn)幀; 步驟607 :所述簇首節(jié)點(diǎn)收到確認(rèn)幀后,將分配給所述簇內(nèi)節(jié)點(diǎn)的簇內(nèi)節(jié)點(diǎn)ID標(biāo) 記為已分配,以免重復(fù)分配; 步驟608 :所述簇內(nèi)節(jié)點(diǎn)成功獲取自己的傳感器節(jié)點(diǎn)ID,轉(zhuǎn)到步驟611 ; 步驟609 :所述簇內(nèi)節(jié)點(diǎn)向所述簇首節(jié)點(diǎn)發(fā)送一個(gè)離開簇的命令幀,并將自己標(biāo)
記為孤立狀態(tài); 步驟610 :所述簇首節(jié)點(diǎn)收到命令幀后,將所述簇內(nèi)節(jié)點(diǎn)從鄰居節(jié)點(diǎn)列表以及簇
內(nèi)節(jié)點(diǎn)列表中刪除; 步驟611:過程結(jié)束。 圖7所示的是本發(fā)明所述的簇首節(jié)點(diǎn)、簇內(nèi)節(jié)點(diǎn)失效處理流程示意圖,簇首節(jié)點(diǎn)、 簇內(nèi)節(jié)點(diǎn)電量小于預(yù)定值時(shí),本發(fā)明就認(rèn)為此節(jié)點(diǎn)為無效節(jié)點(diǎn),傳感器節(jié)點(diǎn)是靠電池驅(qū)動(dòng) 的,而且電池一般是不可更換的,如果電池耗盡了,傳感器節(jié)點(diǎn)也就不能工作了。本實(shí)施例 中預(yù)設(shè)值一般設(shè)置范圍為50 200 y J。當(dāng)簇首節(jié)點(diǎn)、簇內(nèi)節(jié)點(diǎn)X檢測(cè)到自己即將失效時(shí), 它的處理流程為 步驟701 :傳感器節(jié)點(diǎn)X檢測(cè)到自己即將失效; 步驟702 :傳感器節(jié)點(diǎn)X判斷自己是否為簇首節(jié)點(diǎn),如果是,進(jìn)行步驟703,否則進(jìn) 行步驟707 ; 步驟703 :簇首節(jié)點(diǎn)X向簇內(nèi)廣播一個(gè)離開簇的命令幀;
步驟704 :簇內(nèi)節(jié)點(diǎn)向簇首節(jié)點(diǎn)X返回一個(gè)包含自己當(dāng)前性能參數(shù)的響應(yīng)幀;
步驟705 :簇首節(jié)點(diǎn)X比較返回響應(yīng)幀中的性能參數(shù),選擇性能參數(shù)最好的簇內(nèi)節(jié) 點(diǎn)M成為新的簇首節(jié)點(diǎn),同時(shí)將簇內(nèi)節(jié)點(diǎn)M從鄰居節(jié)點(diǎn)列表及簇內(nèi)節(jié)點(diǎn)列表中刪除,并釋放 簇內(nèi)節(jié)點(diǎn)M所占用的簇內(nèi)節(jié)點(diǎn)ID地址資源,最后將自己所有參數(shù)發(fā)送給簇內(nèi)節(jié)點(diǎn)M ;
步驟706 :簇內(nèi)節(jié)點(diǎn)M收到這些參數(shù)后,保存這些參數(shù),采用簇首節(jié)點(diǎn)X的傳感器 節(jié)點(diǎn)ID,替代簇首節(jié)點(diǎn)X成為新的簇首節(jié)點(diǎn),進(jìn)行步驟710 ; 步驟707 :傳感器節(jié)點(diǎn)X判斷自己是否為簇內(nèi)節(jié)點(diǎn),如果是,進(jìn)行步驟708,否則進(jìn) 行步驟710 ; 步驟708 :簇內(nèi)節(jié)點(diǎn)X向所在簇的簇首節(jié)點(diǎn)H發(fā)送一個(gè)離開簇的命令幀,并將自己 標(biāo)記為孤立狀態(tài); 步驟709 :簇首節(jié)點(diǎn)H收到命令幀后,將簇內(nèi)節(jié)點(diǎn)X從鄰居節(jié)點(diǎn)列表以及簇內(nèi)節(jié)點(diǎn) 列表中刪除,并釋放簇內(nèi)節(jié)點(diǎn)X所占用的簇內(nèi)節(jié)點(diǎn)ID地址資源;
步驟710 :處理過程結(jié)束。 圖8所示的是本發(fā)明所述的數(shù)據(jù)幀封裝格式示意圖,當(dāng)IPv6接入節(jié)點(diǎn)收到來自 IPv6網(wǎng)絡(luò)的數(shù)據(jù)包時(shí),它將IPv6數(shù)據(jù)包作為數(shù)據(jù)流進(jìn)行分片處理,即只有數(shù)據(jù)包第一分片 包含IPv6頭部結(jié)構(gòu)。數(shù)據(jù)分片依次經(jīng)過適配層頭部、Mesh delivery頭部及幀頭部進(jìn)行封 裝形成數(shù)據(jù)幀,其中適配層頭部記錄IPv6數(shù)據(jù)包的分片信息,Mesh delivery頭部記錄數(shù) 據(jù)幀的目的簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,幀頭信息記錄下一跳簇首節(jié)點(diǎn)/目的簇內(nèi)節(jié)點(diǎn)的傳 感器節(jié)點(diǎn)ID。 圖9是所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)路由流程示意圖,具體路由流程如下
步驟901 :IPv6網(wǎng)絡(luò)中的節(jié)點(diǎn)N發(fā)送一條獲取簇內(nèi)節(jié)點(diǎn)X采集數(shù)據(jù)的服務(wù)請(qǐng)求數(shù) 據(jù)包,此數(shù)據(jù)包的目的地址為簇內(nèi)節(jié)點(diǎn)的IPv6地址; 步驟902 :此數(shù)據(jù)包在IPv6網(wǎng)絡(luò)中路由,最后到達(dá)與目的簇內(nèi)節(jié)點(diǎn)所在無線傳感 器網(wǎng)絡(luò)連接的IPv6接入節(jié)點(diǎn),IPv6接入節(jié)點(diǎn)通過檢查目的簇內(nèi)節(jié)點(diǎn)的IPv6地址的樹ID 判斷簇內(nèi)節(jié)點(diǎn)X是否在本樹狀結(jié)構(gòu)內(nèi),如果不在,則進(jìn)行多播,最后此請(qǐng)求數(shù)據(jù)包到達(dá)目的 簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的根節(jié)點(diǎn)或IPv6接入節(jié)點(diǎn)T,所述根節(jié)點(diǎn)T就是 IPv6接入節(jié)點(diǎn)T,它們是同一個(gè)節(jié)點(diǎn); 步驟903 :根節(jié)點(diǎn)T或接入節(jié)點(diǎn)T提取目的簇內(nèi)節(jié)點(diǎn)的鏈路層地址,即目的簇內(nèi)節(jié) 點(diǎn)的IPv6地址的傳感器節(jié)點(diǎn)ID,對(duì)數(shù)據(jù)包進(jìn)行分片處理,用適配層頭部、Mesh delivery頭 部及鏈路幀頭部將數(shù)據(jù)分片封裝為數(shù)據(jù)幀,其中,Mesh delivery頭部的源地址為根節(jié)點(diǎn)T 的傳感器節(jié)點(diǎn)ID,目的地址為目的簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,鏈路幀頭部目的地址為目的 簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)H所在分枝的下一跳子節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出 去; 步驟904 :簇首節(jié)點(diǎn)收到數(shù)據(jù)幀后,根據(jù)數(shù)據(jù)幀Mesh delivery頭部的目的地址判 斷自己是否是目的簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)H,如果不是,進(jìn)行步驟905,否則進(jìn)行步驟
906 ; 步驟905 :簇首節(jié)點(diǎn)將數(shù)據(jù)幀的目的地址更新為簇首節(jié)點(diǎn)H所在分枝下一跳子節(jié) 點(diǎn)的傳感器節(jié)點(diǎn)ID,簇首節(jié)點(diǎn)繼續(xù)發(fā)送數(shù)據(jù)幀,進(jìn)行步驟904 ; 步驟906 :簇首節(jié)點(diǎn)H在簇內(nèi)廣播此數(shù)據(jù)幀,最終,目的簇內(nèi)節(jié)點(diǎn)收到此數(shù)據(jù)幀;
12
步驟907 :目的簇內(nèi)節(jié)點(diǎn)收到所有的數(shù)據(jù)幀后,將分片進(jìn)行重組,處理服務(wù)請(qǐng)求數(shù) 據(jù)包,將服務(wù)響應(yīng)數(shù)據(jù)封裝成IPv6響應(yīng)數(shù)據(jù)包,對(duì)其進(jìn)行分片處理,用適配層頭部及鏈路 頭部將數(shù)據(jù)分片封裝成數(shù)據(jù)幀,其中,鏈路幀頭部的源地址為目的簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn) ID,目的地址為簇首節(jié)點(diǎn)H的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出去; 步驟908 :簇首節(jié)點(diǎn)收到數(shù)據(jù)幀后,檢測(cè)自己的傳感器節(jié)點(diǎn)ID判斷自己是否為 IPv6接入節(jié)點(diǎn)T,如果是,進(jìn)行步驟910,否則進(jìn)行步驟909 ; 步驟909 :簇首節(jié)點(diǎn)將鏈路幀頭部的源地址更新為自己的傳感器節(jié)點(diǎn)ID,目的地 址更新為其父節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出去,進(jìn)行步驟908 ;
步驟910 :IPv6接入節(jié)點(diǎn)T收到所有數(shù)據(jù)幀后,將分片進(jìn)行重組成服務(wù)響應(yīng)數(shù)據(jù) 包,將數(shù)據(jù)包發(fā)送到IPv6網(wǎng)絡(luò)上,數(shù)據(jù)包按照IPv6路由方式最終到達(dá)IPv6節(jié)點(diǎn)N ;
步驟911 :路由過程結(jié)束。 綜上所述,本發(fā)明提供了下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,此項(xiàng)技術(shù)可以 應(yīng)用于農(nóng)業(yè)現(xiàn)代化、醫(yī)療健康、軍事國防等諸多領(lǐng)域,例如,在農(nóng)業(yè)現(xiàn)代化領(lǐng)域,可將無線傳 感器與IPv6網(wǎng)絡(luò)全I(xiàn)P通信技術(shù)應(yīng)用于現(xiàn)代設(shè)施農(nóng)業(yè)環(huán)境監(jiān)測(cè)控制,這樣,農(nóng)業(yè)勞動(dòng)者不受 地理位置限制,通過互聯(lián)網(wǎng)可隨時(shí)訪問農(nóng)田中的傳感器節(jié)點(diǎn),獲取農(nóng)田溫度、濕度、光強(qiáng)度 等環(huán)境參數(shù),及時(shí)掌握農(nóng)作物的生長環(huán)境,確保農(nóng)作物健康成長。由于傳感器節(jié)點(diǎn)具有體積 小、價(jià)格低廉、易于布置、易于維護(hù)等特點(diǎn),而互聯(lián)網(wǎng)具有地理位置覆蓋廣泛,使用方便,界 面友好、費(fèi)用低廉等特點(diǎn),因此,本技術(shù)具有很高的推廣價(jià)值。 本發(fā)明提供了一種下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法的思路,具體實(shí)現(xiàn)該 技術(shù)方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù) 領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這 些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。本實(shí)施例中未明確的各組成部份均可用現(xiàn)有技 術(shù)加以實(shí)現(xiàn)。
權(quán)利要求
一種下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于,所述下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)為與IPv6網(wǎng)絡(luò)實(shí)現(xiàn)全I(xiàn)P通信互聯(lián)的無線傳感器網(wǎng)絡(luò),是IPv6網(wǎng)絡(luò)的末端網(wǎng)絡(luò);所述無線傳感器網(wǎng)絡(luò)中的每個(gè)傳感器節(jié)點(diǎn)擁有唯一的IPv6地址,IPv6節(jié)點(diǎn)通過無線傳感器節(jié)點(diǎn)的IPv6地址實(shí)現(xiàn)與傳感器節(jié)點(diǎn)的全I(xiàn)P通信;所述全I(xiàn)P無線傳感器網(wǎng)絡(luò)設(shè)置三類節(jié)點(diǎn)IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn);所述簇首節(jié)點(diǎn)與簇內(nèi)節(jié)點(diǎn)根據(jù)最大連通度算法生成;所述IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)為樹狀結(jié)構(gòu),IPv6接入節(jié)點(diǎn)為樹狀結(jié)構(gòu)的根節(jié)點(diǎn),簇首節(jié)點(diǎn)為樹狀結(jié)構(gòu)的中間節(jié)點(diǎn)及葉子節(jié)點(diǎn),IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)為固定節(jié)點(diǎn);所述無線傳感器網(wǎng)絡(luò)的路由通過IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)構(gòu)建的樹狀結(jié)構(gòu)實(shí)現(xiàn);所述簇內(nèi)節(jié)點(diǎn)用于數(shù)據(jù)采集與數(shù)據(jù)處理,為固定節(jié)點(diǎn);簇內(nèi)節(jié)點(diǎn)直接將數(shù)據(jù)發(fā)送至簇首節(jié)點(diǎn),簇首節(jié)點(diǎn)通過所在樹狀結(jié)構(gòu)實(shí)現(xiàn)對(duì)數(shù)據(jù)的路由;IPv6接入節(jié)點(diǎn)用于連接無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò);所述無線傳感器網(wǎng)絡(luò)通過n個(gè)IPv6接入節(jié)點(diǎn)與IPv6網(wǎng)絡(luò)連接,且n≥1,當(dāng)n≥2時(shí),IPv6接入節(jié)點(diǎn)之間通過IPv6網(wǎng)絡(luò)進(jìn)行多播通信;所述無線傳感器網(wǎng)絡(luò)被n個(gè)IPv6接入節(jié)點(diǎn)劃分為n個(gè)樹狀結(jié)構(gòu),每個(gè)樹狀結(jié)構(gòu)中有且只有一個(gè)IPv6接入節(jié)點(diǎn),且所述IPv6接入節(jié)點(diǎn)為樹狀結(jié)構(gòu)的根節(jié)點(diǎn),每個(gè)IPv6接入節(jié)點(diǎn)具有一個(gè)ID,該ID唯一地標(biāo)識(shí)IPv6接入節(jié)點(diǎn)以及以此IPv6接入節(jié)點(diǎn)為根節(jié)點(diǎn)的樹狀結(jié)構(gòu);所述無線傳感器網(wǎng)絡(luò)由多個(gè)簇組成,每個(gè)簇包括一個(gè)簇首節(jié)點(diǎn)和多個(gè)簇內(nèi)節(jié)點(diǎn),簇內(nèi)節(jié)點(diǎn)在簇首節(jié)點(diǎn)的一跳范圍內(nèi),拓?fù)浣Y(jié)構(gòu)為星形;所述IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn)的IPv6地址由兩個(gè)部分組成,第一部分是全局路由前綴,一個(gè)傳感器網(wǎng)絡(luò)中所有傳感器節(jié)點(diǎn)的IPv6地址的全局路由前綴都相同;第二部分為傳感器節(jié)點(diǎn)ID,傳感器節(jié)點(diǎn)ID分為樹ID、簇ID以及簇內(nèi)ID三個(gè)組成部分,其中樹ID唯一地標(biāo)識(shí)一個(gè)以IPv6接入節(jié)點(diǎn)為根節(jié)點(diǎn)的樹狀結(jié)構(gòu),一個(gè)樹狀結(jié)構(gòu)中所有簇首節(jié)點(diǎn)和簇內(nèi)節(jié)點(diǎn)IPv6地址的樹ID都相同;簇ID唯一地標(biāo)識(shí)一個(gè)簇,一個(gè)簇中的所有簇內(nèi)節(jié)點(diǎn)的簇ID都相同;簇內(nèi)ID唯一地標(biāo)識(shí)一個(gè)簇內(nèi)節(jié)點(diǎn);所述IPv6接入節(jié)點(diǎn)IPv6地址的簇ID及簇內(nèi)ID為0,所述簇首節(jié)點(diǎn)IPv6地址的簇內(nèi)ID為0;所述簇首節(jié)點(diǎn)和簇內(nèi)節(jié)點(diǎn)的生成,包括以下步驟步驟301處于孤立狀態(tài)的所有傳感器節(jié)點(diǎn)都設(shè)有一個(gè)具有相同值的初始衰減時(shí)間;步驟302其中,處于孤立狀態(tài)的任意一個(gè)傳感器節(jié)點(diǎn)X定期廣播一個(gè)包含自己信息的信息幀;步驟303幀覆蓋范圍內(nèi)的傳感器節(jié)點(diǎn)Y收到幀后,判斷自己是否被標(biāo)記為簇內(nèi)節(jié)點(diǎn),如果是,進(jìn)行步驟311,如果不是,進(jìn)行步驟304;步驟304傳感器節(jié)點(diǎn)Y將上述一個(gè)傳感器節(jié)點(diǎn)X加入到自己的鄰居列表中;步驟305上述傳感器節(jié)點(diǎn)Y判斷自己是否已經(jīng)標(biāo)記為簇首節(jié)點(diǎn),如果是,進(jìn)行步驟309,否則進(jìn)行步驟306;步驟306上述傳感器節(jié)點(diǎn)Y將自身的衰減時(shí)間衰減一個(gè)預(yù)定值T;步驟307上述傳感器節(jié)點(diǎn)Y判斷衰減時(shí)間是否到期,即衰減為0,如果是,進(jìn)行步驟308,否則進(jìn)行步驟311;步驟308上述傳感器節(jié)點(diǎn)Y將自己標(biāo)識(shí)為簇首節(jié)點(diǎn),同時(shí)向鄰居列表中的傳感器節(jié)點(diǎn)發(fā)送請(qǐng)求加入簇的命令幀,進(jìn)行步驟310;步驟309上述傳感器節(jié)點(diǎn)Y向上述傳感器節(jié)點(diǎn)X發(fā)送請(qǐng)求加入簇的命令幀;步驟310上述傳感器節(jié)點(diǎn)X收到命令幀后,判斷自己是否處于孤立狀態(tài)且衰減時(shí)間沒有到期,如果是,進(jìn)行步驟312,否則進(jìn)行步驟311;步驟311放棄處理此幀,進(jìn)行步驟316;步驟312上述傳感器節(jié)點(diǎn)X將自己標(biāo)識(shí)為簇內(nèi)節(jié)點(diǎn),并返回一個(gè)包含所加入簇簇首節(jié)點(diǎn)Y信息的確認(rèn)命令幀;步驟313上述傳感器節(jié)點(diǎn)Y判斷收到的確認(rèn)幀中簇首節(jié)點(diǎn)信息是否為自己的信息,如果是,進(jìn)行步驟314,否則進(jìn)行步驟315;步驟314上述傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X加入到簇內(nèi)節(jié)點(diǎn)列表中;步驟315上述傳感器節(jié)點(diǎn)Y將上述傳感器節(jié)點(diǎn)X從鄰居列表中刪除;步驟316過程結(jié)束;其中傳感器節(jié)點(diǎn)Y為除傳感器節(jié)點(diǎn)X以外且在傳感器節(jié)點(diǎn)X一跳范圍內(nèi)的任意一個(gè)傳感器節(jié)點(diǎn),且以上步驟中所述的傳感器節(jié)點(diǎn)Y為同一個(gè)傳感器節(jié)點(diǎn),傳感器節(jié)點(diǎn)X為同一個(gè)傳感器節(jié)點(diǎn)。
2. 根據(jù)權(quán)利要求1所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于,所述 簇首節(jié)點(diǎn)通過加入距離本簇首節(jié)點(diǎn)最近的IPv6接入節(jié)點(diǎn)所在的樹狀結(jié)構(gòu)實(shí)現(xiàn)IPv6地址的 傳感器節(jié)點(diǎn)ID自動(dòng)配置,距離的度量單位為跳數(shù);在獲取傳感器節(jié)點(diǎn)ID之后,簇首節(jié)點(diǎn)為 簇內(nèi)節(jié)點(diǎn)分配傳感器節(jié)點(diǎn)ID,所述IPv6接入節(jié)點(diǎn)的IPv6地址的樹ID的有效比特位為i, 且64 > i > 1 ;所述簇首節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層次與其IPv6地址的簇首ID的有效比特位 成正比關(guān)系,即簇首節(jié)點(diǎn)IPv6地址的簇首ID的有效比特位等于它所在樹狀結(jié)構(gòu)的層次數(shù) 乘以i比特,其中樹狀結(jié)構(gòu)的根節(jié)點(diǎn)的子節(jié)點(diǎn)所在的層次為1。
3. 根據(jù)權(quán)利要求2所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于,所述 簇首節(jié)點(diǎn)即將失效時(shí),從本簇內(nèi)選擇性能參數(shù)最好的簇內(nèi)節(jié)點(diǎn)成為新的簇首節(jié)點(diǎn),新的簇 首節(jié)點(diǎn)使用該簇首節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID。
4. 根據(jù)權(quán)利要求2或3所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于, 所述下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的路由在鏈路層實(shí)現(xiàn),傳感器網(wǎng)絡(luò)的鏈路地址為其傳感 器節(jié)點(diǎn)ID。
5. 根據(jù)權(quán)利要求4所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于,所述 IPv6接入節(jié)點(diǎn)對(duì)IPv6數(shù)據(jù)包按照數(shù)據(jù)流方式進(jìn)行分片處理,即只有第一分片包含IPv6頭 部結(jié)構(gòu),其他分片只包含IPv6負(fù)載;一個(gè)數(shù)據(jù)分片用適配層頭部、Mesh delivery頭部及幀 頭進(jìn)行封裝為一個(gè)數(shù)據(jù)幀;數(shù)據(jù)幀的幀頭中源地址為IPv6接入節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,目的 地址為目的簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID。
6. 根據(jù)權(quán)利要求5所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于,數(shù)據(jù) 幀通過IPv6接入節(jié)點(diǎn)所在的樹狀結(jié)構(gòu)完成路由,到達(dá)目的簇內(nèi)節(jié)點(diǎn),具體包括以下步驟步驟901 :IPv6網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)N發(fā)送一條獲取一個(gè)簇內(nèi)節(jié)點(diǎn)采集數(shù)據(jù)的服務(wù)請(qǐng)求數(shù)據(jù) 包,此數(shù)據(jù)包的目的地址為上述簇內(nèi)節(jié)點(diǎn)的IPv6地址;步驟902 :上述數(shù)據(jù)包在IPv6網(wǎng)絡(luò)中路由,最后到達(dá)與上述簇內(nèi)節(jié)點(diǎn)所在無線傳感器 網(wǎng)絡(luò)連接的IPv6接入節(jié)點(diǎn),IPv6接入節(jié)點(diǎn)通過檢查上述簇內(nèi)節(jié)點(diǎn)的IPv6地址的樹ID判 斷簇內(nèi)節(jié)點(diǎn)是否在本樹狀結(jié)構(gòu)內(nèi),如果不在,則進(jìn)行多播,最后上述數(shù)據(jù)包到達(dá)上述簇內(nèi)節(jié) 點(diǎn)所在簇的簇首節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的根節(jié)點(diǎn)或IPv6接入節(jié)點(diǎn);步驟903 :上述根節(jié)點(diǎn)或IPv6接入節(jié)點(diǎn)提取上述簇內(nèi)節(jié)點(diǎn)的鏈路層地址,即簇內(nèi)節(jié)點(diǎn) 的IPv6地址的傳感器節(jié)點(diǎn)ID,對(duì)數(shù)據(jù)包進(jìn)行分片處理,用適配層頭部、Mesh delivery頭部 及鏈路幀頭部將數(shù)據(jù)分片封裝為數(shù)據(jù)幀,其中,Mesh delivery頭部的源地址為上述根節(jié)點(diǎn) 或IPv6接入節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,目的地址為上述簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,鏈路幀頭部 目的地址為上述簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)所在分枝的下一跳子節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將 數(shù)據(jù)幀發(fā)送出去;步驟904 :簇首節(jié)點(diǎn)收到數(shù)據(jù)幀后,根據(jù)數(shù)據(jù)幀Mesh delivery頭部的目的地址判斷 自己是否是上述目的簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn),如果不是,進(jìn)行步驟905,否則進(jìn)行步驟906 ;步驟905 :簇首節(jié)點(diǎn)將數(shù)據(jù)幀的目的地址更新為上述目的簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)所在分枝下一跳子節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,簇首節(jié)點(diǎn)繼續(xù)發(fā)送數(shù)據(jù)幀,進(jìn)行步驟904 ;步驟906 :上述目的簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)在簇內(nèi)廣播此數(shù)據(jù)幀,最終,上述簇內(nèi) 節(jié)點(diǎn)收到此數(shù)據(jù)幀;步驟907 :上述簇內(nèi)節(jié)點(diǎn)收到所有的數(shù)據(jù)幀后,將分片進(jìn)行重組,處理服務(wù)請(qǐng)求數(shù)據(jù) 包,將服務(wù)響應(yīng)數(shù)據(jù)封裝成IPv6響應(yīng)數(shù)據(jù)包,對(duì)其進(jìn)行分片處理,用適配層頭部及鏈路頭 部將數(shù)據(jù)分片封裝成數(shù)據(jù)幀,其中,鏈路幀頭部的源地址為上述簇內(nèi)節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID, 目的地址為上述目的簇內(nèi)節(jié)點(diǎn)所在簇的簇首節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出去;步驟908 :簇首節(jié)點(diǎn)收到數(shù)據(jù)幀后,檢測(cè)自己的傳感器節(jié)點(diǎn)ID判斷自己是否為上述 IPv6接入節(jié)點(diǎn),如果是,進(jìn)行步驟910,否則進(jìn)行步驟909 ;步驟909 :簇首節(jié)點(diǎn)將鏈路幀頭部的源地址更新為自己的傳感器節(jié)點(diǎn)ID,目的地址更 新為其父節(jié)點(diǎn)的傳感器節(jié)點(diǎn)ID,將數(shù)據(jù)幀發(fā)送出去,進(jìn)行步驟908 ;步驟910 :IPv6接入節(jié)點(diǎn)收到所有數(shù)據(jù)幀后,將分片進(jìn)行重組成服務(wù)響應(yīng)數(shù)據(jù)包,將數(shù) 據(jù)包發(fā)送到IPv6網(wǎng)絡(luò)上,數(shù)據(jù)包按照IPv6路由方式最終到達(dá)所述IPv6網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)N ; 步驟911 :路由過程結(jié)束。
7.根據(jù)權(quán)利要求2所述的下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,其特征在于,所述 簇首節(jié)點(diǎn)為簇內(nèi)節(jié)點(diǎn)分配傳感器節(jié)點(diǎn)ID的方式為有狀態(tài)地址分配方式,即記錄地址分配 狀態(tài)分配傳感器節(jié)點(diǎn)ID,用于避免地址重復(fù)分配。
全文摘要
本發(fā)明提供了下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)方法,所述系統(tǒng)設(shè)置三類節(jié)點(diǎn)IPv6接入節(jié)點(diǎn)、簇首節(jié)點(diǎn)及簇內(nèi)節(jié)點(diǎn),所述IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)為樹狀結(jié)構(gòu),IPv6接入節(jié)點(diǎn)為樹狀結(jié)構(gòu)的根節(jié)點(diǎn),簇首節(jié)點(diǎn)為樹狀結(jié)構(gòu)的中間節(jié)點(diǎn)及葉子節(jié)點(diǎn);所述無線傳感器網(wǎng)絡(luò)的路由系統(tǒng)通過IPv6接入節(jié)點(diǎn)與簇首節(jié)點(diǎn)構(gòu)建的樹狀結(jié)構(gòu)實(shí)現(xiàn);所述簇內(nèi)節(jié)點(diǎn)用于數(shù)據(jù)采集與數(shù)據(jù)處理;所述下一代全I(xiàn)P無線傳感器網(wǎng)絡(luò)的路由系統(tǒng)在鏈路層實(shí)現(xiàn),IPv6接入節(jié)點(diǎn)收到來自IPv6網(wǎng)絡(luò)的數(shù)據(jù)包時(shí),它對(duì)數(shù)據(jù)包進(jìn)行分片處理,一個(gè)數(shù)據(jù)分片封裝成為一個(gè)數(shù)據(jù)幀,并在本樹狀結(jié)構(gòu)中自動(dòng)實(shí)現(xiàn)路由,將數(shù)據(jù)幀路由到目的簇內(nèi)節(jié)點(diǎn)。
文檔編號(hào)H04W8/26GK101707764SQ20091023260
公開日2010年5月12日 申請(qǐng)日期2009年12月3日 優(yōu)先權(quán)日2009年12月3日
發(fā)明者王曉喃 申請(qǐng)人:王曉喃