網(wǎng)絡路由方法和系統(tǒng)的制作方法
【專利說明】
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡技術領域,特別是涉及一種網(wǎng)絡路由方法和系統(tǒng)。
【【背景技術】】
[0002]目前的動態(tài)路由協(xié)議進行鄰居路由交互主要通過單播確認機制,鄰居間采用組播(廣播)hello報文建立對等體后,每對鄰居對等體間通過單播方式交換拓撲路由報文,需要回執(zhí)、重發(fā)等確保鄰居收到自己的報文,實現(xiàn)本節(jié)點和鄰居節(jié)點的路由信息的同步,網(wǎng)絡穩(wěn)定后,只周期性發(fā)送組播(廣播)hello報文。
[0003]Mesh網(wǎng)絡的無線信道是廣播信道,上述單播確認機制報文采用回執(zhí)確認方式,確認包會增加路由開銷,此外在網(wǎng)絡擁塞情況下,若不能及時返回確認包,會引起大量重傳,增加信道沖突幾率,導致網(wǎng)絡癱瘓,降低了鏈路通信質(zhì)量。
【
【發(fā)明內(nèi)容】
】
[0004]基于此,有必要針對現(xiàn)有的路由協(xié)議會增加路由開銷和降低鏈路通信質(zhì)量問題,提供一種網(wǎng)絡路由方法和系統(tǒng)。
[0005]一種網(wǎng)絡路由方法,包括以下步驟:
[0006]接收網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文,其中,所述報文包括報文校驗碼和所述網(wǎng)絡節(jié)點的節(jié)點信息,所述報文校驗碼為通過預設校驗算法對所述網(wǎng)絡節(jié)點的子網(wǎng)路由和外網(wǎng)路由計算所得的校驗碼;
[0007]通過所述預設校驗算法,對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成本地校驗碼;
[0008]比較所述本地校驗碼與所述報文校驗碼是否一致;
[0009]若不一致,則在網(wǎng)絡中廣播包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息和所述網(wǎng)絡節(jié)點的節(jié)點信息的全同步請求報文,以請求所述網(wǎng)絡節(jié)點廣播包括所述網(wǎng)絡節(jié)點的路由信息的全同步報文。
[0010]一種網(wǎng)絡路由系統(tǒng),包括:
[0011]報文接收模塊,用于接收網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文,其中,所述報文包括報文校驗碼和所述網(wǎng)絡節(jié)點的節(jié)點信息,所述報文校驗碼為通過預設校驗算法對所述網(wǎng)絡節(jié)點的子網(wǎng)路由和外網(wǎng)路由計算所得的校驗碼;
[0012]校驗碼模塊,用于通過所述預設校驗算法,對本地所存儲的本地節(jié)點的外網(wǎng)路由和本地所存儲的所述網(wǎng)絡節(jié)點的子網(wǎng)路由進行校驗計算,生成本地校驗碼;
[0013]比較模塊,用于比較所述本地校驗碼與所述報文校驗碼是否一致;
[0014]同步請求模塊,用于在所述本地校驗碼與所述報文校驗碼不一致時,在網(wǎng)絡中廣播包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息和所述網(wǎng)絡節(jié)點的節(jié)點信息的全同步請求報文,以請求所述網(wǎng)絡節(jié)點廣播包括所述網(wǎng)絡節(jié)點的路由信息的全同步報文。
[0015]上述網(wǎng)絡路由方法和系統(tǒng),接收網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文,通過預設校驗算法對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成本地校驗碼;比較本地校驗碼與報文校驗碼是否一致;若不一致,在網(wǎng)絡中廣播包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息和所述網(wǎng)絡節(jié)點的節(jié)點信息的全同步請求報文,以請求所述網(wǎng)絡節(jié)點廣播包括所述網(wǎng)絡節(jié)點的路由信息的全同步報文,無需回執(zhí)可快速實現(xiàn)全網(wǎng)路由同步和達到全網(wǎng)快速路由收斂。
[0016]一種網(wǎng)絡路由方法,包括以下步驟:
[0017]若滿足預設類型報文的發(fā)送條件,則通過預設校驗算法對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成報文校驗碼;
[0018]獲取所述本地節(jié)點的節(jié)點信息和與所述預設類型報文對應的報文信息;
[0019]生成包括所述報文校驗碼、所述本地節(jié)點的節(jié)點信息和所述報文信息的報文,并在網(wǎng)絡中廣播生成的報文,以使接收節(jié)點在根據(jù)接收節(jié)點的子網(wǎng)路由和外網(wǎng)路由計算出的校驗碼與所述報文校驗碼不一致時,在網(wǎng)絡中廣播全同步請求報文。
[0020]一種網(wǎng)絡路由系統(tǒng),包括:
[0021]校驗碼生成模塊,用于在滿足預設類型報文的發(fā)送條件時,通過預設校驗算法對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成報文校驗碼;
[0022]信息獲取模塊,用于獲取所述本地節(jié)點的節(jié)點信息和與所述預設類型報文對應的報文信息;
[0023]報文發(fā)送模塊,用于生成包括所述報文校驗碼、所述本地節(jié)點的節(jié)點信息和所述報文信息的報文,并在網(wǎng)絡中廣播生成的報文,以使接收節(jié)點在根據(jù)接收節(jié)點的子網(wǎng)路由和外網(wǎng)路由計算出的校驗碼與所述報文校驗碼不一致時,在網(wǎng)絡中廣播全同步請求報文。
[0024]上述網(wǎng)絡路由方法和系統(tǒng),對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成報文校驗碼,獲取所述本地節(jié)點的節(jié)點信息和與所述預設類型報文對應的報文信息,生成包括所述報文校驗碼、所述本地節(jié)點的節(jié)點信息和所述報文信息的報文,并在網(wǎng)絡中廣播生成的報文,以使接收節(jié)點在根據(jù)接收節(jié)點的子網(wǎng)路由和外網(wǎng)路由計算出的校驗碼與所述報文校驗碼不一致時,在網(wǎng)絡中廣播全同步請求報文,無需回執(zhí)可快速實現(xiàn)全網(wǎng)路由同步和達到全網(wǎng)快速路由收斂。
【【附圖說明】】
[0025]圖1是本發(fā)明網(wǎng)絡路由方法第一實施方式的流程示意圖;
[0026]圖2是本發(fā)明網(wǎng)絡路由方法第二實施方式的流程示意圖;
[0027]圖3是本發(fā)明網(wǎng)絡路由方法第三實施方式的流程示意圖;
[0028]圖4是本發(fā)明網(wǎng)絡路由系統(tǒng)第一實施方式的結(jié)構(gòu)示意圖;
[0029]圖5是本發(fā)明網(wǎng)絡路由系統(tǒng)第二實施方式的結(jié)構(gòu)示意圖;
[0030]圖6是本發(fā)明網(wǎng)絡路由系統(tǒng)第三實施方式的結(jié)構(gòu)示意圖;
[0031]圖7是本發(fā)明網(wǎng)絡路由方法第四實施方式的流程示意圖;
[0032]圖8是本發(fā)明網(wǎng)絡路由系統(tǒng)第四實施方式的結(jié)構(gòu)示意圖。
【【具體實施方式】】
[0033]為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述。
[0034]請參閱圖1,圖1是本發(fā)明的網(wǎng)絡路由方法第一實施方式的流程示意圖。
[0035]本實施方式的所述網(wǎng)絡路由方法,可包括以下步驟:
[0036]步驟S101,接收網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文,其中,所述報文包括報文校驗碼和所述網(wǎng)絡節(jié)點的節(jié)點信息,所述報文校驗碼為通過預設校驗算法對所述網(wǎng)絡節(jié)點的子網(wǎng)路由和外網(wǎng)路由計算所得的校驗碼。
[0037]步驟S102,通過所述預設校驗算法,對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成本地校驗碼。
[0038]步驟S103,比較所述本地校驗碼與所述報文校驗碼是否一致。
[0039]步驟S104,若不一致,則在網(wǎng)絡中廣播包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息和所述網(wǎng)絡節(jié)點的節(jié)點信息的全同步請求報文,以請求所述網(wǎng)絡節(jié)點廣播包括所述網(wǎng)絡節(jié)點的路由信息的全同步報文。
[0040]本實施方式,接收網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文,通過預設校驗算法對本地所存儲的本地節(jié)點的外網(wǎng)路由和子網(wǎng)路由進行校驗計算,生成本地校驗碼;比較本地校驗碼與報文校驗碼是否一致;若不一致,在網(wǎng)絡中廣播包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息和所述網(wǎng)絡節(jié)點的節(jié)點信息的全同步請求報文,以請求所述網(wǎng)絡節(jié)點廣播包括所述網(wǎng)絡節(jié)點的路由信息的全同步報文,無需回執(zhí)可快速實現(xiàn)全網(wǎng)路由同步和達到全網(wǎng)快速路由收斂。
[0041]其中,對于步驟S101,優(yōu)選地,所述報文包括握手報文、全同步請求報文、全同步報文、子網(wǎng)更新報文和外網(wǎng)更新報文中的至少一種報文。所述網(wǎng)絡可為有線網(wǎng)絡或無線網(wǎng)絡。
[0042]優(yōu)選地,當所述網(wǎng)絡為無線網(wǎng)絡時,所述報文還可包括所述網(wǎng)絡節(jié)點的鄰居信息。所述鄰居信息包括所述網(wǎng)絡節(jié)點的鄰居的節(jié)點標識和/或所述鄰居的路由信息。
[0043]優(yōu)選地,若所述網(wǎng)絡節(jié)點沒有鄰居節(jié)點,則所述報文中所述網(wǎng)絡節(jié)點的鄰居信息為空白。所述報文校驗碼為通過預設校驗算法對所述網(wǎng)絡節(jié)點的自身信息計算所得的校驗碼。
[0044]進一步地,所述網(wǎng)絡可為Mesh網(wǎng)絡(無線網(wǎng)格網(wǎng)絡)。所述網(wǎng)絡節(jié)點為網(wǎng)絡中的任意一個節(jié)點。網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文時,可將報文發(fā)送到無線接口,通過無線接口向網(wǎng)絡中廣播。
[0045]在一個實施例中,在接收網(wǎng)絡節(jié)點在網(wǎng)絡中廣播的報文的步驟之后,還包括以下步驟:
[0046]根據(jù)所述網(wǎng)絡節(jié)點的節(jié)點信息和本地所存儲的所述本地節(jié)點的節(jié)點信息,判斷所述網(wǎng)絡節(jié)點與所述本地節(jié)點間是否為雙向通道。
[0047]若是雙向通道,則通過所述預設校驗算法對本地所存儲的所述本地節(jié)點的外網(wǎng)路由和本地所存儲的所述網(wǎng)絡節(jié)點的子網(wǎng)路由進行校驗計算,生成本地校驗碼。
[0048]若不是雙向通道,則生成用于觸發(fā)所述本地節(jié)點在網(wǎng)絡中廣播握手報文的觸發(fā)信息,其中,所述握手報文包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息以及所述本地節(jié)點的鄰居信息。
[0049]本實施例,通過判斷所述網(wǎng)絡節(jié)點與所述本地節(jié)點間是否是雙向通道,可更靈活快速的實現(xiàn)節(jié)點間的路由擴散,實現(xiàn)全網(wǎng)路由同步和達到全網(wǎng)快速路由收斂。
[0050]本實施例所述的處理步驟與握手報文的處理步驟一致。
[0051 ] 優(yōu)選地,所述本地節(jié)點的節(jié)點信息可為所述本地節(jié)點的節(jié)點標識。當所述本地節(jié)點與所述網(wǎng)絡節(jié)點相互存在于對方的鄰居列表中時,所述本地節(jié)點與所述網(wǎng)絡節(jié)點間為雙向通道(雙向鏈路)。
[0052]在另一個實施例中,根據(jù)所述網(wǎng)絡節(jié)點的節(jié)點信息和本地所存儲的所述本地節(jié)點的節(jié)點信息,判斷所述網(wǎng)絡節(jié)點與所述本地節(jié)點間是否為雙向通道的步驟包括以下步驟:
[0053]從本地所存儲的所述本地節(jié)點的鄰居信息中查找所述網(wǎng)絡節(jié)點的節(jié)點信息;
[0054]若查找到所述網(wǎng)絡節(jié)點的節(jié)點信息,則判斷所述報文中是否包括所述網(wǎng)絡節(jié)點的鄰居信息;
[0055]若包括所述網(wǎng)絡節(jié)點的鄰居信息,則從所述網(wǎng)絡節(jié)點的鄰居信息中查找本地節(jié)點的節(jié)點信息;
[0056]若查找到所述本地節(jié)點的節(jié)點信息,則判定所述網(wǎng)絡節(jié)點與所述本地節(jié)點間為雙向通道。
[0057]在其他實施例中,在根據(jù)所述網(wǎng)絡節(jié)點的節(jié)點信息和本地所存儲的所述本地節(jié)點的節(jié)點信息,判斷所述網(wǎng)絡節(jié)點與所述本地節(jié)點間是否為雙向通道的步驟之后,還包括以下步驟:
[0058]若所述網(wǎng)絡節(jié)點與所述本地節(jié)點間為雙向通道,則查找用于標識所述網(wǎng)絡節(jié)點與所述本地節(jié)點間為首次建立雙向通道的首次雙通道標識。
[0059]若查找到,則生成用于觸發(fā)所述本地節(jié)點在網(wǎng)絡中廣播全同步報文的觸發(fā)信息,其中,所述本地節(jié)點廣播的全同步報文包括所述本地校驗碼、所述本地節(jié)點的節(jié)點信息、所述本地節(jié)點的鄰居信息以及所述本地節(jié)點的所有路由。
[0060]進一步地,可預設本地節(jié)點的各鄰居的定時器,定時檢測每個鄰居的定時器,如果發(fā)現(xiàn)該定時器的數(shù)值大于3倍的報文接收間隔,則進行鄰居丟失處理,執(zhí)行函數(shù)WIR_Nei_Lost(port, NeiID)
[0061]WIR_Nei_Lost (port, NeiID)函數(shù)執(zhí)行以下步驟:
[0062]清除該鄰居的鄰居表(neiNei),和該鄰居的路由表(neiRoute)。
[0063]刪除本地節(jié)點的子網(wǎng)路由表(routeTbl)中以該鄰居ID(NeiID)為下一跳的目標ID(DstID),并將這些丟失的路由記錄下來(保存在結(jié)構(gòu)體1stDstRoute中)。
[0064]定時器置