專利名稱:選路信息的預(yù)先計算的制作方法
技術(shù)領(lǐng)域:
此處公開的各種示例性實施例一般涉及網(wǎng)絡(luò)流量選路。
背景技術(shù):
分組交換網(wǎng)絡(luò)被用于提供數(shù)量不斷增長的現(xiàn)今各種形式的通信。除經(jīng)由諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)的計算機到計算機通信之外,分組交換網(wǎng)絡(luò)實現(xiàn)關(guān)聯(lián)于其它應(yīng)用的信息通信,所述其它應(yīng)用諸如是電視、電話和無線電。通過這些和其它應(yīng)用,終端用戶可以越過極大距離發(fā)送和接收眾多信息類型。為將所述信息從其源移動到其目的地,分組交換網(wǎng)絡(luò)使用一些互連的選路設(shè)備。當一個路由器接收到數(shù)據(jù)的分組后,該路由器將確定該分組的目的地位于何處,并將該分組轉(zhuǎn)發(fā)給下一個最靠近的路由器。該下一個路由器將遵循類似的過程,并且通過這樣,分組將最終被遞送到其目的地,很像“組桶”。分組交換網(wǎng)絡(luò)中的一個重大問題在于,為每個網(wǎng)絡(luò)提供對于確定每個分組應(yīng)當被發(fā)送到哪個“下一跳”路由器必要的信息。雖然理論上可以將該信息手工編程到路由器中,但網(wǎng)絡(luò)拓撲的規(guī)模和動態(tài)本質(zhì)經(jīng)常致使該方法不可行。作為代替,已開發(fā)了各種協(xié)議來自動確定針對每個路由器的去往每個目的地的最佳路徑。例如,開放最短路徑優(yōu)先標準規(guī)定,自治系統(tǒng)內(nèi)的路由器共享關(guān)于該系統(tǒng)內(nèi)的鏈路的狀態(tài)的信息。通過使用該信息,每個路由器可以獨立開發(fā)轉(zhuǎn)發(fā)表,以便在確定分組如何被轉(zhuǎn)發(fā)向其各自的目的地時使用。當網(wǎng)絡(luò)狀態(tài)改變時,每個路由器更新其轉(zhuǎn)發(fā)表,以便確保每個目的地仍然可達,并且每個所選路徑是最優(yōu)的。由網(wǎng)絡(luò)中的不同路由器維護的選路信息應(yīng)當彼此一致,以便實現(xiàn)所需的網(wǎng)絡(luò)運行。
發(fā)明內(nèi)容
雖然諸如開放最短路徑優(yōu)先的標準提供了針對生成選路信息問題的有效解決方案,但這些標準生效起來耗費時間。例如,網(wǎng)絡(luò)改變發(fā)生之后瞬間,每個節(jié)點處的選路信息某種程度上是過時和不正確的。直到每個節(jié)點接收到對該改變的指示、確定網(wǎng)絡(luò)的新狀態(tài)、確定最優(yōu)選路路徑并更新轉(zhuǎn)發(fā)表之前,該信息將保持過時。由于可能頻繁的節(jié)點被添加到網(wǎng)絡(luò)、節(jié)點被從網(wǎng)絡(luò)移除、節(jié)點進入故障狀態(tài)、節(jié)點從故障狀態(tài)恢復(fù)以及其它網(wǎng)絡(luò)改變事件,路由器運行時間的相當一部分可能花費在根據(jù)過時的選路信息轉(zhuǎn)發(fā)流量或等待最新選路信息上。此處將該網(wǎng)絡(luò)改變事件與網(wǎng)絡(luò)內(nèi)全部節(jié)點處轉(zhuǎn)發(fā)表成功更新之間的時間稱為網(wǎng)絡(luò)收斂時間。相應(yīng)地,存在對這樣的方法的需求,該方法減少網(wǎng)絡(luò)改變事件與網(wǎng)絡(luò)內(nèi)不同節(jié)點處選路信息的收斂之間的時間量。特別地,提供一種這樣的方法和網(wǎng)絡(luò)節(jié)點將是可取的,所述方法和網(wǎng)絡(luò)節(jié)點減少更新轉(zhuǎn)發(fā)表花費的時間量。根據(jù)當前對減少網(wǎng)絡(luò)收斂時間的方法的需求,呈現(xiàn)各種示例性實施例的簡明摘要。在以下摘要中可以做出一些簡化和省略,以下摘要旨在突出和介紹各種示例性實施例的一些方面,而非限制本發(fā)明的范圍。足以允許本領(lǐng)域的技術(shù)人員構(gòu)造和使用本發(fā)明概念的對優(yōu)選示例性實施例的詳細描述將跟隨在稍后小節(jié)中。各種示例性實施例提供一種網(wǎng)絡(luò)路由器,所述網(wǎng)絡(luò)路由器可以預(yù)測很可能的未來網(wǎng)絡(luò)狀態(tài)。所述網(wǎng)絡(luò)路由器可以然后預(yù)先計算并存儲針對這些很可能的未來網(wǎng)絡(luò)狀態(tài)的選路信息,例如最短路徑樹、轉(zhuǎn)發(fā)表和/或選路表。此后,當所述網(wǎng)絡(luò)節(jié)點接收到所述網(wǎng)絡(luò)狀態(tài)已改變的指示時,所述節(jié)點可以首先檢查該新網(wǎng)絡(luò)狀態(tài)是否是已針對其預(yù)先計算了選路信息的一個。如果是,則所述節(jié)點可以使用所述預(yù)先計算出的選路信息,由此減少所述選路信息變?yōu)樽钚虑暗臅r間量。根據(jù)該第一示例性實施例,全部預(yù)測和預(yù)先計算功能在所述網(wǎng)絡(luò)節(jié)點本地被實施。各種可替換實施例提供一種預(yù)測節(jié)點,所述預(yù)測節(jié)點為所述網(wǎng)絡(luò)內(nèi)的其它節(jié)點實施這些和其它預(yù)測功能中的至少一些。例如,所述預(yù)測節(jié)點可以簡單地為所述其它節(jié)點預(yù)測很可能且相關(guān)的未來網(wǎng)絡(luò)狀態(tài),并將該信息發(fā)送給合適的節(jié)點。每個其它節(jié)點可以然后在本地預(yù)先計算關(guān)聯(lián)于所述未來網(wǎng)絡(luò)狀態(tài)的選路信息??商鎿Q地,所述預(yù)測節(jié)點可以為所述其它節(jié)點中的每個預(yù)先計算選路信息,并將所述關(guān)聯(lián)的選路信息與所述未來狀態(tài)信息一起發(fā)送給所述其它節(jié)點中的每個。所述其它節(jié)點然后僅不得不存儲該信息以便將來使用。各種示例性實施例涉及一種方法及相關(guān)網(wǎng)絡(luò)節(jié)點,所述方法及相關(guān)網(wǎng)絡(luò)節(jié)點包括以下中的一個或更多:在所述節(jié)點處接收當前網(wǎng)絡(luò)狀態(tài)已從舊網(wǎng)絡(luò)狀態(tài)改變?yōu)樾戮W(wǎng)絡(luò)狀態(tài)的指示;確定所述節(jié)點是否可訪問關(guān)聯(lián)于所述新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息;如果所述節(jié)點可訪問關(guān)聯(lián)于所述新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息,則使用所述預(yù)先計算的選路信息來對未來的網(wǎng)絡(luò)流量進行選路;以及,如果所述節(jié)點不可訪問關(guān)聯(lián)于所述新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息,則計算新選路信息,并使用所述新選路信息來對未來網(wǎng)絡(luò)流量進行選路。各種示例性實施例另外或可替換地涉及一種方法及相關(guān)網(wǎng)絡(luò)節(jié)點,所述方法及相關(guān)網(wǎng)絡(luò)節(jié)點包括以下中的一個或更多:第一接口,其接收網(wǎng)絡(luò)狀態(tài)信息;以及,網(wǎng)絡(luò)狀態(tài)預(yù)測器,其基于所述網(wǎng)絡(luò)狀態(tài)信息預(yù)測至少一個未來網(wǎng)絡(luò)狀態(tài),其中,所述至少一個未來網(wǎng)絡(luò)狀態(tài)不同于當前網(wǎng)絡(luò)狀態(tài)。應(yīng)當顯而易見,這樣,各種示例性實施例實現(xiàn)網(wǎng)絡(luò)收斂時間的減少。特別地,經(jīng)由針對很可能的未來網(wǎng)絡(luò)狀態(tài)預(yù)先計算選路信息,網(wǎng)絡(luò)節(jié)點可以減少在所述網(wǎng)絡(luò)實際改變后更新轉(zhuǎn)發(fā)表花費的時間量。
為更好地理解各種示例性實施例,參考附圖,其中:圖1示出了用于對數(shù)據(jù)分組進行選路的一個示例性網(wǎng)絡(luò);圖2示出了用于確定從一個節(jié)點到一些其它可能節(jié)點的最優(yōu)路徑的一個示例性最短路徑樹;圖3示出了用于基于分組目的地確定分組應(yīng)當被發(fā)送到的下一跳的一個示例性轉(zhuǎn)發(fā)表;圖4示出了用于對分組進行選路和減少網(wǎng)絡(luò)收斂時間的一個示例性網(wǎng)絡(luò)節(jié)點;圖5示出了用于預(yù)測很可能的未來網(wǎng)絡(luò)狀態(tài)的一個示例性預(yù)測節(jié)點;圖6示出了用于與預(yù)測節(jié)點協(xié)作對分組進行選路并減少網(wǎng)絡(luò)收斂時間的網(wǎng)絡(luò)節(jié)點的一個示例性實施例;圖7示出了用于預(yù)測很可能的未來網(wǎng)絡(luò)狀態(tài)的預(yù)測節(jié)點的一個可替換實施例;圖8示出了用于與預(yù)測節(jié)點協(xié)作對分組進行選路并減少網(wǎng)絡(luò)收斂時間的網(wǎng)絡(luò)節(jié)點的一個可替換實施例;圖9示出了用于定位預(yù)先計算的選路信息的一個示例性狀態(tài)機;以及圖10示出了用于減少網(wǎng)絡(luò)收斂時間的一種示例性方法。
具體實施例方式現(xiàn)在參考附圖,其中類似標號是指類似部件或步驟,公開了各種示例性實施例的寬泛方面。圖1示出了用于對數(shù)據(jù)分組進行選路的一個示例性網(wǎng)絡(luò)100。示例性網(wǎng)絡(luò)100可以是用于為各種應(yīng)用提供數(shù)據(jù)傳輸?shù)姆纸M交換通信網(wǎng)絡(luò)。示例性網(wǎng)絡(luò)100可以進一步實現(xiàn)用于響應(yīng)于網(wǎng)絡(luò)內(nèi)的改變自動更新選路信息的標準。例如,網(wǎng)絡(luò)100可以構(gòu)成實現(xiàn)開放最短路徑優(yōu)先(OSPF)標準的自治系統(tǒng)。示例性網(wǎng)絡(luò)可以包括一些節(jié)點A-G110-170。每個節(jié)點A_G110_170可以是路由器、交換機或其它適于接收并向分組各自的目的地轉(zhuǎn)發(fā)數(shù)據(jù)分組的網(wǎng)絡(luò)裝備。每個節(jié)點可以還連接到一些另外的設(shè)備(未示出),所述另外的設(shè)備例如是另外的網(wǎng)絡(luò)設(shè)備和終端用戶裝備。節(jié)點A-G110-170可以每個都經(jīng)由一個或更多鏈路連接到一個或更多其余節(jié)點A-G110-170。每個鏈路可以關(guān)聯(lián)于鏈路開銷。例如,節(jié)點C130可以經(jīng)由具有開銷2的鏈路連接到節(jié)點D140。該鏈路開銷可以基于各種因素來指派,所述因素例如是節(jié)點間的地理距離、關(guān)聯(lián)于鏈路的比特率、節(jié)點間的中間設(shè)備的數(shù)量和/或鏈路上的當前負載。諸如節(jié)點B120與節(jié)點G170間的鏈路的某些鏈路可以出故障了,并且由此不可用于轉(zhuǎn)發(fā)分組??梢韵鄳?yīng)地為所述鏈路指派非常高或無窮大的鏈路開銷以阻止使用。每個節(jié)點A-G110-170可以存儲示例性網(wǎng)絡(luò)100的本地表示。所述本地表示可以根據(jù)OSPF按照在由其余節(jié)點A-G110-170發(fā)送的鏈路狀態(tài)通告(LSA)消息中傳遞的信息在本地構(gòu)造。例如,每個節(jié)點可以將全部節(jié)點和邊的指示存儲在鏈路狀態(tài)數(shù)據(jù)庫(LSDB)中。所述表示可以被每個節(jié)點A-G110-170用于構(gòu)造最短路徑樹和最終的在將分組轉(zhuǎn)發(fā)向其目的地時使用的轉(zhuǎn)發(fā)表。圖2示出了用于確定從一個節(jié)點到一些其它可能節(jié)點的最優(yōu)路徑的一個示例性最短路徑樹(SPT) 200。SPT200可以使用任何本領(lǐng)域的技術(shù)人員已知的方法、使用諸如示例性網(wǎng)絡(luò)100的網(wǎng)絡(luò)的當前狀態(tài)的表示、從節(jié)點C130的視角來構(gòu)造。例如,節(jié)點可以使用Djikstra的最短路徑樹算法來構(gòu)造SPT。SPT200可以是由節(jié)點C130根據(jù)示例性網(wǎng)絡(luò)100而構(gòu)造的SPT。SPT200可以包括對應(yīng)于節(jié)點A-G110-170的一些節(jié)點表示A-G210-270。SPT200可以支持從節(jié)點C130到網(wǎng)絡(luò)內(nèi)每個節(jié)點的最優(yōu)路徑。例如,SPT200指示,從節(jié)點C130到節(jié)點G170的最短路徑是通過節(jié)點D140,而非通過節(jié)點B120或某個其它路徑。相應(yīng)地,根據(jù)SPT200,由節(jié)點C130接收的去往節(jié)點G170的分組應(yīng)當被轉(zhuǎn)發(fā)到節(jié)點D140。節(jié)點D140接著可以包括其自身的選路信息,使其能夠?qū)⒎纸M轉(zhuǎn)發(fā)到節(jié)點G170。
在計算SPT200之后,節(jié)點C130可以更新其轉(zhuǎn)發(fā)表以反映示例性網(wǎng)絡(luò)100的新狀態(tài)。特別地,節(jié)點C130可以分析SPT200以確定對于每個潛在目的節(jié)點應(yīng)當使用的下一跳節(jié)點??梢匀缓髮⒃撔畔⒋鎯υ谵D(zhuǎn)發(fā)表中,以便在轉(zhuǎn)發(fā)分組時快速訪問。圖3示出了用于基于分組目的地確定分組應(yīng)當被發(fā)送到的下一跳的一個示例性轉(zhuǎn)發(fā)表300。轉(zhuǎn)發(fā)表300可以是例如存儲在節(jié)點C130處的數(shù)據(jù)庫中的表??商鎿Q地,轉(zhuǎn)發(fā)表300可以是一系列鏈表、數(shù)組或類似數(shù)據(jù)結(jié)構(gòu)。由此,應(yīng)當顯而易見,轉(zhuǎn)發(fā)表300是底層數(shù)據(jù)的抽象,可以使用任何適于存儲底層數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。轉(zhuǎn)發(fā)表300可以包括目的地字段302和下一跳字段304。目的地字段302可以指示每個條目所關(guān)聯(lián)于的目的設(shè)備,而下一跳字段304可以指示適于所關(guān)聯(lián)目的設(shè)備的下一跳設(shè)備。應(yīng)當顯而易見,轉(zhuǎn)發(fā)表300在某些方面是簡化形式。例如,轉(zhuǎn)發(fā)表可以包含另外的字段,例如IP前綴、出站端口號、目的MAC地址和/或可替換的下一跳。各種修改對于本領(lǐng)域的技術(shù)人員將顯而易見。應(yīng)當顯而易見,示例性表300中所示的數(shù)據(jù)在某些方面是抽象和/或簡化形式;例如,目的字段302可以存儲一個或更多目的節(jié)點的地址。轉(zhuǎn)發(fā)表可以包括一些條目310-370。條目310可以指示,去往節(jié)點AllO的分組應(yīng)當被轉(zhuǎn)發(fā)到節(jié)點B120。同樣,條目320和350可以指示,去往節(jié)點B120或節(jié)點E150的分組應(yīng)當被轉(zhuǎn)發(fā)到節(jié)點B120。條目340、360、370可以指示,分別去往節(jié)點D、F、G140U60U70的分組應(yīng)當被轉(zhuǎn)發(fā)到節(jié)點D140。已描述了示例性網(wǎng)絡(luò)的部件,將提供對示例性網(wǎng)絡(luò)100的運行的簡明摘要。應(yīng)當顯而易見,以下描述旨在提供示例性網(wǎng)絡(luò)100的運行的概覽,并且因此在某些方面是簡化形式。示例性網(wǎng)絡(luò)100的詳細運行下面將結(jié)合圖4-10詳細描述。在節(jié)點C130已生成諸如表300的最新轉(zhuǎn)發(fā)表之后,節(jié)點C130可以使用其空閑處理時間來預(yù)測接下來很可能經(jīng)歷的未來網(wǎng)絡(luò)狀態(tài)。節(jié)點C130可以然后預(yù)先計算并存儲針對這些所預(yù)測狀態(tài)的每個的SPT。然后,如果網(wǎng)絡(luò)轉(zhuǎn)換到所預(yù)測狀態(tài)中的一個,則可以立即使用預(yù)先計算的SPT。因為節(jié)點C130可以立即開始更新其轉(zhuǎn)發(fā)表,由此減少了收斂時間。圖4示出了用于對分組進行選路和減少網(wǎng)絡(luò)收斂時間的一個示例性網(wǎng)絡(luò)節(jié)點400。網(wǎng)絡(luò)節(jié)點400可以對應(yīng)于示例性網(wǎng)絡(luò)100中的一個或更多節(jié)點A-G110-170。網(wǎng)絡(luò)節(jié)點400可以包括分組接收器405、鏈路狀態(tài)通告(LSA)識別器410、選路處理器420、分組發(fā)送器425、網(wǎng)絡(luò)狀態(tài)機430、網(wǎng)絡(luò)狀態(tài)歷史存儲440、最短路徑樹(SPT )生成器450、轉(zhuǎn)發(fā)表生成器460、轉(zhuǎn)發(fā)表存儲470和網(wǎng)絡(luò)狀態(tài)預(yù)測器480。分組接收器405可以是包括硬件和/或被編碼在機器可讀存儲介質(zhì)中的可執(zhí)行指令的接口,所述硬件和/或可執(zhí)行指令被配置為,從其它網(wǎng)絡(luò)設(shè)備接收分組。分組接收器405可以包括多個端口,并且可以從多個網(wǎng)絡(luò)設(shè)備接收分組。例如,分組接收器405可以接收鏈路狀態(tài)通告分組和關(guān)聯(lián)于普通網(wǎng)絡(luò)流量的分組。鏈路狀態(tài)通告(LSA)識別器410可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,確定所接收分組是否是節(jié)點400應(yīng)當處理的LSA。如果分組是LSA,則LSA識別器410可以通知網(wǎng)絡(luò)狀態(tài)機430網(wǎng)絡(luò)中已發(fā)生改變。例如,LSA識別器410可以簡單地將分組傳遞給網(wǎng)絡(luò)狀態(tài)機410。否則,LSA識別器可以將分組傳遞給選路處理器以便進一步進行選路。選路處理器420可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,將分組選路向其目的地。選路處理器可以從每個所接收分組中提取目的地,并經(jīng)由使用存儲在轉(zhuǎn)發(fā)表存儲470中的轉(zhuǎn)發(fā)表來確定針對該目的地的下一跳。選路存儲器可以然后經(jīng)由發(fā)送器425將分組轉(zhuǎn)發(fā)到合適的下一跳。分組發(fā)送器425可以是包括硬件和/或被編碼在機器可讀存儲介質(zhì)中的可執(zhí)行指令的接口,所述硬件和/或可執(zhí)行指令被配置為,將分組發(fā)送到其它網(wǎng)絡(luò)設(shè)備。分組發(fā)送器425可以包括多個端口,并且可以將多個類型的分組發(fā)送到多個網(wǎng)絡(luò)設(shè)備。例如,分組發(fā)送器425可以發(fā)送鏈路狀態(tài)通告分組和關(guān)聯(lián)于普通網(wǎng)絡(luò)流量的分組。網(wǎng)絡(luò)狀態(tài)機430可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,解釋所接收的LSA以確定網(wǎng)絡(luò)狀態(tài)已如何改變。例如,網(wǎng)絡(luò)狀態(tài)機可以可訪問當前網(wǎng)絡(luò)狀態(tài)的表示,并且基于所接收的LSA修改網(wǎng)絡(luò)狀態(tài)??梢匀缓髮⑿戮W(wǎng)絡(luò)狀態(tài)表示存儲在例如網(wǎng)絡(luò)狀態(tài)歷史存儲440中。網(wǎng)絡(luò)狀態(tài)機430可以進一步基于所接收的LSA確定,SPT是否已可用于新網(wǎng)絡(luò)狀態(tài)。下面將關(guān)于圖9詳細描述網(wǎng)絡(luò)狀態(tài)機430的一個示例性實施例的詳細運行。如果網(wǎng)絡(luò)狀態(tài)機430能夠定位預(yù)先計算的SPT,則網(wǎng)絡(luò)狀態(tài)機430可以將該SPT轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)表生成器460。否則,網(wǎng)絡(luò)狀態(tài)機430可以向SPT生成器450發(fā)送應(yīng)當生成新SPT的指示。在各種實施例中,當網(wǎng)絡(luò)狀態(tài)機430進入新狀態(tài)時,其可以刪除先前狀態(tài)的表示。在各種可替換實施例中,網(wǎng)絡(luò)狀態(tài)機可以保留先前狀態(tài)及任何關(guān)聯(lián)于其的SPT、轉(zhuǎn)發(fā)表、選路表和/或其它選路信息。如將在下面參考圖9詳細描述的那樣,網(wǎng)絡(luò)狀態(tài)機430可以進一步生成一個或更多轉(zhuǎn)換,以便從新狀態(tài)重新進入先前狀態(tài)。例如,網(wǎng)絡(luò)狀態(tài)機430可以生成與剛處理的LSA相反的轉(zhuǎn)換,并導致回到該先前狀態(tài)。網(wǎng)絡(luò)狀態(tài)歷史存儲440可以是任何能夠存儲先前和/或當前網(wǎng)絡(luò)狀態(tài)的表示的機器可讀介質(zhì)。相應(yīng)地,網(wǎng)絡(luò)狀態(tài)歷史存儲440可以包括機器可讀存儲介質(zhì),所述機器可讀存儲介質(zhì)例如是只讀存儲器(ROM)、隨機訪問存儲器(RAM)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備和/或類似存儲介質(zhì)。最短路徑樹(SPT)生成器450可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,從網(wǎng)絡(luò)的表示生成最短路徑樹。例如,SPT生成器450可以使用Djikstra的算法或本領(lǐng)域的技術(shù)人員已知的任何其它方法來生成最短路徑樹。一旦已生成SPT,則如果該SPT代表當前網(wǎng)絡(luò)狀態(tài),則SPT生成器450可以將SPT發(fā)送到轉(zhuǎn)發(fā)表生成器。另一方面,如將在下面詳細描述的那樣,如果新SPT代表預(yù)測的網(wǎng)絡(luò)狀態(tài),則SPT生成器450可以將該新SPT發(fā)送到網(wǎng)絡(luò)狀態(tài)機430以便于可能的將來使用。網(wǎng)絡(luò)狀態(tài)機430可以然后將SPT存儲在其自身的本地存儲器或節(jié)點400內(nèi)的其它存儲設(shè)備中。轉(zhuǎn)發(fā)表生成器460可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,基于SPT生成或更新轉(zhuǎn)發(fā)表。例如,轉(zhuǎn)發(fā)表生成器可以基于針對網(wǎng)絡(luò)節(jié)點400的當前SPT確定轉(zhuǎn)發(fā)表存儲470中的任意條目是否應(yīng)當被添加或修改。轉(zhuǎn)發(fā)表存儲470可以是任何能夠存儲轉(zhuǎn)發(fā)表的機器可讀介質(zhì)。相應(yīng)地,轉(zhuǎn)發(fā)表存儲470可以包括機器可讀存儲介質(zhì),所述機器可讀存儲介質(zhì)例如是只讀存儲器(ROM)、隨機訪問存儲器(RAM)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備和/或類似存儲介質(zhì)。轉(zhuǎn)發(fā)表存儲470可以是節(jié)點400內(nèi)的獨立存儲設(shè)備,或者可以與網(wǎng)絡(luò)狀態(tài)歷史存儲440相同。
網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為預(yù)測可能的未來網(wǎng)絡(luò)狀態(tài)。所述預(yù)測可以是基于一些因素,所述因素例如是當前網(wǎng)絡(luò)狀態(tài)、先前經(jīng)歷的網(wǎng)絡(luò)狀態(tài)、潛在改變的可能性和潛在改變與網(wǎng)絡(luò)的相關(guān)性。例如,如果網(wǎng)絡(luò)狀態(tài)歷史存儲440中的數(shù)據(jù)指示當前可用的特定鏈路已頻繁進入故障狀態(tài),其中,所述故障狀態(tài)導致對轉(zhuǎn)發(fā)表的改變,則網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以指示該鏈路在下一個LSA中很有可能被指示為已出故障。另一方面,如果網(wǎng)絡(luò)狀態(tài)預(yù)測器確定正頻繁出故障的鏈路很少迫使轉(zhuǎn)發(fā)表中的改變,則網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以避免將該潛在狀態(tài)報告或認為是很可能的未來狀態(tài)。應(yīng)當顯而易見,可以使用眾多方法或準則來確定哪些網(wǎng)絡(luò)狀態(tài)是預(yù)先計算起來最有利的。網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以在網(wǎng)絡(luò)節(jié)點400不忙于實施其它任務(wù)時使用網(wǎng)絡(luò)節(jié)點400的空閑時間來預(yù)測未來網(wǎng)絡(luò)狀態(tài)。網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以一次預(yù)測一個狀態(tài),或者可以生成預(yù)測的狀態(tài)的列表。可以按可能性/相關(guān)性的降序?qū)λ隽斜磉M行排序。此后,網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以在網(wǎng)絡(luò)節(jié)點400空閑期間將將預(yù)測的狀態(tài)發(fā)送到最短路徑樹生成器,因此可以針對預(yù)測的狀態(tài)的每個預(yù)先計算SPT??臻e時間可以由網(wǎng)絡(luò)節(jié)點400識別為當節(jié)點400處理器不忙于實施其它任務(wù)時的時間。網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以以這種方式繼續(xù),直到已預(yù)先計算出關(guān)聯(lián)于特定數(shù)量的狀態(tài)的SPT,或者直到特定數(shù)量的存儲器已被用于存儲預(yù)先計算的SPT。在某些實施例中,網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以預(yù)測這樣的未來狀態(tài),所述未來狀態(tài)不導致對任何選路信息的改變。在所述情況下,網(wǎng)絡(luò)狀態(tài)機430可以忽略所述預(yù)測,或者可以存儲當前SPT可以被使用或響應(yīng)于所述網(wǎng)絡(luò)改變不應(yīng)當采取任何行動的指示。當網(wǎng)絡(luò)狀態(tài)改變時,網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以從頭開始,并且生成預(yù)測的狀態(tài)的新集合和SPT??商鎿Q地,網(wǎng)絡(luò)狀態(tài)預(yù)測器480可以嘗試重用先前預(yù)先計算的SPT,替換僅哪些根據(jù)當前網(wǎng)絡(luò)狀態(tài)最不相關(guān)或可能發(fā)生的。應(yīng)當指出,盡管按照預(yù)先計算最短路徑樹描述了示例性節(jié)點400,但各種可替換實施例可以預(yù)先計算可替換或另外類型的選路信息。例如,節(jié)點(未示出)可以預(yù)先計算轉(zhuǎn)發(fā)表自身、其一部分、選路表或其一部分。對于使用除OSPF外的標準的系統(tǒng),可以預(yù)先計算專用于那些標準的選路信息。在實現(xiàn)所述可替換實施例時有用的修改對于本領(lǐng)域的技術(shù)人員將顯而易見。圖5示出了用于預(yù)測很可能的未來網(wǎng)絡(luò)狀態(tài)的一個示例性預(yù)測節(jié)點500。預(yù)測節(jié)點500可以對應(yīng)于示例性網(wǎng)絡(luò)100中的一個或更多節(jié)點A-G110-170或者另外的節(jié)點(未示出)。預(yù)測節(jié)點500可以適于結(jié)合一個或更多節(jié)點A-G110-170運行以預(yù)測未來SPT。預(yù)測節(jié)點500可以包括分組接收器505、網(wǎng)絡(luò)狀態(tài)歷史識別器510、網(wǎng)絡(luò)狀態(tài)預(yù)測生成器520、分組發(fā)送器525、網(wǎng)絡(luò)狀態(tài)歷史存儲540和網(wǎng)絡(luò)狀態(tài)預(yù)測器580。預(yù)測節(jié)點500可以包括另外的其它部件。例如,在其中預(yù)測節(jié)點500還是路由器的各種實施例中,預(yù)測節(jié)點500可以包括網(wǎng)絡(luò)節(jié)點400的一個或更多單元。分組接收器505可以是包括硬件和/或被編碼在機器可讀存儲介質(zhì)中的可執(zhí)行指令的接口,所述硬件和/或可執(zhí)行指令被配置為,從其它網(wǎng)絡(luò)設(shè)備接收分組。分組接收器505可以包括多個端口,并且可以從多個網(wǎng)絡(luò)設(shè)備接收分組。例如,分組接收器505可以接收鏈路狀態(tài)通告分組、其它網(wǎng)絡(luò)狀態(tài)歷史分組和/或關(guān)聯(lián)于普通網(wǎng)絡(luò)流量的分組。
網(wǎng)絡(luò)狀態(tài)歷史識別器510可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,確定經(jīng)由分組接收器505接收的分組是否包括網(wǎng)絡(luò)狀態(tài)歷史。在某些實施例中,所述分組可以是LSA。在其中其它網(wǎng)絡(luò)節(jié)點適于通信關(guān)于網(wǎng)絡(luò)狀態(tài)的信息的其它實施例中,所述分組可以是由另一節(jié)點向預(yù)測節(jié)點500發(fā)送的特別構(gòu)造的分組??梢远ㄆ诘鼗蛎慨敶嬖趯Πl(fā)出的節(jié)點所經(jīng)歷的網(wǎng)絡(luò)狀態(tài)的更新時發(fā)送所述分組。當識別到網(wǎng)絡(luò)狀態(tài)歷史分組時,網(wǎng)絡(luò)狀態(tài)歷史識別器510可以更新存儲在網(wǎng)絡(luò)狀態(tài)歷史存儲中的數(shù)據(jù)以反映該更新。網(wǎng)絡(luò)狀態(tài)預(yù)測生成器520可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,生成網(wǎng)絡(luò)狀態(tài)預(yù)測消息以便傳輸?shù)狡渌?jié)點。例如,網(wǎng)絡(luò)狀態(tài)預(yù)測生成器520可以構(gòu)造分組,該分組包含由網(wǎng)絡(luò)狀態(tài)預(yù)測器580生成的單一網(wǎng)絡(luò)狀態(tài)預(yù)測或網(wǎng)絡(luò)狀態(tài)預(yù)測的已排序列表。此后,網(wǎng)絡(luò)狀態(tài)預(yù)測生成器可以經(jīng)由分組發(fā)送器525將該新分組發(fā)送到一個或更多其它節(jié)點。如下面將參考網(wǎng)絡(luò)狀態(tài)預(yù)測器580描述的那樣,預(yù)測可以適用于多個節(jié)點或僅單一節(jié)點。網(wǎng)絡(luò)狀態(tài)預(yù)測生成器520可以將該新分組轉(zhuǎn)發(fā)到僅那些該預(yù)測適用的節(jié)點。分組發(fā)送器525可以是包括硬件和/或被編碼在機器可讀存儲介質(zhì)中的可執(zhí)行指令的接口,所述硬件和/或可執(zhí)行指令被配置為,向其它網(wǎng)絡(luò)設(shè)備發(fā)送分組。分組發(fā)送器525可以包括多個端口,并且可以向多個網(wǎng)絡(luò)設(shè)備發(fā)送分組。例如,分組發(fā)送器525可以發(fā)送鏈路狀態(tài)通告分組、網(wǎng)絡(luò)狀態(tài)預(yù)測分組和/或關(guān)聯(lián)于普通網(wǎng)絡(luò)流量的分組。網(wǎng)絡(luò)狀態(tài)歷史存儲540可以是任何能夠存儲先前和/或當前網(wǎng)絡(luò)狀態(tài)的表示的機器可讀介質(zhì)。相應(yīng)地,網(wǎng)絡(luò)狀態(tài)歷史存儲540可以包括機器可讀存儲介質(zhì),所述機器可讀存儲介質(zhì)例如是只讀存儲器(ROM)、隨機訪問存儲器(RAM)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備和/或類似存儲介質(zhì)。網(wǎng)絡(luò)狀態(tài)預(yù)測器580可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為預(yù)測可能的未來網(wǎng)絡(luò)狀態(tài)。在這方面,網(wǎng)絡(luò)狀態(tài)預(yù)測器可以與網(wǎng)絡(luò)狀態(tài)預(yù)測器480類似或相同。網(wǎng)絡(luò)狀態(tài)預(yù)測器580可以進一步適于在特定節(jié)點的上下文內(nèi)生成預(yù)測。相應(yīng)地,網(wǎng)絡(luò)狀態(tài)預(yù)測器可以對網(wǎng)絡(luò)內(nèi)的不同節(jié)點生成不同預(yù)測。例如,網(wǎng)絡(luò)狀態(tài)預(yù)測器可以確定,一個很可能的未來網(wǎng)絡(luò)狀態(tài)將迫使對第一節(jié)點的轉(zhuǎn)發(fā)表、而非第二節(jié)點的轉(zhuǎn)發(fā)表的更新。相應(yīng)地,網(wǎng)絡(luò)狀態(tài)預(yù)測器580可以指示,該未來網(wǎng)絡(luò)狀態(tài)應(yīng)當被報告給第一節(jié)點而非第二節(jié)點。圖6示出了用于對分組進行選路并與預(yù)測節(jié)點協(xié)作減少網(wǎng)絡(luò)收斂時間的網(wǎng)絡(luò)節(jié)點600的一個示例性實施例。網(wǎng)絡(luò)節(jié)點600可以對應(yīng)于示例性網(wǎng)絡(luò)100中的一個或更多節(jié)點A-G110-170。網(wǎng)絡(luò)節(jié)點600可以包括分組接收器405、網(wǎng)絡(luò)狀態(tài)預(yù)測識別器680、鏈路狀態(tài)通告(LSA)識別器410、選路處理器420、分組發(fā)送器425、網(wǎng)絡(luò)狀態(tài)機430、預(yù)測存儲685、最短路徑樹(SPT)生成器450、轉(zhuǎn)發(fā)表生成器460、轉(zhuǎn)發(fā)表存儲470和網(wǎng)絡(luò)狀態(tài)預(yù)測器480。相應(yīng)地,網(wǎng)絡(luò)節(jié)點600的一些單元可以與網(wǎng)絡(luò)節(jié)點400的各個單元類似或相同。網(wǎng)絡(luò)狀態(tài)預(yù)測識別器680可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,確定所接收的分組是否包括網(wǎng)絡(luò)狀態(tài)預(yù)測,所述網(wǎng)絡(luò)狀態(tài)預(yù)測例如是由預(yù)測節(jié)點500構(gòu)造和發(fā)送的網(wǎng)絡(luò)狀態(tài)預(yù)測消息。如果所接收的分組包括所述信息,則網(wǎng)絡(luò)狀態(tài)預(yù)測識別器680可以從該分組中提取一個或更多網(wǎng)絡(luò)狀態(tài)預(yù)測并將其存儲在預(yù)測存儲685中。此后,最短路徑樹生成器450可以根據(jù)已預(yù)測的網(wǎng)絡(luò)狀態(tài)使用網(wǎng)絡(luò)節(jié)點600的空閑處理時間來計算SPT,并更新網(wǎng)絡(luò)狀態(tài)機430。預(yù)測存儲685可以是任何能夠存儲當前和/或預(yù)測的網(wǎng)絡(luò)狀態(tài)的表示的機器可讀介質(zhì)。相應(yīng)地,預(yù)測存儲685可以包括機器可讀存儲介質(zhì),所述機器可讀存儲介質(zhì)例如是只讀存儲器(ROM)、隨機訪問存儲器(RAM)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備和/或類似存儲介質(zhì)。圖7示出了用于預(yù)測很可能的未來網(wǎng)絡(luò)狀態(tài)的預(yù)測節(jié)點700的一個可替換實施例。預(yù)測節(jié)點700可以對應(yīng)于示例性網(wǎng)絡(luò)100中的一個或更多節(jié)點A-G110-170或者另外的節(jié)點(未示出)。預(yù)測節(jié)點700可以適于結(jié)合一個或更多節(jié)點A-G110-170運行以預(yù)測未來的SPT。預(yù)測節(jié)點700可以包括分組接收器505、網(wǎng)絡(luò)狀態(tài)歷史識別器510、分組發(fā)送器525、網(wǎng)絡(luò)狀態(tài)歷史存儲540、網(wǎng)絡(luò)狀態(tài)預(yù)測器580、最短路徑樹生成器750和最短路徑樹消息生成器790。相應(yīng)地,預(yù)測節(jié)點700的一些單元可以與預(yù)測節(jié)點700的各個單元類似或相同。預(yù)測節(jié)點700可以包括另外的其它部件。例如,在其中預(yù)測節(jié)點700還是路由器的各種實施例中,預(yù)測節(jié)點可以包括網(wǎng)絡(luò)節(jié)點400的一個或更多單元。最短路徑樹(SPT)生成器750可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,從網(wǎng)絡(luò)的表示生成最短路徑樹。相應(yīng)地,SPT生成器750可以與網(wǎng)絡(luò)節(jié)點400的SPT生成器450類似或相同。SPT生成器750可以使用預(yù)測節(jié)點700的空閑時間來針對由網(wǎng)絡(luò)狀態(tài)預(yù)測生成器580生成的已預(yù)測網(wǎng)絡(luò)狀態(tài)生成一個或更多SPT。最短路徑樹(SPT)消息生成器790可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,生成SPT預(yù)測消息以便傳輸?shù)狡渌?jié)點。例如,SPT消息生成器790可以構(gòu)造分組,該分組包含由網(wǎng)絡(luò)狀態(tài)預(yù)測器580和SPT生成器750生成的單一網(wǎng)絡(luò)狀態(tài)預(yù)測及關(guān)聯(lián)SPT或帶有關(guān)聯(lián)SPT的網(wǎng)絡(luò)狀態(tài)預(yù)測的已排序列表。此后,SPT消息生成器790可以經(jīng)由分組發(fā)送器525將該新分組發(fā)送到一個或更多其它節(jié)點。如先前描述的,預(yù)測可以適用于多個節(jié)點或僅單一節(jié)點。SPT消息生成器790可以將該新分組轉(zhuǎn)發(fā)到僅那些該預(yù)測適用的節(jié)點。圖8示出了用于對分組進行選路并與預(yù)測節(jié)點協(xié)作減少網(wǎng)絡(luò)收斂時間的網(wǎng)絡(luò)節(jié)點800的一個可替換實施例。網(wǎng)絡(luò)節(jié)點800可以對應(yīng)于示例性網(wǎng)絡(luò)100中的一個或更多節(jié)點A-G110-170。網(wǎng)絡(luò)節(jié)點800可以包括分組接收器405、最短路徑樹(SPT)消息識別器895、鏈路狀態(tài)通告(LSA)識別器410、選路處理器420、分組發(fā)送器425、網(wǎng)絡(luò)狀態(tài)機430、最短路徑樹(SPT)生成器450、轉(zhuǎn)發(fā)表生成器460、轉(zhuǎn)發(fā)表存儲470和網(wǎng)絡(luò)狀態(tài)預(yù)測器480。相應(yīng)地,網(wǎng)絡(luò)節(jié)點800的一些單元可以與網(wǎng)絡(luò)節(jié)點400和/或網(wǎng)絡(luò)節(jié)點600的各個單元類似或相同。最短路徑樹(SPT)消息識別器895可以包括硬件和/或機器可讀存儲介質(zhì)中的可執(zhí)行指令,所述硬件和/或可執(zhí)行指令被配置為,確定接收的分組是否包括一個或更多預(yù)測的SPT,所述預(yù)測的SPT例如是由預(yù)測節(jié)點700生成的SPT消息。如果接收的分組包括所述信息,則SPT消息識別器895可以將預(yù)測的SPT轉(zhuǎn)發(fā)到網(wǎng)絡(luò)狀態(tài)機430以便于潛在的未來使用。
圖9示出了用于定位預(yù)先計算的選路信息的一個示例性狀態(tài)機900。狀態(tài)機900可以對應(yīng)于網(wǎng)絡(luò)狀態(tài)機430的編程和/或由其管理的一個或更多數(shù)據(jù)結(jié)構(gòu)。狀態(tài)機900可以包括當前狀態(tài)910、一些潛在狀態(tài)920、930、940以及一些潛在轉(zhuǎn)換911、912、913、914。每個狀態(tài)910、920、930、940可以進一步關(guān)聯(lián)于SPT。轉(zhuǎn)換911在當前狀態(tài)910發(fā)起和終止。轉(zhuǎn)換911指示,如果LSA即將指示節(jié)點B120與節(jié)點G170之間的鏈路即將被恢復(fù)到10的鏈路開銷,則其將是適用的。因為轉(zhuǎn)換911循環(huán)回同一狀態(tài),所以其指示,假如有所述LSA,則將不對針對該節(jié)點的合適SPT做出任何改變。該節(jié)點可以然后確定,不必采取任何進一步的行動。轉(zhuǎn)換912在當前狀態(tài)910發(fā)起,在潛在狀態(tài)920終止,并且將適用于這樣的LSA,該LSA指示節(jié)點C130與節(jié)點D140之間的鏈路的故障。在所述情況下,節(jié)點將使用關(guān)聯(lián)于狀態(tài)920的SPT,并且因此避免使用新近出故障的鏈路。轉(zhuǎn)換913在當前狀態(tài)910發(fā)起,在潛在狀態(tài)930終止,并且將適用于這樣的LSA,該LSA指示故障節(jié)點B120。在所述情況下,節(jié)點將使用關(guān)聯(lián)于狀態(tài)930的SPT,并且因此除非絕對必要否則避免向節(jié)點B120發(fā)送流量。在該示例中,僅去往節(jié)點B120的流量將被發(fā)送到節(jié)點B120。轉(zhuǎn)換914在當前狀態(tài)910發(fā)起,在潛在狀態(tài)940終止,并且將適用于這樣的LSA,該LSA指示,連接到僅節(jié)點F160的新節(jié)點H (未示出)已被添加到網(wǎng)絡(luò)。在所述情況下,節(jié)點將使用關(guān)聯(lián)于狀態(tài)940的SPT,并且此后經(jīng)由節(jié)點D140向該新節(jié)點發(fā)送流量。應(yīng)當指出,所示的轉(zhuǎn)換準則是指示例。另外的轉(zhuǎn)換準則對本領(lǐng)域的技術(shù)人員將顯而易見。例如,可以將節(jié)點從網(wǎng)絡(luò)的移除用作準則。進一步例如,可以在單一轉(zhuǎn)換中指示多個改變。例如,可以添加從狀態(tài)910到狀態(tài)913的轉(zhuǎn)換(未示出),適用于這樣的LSA,該LSA報告B以及B與G之間的鏈路這兩者的故障。圖10示出了用于減少網(wǎng)絡(luò)收斂時間的一種示例性方法1000。方法1000或其部分可以由網(wǎng)絡(luò)節(jié)點400、500、600、700和/或800的部件來實施。方法1000在步驟1000中開始,并且繼續(xù)下去到步驟1010,在此處,網(wǎng)絡(luò)節(jié)點接收到LSA。然后,在步驟1020中,節(jié)點可以確定新的網(wǎng)絡(luò)狀態(tài)是什么。例如,節(jié)點可以如上面描述的那樣對狀態(tài)機應(yīng)用LSA。在步驟1030中,節(jié)點可以確定,是否已針對新網(wǎng)絡(luò)狀態(tài)計算出了最短路徑樹(SPT)。例如,節(jié)點可以確定,狀態(tài)是否存在于針對該LSA的狀態(tài)機中,和/或SPT是否關(guān)聯(lián)于該狀態(tài)。如果是,則節(jié)點可以在步驟1040中簡單地檢索已預(yù)先計算的SPT。另一方面,如果沒有任何預(yù)先計算的SPT可用,則節(jié)點可以在步驟1050中計算新SPT。不論獲取方法如何,一旦SPT可用,則節(jié)點可以繼續(xù)下去以在步驟1060中生成轉(zhuǎn)發(fā)表。在例如圖7和/或8的實施例中那樣、其中第二節(jié)點針對其它節(jié)點生成預(yù)測的SPT的各種實施例中,方法1000可以繼續(xù)下去直接到步驟1095。否則,方法1000可以繼續(xù)下去到步驟1065,在此處,節(jié)點可以確定該節(jié)點的CPU或內(nèi)核中的至少一個當前是否空閑。方法1000在繼續(xù)下去之前可以在步驟1065處等待直到CPU空閑??商鎿Q地,方法1000在該等待期間可以被其它事件中斷或暫停,所述其它事件例如是新LSA的接收。當節(jié)點確定CPU當前空閑時,方法1000可以繼續(xù)下去到步驟1070。在步驟1070中,節(jié)點可以確定,是否有足夠的存儲器可用于存儲另外的SPT。可替換地或另外,節(jié)點可以確定,是否已預(yù)先計算了滿足條件數(shù)量的SPT。如果可以和/或應(yīng)當預(yù)先計算更多SPT,則方法1000繼續(xù)下去到步驟1080。在各種實施例中,為容納針對已預(yù)測狀態(tài)的SPT,可以將一個或更多較不相關(guān)的SPT從存儲器中清除。在步驟1080中,節(jié)點確定預(yù)測的狀態(tài)。這可以包括在本地預(yù)測未來狀態(tài)和/或讀取由外部節(jié)點提供的已預(yù)測狀態(tài)的步驟。方法1000然后繼續(xù)下去到步驟1090,在此處,節(jié)點基于預(yù)測的網(wǎng)絡(luò)狀態(tài)計算新SPT。方法1000然后循環(huán)回步驟1065以重復(fù)該過程。取決于實施例,一旦存儲器變滿或已預(yù)先計算了滿足條件數(shù)量的SPT,則方法1000將從步驟1070繼續(xù)下去在步驟1095中結(jié)束。應(yīng)當顯而易見,當節(jié)點正在預(yù)先計算SPT時,新LSA可以到達。各種實施例假設(shè),可以中斷或過早暫停步驟1070-1090的SPT預(yù)先計算過程以處理新LSA。對現(xiàn)實實現(xiàn)的另外修改對于本領(lǐng)域的技術(shù)人員將顯而易見。根據(jù)前述內(nèi)容,各種示例性實施例實現(xiàn)了網(wǎng)絡(luò)收斂時間的減少。特別地,經(jīng)由針對很可能的未來網(wǎng)絡(luò)狀態(tài)預(yù)先計算例如SPT和/或轉(zhuǎn)發(fā)表的選路信息,網(wǎng)絡(luò)節(jié)點可以減少在網(wǎng)絡(luò)實際改變之后更新轉(zhuǎn)發(fā)表花費的時間量。從前面描述中應(yīng)當顯而易見,本發(fā)明的各種示例性實施例可以用硬件、軟件和/或固件來實現(xiàn)。此外,各種示例性實施例可以被實現(xiàn)為存儲在機器可讀存儲介質(zhì)中的指令,所述指令可以被至少一個處理器讀取并執(zhí)行以實施此處詳細描述的操作。機器可讀存儲介質(zhì)可以包括任何用于以可被機器讀取的形式存儲信息的機制,所述機器例如是個人或膝上計算機、服務(wù)器或其它計算設(shè)備。由此,機器可讀存儲介質(zhì)可以包括只讀存儲器(ROM)、隨機訪問存儲器(RAM)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備和類似存儲介質(zhì)。附圖中所示的各種單元的功能,包括任何被標記為“處理器”的功能框,可以通過使用專用硬件以及能夠關(guān)聯(lián)于合適的軟件執(zhí)行軟件的硬件來提供。當由處理器提供時,功能可以由單一專用處理器、由單一共享處理器或由其中一些可以被共享的多個單獨處理器來提供。此外,對術(shù)語“處理器”或“控制器”的明確使用不應(yīng)當被解釋為僅指能夠執(zhí)行軟件的硬件,并且可以非限制性地暗含包括數(shù)字信號處理器(DSP)硬件、網(wǎng)絡(luò)處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、用于存儲軟件的只讀存儲器(ROM)、隨機訪問存儲器(RAM)和非易失性存儲。可以還包括其它常規(guī)和/或定制的硬件。類似地,附圖中所示的任何開關(guān)是僅概念性的。其功能可以通過程序邏輯的運行、通過專用邏輯、通過程序控制與專用邏輯的交互或甚至手工地來實現(xiàn),特定技術(shù)可由實現(xiàn)者根據(jù)來自上下文的特別理解來選擇。本領(lǐng)域的技術(shù)人員應(yīng)當認識到,此處的任何框圖代表體現(xiàn)本發(fā)明原理的示例性電路的概念圖。類似地,應(yīng)當認識到,任何流程圖表、流程圖解、狀態(tài)轉(zhuǎn)換圖、偽代碼等代表各種過程,所述過程可以實質(zhì)上在機器可讀介質(zhì)中表示并且因此被計算機或處理器執(zhí)行,不論是否明確示出了所述計算機或處理器。盡管已特別參考其特定示例性方面詳細描述了各種示例性實施例,但應(yīng)當理解,本發(fā)明能夠有其它實施例,并且其細節(jié)能夠在各種顯而易見的方面進行修改。如對本領(lǐng)域的技術(shù)人員將顯而易見的那樣,在仍在本發(fā)明的精神和范圍內(nèi)的同時,可以實現(xiàn)各種變型和修改。相應(yīng)地,前面的公開、描述和附圖用于僅示例目的,并且絕不限制本發(fā)明,本發(fā)明僅由權(quán)利要求定義。
權(quán)利要求
1.一種在網(wǎng)絡(luò)節(jié)點中實施的減少網(wǎng)絡(luò)中的選路路徑收斂時間的方法,所述方法包括: 在第一網(wǎng)絡(luò)節(jié)點處接收當前網(wǎng)絡(luò)狀態(tài)已從舊網(wǎng)絡(luò)狀態(tài)改變?yōu)樾戮W(wǎng)絡(luò)狀態(tài)的指示; 確定所述第一網(wǎng)絡(luò)節(jié)點是否可訪問關(guān)聯(lián)于所述新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息; 如果所述第一網(wǎng)絡(luò)節(jié)點可訪問關(guān)聯(lián)于所述新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息,則使用所述預(yù)先計算的選路信息來對未來網(wǎng)絡(luò)流量進行選路;以及 如果所述第一網(wǎng)絡(luò)節(jié)點不可訪問關(guān)聯(lián)于所述新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息,則計算新選路信息,并使用所述新選路信息來對所述未來網(wǎng)絡(luò)流量進行選路。
2.根據(jù)權(quán)利要求1所述的方法,進一步包括: 預(yù)測未來網(wǎng)絡(luò)狀態(tài); 基于所述預(yù)測的未來網(wǎng)絡(luò)狀態(tài),計算預(yù)測的選路信息;以及 將所述計算的選路信息關(guān)聯(lián)于所述未來網(wǎng)絡(luò)狀態(tài)存儲在所述第一網(wǎng)絡(luò)節(jié)點處。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述預(yù)測和計算步驟中的至少一個在不同于所述第一網(wǎng)絡(luò)節(jié)點的第二網(wǎng)絡(luò)節(jié)點處實施。
4.根據(jù)權(quán)利要求2所述的方法,其中,所述預(yù)測所述未來網(wǎng)絡(luò)狀態(tài)的步驟進一步包括: 生成預(yù)測的未來網(wǎng)絡(luò)狀態(tài)的已排序集合;以及 確定所述預(yù)測的未來網(wǎng)絡(luò)狀態(tài)的已排序集合內(nèi)還未針對其計算選路信息的第一未來網(wǎng)絡(luò)狀態(tài)。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述預(yù)先計算的選路信息和所述新選路信息兩者都是最短路徑樹或轉(zhuǎn)發(fā)表。
6.根據(jù)權(quán)利要求1所述的方法,其中,使用所述預(yù)先計算的選路信息來對未來網(wǎng)絡(luò)流量進行選路進一步包括: 基于所述預(yù)先計算的選路信息計算轉(zhuǎn)發(fā)表。
7.根據(jù)權(quán)利要求1所述的方法,其進一步包括: 在接收到當前網(wǎng)絡(luò)狀態(tài)已改變的指示后,將關(guān)聯(lián)于舊網(wǎng)絡(luò)狀態(tài)的舊選路信息關(guān)聯(lián)于所述舊網(wǎng)絡(luò)狀態(tài)存儲在所述第一網(wǎng)絡(luò)節(jié)點處。
8.一種減少網(wǎng)絡(luò)中選路路徑收斂時間的第一網(wǎng)絡(luò)節(jié)點,所述第一網(wǎng)絡(luò)節(jié)點包括: 第一接口,其接收網(wǎng)絡(luò)狀態(tài)信息;以及 網(wǎng)絡(luò)狀態(tài)預(yù)測器,其基于所述網(wǎng)絡(luò)狀態(tài)信息預(yù)測至少一個未來網(wǎng)絡(luò)狀態(tài), 其中,所述至少一個未來網(wǎng)絡(luò)狀態(tài)不同于當前網(wǎng)絡(luò)狀態(tài)。
9.根據(jù)權(quán)利要求8的第一網(wǎng)絡(luò)節(jié)點,進一步包括: 網(wǎng)絡(luò)狀態(tài)預(yù)測生成器,其生成包括所述至少一個未來網(wǎng)絡(luò)狀態(tài)的預(yù)測消息;以及 第二接口,其將所述預(yù)測消息發(fā)送到第二網(wǎng)絡(luò)節(jié)點。
10.根據(jù)權(quán)利要求8所述的第一網(wǎng)絡(luò)節(jié)點,進一步包括: 第二接口 ; 轉(zhuǎn)發(fā)表存儲,其存儲轉(zhuǎn)發(fā)表; 選路處理器,其: 經(jīng)由所述第一接口接收網(wǎng)絡(luò)流量, 使用所述轉(zhuǎn)發(fā)表確定所述網(wǎng)絡(luò)流量的下一跳,以及 經(jīng)由所述第二接口將所述網(wǎng)絡(luò)流量發(fā)送到所述下一跳。
全文摘要
各種示例性實施例涉及一種方法及相關(guān)網(wǎng)絡(luò)節(jié)點,所述方法包括以下中的一個或更多在節(jié)點處接收當前網(wǎng)絡(luò)狀態(tài)已從舊網(wǎng)絡(luò)狀態(tài)改變?yōu)樾戮W(wǎng)絡(luò)狀態(tài)的指示;確定節(jié)點是否可訪問關(guān)聯(lián)于新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息;如果節(jié)點可訪問關(guān)聯(lián)于新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息,則使用預(yù)先計算的選路信息來對未來網(wǎng)絡(luò)流量進行選路;以及,如果節(jié)點不可訪問關(guān)聯(lián)于新網(wǎng)絡(luò)狀態(tài)的預(yù)先計算的選路信息,則計算新選路信息,并使用新選路信息來對未來網(wǎng)絡(luò)流量進行選路。
文檔編號H04L12/721GK103210616SQ201180054463
公開日2013年7月17日 申請日期2011年10月3日 優(yōu)先權(quán)日2010年11月12日
發(fā)明者T·南達戈帕爾, K·M·雷熱 申請人:阿爾卡特朗訊公司