專利名稱:智能數據庫交換的制作方法
技術領域:
本發明涉及通過推斷和/或采用關于不可達的路由器的信息以及鏈路狀態數據庫里的信息來消除鏈路狀態數據庫不必要的交換和處理的方法和系統。在某些實施例中,所述關于不可達的路由器的信息可根據接收到的鏈路狀態的改變進行推斷。所述關于不可達的路由器的信息可以在一特定時間內記錄下來,比如3600秒。通過采用關于所述不可達和可達的路由器的信息以及確定所述相鄰路由器在其不可達后是否重啟動來生成一相鄰數據庫摘要列表使該列表不包括相鄰路由器的LSA。
圖1為普通自治系統(Autonomous System,AS)的示例圖。AS 100可以包括網絡組件,比如路由器102、103、104、105、106、107、108、112、114、122和124;以及主機H1和H2(如計算機)。兩路由器間的一條實線(如路由器104和108間的實線)表示所述兩路由器間已經建立了全OSPF鄰接關系;兩路由器間的一條虛線(如路由器104和106間的虛線)表示所述兩路由器間有待于建立全OSPF鄰接關系。所有的網絡組件可以在共同的管理下運行,其中該管理通過一個或多個網絡來共享一條公共的路徑選擇策略。如圖所示,AS 100可以劃分為若干個區域,如區域0、區域1和區域2,每個區域可以包括多組鄰近網絡和附著的主機。一個路由器可以在多個區域里運行,比如路由器108有多個接口連接到其他相鄰路由器112、104和105,所以其可以在區域0和區域1里運行,但是不能在區域2里運行,因為路由器108和區域2里的路由器122之間沒有接口。
圖2為路由器與相鄰路由器耦合的示意圖。路由器104可以與至少一個諸如路由器102和106的相鄰路由器在區域0里耦合。路由器104可以包括與存儲介質204連通的處理器202(可以是中央處理器CPU),該存儲介質包括只讀存儲器ROM206和/或隨機存取存儲器RAM208、接口210和211等。處理器202可以作為一個或多個CPU芯片。結合圖3,處理器202可執行如下所述方法300。該領域普通技術人員可以了解,路由器104可以包含一個以上的處理器,此時一些處理器便可以通過其他處理器來確認數據的接收并促進數據的發送。
存儲介質204可以包括一個或多個磁盤驅動器或磁帶驅動器,可用于存儲數據。存儲介質204可用于存儲當需要執行的時候可以被加載到RAM 208的程序。ROM 206用于存儲指令,也可存儲數據,這些數據在程序執行期間可被讀取。相對于大存儲量的輔助存儲器來說,ROM 206是一個通常具有小存儲量的非易失性存儲設備。RAM 208用于存儲易變數據,也可用于存儲指令。接口210和211可被配置為向路由器102和106傳輸報文和/或從路由器102和106接收報文。
在某些情況下,若兩個OSPF路由器間形成全了鄰接關系,則完全不需要鏈路狀態數據庫的交換和處理。比如當在同一網絡的兩路由器在同一區域(如區域0)可以互訪時,兩路由器間可不用交換它們的鏈路狀態數據庫而形成全鄰接關系,因為鑒于所述兩路由器在區域0內直接或間接連接而具有相同的鏈路狀態數據庫。
在其他情況下,只需要鏈路狀態數據庫的部分交換和處理。比如當路由器間在短時間內斷開又立即連接時,其鏈路狀態數據庫只有小部分不同而大部分都沒有發生改變。在此情況下,路由器就不需要去交換數據庫里未發生改變的數據。
在另外一個實例中,節點可在移動自組網絡(Mobile Ad-HocNetwork,MANET)中移動;當一移動節點在短時間內移出第一傳輸范圍而進入同一OSPF區域的第二傳輸范圍時,所述移動節點與所述第一傳輸范圍內的移動節點結束鄰接關系而與所述第二傳輸范圍內的移動節點建立鄰接關系。在此種情況下,數據庫里的大部分數據保持不變。
路由器在與相鄰路由器建立全鄰接關系時將生成一個相鄰數據庫摘要列表。在常規方法中,當第一路由器從第二路由器那里接收相同或更新的列在DD報文里的LSA時,所述第一路由器可決定不在向第二路由器發送的DD報文里列出該LSA。但在所述第二路由器向所述第一路由器發送所述LSA時,所述第一路由器已經對所述LSA進行了處理。這種情況下,發送和處理該LSA是不必要并且可消除的,以加速建立路由器間的全鄰接關系,節省用于傳輸DD報文里的LSA的鏈路帶寬。
本發明的特征在于消除了鏈路狀態數據庫不必要的交換和處理。圖3所示為生成相鄰數據庫摘要列表以在兩路由器之間建立全鄰接關系的示例方法的流程圖。該方法消除了鏈路狀態數據庫不必要的交換和處理。如圖所示,方法300可包括步驟310、320、330。在步驟310中,一個諸如路由器104(如圖2所示)的本地路由器確定所述路由器能否訪問其相鄰路由器,如在區域0內的路由器102或106。如果確定路由器106可達,則路由器104生成空的相鄰數據庫摘要列表。由于路由器104可達路由器106,因此不需要交換和處理鏈路狀態數據庫,且所述相鄰數據庫摘要列表為空。
如果路由器104確定路由器106為不可達,則執行步驟320。在步驟320中,路由器104確定其從開始生成相鄰數據庫摘要列表到路由器106不可達的時間段是否小于鏈路狀態通告(LSA)的最大壽命。在一些特別的實施例中,LSA的最大壽命可達3600秒。如果確定所述時間段不小于所述LSA的最大壽命,則路由器104可在步驟325中生成一相鄰數據庫摘要列表。所述摘要列表包括用于路由器104和106間的全鄰接關系的整個鏈路狀態數據庫。
如果路由器104確定所述時間段小于所述LSA的最大壽命,則執行步驟330。在步驟330中,路由器104確定路由器106在不可達之后是否重啟。如果確定路由器106在不可達之后重啟,則路由器104在步驟325中生成一相鄰數據庫摘要列表。所述列表包括用于路由器104和106間的全鄰接關系的整個鏈路狀態數據庫。
如果確定路由器106在不可達之后沒有重啟,則路由器104在步驟335中生成一相鄰數據庫摘要列表。所述列表包括每個在路由器106不可達之后在鏈路狀態數據庫里內容改變的LSA的報頭。根據路由器104和106之間不同的鏈路狀態而采用方法300來生成不同的相鄰數據庫摘要列表,可以避免鏈路狀態數據庫不必要的交換和/或處理,從而高效地建立路由器104和106間的全鄰接關系。
根據本發明的實施例,步驟310、320、330可共同執行,也可分別執行。而且步驟310、320、330的順序可以修正和/或改變。本發明所涵蓋的范圍不限于如圖3所示的方法300。
以下就確定相鄰路由器的重啟時間做了描述。為了確定相鄰路由器(如路由器106)在不可達之后是否重啟,本地路由器(如路由器104)需要關于路由器106重啟的最遲時間的信息。通過擴展一些協議報文和修改處理所述報文的程序,所述相鄰路由器可向所述本地路由器發送所述信息。在一系列實施例中,所述信息可包括路由器可服務時間段和/或路由器最遲重啟時間。所述擴展可向后兼容。
關于重啟時間(RT)和/或可服務時間段,路由器104可與路由器106以多種方式通訊。為了存儲關于路由器106重啟時間的信息,路由器104可向所述相鄰數據庫結構增加至少一個字段。在一具體實施例中,一個字段是用于存儲所述相鄰路由器重啟時間的重啟時間字段,另一字段是重啟識別標記字段,其表示本地路由器(如路由器104)能識別出其相鄰路由器(如路由器106)能夠處理所述重啟時間。
如圖4所示,為附屬于互聯網協議第四版(IPv4)和互聯網協議第六版(IPv6)的OSPF包的本地鏈路信令(Local Link Signaling,LLS)數據塊的示例格式圖。所述LLS數據塊被添加到OSPF包的末尾或者在采用密碼鑒別時被添加到鑒別數據塊后。所述LLS數據塊的長度包括在IPv4/IPv6報文的長度內而不在所述OSPF包的長度內。
在一實施例中,路由器106可將本地鏈路信令(LLS)塊里的路由器可服務時間段TLV附在一待發送至路由器104的第一OSPF數據庫描述(DD)報文上,該路由器可服務時間段TLV包括路由器可服務時間段。
圖5為路由器可服務時間段類型/長度/數值(TLV)的格式圖。如圖所示,路由器可服務時間段TLV的類型字段值可為3或可由因特網賦號管理局(IANA)賦值。所述TLV中數值字段的長度可為4。所述數值字段可以是以秒為單位的路由器可服務時間段。顯然,如圖5所示的路由器可服務時間段TLV的格式圖僅僅只是一個例子,當然不能以此來限定本發明之權利范圍。
當從路由器106接收到所述第一DD報文時,路由器104檢查所述LLS塊里的路由器可服務時間段TLV是否附著于該OSPF DD包。如果是,路由器104可將TLV里的路由器可服務時間段轉換為路由器重啟時間。路由器104也可將路由器重啟時間存儲于路由器106相應的鄰接數據結構里的重啟時間字段。路由器104還可以在該鄰接數據結構里設定重啟識別標記,用于表示路由器106能夠處理重啟時間,當路由器106重啟時,路由器104可識別。剛開始時,鄰接數據結構里的重啟時間字段為0。所述重啟識別標記可由該鄰接數據結構里的重啟時間字段值推斷出來。
在另一實施例中,通過路由器104和106間的一選項標記RT和它們的路由器可服務時間段之間的交換,路由器106可向路由器104發送路由器可服務時間段。所述選項標記RT可指示路由器能夠處理重啟時間。當能夠處理重啟時間的路由器106向路由器104發送Hello報文時,該路由器106可設定所述選項標記RT。當路由器106向路由器104發送DD報文時,路由器106也可設定所述選項標記RT。當接收到攜帶選項標記RT的Hello報文時,路由器104可在路由器106相應的鄰接數據結構中設置該重啟識別字段,以表明路由器106知道如何處理重啟時間。當路由器104接收到攜帶選項標記RT的DD報文時,路由器104可檢查所述相應的鄰接數據結構中的重啟識別字段是否已設定。如果所述重啟識別字段還沒有被設定,則啟動選項標記不匹配處理。所述選項標記RT的數值可為0x00000002,也可被添加到圖6所示的LLS擴展選項TLV。所述LLS塊中的LLS擴展選項TLV可被附加到Hello報文和DD報文中。
在一特殊實施例中,路由器106能夠處理重啟時間。在路由器106向路由器104發送第一DD報文之前,路由器106通過檢查用于路由器104的相應鄰接數據結構里的重啟識別字段來檢查路由器104是否能處理重啟時間。如果所述重啟識別字段被設定,也就是說,路由器104能夠處理重啟時間,路由器106可將LLS塊里的路由器可服務時間段TLV附加到待發送到路由器104的DD報文。如果所述重啟識別字段沒有被設定,路由器106不會將TLV附加到所述DD報文中。
當路由器104從路由器106接收所述DD報文時,路由器104可處理關于所述路由器可服務時間段的所述DD報文。如果LLS塊里的路由器可服務時間段TLV被附加到所述DD報文且所述用于路由器106的相應鄰接數據結構里的重啟識別字段也被設定,路由器104可將TLV的路由器可服務時間段轉換為所述路由器重啟時間并將所述路由器重啟時間存儲于相應鄰接數據結構里的重啟時間字段里。
若路由器可服務時間段TLV存在于附于DD報文上的LLS塊內,且在相應的相鄰數據結構中沒有設置路由器106的重啟識別字段,可能執行不匹配的處理過程。或者,若路由器可服務時間段TLV不存在于附于DD報文上的LLS內,且在相應的相鄰數據結構中設有路由器106的重啟識別字段,也可能執行不匹配的處理過程。
在一個特殊實施例中,路由器106可通過將所述LLS塊內的所述路由器可服務時間段TLV附于所述OSPF Hello報文中以發送路由器可服務時間段到路由器104。當路由器104從路由器106接收到所述OSPF Hello報文時,路由器104可通過以下方法處理所述關于路由器可服務時間段的報文。若路由器可服務時間段TLV存在于附于所述Hello報文的LLS塊內且在相應的相鄰數據結構中沒有設置路由器106的重啟識別字段,路由器104可將TLV中的路由器可服務時間段轉換為路由器重啟時間、將所述路由器重啟時間存儲到相應相鄰數據結構中的重啟時間字段并在所述相鄰數據結構中設置所述重啟識別標志以表明路由器106可處理所述重啟時間且路由器104可識別路由器106何時重啟。首先,在相鄰數據結構中所述重啟時間字段和重啟識別字段歸零。從所述相鄰數據結構的所述重啟時間字段值中可推斷出所述重啟識別標志。
或者,若路由器可服務時間段TLV存在于附于所述Hello報文上的LLS塊內且在相應的相鄰數據結構中設有路由器106的重啟識別字段,路由器104可將TLV中的路由器可服務時間段轉換為路由器重啟時間并將所述路由器重啟時間存儲到相應相鄰數據結構中的重啟時間字段。
所述確定所述相鄰路由器何時重啟的方法僅是一個示例,其他用于確定相鄰路由器重啟時間的方法也可用。本發明的范圍不僅限于此。
以下就推斷和記錄不可達路由器信息的方法做了描述。在一些實施例中,不可達路由器信息可包括路由器變為不可達的時間tu、時間tu后每個LSA發生改變的時間tc等。當路由器104和106之間形成全鄰接關系時,路由器104和106各自利用另一個路由器的信息,通過消除無用的鏈路狀態數據庫交換及處理來建立期待的鄰接關系。例如,路由器106在時間tu變為不可達,且在當前時間和時間tu之間的時間段小于LSA的最大壽命(MaxAge)(例如3600秒),路由器104可發送在時間tu后改變的LSA的報頭給路由器106。
一種遠程路由器(例如路由器106)可與本地路由器(即路由器104)間因網絡故障而變為不可達(例如,在路由器105和107之間的鏈路/接口斷開)。遠程路由器變為不可達的所述時間tu可以是網絡故障發生的時間。以下是怎樣確定遠程路由器的不可達時間,即故障發生時間的示例方法。
在一個實施例中,若路由器106在路由器104中的所述最短路徑優先算法與所述鏈路狀態數據庫發生沖突后由可達變為不可達,元祖<r,tu>被記錄下,其中,r是路由器106,tu是鏈路斷開導致路由器106變為不可達等故障發生的時間。
所述故障可分為兩類鏈路/接口故障和節點故障。所述鏈路/接口故障可分為兩類點對點鏈路/接口故障和廣播型鏈路/接口故障。點對點鏈路/接口故障可以包含點對多點鏈路/接口故障。廣播型鏈路/接口故障可以包含非廣播型多址接入(non-Broadcast Multi-Access,NBMA)鏈路/接口故障。任何類型的鏈路/接口故障,若不屬于所述三種類型即可為一種新類型。
當與網絡中的路由器A(如路由器105)和路由器B(如路由器107)相連的點對點鏈路/接口發生故障時,該故障鏈路的LSA可通過路由器A和B各自重新生成及泛洪。對于所述的LSA,tr表示本地路由器104接收到一個LSA的最早時間,tp表示所述LSA從路由器A或B(例如路由器105或107)到達所述本地路由器104的時延。所述LSA的時延tp小于所述LSA的壽命,該LSA的壽命可作為tp的估算值。估算的tp可以是255秒,即所述LSA升級包的生存時間(TTL)。兩個估算值中較小的一個可被選為時間tp。在一個特殊的實施例中,精確的時延可小于估算值。所述鏈路/接口發生故障的時間tu根據公式式(1)來估算 tu=(tr-ti-tp) (1) 其中,ti表示OSPF路由器檢測點對點鏈路/接口故障或廣播型鏈路/接口故障等鏈路/接口故障的最大時延。所述估算值tu可能比故障發生的精確時間更早。因此,如果需要相鄰路由器106建立全鄰接關系,所有在精確時間后改變的LSA均包含在相鄰數據庫摘要列表中。
對于網絡中的廣播型鏈路故障,若k個路由器附于鏈路上,帶有鏈路斷開消息的k個路由器LSA和一個網絡LSA將被重新生成及泛洪。所述網絡LSA由鏈路的指定路由器生成,所述路由器LSA由附于鏈路上的k個路由器生成。鏈路故障的時間tu可根據公式(1)進行估算。
對于n個(n>1)鏈路故障,每個鏈路故障發生的時間可根據公式(1)計算。時間tu是所有為n個鏈路故障計算的n個時間中最早的時間。
對于網絡中的一節點故障(例如路由器105斷開),與故障節點(例如路由器105)有全鄰接關系的每個節點(如路由器103、107、108)可將重新生成鏈路的LSA并泛洪給故障節點。當存在多個LSA時,tr是本地路由器(例如路由器104)接收到所述LSA中最早的LSA的時間,tp是從一產生LSA的節點(例如路由器103)最早到達所述本地路由器104的LSA的時延,所述節點發生故障的時間tu可根據公式(2)進行估算 tu=(tr-tn-tp) (2) 其中,tn表示路由器檢測節點故障的最長時延。
所述tu的估算值早于所述故障發生時的精確時間。因此,若需要與路由器106建立全鄰接關系,所有在精確時間后發生改變的LSA可包含在相鄰數據庫摘要列表中。
對于網絡中的k個(k>1)節點故障,最多生成和泛洪k組LSA。每組中的每個LSA包含到達同一故障節點的鏈路信息。對于每組LSA,節點發生故障的時間可根據上述一個節點故障時的公式(2)進行估算。路由器106由于k節點故障而變為不可達的時間tu被估算為所有估算的節點故障時間中最早的時間。
根據本發明的實施例,對于網絡中的鏈路和節點故障,一種估算時間是最早鏈路故障發生的時間。另一種估算時間是最早節點故障發生的時間。路由器106因鏈路和節點故障而變為不可達的時間tu是兩種估算時間中最早的時間。
以下就使用所有接收到的更新的LSA來確定故障時間的另一示例方法做了描述。在一個實施例中,故障時間根據用相似于上述方法得到的每個LSA來確定。最早時間被定為tu。對于每個在時間tr接收到的更新的LSA,由所述LSA得到的故障時間可根據公式(3)來表示 Failure time=(tr-max(ti,tn)-tp)(3) 其中,ti表示路由器檢測接口故障的最長時延,tn表示路由器檢測節點故障的最長時延。
以下就LSA改變時間tc的查找和記錄做了描述。在一個實施例中,若在小于所述LSA最大壽命(MaxAge)的時間段內一個或多個路由器變為不可達,時間tr可用作時間tc;其中,時間tr是收到LSA的時間,時間tc是所述LSA改變,并需要記錄該LSA的tc的時間。時間tc可稍遲于所述LSA改變的實際時間。
以下是對記錄所述LSA改變時間tc的方法的描述。在進一步實施例中,與LSA壽命字段相似的字段可添加到所述數據結構以在存儲鏈路狀態數據庫中存儲LSA。估算的改變時間tc可存儲在為每個改變的LSA添加的字段中。
在另一實施例中,添加鏈接字段到用于存儲LSA的數據結構中以記錄所述LSA的改變時間tc,添加陣列和該陣列的索引變量到該數據結構中用于存儲一個區域。所述鏈接字段可用于鏈接所有具有同樣改變時間的LSA。陣列的大小可與所述LSA最大壽命(例如3600秒)中的時間單位的數量一樣。例如,一個時間單位可以是一秒,1/10秒或更小。所述時間單位依情況而定。所述陣列和陣列的索引變量可視為相對時鐘,所述陣列的索引變量從0開始依次遞增一個時間單位,且當增加到與陣列一樣大時又從0開始。若變量在當前時間為k,由索引j中的一陣列元素表示的時間tj可由下公式(4)來表示 tj=(當前時間-時間單位*d) (4) 其中,d=(k-j)if k≥j and d=(陣列大小-j+k)if k<j。
索引j中的所述陣列元素可作為指針指示所有在時間tc改變的LSA的鏈表報頭;其中,tc=tj或(tc+1個時間單位)>tj如果tc<tj(例如tc余數進位后得到tj)。
以下就再使用LSA的壽命將LSA添加到相鄰數據庫摘要列表做了描述。當本地路由器(例如路由器104)即將與遠程路由器(例如在時間tu變為不可達的路由器106)建立全鄰接關系時,路由器104可用時間tu和每個LSA的壽命將所有在時間tu后改變的LSA放入相鄰數據庫摘要列表中。對于在時間tu變為不可達的路由器106,時間tu可用上述公式(1)到(3)中所描述的方法之一來估算。
對于在時間tu后的時間tr時收到的每個已改變LSA,LSA被收到時的壽命少于255秒。255秒是包含所述LSA的互聯網協議(IP)的報文的最長存活時間。時間tu和所述LSA的壽命用于決定是否添加所述LSA到所述相鄰數據庫摘要列表。當建立起與路由器106的全鄰接關系時,每個滿足條件“LSA當前壽命<當前時間-tu+255”的LSA可添加到相鄰數據庫摘要列表中。同上,(當前時間-LSA當前壽命)等于(tr-在時間tr時收到的LSA壽命)。因此,所有在路由器106變為不可達后改變的LSA均包含在相鄰數據庫摘要列表中。
本申請中所述實施例僅用以說明本發明的技術方案而非限制。可以對本發明進行修改或者等同替換和改進,而不脫離本發明的精神和范圍。
權利要求
1、一種網絡組件,包括
存儲有指令的存儲介質;
與相鄰網絡組件相連的接口;以及
與存儲介質和接口耦合的第一處理器;其中,所述第一處理器設定為當執行所述指令時確定所述相鄰網絡組件是否可達,且產生在所述網絡組件和所述相鄰網絡組件間形成全鄰接關系的相鄰數據庫摘要列表,其中
若所述相鄰網絡組件可達,所述相鄰數據庫摘要列表為空;
所述相鄰數據庫摘要列表包括在所述相鄰網絡組件變為不可達后,所述網絡組件的鏈路狀態數據庫中內容改變的每個鏈路狀態通告LSA的報頭,若所述相鄰網絡組件不可達,在所述網絡組件開始產生所述相鄰數據庫摘要列表和所述相鄰網絡組件變為不可達之間的時間段小于鏈路狀態通告LSA的最大壽命并且所述相鄰網絡組件在變為不可達之后沒有重啟;或
所述相鄰數據庫摘要列表包括整個鏈路狀態數據庫,若所述相鄰網絡組件在變為不可達后重啟或所述相鄰網絡組件不可達,并且在所述網絡組件開始產生所述相鄰數據庫摘要列表和所述相鄰網絡組件變為不可達之間的時間段不小于鏈路狀態通告LSA的最大壽命。
2、根據權利要求1所述的網絡組件,其特征在于,所述第一處理器被進一步設定為從所述相鄰網絡組件接收和處理路由器可服務時間段或最遲路由器重啟時間及確定所述相鄰網絡組件是否重啟。
3、根據權利要求2所述的網絡組件,其特征在于,所述路由器可服務時間段或最遲路由器重啟時間附于開放最短路徑優先數據庫描述OSPFDD報文上,其為來自所述相鄰網絡組件的第一OSPF DD報文。
4、根據權利要求3所述的網絡組件,其特征在于,所述第一處理器被進一步設定為發送所述網絡組件的所述路由器可服務時間段或最遲路由器重啟時間到所述相鄰網絡組件。
5、根據權利要求1所述的網絡組件,其特征在于,所述第一處理器被進一步設定為交換選項標記重啟時間RT和所述相鄰網絡組件的路由器可服務時間段或最遲路由器重啟時間中的至少一個。
6、根據權利要求5所述的網絡組件,其特征在于,帶有選項標記RT的擴展選項TLV附于開放最短路徑優先(OSPF)Hello報文和/或開放最短路徑優先OSPF DD報文上。
7、根據權利要求5所述的網絡組件,其特征在于,所述第一處理器被進一步設定為從所述相鄰網絡組件接收和處理開放最短路徑優先OSPFHello報文中的所述攜帶選項標記RT的擴展選項TLV。
8、根據權利要求5所述的網絡組件,其特征在于,所述第一處理器被進一步設定為從所述相鄰網絡組件接收和處理開放最短路徑優先OSPFDD報文中的所述攜帶選項標記RT的擴展選項TLV。
9、根據權利要求5所述的網絡組件,其特征在于,所述第一處理器被進一步設定為通過開放最短路徑優先OSPF Hello報文和/或開放最短路徑優先OSPF DD報文發送帶有所述選項標記RT的擴展選項TLV。
10、根據權利要求5所述的網絡組件,其特征在于,所述第一處理器被進一步設定為將所述網絡組件的路由器可服務時間段或最遲路由器重啟時間附到第一OSPF DD報文,并在所述處理器從所述相鄰網絡組件接收到OSPF Hello報文中的所述選項標記RT時,發送所述OSPF DD報文到所述相鄰網絡組件。
11、根據權利要求5所述的網絡組件,其特征在于,所述第一處理器被進一步設定為從所述相鄰網絡組件接收OSPF DD報文中的路由器可服務時間段或路由器重啟時間;其中,若所述處理器從所述相鄰網絡組件接收到OSPF Hello報文中的所述選項標記RT,所述處理器被進一步設定為處理所述路由器可服務時間或路由器重啟時間。
12、根據權利要求1所述的網絡組件,其特征在于,所述第一處理器被進一步設定為確定所述相鄰網絡組件何時變為不可達。
13、根據權利要求12所述的網絡組件,其特征在于,所述相鄰網絡組件變為不可達的時間等于tr-ti-tp。其中,tr是所述網絡組件接收到其中一個由接口故障觸發的LSA的最早時間;ti是第二處理器檢測所述接口故障的最大時延;tp是從最早LSA生成到所述最早LSA到達所述網絡組件的時延。
14、根據權利要求13所述的網絡組件,其特征在于,所述接口故障包括至少一個點到點接口故障或廣播型接口故障。
15、根據權利要求12所述的網絡組件,其特征在于,所述相鄰網絡組件變為不可達的時間等于tr-tn-tp,其中,tr是所述網絡組件接收到其中一個由網絡組件故障觸發的LSA的最早時間;tn是第二處理器檢測所述網絡組件故障的最大時延;tp是從最早LSA生成到所述最早LSA到達所述網絡組件的時延。
16、根據權利要求12所述的網絡組件,其特征在于,所述相鄰網絡組件變為不可達的時間等于tr-max(ti,tn)-tp,其中,tr是所述網絡組件接收到其中一個由網絡組件故障和/或接口故障觸發的LSA的最早時間;ti是第二處理器檢測所述接口故障的最長時延;tn是第三處理器檢測所述網絡組件故障的最長時延;tp是從最早LSA生成到所述最早LSA到達所述網絡組件的時延。
17、根據權利要求1所述的網絡組件,其特征在于,所述第一處理器進一步被配置為
在所述相鄰網絡組件不可達后,確定LSA的內容是否發生改變;
當接收到所述LSA且其內容發生改變時,記錄收到時間tr;
將所述時間tr與所述相鄰網絡組件變為不可達的時間tu進行比較;如果tr遲于tu,則確定所述相鄰網絡組件不可達后所述LSA的內容發生改變。
18、根據權利要求1所述的網絡組件,其特征在于,所述第一處理器進一步被配置為
在所述相鄰網絡組件不可達后,確定LSA的內容是否發生改變;
采用所述LSA的壽命ta,生成相鄰數據庫摘要列表的時間ts,所述相鄰網絡組件變為不可達時的時間tu;
如果ta<ts-tu+255,則確定所述相鄰網絡組件不可達后所述LSA的內容發生改變。
19、一種網絡組件,包括
第一網絡組件;
第二網絡組件;和
耦合于所述第一和第二網絡組件間的網絡,其特征在于,所述第一網絡組件被配置為確定所述第二網絡組件是否可達,生成相鄰數據庫摘要列表,其用于在所述第一和第二網絡組件間形成全鄰接關系,其特征在于
如果所述第二網絡組件可達,則所述相鄰數據庫摘要列表將為空;
所述相鄰數據庫摘要列表包括在所述第二網絡組件變為不可達后,所述第一網絡組件的鏈路狀態數據庫中內容改變的每個鏈路狀態通告LSA的報頭,若所述第二網絡組件不可達,在所述第一網絡組件開始產生所述相鄰數據庫摘要列表和所述第二網絡組件變為不可達之間的時間段小于鏈路狀態通告LSA的最大壽命并且所述第二網絡組件在變為不可達之后沒有重啟;或
所述相鄰數據庫摘要列表包括整個鏈路狀態數據庫,若所述第二網絡組件在變為不可達后重啟或所述相鄰網絡組件不可達,并且在所述第一網絡組件開始產生所述相鄰數據庫摘要列表和所述第二網絡組件變為不可達之間的時間段不小于鏈路狀態通告LSA的最大壽命。
20、一種在所述第一和第二網絡組件間建立全鄰接關系的方法,包括
確定所述第二網絡組件是否可達;
生成一相鄰數據庫摘要列表,其用于在所述第一和第二網絡組件間形成全鄰接關系,其特征在于
如果所述第二網絡組件可達,則所述相鄰數據庫摘要列表為空;
所述相鄰數據庫摘要列表包括在所述第二網絡組件變為不可達后,所述第一網絡組件的鏈路狀態數據庫中內容改變的每個鏈路狀態通告LSA的報頭,若所述第二網絡組件不可達,在所述第一網絡組件開始產生所述相鄰數據庫摘要列表和所述第二網絡組件變為不可達之間的時間段小于鏈路狀態通告LSA的最大壽命并且所述第二網絡組件在變為不可達之后沒有重啟;或
所述相鄰數據庫摘要列表包括整個鏈路狀態數據庫,若所述第二網絡組件在變為不可達后重啟或所述相鄰網絡組件不可達,并且在所述第一網絡組件開始產生所述相鄰數據庫摘要列表和所述第二網絡組件變為不可達之間的時間段不小于鏈路狀態通告LSA的最大壽命。
21、根據權利要求20所述的方法,進一步包括
接收和處理來自所述第二網絡組件的OSPF DD報文中的路由器可服務時間段或最遲路由器重啟時間中的至少一個;和
在所述第二網絡組件不可達后,確定其是否重啟。
22、根據權利要求21所述的方法,其特征在于,路由器可服務時間段或最遲路由器重啟時間中的至少一個被附在開放最短路徑優先數據庫描述OSPF DD報文中發送到所述第二網絡組件。
23、根據權利要求21所述的方法,進一步包括在所述第一網絡組件和第二網絡組件間交換選項標記和路由器可服務時間段或最遲路由器重啟時間中的至少一個。
24、根據權利要求21所述的方法,其特征在于,所述路由器可服務時間段或最遲路由器重啟時間中的至少一個附在開放最短路徑優OSPFHello報文中。
25、根據權利要求20所述的方法,進一步包括確定所述第二網絡組件變為不可達的時間。
26、根據權利要求20所述的方法,其特征在于,所述第二網絡組件變為不可達的時間等于tr-tn-tp,其中,tr是所述網絡組件接收到其中一個由網絡組件故障觸發的LSA的最早時間;tn是第二處理器檢測所述網絡組件故障的最大時延;tp是從最早LSA生成到所述最早LSA到達所述網絡組件的時延。
27、根據權利要求26所述的方法,其特征在于,所述接口故障包括至少一個點對點接口故障或廣播型接口故障。
28、根據權利要求25所述的方法,其特征在于,所述第二網絡組件變為不可達的時間等于tr-max(ti,tn)-tp,其中,tr是所述網絡組件接收到其中一個由網絡組件故障和/或接口故障觸發的LSA的最早時間;ti是第二處理器檢測所述接口故障的最長時延;tn是第三處理器檢測所述網絡組件故障的最長時延;tp是從最早LSA生成到所述最早LSA到達所述網絡組件的時延。
全文摘要
本發明涉及當兩個OSPF路由器形成全鄰接關系時,消除鏈路狀態數據庫必要的交換和處理的方法和系統。本發明尤其提供以下方法和原理減少從鏈路狀態改變中接收到的關于不可達的路由器的信息;在一特定時期內記錄關于不可達的路由器的信息;通過使用關于不可達的和可達的路由器的信息來創建一相鄰數據庫摘要列表,該列表不包含相鄰數據庫的LSA;在所述相鄰路由器不可達后確定其是否重啟。另外,本發明還提供一些選項來減少和使用關于不可達的路由器的信息以及在所述鏈路狀態數據庫中用于消除鏈路狀態數據庫不必要的交換和處理的信息。
文檔編號H04L12/56GK101663865SQ200880006252
公開日2010年3月3日 申請日期2008年12月19日 優先權日2007年12月21日
發明者陳懷謨 申請人:華為技術有限公司