一種低功耗有損網絡的路由構建方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種低功耗有損網絡的路由構建方法及系統(tǒng),所述方法包括:確定非根節(jié)點能夠存儲路由表項的最大值N;建立網絡的上行路由,并將N置于建立上行路由的數(shù)據(jù)包中;各節(jié)點分別確定存儲節(jié)點,保證各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,再基于鏈路信息建立網絡的下行路由;各節(jié)點處理其接收到的數(shù)據(jù)包;根節(jié)點匯總自身存儲的路由信息和鏈路信息,并生成從根節(jié)點到網絡中任意節(jié)點的源路由。本發(fā)明通過限制非根節(jié)點存儲的路由項數(shù)低于N以及改變構建網絡的過程,解決了當網絡規(guī)模較大時,RPL存儲模式中某些節(jié)點不能提供足夠大的存儲資源及RPL非存儲模式中根節(jié)點到網絡較深節(jié)點的源路由的長度過長的問題。
【專利說明】一種低功耗有損網絡的路由構建方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及無線傳感器網絡路由【技術領域】,特別是一種低功耗有損網絡的路由構建方法及系統(tǒng)。
【背景技術】
[0002]無線傳感器網絡由大量低成本的微型傳感器節(jié)點構成,協(xié)作地實現(xiàn)對所處環(huán)境的感知、收集、處理和控制,廣泛地應用于國防軍事、工業(yè)控制、城市交通、健康護理、環(huán)境監(jiān)測、樓宇監(jiān)控等諸多領域。
[0003]無線傳感器節(jié)點在計算、存儲和通信等方面的能力都十分有限,往往傳感器節(jié)點要兼顧運行程序、安全機制、存儲等多方面,所以本來有限的計算和存儲資源就十分有限。由于這些原因,現(xiàn)存的路由協(xié)議如AODV、OLSR或者OSPF都不能滿足無線傳感器網絡的要求,所以ffiTF ROLL工作組提出了 RPL (Routing Protocol for LLN,低功耗有損網絡路由協(xié)議)路由算法。
[0004]RPL路由算法下行路由的建立過程中有兩種模式,一種稱為非存儲模式,另一種稱為存儲模式。如果網絡運行在非存儲模式,非根節(jié)點不存儲網絡的路由信息,所有數(shù)據(jù)包必須先上行至根節(jié)點獲得源路由,然后根據(jù)源路由下行至目的節(jié)點,這就導致了根節(jié)點附近的流量較大,所以根節(jié)點附近節(jié)點的能量消耗和計算負擔比網絡中其他節(jié)點大;而且,下行數(shù)據(jù)包需要根節(jié)點計算其到目的地的源路由,并將該源路由放入下行數(shù)據(jù)包的包頭,所以當網絡規(guī)模不斷增大時,網絡的通信開銷也會隨之增大。當網絡運行在存儲模式時,每一個節(jié)點都需要存儲其子孫節(jié)點的路由信息,所以當網絡規(guī)模很大時需要節(jié)點提供很大的存儲資源存儲路由信息,特別是根節(jié)點附近的節(jié)點,這就使得可能一些節(jié)點不能提供如此多的存儲資源,從而成為網絡的瓶頸。
[0005]針對上述問題,本發(fā)明提出了一種低功耗有損網絡的路由構建方法及路由構建系統(tǒng)。
【發(fā)明內容】
[0006]本發(fā)明所要解決的技術問題是提供一種低功耗有損網絡的路由構建方法及系統(tǒng),用于解決現(xiàn)有RPL路由算法存在的局限性問題。
[0007]本發(fā)明解決上述技術問題的技術方案如下:一種低功耗有損網絡的路由構建方法,包括:
[0008]步驟1,根據(jù)網絡中各節(jié)點的存儲資源、運行的程序和運行期間要存儲的數(shù)據(jù)確定非根節(jié)點能夠存儲路由表項的最大值N;
[0009]步驟2,建立網絡的上行路由,并將N置于用于建立上行路由的數(shù)據(jù)包中;
[0010]步驟3,各節(jié)點按其需要存儲的路由表項大于N和等于N分別確定存儲節(jié)點,通過設置存儲節(jié)點使各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由;[0011]步驟4,基于步驟2和步驟3建立的上、下行路由,各節(jié)點通過事先設定的方式處理其接收到的數(shù)據(jù)包;
[0012]步驟5,經步驟4完成路由建立后,根節(jié)點匯總自身存儲的路由信息和鏈路信息,并基于該路由信息和鏈路信息生成從根節(jié)點到網絡中任意節(jié)點的源路由。
[0013]在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
[0014]進一步,所述步驟3中若節(jié)點需要存儲的路由表項大于N,則所述步驟3包括:
[0015]步驟3A1,該節(jié)點發(fā)送消息通知其具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點;
[0016]步驟3A2,該節(jié)點將被選中的非葉子節(jié)點作為存儲節(jié)點,并刪除路由表中下一跳是該選中的非葉子節(jié)點的路由表項;
[0017]步驟3A3,存儲節(jié)點將其與對應節(jié)點的鏈路信息發(fā)送給根節(jié)點,再向其父節(jié)點發(fā)送只包含存儲節(jié)點自身信息的目標廣播對象消息;
[0018]步驟3A4,若該節(jié)點存儲的路由表項還是大于N,則重復步驟3A1至3A3至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
[0019]進一步,若所述步驟3A1中具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點數(shù)量不唯一,則選擇其中節(jié)點號為最小的節(jié)點。
[0020]進一步,若該節(jié)點所有的非葉子節(jié)點全部成為存儲節(jié)點或者該節(jié)點沒有非葉子節(jié)點,則執(zhí)行如下步驟:
[0021]步驟3B1,該節(jié)點則向其中一個還未被置為存儲節(jié)點的葉子節(jié)點發(fā)送消息;
[0022]步驟3B2,刪除路由表中目的地址為該葉子節(jié)點的路由表項;
[0023]步驟3B3,該選中的葉子節(jié)點收到消息后成為存儲節(jié)點并且將其與該節(jié)點的鏈路信息發(fā)送給根節(jié)點;
[0024]步驟3B4,若該節(jié)點存儲的路由表項仍大于N,則重復步驟3B1至步驟3B3直至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
[0025]進一步,若該節(jié)點的所有葉子節(jié)點都成為了存儲節(jié)點,但是該節(jié)點存儲的路由表項仍大于N,則執(zhí)行以下步驟:
[0026]步驟3C1,該節(jié)點選擇步驟3A2中成為存儲節(jié)點的非葉子節(jié)點;
[0027]步驟3C2,該節(jié)點刪除其路由表中目的地址為選擇的非葉子節(jié)點的路由表項;
[0028]步驟3C3,將該節(jié)點與選擇的非葉子節(jié)點的鏈路信息發(fā)送給根節(jié)點;
[0029]步驟3C4,重復步驟3C1至步驟3C3,直至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
[0030]進一步,所述步驟3中,若節(jié)點需要存儲的路由表項等于N,則將該節(jié)點定為存儲節(jié)點。
[0031]進一步,所述步驟4具體包括:
[0032]步驟41,當節(jié)點接收到含有源路由的數(shù)據(jù)包時,如果該源路由的第一個目的地址在該節(jié)點的路由表中,則將該數(shù)據(jù)包轉發(fā)到下一跳,否則丟棄該數(shù)據(jù)包;
[0033]步驟42,當節(jié)點接收到含有源路由的數(shù)據(jù)包,且該源路由中第一個目的地址是該節(jié)點自身時,該節(jié)點從源路由中刪除其自身,同時如果源路由中下一個目的地址在該節(jié)點的路由表中時,按照路由表信息轉發(fā)該數(shù)據(jù)包到下一跳,否則丟棄該數(shù)據(jù)包;[0034]步驟43,當節(jié)點從其父節(jié)點接收到不含源路由的數(shù)據(jù)包時,若該數(shù)據(jù)包的目的地址在該節(jié)點的路由表中,則按照路由表轉發(fā)該數(shù)據(jù)包,否則丟棄該數(shù)據(jù)包;
[0035]步驟44,當節(jié)點從其子節(jié)點接收到不含源路由的數(shù)據(jù)包時,若該數(shù)據(jù)包的目的地址在該節(jié)點的路由表中,則按照路由表轉發(fā)該數(shù)據(jù)包,否則將該數(shù)據(jù)包沿上行路由發(fā)送至根節(jié)點。
[0036]基于上述低功耗有損網絡的路由構建方法,本發(fā)明的技術方案還包括一種低功耗有損網絡的路由構建系統(tǒng),其包括:
[0037]系數(shù)確定模塊,其用于根據(jù)網絡中各節(jié)點的存儲資源、運行的程序和運行期間要存儲的數(shù)據(jù)確定非根節(jié)點能夠存儲路由表項的最大值N;
[0038]上行路由建立模塊,其用于建立網絡的上行路由,并將N置于用于建立上行路由的數(shù)據(jù)包中;
[0039]下行路由建立模塊,其用于使各節(jié)點按其需要存儲的路由表項大于N和等于N分別確定存儲節(jié)點,通過設置存儲節(jié)點使各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由;
[0040]數(shù)據(jù)包處理模塊,基于建立的上、下行路由,各節(jié)點通過事先設定的方式處理其接收到的數(shù)據(jù)包;
[0041]源路由生成模塊,其用于在經數(shù)據(jù)包處理模塊完成路由建立后,根節(jié)點匯總自身存儲的路由信息和鏈路信息,并基于該路由信息和鏈路信息生成從根節(jié)點到網絡中任意節(jié)點的源路由。
[0042]進一步,若節(jié)點需要存儲的路由表項大于N,則下行路由建立模塊包括:
[0043]通知消息發(fā)送模塊,其用于使該節(jié)點發(fā)送消息通知其具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點;
[0044]存儲節(jié)點確定模塊,其用于將被選中的非葉子節(jié)點作為存儲節(jié)點,并刪除路由表中下一跳是該選中的非葉子節(jié)點的路由表項;
[0045]鏈路信息發(fā)送模塊,其用于使存儲節(jié)點將其與對應節(jié)點的鏈路信息發(fā)送給根節(jié)點,再向其父節(jié)點發(fā)送只包含存儲節(jié)點自身信息的目標廣播對象消息;
[0046]路由確定模塊,其用于在該節(jié)點存儲的路由表項還是大于N時,則重復調用通知消息發(fā)送模塊、存儲節(jié)點確定模塊和鏈路信息發(fā)送模塊至該節(jié)點存儲的路由表項小于N,再使根節(jié)點基于接收的鏈路信息建立網絡的下行路由。
[0047]進一步,若節(jié)點需要存儲的路由表項等于N,所述下行路由建立模塊將該節(jié)點定為存儲節(jié)點。
[0048]一種低功耗有損網絡的路由構建系統(tǒng)的各模塊涉及的具體實現(xiàn)方案與上述的路由構建方法相同。
[0049]本發(fā)明的有益效果是:本發(fā)明針對現(xiàn)有RPL路由算法中存在的問題,提出了系數(shù)N,即非根節(jié)點能夠存儲的最大路由項的個數(shù),當節(jié)點存儲N項路由項時,節(jié)點仍有足夠的存儲資源用于運行節(jié)點程序和存儲運行過程中產生的數(shù)據(jù)。通過限制非根節(jié)點存儲的路由項數(shù)低于N以及改變構建網絡的過程,本發(fā)明充分利用了節(jié)點提供的存儲資源,有效解決了當網絡規(guī)模較大時,RPL存儲模式中某些節(jié)點不能提供足夠大的存儲資源的問題,同時也有效解決了當網絡規(guī)模較大時,RPL非存儲模式中根節(jié)點到網絡較深節(jié)點的源路由的長度 過長的問題,減少了通信負擔。
【專利附圖】
【附圖說明】
[0050]圖1為本發(fā)明所述低功耗有損網絡的路由構建方法的流程示意圖;
[0051]圖2為本發(fā)明所述低功耗有損網絡的路由構建系統(tǒng)的結構示意圖;
[0052]圖3為本發(fā)明所述下行路由建立模塊的結構示意圖;
[0053]圖4為本發(fā)明實施例中12節(jié)點傳感器網絡的連接示意圖;
[0054]圖5為本發(fā)明實施例中根節(jié)點生成源路由的方法示意圖;
[0055]圖6為本發(fā)明實施例中100節(jié)點傳感器網絡的連接示意圖。
[0056]附圖中,各標號所代表的部件列表如下:
[0057]1、系數(shù)確定模塊,2、上行路由建立模塊,3、下行路由建立模塊,4、數(shù)據(jù)包處理模塊,5、源路由生成模塊,31、通知消息發(fā)送模塊,32、存儲節(jié)點確定模塊,33、鏈路信息發(fā)送模塊,34、路由確定模塊。
【具體實施方式】
[0058]以下結合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0059]如圖1所示,本實施例給出了一種低功耗有損網絡的路由構建方法,包括:
[0060]步驟1,根據(jù)網絡中各節(jié)點的存儲資源、運行的程序和運行期間要存儲的數(shù)據(jù)確定非根節(jié)點能夠存儲路由表項的最大值N;
[0061]步驟2,建立網絡的上行路由,并將N置于用于建立上行路由的數(shù)據(jù)包中;
[0062]步驟3,各節(jié)點按其需要存儲的路由表項大于N和等于N分別確定存儲節(jié)點,通過設置存儲節(jié)點使各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由;
[0063]步驟4,基于步驟2和步驟3建立的上、下行路由,各節(jié)點通過事先設定的方式處理其接收到的數(shù)據(jù)包;
[0064]步驟5,經步驟4完成路由建立后,根節(jié)點匯總自身存儲的路由信息和鏈路信息,并基于該路由信息和鏈路信息生成從根節(jié)點到網絡中任意節(jié)點的源路由。
[0065]本實施例中,所述步驟2采用現(xiàn)有的RPL算法建立網絡的上行路由,所述步驟3則基于現(xiàn)有RPL路由協(xié)議中的存儲模式進行了相應的改進,其主要是通過以下幾點實現(xiàn)的。
[0066]一、若節(jié)點需要存儲的路由表項大于N,則所述步驟3包括:
[0067]步驟3A1,該節(jié)點發(fā)送消息通知其具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點;
[0068]步驟3A2,該節(jié)點將被選中的非葉子節(jié)點作為存儲節(jié)點,并刪除路由表中下一跳是該選中的非葉子節(jié)點的路由表項;
[0069]步驟3A3,存儲節(jié)點將其與對應節(jié)點的鏈路信息發(fā)送給根節(jié)點,再向其父節(jié)點發(fā)送只包含存儲節(jié)點自身信息的目標廣播對象消息;
[0070]步驟3A4,若該節(jié)點存儲的路由表項還是大于N,則重復步驟3A1至3A3至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。[0071]需說明的是,若所述步驟3A1中具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點數(shù)量不唯一,則選擇其中節(jié)點號為最小的節(jié)點。
[0072]二、針對第一部分,若該節(jié)點所有的非葉子節(jié)點全部成為存儲節(jié)點或者該節(jié)點沒有非葉子節(jié)點,則執(zhí)行如下步驟:
[0073]步驟3B1,該節(jié)點則向其中一個還未被置為存儲節(jié)點的葉子節(jié)點發(fā)送消息;
[0074]步驟3B2,刪除路由表中目的地址為該葉子節(jié)點的路由表項;
[0075]步驟3B3,該選中的葉子節(jié)點收到消息后成為存儲節(jié)點并且將其與該節(jié)點的鏈路信息發(fā)送給根節(jié)點;
[0076]步驟3B4,若該節(jié)點存儲的路由表項仍大于N,則重復步驟3B1至步驟3B3直至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
[0077]三、針對第一部分和第二部分,若該節(jié)點的所有葉子節(jié)點都成為了存儲節(jié)點,但該節(jié)點存儲的路由表項仍大于N,則執(zhí)行以下步驟:
[0078]步驟3C1,該節(jié)點選擇步驟3A2中成為存儲節(jié)點的非葉子節(jié)點;
[0079]步驟3C2,該節(jié)點刪除其路由表中目的地址為選擇的非葉子節(jié)點的路由表項;
[0080]步驟3C3,將該節(jié)點與選擇的非葉子節(jié)點的鏈路信息發(fā)送給根節(jié)點;
[0081]步驟3C4,重復步驟3C1至步驟3C3,直至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
[0082]四、若節(jié)點需要存儲的路由表項等于N,則將該節(jié)點定為存儲節(jié)點,并將該節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由。
[0083]五、若節(jié)點需要存儲的路由表項小于N,且該節(jié)點未被設置為存儲節(jié)點,則根節(jié)點基于該節(jié)點的鏈路信息采用現(xiàn)有技術常用的RPL路由協(xié)議中的存儲模式建立網絡的下行路由,并由該節(jié)點直接廣播包括其存儲的路由信息的目標廣播消息。
[0084]經步驟2和步驟3構建上、下行路由后,所述步驟4具體采用以下步驟處理接收的數(shù)據(jù)包:
[0085]步驟41,當節(jié)點接收到含有源路由的數(shù)據(jù)包時,如果該源路由的第一個目的地址在該節(jié)點的路由表中,則將該數(shù)據(jù)包轉發(fā)到下一跳,否則丟棄該數(shù)據(jù)包;
[0086]步驟42,當節(jié)點接收到含有源路由的數(shù)據(jù)包,且該源路由中第一個目的地址是該節(jié)點自身時,該節(jié)點從源路由中刪除其自身,同時如果源路由中下一個目的地址在該節(jié)點的路由表中時,按照路由表信息轉發(fā)該數(shù)據(jù)包到下一跳,否則丟棄該數(shù)據(jù)包;
[0087]步驟43,當節(jié)點從其父節(jié)點接收到不含源路由的數(shù)據(jù)包時,若該數(shù)據(jù)包的目的地址在該節(jié)點的路由表中,則按照路由表轉發(fā)該數(shù)據(jù)包,否則丟棄該數(shù)據(jù)包;
[0088]步驟44,當節(jié)點從其子節(jié)點接收到不含源路由的數(shù)據(jù)包時,若該數(shù)據(jù)包的目的地址在該節(jié)點的路由表中,則按照路由表轉發(fā)該數(shù)據(jù)包,否則將該數(shù)據(jù)包沿上行路由發(fā)送至根節(jié)點。
[0089]如圖2所示,基于上述低功耗有損網絡的路由構建方法,本實施例對應提出了一種低功耗有損網絡的路由構建系統(tǒng),其包括:
[0090]系數(shù)確定模塊1,其用于根據(jù)網絡中各節(jié)點的存儲資源、運行的程序和運行期間要存儲的數(shù)據(jù)確定非根節(jié)點能夠存儲路由表項的最大值N;
[0091]上行路由建立模塊2,其用于建立網絡的上行路由,并將N置于用于建立上行路由的數(shù)據(jù)包中;
[0092]下行路由建立模塊3,其用于使各節(jié)點按其需要存儲的路由表項大于N和等于N分別確定存儲節(jié)點,通過設置存儲節(jié)點使各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由;
[0093]數(shù)據(jù)包處理模塊4,基于建立的上、下行路由,各節(jié)點通過事先設定的方式處理其接收到的數(shù)據(jù)包;
[0094]源路由生成模塊5,其用于在經數(shù)據(jù)包處理模塊4完成路由建立后,根節(jié)點匯總自身存儲的路由信息和鏈路信息,并基于該路由信息和鏈路信息生成從根節(jié)點到網絡中任意節(jié)點的源路由。
[0095]如圖3所示,在節(jié)點需要存儲的路由表項大于N時,下行路由建立模塊包括:
[0096]通知消息發(fā)送模塊31,其用于使該節(jié)點發(fā)送消息通知其具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點;
[0097]存儲節(jié)點確定模塊32,其用于將被選中的非葉子節(jié)點作為存儲節(jié)點,并刪除路由表中下一跳是該選中的非葉子節(jié)點的路由表項;
[0098]鏈路信息發(fā)送模塊33,其用于使存儲節(jié)點將其與對應節(jié)點的鏈路信息發(fā)送給根節(jié)點,再向其父節(jié)點發(fā)送只包含存儲節(jié)點自身信息的目標廣播對象消息;
[0099]路由確定模塊34,其用于在該節(jié)點存儲的路由表項還是大于N時,則重復調用通知消息發(fā)送模塊31、存儲節(jié)點確定模塊32和鏈路信息發(fā)送模塊33至該節(jié)點存儲的路由表項小于N,再使根節(jié)點基于接收的鏈路信息建立網絡的下行路由。
[0100]本實施例所述的路由構建系統(tǒng)的各模塊涉及的具體實施方案方案與上述的路由構建方法相同,這里不再多述。
[0101]基于上述實施例,可設計一個12個節(jié)點的小型網絡模擬運行實施例中的方法,用以詳細的介紹本實施例所述的路由構建方法的建立路由過程以及節(jié)點處理數(shù)據(jù)包的規(guī)則。
[0102]首先,使用運行tinyos的telosb傳感器節(jié)點建立了一個具有12個節(jié)點的小型傳感器網絡,用于模擬運行本實施例的路由構建方法。根節(jié)點確定系數(shù)N為3,然后按照步驟1,2建立上行路由,網絡的連接如圖4所示,然后根據(jù)上行路由,按照步驟3建立網絡的下行路由,各節(jié)點存儲的路由表如表I所不。
[0103]表I
[0104]
【權利要求】
1.一種低功耗有損網絡的路由構建方法,其特征在于,包括: 步驟1,根據(jù)網絡中各節(jié)點的存儲資源、運行的程序和運行期間要存儲的數(shù)據(jù)確定非根節(jié)點能夠存儲路由表項的最大值N; 步驟2,建立網絡的上行路由,并將N置于用于建立上行路由的數(shù)據(jù)包中; 步驟3,各節(jié)點按其需要存儲的路由表項大于N和等于N分別確定存儲節(jié)點,通過設置存儲節(jié)點使各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由; 步驟4,基于步驟2和步驟3建立的上、下行路由,各節(jié)點通過事先設定的方式處理其接收到的數(shù)據(jù)包; 步驟5,經步驟4完成路由建立后,根節(jié)點匯總自身存儲的路由信息和鏈路信息,并基于該路由信息和鏈路信息生成從根節(jié)點到網絡中任意節(jié)點的源路由。
2.根據(jù)權利要求1所述的路由構建方法,其特征在于,所述步驟3中若節(jié)點需要存儲的路由表項大于N,則所述步驟3包括: 步驟3A1,該節(jié)點發(fā)送消息通知其具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點; 步驟3A2,該節(jié)點將被選中的非葉子節(jié)點作為存儲節(jié)點,并刪除路由表中下一跳是該選中的非葉子節(jié)點的路由表項; 步驟3A3,存儲節(jié)點將其與對應節(jié)點的鏈路信息發(fā)送給根節(jié)點,再向其父節(jié)點發(fā)送只包含存儲節(jié)點自身信息的目標廣播對象消息; 步驟3A4,若該節(jié)點存儲的路由表項還是大于N,則重復步驟3A1至3A3至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
3.根據(jù)權利要求2所述的路由構建方法,其特征在于,若所述步驟3A1中具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點數(shù)量不唯一,則選擇其中節(jié)點號為最小的節(jié)點。
4.根據(jù)權利要求2所述的路由構建方法,其特征在于,若該節(jié)點所有的非葉子節(jié)點全部成為存儲節(jié)點或者該節(jié)點沒有非葉子節(jié)點,則執(zhí)行如下步驟: 步驟3B1,該節(jié)點則向其中一個還未被置為存儲節(jié)點的葉子節(jié)點發(fā)送消息; 步驟3B2,刪除路由表中目的地址為該葉子節(jié)點的路由表項; 步驟3B3,該選中的葉子節(jié)點收到消息后成為存儲節(jié)點并且將其與該節(jié)點的鏈路信息發(fā)送給根節(jié)點; 步驟3B4,若該節(jié)點存儲的路由表項仍大于N,則重復步驟3B1至步驟3B3直至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
5.根據(jù)權利要求4所述的路由構建方法,其特征在于,若該節(jié)點的所有葉子節(jié)點都成為了存儲節(jié)點,但是該節(jié)點存儲的路由表項仍大于N,則執(zhí)行以下步驟: 步驟3C1,該節(jié)點選擇步驟3A2中成為存儲節(jié)點的非葉子節(jié)點; 步驟3C2,該節(jié)點刪除其路由表中目的地址為選擇的非葉子節(jié)點的路由表項; 步驟3C3,將該節(jié)點與選擇的非葉子節(jié)點的鏈路信息發(fā)送給根節(jié)點; 步驟3C4,重復步驟3C1至步驟3C3,直至該節(jié)點存儲的路由表項小于N,根節(jié)點再基于接收的鏈路信息建立網絡的下行路由。
6.根據(jù)權利要求1所述的路由構建方法,其特征在于,所述步驟3中,若節(jié)點需要存儲的路由表項等于N,則將該節(jié)點定為存儲節(jié)點。
7.根據(jù)權利要求1所述的路由構建方法,其特征在于,所述步驟4具體包括:
步驟41,當節(jié)點接收到含有源路由的數(shù)據(jù)包時,如果該源路由的第一個目的地址在該節(jié)點的路由表中,則將該數(shù)據(jù)包轉發(fā)到下一跳,否則丟棄該數(shù)據(jù)包; 步驟42,當節(jié)點接收到含有源路由的數(shù)據(jù)包,且該源路由中第一個目的地址是該節(jié)點自身時,該節(jié)點從源路由中刪除其自身,同時如果源路由中下一個目的地址在該節(jié)點的路由表中時,按照路由表信息轉發(fā)該數(shù)據(jù)包到下一跳,否則丟棄該數(shù)據(jù)包; 步驟43,當節(jié)點從其父節(jié)點接收到不含源路由的數(shù)據(jù)包時,若該數(shù)據(jù)包的目的地址在該節(jié)點的路由表中,則按照路由表轉發(fā)該數(shù)據(jù)包,否則丟棄該數(shù)據(jù)包; 步驟44,當節(jié)點從其子節(jié)點接收到不含源路由的數(shù)據(jù)包時,若該數(shù)據(jù)包的目的地址在該節(jié)點的路由表中,則按照路由表轉發(fā)該數(shù)據(jù)包,否則將該數(shù)據(jù)包沿上行路由發(fā)送至根節(jié)點。
8.一種低功耗有損網絡的路由構建系統(tǒng),其特征在于,包括: 系數(shù)確定模塊,其用于根據(jù)網絡中各節(jié)點的存儲資源、運行的程序和運行期間要存儲的數(shù)據(jù)確定非根節(jié)點能夠存儲路由表項的最大值N; 上行路由建立模塊,其用于建立網絡的上行路由,并將N置于用于建立上行路由的數(shù)據(jù)包中; 下行路由建立模塊,其用于使各節(jié)點按其需要存儲的路由表項大于N和等于N分別確定存儲節(jié)點,通過設置存儲節(jié)點使各節(jié)點存儲的路由表項小于N,并將各節(jié)點與其存儲節(jié)點的鏈路信息發(fā)送給根節(jié)點,使根節(jié)點基于接收的鏈路信息建立網絡的下行路由; 數(shù)據(jù)包處理模塊,基于建立的上、下行路由,各節(jié)點通過事先設定的方式處理其接收到的數(shù)據(jù)包; 源路由生成模塊,其用于在經數(shù)據(jù)包處理模塊完成路由建立后,根節(jié)點匯總自身存儲的路由信息和鏈路信息,并基于該路由信息和鏈路信息生成從根節(jié)點到網絡中任意節(jié)點的源路由。
9.根據(jù)權利要求8所述的路由構建系統(tǒng),其特征在于,若節(jié)點需要存儲的路由表項大于N,則下行路由建立模塊包括: 通知消息發(fā)送模塊,其用于使該節(jié)點發(fā)送消息通知其具有最大路由表項且沒有被選為存儲節(jié)點的非葉子節(jié)點; 存儲節(jié)點確定模塊,其用于將被選中的非葉子節(jié)點作為存儲節(jié)點,并刪除路由表中下一跳是該選中的非葉子節(jié)點的路由表項; 鏈路信息發(fā)送模塊,其用于使存儲節(jié)點將其與對應節(jié)點的鏈路信息發(fā)送給根節(jié)點,再向其父節(jié)點發(fā)送只包含存儲節(jié)點自身信息的目標廣播對象消息; 路由確定模塊,其用于在該節(jié)點存儲的路由表項還是大于N時,則重復調用通知消息發(fā)送模塊、存儲節(jié)點確定模塊和鏈路信息發(fā)送模塊至該節(jié)點存儲的路由表項小于N,再使根節(jié)點基于接收的鏈路信息建立網絡的下行路由。
10.根據(jù)權利要求8所述的路由構建系統(tǒng),其特征在于,若節(jié)點需要存儲的路由表項等于N,所述下行路由建立模塊將該節(jié)點定為存儲節(jié)點。
【文檔編號】H04W84/12GK103619045SQ201310594728
【公開日】2014年3月5日 申請日期:2013年11月21日 優(yōu)先權日:2013年11月21日
【發(fā)明者】石志強, 甘偉, 孫利民, 劉燕 申請人:中國科學院信息工程研究所