專利名稱:用于在中間節(jié)點(diǎn)間單路同步路由信息的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)多個(gè)中間網(wǎng)絡(luò)節(jié)點(diǎn)之間的路由信息進(jìn)行同步;更具體而 言,涉及在某些情形中避免雙路(two way)同步。
背景技術(shù):
通過外部通信鏈路相連接的通用計(jì)算機(jī)系統(tǒng)和專用設(shè)備的網(wǎng)絡(luò)是公知 的,并且在商業(yè)上被廣泛使用。這些網(wǎng)絡(luò)通常包括一個(gè)或多個(gè)幫助信息在 計(jì)算機(jī)系統(tǒng)和設(shè)備間通行(passage)的網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)節(jié)點(diǎn)是通過通信鏈 路相連接的網(wǎng)絡(luò)設(shè)備、計(jì)算機(jī)或?qū)S迷O(shè)備。端夢(mèng)^"是被配置為發(fā)起或終結(jié) 網(wǎng)絡(luò)上的通信的網(wǎng)絡(luò)節(jié)點(diǎn)。*/審/¥絡(luò)貧點(diǎn)幫助數(shù)據(jù)在端節(jié)點(diǎn)之間的通行。
節(jié)點(diǎn)之間的通信一般是通過交換離散的數(shù)據(jù)分組實(shí)現(xiàn)的。信息是根據(jù) 許多公知的、新的或者仍在開發(fā)中的協(xié)議中的一種或多種在數(shù)據(jù)分組(這 里也稱作消息)中交換的。在本上下文中,坊'議由定義節(jié)點(diǎn)如何基于經(jīng)由 通信鏈路發(fā)送的信息來彼此交互的一組規(guī)則組成。每個(gè)分組一般包括1] 與特定協(xié)議相關(guān)聯(lián)的頭部信息,以及2]位于頭部信息之后并包含可獨(dú)立于 該特定協(xié)議來處理的信息的有效負(fù)載信息。頭部包括諸如分組的源、其目 的地、有效負(fù)載的長度以及協(xié)議所使用的其他屬性之類的信息。通常,用 于特定協(xié)議的有效負(fù)載中的數(shù)據(jù)包括與用于信息交換的不同層的細(xì)節(jié)相關(guān) 聯(lián)的不同協(xié)議的頭部和有效負(fù)載。
穿越諸如因特網(wǎng)之類的多個(gè)異構(gòu)網(wǎng)絡(luò)的分組中包括的頭部一般包括物 理(第1層)頭部、數(shù)據(jù)鏈路(第2層)頭部、互聯(lián)網(wǎng)絡(luò)(第3層)頭部 和傳輸(第4層)頭部,如開放系統(tǒng)互連(OSI)參考模型所定義的。OSI 參考模型總地在1999年9月出版的Radia Perlman所著的題為 7wtem w"ecrio朋的參考書的第1.1節(jié)中有更詳細(xì)描述,特此 通過引用將該書并入,就好像在這里完全闡述了一樣。互連網(wǎng)絡(luò)頭部提供了定義網(wǎng)絡(luò)內(nèi)的源和目的地址的信息。注意,路徑 可以跨越多個(gè)物理鏈路?;ミB網(wǎng)絡(luò)頭部可以根據(jù)因特網(wǎng)協(xié)議(IP)來格式 化,其用于指定邏輯路徑的端點(diǎn)處的源和目的地節(jié)點(diǎn)的IP地址。因此,分 組可以沿其邏輯路徑從一個(gè)節(jié)點(diǎn)"跳躍"到另一個(gè)節(jié)點(diǎn),直到其到達(dá)被指 派給該分組的互連網(wǎng)絡(luò)頭部中存儲(chǔ)的目的地IP地址的端節(jié)點(diǎn)為止。
路由器和交換機(jī)是確定采用哪個(gè)或哪些通信鏈路來支持?jǐn)?shù)據(jù)分組通過 網(wǎng)絡(luò)的前進(jìn)的網(wǎng)絡(luò)設(shè)備?;诨ヂ?lián)網(wǎng)絡(luò)頭部(第3層)中的信息來確定采 用哪些鏈路的網(wǎng)絡(luò)節(jié)點(diǎn)被稱為路由器。
一些協(xié)議用特殊的控制分組來在兩個(gè)或更多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)之間傳遞與協(xié) 議相關(guān)的信息,其中,所述特殊的控制分組是單獨(dú)傳輸?shù)?,并且包括由協(xié) 議本身使用的信息的有效負(fù)載,而不包括將為另一應(yīng)用傳輸?shù)臄?shù)據(jù)的有效 負(fù)載。這些控制分組和利用這些控制分組的網(wǎng)絡(luò)節(jié)點(diǎn)處的進(jìn)程被說成是在 與"數(shù)據(jù)平面"維度不同的另一個(gè)維度"控制平面"中,其中,"數(shù)據(jù)平 面"維度包括具有用于端節(jié)點(diǎn)處的其他應(yīng)用的有效負(fù)載的數(shù)據(jù)分組。
磁^坊議6"o^"g嚴(yán)otocoU僅交換用于對(duì)以不同的歷、絡(luò)磁游妨'議 6^w^/; ratocoG (例如,IP)發(fā)送的數(shù)據(jù)分組進(jìn)行路由的控制平面消
息。處于單個(gè)機(jī)構(gòu)(例如,企業(yè)或因特網(wǎng)服務(wù)提供商(isp))的網(wǎng)絡(luò)管
理下的網(wǎng)絡(luò)部分被稱作域或者自治系統(tǒng)(AS)。為了減少網(wǎng)絡(luò)資源消耗并 且提高可擴(kuò)展性, 一些路由協(xié)議僅發(fā)送概括的路由信息。AS的路由信息 在其與中間網(wǎng)絡(luò)節(jié)點(diǎn)處的一個(gè)或多個(gè)其他AS的邊界處被概括,其中,所 述中間網(wǎng)絡(luò)節(jié)點(diǎn)被稱作邊界網(wǎng)關(guān)節(jié)點(diǎn)或者邊界網(wǎng)關(guān)(BG)路由器。在一個(gè) AS的邊界內(nèi)共享的路由信息是使用內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)交換的。示例性 IGP包括鏈路狀態(tài)協(xié)議,例如,中間系統(tǒng)到中間系統(tǒng)(IS-IS)協(xié)議和開放 最短路徑優(yōu)先(OSPF)協(xié)議。由加州圣何塞市的思科系統(tǒng)公司開發(fā)的用在 其路由器中的另一種IGP是增強(qiáng)的內(nèi)部網(wǎng)關(guān)路由協(xié)議(EIGRP)。 一些鏈 路狀態(tài)協(xié)議將自治系統(tǒng)劃分成多個(gè)區(qū)域,在一個(gè)區(qū)域內(nèi)涌入用于統(tǒng)一的路 由數(shù)據(jù)庫的所有數(shù)據(jù),但是在區(qū)域之間僅發(fā)送概括的信息(summarized information)。 一些IGP (如EIGRP)僅發(fā)送來自自治系統(tǒng)中的每個(gè)中間 網(wǎng)絡(luò)節(jié)點(diǎn)的概況信息(summaryinformation)。在拓?fù)浠蚺渲酶淖兒?,例如,?dāng)路由器中的中央處理單元(CPU)發(fā)
生故障并且被備用CPU替換后,EIGRP路由器利用合適的重啟(GRS) 過程來對(duì)它的關(guān)于網(wǎng)絡(luò)拓?fù)涞男畔⒅匦逻M(jìn)行同步。該網(wǎng)絡(luò)拓?fù)湫畔⒅甘就?過網(wǎng)絡(luò)中的哪些路由器可以到達(dá)哪些目的地節(jié)點(diǎn)。EIGRP使用矩陣度量來 確定從任意路由器到達(dá)任意目的地的代價(jià),并且該代價(jià)和拓?fù)湫畔⒁黄鸨?包括到路由表中,在每個(gè)路由器處駐留有路由表的一部分。利用GRS過 程,網(wǎng)絡(luò)中的路由器可以繼續(xù)轉(zhuǎn)發(fā)消息持續(xù)若干秒,同時(shí)改變后的路由器 更新它的關(guān)于網(wǎng)絡(luò)拓?fù)涞男畔ⅲ⑶覍⒃撔畔鬟f給受影響的路由器。該 過程提供了稱作不停止轉(zhuǎn)發(fā)(NSF)的特征。
根據(jù)GRS,已檢測(cè)出配置或拓?fù)涓淖兊穆酚善魍ㄟ^發(fā)送協(xié)議的一個(gè) UPDATE (更新)消息(例如,EIGRP UPDATE消息)來發(fā)起GRS,該 消息的重啟同步(RS)位為ON并且發(fā)起(INIT)位為ON,指示該路由 器(發(fā)起路由器)正在啟動(dòng)合適的重啟。接收到該UPDATE消息的相鄰路 由器(也稱作"對(duì)等體")利用一個(gè)UPDATE消息對(duì)該合適的重啟進(jìn)行確 認(rèn),該UPDATE消息的RS位為ON但是INIT位不為ON。在交換了這兩 個(gè)UPDATE消息后,發(fā)起路由器和相鄰路由器都發(fā)送具有各自已在邏輯上 存儲(chǔ)的矩陣度量的拓?fù)浔怼>哂芯仃嚩攘?這里也稱作路由表數(shù)據(jù))的拓 撲表是在同步期間(這里也稱作"刷新"、"重啟同步"和"重同步") 利用雙路(雙向)傳送每個(gè)節(jié)點(diǎn)的完整路由表數(shù)據(jù)來交換的。
盡管適于GRS和NSF,但是該方法存在許多缺點(diǎn)。存在不必在兩個(gè) 方向上發(fā)送路由表數(shù)據(jù)的情形。當(dāng)前,EIGRP即使在這些情形中也使用完 整地雙路傳送路由表的GRS。
例如,當(dāng)在一個(gè)路由器處的過濾器改變了時(shí),僅來自一個(gè)或多個(gè)路由 器的路由表數(shù)據(jù)需要被交換,而不是來自所有鄰居的全部路由表數(shù)據(jù)。過 濾器是路由器處的一個(gè)配置的進(jìn)程,利用過濾器若干路由的細(xì)節(jié)在被通告 給其他路由器之前被概括("匯聚")到特定的程度。路由器可以具有一 個(gè)進(jìn)入(inbound)過濾器,該進(jìn)入過濾器用來忽略來自某些鄰居的對(duì)特定 目的地的通告。路由器還可以具有一個(gè)外出(outbound)過濾器,該外出 過濾器用來防止對(duì)特定目的地的通告到達(dá)某些鄰居。
12另外,路由器可能針對(duì)匯聚被配置,利用匯聚單個(gè)路由通告用來替換 多個(gè)其他路由通告。對(duì)于進(jìn)入和外出通告,這類似于外出過濾器,但是不 同在于進(jìn)行過濾而不是防止路由被通告, 一個(gè)不同的路由替代一組路由被 通告。
當(dāng)進(jìn)入路由過濾器改變時(shí),路由器沒有理由再次將其路由表發(fā)送給其 鄰居,因?yàn)橥獬雎酚蓻]有改變。類似地,當(dāng)外出過濾器或匯聚改變時(shí),期 望重配置的路由器將整個(gè)新路由表發(fā)送給受該匯聚影響的一個(gè)或多個(gè)鄰 居。但是,這些鄰居的路由表未改變,因此一個(gè)路由器不必接收每個(gè)鄰居 的路由表。對(duì)于單個(gè)的路由器或者作為一個(gè)整體的網(wǎng)絡(luò)來說,消耗處理和 通信帶寬來使得通過發(fā)送它們所有的路由表數(shù)據(jù)來對(duì)更新作出響應(yīng)是難以 承受的。這種不必要的傳送顯著地影響了網(wǎng)絡(luò)的性能。
類似地,當(dāng)進(jìn)入過濾器改變時(shí),期望重配置的路由器接收來自受該過 濾器改變所影響的一個(gè)或多個(gè)鄰居的整個(gè)路由表。但是,該路由器自身的 路由表未改變,因此對(duì)于單個(gè)的路由器或者作為一個(gè)整體的網(wǎng)絡(luò)來說,消 耗處理和通信帶寬來使得過濾器改變了的路由器通過向它的所有鄰居發(fā)送 其路由表數(shù)據(jù)來參與該更新是難以承受的。這種不必要的傳送顯著地影響 了網(wǎng)絡(luò)的性能。
基于前述內(nèi)容,很清楚需要用于對(duì)相鄰路由器之間路由信息進(jìn)行同步 而不涉及與所有鄰居之間的雙路傳送的技術(shù)。
在附圖中以示例方式而非限制方式圖示了本發(fā)明,附圖中相似的標(biāo)號(hào) 指代類似的元件,其中-
圖1A是示出了根據(jù)實(shí)施例的包括大量相鄰路由器的網(wǎng)絡(luò)的一部分的
框圖1B是示出了根據(jù)實(shí)施例的在一點(diǎn)到多點(diǎn)的鏈路上包括大量相鄰路 由器的網(wǎng)絡(luò)的一部分的框圖2A是示出了根據(jù)實(shí)施例的作為用于發(fā)起對(duì)路由數(shù)據(jù)的刷新的刷新 通知消息的控制平面更新消息的框圖;圖2B是示出了根據(jù)實(shí)施例的作為用于對(duì)刷新通知消息作出響應(yīng)的刷
新響應(yīng)消息的控制平面更新消息的框圖3是示出了根據(jù)實(shí)施例的利用在圖2A和2B中示出的控制平面消息 的路由器的框圖4A是在高層示出了根據(jù)實(shí)施例的用于發(fā)起對(duì)路由數(shù)據(jù)的刷新的方 法的流程圖4B是在高層示出了根據(jù)實(shí)施例的用于對(duì)對(duì)路由數(shù)據(jù)的刷新的通知 作出響應(yīng)的方法的流程圖5是示出了可以在其上實(shí)現(xiàn)本發(fā)明的實(shí)施例的路由器的框圖。
具體實(shí)施例方式
描述了用于在分組交換通信網(wǎng)絡(luò)中的鄰居間同步路由表數(shù)據(jù)的技術(shù)。 在以下描述中,出于說明目的,闡述了許多具體細(xì)節(jié)以提供對(duì)本發(fā)明的全 面理解。但是,本領(lǐng)域的技術(shù)人員將會(huì)明白,沒有這些具體細(xì)節(jié)也能實(shí)現(xiàn) 本發(fā)明。在其他情況下,公知的結(jié)構(gòu)和設(shè)備以框圖形式示出,以避免不必 要地模糊本發(fā)明。
在下面的描述中,在自治系統(tǒng)內(nèi)利用EIGRP在相鄰路由器間同步路由 表數(shù)據(jù)的上下文中描述了本發(fā)明的實(shí)施例。但是,本發(fā)明不限于該上下文 和協(xié)議,而是可以被應(yīng)用于在計(jì)算所通告的路由中的向量度量的鄰居之間 偶然同步路由表數(shù)據(jù)的任意路由協(xié)議。
1.0網(wǎng)絡(luò)概述
圖1A是示出了根據(jù)實(shí)施例的包括大量相鄰路由器的網(wǎng)絡(luò)102的一部 分的框圖。網(wǎng)絡(luò)102包括大量中間網(wǎng)絡(luò)節(jié)點(diǎn)路由器121a、路由器121b、 路由器121c、路由器122a、路由器122b、路由器122c、路由器123a、路 由器123b、路由器123c、路由器124a、路由器124b、路由器124c,以及 由省略號(hào)125a、 125b、 125c和125d所代表的其他路由器,下文中總地稱 作路由器120。路由器120由通信鏈路130連接,通信鏈路130上沒有插 入中間網(wǎng)絡(luò)節(jié)點(diǎn)(稱作/^皮)。因此,路由器120是鄰居。盡管出于說明目的在網(wǎng)絡(luò)102中示出了一定數(shù)目的節(jié)點(diǎn)120和鏈路130,但是在其他實(shí) 施例中,網(wǎng)絡(luò)包括更多或者更少的節(jié)點(diǎn)(例如,是路由器120的鄰居或者 不是其鄰居的路由器和端節(jié)點(diǎn))和更多或更少的鏈路。
由一個(gè)路由器(例如,路由器121a)發(fā)送的消息可能導(dǎo)致可變數(shù)量的 代價(jià)以到達(dá)由鏈路130構(gòu)成的網(wǎng)段上的每個(gè)其他相鄰路由器120。可以以 本領(lǐng)域己知的任意方式來測(cè)量代價(jià),包括帶寬、傳輸時(shí)間、信號(hào)衰減、以 及對(duì)噪聲的敏感度等等,或者這些因素的任意組合。由于網(wǎng)段上的噪聲或 擁塞, 一些路由器可能完全不能接收到消息。為了說明目的,假設(shè)到達(dá)路 由器121a的一個(gè)鄰居的代價(jià)是以往返傳輸時(shí)間測(cè)量的,并且在圖1A中隨 著從路由器121a向右的距離增大而增大。假設(shè)省略號(hào)125a所示的所有路 由器都比路由器122a更接近路由器121a。類似地,假設(shè)省略號(hào)125b、 125c所示的所有路由器都分別比路由器123a、 124a更接近路由器121a。 當(dāng)路由器121a向它的任意或者所有相鄰路由器120發(fā)送可靠消息時(shí),相鄰 路由器120返回一個(gè)ACK消息。
圖1B是示出了根據(jù)實(shí)施例的在一點(diǎn)到多點(diǎn)鏈路上包括大量相鄰路由 器的網(wǎng)絡(luò)104的一部分的框圖。在網(wǎng)絡(luò)104中,網(wǎng)絡(luò)102的路由器121a被 具有一點(diǎn)到多點(diǎn)接口 150的路由器129替換。鏈路130被具有到網(wǎng)絡(luò)102 中的其他路由器120的一點(diǎn)到多點(diǎn)鏈路140替換。在所示實(shí)施例中,該一 點(diǎn)到多點(diǎn)鏈路包括鏈路140a、鏈路140b、鏈路140c、鏈路140d、鏈路 140e、鏈路140f、鏈路140g、鏈路140h、鏈路140i、鏈路140j、鏈路 l銀、鏈路1401、鏈路140m、鏈路140n和鏈路140o。與每個(gè)路由器120 都具有許多的鄰居的網(wǎng)絡(luò)102不同,在網(wǎng)絡(luò)104中,僅路由器129具有許 多鄰居。其他路由器120每個(gè)僅具有數(shù)個(gè)鄰居。鏈路140形成一個(gè)網(wǎng)段。 網(wǎng)絡(luò)104還包括連接到端節(jié)點(diǎn)180的子網(wǎng)105,子網(wǎng)105和相鄰路由器 121b、 121c、以及省略號(hào)125a所示的路由器之間的鏈路。
如背景部分中所述,EIGRP允許發(fā)起路由器(例如,路由器121a或 路由器129)通過發(fā)送RS位為ON并且INIT位也為ON的EIGRP UPDATE消息來與它的所有鄰居重同步其路由數(shù)據(jù)。在下面,為了說明簡 單, 一個(gè)位在具有二進(jìn)制值1是被認(rèn)為ON,而在具有二進(jìn)制值0是不被認(rèn)為ON (即,OFF)。在其他實(shí)施例中,也可以用其他值來指定具有一 個(gè)或多個(gè)位的字段何時(shí)為ON何時(shí)為OFF。響應(yīng)于接收到RS位為ON并 且INIT位也為ON的UPDATE消息,每個(gè)鄰居響應(yīng)以RS位為ON但是 INIT位為OFF的UPDATE消息,該消息用作確認(rèn)(ACK)消息。在這種 消息交換之后,每個(gè)路由器開始發(fā)送其整個(gè)路由數(shù)據(jù)拓?fù)?即,路由表數(shù) 據(jù)),發(fā)起路由器向它的所有鄰居發(fā)送其全部路由表數(shù)據(jù),并且每個(gè)鄰居 向發(fā)起路由器發(fā)送其全部路由表數(shù)據(jù),這是以完全雙路方式傳送全部路由 信息,即,雙路刷新。
根據(jù)本發(fā)明的各種所示實(shí)施例,下面部分將更詳細(xì)地描述,發(fā)起路由 器確定鄰居的子集(從一個(gè)鄰居直到所有鄰居,包括一個(gè)鄰居和所有鄰 居),并且向該鄰居的子集發(fā)送指示單路方向傳送路由數(shù)據(jù)的EIGRP UPDATE消息。
響應(yīng)于接收到所指示的單路方向的UPDATE消息,在所示實(shí)施例中, 支持單路傳送的每個(gè)接收鄰居響應(yīng)以其中也被指示為單路方向的UPDATE 消息。
單路傳送然后開始, 一個(gè)路由器將它的所有路由數(shù)據(jù)傳送給其他的路 由器,但是不在返回中接收。與在該協(xié)議的較早版本(例如,EIGRP的早 期版本)中使用的默認(rèn)重同步期間的雙路傳送相比,這減少了在這種重同 步期間對(duì)處理和通信帶寬資源的消耗。
在一些實(shí)施例中,為了與使用在同步期間不支持單路傳送的該協(xié)議 (例如,EIGRP)的較早版本的鄰居向后兼容,來自該鄰居的UPDATE消 息不指示單路方向。在該情形中,發(fā)起路由器進(jìn)行包括路由表數(shù)據(jù)的雙路 傳送的默認(rèn)重同步。
2.0路由信息的數(shù)據(jù)結(jié)構(gòu)
圖2A是示出了根據(jù)實(shí)施例的用作刷新通知消息220的控制平面更新 消息(例如,經(jīng)修改的EIGRP UPDATE消息)的框圖,其中該刷新通知 消息220用于發(fā)起對(duì)路由數(shù)據(jù)的刷新。刷新通知消息220包括更新類型字 段221、順序號(hào)字段224、 INIT位字段222a、 RS位字段222b、 NOR位字段222c、 NIR位字段222d和路由信息字段226,以及其他未示出的字段。 一個(gè)位是一個(gè)二進(jìn)制數(shù)字。盡管出于說明目的消息220 (以及下面參考圖 2B所述的消息230)被示為具有按照特定順序的連續(xù)字段的整個(gè)塊,但是 在其他實(shí)施例中,這些字段中的一個(gè)或多個(gè)部分按照不同的順序被放置或
、類型字段221保存指示消息220的類型的數(shù)據(jù)。例如,類型字段221 保存指示EIGRP UPDATE消息類型的數(shù)據(jù),從而使得遵循UPDATE消息 的EIGRP協(xié)議的接收路由器明了隨后的字段的順序和大小。
順序號(hào)字段224保存指示消息220在用來傳送路由信息的一系列消息 中的順序的數(shù)據(jù),例如當(dāng)前消息220中所包括的整個(gè)更新的累積字節(jié)數(shù) (1字節(jié)一般等于8位)。路由更新信息通常按照它被發(fā)送的順序被適當(dāng) 地處理。順序號(hào)字段的內(nèi)容確保接收路由器可以確定正確的順序以對(duì)路由 更新消息進(jìn)行處理并且檢測(cè)任何字節(jié)的丟失。
INIT位字段222a保存為ON的一位來指示該更新消息正發(fā)起一個(gè)過 程,例如, 一個(gè)更新、查詢或者刷新。在其他實(shí)施例中,字段222a保存多 于一個(gè)位。RS位字段222b保存為ON的一位來指示該更新消息用于刷新 處理(即,重新開始對(duì)路由表數(shù)據(jù)進(jìn)行同步的處理)。在其他實(shí)施例中, 字段222b保存多于一個(gè)位。在上面背景部分中已描述了使用INIT位字段 222a和RS位字段222b用于雙路刷新。
根據(jù)所示實(shí)施例,刷新通知消息220包括NOR位字段222c和NIR位 字段222d。 NOR位字段或NIR位字段為ON以指示刷新期間對(duì)路由表數(shù) 據(jù)的單路傳送。NOR位字段222c指示發(fā)起路由器和鄰居之間的一個(gè)方向 上的傳送,而NIR位字段222d指示相反的方向。
在這些實(shí)施例中為了后向兼容,NOR位字段222c和NIR位字段222d 的位置是在消息220的在該協(xié)議的在先版本中未使用的位置中選出的。例 如,在一些實(shí)施例中,字段222c和222d位于在先版本中保留的區(qū)域中。 在一些實(shí)施例中,字段222c和222d位于先前的協(xié)議所支持的一列長度、 屬性、值三元組中,但是具有未針對(duì)在先版本定義的一個(gè)或多個(gè)新的屬性 值。NOR位字段222c和NIR位字段222d的ON值被挑選為與在該協(xié)議的在先版本中不存在這些字段區(qū)分開來。為了說明目的,假定在該協(xié)議的在
先版本中保留區(qū)域中的值全為零。因此,在所示實(shí)施例中,NOR位和NIR 位的ON值被選擇為二進(jìn)制值1。在所示實(shí)施例中,NOR位和NIR位被命 名,使得在它們未被設(shè)置時(shí),執(zhí)行默認(rèn)的雙路刷新,這與實(shí)現(xiàn)該協(xié)議的在 先版本的路由器兼容。NOR位為ON指示從發(fā)送了消息220的發(fā)起路由器 來看"無外出刷新"。NIR位為ON指示從發(fā)送了消息220的發(fā)起路由器 來看"無進(jìn)入刷新"。
路由信息字段226保存指示路由信息的下一部分的數(shù)據(jù),例如,路由 表更新、或者路由查詢信息、或者要從發(fā)起路由器發(fā)送的完整路由表的第 一部分,如果存在的話。
圖2B是示出了根據(jù)實(shí)施例的用作刷新響應(yīng)消息230的控制平面更新 消息(例如經(jīng)修改的EIGRP UPDATE消息)的框圖,該刷新響應(yīng)消息230 用于對(duì)刷新通知消息作出響應(yīng)。刷新響應(yīng)消息230包括更新類型字段 231、順序號(hào)字段234、 INIT位字段232a、 RS位字段232b、 NOR位字段 232c、 NIR位字段232d、路由信息字段236、以及其他未示出的字段。
類型字段231保存指示消息230的類型的數(shù)據(jù)。例如,類型字段231 保存指示EIGRP UPDATE消息類型的數(shù)據(jù),從而使得遵循UPDATE消息 的EIGRP協(xié)議的接收路由器明了隨后的字段的順序和大小。
順序號(hào)字段234保存指示消息230在用來傳送路由信息的一系列消息 中的順序的數(shù)據(jù),例如來自發(fā)送消息230的路由器的當(dāng)前消息230中所包 括的整個(gè)更新的累積字節(jié)數(shù)。順序號(hào)字段234的內(nèi)容確保接收路由器可以 確定正確的順序以對(duì)路由更新消息進(jìn)行處理并且檢測(cè)任何字節(jié)的丟失。
INIT位字段232a保存指示該UPDATE消息正發(fā)起一個(gè)過程的一位, 例如, 一個(gè)更新、査詢或者刷新。在其他實(shí)施例中,字段232a保存多于一 個(gè)位。RS位字段232b保存指示該UPDATE消息用于刷新處理(g卩,重新 開始同步處理)的一位。在其他實(shí)施例中,字段232b保存多于一個(gè)位。 在上面背景部分中已描述了使用INIT位字段232a和RS位字段232b用于 雙路刷新。在所示實(shí)施例中,在刷新響應(yīng)消息230中INIT位為OFF (例 如,INIT位的值為二進(jìn)制0),并且在刷新響應(yīng)消息230中RS位為ON(例如,RS位的值為二進(jìn)制1)
根據(jù)所示實(shí)施例,刷新響應(yīng)消息230包括NOR位字段232c和NIR位 字段232d。 NOR位字段或NIR位字段為ON以指示刷新期間對(duì)路由表數(shù) 據(jù)的單路傳送。NOR位字段232c指示發(fā)起路由器和鄰居之間的一個(gè)方向 上的傳送,而NIR位字段232d指示相反的方向。
在這些實(shí)施例中為了后向兼容,NOR位字段232c和NIR位字段232d 的位置是在消息230的在該協(xié)議的在先版本中未使用的位置中選出的,如 上面針對(duì)刷新通知消息220所述。NOR位為ON指示從鄰居發(fā)送消息230 來看"無外出刷新"。NIR位為ON指示從鄰居發(fā)送消息230來看"無進(jìn) 入刷新"。
路由信息字段236保存指示路由信息的下一部分的數(shù)據(jù),例如,路由 表更新、或者路由查詢響應(yīng)信息、或者要從相鄰路由器發(fā)送的完整路由表 的第一部分,如果存在的話。
圖3是示出了根據(jù)實(shí)施例的使用在圖2A和2B中所示的控制平面消息 的路由器的框圖。路由器300包括路由過程310、路由表320和鄰居數(shù)據(jù) 結(jié)構(gòu)330。
路由過程310在處理器上運(yùn)行,處理器例如是執(zhí)行使處理器執(zhí)行路由 過程的指令序列的通用處理器。根據(jù)本發(fā)明的實(shí)施例,路由過程包括支持 刷新期間的單路傳送的過程314,下面將參考圖4A和圖4B更詳細(xì)地描 述。路由過程310基于在存儲(chǔ)在路由協(xié)議信息數(shù)據(jù)結(jié)構(gòu)(包括鄰居數(shù)據(jù)結(jié) 構(gòu)330、以及其他未示出的數(shù)據(jù)結(jié)構(gòu))中的一個(gè)或多個(gè)路由協(xié)議更新或刷 新消息中接收到的信息,在路由表320中存儲(chǔ)信息和檢索路由表320中的
"(曰息。
路由表320是這樣的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)針對(duì)從路由器300可達(dá)的 每個(gè)目的地包括地址字段322、鏈路字段323和0個(gè)或多個(gè)屬性字段。在 所示實(shí)施例中,屬性字段包括總成本字段324。地址字段322保存指示路 由器300可達(dá)的一個(gè)目的地地址或者地址范圍,例如,端節(jié)點(diǎn)180或者子 網(wǎng)105的IP地址。鏈路字段323指示在路由器300上用作到達(dá)字段322中 所指示的目的地地址的下一跳的鏈路。例如,到路由器121b的鏈路140a
19是從路由器129到端節(jié)點(diǎn)180的下一跳的鏈路,因此指示鏈路140a的數(shù)據(jù) 被包括在鏈路字段323中??偝杀咀侄?24保存指示從路由器300到達(dá)目 的地地址的成本度量。省略號(hào)329示出了路由表320中的針對(duì)其他目的地 的字段。
鄰居數(shù)據(jù)結(jié)構(gòu)330是保存對(duì)路由器300的每個(gè)鄰居進(jìn)行描述的數(shù)據(jù)的 數(shù)據(jù)結(jié)構(gòu)。在所示實(shí)施例中,鄰居數(shù)據(jù)結(jié)構(gòu)330對(duì)于每個(gè)鄰居包括鄰居標(biāo) 識(shí)符字段332和關(guān)于與鄰居交換的分組的信息字段337。在一些實(shí)施例 中,與每個(gè)鄰居還關(guān)聯(lián)有其他數(shù)據(jù)字段(未示出)。省略號(hào)339示出了其 他鄰居的字段。
鄰居標(biāo)識(shí)符字段332保存指示特定相鄰路由器的數(shù)據(jù),例如,該特定 鄰居的IP地址。關(guān)于與鄰居交換的分組的信息字段337保存指示與字段 332中所指示的特定鄰居交換的順序號(hào)和路由信息的隊(duì)列的數(shù)據(jù)。在各種 實(shí)施例中,該隊(duì)列自身、或者指向包含該隊(duì)列的存儲(chǔ)器位置的指針被包括 在字段337中。如果未及時(shí)得到確認(rèn),可以再次向該鄰居發(fā)送該隊(duì)列中的 數(shù)據(jù)。
數(shù)據(jù)結(jié)構(gòu)可以以本領(lǐng)域已知的任何方法(包括利用一個(gè)或多個(gè)節(jié)點(diǎn)上 的易失性存儲(chǔ)器或者非易失性存儲(chǔ)設(shè)備的多個(gè)部分)形成在一個(gè)或多個(gè)文 件或者通過數(shù)據(jù)庫服務(wù)器訪問的一個(gè)或多個(gè)數(shù)據(jù)庫中,或者某種組合中。 盡管為了說明目的數(shù)據(jù)結(jié)構(gòu)320、 330被示為具有按照特定順序的連續(xù)字 段的整體塊,但是在其他實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)320、 330的一部分或者多 部分字段按照相同或者不同順序作為分離數(shù)據(jù)結(jié)構(gòu)被存儲(chǔ)在執(zhí)行路由器 300的功能的相同或者不同的多個(gè)節(jié)點(diǎn)上。
根據(jù)本發(fā)明的各種實(shí)施例,路由器300發(fā)起或者響應(yīng)支持對(duì)路由數(shù)據(jù) 的單路傳送的刷新通知和刷新響應(yīng)消息,或者某種組合。
3.0單路刷新的方法
圖4A是在高層示出了根據(jù)實(shí)施例的用于發(fā)起對(duì)路由數(shù)據(jù)的刷新的方 法401的流程圖。盡管為了說明目的按照特定的順序示出了圖4A (和隨 后的流程4B)中的步驟,但是在其他實(shí)施例中, 一個(gè)或多個(gè)步驟可以按照不同的順序執(zhí)行或者在時(shí)間上重疊地執(zhí)行,或者一個(gè)或多個(gè)步驟可 以被省略或添加,或者可以作出這些改變的某種組合。
在步驟410中,在發(fā)起路由器處確定路由信息的改變。在步驟410期 間可以確定本領(lǐng)域已知的任何改變。例如,由于路由器300處的外出過濾 器的改變,路由表320中發(fā)生改變。這種改變影響要發(fā)送到一個(gè)或多個(gè)鄰 居的路由信息。作為另一個(gè)示例,由于進(jìn)入過濾器改變,需要來自一個(gè)或 多個(gè)鄰居的路由表信息,從而路由器300可以再次計(jì)算路由表320。步驟 410包括確定該改變所影響的一個(gè)或多個(gè)鄰居的子集,這包括全部鄰居、 少于全部鄰居、以及僅一個(gè)鄰居。
在步驟420中,針對(duì)該子集中的每個(gè)鄰居判斷該改變是否影響了進(jìn)入 刷新、外出刷新、或者都沒影響、或者對(duì)這二者都發(fā)生了影響。例如,一 些改變是利用一個(gè)或多個(gè)簡單的更新消息應(yīng)對(duì)的,而不涉及任一路由器刷 新整個(gè)路由表。在該情形中,控制傳遞到步驟422而不執(zhí)行刷新。步驟 422包括除任一路由器的刷新之外的任何更新。
在一些情形中,改變涉及來自發(fā)起路由器和至少一個(gè)鄰居的刷新。例 如,在GRS/NSF期間,需要與每個(gè)鄰居之間的刷新。在這些情形中,控 制傳遞到步驟424。在步驟424中,發(fā)起與鄰居之間的雙路刷新??梢允?用任何方法來執(zhí)行步驟424,包括現(xiàn)有的方法。在所示實(shí)施例中,在步驟 424期間,在NOR位字段222c和NIR位字段222d為OFF (NOR=0, NIR=0)的情況下交換更新消息220和230。控制然后前進(jìn)到步驟426。
在步驟426中,執(zhí)行與鄰居的雙路刷新。發(fā)起路由器300在以路由表 結(jié)束碼(也稱作路由信息庫結(jié)束或者EORIB)終止的一系列更新消息中發(fā) 送路由表320的內(nèi)容,并且鄰居也在以EORIB終止的一系列更新消息中 發(fā)送其路由表的內(nèi)容。
如果在步驟420中確定改變僅影響了進(jìn)入刷新,則控制傳遞到步驟 432。例如,在一些實(shí)施例中,步驟420包括判斷對(duì)特定路由的成本改變 是否對(duì)忽略了關(guān)于網(wǎng)絡(luò)中的特定目的地的數(shù)據(jù)的發(fā)起路由器處的進(jìn)入過濾 器產(chǎn)生了影響。如果確定對(duì)特定路由的成本改變影響了該進(jìn)入過濾器,則 確定滿足單路傳送鄰居的路由表數(shù)據(jù)到發(fā)起路由器的條件。在步驟432中,刷新通知消息220 (例如,EIGRP UPDATE消息)被 發(fā)送給鄰居。在所示實(shí)施例中,消息220包括被設(shè)為1 (ON)的NOR位 字段、INIT位字段222a和RS位字段222b。 NIR位為OFF并且具有值 0。為ON的NOR位字段指示將存在來自發(fā)起路由器的"No Outbound Refresh"。為OFF的NIR位指示將存在到發(fā)起路由器的^^A源義新(即, 不是"No Inbound Refresh")。控制傳遞到步驟440,以接收來自鄰居的 響應(yīng),下面將更詳細(xì)地描述。
如果在步驟420中確定改變僅影響外出刷新,則控制傳遞到步驟 434。例如,在一些實(shí)施例中,步驟420包括判斷對(duì)特定路由的成本改變 是否對(duì)未向鄰居轉(zhuǎn)發(fā)關(guān)于網(wǎng)絡(luò)中的特定目的地的數(shù)據(jù)的發(fā)起路由器處的外 出過濾器產(chǎn)生了影響。如果確定對(duì)特定路由的成本改變影響了該外出過濾 器,則確定滿足單路傳送發(fā)起路由器的路由表數(shù)據(jù)到該鄰居的條件。
在步驟434中,刷新通知消息220 (例如,EIGRP UPDAGTE消息) 被發(fā)送給鄰居。在所示實(shí)施例中,消息220包括被設(shè)為1 (ON)的NIR位 字段、INIT位字段222a和RS位字段222b。 NOR位為OFF并且具有值 0。為ON的NIR位字段指示將存在到發(fā)起路由器的"No Inbound Refresh"。為OFF的NOR位指示將存在來自發(fā)起路由器的^///#,新 (即,不是"No Outbound Refresh")??刂苽鬟f到步驟440,以接收來 自鄰居的響應(yīng)。
在步驟440中,從鄰居接收到刷新響應(yīng)消息230 (例如,EIGRP UPDAGTE消息)。在所示實(shí)施例中,消息230包括為OFF的INIT位字 段222a、為ON的RS位字段222b。 NOR位字段222c和INR位字段222d 為ON還是OFF取決于情形而定。發(fā)起路由器動(dòng)作由NOR和NIR位被如 何設(shè)置而確定,將在下面的步驟中描述。
在步驟450中,判斷NIR位和NOR是否都為OFF。在鄰居不支持單 路傳送時(shí)(例如,實(shí)現(xiàn)協(xié)議的在先版本(例如EIGRP的在先版本)的鄰 居)期望這種情形。如果是這種情形,則響應(yīng)被作為鄰居對(duì)作為雙路刷新 的默認(rèn)刷新的確認(rèn)指示。因此,在所示實(shí)施例中,如果確定字段222c和 222d中的NIR位和NOR位分別都為OFF,則控制傳遞到步驟426。如上所述,在步驟426中,在以EORIB碼結(jié)尾的一系列消息中執(zhí)行對(duì)路由表 數(shù)據(jù)的雙路刷新。在網(wǎng)絡(luò)不包括實(shí)現(xiàn)協(xié)議的在先版本的路由器的一些實(shí)施 例中,則省略步驟450。
在一些實(shí)施例中,步驟450包括判斷NIR位和NOR位是否都為ON。 在鄰居的確支持單路傳送但是已確定推翻在步驟420中作出的判決并且強(qiáng) 制發(fā)起路由器參與雙路刷新的實(shí)施例中可能發(fā)生這種情形。例如,鄰居確 定它需要來自發(fā)起路由器的刷新,但是在發(fā)送刷新通知消息之前,該鄰居 接收到來自發(fā)起路由器的刷新通知消息。然后在該情形中,響應(yīng)被作為雙 路刷新的鄰居的確認(rèn)指示??刂迫缓髠鬟f到步驟426,如上所述。在一些 實(shí)施例中,包括下面參考圖4B描述的所示實(shí)施例,不存在允許NOR和 NIR位都為ON的情形。
如果在步驟450中確定分別在字段222c和222d的中的NIR位和NOR 位之一而不是二者都為ON,則控制傳遞到步驟452。在步驟452中,判斷 是NIR位還是NOR位為ON以僅指示到發(fā)起路由器的進(jìn)入刷新。在所示 實(shí)施例中,進(jìn)入到發(fā)起路由器的單路刷新由來自發(fā)送了刷新響應(yīng)消息230 的鄰居的單路外出刷新指示。來自該鄰居的單路外出刷新由NIR=1并且 NOR二0指示。在這些實(shí)施例中,步驟452包括判斷是否NIR二1。在一些 實(shí)施例中,NIR和NOR位僅重復(fù)在刷新通知消息220中接收到的值,并 且單路進(jìn)入刷新由"No Outbound Refresh"指示,艮卩,由NOR二l指示。
如果在步驟452中確定NIR位或NOR位被設(shè)置來僅指示到發(fā)起路由 器的進(jìn)入刷新,則控制傳遞到步驟454。在步驟454中,執(zhí)行從鄰居到發(fā) 起路由器的單路刷新。鄰居在以EORIB終止的一系列更新消息中發(fā)送其 路由表的內(nèi)容;但是,發(fā)起路由器不發(fā)送其路由表數(shù)據(jù)。
如果在步驟452中確定NIR位或NOR位都未被設(shè)置來僅指示到發(fā)起 路由器的進(jìn)入刷新,則確定僅要執(zhí)行來自發(fā)起路由器的外出刷新,并且控 制傳遞到步驟456。在步驟456中,執(zhí)行從發(fā)起路由器到鄰居的單路刷 新。發(fā)起路由器在以EORIB終止的一系列更新消息中發(fā)送其路由表的內(nèi) 容;但是,鄰居不發(fā)送其路由表數(shù)據(jù)。
在一些實(shí)施例中,由刷新響應(yīng)消息230中的分別在字段222c和222d中的NOR和NIR位所指示的單路方向不與由發(fā)起路由器發(fā)送的刷新通知 消息220中指定的單路方向匹配。在所示實(shí)施例中,這種情形不會(huì)發(fā)生 (參見下面描述的圖4B)。在發(fā)生這種情形的各種實(shí)施例中,可以采用 其他的步驟(未示出)。例如,在一些這種實(shí)施例中,控制傳遞回步驟 420,以基于在步驟440中接收到的刷新響應(yīng)消息230中的額外信息再次 判斷改變是否影響進(jìn)入刷新或者外出刷新,或者都未影響,或者影響了這 二者。
圖4B是在高層示出了根據(jù)實(shí)施例的用于對(duì)對(duì)路由數(shù)據(jù)的刷新的通知 作出響應(yīng)的方法402的流程圖。在一些實(shí)施例中,方法402由不同于方法 401中的過程執(zhí)行。在所示實(shí)施例中,過程314執(zhí)行方法401和402 二 者。
在步驟460中,從發(fā)起路由器接收到刷新通知消息220,例如, EIGRP UPDATE消息。在所示實(shí)施例中,消息220包括被設(shè)為1 (ON) 的INIT位字段222a和RS位字段222b,以及其中的一個(gè)被設(shè)為1 (ON) 或者二者都未被設(shè)為1 (但是不是二者都被設(shè)為1)的NOR位字段222c 和NIR位字段222d,
在步驟470中,判斷該刷新通知是否是針對(duì)進(jìn)入發(fā)送了消息220的發(fā) 起路由器的單路刷新的。如果是,則控制傳遞到步驟472。在所示實(shí)施例 中,進(jìn)入發(fā)起路由器的單路刷新由被設(shè)為1 (ON)的NOR位字段222c指 示。因此,如果NOR位字段222c保存NOR=l,則控制傳遞到步驟 472。
在步驟472中,刷新響應(yīng)消息230 (例如,EIGRP UPDATE消息)被 形成,并且被發(fā)送到發(fā)起路由器。在所示實(shí)施例中,消息230包括為OFF 的INIT位字段232a (INIT=0)和為ON的RS位字段232b (RS = 1), 以及為OFF的NOR位字段232c (NOR=0)和為ON的NIR位字段232d (NIR=1)。為ON的NIR位字段指示將存在到接收路由器的"No Inbound Refresh"。為OFF的NOR位指示將存在從接收路由器到發(fā)起路 由器的/M^^箭(即,不是"No Outbound Refresh")。控制傳遞到步驟 474。在步驟474中,執(zhí)行從接收路由器到發(fā)起路由器的單路刷新。接收路 由器在以EORIB終止的一系列更新消息中發(fā)送其路由表的內(nèi)容;但是, 發(fā)起路由器不發(fā)送其路由表數(shù)據(jù)。
如果在步驟470中確定刷新通知不是針對(duì)進(jìn)入發(fā)送了消息220的發(fā)起 路由器的單路刷新的,則控制傳遞到步驟480。在步驟480中,判斷該刷 新通知是否是針對(duì)從發(fā)送了消息220的發(fā)起路由器外出的單路刷新的。如 果是,則控制傳遞到步驟482。在所示實(shí)施例中,從發(fā)起路由器外出的單 路刷新由被設(shè)為1 (ON)的NIR位字段232c指示。因此,如果NIR二1, 則控制傳遞到步驟482。
在步驟482中,刷新響應(yīng)消息230 (例如,EIGRP UPDATE消息)被 形成,并且被發(fā)送到發(fā)起路由器。在所示實(shí)施例中,消息230包括設(shè)為 OFF的INIT位字段232a (INIT=0)和設(shè)為ON的RS位字段232b (RS = 1),以及設(shè)為ON的NOR位字段232c (NOR= 1)和設(shè)為OFF的NIR位 字段232d (NIR=0)。為ON的NOR位指示將存在來自接收路由器的 "No Outbound Refresh"。為OFF的NIR位指示將存在從發(fā)起路由器到 接收路由器的遂乂#義新(即,不是"No Inbound Refresh")??刂苽鬟f到 步驟484。
在步驟484中,執(zhí)行從發(fā)起路由器到接收路由器的單路刷新。發(fā)起路 由器在以EORIB終止的一系列更新消息中發(fā)送其路由表的內(nèi)容;但是, 接收路由器不發(fā)送其路由表數(shù)據(jù)。
如果在步驟480中確定刷新通知不是針對(duì)從發(fā)送了消息220的發(fā)起路 由器外出的單路刷新的,則控制傳遞到步驟490。在步驟490中,刷新響 應(yīng)消息230 (例如,EIGRP UPDATE消息)被形成,并且被發(fā)送到發(fā)起路 由器。在所示實(shí)施例中,消息230包括設(shè)為OFF的INIT位字段232a (INIT二0)和設(shè)為ON的RS位字段232b (RS=1),以及都被設(shè)為OFF 的NOR位字段232c和NIR位字段232d (NOR=0, NIR=0)。為OFF 的NOR位和為OFF的NIR位指示將存在雙路刷新。控制傳遞到步驟 492。在步驟492中,執(zhí)行現(xiàn)有方法中的雙路刷新。
利用方法401和方法402,根據(jù)情形執(zhí)行了路由表數(shù)據(jù)的雙路刷新。與當(dāng)前的方法相比這減少了對(duì)路由器處理和鏈路帶寬資源的消耗,并且顯 著地提高了網(wǎng)絡(luò)性能。
4.0實(shí)現(xiàn)機(jī)構(gòu)-硬件概述
圖5是示出本發(fā)明的實(shí)施例可以在其上實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)500的框 圖。優(yōu)選實(shí)施例是利用運(yùn)行在諸如路由器設(shè)備之類的網(wǎng)絡(luò)元件上的一個(gè)或 多個(gè)計(jì)算機(jī)程序來實(shí)現(xiàn)的。因此,在此實(shí)施例中,計(jì)算機(jī)系統(tǒng)500是路由 器°
計(jì)算機(jī)系統(tǒng)500包括用于在計(jì)算機(jī)系統(tǒng)500的其他內(nèi)部和外部組件之 間傳遞信息的通信機(jī)構(gòu),例如總線510。信息被表示為可測(cè)量現(xiàn)象的物理 信號(hào),該可測(cè)量現(xiàn)象一般是電壓,但在其他實(shí)施例中,包括諸如磁、電 磁、壓力、化學(xué)、分子原子和量子交互之類的現(xiàn)象。例如,北和南磁場(chǎng)或 者零和非零電壓表示二進(jìn)制數(shù)字(比特)的兩個(gè)狀態(tài)(0, 1) 。 二進(jìn)制數(shù)
字的序列構(gòu)成用于表示數(shù)字或字符代碼的數(shù)字?jǐn)?shù)據(jù)??偩€510包括許多并 行的信息導(dǎo)體,以使信息在耦合到總線510的設(shè)備之間迅速傳遞。用于處 理信息的一個(gè)或多個(gè)處理器502與總線510相耦合。處理器502對(duì)信息執(zhí) 行一組操作。該組操作包括從總線510接收信息并將信息置于總線510 上。該組操作一般還包括比較兩個(gè)或更多個(gè)信息單元、移動(dòng)信息單元的位 置、以及例如通過加法或乘法來組合兩個(gè)或更多個(gè)信息單元。將由處理器 502執(zhí)行的操作序列構(gòu)成了計(jì)算機(jī)指令。
計(jì)算機(jī)系統(tǒng)500還包括耦合到總線510的存儲(chǔ)器504。諸如隨機(jī)訪問 存儲(chǔ)器(RAM)或其他動(dòng)態(tài)存儲(chǔ)設(shè)備之類的存儲(chǔ)器504存儲(chǔ)包括計(jì)算機(jī)指 令在內(nèi)的信息。動(dòng)態(tài)存儲(chǔ)器允許存儲(chǔ)在其中的信息被計(jì)算機(jī)系統(tǒng)500改 變。RAM允許存儲(chǔ)在被稱為存儲(chǔ)器地址的位置處的信息單元以獨(dú)立于相 鄰地址處的信息的方式被存儲(chǔ)和檢索。存儲(chǔ)器504還被處理器502用來在 計(jì)算機(jī)指令執(zhí)行期間存儲(chǔ)臨時(shí)值。計(jì)算機(jī)系統(tǒng)500還包括耦合到總線510 的、用于存儲(chǔ)不被計(jì)算機(jī)系統(tǒng)500改變的靜態(tài)信息(包括指令)的只讀存 儲(chǔ)器(ROM) 504或其他靜態(tài)存儲(chǔ)設(shè)備。同樣耦合到總線510的是非易失 性(持久性)存儲(chǔ)設(shè)備508,例如磁盤或光盤,用于存儲(chǔ)即使在計(jì)算機(jī)系統(tǒng)500被關(guān)掉或者由于其他原因而掉電時(shí)也能夠持續(xù)下來的信息(包括指 令)。
術(shù)語計(jì)算機(jī)可讀介質(zhì)在這里用來指任何參與向處理器502提供包括用 于執(zhí)行的指令在內(nèi)的信息的介質(zhì)。這種介質(zhì)可采取許多形式,包括但不限 于非易失性介質(zhì)、易失性介質(zhì)和傳送介質(zhì)。非易失性介質(zhì)例如包括光盤或 磁盤,例如存儲(chǔ)設(shè)備508。易失性介質(zhì)例如包括動(dòng)態(tài)存儲(chǔ)器504。傳送介 質(zhì)例如包括同軸電纜、銅線、光纜和在無需導(dǎo)線或線纜的情況下通過空間 傳播的波,例如聲波和電磁波,包括無線電波、光波和紅外波。經(jīng)由傳送 介質(zhì)傳送的信號(hào)在這里被稱為載波。
計(jì)算機(jī)可讀介質(zhì)的常見形式例如包括軟盤、軟磁盤、硬盤、磁帶或任 何其他磁介質(zhì),致密盤ROM (CD-ROM)、數(shù)字視頻盤(DVD)或任何 其他光學(xué)介質(zhì)、穿孔卡、紙帶、或任何其他具有孔圖案的物理介質(zhì)、 RAM、可編程ROM (PROM)、可擦除PROM (EPROM) 、 FLASH-EPROM、或任何其他存儲(chǔ)器芯片或卡盤、載波或者計(jì)算機(jī)可以讀取的任 何其他介質(zhì)。
包括指令在內(nèi)的信息被從外部終端512提供到總線510以供處理器使 用,所述外部終端512例如是具有包含由人類用戶操作的數(shù)字字母鍵的鍵 盤的終端或者是傳感器。傳感器檢測(cè)其附近的狀況,并將這些檢測(cè)變換成 與計(jì)算機(jī)系統(tǒng)500中用于表示信息的信號(hào)相兼容的信號(hào)。耦合到總線510 的終端512的主要用于與人類交互的其他外部組件包括用于呈現(xiàn)圖像的顯 示設(shè)備(例如陰極射線管(CRT)或液晶顯示器(LCD)或等離子屏幕) 和用于控制在顯示器上呈現(xiàn)的小光標(biāo)圖像的位置并發(fā)出與終端512的顯示 器上呈現(xiàn)的圖形元素相關(guān)聯(lián)的命令的定點(diǎn)設(shè)備(例如鼠標(biāo)或跟蹤球或光標(biāo) 方向鍵)。在一些實(shí)施例中,終端512被省略。
計(jì)算機(jī)系統(tǒng)500還包括耦合到總線510的通信接口 570的一個(gè)或多個(gè) 實(shí)例。通信接口 570提供耦合到利用其自己的處理器進(jìn)行操作的多種外部 設(shè)備的雙向通信,所述外部設(shè)備例如是打印機(jī)、掃描儀、外置盤、和終端 512。在計(jì)算機(jī)系統(tǒng)500中運(yùn)行的固件或軟件提供終端接口或者基于字符 的命令接口,以使外部命令能夠被提供給計(jì)算機(jī)系統(tǒng)。例如,通信接口570可以是并行端口或串行端口,例如RS-232或RS-422接口,或者是個(gè) 人計(jì)算機(jī)上的通用串行總線(USB)端口。在一些實(shí)施例中,通信接口 570是提供到相應(yīng)類型的電話線的信息通信連接的電話調(diào)制解調(diào)器、或綜 合服務(wù)數(shù)字網(wǎng)(ISDN)卡、或數(shù)字用戶線路(DSL)卡。在一些實(shí)施例 中,通信接口 570是將總線510上的信號(hào)轉(zhuǎn)換成用于經(jīng)由同軸電纜的通信 連接的信號(hào)或者用于經(jīng)由光纜的通信連接的光信號(hào)的線纜調(diào)制解調(diào)器。作 為另一示例,通信接口 570可以是提供到兼容的LAN (例如以太網(wǎng))的數(shù) 據(jù)通信連接的局域網(wǎng)(LAN)卡。也可實(shí)現(xiàn)無線鏈路。對(duì)于無線鏈路,通 信接口 570發(fā)送和接收攜帶信息流(例如數(shù)字?jǐn)?shù)據(jù))的電信號(hào)、聲信號(hào)或 電磁信號(hào),包括紅外信號(hào)和光信號(hào)。這種信號(hào)是載波的示例。
在所示的實(shí)施例中,諸如專用集成電路(IC) 520之類的專用硬件耦 合到總線510。專用硬件被配置為為了特殊的目的而足夠迅速地執(zhí)行不由 處理器502執(zhí)行的操作。專用IC的示例包括用于生成圖像以便顯示的圖 形加速卡、用于對(duì)經(jīng)由網(wǎng)絡(luò)發(fā)送的消息進(jìn)行加密和解密的密碼板、語音識(shí) 別、以及到特殊外部設(shè)備的接口,所述特殊外部設(shè)備例如是重復(fù)執(zhí)行在硬 件中更高效實(shí)現(xiàn)的某個(gè)復(fù)雜操作序列的機(jī)械臂和醫(yī)學(xué)掃描裝備。
在用作路由器的所示出的計(jì)算機(jī)中,計(jì)算機(jī)系統(tǒng)500包括作為用于切 換在網(wǎng)絡(luò)上流動(dòng)的信息的專用硬件的交換系統(tǒng)530。交換系統(tǒng)530 —般包 括多個(gè)通信接口,例如通信接口 570,用于耦合到多個(gè)其他設(shè)備。 一般來 說,每個(gè)耦合都具有與網(wǎng)絡(luò)中的或附接到網(wǎng)絡(luò)的另一設(shè)備相連接的網(wǎng)絡(luò)鏈 路532,其中,所述網(wǎng)絡(luò)例如是所示實(shí)施例中的與具有其自己的處理器的 多種外部設(shè)備相連接的本地網(wǎng)絡(luò)580。在一些實(shí)施例中,輸入接口或輸出 接口或兩者被鏈接到一個(gè)或多個(gè)外部網(wǎng)絡(luò)元件中的每一個(gè)。雖然所示實(shí)施 例中的網(wǎng)絡(luò)鏈路532包括三條網(wǎng)絡(luò)鏈路532a、 532b、 532c,但在其他實(shí)施 例中,更多或更少的鏈路被連接到了交換系統(tǒng)530。網(wǎng)絡(luò)鏈路532 —般通 過一個(gè)或多個(gè)網(wǎng)絡(luò)來提供到使用或處理信息的其他設(shè)備的信息通信。例 如,網(wǎng)絡(luò)鏈路532b可通過本地網(wǎng)絡(luò)580來提供到主機(jī)計(jì)算機(jī)582或由因特 網(wǎng)服務(wù)提供者(ISP)操作的裝備584的連接。ISP裝備584進(jìn)而又通過現(xiàn) 在通常被稱為因特網(wǎng)590的網(wǎng)絡(luò)的公共的世界范圍的分組交換通信網(wǎng)絡(luò)來提供數(shù)據(jù)通信服務(wù)。被稱為服務(wù)器592的連接到因特網(wǎng)的計(jì)算機(jī)響應(yīng)于經(jīng) 由因特網(wǎng)接收的信息提供服務(wù)。例如,服務(wù)器592提供用于交換系統(tǒng)530 的路由信息。
交換系統(tǒng)530包括被配置為執(zhí)行與在網(wǎng)絡(luò)580的元件之間傳遞信息相 關(guān)聯(lián)的交換功能的邏輯和電路,所述傳遞信息包括傳遞沿一條網(wǎng)絡(luò)鏈路 (例如532a)接收的、作為相同或不同網(wǎng)絡(luò)鏈路(例如532c)上的輸出的 信息。交換系統(tǒng)530根據(jù)公知的預(yù)定協(xié)議和慣例將到達(dá)輸入接口的信息通 信量切換到輸出接口。在一些實(shí)施例中,交換系統(tǒng)530包括其自己的處理 器和存儲(chǔ)器,以在軟件中執(zhí)行一些交換功能。在一些實(shí)施例中,交換系統(tǒng) 530依賴于處理器502、存儲(chǔ)器504、 ROM 506、存儲(chǔ)設(shè)備508或某種組 合,以在軟件中執(zhí)行一個(gè)或多個(gè)交換功能。例如,交換系統(tǒng)530與實(shí)現(xiàn)特 定協(xié)議的處理器502合作,可確定在鏈路532a上到達(dá)輸入接口的數(shù)據(jù)分組 的目的地,并利用鏈路532c上的輸出接口將它發(fā)送到正確的目的地。目的 地可包括主機(jī)582、服務(wù)器592、連接到本地網(wǎng)絡(luò)580或因特網(wǎng)590的其 他終端設(shè)備,或者本地網(wǎng)絡(luò)580或因特網(wǎng)590中的其他路由和交換設(shè)備。
本發(fā)明涉及使用計(jì)算機(jī)系統(tǒng)500來實(shí)現(xiàn)本文描述的技術(shù)。根據(jù)本發(fā)明 的一個(gè)實(shí)施例,這些技術(shù)是由計(jì)算機(jī)系統(tǒng)500響應(yīng)于執(zhí)行包含在存儲(chǔ)器 504中的一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列的處理器502而執(zhí)行的。這種 指令也被稱為軟件和程序代碼,它們可被從另一計(jì)算機(jī)可讀介質(zhì)(例如存 儲(chǔ)設(shè)備508)讀取到存儲(chǔ)器504中。對(duì)包含在存儲(chǔ)器504中的指令序列的 執(zhí)行使得處理器502執(zhí)行本文描述的方法步驟。在替換實(shí)施例中,諸如專 用集成電路520和交換系統(tǒng)530中的電路之類的硬件可取代軟件或與軟件 結(jié)合來實(shí)現(xiàn)本發(fā)明。從而,本發(fā)明的實(shí)施例不局限于硬件和軟件的任何特 定組合。
通過通信接口 (例如接口 570)經(jīng)由網(wǎng)絡(luò)鏈路532和其他網(wǎng)絡(luò)傳送的 信號(hào)(該信號(hào)攜帶去往和來自計(jì)算機(jī)系統(tǒng)500的信息)是載波的示例性形 式。計(jì)算機(jī)系統(tǒng)500可通過網(wǎng)絡(luò)580、 590等等,通過網(wǎng)絡(luò)鏈路532和通信 接口 (例如接口 570)來發(fā)送和接收包括程序代碼在內(nèi)的信息。在使用因 特網(wǎng)590的示例中,服務(wù)器592通過交換系統(tǒng)530中的通信接口,通過因特網(wǎng)590、 ISP裝備584、本地網(wǎng)絡(luò)580和網(wǎng)絡(luò)鏈路532b來發(fā)送由計(jì)算機(jī) 500發(fā)送來的消息所請(qǐng)求的用于特定應(yīng)用的程序代碼。接收到的代碼可在 其被接收時(shí)被處理器502或交換系統(tǒng)530執(zhí)行,或者可被存儲(chǔ)在存儲(chǔ)設(shè)備 508或其他非易失性存儲(chǔ)器中以便以后執(zhí)行,或者兩種情況兼有。這樣, 計(jì)算機(jī)系統(tǒng)500可以以載波形式獲得應(yīng)用程序代碼。
各種形式的計(jì)算機(jī)可讀介質(zhì)可用于將指令或數(shù)據(jù)或兩者的一個(gè)或多個(gè) 序列運(yùn)送到處理器502以便執(zhí)行。例如,指令和數(shù)據(jù)可以首先承載在遠(yuǎn)程 計(jì)算機(jī)(例如主機(jī)582)的磁盤上。遠(yuǎn)程計(jì)算機(jī)可以將指令和數(shù)據(jù)加載到 其動(dòng)態(tài)存儲(chǔ)器中,并利用調(diào)制解調(diào)器經(jīng)由電話線來發(fā)送指令和數(shù)據(jù)。計(jì)算 機(jī)系統(tǒng)500的本地調(diào)制解調(diào)器接收電話線上的指令和數(shù)據(jù),并使用紅外發(fā) 射器將指令和數(shù)據(jù)轉(zhuǎn)換為用作網(wǎng)絡(luò)鏈路532b的載波的紅外信號(hào)。用作交 換系統(tǒng)530中的通信接口的紅外檢測(cè)器接收紅外信號(hào)中攜帶的指令和數(shù) 據(jù),并且將表示該指令和數(shù)據(jù)的信息置于總線510上??偩€510將信息攜 帶到存儲(chǔ)器504,處理器502利用與指令一起發(fā)送的一些數(shù)據(jù)來從存儲(chǔ)器 504中檢索并執(zhí)行指令。在存儲(chǔ)器504中接收的指令和數(shù)據(jù)可以可選地在 被處理器502或交換系統(tǒng)503執(zhí)行之前或之后存儲(chǔ)在存儲(chǔ)設(shè)備508上。
5.0擴(kuò)展和替換
在以上說明中,已參考特定實(shí)施例描述了本發(fā)明。但是,應(yīng)當(dāng)清楚, 在不脫離本發(fā)明更寬廣的精神和范圍的情況下,可以進(jìn)行各種修改和變 化。因此,說明書和附圖都應(yīng)當(dāng)被認(rèn)為是示例性的,而非限制性的。
權(quán)利要求
1.一種用于在分組交換通信網(wǎng)絡(luò)中同步路由數(shù)據(jù)的方法,包括步驟在發(fā)起路由器處判斷是否滿足與鄰近路由器之間單路傳送特定節(jié)點(diǎn)的路由表數(shù)據(jù)的條件,其中所述特定節(jié)點(diǎn)的路由表數(shù)據(jù)針對(duì)網(wǎng)絡(luò)中的每個(gè)目的地指示從所述特定節(jié)點(diǎn)到達(dá)該目的地的成本,并且所述鄰近路由器在不存在插入中間網(wǎng)絡(luò)節(jié)點(diǎn)的情況下與所述發(fā)起路由器通信;以及如果確定滿足與鄰近路由器之間單路傳送路由表數(shù)據(jù)的條件,則執(zhí)行步驟從所述發(fā)起路由器向所述鄰近路由器發(fā)送刷新通知消息,其中所述刷新通知消息包括指示用于傳送路由表數(shù)據(jù)的特定方向的數(shù)據(jù);如果所述特定方向是進(jìn)入,則在不發(fā)送所述發(fā)起路由器自己的路由表的拷貝的情況下接收所述鄰近路由器的鄰近路由表的拷貝,并且如果所述特定方向是外出,則在不接收所述鄰近路由器的鄰近路由表的拷貝的情況下發(fā)送所述發(fā)起路由器自己的路由表的拷貝。
2. 如權(quán)利要求1所述的方法,其中,所述方法還包括從所述鄰近路由器接收刷新響應(yīng)消息;以及 判斷所述刷新響應(yīng)消息是否指示用于傳送路由表數(shù)據(jù)的所述特定方 向,從而該方法與在刷新期間不處理關(guān)于用于傳送路由表數(shù)據(jù)的所述特定 方向的信息而總是執(zhí)行雙路交換路由表數(shù)據(jù)的鄰近路由器向后兼容。
3. 如權(quán)利要求1所述的方法,還包括確定來自比下述多個(gè)路由器中的 全部路由器少的子集的鄰近路由器,所述多個(gè)路由器也是在沒有插入節(jié)點(diǎn) 的情況下與所述發(fā)起路由器通信的鄰近路由器。
4. 如權(quán)利要求1所述的方法,其中,在發(fā)起路由器處判斷是否滿足單 路傳送路由表數(shù)據(jù)的條件的所述步驟還包括步驟判斷對(duì)特定路由的成本改變是否對(duì)忽略了關(guān)于所述網(wǎng)絡(luò)中的特定目的 地的數(shù)據(jù)的所述發(fā)起路由器處的進(jìn)入過濾器產(chǎn)生了影響;以及如果確定對(duì)所述特定路由的成本改變影響了所述進(jìn)入過濾器,則確定 滿足向所述發(fā)起路由器單路傳送所述鄰近路由器的路由表數(shù)據(jù)的條件。
5. 如權(quán)利要求1所述的方法,其中,在發(fā)起路由器處判斷是否滿足單 路傳送路由表數(shù)據(jù)的條件的所述步驟還包括步驟判斷對(duì)特定路由的成本改變是否對(duì)未向所述鄰近路由器轉(zhuǎn)發(fā)關(guān)于所述 網(wǎng)絡(luò)中的特定目的地的數(shù)據(jù)的發(fā)起路由器處的外出過濾器產(chǎn)生了影響;以 及如果確定對(duì)所述特定路由的成本改變影響了所述外出過濾器,則確定 滿足向所述鄰近路由器單路傳送所述發(fā)起路由器的路由表數(shù)據(jù)的條件。
6. 如權(quán)利要求1所述的方法,發(fā)送刷新通知的所述步驟還包括發(fā)送所 述刷新通知消息,其中所述刷新通知消息包括第一位和第二位,所述第一 位和第二位中僅一個(gè)為ON以指示用于傳送路由表數(shù)據(jù)的所述特定方向。
7. 如權(quán)利要求6所述的方法,其中,所述第一位和所述第二位都不為 ON以指示在所述發(fā)起路由器和所述鄰近路由器之間雙路交換路由表數(shù) 據(jù)。
8. 如權(quán)利要求2所述的方法,接收刷新響應(yīng)消息的所述步驟還包括接 收所述刷新響應(yīng)消息,其中所述刷新響應(yīng)消息包括第一位和第二位,所述 第一位和第二位中僅一個(gè)為ON以指示所述鄰近路由器所支持的用于傳送 路由表數(shù)據(jù)的第二方向。
9. 如權(quán)利要求8所述的方法,其中,所述第一位和所述第二位都不為 ON以指示在所述發(fā)起路由器和所述鄰近路由器之間雙路交換路由表數(shù) 據(jù)。
10. 如權(quán)利要求9所述的方法,判斷所述刷新響應(yīng)消息是否指示用于 傳送路由表數(shù)據(jù)的所述特定方向的所述步驟還包括判斷所述第二方向是否 符合所述特定方向。
11. —種用于在分組交換通信網(wǎng)絡(luò)中同步路由數(shù)據(jù)的方法,包括步驟在鄰近路由器處接收來自發(fā)起路由器的刷新通知消息,其中所述刷新通知消息包括指示用于傳送路由表數(shù)據(jù)的特定方向的數(shù)據(jù),特定節(jié)點(diǎn)的路由表數(shù)據(jù)針對(duì)網(wǎng)絡(luò)中的每個(gè)目的地指示從所述特定節(jié)點(diǎn)到達(dá)該目的地的成本,并且所述鄰近路由器在不存在插入中間網(wǎng)絡(luò)節(jié)點(diǎn)的情況下與所述發(fā)起 路由器通信;基于所述刷新通知消息確定所述特定方向;以及 發(fā)送包括指示所述特定方向的數(shù)據(jù)的刷新響應(yīng)消息。
12. 如權(quán)利要求11所述的方法,還包括步驟如果所述特定方向是在所述發(fā)起路由器處進(jìn)入,則在不發(fā)送所述發(fā)起 路由器自己的路由表的拷貝的情況下接收所述鄰近路由器的鄰近路由表的 拷貝,并且如果所述特定方向是在所述發(fā)起路由器處外出,則在不接收所述鄰近 路由器的鄰近路由表的拷貝的情況下發(fā)送所述發(fā)起路由器自己的路由表的 拷貝。
13. 如權(quán)利要求11所述的方法,接收刷新通知的所述步驟還包括接收 所述刷新通知消息,其中所述刷新通知消息包括第一位和第二位,所述第 一位和第二位中僅一個(gè)為ON以指示用于傳送路由表數(shù)據(jù)的所述特定方 向。
14. 如權(quán)利要求13所述的方法,其中,所述第一位和所述第二位都不 為ON以指示在所述發(fā)起路由器和所述鄰近路由器之間雙路交換路由表數(shù) 據(jù)。
15. 如權(quán)利要求11所述的方法,發(fā)送刷新響應(yīng)消息的所述步驟還包括 發(fā)送所述刷新響應(yīng)消息,其中所述刷新響應(yīng)消息包括第一位和第二位,所 述第一位和第二位中僅一個(gè)為ON以指示所述鄰近路由器所支持的用于傳 送路由表數(shù)據(jù)的特定方向。
16. 如權(quán)利要求15所述的方法,其中,所述第一位和所述第二位都不 為ON以指示在所述發(fā)起路由器和所述鄰近路由器之間雙路交換路由表數(shù) 據(jù)。
17. —種用于在分組交換通信網(wǎng)絡(luò)中同步路由數(shù)據(jù)的設(shè)備,包括 用于在發(fā)起路由器處判斷是否滿足與鄰近路由器之間單路傳送特定節(jié)點(diǎn)的路由表數(shù)據(jù)的條件的裝置,其中所述特定節(jié)點(diǎn)的路由表數(shù)據(jù)針對(duì)網(wǎng)絡(luò)中的每個(gè)目的地指示從所述特定節(jié)點(diǎn)到達(dá)該目的地的成本,并且所述鄰近路由器在不存在插入中間網(wǎng)絡(luò)節(jié)點(diǎn)的情況下與所述發(fā)起路由器通信;用于如果確定滿足所述與鄰近路由器之間單路傳送路由表數(shù)據(jù)的條 件,則從所述發(fā)起路由器向所述鄰近路由器發(fā)送刷新通知消息的裝置,其 中所述刷新通知消息包括指示用于傳送路由表數(shù)據(jù)的特定方向的數(shù)據(jù);以 及用于執(zhí)行下述步驟的裝置如果確定滿足所述與鄰近路由器之間單路 傳送路由表數(shù)據(jù)的條件,則如果所述特定方向是進(jìn)入則在不發(fā)送所述發(fā)起 路由器自己的路由表的拷貝的情況下接收所述鄰近路由器的鄰近路由表的 拷貝,而如果所述特定方向是外出則在不接收所述鄰近路由器的鄰近路由 表的拷貝的情況下發(fā)送所述發(fā)起路由器自己的路由表的拷貝。
18. —種用于在分組交換通信網(wǎng)絡(luò)中同步路由數(shù)據(jù)的設(shè)備,包括 用于在鄰近路由器處接收來自發(fā)起路由器的刷新通知消息的裝置; 用于基于所述刷新通知消息確定特定方向的裝置;以及 用于發(fā)送包括指示所述特定方向的數(shù)據(jù)的刷新響應(yīng)消息的裝置,其中,所述刷新通知消息包括指示用于傳送路由表數(shù)據(jù)的所述特定方向的數(shù)據(jù),特定節(jié)點(diǎn)的路由表數(shù)據(jù)針對(duì)網(wǎng)絡(luò)中的每個(gè)目的地指示從所述特定節(jié) 點(diǎn)到達(dá)該目的地的成本,并且所述鄰近路由器在不存在插入中間網(wǎng)絡(luò)節(jié)點(diǎn)的情況下與所述發(fā)起路 由器通信。
19. 一種用于在分組交換通信網(wǎng)絡(luò)中同步路由數(shù)據(jù)的設(shè)備,包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口,耦合到網(wǎng)絡(luò)以與其傳輸?shù)谝粩?shù)據(jù)分組;一個(gè)或多個(gè)處理器;一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì);以及存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)中的一個(gè)或多個(gè)指令序列,在被所述一個(gè) 或多個(gè)處理器執(zhí)行時(shí),所述一個(gè)或多個(gè)指令序列使所述一個(gè)或多個(gè)處理器 執(zhí)行步驟判斷是否滿足與鄰近路由器之間單路傳送特定節(jié)點(diǎn)的路由表數(shù)據(jù) 的條件,其中所述特定節(jié)點(diǎn)的路由表數(shù)據(jù)針對(duì)網(wǎng)絡(luò)中的每個(gè)目的地指 示從所述特定節(jié)點(diǎn)到達(dá)該目的地的成本,并且所述鄰近路由器在不存在插入中間網(wǎng)絡(luò)節(jié)點(diǎn)的情況下通過所述一個(gè)或多個(gè)網(wǎng)絡(luò)接口通信;以 及如果確定滿足所述與鄰近路由器之間單路傳送路由表數(shù)據(jù)的條 件,則執(zhí)行步驟向所述鄰近路由器發(fā)送刷新通知消息,其中所述刷新通知消息 包括指示用于傳送路由表數(shù)據(jù)的特定方向的數(shù)據(jù);如果所述特定方向是進(jìn)入,則在不發(fā)送所述發(fā)起路由器自己的 路由表的拷貝的情況下接收所述鄰近路由器的鄰近路由表的拷貝,并 且如果所述特定方向是外出,則在不接收所述鄰近路由器的鄰近 路由表的拷貝的情況下發(fā)送所述發(fā)起路由器自己的路由表的拷貝。
20. 如權(quán)利要求19所述的設(shè)備,其中執(zhí)行所述一個(gè)或多個(gè)指令序列還使所述一個(gè)或多個(gè)處理器執(zhí)行步驟-從所述鄰近路由器接收刷新響應(yīng)消息;以及判斷所述刷新響應(yīng)消息是否指示用于傳送路由表數(shù)據(jù)的所述特定方 向,從而該方法與在刷新期間不處理關(guān)于用于傳送路由表數(shù)據(jù)的所述特定 方向的信息而總是執(zhí)行雙路交換路由表數(shù)據(jù)的鄰近路由器向后兼容。
21. 如權(quán)利要求19所述的設(shè)備,其中,執(zhí)行所述一個(gè)或多個(gè)指令序列 還使所述一個(gè)或多個(gè)處理器執(zhí)行步驟確定來自比下述多個(gè)路由器中的全部路由器少的子集的鄰近路由器,所述多個(gè)路由器也是在沒有插入節(jié)點(diǎn)的 情況下與所述設(shè)備通信的鄰近路由器。
22. 如權(quán)利要求19所述的設(shè)備,判斷是否滿足單路傳送路由表數(shù)據(jù)的 條件的所述步驟還包括步驟判斷對(duì)特定路由的成本改變是否對(duì)忽略了關(guān)于所述網(wǎng)絡(luò)中的特定目的地的數(shù)據(jù)的所述設(shè)備處的進(jìn)入過濾器產(chǎn)生了影響;以及如果確定對(duì)所述特定路由的成本改變影響了所述進(jìn)入過濾器,則確定滿足向所述設(shè)備單路傳送所述鄰近路由器的路由表數(shù)據(jù)的條件。
23. 如權(quán)利要求19所述的設(shè)備,判斷是否滿足單路傳送路由表數(shù)據(jù)的條件的所述步驟還包括步驟判斷對(duì)特定路由的成本改變是否對(duì)未向所述鄰近路由器轉(zhuǎn)發(fā)關(guān)于所述網(wǎng)絡(luò)中的特定目的地的數(shù)據(jù)的所述設(shè)備處的外出過濾器產(chǎn)生了影響;以及如果確定對(duì)所述特定路由的成本改變影響了所述外出過濾器,則確定 滿足向所述鄰近路由器單路傳送所述設(shè)備的路由表數(shù)據(jù)的條件。
24. 如權(quán)利要求19所述的設(shè)備,發(fā)送刷新通知的所述步驟還包括發(fā)送 所述刷新通知消息,其中所述刷新通知消息包括第一位和第二位,所述第 一位和第二位中僅一個(gè)為ON以指示用于傳送路由表數(shù)據(jù)的所述特定方 向。
25. 如權(quán)利要求24所述的設(shè)備,其中,所述第一位和所述第二位都不 為ON以指示在所述設(shè)備和所述鄰近路由器之間雙路交換路由表數(shù)據(jù)。
26. 如權(quán)利要求20所述的設(shè)備,接收刷新響應(yīng)消息的所述步驟還包括 接收所述刷新響應(yīng)消息,其中所述刷新響應(yīng)消息包括第一位和第二位,所 述第一位和第二位中僅一個(gè)為ON以指示所述鄰近路由器所支持的用于傳 送路由表數(shù)據(jù)的第二方向。
27. 如權(quán)利要求26所述的設(shè)備,其中,所述第一位和所述第二位都不 為ON以指示在所述設(shè)備和所述鄰近路由器之間雙路交換路由表數(shù)據(jù)。
28. 如權(quán)利要求27所述的方法,判斷所述刷新響應(yīng)消息是否指示用于 傳送路由表數(shù)據(jù)的所述特定方向的所述步驟還包括判斷所述第二方向是否 符合所述特定方向。
29. —種用于在分組交換通信網(wǎng)絡(luò)中同步路由數(shù)據(jù)的設(shè)備,包括 一個(gè)或多個(gè)網(wǎng)絡(luò)接口,耦合到網(wǎng)絡(luò)以與其傳輸?shù)谝粩?shù)據(jù)分組; 一個(gè)或多個(gè)處理器;一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì);一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)在所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中用于 保存路由表數(shù)據(jù);以及存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)中的一個(gè)或多個(gè)指令序列,在被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí),所述一個(gè)或多個(gè)指令序列使所述一個(gè)或多個(gè)處理器執(zhí)行步驟接收來自發(fā)起路由器的刷新通知消息, 基于所述刷新通知消息確定特定方向;以及 發(fā)送包括指示所述特定方向的數(shù)據(jù)的刷新響應(yīng)消息,其中所述刷新通知消息包括指示用于傳送路由表數(shù)據(jù)的特定方向的數(shù)據(jù),特定節(jié)點(diǎn)的路由表數(shù)據(jù)針對(duì)網(wǎng)絡(luò)中的每個(gè)目的地指示從所述特 定節(jié)點(diǎn)到達(dá)該目的地的成本,并且所述設(shè)備在不存在插入中間網(wǎng)絡(luò)節(jié)點(diǎn)的情況下通過所述一個(gè)或 多個(gè)網(wǎng)絡(luò)接口與所述發(fā)起路由器通信。
30. 如權(quán)利要求29所述的設(shè)備,執(zhí)行所述一個(gè)或多個(gè)指令序列還使所 述一個(gè)或多個(gè)處理器執(zhí)行步驟如果所述特定方向是在所述發(fā)起路由器處進(jìn)入,則在不發(fā)送所述發(fā)起 路由器自己的路由表的拷貝的情況下接收所述鄰近路由器的鄰近路由表的 拷貝,并且如果所述特定方向是在所述發(fā)起路由器處外出,則在不接收所述鄰近 路由器的鄰近路由表的拷貝的情況下發(fā)送所述發(fā)起路由器自己的路由表的 拷貝。
31. 如權(quán)利要求29所述的設(shè)備,接收刷新通知的所述步驟還包括接收 所述刷新通知消息,其中所述刷新通知消息包括第一位和第二位,所述第 一位和第二位中僅一個(gè)為ON以指示用于傳送路由表數(shù)據(jù)的所述特定方 向。
32. 如權(quán)利要求31所述的設(shè)備,其中,所述第一位和所述第二位都不 為ON以指示在所述發(fā)起路由器和所述設(shè)備之間雙路交換路由表數(shù)據(jù)。
33. 如權(quán)利要求29所述的設(shè)備,發(fā)送刷新響應(yīng)消息的所述步驟還包括 發(fā)送所述刷新響應(yīng)消息,其中所述刷新響應(yīng)消息包括第一位和第二位,所 述第一位和第二位中僅一個(gè)為ON以指示所述設(shè)備所支持的用于傳送路由 表數(shù)據(jù)的特定方向。
34.如權(quán)利要求33所述的設(shè)備,其中,所述第一位和所述第二位都不 為ON以指示在所述發(fā)起路由器和所述設(shè)備之間雙路交換路由表數(shù)據(jù)。
全文摘要
用于同步路由數(shù)據(jù)的技術(shù)包括判斷是否滿足與鄰近路由器之間單路傳送的條件。如果確定滿足與鄰近路由器之間單路傳送路由表數(shù)據(jù)的條件,則從發(fā)起路由器向鄰近路由器發(fā)送刷新通知消息。該刷新通知消息包括指示用于傳送路由表數(shù)據(jù)的特定方向的數(shù)據(jù)。如果該特定方向是進(jìn)入,則在不發(fā)送發(fā)起路由器自己的路由表的拷貝的情況下接收鄰近路由表的拷貝。如果該特定方向是外出,則在不接收鄰近路由表的拷貝的情況下發(fā)送自己的路由表的拷貝。
文檔編號(hào)G06F15/173GK101495997SQ200780027746
公開日2009年7月29日 申請(qǐng)日期2007年4月25日 優(yōu)先權(quán)日2006年8月1日
發(fā)明者度尼·萬·塞韋支, 拉塞爾·懷特, 義 楊, 蘇安·范特蘭, 詹姆斯·恩, 阿爾維勒·倫塔納 申請(qǐng)人:思科技術(shù)公司