對鏈路狀態廣播進行同步的方法與路由器的製作方法
2023-06-02 00:37:36 2
專利名稱:對鏈路狀態廣播進行同步的方法與路由器的製作方法
技術領域:
本發明涉及網絡通信技術領域,尤其涉及對鏈路狀態廣播進行同步的方 法與路由器。
背景技術:
開方t式最短路徑優先(OSPF, Open Shortest Path First)是一種鏈^備狀態 協議,它是通過鏈路狀態廣播(LSA, Link State Advertise)描述鏈路狀態, LSA的集合稱為鏈路狀態資料庫(LSDB, link state database) 。 OSPF協議規 定的LSA共有9種,它們分別是路由鏈路狀態廣播(RouterLSA)、網絡鏈 3各狀態廣播(NetworkLSA)、摘要-3鏈路狀態廣播(Summary-3 LSA)、摘 要-4鏈路狀態廣播(Summary-4LSA )、外部鏈路狀態廣播(External LSA )、 非純區域鏈路狀態廣播(NSSALSA) 、 9類鏈路狀態廣播(Type 9 LSA) , 10 類鏈路狀態廣播(Type 10 LSA )和ll類鏈路狀態廣播(Type 11 LSA ) 。 OSPF 協議再將RouterLSA規定為l類LSA, Network LSA規定為2類LSA, Summary-3 LSA規定為3類LSA, Summary-4LSA規定為4類LSA, External LSA規定為5類 LSA, NSSALSA規定為7類LSA。
通常採用Router LSA和NetworkLSA計算出區域內的路由,在計算出區域 內路由的基礎上利用Summary-3 LSA和Summary-4 LSA計算出區域間路由,在 計算出區域內路由和區域間的路由基礎上再利用External LSA和NSSA LSA計 算出自治系統(AS, Autonomous System )的外部路由。路由器在進行路由計 算時所包含的LSA要儘可能完整,如果路由器所包含的LSA不完整,就會導致 路由計算的結果不完整,因此在進行路由計算之前,就需要對路由器之間的 LSDB進行同步。
現有技術對鄰居路由器之間的LSDB進行同步是這樣實現的通過資料庫 描述(DD, database Description)報文協商建立路由器之間的LSA交換關係, 協商完成之後,通過DD報文將本地的LSDB發送給鄰居路由器,同時將鄰居路由器DD報文發送的LSA同本地LSDB中的LSA相比較,如果發現本地沒有完 全包含鄰居路由器的LSA,就通過發送請求數據包(Request Packet)消息向 鄰居路由器請求。當雙方的LSDB達到一致的時候,il明鄰居路由器之間的 LSDB已達到同步狀態,也就是路由器之間的鄰居關係達到FULL狀態,在 FULL狀態下,每個路由器都包含鄰居路由器中的所有LSA。
上述現有技術是通過DD報文將本地LSDB的所有LSA發送給鄰居,然後再 向鄰居路由器請求本地LSDB沒有包含的LSA,直到雙方的LSDB達到一致時 才說明路由器之間的LSDB已同步,這樣會導致LSDB同步需要花費較長的時 間,由統計數據可知,該現有技術對20萬路由所產生的LSA進行同步大概需要 20分鐘左右,並且只有同步完成之後才能重新生成RouterLSA,沒有重新生成 的Router LSA就不能計算區域內的路由,那麼路由器就不能在區域內進行通 信,而在如此長的時間內通信中斷是無法忍受的。實際應用中路由器可能更 多,引入的外部路由也更多,那麼路由器之間達到LSDB同步會需要更長時間。
另外,上述現有技術在鄰居關係達到FULL狀態之前產生的Router LSA和 Network LSA是不完整的,例如在點到點(P2P, Point to Point)或者點到多 點(P2MP, Pointto Multi-Point)的鏈3各上,如果鄰居關係沒有達到FULL狀 態,在生成RouterLSA時會產生一條純鏈路(Stub Link),而在達到FULL狀 態時還會再添加一條P2P Link;在廣播(Broadcast )或非廣播多點接入(NBMA, Non-Broadcast Multi-Access )的鏈路上,如果沒有達到FULL狀態,在生成 RouterLSA的時候會產生一條StubLink,而在達到FULL狀態時會產生一條 Transit Link;路由器在生成NetworkLSA的時候,需要該路由器與網絡上至少 一臺路由器完全鄰接後才生成該LSA,也就是接入路由器(Attached Routers ) 中只包含達到FULL狀態的鄰居關係。由RFC2328可知,P2P Link, Transit Link 以及Network LSA上的Attached Router對路由計算是至關重要的,如果這些信 息不完整,那麼區域內路由的計算結果就不完整,這樣就會導致一些路由器 之間不能進行通信。
綜上所述,現有技術的路由器需要較長的時間才能進行區域內通信,並且在鄰居關係達到FULL狀態之前產生的Router LSA和Network LSA信息是不
完整的。
發明內容
本發明實施例提供一種對鏈路狀態廣播進行同步的方法及路由器,所述 方法能夠在較短的時間完成對1類和2類LSA的同步。
本發明實施例提供的對鏈路狀態廣播進行同步的方法為
獲取本地當前最高優先級對應的鏈路狀態廣播,收集鄰居路由器相應類 別的鏈路狀態廣播;
鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或 者是鄰居路由器更新過的信息時,獲取鄰居路由器的所述鏈路狀態廣播信息。
本發明實施例提供的另 一種對鏈路狀態廣播進行同步的方法包括
獲取本地的所有鏈路狀態廣播信息,並收集鄰居路由器的所有鏈路狀態 廣播,並在鄰居路由器的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者 是鄰居路由器更新過的信息時,按照優先級順序向鄰居路由器發送消息獲取 所述的LSA信息。
本發明實施例也提供了一種路由器,該路由器包括
獲取單元,用於獲取本地當前最高優先級對應的鏈路狀態廣播;
同步單元,用於收集鄰居路由器相應類別的鏈路狀態廣播信息,以及在 鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者是 鄰居路由器更新過的信息時,向鄰居路由器獲取所述的鏈路狀態廣播信息。
以上技術方案可以看出,由於本發明實施例首先獲取本地當前最高優先
級對應的LSA,並且從鄰居路由器收集的LSA信息與本地當前最高優先級對應 的LSA類別相同,當鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態數據 庫所缺少的或者是鄰居路由器更新過的信息時,向鄰居路由器獲取所述的《連 路狀態廣播信息,這樣就可以對當前最高優先級(例如,1類和2類LSA對應的 優先級)對應的LSA信息進行同步。與現有技術需要對本地的所有LSA信息進 行同步相比較,整個自治系統中需先同步的LSA信息遠遠少於本地的所有LSA信息,因此對高優先級對應的LSA信息進行同步需要花費的時間較短,這樣能
夠在較短的時間內就可以計算區域內的路由,進而使得路由器在較短的時間
就能進4亍區i或內通信。
另外,由於本發明實施例在鄰居路由器的LSA信息是本地LSDB所缺少的 或者是鄰居路由器更新過的信息時,按照優先級順序請求高優先級對應的LSA 信息,然後鄰居路由器根據請求信息發送高優先級對應的LSA信息,這樣也能 夠在較短的時間內對高優先級對應的LSA信息進行同步,從而就可以計算區域 內的路由,進而使得路由器在較短的時間就能進行區域內通信。
圖1是本發明實施例一對鏈路狀態廣播進行同步的方法流程圖; 圖2是本發明實施例二對鏈路狀態廣播進行同步的方法流程圖; 圖3是本發明實施例三對鏈J各狀態廣播進行同步的方法流程圖; 圖4是本發明實施例四路由器示意圖。
具體實施例方式
本發明實施例提供了對鏈路狀態廣播進行同步的方法與路由器,為使本 領域技術人員能夠更好地理解本發明,下面結合附圖對本發明實施例進行詳 細i兌明。
本發明實施例一、 一種對鏈路狀態廣播進行同步的方法,本實施例的方 法流程如圖1所示,具體包括以下步驟
步驟IOI、對LSDB的LSA信息進行等級劃分,確定各類LSA信息的優 先級。
由於1類和2類LSA是用來計算區域內的路由,而區域間的路由是在計 算出區域內路由的基礎上才能計算得到,並且外部路由需要在計算出區域內 和區域間路由的基礎上才能計算。如果要儘快實現區域內路由器之間的通信, 那麼就要計算完整的區域內路由,因此需要最先對1類和2類LSA進行同步。
鑑於上述原因,在為等級對應的LSA信息設置優先級時, 一般會將僅包含1類和2類LSA信息的等級,或者單獨包含1類或2類LSA的等級設置為 高優先級,也就是需要最先對所述等級對應的LSA信息進行同步;將3類與 4類鏈路狀態廣播信息中至少一個所對應的等級設為第一優先級,也就是在高 優先級對應的等級同步完成之後才能對第一優先級對應的等級進行同步;將5 類與7類鏈路狀態廣播信息中至少一個所對應的等級設為第二優先級,該優 先級必須在高優先級和第一優先級對應的等級同步完成之後才能對該優先級 對應的等級進行同步。另外,如果等級劃分是根據LSA的擴散範圍而言,則 根據需要最先同步的LSA信息設置優先級,例如,將l、 2和3類LSA劃分 為一個等級時,1類和2類LSA是用來計算區域內路由,3類LSA是用來計 算區域間路由,如果要計算得到所有的路由,就需要先計算得到區域內路由, 故此時需要將1 、 2和3類LSA對應的等級設置為高優先級。
本實施例將1類和2類LSA劃分為一個等級,並將該等級確定為高優先 級;將3類和4類LSA劃分為一個等級,並將該等級設為第一優先級;將5 類和7類LSA劃分為一個等級,再將該等級設為第二優先級。
步驟102、本地路由器通過DD報文和鄰居路由器進行協商,並建立發送 DD報文的主從關係,建立主從關係的目的主要是為了保證在後續的DD報文 中能夠有序地發送。
步驟103、協商完成之後,獲取本地高優先級對應的1類和2類LSA信 息,然後再對所述LSA信息進行同步,通過DD報文將高優先級對應的LSA 相關信息發送給鄰居路由器。通常,兩臺路由器進行LSDB同步時都採用DD 報文來描述自身的LSDB,報文內容包括LSDB中每條LSA的摘要,摘要就 是LSA的頭部,通過頭部可以唯一標識一條LSA,對方路由器根據頭部判斷 本地是否包含這條LSA信息。
其中,每臺路由器都根據自己周圍的網絡拓樸結構生成一條鏈路狀態廣 播,並通過相互之間發送協議報文將這條LSA發送給網絡中其它的所有路由 器,每臺路由器都收到了其它路由器的LSA。
可選地,為了滿足一些特殊的要求,在此階段可以將9類、10類或11類 LSA相關信息發送給鄰居路由器。可選地,為了防止同步過程提前結束,在將所有的1類和2類LSA相關 信息發送給鄰居路由器之後,如果LSDB中還有3類、4類、5類或7類LSA 需要同步,則取一個3類或者4類LSA相關信息發送給鄰居路由器;如果3 類和4類LSA不存在,則取一個5類或7類LSA相關信息發送給鄰居路由器。
步驟104、本地路由器收集鄰居路由器DD報文發送的1類和2類LSA 相關信息。
步驟105、判斷鄰居路由器DD報文發送的1類和2類LSA相關信息是
執行步驟106,否則執行步驟107。
步驟106、通過Request Packet向鄰居路由器請求所述本地路由器缺少的 或者是鄰居路由器更新過的1類和2類LSA,鄰居路由器再將所述1類和2 類LSA信息發送給本地路由器,再返回執行步驟105,直到雙方的1類和2 類LSA達到一致。
可選地,此步驟還可以向鄰居請求本地LSDB所沒有的9類、10類或11 類LSA。
另外,此步驟對需要請求3類、4類、5類或7類LSA不予響應。
步驟107、高優先級對應的1類和2類LSA信息同步結束後,再重新生 成完整的1類和2類LSA,並通過洪泛方式將重新生成的1類和2類LSA對 鄰居路由器進行廣播,再利用本地路由器和鄰居路由器重新生成的LSA信息 計算區域內的路由。其中,洪泛就是將所述LSA信息以廣播或其它形式發送 給所有的鄰居路由器。
在同步完成1類和2類LSA之後,將沒有達到FULL狀態的鄰居路由器 等同於RFC2328所規定的FULL狀態,這是由於OSPF協議將自治系統分為 不同的區域,劃分區域之後可以減少LSA的數量,並且可以屏蔽網絡變化涉 及的範圍。 一旦網絡拓樸發生變化,首先要對區域內的1類和2類LSA信息 進行同步,如果網絡拓樸變化影響到聚合之後的路由,才會由區域邊界路由 器將變化通知到其它區域,而大部分的拓樸變化都會屏蔽在區域之內,因此 在對1類和2類LSA信息同步結束後,可以將沒有達到FULL狀態的鄰居路
勺信息,如果是,由器等同於RFC2328所規定的FULL狀態。
步驟108、判斷本地路由器的LSDB中是否存在3類和4類LSA的相關 信息需要發送給鄰居路由器,如果是,執行步驟109,否則執行步驟114。
步驟109、對3類和4類LSA進行同步,並通過DD報文將3類和4類 LSA相關信息發送給鄰居路由器。
可選地,為了滿足一些特殊的要求,在此階段可以將9類、10類或11類 LSA相關信息發送給鄰居路由器。
可選地,為了防止同步過程提前結束,在將所有的3類和4類LSA相關 信息發送給鄰居路由器之後,如果LSDB中還有5類和7類LSA需要同步, 則取一個5類或7類LSA相關信息發送給鄰居路由器。
步驟110、本地路由器收集鄰居路由器DD報文發送的3類和4類LSA 的相關信息。
步驟111、判斷鄰居路由器DD報文發送的3類和4類LSA相關信息是 否為本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息,如果是, 說明鄰居路由器有些3類和4類LSA是本地LSDB所缺少的,或者是鄰居路 由器更新的3類和4類LSA,如果是,執行步驟112,否則執行步驟113。
步驟112、通過R叫uest Packet向鄰居路由器請求所述的3類和4類LSA, 鄰居路由器再將所述3類和4類LSA信息發送給本地路由器,並返回執行步 驟lll,直到雙方的3類和4類LSA達到一致。
可選地,此步驟還可以向鄰居i 各由器請求本地LSDB所沒有的9類、10 類或11類LSA。
另外,此步驟對需要請求5類或7類LSA的消息不予響應,對請求l類 和2類LSA的消息給予響應。
步驟113、第一優先級的LSA同步結束後,首先計算區域間路由,再重 新生成3類和4類LSA,並通過洪泛方式將重新生成的3類和4類LSA對鄰 居路由器進行廣播。
步驟114、判斷本地路由器的LSDB中是否存在5類和7類LSA的相關信息需要發送給鄰居路由器,如果是,執行步驟115,否則鄰居關係達到FULL 狀態,整個LSDB的同步過程結束。
步驟115、對5類和7類LSA進行同步,並通過DD報文將5類和7類 LSA相關信息發送給鄰居路由器。
另外,在對第二優先級的LSA進行同步時如果收到洪泛過來的1類和2 類LSA,則可以對區域內和區域間的路由進行計算;如果收到洪泛過來的3 類和4類LSA,則可以利用所述LSA對區域間的路由進行計算。
可選地,為了滿足一些特殊的要求,在此階段可以將9類、10類或11類 LSA的相關信息發送給鄰居路由器。
步驟116、本地路由器收集鄰居路由器DD報文發送的5類和7類LSA 相關信息。
步驟117、判斷鄰居路由器DD報文發送的5類和7類LSA相關信息是 否為本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息,如果是, 說明鄰居路由器有些5類和7類LSA是本地LSDB所缺少的,或者是鄰居路 由器更新的5類和7類LSA,然後執行步驟118,否則執行步驟119。
步驟118、通過Request Packet向鄰居路由器請求所述的5類和7類LSA, 鄰居路由器再將所述5類和7類LSA信息發送給本地路由器,並返回執行步 驟117,直到雙方的5類和7類LSA達到一致的時候,結束5類和7類LSA 的同步。
可選地,此步驟還可以向鄰居路由器請求本地LSDB所沒有的9類、10 類或11類LSA。
另外,此步驟可響應對各類LSA的請求。
步驟119、第二優先級的LSA同步結束後,再利用同步得到的5類和7 類LSA計算自治系統的外部路由。
另夕卜,在此步驟可以分批接收新的5類和7類LSA,然後再利用所述LSA 信息分批對外部路由進行計算;或者收到一條新的5類和7類LSA就計算外 部路由。上述實施例是本發明的優選實施例,本發明實施例首先獲取本地當前最
高優先級對應的LSA,並且從鄰居路由器收集的LSA信息與本地當前最高優先 級對應的LSA類別相同,當鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀 態資料庫所缺少的或者是鄰居路由器更新過的信息時,向鄰居路由器獲取所
述的鏈路狀態廣播信息,這樣就可以對當前最高優先級(例如,1類和2類LSA 對應的優先級)對應的LSA信息進行同步。與現有技術需要對本地的所有LSA 信息進行同步相比較,整個自治系統中需先同步的LSA信息遠遠少於本地的所 有LSA信息,因此對高優先級對應的LSA信息進行同步需要花費的時間較短, 這樣能夠在較短的時間內就可以計算區域內的路由,進而使得路由器在較短 的時間就能進行區域內通信。
同時每臺路由器都根據本地周圍的網絡拓樸結構生成LSA信息,再通過協 議報文將生成的LSA信息發送給網絡中其它的路由器,每臺路由器收到其它路 由器的LSA信息,所有的LSA信息構成LSDB,故而使得每臺路由器的LSDB 是相同的。因此當本地路由器的LSA信息與鄰居路由器的LSA信息完全一致 時,這時本地路由器就會將所述鄰居路由器當作FULL狀態的鄰居,同樣地, 本地路由器也會被鄰居路由器當作FULL狀態的鄰居。另外,如果周圍的鄰居 路由器也能支持LSDB同步,這樣就可使得雙方路由器的LSDB能夠達到較好 地同步效果。
可選地,對3類和4類LSA進行同步的步驟可與通過1類和2類LSA計 算區域內路由的步驟同時進行,對5類和7類LSA進行同步的步驟可與通過 3類和4類LSA計算區域間路由的步驟同時進行。
可選地,將1類LSA單獨劃分為一個等級,2類LSA單獨劃分為一個等 級,再將所述等級都設為高優先級,可以是先對1類LSA進行同步,再對2 類LSA進行同步,也可以是先對2類LSA進行同步,再對1類LSA進行同 步,最終使雙方的1類和2類LSA達到完全同步。
可選地,由於3類和4類LSA的數量不是很多,也可以按照以下方式劃 分等級1類、2類和3類LSA為同一個等級;1類、2類和4類LSA為同一個等級,l類、2類、3類和4類為同一等級。然後將所述等級設為高優先級。
可選地,在1類和2類LSA同步結束以及生成新的1類和2類LSA的前 提下,對包含3類或4類LSA的等級進行同步也可實現對區域間路由進行計算。
另外,對3類、4類、5類和7類的LSA可以任意的排列組合方式劃分等 級,但前提條件是3類與4類LSA信息中至少一個所對應的等級的同步要在 5類和7類LSA的同步之前完成,或者與5類與7類LSA中至少一個所對應 的等級同時進行同步。這樣可以將不同的LSA類型分成不同的等級,例如, 將上述4種類型的LSA單獨劃分為一個等級,然後為3類和4類LSA對應的 等級設置一樣的優先級,為5類和7類LSA對應的等級設置一樣的優先級, 並且該優先級要低於3類和4類LSA對應的優先級。也可以根據LSA的擴散 範圍不同分成不同的等級,例如,將3類、4類和7類LSA分為一個等級, 所述等級對應的優先級要低於1類和2類LSA對應的優先級。
本發明實施例二、 一種對鏈路狀態廣播進行同步的方法,本實施例的方 法流程如圖2所示,具體包括以下步驟
步驟201、對LSDB的LSA信息進行等級劃分,並為每個等級設置優先 級,以及將需最先同步的LSA信息所對應的等級設為高優先級。
本實施方式將1類和2類LSA劃分為一個等級,並將該等級設為高優先 級,將3類、4類、5類和7類LSA劃分為一個等級,並將該等級設為第一優 先級。
步驟202、本地路由器通過DD報文和鄰居路由器進行協商,並建立發送 DD報文的主從關係,建立主從關係的目的主要是為了保證在後續的DD報文 中能夠有序地發送。
步驟203、當DD才艮文協商完成之後獲取高優先級對應的LSA信息,再 對所述LSA信息進行同步,通過DD報文將高優先級對應的所有LSA相關信 息描述發送給鄰居路由器。通常,兩臺路由器進行LSDB同步時都採用DD 報文來描述自己的LSDB,報文內容包括LSDB中每條LSA的摘要,摘要就 是LSA的頭部,通過頭部可以唯一標識一條LSA,根據頭部對端路由器就可以判斷本地是否包含這條LSA。
此外,為了使雙方路由器的LSDB能夠較好地同步,最好使周圍的鄰居 路由器也能支持LSDB同步。
可選地,為了滿足一些特殊的要求,在此階段可以將9類、10類或11類 LSA的相關信息發送給鄰居路由器。
步驟204、本地路由器收集鄰居路由器DD報文發送的1類和2類LSA 相關信息。
步驟205、判斷鄰居路由器DD報文發送的1類和2類LSA相關信息是
說明鄰居路由器有些1類和2類LSA是本地LSDB所缺少的,或者是鄰居路 由器更新的1類和2類LSA,如果是,執行步驟206,否則,執行步驟207。
步驟206、通過R叫uest Packet向鄰居路由器請求所述的1類和2類LSA, 鄰居路由器再將所述1類和2類LSA信息發送給本地路由器,再返回執行步 驟205,直到雙方的1類和2類LSA達到一致的時候,結束1類和2類LSA 的同步。
可選地,此步驟還可以向鄰居路由器請求本地LSDB所沒有的9類、10 類或11類LSA。
另外,此步驟對需要請求3類、4類、5類或7類LSA的消息不予響應。
步驟207、高優先級對應的LSA信息同步結束後,再重新生成完整的1 類和2類LSA,並通過洪泛方式將重新生成的1類和2類LSA對鄰居路由器 進行廣播,本地路由器和鄰居路由器再利用所述LSA計算區域內的路由。
在同步完成1類和2類LSA之後,將沒有達到FULL狀態的鄰居路由器 等同於RFC2328所規定的FULL狀態,這是由於OSPF協議將自治系統分為 不同的區域,劃分區域之後可以減少LSA的數量,並且可以屏蔽網絡變化涉 及的範圍。 一旦網絡拓樸發生變化,首先要對區域內的1類和2類LSA信息 進行同步,如果網絡拓樸變化影響到聚合之後的路由,才會由區域邊界路由 器將變化通知到其它區域,而大部分的拓樸變化都會屏蔽在區域之內,因此在對1類和2類LSA信息同步結束後,可以將沒有達到FULL狀態的鄰居路 由器等同於RFC2328所規定的FULL狀態。在此基礎上,就可以採用洪泛方 式對3類、4類、5類和7類LSA信息進行同步。
步驟208、判斷路由器的LSDB中是否存在第一優先級對應的3類、4類、 5類和7類LSA,如果是,執行步驟209,否則鄰居關係達到FULL狀態,整 個LSDB的同步過程結束。
步驟209、對第一優先級對應的LSA進行同步,將所述LSA信息洪泛給 鄰居路由器,通常是由路由器主動發送攜帶所述LSA信息的報文給鄰居路由器。
可選地,為了滿足一些特殊的要求,在此階段可以將9類、10類或11類 LSA洪泛給鄰居路由器。
步驟210、本地路由器接收鄰居路由器洪泛過來的LSA信息,從而使雙 方路由器的3類、4類、5類和7類LSA信息達到同步。
其中,在對第一優先級對應的LSA進行同步時如果收到洪泛過來的1類 和2類LSA,則可以對區域內的^^由進行計算。
步驟211、對第一優先級對應的LSA信息同步結束後,計算區域間的路 由,再重新生成3類和4類LSA,並通過洪泛方式將重新生成的3類和4類 LSA對鄰居路由器進行廣播,然後利用同步得到的5類和7類LSA計算自治 系統的外部路由。
可選地,此步驟可以分批接收新的5類和7類LSA,然後再利用所述LSA 信息分批對外部路由進行計算;或者收到一條新的5類和7類LSA就計算外 部路由。
由上述可知,本實施例對1類和2類LSA進行同步的方式與實施例一完 全相同,可以將1類和2類LSA分為一個等級或兩個等級來進行同步
另外,本實施方式對3類、4類、5類和7類的LSA可以任意的排列組合 方式劃分等級,但前提條件是3類和4類LSA中至少一個所對應的等級要在 5類和7類LSA的同步之前完成,或者與5類和7類LSA在同一等級進行同步。這樣可以將不同的LSA類型分成不同的等級,例如,將上述4種類型的
LSA單獨劃分為一個等級,然後為3類和4類LSA對應的等級設置一樣的優 先級,為5類和7類LSA^i^寧級k:一樣的優先級,並且該優先級要低 :3類知4類LSA對應的優先級。也可以根據LSA的擴散範圍不同分成不同 的等級,例如,將3類、4類和7類LSA分為一個等級,所述等級對應的優 先級要^rf 1類和2類LSA對應的優先級。
本發明實施例三、 一種對鏈路狀態廣播進行同步的方法,本實施例的方 法流程如圖3所示,具體包括以下步驟
步驟301 、對LSDB的LSA信息進行等級劃分,確定各類LSA信息的優 先級。
步驟302、本地路由器通過DD報文和鄰居路由器進行協商,並建立發送 DD報文的主從關係,建立主從關係的目的主要是為了保證在後續的DD報文 中能夠有序地發送。
步驟303、協商完成之後,獲取本地LSDB的所有LSA信息,然後再對 所述LSA信息進行同步,通過DD報文將LSA相關信息發送給鄰居路由器。
步驟304、本地^^由器收集鄰居^^由器DD才艮文發送的所有LSA相關信
臺
步驟305、判斷鄰居路由器DD報文發送的LSA相關信息是否為本地鏈 路狀態資料庫所缺少的或者是鄰居路由器更新過的信息,如果是,執行步驟 306,否則結束流程。
步驟306、按照優先級順序發送消息獲取本地LSDB所缺少的或者是鄰居 路由器更新過的LSA信息,並根據獲取到的優先級對應的LSA信息進行路由 計算。
假設1類和2類LSA為高優先級,3類和4類LSA為第 一優先級,5類 和7類LSA為第二優先級時,步驟306具體是這樣實現的
1)、按照優先級順序獲取高優先級對應的1類和2類LSA信息,通過 Request Packet向鄰居路由器請求本地路由器缺少的或者是鄰居路由器更新過的高優先級對應的LSA信息,鄰居路由器再將所述LSA信息發送給本地路由 器。
2) 、重新生成完整的1類和2類LSA,並通過洪泛方式將重新生成的1 類和2類LSA對鄰居路由器進行廣播,再利用本地路由器和鄰居路由器重新 生成的LSA信息計算區域內的路由。
3) 、按照優先級順序獲取第一優先級對應的3類和4類LSA信息,通過 Request Packet向鄰居路由器請求本地路由器缺少的或者是鄰居路由器更新過 的第 一優先級對應的LSA信息,鄰居路由器再將所述LSA信息發送給本地路 由器。
4) 、重新生成完整的3類和4類LSA,並通過洪泛方式將重新生成的3 類和4類LSA對鄰居路由器進行廣播,再利用本地路由器和鄰居路由器重新 生成的LSA信息計算區域間的路由。
5 )、按照優先級順序獲取第二優先級對應的5類和7類LSA信息,通過
的第二優先級對應的LSA信息,鄰居路由器再將所述LSA信息發送給本地路 由器。
6 )、利用請求得到的5類和7類LSA信息計算區域間的路由。 由上述可知,本發明實施例三是在發送請求信息的時候引入優先級機制,
在鄰居路由器的LSA信息是本地LSDB所缺少的或者是鄰居路由器更新過的
信息時,按照優先級順序向鄰居路由器請求高優先級對應的LSA信息,然後鄰
居路由器根據請求消息發送高優先級對應的LSA信息。與現有技術在同步結束
以後計算路由信息相比較,本發明實施例在同步完l、 2類的LSA信息後便可計
算區間內的路由信息,這樣能夠在較短的時間內就可以計算區域內的路由,
進而使得路由器在較短的時間就能進行區域內通信。
是可以通過程序來指示相關的硬體來完成,所述的程序可以存儲於計算機可 讀取存儲介質中,該程序在執行時,包括以下步驟獲取本地當前最高優先級對應的鏈路狀態廣播,收集鄰居路由器相應類
別的鏈路狀態廣播;
鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或 者是鄰居路由器更新過的信息時,獲取鄰居路由器的所述鏈路狀態廣播信息。
另外,程序執行的步驟也可以如下
獲取本地的所有鏈路狀態廣播信息,並收集鄰居路由器的所有鏈路狀態 廣播,並在鄰居路由器的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者 是鄰居路由器更新過的信息時,按照優先級順序向鄰居路由器發送消息獲取 所述的LSA信息。
其中,所述的存儲介質可以是ROM、 RAM、磁碟或光碟等等。
本發明實施例四、 一種路由器,由圖4可知,該路由器包括分級單元401、 獲取單元402、同步單元403、運算單元404、生成單元405以及廣播單元406。
其中,分級單元401用於將本地的LSA信息劃分為多個等級,以及為每 個等級設置優先級,以及將需最先同步的LSA信息所對應的等級設為高優先 級。
分級單元401在為等級對應的LSA信息設置優先級時, 一般會將僅包含 1類和2類LSA信息的等級或者單獨包含1類或2類LSA的等級設置為高優 先級,也就是需要最先對所述等級對應的LSA信息進行同步;將3類與4類 鏈路狀態廣播信息中至少一個所對應的等級設為第一優先級,也就是在高優 先級對應的等級同步完成之後才能對第一優先級對應的等級進行同步;將僅 包含5類和7類LSA信息的等級設為第二優先級,該優先級必須在高優先級 和第 一優先級對應的等級同步完成之後才能對該優先級對應的等級進行同 步。另外,如果等級劃分是根據LSA的擴散範圍而言,則根據需要先同步的 LSA信息設置優先級。
其中,獲取單元402用於從分級單元401獲取所有優先級對應的LSA信 息,例如,高優先級對應1類和2類LSA信息中至少一個,第一優先級對應 3類和4類LSA信息中至少一個,第二優先級對應5類和7類LSA信息中至少~~~個。
其中,同步單元403用於從鄰居路由器收集與獲取單元402相應類別的 鏈路狀態廣播信息,以及在鄰居路由器的所述鏈路狀態廣播是本地鏈路狀態 資料庫所缺少的或者是鄰居路由器更新過的信息時,向鄰居路由器獲取所述 的鏈路狀態廣播信息。
下面以高優先級對應的LSA信息為例進行說明,同步時所述高優先級就 是當前最高優先級。獲取單元402從分級單元401獲取高優先級對應的LSA 信息,同步單元403收集鄰居路由器高優先級對應的LSA信息,以及判斷所 述LSA信息是否為本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的 信息,並向獲取單元402提供所述判斷結果。獲取單元402再根據同步單元 403的判斷結果向鄰居路由器獲取本地鏈路狀態資料庫所缺少的或者是鄰居 路由器更新過的LSA信息。
其中,運算單元404用於根據生成單元405重新生成的1類和2類LSA 信息計算區域內的路由,以及根據生成單元405重新生成的3類和4類LSA 信息計算區域間的路由,以及根據獲取單元403獲取到的5類和7類LSA信 息計算自治系統的外部路由。
其中,生成單元405用於在同步單元403對當前最高優先級對應的LSA 信息同步結束後,重新生成當前最高優先級對應的LSA信息。
其中,廣播單元406用於將重新生成的1類、2類、3類和4類LSA信息 對鄰居路由器進行廣播。
由上述實施方式可知,由於本發明實施例在對l類和2類LSA信息同步結束
後,雙方的1類和2類LSA信息完全一致,這樣可將沒有達到FULL狀態的鄰居 路由器等同於RFC2328所規定的FULL狀態,然後重新生成1類和2類LSA,並 通過洪泛方式將重新生成的1類和2類LSA對鄰居路由器進行廣播,進而使得雙 方產生的1類和2類LSA信息比較完整。
另外,本發明實施例是最先對1類和2類LSA信息進行同步,對1類和2類 LSA信息同步結束後就可以重新生成完整的1類和2類LSA信息,進而使得區域 內路由的計算結果比較完整。以上對本發明實施例所提供的對鏈路狀態廣播進行同步的方法與路由器
闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同
時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應 用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的 限制。
權利要求
1、一種對鏈路狀態廣播進行同步的方法,其特徵是,包括獲取本地當前最高優先級對應的鏈路狀態廣播,收集鄰居路由器相應類別的鏈路狀態廣播;鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息時,獲取鄰居路由器的所述鏈路狀態廣播信息。
2、 如權利要求1所述的對鏈路狀態廣播進行同步的方法,其特徵是,在 獲取本地當前最高優先級對應的鏈路狀態廣播之前進一步包括將本地的鏈路狀態廣播分為至少兩個等級,為每個等級設置優先級,以 及將需先同步的鏈路狀態廣播所對應的等級設為高優先級。
3、 如權利要求1或2所述的對鏈路狀態廣播進行同步的方法,其特徵是, 在獲取鄰居路由器的所述鏈路狀態廣播信息之後進一步包括重新生成當前最高優先級對應的鏈路狀態廣播信息,再將所述鏈路狀態 廣播信息廣播給鄰居路由器;通過本地路由器和鄰居路由器重新生成的鏈路狀態廣播信息計算得到區 域內的路由。
4、 如權利要求3所述的對鏈路狀態廣播進行同步的方法,其特徵是,將 3類與4類鏈路狀態廣播信息中至少一個所對應的等級設為第一優先級時,所 述方法進一步包括對所述第一優先級對應的鏈路狀態廣播信息進行同步。
5、 如權利要求4所述的對鏈路狀態廣播進行同步的方法,其特徵是,對 所述第一優先級對應的鏈路狀態廣播信息進行同步包括收集鄰居路由器第一優先級對應的鏈路狀態廣播信息,在所述鏈路狀態 廣播信息是本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息 時,本地路由器向鄰居路由器獲取所述第 一優先級對應的鏈路狀態廣播信息。
6、 如權利要求4所述的對鏈路狀態廣播進行同步的方法,其特徵是,在 對第一優先級對應的鏈路狀態廣播信息進行同步之後進一步包括計算區域間的路由,重新生成第一優先級對應的鏈路狀態廣播信息,再 將所述鏈路狀態廣播信息廣播給鄰居路由器。
7、 如權利要求4所述的對鏈路狀態廣播進行同步的方法,其特徵是,將 5類和7類鏈路狀態廣播信息所對應的等級設為第二優先級時,在對第一優先 級對應的鏈路狀態廣播信息進行同步之後進一步包括對所述的5類和7類鏈路狀態廣播信息進行同步。
8、 如權利要求7所述的對鏈路狀態廣播進行同步的方法,其特徵是,對 5類和7類鏈路狀態廣播信息進行同步包括收集鄰居路由器的5類和7類鏈路狀態廣播信息,並在所述鏈路狀態廣 播信息是本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息時, 本地路由器向鄰居路由器獲取所述的5類和7類鏈路狀態廣播信息。
9、 如權利要求7所述的對鏈路狀態廣播進行同步的方法,其特徵是,對 5類和7類鏈路狀態廣播信息進行同步之後進一步包括利用同步得到的5類和7類鏈路狀態廣播信息計算得到外部路由。
10、 如權利要求1或2所述的對鏈路狀態廣播進行同步的方法,其特徵 是,將3類、4類、5類和7類鏈路狀態廣播所對應的等級設為第一優先級時, 所述方法進一步包括通過洪泛方式對3類、4類、5類和7類鏈路狀態廣播進行同步。
11、 如權利要求IO所述的對鏈路狀態廣播進行同步的方法,其特徵是, 在向鄰居路由器獲取所述的鏈路狀態廣播信息之後進一步包括計算區域間路由,重新生成3類和4類鏈路狀態廣播信息,再將所述鏈 路狀態廣播信息廣播給鄰居路由器;利用同步得到的5類和7類鏈路狀態廣播計算外部路由。
12、 一種對鏈路狀態廣播進行同步的方法,其特徵是,包括獲取本地的所有鏈路狀態廣播信息,並收集鄰居路由器的所有鏈路狀態 廣播,並在鄰居路由器的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息時,按照優先級順序向鄰居路由器發送消息獲取 所述的鏈路狀態廣播信息。
13、 如權利要求12所述的對鏈路狀態廣播進行同步的方法,其特徵是, 在獲取本地的所有鏈路狀態廣播之前進一步包括將本地的鏈路狀態廣播分為至少兩個等級,為每個等級設置優先級,以 及將需先同步的鏈路狀態廣播所對應的等級設為高優先級。
14、 如權利要求12或13所述的對鏈路狀態廣播進行同步的方法,其特 徵是,按照優先級順序向鄰居路由器發送消息獲取所述的LSA信息包括向鄰居路由器發送消息獲取本地路由器缺少的或者是鄰居路由器更新過 的高優先級對應的鏈路狀態廣播信息。
15、 如權利要求14所述的對鏈路狀態廣播進行同步的方法,其特徵是, 所述方法進一步包括重新生成高優先級對應的鏈路狀態廣播信息,再利用所述鏈路狀態廣播 信息計算得到區域內的路由。
16、 如權利要求14所述的對鏈路狀態廣播進行同步的方法,其特徵是, 所述方法進一步包括向鄰居路由器發送消息獲取本地路由器缺少的或者是鄰居路由器更新過 的第 一優先級對應的鏈路狀態廣播信息,並重新生成第一優先級對應的鏈路 狀態廣播,再利用所述鏈路狀態廣播信息計算區域間的路由;向鄰居路由器發送消息獲取本地路由器缺少的或者是鄰居路由器更新過 的第二優先級對應的鏈路狀態廣播信息,再利用所述鏈路狀態廣播信息計算 區域間的路由。
17、 一種路由器,其特徵是,所述路由器包括獲取單元,用於獲取本地當前最高優先級對應的鏈路狀態廣播;同步單元,用於收集鄰居路由器相應類別的鏈路狀態廣播信息,以及在 鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者是 鄰居路由器更新過的信息時,向鄰居路由器獲取所述的鏈路狀態廣播信息。
18、 如權利要求17所述的路由器,其特徵是,所述路由器進一步包括分級單元,用於將本地的鏈路狀態廣播信息劃分為多個等級,以及為每 個等級設置優先級,以及將需先同步的鏈路狀態廣播信息所對應的等級設為 高優先級。
19、 如權利要求17或18所述的路由器,其特徵是,所述路由器還進一 步包括生成單元,用於在同步單元對當前最高優先級對應的鏈路狀態廣播信息 同步結束後,重新生成當前最高優先級對應的鏈路狀態廣播信息;廣播單元,用於將生成單元重新生成的鏈路狀態廣播信息對鄰居路由器 進行廣播;運算單元,用於根據重新生成的鏈路狀態廣播信息計算路由信息。
全文摘要
本發明涉及網絡通信技術領域,公開了對鏈路狀態廣播進行同步的方法與路由器,其中,所述方法首先獲取本地當前最高優先級對應的鏈路狀態廣播,收集鄰居路由器相應類別的鏈路狀態廣播;鄰居路由器相應類別的鏈路狀態廣播是本地鏈路狀態資料庫所缺少的或者是鄰居路由器更新過的信息時,獲取鄰居路由器的所述鏈路狀態廣播信息。本發明使得路由器在較短的時間就能進行區域內通信,並且在對1類和2類LSA信息同步結束後就可以重新生成完整的1類和2類LSA信息,進而使得區域內路由的計算結果比較完整。
文檔編號H04L12/56GK101316229SQ20071011071
公開日2008年12月3日 申請日期2007年6月1日 優先權日2007年6月1日
發明者程輝輝, 魏秀剛 申請人:華為技術有限公司