專利名稱:一種網絡地址配置及網絡合并的方法
技術領域:
本發明涉及通信技術領域,尤其涉及一種網絡地址配置及網絡合并的方法。
背景技術:
WSNs (Wireless Sensor Networks,無線傳感器網絡)是由大量部署在監測區域的低功耗、低速率、低成本、高密度的微型節點通過自組織、自愈合的方式組成的網絡。這種大規模低成本、無人值守、自動組網、抗毀性強的網絡方式,在眾多監測領域如生態環境、工業、軍事、智能城市、智能家居等方面具有廣闊的應用前景。在傳統網絡中,地址的首要作用是為路由發現提供拓撲信息。有時地址也用作標識符,以指代一個通信終端。由于無線傳感器網絡往往是由大量節點組成,且多工作在無人值守的環境下,手動為每個節點分配地址顯然是一項繁瑣而龐大的任務甚至是無法完成 的。因此,針對無線傳感器網絡自身特點設計地址自動配置方案就顯得尤為重要。現有技術中的LEADS協議將網絡中的節點定義為4種角色ADA(address agents,地址代理節點),ADR (address root,根地址),ADP (address proxy,地址代理服務節點)以及普通節點。其中,ADA負責分配地址,但是,當ADA節點地址空間用盡時,對于新加入節點的地址分配問題沒有得到充分的考慮。另外,現有的地址配置協議對于節點密度分布不均導致地址浪費,以及網絡分裂和合并導致的網絡開銷增大的問題都無法得到解決。
發明內容
本發明的目的是提供一種網絡地址配置及網絡合并的方法,提高了節點的接入成功率及對網絡動態變化的適用性。(與權利要求對應)由上述本發明提供的技術方案可以看出,通過借用地址為子節點進行地址分配,有效解決因節點密度分布不均所引起的地址空間不足問題,提高節點的接入成功率;并且根據孤立節點的地址前綴進行網絡的合并,可以減少大規模網絡中因節點頻繁離開和重新加入網絡所引起的潛在地址重新配置開銷,提高對網絡動態變化的適用性。
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他附圖。圖I為本發明實施例提供的一種網絡拓撲圖的示意圖;圖2為本發明實施例一提供的一種網絡地址配置的方法的流程圖;圖3為本發明實施例二提供的一種網絡合并的方法的流程圖。
具體實施例方式下面結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明的保護范圍。圖I為一種網絡拓撲圖的示意圖,該圖中的R節點為根節點,其他節點均為傳感器節點。傳感器節點用于將采集到的數據匯集到根節點處,且初始能源值相同,具有相同的通信半徑。具體的節點A、B、C、D、E、F、G、H與I為普通傳感器節點,具有數據采集和路由器的功能;節點R為根節點,負責匯聚信息并管理網絡。節點A、B互為兄弟節點(具有相同的父節點則稱為兄弟節點),R為其父節點;節點C、D互為兄弟節點,A為其父節點;節點F、G、I互為兄弟節點,C為其父節點;節點B為E的父節點,節點D為H的父節點。本發明采用先組網后進行地址分配的方式,地址配置是從根節點開始自上而下進行的,子節點一般以其父節點的地址作為前綴,再隨機生成k比特地址連接在父節點地址之后作為自身地址,其中,k值(k為大于O的自然數)為預先設定的全網統一值,以2k大于一個節點可承受的最大子節點數為宜。示例性的,使用4比特起始地址,此后逐次增加4比特地址空間。若將根節點R地址配置為1(4比特地址0001 ),則按照本發明提出的地址配置方法,可能出現以下情況節點A地址為I. I (8比特地址00010001 ),節點B地址為I. 2(8比特地址:00010010),節點C、D、E地址分別為I. I. I、I. I. 2,1. 2. 1,節點F、G、H地址分別為 I. I. I. 1,1. I. I. 2,1. I. 2. 1,諸如此類。實施例一本實施例主要介紹一種網絡地址配置的方法,該方法中當父節點的本地地址空間已用盡時可以通過借用地址策略為子節點進行地址的分配,解決了因節點密度分布不均所引起的地址空間不足問題,提高節點的接入成功率。本實施例結合圖I與圖2進行介紹,主要包括如下步驟步驟201、父節點接收到其子節點發送的地址請求消息后,判斷本地是否有剩余地址可供分配;若是,則轉入步驟202 ;否則,轉入步驟203。如圖I所示,例如,節點I加入網絡時,若無法自動獲取地址,則向其父節點C發送地址請求包。父節點C在收到其子節點I發來的地址請求后首先判斷自身是否有剩余的地址可供分配。若有剩余地址,則轉入步驟202 ;否則,轉入步驟203。步驟202、從本地的地址空間中為該子節點分配地址。若父節點C中有剩余地址,則從本地的地址空間中為該子節點分配地址。具體的父節點C向其子節點I回復包含有自身地址(I. I. I)的地址應答消息;子節點I在收到父節點的地址信息后,以父節點地址為前綴,再隨機生成k(例如k為4)比特地址,例如0011,連接在父節點地址之后形成節點自身地址(例如,I. I. I. 3)。步驟203、向債權節點借用地址分配給所述子節點。若父節點C中的地址空間已用盡,則向債權節點借用地址。債權地址可以為父節點C的兄弟節點(例如節點D),若父節點沒有兄弟節點時,也可以向其上級節點借用地址(例如節點A)。 另外,若父節點具有多個兄弟節點時,則可以向所有兄弟節點同時發送借用地址消息。接收到該借用地址消息的兄弟節點,判斷本地地址空間是否有剩余地址。若有,則返回帶有自身地址的借用地址應答消息。父節點偵聽一段時間后,選擇最優兄弟節點作為債權節點。選擇的依據可以是兄弟節點中最先反饋消息、剩余地址最多或信號強度最大的節點。本示例以節點D為債權節點,則父節點C將債權節點D返回的帶有節點D自身地址的借用地址應答消息轉發至子節點I,子節點I在收到父節點C轉發的消息后,以債權節點D地址(I. I. 2)為前綴,再隨機生成k比特地址,連接在債權節點D的地址之后形成節點自身地址(例如,I. I. 2. 2)。步驟204、對子節點的地址進行沖突檢測。子節點I根據步驟202或步驟203的方式形成自身地址后,將該地址信息發送至父節點C。 若子節點I的地址是由父節點C直接分配,則由父節點C進行地址的沖突檢測。當父節點C檢測到該地址沒有分配給其他子節點時,直接回復允許消息至子節點I ;當該地址已經分配給其他子節點時,則回復拒絕消息,并要求子節點I對地址進行修改(例如重新生成k比特地址置于節點C的地址之后)。若子節點I的地址是由父節點C從債權節點D中借用地址進行的分配,則父節點C將子節點I的地址信息轉發至債權節點D,由債權節點D進行地址的沖突檢測。當債權節點D檢測到該地址沒有分配給其他子節點時,直接回復允許消息至子節點I,并將該地址及父節點C的地址寫入本地的被借地址維護表中;當該地址已經分配給其他子節點時,則回復拒絕消息,并要求子節點I對地址進行修改(例如重新生成k比特地址置于節點D的地址之后)。本發明實施例通過借用地址策略為子節點進行地址分配,有效解決因節點密度分布不均所引起的地址空間不足問題,提高節點的接入成功率,并且節點采用分布式地址配置方式,將網絡層地址分配和路由協議相結合地址的形式能夠較好的體現路由關系,為節省路由開銷提供便利。實施例二本實施例主要介紹一種網絡合并的方法,當網絡分裂時,可以基于本方法在不重新配置子節點地址的情況下實現網絡合并。如在實施例一的基礎上對網絡中的各個節點進行地址分配后,若某一節點死亡或離開網絡,則該節點的子節點則分裂為孤立節點,此時,該孤立節點可以保留其原始地址重新加入網絡,減少了大規模網絡中因節點頻繁離開和重新加入網絡所引起的潛在地址重新配置的開銷,提高對網絡動態變化的適用性。本實施例結合圖I與圖3進行介紹,主要包括如下步驟步驟301、子節點向其新任父節點發送地址通告消息,其新任父節點收到該通告消息后,檢測子節點的地址信息是否在本地地址空間內;若是,則轉入步驟302 ;否則,轉入步驟 303。當父節點死亡或離開網絡后,其子節點則分裂為孤立節點,具體的當父節點死亡或離開網絡時,該子節點與其父節點失去連接;若所述子節點向其父節點發送η (η為大于O的自然數)次詢問消息均未收到確認信息,則確定所述子節點分裂為孤立節點,所述η為大于O的自然數。如圖I中的節點D死亡或離開網絡后,其子節點H則分裂為孤立節點。
此時,該子節點需要重新選擇新任父節點來加入網絡。優選的,從實施例一的地址分配方式可以確定該子節點以其原父節點或債權節點的地址作為自身地址的前綴。因此,為使節點地址盡可能多的反映路由關系,用以減少路由開銷,可以使用該子節點的前綴為選擇新任父節點的匹配條件,以優先選擇其原父節點的兄弟節點和上級節點作為新任父節點。該子節點按照上述方法選擇新任父節點后,向其新任父節點發送地址通告消息,其新任父節點收到該通告消息后,檢測子節點的地址信息是否在本地地址空間內。若是,則轉入步驟302 ;否則,轉入步驟303。例如,子節點H根據自身地址的前綴選擇其原父節點D的兄弟節點C作為新任父節點,則向節點C發送地址通告消息,該消息中攜帶其自身地址I. I. 2. I。
步驟302、回復確認消息。該子節點的地址由其原父節點從新任父節點中借用地址所分配,因此,當該子節點合并于新任父節點后,其地址處于新任父節點之中,該新任父節點直接回復確認消息。另外,該子節點的新任父節點也可以為其原父節點,例如,若原父節點排除某些故障后又重新恢復通信(加入網絡),則當該子節點以其自身地址的前綴進行新任父節點的匹配條件時,也可直接選擇其原父節點作為新任父節點。步驟303、判斷該子節點地址的前綴是否與其原父節點的地址匹配。新任父節點向所述原父節點的上級節點發送包含所述子節點地址信息的借用地址消息。原父節點的上級節點收到該消息后,判斷子節點的地址由其原父節點直接分配還是從該原父節點的兄弟節點或從該上級節點借用地址所分配。若該子節點地址的前綴與其原父節點的地址匹配;則轉入步驟304 ;否則,轉入步驟305。步驟304、確定該子節點的地址由其原父節點直接分配。此時,所述原父節點的上級節點查看所述原父節點的地址是否已經分配給新的節點使用(原父節點死亡或離開網絡后其上級節點將地址回收,該地址可以重新分配給該父節點的兄弟節點繼續使用);若已分配給新的節點(一般為該父節點的兄弟節點),則將該借用地址消息轉發至新分配的節點,由該節點將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中;否則,等待所述原父節點的地址被分配后再轉發該消息。步驟305、確定該子節點的地址由其原父節點向債權節點借用地址所分配。當該子節點的地址由其原父節點向債權節點(兄弟節點或其上級節點)借用地址所分配時。該原父節點的上級節點判斷自身是否為該子節點的債權節點,若是,則將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中;否則,確定債權節點為其原父節點的兄弟節點。該原父節點的上級節點可以通過該子節點的地址前綴為依據也可以查看節點的被借地址維護表來確定債權節點。當確定債權節點后,則查看該債權節點是否死亡或脫離網絡。若該債權節點已死亡或脫離網絡,則查看該債權節點的地址是否已經分配給新的節點使用(一般為債權節點的兄弟節點);若已分配,則將該借用地址消息轉發至新分配的節點,由該節點將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中;否則,等待所述債權節點的地址被分配后再轉發該消息;
若該債權節點在網絡中正常工作,則將該消息轉發至該債權節點,由債權節點將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中。本發明實施例中當網絡分裂時,可在不重新配置子節點地址的情況下實現網絡合并,減少了大規模網絡中因節點頻繁離開和重新加入網絡所引起的潛在地址重新配置的開銷,提高對網絡動態變化的適用性。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例可以通過軟件實現,也可以借助軟件加必要的通用硬件平臺的方式來實現。基于這樣的理解,上述實施例的技術方案可以以軟件產品的形式體現出來,該軟件產品可以存儲在一個非易失性存儲介質(可以是⑶-R0M,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明披露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求書的保護范圍為準。
權利要求
1.一種網絡地址配置的方法,其特征在于,該方法包括 父節點接收到其子節點發送的地址請求消息后,判斷本地是否有剩余地址可供分配; 若有,則從本地的地址空間中為該子節點分配地址;否則,所述父節點向債權節點借用地址分配給所述子節點,其中,所述債權節點為所述父節點的上級節點或與所述父節點具有相同上級節點的兄弟節點。
2.根據權利要求I所述的方法,其特征在于,所述父節點向債權節點借用地址分配給所述子節點的步驟包括 所述父節點向債權節點發送借用地址消息,并將債權節點反饋的借用地址應答消息轉發至所述子節點; 所述子節點將該借用地址應答消息中攜帶的所述債權節點的地址作為前綴,并生成k比特地址置于所述債權節點地址之后作為自身地址,所述k為大于O的自然數。
3.根據權利要求2所述的方法,其特征在于,該方法還包括 當所述父節點有多個兄弟節點時,則將兄弟節點中最先反饋消息、剩余地址最多或信號強度最大的節點作為債權節點; 或,所述父節點無兄弟節點時,將其上級節點作為債權節點。
4.根據權利要求1-3任一項所述的方法,其特征在于,該方法還包括 所述父節點將所述子節點生成的地址信息發送至債權節點; 該債權節點對子節點的地址進行沖突檢測; 若地址沖突,則發送拒絕消息,并要求子節點進行地址修改;否則,發送允許消息,并將該地址及其父節點的地址寫入本地的被借地址維護表中。
5.—種網絡合并的方法,其特征在于,該方法包括根據權利要求1-4任一項所述的方法配置地址; 當子節點分裂為孤立節點時,則該子節點以自身地址的前綴作為網絡合并時選擇新任父節點的匹配條件,優先選擇其原父節點的兄弟節點和上級節點作為新任父節點。
6.根據權利要求5所述的方法,其特征在于,該方法還包括 新任父節點根據所述子節點發送的帶有自身地址信息的地址通告消息,檢測子節點的地址是否在本地地址空間內; 若是,則回復確認消息;否則,向所述原父節點的上級節點發送包含所述子節點地址信息的借用地址消息。
7.根據權利要求6所述的方法,其特征在于,該方法還包括 所述原父節點的上級節點收到所述借用地址消息后,判斷所述子節點的地址的前綴是否與其原父節點的地址匹配; 若是,則確定該子節點的地址由其原父節點直接分配;否則,確定該子節點的地址由其原父節點向債權節點借用地址所分配。
8.根據權利要求7所述的方法,其特征在于,該方法還包括 當該子節點的地址由其原父節點直接分配時,所述原父節點的上級節點查看所述原父節點的地址是否已經分配給所述原父節點的兄弟節點使用;若是,則將所述借用地址消息轉發至新分配的所述原父節點的兄弟節點,由該節點將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中;否則,等待所述原父節點的地址被分配后再轉發該消息;當該子節點的地址由其原父節點向債權節點借用地址所分配時,則所述原父節點的上級節點判斷自身是否為該子節點的債權節點,若是,則將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中;否則,確定債權節點為其原父節點的兄弟節點。
9.根據權利要求8所述的方法,其特征在于,所述確定債權節點為其原父節點的兄弟節點后還包括 所述原父節點的上級節點根據所述子節點的地址從該原父節點的兄弟節點中確定債權節點,并查看所述債權節點是否死亡或脫離網絡; 若該債權節點已死亡或脫離網絡,則查看該債權節點的地址是否已經分配給所述債權節點的兄弟節點使用;若已分配,則將所述借用地址消息轉發至新分配的所述債權節點的兄弟節點,由該節點將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中;否則,等待所述債權節點的地址被分配后再轉發該消息; 否則,將該消息轉發至所述債權節點,由債權節點將被借用的地址及新任父節點的地址寫入本地的被借地址維護表中。
10.根據權利要求5-9任一項所述的方法,其特征在于,該方法還包括 若所述子節點向其父節點發送η次詢問消息均未收到確認信息,則確定所述子節點分裂為孤立節點,所述η為大于O的自然數。
全文摘要
本發明公開了一種網絡地址配置及網絡合并的方法,其中網絡地址配置的方法包括父節點根據接收到的其子節點發送的地址請求消息,判斷本地是否有剩余地址可供分配;若有,則從本地的地址空間中為該子節點分配地址;否則,所述父節點向債權節點借用地址分配給所述子節點,其中,所述債權節點為所述父節點的上級節點或與所述父節點具有相同上級節點的兄弟節點。通過采用本發明公開的方法解決因節點密度分布不均所引起的地址空間不足問題,提高節點的接入成功率。
文檔編號H04L29/12GK102984296SQ201210524479
公開日2013年3月20日 申請日期2012年12月7日 優先權日2012年12月7日
發明者高德云, 張宏科, 朱婉婷, 趙偉程, 張琳娟 申請人:北京交通大學