專利名稱:一種無線傳感網絡的IPv6地址無狀態自動配置方法
技術領域:
本發明涉及一種無線傳感器網絡的IPv6地址無狀態自動配置方法,屬于計算機網絡技術領域。
背景技術:
在IPv6無線傳感器網絡中,由于節點數量龐大,手動配置和管理靜態IP地址是一件非常困難并且煩瑣的工作,傳統手動配置和管理IP地址在IPv6無線傳感器網絡中顯然是不合適的。因而,研究適合于無線傳感器網絡的低功耗、可擴展的IPv6編址尋址技術,對于IPv6無線傳感器的應用發展具有至關重要的作用。在IPv6無線傳感器網絡中地址配置方式主要有兩種,一種是全狀態自動配置 Gtateful Auto Configuration),另一種是無狀態自動配置 Stateless Auto Configuration)。全狀態自動配置是利用一個可靠的辦法提前分配出一塊地址池,節點加入網絡后在可用地址中進行選擇。然而,在網絡規模擴大到由上千個節點構成時,則會大大降低其實用性,可擴展性不好。如在傳統IP網絡中廣泛應用的DHCP (Dynamic Host Configuration Protocol)協議,網絡中DHCPv6服務器提前分配出一個地址池,主機從DHCPv6服務器申請 IP地址并獲得有關的配置信息(如缺省網關、DNS服務器等),從而自動設置主機IP地址。 然而,DHCPv6屬于應用層的協議,其功能豐富但復雜度高,在大規模無線傳感器網絡中卻應用有限。無狀態自動配置,最簡單而直接的辦法是利用節點的MAC地址,進行地址的自動配置。然而,這樣配置的問題是,盡管可以保證其作為硬件地址的唯一性,但卻不能保證其作為IPv6地址的唯一性。另外,由于硬件廠商可能會使用未曾注冊過的MAC地址,由此過程會引發重復MAC地址的產生。尤其是在無線傳感器網絡中節點在硬件部分允許用戶自己隨意對MAC地址進行修改。所以簡單地利用節點的MAC地址的辦法是不恰當的。無狀態地址配置方式具有可擴展性,更符合無線傳感器網絡的節點數量龐大、節點能量和帶寬受限等特點,然而,現有技術中的無狀態地址配置方式尚不成熟。
發明內容
本發明的目的是提供一種無線傳感器網絡的IPv6地址自動配置的方法,其針對大規模的無線傳感器網絡,新節點在加入網絡后會得到父節點分配的一個可用于全網通信的、全網唯一的IPv6地址,節點加入網絡成功后可以利用這一 IPv6地址進行全網通信,此 IPv6地址中還包含有父節點IPv6地址信息,節點地址不只是節點的身份標識,也可以為數據包的路由提供服務。為此,本發明提供了一種無線傳感器網絡的IPv6地址無狀態自動配置方法,其特征在于,采用如下地址編碼方案,1 位的IPv6地址分為三部分第1-80位為全局路由前綴,由網關獲得,通過該網關連入全網進行通信的節點均從此網關取得該80位的全局路由前綴;第81-120位為可供分配的子網ID,各個子網內的所有節點的子網ID相同 ’第
4121-128位為節點ID,由節點的64位EUI_64bits長地址進行哈希映射而成,作為節點在子網內標識。 優選地,全局路由前綴由網關獲取標識此IPv6無線傳感器網絡的唯一的全局路由前綴,一個IPv6無線傳感器網絡內的所有類型的傳感器節點都使用相同的全局路由前優選地,可供分配的子網ID由各個子網內的路由器節點申請得到,并向子網內的傳感器節點進行通告,在每一個子網內所有的節點均具有相同的子網ID ;每個路由器節點給其它路由器節點分配子網ID時,都默認將其子網ID的后面四位進行分配,默認可進行分配的子網數為14個;當有超出了默認子網數目的子網申請時,路由器節點則進行相應的沖突處理,以實現接納更多的子網加入。優選地,節點ID每一個路由器節點的此段地址默認為01,而其它的傳感器節點則將其EUI-64bits的長地址由哈希算法映射而成Sbit的節點ID,作為其在子網內的唯一標識;地址為00和FF預留待用。優選地,每個路由器節點和傳感器節點均帶有IPv6地址和相應的掩碼,由其掩碼與IPv6地址相與即可獲得自己的子網信息。優選地,包括下列步驟1)物聯網網關GW啟動后,發送路由器通告消息RoAM,其目的地址為多播地址 FF02: 1 ;在其功率所及范圍內的IPv6微型傳感路由器節點A收到RoAM后,向其發出地址請求報文ADRQ,進而網關GW向其發送地址響應報文ADRP,至此,路由器節點A獲得自己的地址以及授權分配的地址池信息;2)不在物聯網網關功率范圍內的IPv6微型傳感路由器B加入網絡時,首先探測請求包PRRQ,在路由器B范圍內的路由器或網關收到地址探測包PRRQ之后發送探測響應包PRRP ;在規定的系統時間到期后,路由器B會收到多個PRRP,根據接收到報文的鏈路質量 LQI、深度信息,地址池容量等信息,選取最適合的路由器節點A作為自己的父節點,發送地址請求報文ADRQ,收到該確認報文的路由器節點A發送地址回復報文ADRP ;路由器節點B 從ADRP中提取出相關地址信息,配置出本節點的IPv6地址;3) IPv6微型傳感器節點MSN加入網絡,獲得IPv6地址的過程與步驟2)中的過程類似,選擇離其最近的路由器節點B作為地址配置節點,進而配置出本節點的IPv6地址;4)在地址配置信息的報文中,節點ID是由各個子網內的IPv6微型傳感路由器根據地址請求的節點的EUI-64bits的長地址進行哈希映射,映射成子網內唯一的Sbits的節點ID,進而通過地址配置信息的報文回復給各子網成員;各個IPv6微型傳感器節點提取出相應的地址信息,生成全網唯一的IPv6地址;對于所有的路由器節點,規定它們的節點ID 統一為0x01。優選地,對于IPv6微型傳感路由器進行地址請求時,找不到可用的父節點時,沖突解決的具體操作步驟如下1) IPv6微型傳感路由器MSR E申請加入網絡并發出探測請求包PRRQ,然而其周圍的IPv6微型傳感路由器C、D均無可供分配的地址池,此時需要對路由器C以及D的地址進行擴容;2)MSR E首先選擇深度較大的MSR D為父節點,請求MSR D進行沖突解決;MSR D進而進行地址變長操作,將自己所分配的子網部分右移一位,以獲得更多的地址可供分配; MSR E再次向MSR D進行申請成功獲得MSR D為其分配的地址時,向其子網內的所有節點發送路由器通告消息RoAM,使子網內的所有節點均變更為新地址,且掩碼為原掩碼加一。優選地,網關啟動或者進行地址更新時,向全網發送路由器通告消息RoAM ;各個 IPv6微型傳感路由器節點與IPv6微型傳感器節點在加入網絡,請求全球單播地址時都需進行“四次握手”進行連接,進而通過接收到的地址回復報文配置出自己的全球單播地址;所述“四次握手”過程如下以MSR B進行地址請求為例,MSR B廣播探測請求報文PRRQ,接收到PRRQ的路由器均回復PRRP,MSR B在一定時間內會收到多個PRRP,然后根據一定的策略選取MSR A作為父節點,并發送ADRQ進行地址請求;MSR A對進行地址請求的MSR B發送地址回復報文ADRP,MSR B據此配置出自己的全球單播地址。優選地,子網ID部分采用的地址編碼方案具體如下首先啟動GW網關節點,其子網ID部分為全0,掩碼為/80 ;接著,路由器節點A、C順序接入啟動,成功接入網絡,GW網關分配給A、C節點的子網 ID 依次為 1000:0000:00/84,2000:0000:00/84 ;路由器節點B向A節點申請加入網絡,入網成功,A節點給B節點分配子網ID為 1100:0000:00/88 ;路由器節點D向C節點申請加入網絡,入網成功,C節點給D節點分配子網 ID 為 2100:0000:00/88 ;路由器節點E向鄰近節點C和D發出申請,得到C和D的地址池容量已滿的回復, 則繼續發送一輪地址申請,在系統規定時間內,E仍未找到合適的父節點,則向深度較大的節點D繼續發送地址變長請求,節點D進而進行地址變長操作,以接納更多的路由器節點的加入;節點D將自己所分配的子網部分右移一位,以獲得更多的地址可供分配;MSR E再次向MSR D進行申請成功獲得MSR D為其分配的地址時,向其子網內的所有節點發送路由器通告消息RoAM,使子網內的所有節點均變更為新地址,掩碼為原掩碼加一,使分配給MSR E 的子網 ID 為 2108:0000:00/89 ;MSN F向距離最近的MSR B發出請求,節點B在判明F為普通傳感器節點,不具有地址池分配功能時,則僅僅是將自己的子網ID告知節點F,作為節點F的子網ID,即 1100:000000/88 ;所有的MSN節點向距離最近的MSR發出請求加入相應子網,并從MSR處獲取相應的子網ID,該子網ID與MSR的子網ID相同,沒有向下分配地址池的權限。根據本發明,新節點在加入網絡后,可進行全網通信,IPv6地址中還包含有父節點 IPv6地址信息,節點地址不只是節點的身份標識,也可以為數據包的路由提供服務。
圖1為本發明節點的128位IPv6地址格式;圖2為本發明應用場景示意圖;圖3為本發明中地址配置的簡化流程圖。
具體實施例方式本發明采用的地址編碼方案具體如下1) 128位的IPv6地址分為三部分前80位為全局路由前綴,由網關獲得,通過該網關連入全網進行通信的節點均從此網關取得該80位的全局路由前綴;第81位到120位為可供分配的子網ID,各個子網內的所有節點的子網ID相同;第121位到1 位為節點ID, 由節點的64位EUI-64bits長地址進行哈希映射而成,作為節點在子網內標識。如圖1所
7J\ ο2)第1到80位為全局路由前綴,由網關獲取標識此IPv6無線傳感器網絡的唯一的全局路由前綴。一個IPv6無線傳感器網絡內的所有類型的傳感器節點都使用相同的全局路由前綴。3)第81到120位為可供分配的子網ID,由各個子網內的路由器節點申請得到,并向子網內的傳感器節點進行通告,在每一個子網內所有的節點均具有相同的子網ID。每個路由器節點給其它路由器節點分配子網ID時,都默認將其子網ID的后面四位進行分配,默認可進行分配的子網數為14個。當有超出了默認子網數目的子網申請時,路由器節點則進行相應的沖突處理,以實現接納更多的子網加入。4)第121位到128位為節點ID,每一個路由器節點的此段地址默認為01,而其它的傳感器節點則將其EUI-64bits的長地址由哈希算法映射而成Sbit的節點ID,作為其在子網內的唯一標識。地址為00和FF預留待用。5)每個路由器節點和傳感器節點均帶有IPv6地址和相應的掩碼,由其掩碼與 IPv6地址相與即可獲得自己的子網信息。有關本發明的技術內容及詳細說明,現配合附圖1-3說明如下本發明所適用的無線傳感器網絡由一個物聯網網關(feiteWay of IoTs,GW)、多個 IPv6微型傳感路由器(Micro Sensor Router, MSR)和多個IPv6微型傳感器節點(Micro Sensor Node, MSN)組成,如圖2所示。GW主要實現IPv6無線傳感器網絡與現有網絡的接入、協議轉換以及網絡管理等功能;MSR主要實現路由轉發功能;MSN主要實現對物理世界的信息感知和獲取。在網絡初始狀態,物聯網網關GW具有一個地址池,每個MSR通過地址請求向GW申請地址分配權,同時獲取其可以分配的地址集合;對每個新加入的MSN,通過向其距離最近的MSR申請地址。GW和MSR具有地址分配的功能,而網絡內的所有MSN都只可以進行對數據的采集工作,不支持地址分配功能。有關傳感器網絡節點的IPv6地址的自動配置,下面將對其具體的操作步驟進行詳細描述(1)物聯網網關GW啟動之后,發送路由器通告消息(Router Advertisement Message, RoAM),其目的地址為多播地址FF02: 1。在其功率所及范圍內的IPv6微型傳感路由器節點A,收到RoAM后,向其發出地址請求報文(Address Request Message,ADRQ),進而網關GW向其發送地址響應報文(Address Response Message,ADRP),至此,路由器節點A 可獲得自己的地址以及授權分配的地址池信息。(2)不在物聯網網關功率范圍內的IPv6微型傳感路由器B,加入網絡時,首先探測請求包(Probe Request Message,PRRQ),在路由器B范圍內的路由器或網關收到地址探測包PRRQ之后發送探測響應包(Probe Response Message, PRRP);在規定的系統時間到期后,路由器B會收到多個PRRP,根據接收到報文的鏈路質量(Link Quality Indicator, LQI)、深度信息,地址池容量等信息,選取最適合的路由器節點A作為自己的父節點,發送地址請求報文ADRQ,收到該確認報文的路由器節點A發送地址回復報文ADRP。路由器節點 B從ADRP中提取出相關地址信息,配置出本節點的IPv6地址。(3) IPv6微型傳感器節點MSN加入網絡,獲得IPv6地址的過程與O)中的過程類似,選擇離其最近的路由器節點B作為地址配置節點,進而配置出本節點的IPv6地址。(4)在地址配置信息的報文中,節點ID是由各個子網內的IPv6微型傳感路由器根據地址請求的節點的EUI-64bits的長地址進行哈希映射,映射成子網內唯一的Sbits的節點ID,進而通過地址配置信息的報文回復給各子網成員。各個IPv6微型傳感器節點提取出相應的地址信息,生成全網唯一的IPv6地址。對于所有的路由器節點,我們規定它們的節點ID統一為0x01。對于IPv6微型傳感路由器進行地址請求時,找不到可用的父節點時,沖突解決的具體操作步驟如下(以圖2為例)(1) IPv6微型傳感路由器MSR E申請加入網絡,并發出探測請求包PRRQ,然而其周圍的IPv6微型傳感路由器C、D均無可供分配的地址池,此時需要對路由器C以及D的地址進行擴容。(2)MSR E首先選擇深度較大的MSR D為父節點,請求MSR D進行沖突解決。MSR D 進而進行地址變長操作,將自己所分配的子網部分右移一位,因此,獲得了更多的地址可供分配。MSR E可以再次向MSR D進行申請,此次成功獲得了 MSR D為其分配的地址。但由于 MSR D進行了地址變長的操作,所以應向其子網內的所有節點發送路由器通告消息(RoAM), 使子網內的所有節點均變更為新地址,且掩碼為原掩碼加一。圖2是關于節點的可聚集性全球單播地址配置的示意圖。網關啟動或者進行地址更新時,向全網發送路由器通告消息(RoAM)。各個IPv6微型傳感路由器節點與IPv6微型傳感器節點在加入網絡,請求全球單播地址時都需進行“四次握手”進行連接,進而通過接收到的地址回復報文配置出自己的全球單播地址。“四次握手”過程如下以MSR B進行地址請求為例,MSR B廣播探測請求報文(PRRQ),接收到PRRQ的路由器均回復PRRP,MSR B在一定時間內會收到多個PRRP,然后根據一定的策略選取MSR A作為父節點,并發送ADRQ進行地址請求。MSR A對進行地址請求的MSR B發送地址回復報文(ADRP),MSR B據此配置出自己的全球單播地址。本發明子網ID部分采用的地址編碼方案具體如下首先啟動GW網關節點,其子網ID部分為全0,掩碼為/80。接著,路由器節點A、C順序接入啟動,成功接入網絡,GW網關分配給A、C節點的子網 ID 依次為 1000:0000:00/84,2000:0000:00/84。路由器節點B向A節點申請加入網絡,入網成功,A節點給B節點分配子網ID為 1100:0000:00/88。路由器節點D向C節點申請加入網絡,入網成功,C節點給D節點分配子網 ID 為 2100:0000:00/88。路由器節點E向鄰近節點C和D發出申請,得到C和D的地址池容量已滿的回復。則繼續發送一輪地址申請,在系統規定時間內,E仍未找到合適的父節點,則向深度較大的節點D繼續發送地址變長請求。節點D進而進行地址變長操作,以接納更多的路由器節點的加入。節點D將自己所分配的子網部分右移一位,因此,獲得了更多的地址可供分配。MSR E可以再次向MSR D進行申請,此次成功獲得了 MSR D為其分配的地址。由于 MSR D進行了地址變長操作,所以應向其子網內的所有節點發送路由器通告消息(RoAM),使子網內的所有節點均變更為新地址,掩碼為原掩碼加一。所以分配給MSR E的子網ID為 2108:0000:00/89。MSN F向距離最近的MSR B發出請求,節點B在判明F為普通傳感器節點,不具有地址池分配功能時,則僅僅是將自己的子網ID告知節點F,作為節點F的子網ID,即 1100 0000 00/88。所有的MSN節點向距離最近的MSR發出請求加入相應子網,并從MSR處獲取相應的子網ID,該子網ID與MSR的子網ID相同,沒有向下分配地址池的權限。上述僅為本發明的較佳實施例而已,并非用來限定本發明實施范圍。即凡依本發明申請專利范圍所做的均等變化與修飾,皆為本發明專利范圍所涵蓋。
權利要求
1.一種無線傳感器網絡的IPv6地址無狀態自動配置方法,其特征在于,采用如下地址編碼方案,128位的IPv6地址分為三部分第1-80位為全局路由前綴,由網關獲得,通過該網關連入全網進行通信的節點均從此網關取得該80位的全局路由前綴;第81-120位為可供分配的子網ID,各個子網內的所有節點的子網ID相同;第121-1 位為節點ID,由節點的64位EUI-64bits長地址進行哈希映射而成,作為節點在子網內標識。
2.如權利要求1所述的方法,其特征在于,全局路由前綴由網關獲取標識此IPv6無線傳感器網絡的唯一的全局路由前綴,一個IPv6無線傳感器網絡內的所有類型的傳感器節點都使用相同的全局路由前綴。
3.如權利要求1所述的方法,其特征在于,可供分配的子網ID由各個子網內的路由器節點申請得到,并向子網內的傳感器節點進行通告,在每一個子網內所有的節點均具有相同的子網ID ;每個路由器節點給其它路由器節點分配子網ID時,都默認將其子網ID的后面四位進行分配,默認可進行分配的子網數為14個;當有超出了默認子網數目的子網申請時,路由器節點則進行相應的沖突處理,以實現接納更多的子網加入。
4.如權利要求1所述的方法,其特征在于,節點ID每一個路由器節點的此段地址默認為01,而其它的傳感器節點則將其EUI-64bits的長地址由哈希算法映射而成Sbit的節點 ID,作為其在子網內的唯一標識;地址為00和FF預留待用。
5.如權利要求1所述的方法,其特征在于,每個路由器節點和傳感器節點均帶有IPv6 地址和相應的掩碼,由其掩碼與IPv6地址相與即可獲得自己的子網信息。
6.如權利要求1所述的方法,其特征在于,包括下列步驟1)物聯網網關GW啟動后,發送路由器通告消息RoAM,其目的地址為多播地址FF02::1; 在其功率所及范圍內的IPv6微型傳感路由器節點A收到RoAM后,向其發出地址請求報文 ADRQ,進而網關GW向其發送地址響應報文ADRP,至此,路由器節點A獲得自己的地址以及授權分配的地址池信息;2)不在物聯網網關功率范圍內的IPv6微型傳感路由器B加入網絡時,首先探測請求包 PRRQ,在路由器B范圍內的路由器或網關收到地址探測包PRRQ之后發送探測響應包PRRP ; 在規定的系統時間到期后,路由器B會收到多個PRRP,根據接收到報文的鏈路質量LQU^ 度信息,地址池容量等信息,選取最適合的路由器節點A作為自己的父節點,發送地址請求報文ADRQ,收到該確認報文的路由器節點A發送地址回復報文ADRP ;路由器節點B從ADRP 中提取出相關地址信息,配置出本節點的IPv6地址;3)IPv6微型傳感器節點MSN加入網絡,獲得IPv6地址的過程與步驟幻中的過程類似, 選擇離其最近的路由器節點B作為地址配置節點,進而配置出本節點的IPv6地址;4)在地址配置信息的報文中,節點ID是由各個子網內的IPv6微型傳感路由器根據地址請求的節點的EUI-64bits的長地址進行哈希映射,映射成子網內唯一的Sbits的節點 ID,進而通過地址配置信息的報文回復給各子網成員;各個IPv6微型傳感器節點提取出相應的地址信息,生成全網唯一的IPv6地址;對于所有的路由器節點,規定它們的節點ID統一為 0x01。
7.如權利要求1所述的方法,其特征在于,對于IPv6微型傳感路由器進行地址請求時,找不到可用的父節點時,沖突解決的具體操作步驟如下1)IPv6微型傳感路由器MSR E申請加入網絡并發出探測請求包PRRQ,然而其周圍的 IPv6微型傳感路由器C、D均無可供分配的地址池,此時需要對路由器C以及D的地址進行擴容;2)MSRE首先選擇深度較大的MSR D為父節點,請求MSR D進行沖突解決;MSR D進而進行地址變長操作,將自己所分配的子網部分右移一位,以獲得更多的地址可供分配;MSR E再次向MSR D進行申請成功獲得MSR D為其分配的地址時,向其子網內的所有節點發送路由器通告消息RoAM,使子網內的所有節點均變更為新地址,且掩碼為原掩碼加一。
8.如權利要求7所述的方法,其特征在于,網關啟動或者進行地址更新時,向全網發送路由器通告消息RoAM ;各個IPv6微型傳感路由器節點與IPv6微型傳感器節點在加入網絡,請求全球單播地址時都需進行“四次握手”進行連接,進而通過接收到的地址回復報文配置出自己的全球單播地址;所述“四次握手”過程如下以MSR B進行地址請求為例,MSR B廣播探測請求報文 PRRQ,接收到PRRQ的路由器均回復PRRP,MSR B在一定時間內會收到多個PRRP,然后根據一定的策略選取MSR A作為父節點,并發送ADRQ進行地址請求;MSR A對進行地址請求的 MSR B發送地址回復報文ADRP,MSR B據此配置出自己的全球單播地址。
9.如權利要求1所述的方法,其特征在于,子網ID部分采用的地址編碼方案具體如下首先啟動GW網關節點,其子網ID部分為全0,掩碼為/80 ;接著,路由器節點A、C順序接入啟動,成功接入網絡,GW網關分配給A、C節點的子網ID 依次為 1000 0000 00/84, 2000 0000 00/84 ;路由器節點B向A節點申請加入網絡,入網成功,A節點給B節點分配子網ID為 1100:0000:00/88 ;路由器節點D向C節點申請加入網絡,入網成功,C節點給D節點分配子網 ID 為 2100:0000:00/88 ;路由器節點E向鄰近節點C和D發出申請,得到C和D的地址池容量已滿的回復,則繼續發送一輪地址申請,在系統規定時間內,E仍未找到合適的父節點,則向深度較大的節點D繼續發送地址變長請求,節點D進而進行地址變長操作,以接納更多的路由器節點的加入;節點D將自己所分配的子網部分右移一位,以獲得更多的地址可供分配;MSR E再次向 MSR D進行申請成功獲得MSR D為其分配的地址時,向其子網內的所有節點發送路由器通告消息RoAM,使子網內的所有節點均變更為新地址,掩碼為原掩碼加一,使分配給MSR E的子網 ID 為 2108:0000:00/89 ;MSN F向距離最近的MSR B發出請求,節點B在判明F為普通傳感器節點,不具有地址池分配功能時,則僅僅是將自己的子網ID告知節點F,作為節點F的子網ID,即 1100:000000/88 ;所有的MSN節點向距離最近的MSR發出請求加入相應子網,并從MSR處獲取相應的子網ID,該子網ID與MSR的子網ID相同,沒有向下分配地址池的權限。
全文摘要
一種無線傳感器網絡的IPv6地址無狀態自動配置方法,其特征在于,采用如下地址編碼方案,128位的IPv6地址分為三部分第1-80位為全局路由前綴,由網關獲得,通過該網關連入全網進行通信的節點均從此網關取得該80位的全局路由前綴;第81-120位為可供分配的子網ID,各個子網內的所有節點的子網ID相同;第121-128位為節點ID,由節點的64位EUI-64bits長地址進行哈希映射而成,作為節點在子網內標識。本發明的優點是,新節點在加入網絡后會得到父節點分配的一個可用于全網通信的、全網唯一的IPv6地址,節點加入網絡成功后可以利用這一IPv6地址進行全網通信,此IPv6地址中還包含有父節點IPv6地址信息,節點地址不只是節點的身份標識,也可以為數據包的路由提供服務。
文檔編號H04W8/26GK102404718SQ201110343798
公開日2012年4月4日 申請日期2011年11月3日 優先權日2011年11月3日
發明者張宏科, 張琳娟, 朱婉婷, 朱琳, 王建國, 高德云 申請人:北京交通大學