專(zhuān)利名稱(chēng):用于鄰居緩存表同步的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),并且特別地,涉及一種用于使^i殳備中的 鄰居緩存表和主設(shè)備中的鄰居緩存表同步的裝置和方法。
背景技術(shù):
分組轉(zhuǎn)發(fā)是將去往遠(yuǎn)端目的地的分組轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)節(jié)點(diǎn),所述轉(zhuǎn)發(fā)節(jié)點(diǎn) 具有到達(dá)目的地的路徑。在某些情況下,通信量可能H往轉(zhuǎn)發(fā)節(jié)點(diǎn)的。 例如,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)可以包括防火墻。但是,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)的失效可能造 成目的地不可達(dá)。
為了緩解這個(gè)問(wèn)題,可以使用多個(gè)獨(dú)立設(shè)備作為轉(zhuǎn)發(fā)節(jié)點(diǎn)來(lái)進(jìn)行冗余 地服務(wù)。因此,如果一個(gè)冗余設(shè)備失效,則另外一個(gè)冗余設(shè)備可以替換它。 一個(gè)冗余設(shè)備到另外一個(gè)冗余設(shè)備的失效倒換(fail-over),可以通過(guò)運(yùn) 行高可用性協(xié)議來(lái)實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明涉及一種用于使備份網(wǎng)絡(luò)設(shè)備的鄰居緩存表和主網(wǎng)絡(luò)設(shè)備的鄰 居緩存表同步的裝置和方法。每當(dāng)在所述主網(wǎng)絡(luò)設(shè)備的鄰居緩存表中增加 或者刪除條目時(shí),所述主網(wǎng)絡(luò)設(shè)備就可以向所述備份網(wǎng)絡(luò)設(shè)備發(fā)送增加命 令或者刪除命令。進(jìn)一步地,當(dāng)新的網(wǎng)絡(luò)設(shè)備加入到鏈路中,從而成為主 設(shè)備或者^(guò)i殳備時(shí),可以使用同步請(qǐng)求命令和同步確認(rèn)命令來(lái)使得所述 新的網(wǎng)絡(luò)設(shè)備和所述主網(wǎng)絡(luò)設(shè)備同步。此外,當(dāng)網(wǎng)絡(luò)設(shè)備成為主設(shè)備時(shí), 所述網(wǎng)絡(luò)設(shè)備可以發(fā)送更新命令,以使得鄰居交換設(shè)備能夠更新其鄰居緩 存表,如果需要,還將重定向到所述網(wǎng)絡(luò)設(shè)備的通信量。
8
參考以下附圖來(lái)說(shuō)明本發(fā)明非限制和非窮舉的實(shí)施例,其中
圖1圖示了一種系統(tǒng)的實(shí)施例的框圖2示出了對(duì)于圖1系統(tǒng)的處理過(guò)程的實(shí)施例流程圖3圖示了用于為高可用性系統(tǒng)同步鄰居緩存表的系統(tǒng)的實(shí)施例;以
及
圖4至5示出了根據(jù)本發(fā)明的方面,在高可用性系統(tǒng)中的鄰居緩存表 同步處理過(guò)程的實(shí)施例流程圖。
具體實(shí)施例方式
本發(fā)明不同的實(shí)施例將會(huì)參考附圖來(lái)進(jìn)行詳細(xì)地描述,其中,在附圖 中,相同的參考編號(hào)代表相同的部分和組件。多種實(shí)施例的參考并沒(méi)有限 制本發(fā)明的范圍,本發(fā)明的范圍僅由所附的權(quán)利要求限制。此外,本說(shuō)明 書(shū)中闡述的任何例子并不是為了限制,而僅是為了闡述對(duì)于本發(fā)明的許多 可能的實(shí)施例中的某些。
在整個(gè)說(shuō)明書(shū)和權(quán)利要求書(shū)中,除了上下文明確地指出了其它含義外, 以下術(shù)語(yǔ)都至少表示在此明確關(guān)聯(lián)的含義。以下定義的含義不是為了限制 術(shù)語(yǔ),而只是為術(shù)語(yǔ)提供說(shuō)明性的例子。"a" "an"和"the"的含義包 括了復(fù)數(shù)含義,"在……中"的含義包括"在……中"和"在……上"。在 此使用的短語(yǔ)"在一個(gè)實(shí)施例中"雖然可能是指同一個(gè)實(shí)施例,但并不是必 須指同一個(gè)實(shí)施例。術(shù)語(yǔ)"信號(hào)"是指至少一種電流,電壓,電荷,氣溫, 數(shù)據(jù)或者其它信號(hào)。
圖1圖示了系統(tǒng)100的實(shí)施例的框圖。系統(tǒng)100包括外部網(wǎng)絡(luò)102, 其中,外部網(wǎng)絡(luò)102可以包括局域網(wǎng),互聯(lián)網(wǎng)等等。系統(tǒng)100還包括內(nèi)部 網(wǎng)絡(luò)104,其中,內(nèi)部網(wǎng)絡(luò)104可以包括局域網(wǎng)等等。系統(tǒng)100還包括高 可用性(HA)系統(tǒng)105,其中,高可用性系統(tǒng)105包括網(wǎng)絡(luò)設(shè)備110和111。 網(wǎng)絡(luò)設(shè)備110包括收發(fā)器120。網(wǎng)絡(luò)設(shè)備111包括^器122。進(jìn)一步地,網(wǎng)絡(luò)設(shè)備110和111可以是路由器、網(wǎng)橋、防火墻、代理服務(wù)器、交換機(jī)、 二層轉(zhuǎn)發(fā)節(jié)點(diǎn)等設(shè)備中的任何一種。網(wǎng)絡(luò)設(shè)備110和111中的每一個(gè)被配 置為,分別通過(guò)使用M器120和122,來(lái)發(fā)送和接收分組。而且,盡管 沒(méi)有示出,網(wǎng)絡(luò)設(shè)備110和111都各自包含被配置為執(zhí)行動(dòng)作的處理器。
此外,可以配置HA系統(tǒng)105,使得在任何時(shí)候,在HA系統(tǒng)105中 的網(wǎng)絡(luò)設(shè)備中的一個(gè)擔(dān)當(dāng)主設(shè)備,而在HA系統(tǒng)105中的其它網(wǎng)絡(luò)i殳備中 的一個(gè)或多個(gè)被配置為擔(dān)當(dāng)^MS殳備。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備110被 配置為默認(rèn)主設(shè)備,網(wǎng)絡(luò)設(shè)備111被配置為對(duì)于所述默認(rèn)主設(shè)備的備份網(wǎng) 絡(luò)設(shè)備。在這個(gè)實(shí)施例中,最初,網(wǎng)絡(luò)設(shè)備110擔(dān)當(dāng)主設(shè)備。然而,如果 在網(wǎng)絡(luò)設(shè)備110中發(fā)生失效情況,那么網(wǎng)絡(luò)設(shè)備lll可以擔(dān)當(dāng)主設(shè)備。
高可用性方案可以通過(guò)采用高可用性協(xié)議來(lái)實(shí)現(xiàn)。高可用性協(xié)"^義的例 子包括虛擬路由冗余協(xié)議(VRRP)、熱備份路由器協(xié)議(HSRP) 、 IP 備份協(xié)議(IPSTB),等等,但是并不局限于所述這幾個(gè)協(xié)議。
并且,網(wǎng)絡(luò)設(shè)備110和111可以各自存儲(chǔ)鄰居緩存表。所述鄰居緩存 表也可以被稱(chēng)為"地址表","橋接表"等等。主網(wǎng)絡(luò)設(shè)備(即,擔(dān)當(dāng)主 設(shè)備的設(shè)備)被配置為,部分地基于其鄰居緩存表,來(lái)轉(zhuǎn)發(fā)數(shù)據(jù)分組。除 了采用HA協(xié)議外,網(wǎng)絡(luò)設(shè)備110和111還可以采用用于鄰居緩存表同步 的協(xié)議。
在一個(gè)實(shí)施例中,通過(guò)向無(wú)關(guān)于鄰居緩存表同步的現(xiàn)有協(xié)議添加新的 命令,來(lái)使用所述現(xiàn)有協(xié)議執(zhí)行鄰居緩存表同步。在其它實(shí)施例中,可以 采用用于鄰居緩存表同步的單獨(dú)協(xié)議。
如果成為主設(shè)備的網(wǎng)絡(luò)設(shè)備(110或者111)接收到分組(所述分組和 HA協(xié)議,鄰居緩存表同步協(xié)議等等無(wú)關(guān)),則所述網(wǎng)絡(luò)設(shè)備將部分地基 于所述鄰居緩存表轉(zhuǎn)發(fā)所述分組。如果成為備份設(shè)備的網(wǎng)絡(luò)設(shè)備(110或 者111)接收到分組(所述分組和HA協(xié)議,鄰居緩存表同步協(xié)議等等無(wú) 關(guān)),在所述設(shè)備可以丟棄所述分組。因此,主設(shè)備控制分組的轉(zhuǎn)發(fā)。如 果發(fā)生失效倒換,則所述轉(zhuǎn)發(fā)的控制將被轉(zhuǎn)移給新的主設(shè)備。
圖2示出了處理過(guò)程200的實(shí)施例的流程圖。在一個(gè)實(shí)施例中,處理過(guò)程200被系統(tǒng)100采用。處理過(guò)程200是用于轉(zhuǎn)發(fā)分組的處理過(guò)禾呈,其 中,所述分組是被發(fā)往HA系統(tǒng)的,例如,HA系統(tǒng)105。
在初始?jí)K之后,所述處理過(guò)程進(jìn)^f亍到判斷塊290,在判斷塊290中, 判斷網(wǎng)絡(luò)設(shè)備110是否是主設(shè)備。如果是主設(shè)備,則所述處理過(guò)程前進(jìn)到 塊292,在塊292中,使網(wǎng)絡(luò)設(shè)備110能夠轉(zhuǎn)發(fā)^J^往HA系統(tǒng)的數(shù)據(jù)分 組。
接著,所述處理過(guò)程從塊292轉(zhuǎn)移到判斷塊294,在判斷塊294中, 判斷網(wǎng)絡(luò)設(shè)備IIO中的鄰居緩存表是否已經(jīng)改變。如果網(wǎng)絡(luò)設(shè)備IIO中的 鄰居緩存表沒(méi)有改變,則所述處理過(guò)程前進(jìn)到返回塊,在所述返回塊中執(zhí) 行其它過(guò)程。然而,如果網(wǎng)絡(luò)設(shè)備IIO中的鄰居緩存表已經(jīng)改變,則所述 處理過(guò)程前進(jìn)到塊298,在塊298中,使至少一個(gè)備份網(wǎng)絡(luò)設(shè)備中(例如, 網(wǎng)絡(luò)設(shè)備lll)的鄰居緩存表和網(wǎng)絡(luò)設(shè)備IIO中的鄰居緩存表同步。接著, 所述處理將從塊298轉(zhuǎn)移到所述返回塊,在所述返回塊中,執(zhí)行其它的處 理過(guò)程。
在判斷塊2卯,如果網(wǎng)絡(luò)設(shè)備110不是主i殳備,則所述處理將前進(jìn)到 塊296,在塊296中,使^f^網(wǎng)絡(luò)設(shè)備(例如,網(wǎng)絡(luò)設(shè)備111)能夠轉(zhuǎn)發(fā)被 發(fā)往HA系統(tǒng)的要轉(zhuǎn)發(fā)的數(shù)據(jù)分組。接著,所述處理過(guò)程將從塊296前進(jìn) 到所述返回塊,在所述返回塊中,執(zhí)行其它的處理。
圖3圖示了系統(tǒng)300的實(shí)施例,系統(tǒng)300用于為高可用性系統(tǒng)進(jìn)行鄰 居緩存表同步。系統(tǒng)300包括這樣的組件,例如,交換設(shè)備331-334,路 由器335-336,主機(jī)設(shè)備341 -344,鏈路L1-L4,和HA系統(tǒng)305。 HA 系統(tǒng)305包括網(wǎng)絡(luò)設(shè)備310-311。應(yīng)理解,系統(tǒng)300可以包括比圖3所示 的更多的交換設(shè)備、主機(jī)設(shè)備、路由器,和鏈路。并且,可采用與圖3所 示拓樸不同的拓樸。在系統(tǒng)300的組件與系統(tǒng)100的組件中,名字相似的 組件可以按相似的方式運(yùn)行,也可以按不同的方式運(yùn)行。
交換設(shè)備331 -334可以各自包括分組交換機(jī)等等,例如網(wǎng)橋、路由器、 二層交換機(jī)、三層交換機(jī),等等。路由器335-336可以各自通過(guò)采用例如 因特網(wǎng)協(xié)議(IP)等的協(xié)議來(lái)發(fā)送分組。并且,交換設(shè)備331 -334中的每一個(gè)都和多個(gè)鏈路相連。如果交換設(shè)備接收到分組,那么它通過(guò)將所述分 組轉(zhuǎn)發(fā)到另 一鏈路來(lái)轉(zhuǎn)發(fā)所述分組。所述交換設(shè)備中的一個(gè)或者多個(gè)可以 包括鄰居緩存表。
在一個(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備310-311中各自包含防火墻。在任何情況 下,網(wǎng)絡(luò)設(shè)備310-311中的每一個(gè)都和多個(gè)鏈路相連。如果網(wǎng)絡(luò)設(shè)備310 -311中的一個(gè)接收到要轉(zhuǎn)發(fā)的分組,并且所述網(wǎng)絡(luò)設(shè)備是主設(shè)備,則所 述網(wǎng)絡(luò)設(shè)備通過(guò)將所述分組發(fā)送到另一鏈路,來(lái)轉(zhuǎn)發(fā)所述分組。此外,網(wǎng) 絡(luò)設(shè)備310和311各自包括鄰居緩存表。
主機(jī)設(shè)備341 -344可以各自是能夠在網(wǎng)絡(luò)上發(fā)送和接收分組的任何 網(wǎng)絡(luò)設(shè)備。所述設(shè)備集合可以包括典型地使用有線通信介質(zhì)進(jìn)行連接的設(shè) 備,例如,個(gè)人計(jì)算機(jī)、多處理器系統(tǒng)、基于微處理器的或者可編程的消 費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC,等等,其中,所迷設(shè)備被配置為作為網(wǎng)絡(luò)設(shè)備來(lái)運(yùn) 行。所述設(shè)備集合還可以包括典型地使用無(wú)線通信介質(zhì)進(jìn)行連接的i殳備, 例如,蜂窩電話、智能電話、尋呼機(jī)、無(wú)線對(duì)講機(jī)、射頻(RF)設(shè)備、紅 外(IR)設(shè)備、CBs、合并前述設(shè)備中的一個(gè)或者多個(gè)的集成設(shè)備,等等, 其中,所述設(shè)備被配置為網(wǎng)絡(luò)設(shè)備。或者,主機(jī)設(shè)備341 -344可以各自是 能夠使用有線或者無(wú)線通信介質(zhì)進(jìn)行連接的任何設(shè)備,例如,PDA、 POCKET PC、可穿戴計(jì)算機(jī),以及被配置為通過(guò)有線和/或無(wú)線通信介質(zhì) 進(jìn)行通信的、作為網(wǎng)絡(luò)設(shè)備來(lái)運(yùn)行的、任何其它設(shè)備。同樣地,網(wǎng)絡(luò)設(shè)備 341 -344可以各自被配置為網(wǎng)絡(luò)服務(wù)器、緩存服務(wù)器、文件服務(wù)器、文件 存儲(chǔ)設(shè)備、代理,等等。
在一個(gè)實(shí)施例中,交換設(shè)備334-334是二層交換機(jī),并且網(wǎng)絡(luò)設(shè)備 310和311是二層轉(zhuǎn)發(fā)節(jié)點(diǎn)。交換設(shè)備331 - 331可以各自通過(guò)使用其鄰居 緩存表來(lái)執(zhí)行轉(zhuǎn)發(fā)。鄰居表中的每一條目都與特定主機(jī)相關(guān)。所述主機(jī)可 以是終端主機(jī)或者路由器。并且,每一條目包括指示主機(jī)地址的域,指 示到達(dá)所述主機(jī)的鏈路的域,以及用于進(jìn)行老化以在到期時(shí)丟棄條目的時(shí) 間域。 一旦接收到分組,所述交換設(shè)備就向所述鄰居緩存表增加條目。所 增加的條目包括在地址域中的分組源地址,在鏈路域中的鏈路——所述分組是從所述鏈路收到的,以及時(shí)間條目。
并且, 一旦收到用來(lái)轉(zhuǎn)發(fā)的分組,所述交換設(shè)備就確定所述分組的目 的地址是否被包括在所述鄰居緩存表?xiàng)l目中。如果是,則所述交換i殳備將 所述分組轉(zhuǎn)發(fā)到在所述條目的鏈路域指示的鏈路上。
在一個(gè)實(shí)施例中,主機(jī)設(shè)備341可以通過(guò)使用互聯(lián)網(wǎng)協(xié)議(IP),向 路由器335發(fā)送分組。為了達(dá)到這個(gè)目的,主機(jī)設(shè)備341可以將所述分組 發(fā)送給交換設(shè)備333。在一個(gè)實(shí)施例中,根據(jù)交換設(shè)備333中的鄰居緩存 表,交換設(shè)備333向鏈路L7發(fā)送所述分組。如果所述分組通過(guò)鏈路L7被 傳送到網(wǎng)絡(luò)設(shè)備310,并且網(wǎng)絡(luò)設(shè)備310是主設(shè)備,則網(wǎng)絡(luò)設(shè)備310轉(zhuǎn)發(fā) 所述分組。在一個(gè)實(shí)施例中,根據(jù)網(wǎng)絡(luò)設(shè)備310的鄰居緩存表,網(wǎng)絡(luò)設(shè)備 310向鏈路L3轉(zhuǎn)發(fā)所述分組。交換設(shè)備331在鏈路L3上接收所述分組并 且轉(zhuǎn)發(fā)所述分組。在一個(gè)實(shí)施例中,根據(jù)交換設(shè)備331中的鄰居緩存表, 交換設(shè)備331通過(guò)鏈路Ll向路由器335轉(zhuǎn)發(fā)所述分組。
如果網(wǎng)絡(luò)設(shè)備310是主設(shè)備,則網(wǎng)絡(luò)設(shè)備310被配置為使用其鄰居緩 存表來(lái)轉(zhuǎn)發(fā)分組。同樣地,如果網(wǎng)絡(luò)設(shè)備311是主設(shè)備,則網(wǎng)絡(luò)設(shè)備311 被配置為使用其鄰居緩存表來(lái)轉(zhuǎn)發(fā)分組。在一個(gè)實(shí)施例中,為了快速查找 所述鄰居緩存表是基于哈希的。主設(shè)備可以按類(lèi)似于以上關(guān)于交換設(shè)備 331 -334所述的方式,來(lái)使用其鄰居緩存表。
如果網(wǎng)絡(luò)設(shè)備310不擔(dān)當(dāng)主設(shè)備,它將丟棄任何發(fā)送到網(wǎng)絡(luò)設(shè)備310 的用于轉(zhuǎn)發(fā)的分組。類(lèi)似地,如果網(wǎng)絡(luò)設(shè)備311不但當(dāng)主設(shè)備,它將丟棄 任何發(fā)送到網(wǎng)絡(luò)設(shè)備311的用于轉(zhuǎn)發(fā)的分組。
如果網(wǎng)絡(luò)設(shè)備310擔(dān)當(dāng)主設(shè)備,并且,在網(wǎng)絡(luò)設(shè)備310中出現(xiàn)失效情 況,則可以采用高可用性協(xié)議,從而使得網(wǎng)絡(luò)設(shè)備311成為主設(shè)備,于是, 對(duì)轉(zhuǎn)發(fā)的控制被失效倒換,所述轉(zhuǎn)發(fā)是對(duì)發(fā)往高可用性系統(tǒng)305的、用于 轉(zhuǎn)發(fā)的分組的轉(zhuǎn)發(fā)。在一個(gè)實(shí)施例中,所述高可用性協(xié)議使用被組^燔到高 可用性組播地址的命令。網(wǎng)絡(luò)設(shè)備310和311都是高可用性組播組的成員。
進(jìn)而,網(wǎng)絡(luò)設(shè)備310和311使用鄰居緩存表同步協(xié)議。所述同步協(xié)議 可以包括這樣的命令,例如,Add、 Delete、 Ack、 Sync-request、 Sync-Ack,和Update。所述同步協(xié)議可以使得高可用性系統(tǒng)305能夠保持轉(zhuǎn)發(fā)^f言息的 同步,從而使得當(dāng)失效倒換發(fā)生時(shí),可以以相當(dāng)小的延遲并且不中斷地轉(zhuǎn) 發(fā)通信量。如果發(fā)生失效倒換,因?yàn)猷従泳彺姹硗?,所以可以繼續(xù)快速 且有效地轉(zhuǎn)發(fā)通信量。
在一個(gè)實(shí)施例中,可以通過(guò)向組播地址組播所述同步協(xié)議的每個(gè)命令, 來(lái)發(fā)送所述協(xié)議命令,所述組播地址包括網(wǎng)絡(luò)設(shè)備310和311。在一個(gè)實(shí) 施例中,用于所述同步協(xié)議的組播地址和用于所述高可用性協(xié)議的組播地 址相同。在其它實(shí)施例中,用于所述同步協(xié)議的組播地址和所述高可用性 組播地址可以不相同。
并且,如上所述,可以向現(xiàn)有的協(xié)議增加同步命令,例如Add、 Delete、 Ack、 Sync-request、 Sync-Ack,和Update,而不使用單獨(dú)的協(xié)議。在一 個(gè)實(shí)施例中,命令A(yù)dd、 Delete、 Ack、 Sync-request、 Sync-Ack,和Update 是包含在地址解析協(xié)議(ARP)中的命令。在這個(gè)實(shí)施例中,在同步組插^ 組中的設(shè)備被編程,以識(shí)別并響應(yīng)包含在ARP命令中的所述命令。然而, 本發(fā)明并不局限于ARP協(xié)議,還可以采用其它的或者新的分組類(lèi)型。在一 個(gè)實(shí)施例中,這些內(nèi)藏的ARP命令被組播到如上所述的HA組播組。而后, 所述內(nèi)藏的ARP命令被稱(chēng)為HA ARP命令。
如果所述主設(shè)備(例如,網(wǎng)絡(luò)設(shè)備310)向其鄰居緩存表增加了新條 目,則它將向所述*設(shè)備(例如,網(wǎng)絡(luò)設(shè)備311)發(fā)送Add命令。所述 Add命令包括在所述新條目的地址域中所指出的地址。在一個(gè)實(shí)施例中, 所述Add命令也包括在所述新條目的鏈路域中所指出的鏈路。在另 一實(shí)施 例中,不是將所述鏈路包含在所述命令中,而是通過(guò)使用所述鏈路傳送Add 命令來(lái)間接指出所述鏈路。 一旦接收到所述Add命令,所述^i殳備(例 如,網(wǎng)絡(luò)設(shè)備311)就增加新的條目,所述新的條目包括所述命令中所指 出的地址,和通過(guò)所述Add命令明確指出或者間接指出的鏈路。在間接指 出鏈路的實(shí)施例中,在所述備份設(shè)備的鄰居緩存表中的新條目的鏈路域包 括鏈路一一所述Add命令是從所述鏈路接收到的。
在一個(gè)實(shí)施例中,如果主設(shè)備從其鄰居緩存表中刪除條目,則它將向^^i殳備發(fā)送Delete命令。響應(yīng)所述Delete命令,所述^^i殳備從其鄰居 緩存表中刪除相應(yīng)的條目。在這個(gè)實(shí)施例中,所述主設(shè)備使得其鄰居條目 老化,而所述^#設(shè)備不使得其鄰居條目老化。在另一實(shí)施例中,沒(méi)有使 用Delete命令,并且備份網(wǎng)絡(luò)設(shè)備使得其本身的鄰居緩存表老化。
在一個(gè)實(shí)施例中,響應(yīng)接收到正確的Add或者Delete命令,備^&備 向主設(shè)備發(fā)送Ack命令。
在一個(gè)實(shí)施例中,當(dāng)網(wǎng)絡(luò)i殳備(例如,310或者311)第一次加入高可 用性系統(tǒng)305時(shí),它向當(dāng)前主設(shè)備發(fā)送Sync-request命令,以請(qǐng)求在所述 當(dāng)前主設(shè)備的鄰居緩存表中的所有條目。 一旦接收到Sync-request命令, 所述當(dāng)前主設(shè)備就發(fā)送與主設(shè)備鄰居緩存表中的條目相應(yīng)的Sync-Ack命 令。在一個(gè)實(shí)施例中,為主設(shè)備鄰居緩存表的每一條目發(fā)送一個(gè)Sync-Ack 命令。在另一實(shí)施例中,具有相同鏈路域的地址結(jié)合成單個(gè)Sync-Ack命 令。
如同所述Add命令一樣,在一個(gè)實(shí)施例中,在所述Sync-Ack命令中 明確指出鏈路域,而在另一實(shí)施例中,通過(guò)使用鄰居緩存表的鏈路域中的 鏈路來(lái)傳送Sync-Ack命令,在Sync-Ack命令中間接指出鏈路域。
在一個(gè)實(shí)施例中,當(dāng)網(wǎng)絡(luò)設(shè)備(例如,310或311)成為主設(shè)備時(shí),這 是因?yàn)槭У箵Q或者在重啟后重新開(kāi)始成為主設(shè)備, 一旦成為主設(shè)備,所 述網(wǎng)絡(luò)設(shè)備就會(huì)為鄰居緩存表中的每一條目發(fā)送Update命令。所述Update 命令是這樣的分組,所述分組在其源地址域包括來(lái)自所述條目的地址域的 地址。在一個(gè)實(shí)施例中,除了連接鄰居的鏈路,所述網(wǎng)絡(luò)設(shè)備在與其連接 的每一鏈路上發(fā)送所述Update命令的拷貝。
響應(yīng)接收到Update命令,鄰居交換設(shè)備(例如331-334)被配置為更 新其鄰居緩存表,如果需要,還將重定向到新的主設(shè)備的通信量。更確切 地,當(dāng)所述鄰居交換設(shè)備接收到所述Update命令分組時(shí),將向鄰居交換 設(shè)備的鄰居緩存表增加新條目。所述新條目的地址域包括所述Update命 令分組的源地址域中的地址。所述新條目的鏈路域包括通向所述新的主設(shè) 備的鏈路。圖4-5示出了處理過(guò)程400實(shí)施例的流程圖,處理過(guò)程400可以被用 于在例如HA系統(tǒng)的系統(tǒng)中的鄰居緩存表同步。在一個(gè)實(shí)施例中,處理過(guò) 程400由圖3的網(wǎng)絡(luò)設(shè)備310和311中的一個(gè)或者兩個(gè)所使用。
首先在開(kāi)始?jí)K中,網(wǎng)絡(luò)設(shè)備,例如網(wǎng)絡(luò)設(shè)備310或者網(wǎng)絡(luò)設(shè)備311, 出現(xiàn)在鏈路上。接著所述處理過(guò)程進(jìn)行到塊450,在塊450中,組播HA ARP Sync-request命令。隨后所述處理過(guò)程移到塊451,在塊451中,創(chuàng)建鄰居 緩存表。然后,所述處理過(guò)程進(jìn)行到塊452,在塊451中,響應(yīng)可以收到 的任何Sync-Ack命令,向所述鄰居緩存表增加新的條目。
隨后,所述處理過(guò)程進(jìn)行到判斷塊454,其中,判斷所述網(wǎng)絡(luò):^殳備是 否是主設(shè)備。如果是主設(shè)備,則所述處理過(guò)程進(jìn)行到塊458,在塊458中, 發(fā)送HA ARP Update命令。接著,所述處理過(guò)程進(jìn)行到判斷塊460,在塊 460中,判斷是否已經(jīng)接收到Sync-Request HAARP命令。如果已經(jīng)接收 到,則所述處理過(guò)程移動(dòng)到塊466,在塊466中,為所述鄰居緩存表中的 每一鄰居轉(zhuǎn)發(fā)條目,組播HA ARP Sync-Ack命令。
接著,所述處理過(guò)程前進(jìn)到判斷塊461,其中,判斷是否已經(jīng)接收到 用于轉(zhuǎn)發(fā)的分組。如果已經(jīng)接收到,則所述處理過(guò)程進(jìn)行到塊468,在塊 468中,轉(zhuǎn)發(fā)所述分組。接著,所述處理過(guò)程前進(jìn)到判斷塊470,在塊470
如果不包括,則所述處理過(guò)程移到塊472,在塊472中,向所述鄰居緩存 表增加關(guān)于所述主機(jī)地址的條目。接著,所述處理過(guò)程前進(jìn)到塊474,在 塊474中,向所述主機(jī)地址組播HA ARP Add命令。
隨后所述處理過(guò)程移到判斷塊462,在塊462中,判斷所述鄰居緩存 表中的每個(gè)條目的時(shí)間域中指示的時(shí)間是否到期。如果到期,則所述處理 過(guò)程移到塊476,在塊476中,刪除到期的條目。接著,所述處理過(guò)程進(jìn) 行到塊478,在塊478中,組播對(duì)于所述到期條目的HA ARP Delete命令。 然后,所述處理過(guò)程前進(jìn)到判斷塊463,在塊463中,判斷所述網(wǎng)絡(luò)設(shè)備 是否仍然擔(dān)當(dāng)主設(shè)備。
如果不是,則所述處理過(guò)程移動(dòng)到判斷塊455,在塊455中,判斷是否已經(jīng)收到HAARPAdd命令。如果已經(jīng)收到,則所述處理過(guò)程前進(jìn)到塊 480,在塊站0中,響應(yīng)所述HAARPAdd命令,向鄰居緩存表增加條目。 接著,所述處理過(guò)程前進(jìn)到判斷塊456,在塊456中,判斷是否已經(jīng)收到 HA ARP Delete命令。如果收到,則所述處理過(guò)程前進(jìn)到塊482,在塊482 中,響應(yīng)HAARPDelete命令,從鄰居緩存表中刪除條目。隨后,所述處 理過(guò)程移到判斷塊454。
在判斷塊454中,如果確定所述網(wǎng)絡(luò)設(shè)備不擔(dān)當(dāng)主設(shè)備,則所述處理 過(guò)程前進(jìn)到判斷塊455。在判斷塊455中,如果確定沒(méi)有收到HA ARP Add 命令,則所述處理過(guò)程前進(jìn)到判斷塊456。在判斷塊456中,如果確定沒(méi) 有收到HA ARP Delete命令,則所述處理過(guò)程移到判斷塊454。
在判斷塊470中,如果確定所述鄰居緩存表中已經(jīng)包含所述主機(jī)地址, 則所述處理過(guò)程進(jìn)行到判斷塊462。在判斷塊462中,如果確定所述條目 的時(shí)間域中的時(shí)間沒(méi)有到期,則所述處理過(guò)程前進(jìn)到判斷塊463。在判斷 塊463中,如果確定所述網(wǎng)絡(luò)設(shè)備仍然是主設(shè)備,則所述處理過(guò)程移到判 斷塊460。在判斷塊460中,如果確定沒(méi)有收到Sync-Request命令,則所 述處理過(guò)程前進(jìn)到判斷塊461。在判斷塊461中,如果沒(méi)有收到與轉(zhuǎn)發(fā)相 關(guān)聯(lián)的分組,則所述處理過(guò)程前進(jìn)到塊462。
應(yīng)理解,圖5所示的判斷塊460-463的判斷順序是任意的,可以按任 意順序來(lái)執(zhí)行,或者可以同時(shí)執(zhí)行。相似地,應(yīng)理解,圖4所示的判斷塊 455-456的判斷順序也是任意的,可以按任意順序來(lái)執(zhí)行,或者可以同時(shí)執(zhí) 行。圖中所示的判斷順序僅僅是為了舉例說(shuō)明,不應(yīng)理解為限制。
上述說(shuō)明、舉例以及數(shù)據(jù)提供了對(duì)本發(fā)明組成部分的產(chǎn)生和使用的描 述。由于可以在不脫離本發(fā)明的精神和范圍條件下可以產(chǎn)生本發(fā)明的許多 實(shí)施例,所以本發(fā)明還歸于下文所附的權(quán)利要求。
1權(quán)利要求
1. 一種用于在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)通信量的網(wǎng)絡(luò)設(shè)備,包括收發(fā)器;以及處理器,其被配置為執(zhí)行以下動(dòng)作,包括如果接收到同步請(qǐng)求,則使所述收發(fā)器能夠發(fā)送對(duì)于所述同步請(qǐng)求的響應(yīng),其中所述響應(yīng)包括與第一鄰居緩存表中的條目相關(guān)聯(lián)的信息;如果對(duì)所述第一鄰居緩存表執(zhí)行刪除,則使所述收發(fā)器能夠向其它網(wǎng)絡(luò)設(shè)備發(fā)送有關(guān)所述刪除的信息,以使所述其它網(wǎng)絡(luò)設(shè)備能夠在第二鄰居緩存表中反映所述刪除;以及如果向所述第一鄰居緩存表增加另一條目,則使所述收發(fā)器能夠向所述其它網(wǎng)絡(luò)設(shè)備發(fā)送有關(guān)所述另一條目的信息,以使所述其它鄰居設(shè)備能夠在所述第二鄰居緩存表中反映所述另一條目,其中,所述另一條目與主機(jī)相關(guān)聯(lián),并且其中,所述有關(guān)所述另一條目的信息是通過(guò)與所述主機(jī)相關(guān)聯(lián)的鏈路而被發(fā)送的。
2. 根據(jù)權(quán)利要求1的網(wǎng)絡(luò)設(shè)備,其中,所述響應(yīng)與另一主機(jī) 相關(guān)聯(lián),并且其中,所述響應(yīng)是通過(guò)與所述另一主機(jī)相關(guān)聯(lián)的另 一鏈路而^皮發(fā)送的。
3. 根據(jù)權(quán)利要求1的網(wǎng)絡(luò)設(shè)備,其中,所述第一鄰居緩存表 中的每一條目都包括指示條目地址的地址域,并且進(jìn)一步包括, 指示向所述條目地址進(jìn)行轉(zhuǎn)發(fā)將使用的鏈路的鏈路域,并且其中, 所述處理器被進(jìn)一步配置為使所述收發(fā)器能夠發(fā)送同步請(qǐng)求; 在接收鏈路接收對(duì)所述同步請(qǐng)求的另一響應(yīng);以及 基于對(duì)所述同步請(qǐng)求的所述另一響應(yīng),向所述第一鄰居緩存表增加附加條目,從而使得所述附加條目的鏈路域包含所述接收 鏈路。
4. 根據(jù)權(quán)利要求1的網(wǎng)絡(luò)設(shè)備,其中,所述處理器被進(jìn)一步 配置為使得所述收發(fā)器能夠發(fā)送至少一個(gè)命令,以使得鄰居交換設(shè) 備能夠重定向到所述網(wǎng)絡(luò)設(shè)備的通信量。
5. 根據(jù)權(quán)利要求4的網(wǎng)絡(luò)設(shè)備,其中,在所述第一鄰居緩存 表中的每一條目都包括指示條目地址的地址域,并且其中,所述處理器被配置為通過(guò)這樣的方式,使得所述收發(fā)器能夠發(fā)送至少 一個(gè)命令,以使得所述鄰居交換設(shè)備能夠重定向到所述網(wǎng)絡(luò)設(shè)備 的通信量,所述方式為為所述第一鄰居緩存表中的每一條目發(fā)送分組,所述分組包 括含有所述條目地址的源地址域。
6. —種用于在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)通信量的方法,包括 在網(wǎng)絡(luò)設(shè)備中存儲(chǔ)第一鄰居緩存表;在備份網(wǎng)絡(luò)設(shè)備中存儲(chǔ)第二鄰居緩存表,其中,所述備份網(wǎng)絡(luò)設(shè)備與多條鏈路相連;在所述網(wǎng)絡(luò)設(shè)備的接收鏈路接收與主機(jī)地址相關(guān)聯(lián)的分組; 判斷所述第一鄰居緩存表是否包括與所述主機(jī)地址相關(guān)聯(lián)的條目;如果所述第一鄰居緩存表不包括所述條目,則從所述接收鏈 路向所述備份網(wǎng)絡(luò)設(shè)備的多條鏈路中的第一鏈路,發(fā)送增加命令, 其中,所述增加命令包括所述主機(jī)地址;在所述多條鏈路中的第一鏈路接收所述增加命令;以及 響應(yīng)所述增加命令,向所述第二鄰居緩存表增加新條目。
7. 根據(jù)權(quán)利要求6的方法,其中,在所述第一和第二鄰居緩 存表中的每一條目包括指示條目地址的地址域,并且進(jìn)一步包括,指示向所述條目地址進(jìn)行轉(zhuǎn)發(fā)將使用的鏈路的鏈路域,其中,所 述新條目的地址域包括所述主機(jī)地址,并且其中,所述新條目的 鏈路域包括所述第一鏈路。
8. 根據(jù)權(quán)利要求6的方法,進(jìn)一步包括 從所述備份網(wǎng)絡(luò)設(shè)備向所述網(wǎng)絡(luò)設(shè)備發(fā)送同步請(qǐng)求; 響應(yīng)所述同步請(qǐng)求,向所述備份網(wǎng)絡(luò)設(shè)備發(fā)送和所述第一鄰居緩存表中的每一條目相關(guān)聯(lián)的信息,其中,所述信息包括所述 第一鄰居緩存表中的每一條目的地址域的條目地址,并且其中, 使用包括在這樣的條目的鏈路域中的鏈路,來(lái)將所迷條目地址中 的每一個(gè)都發(fā)送到所述備份網(wǎng)絡(luò)設(shè)備,所述這樣的條目為所述第一鄰居緩存表中的、包括所述條目地址的條目;并且 對(duì)于所述信息的每一條目地址在所述備份網(wǎng)絡(luò)設(shè)備的多個(gè)鏈路中的一個(gè)鏈路上,接收 所述條目地址;并且響應(yīng)所述條目地址,向所述第二鄰居緩存表增加另一新 條目,使得所述另一新條目的地址域包括所述條目地址,并 且使得,所述新條目的鏈路域包括所述備份網(wǎng)絡(luò)設(shè)備的多個(gè) 鏈路中的接收所述條目地址的那一個(gè)鏈路。
9. 根據(jù)權(quán)利要求6的方法,進(jìn)一步包括 使包含在所迷第一鄰居緩存表的每一條目中的時(shí)間域老化; 對(duì)于所述第一鄰居緩存表中的每一條目,判斷所述條目的時(shí)間域是否到期,并且如果到期,則從所述第一鄰居緩存表中刪除所迷條目; 從所述網(wǎng)絡(luò)設(shè)備向所述備份網(wǎng)絡(luò)設(shè)備發(fā)送刪除命令,其 中,所述刪除命令關(guān)聯(lián)于從所述第一鄰居緩存表中刪除的條 目;并且響應(yīng)所述刪除命令,在所述第二鄰居緩存表中刪除另一條目。
10. 根據(jù)權(quán)利要求6的方法,其中,通過(guò)向高可用性協(xié)議組播 地址組播所述增加命令,所述網(wǎng)絡(luò)設(shè)備向所述備份設(shè)備發(fā)送所述 增加命令。
11. 根據(jù)權(quán)利要求6的方法,進(jìn)一步包括 對(duì)于所述第一鄰居緩存表中的每一條目,從所述網(wǎng)絡(luò)設(shè)備發(fā)送更新分組,其中,所述更新分組包括源地址域,所述源地址域 包含所述條目的條目地址;并且響應(yīng)所述更新分組中的至少一個(gè),更新在鄰居交換設(shè)備中的 第三鄰居緩存表,以重定向到所述網(wǎng)絡(luò)設(shè)備的通信量。
12. —種在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)通信量的網(wǎng)絡(luò)設(shè)備,包括 收發(fā)器;以及處理器,其被配置為執(zhí)行以下操作,包括 如果所述網(wǎng)絡(luò)設(shè)備擔(dān)當(dāng)主設(shè)備,貝'J:接收多個(gè)分組,其中,在所述多個(gè)分組中所接收的 分組是在接收鏈路上被接收的,并且其中,所述所接收 的分組和主才幾地址相關(guān)聯(lián);判斷第一鄰居緩存表是否包含和所述主機(jī)地址相關(guān) 聯(lián)的條目;以及如果所述緩存表不包含所述條目,則使所述收發(fā)器 能夠向備份網(wǎng)絡(luò)設(shè)備發(fā)送所述主機(jī)地址,以使得所述備 份網(wǎng)絡(luò)設(shè)備將第二鄰居緩存表與所述第一鄰居緩存表同 步。
13. 根據(jù)權(quán)利要求12的網(wǎng)絡(luò)設(shè)備,其中,使所述收發(fā)器能夠 向所述備份網(wǎng)絡(luò)設(shè)備發(fā)送所述主機(jī)地址,是通過(guò)所述接收鏈路實(shí) 現(xiàn)的。
14. 根據(jù)權(quán)利要求12的網(wǎng)絡(luò)設(shè)備,其中,所述處理器被進(jìn)一步配置為,使所述收發(fā)器發(fā)送更新命令,從而使鄰居交換設(shè)備能 夠重定向到所述網(wǎng)絡(luò)設(shè)備的通信量。
15. 根據(jù)權(quán)利要求12的網(wǎng)絡(luò)設(shè)備,其中,如果所述網(wǎng)絡(luò)設(shè)備 擔(dān)當(dāng)主設(shè)備,在所述處理器被進(jìn)一步配置為接收同步請(qǐng)求;并且響應(yīng)所迷同步請(qǐng)求,使所述收發(fā)器能夠向所述備份網(wǎng)絡(luò)設(shè)備 發(fā)送和所述第一鄰居緩存表的每一條目相關(guān)聯(lián)的信息,其中,所 述第一鄰居緩存表的每一條目包括,指示條目地址的地址域,并 且進(jìn)一步包括,指示轉(zhuǎn)發(fā)所述條目將使用的鏈路的鏈路域,所述 信息包括在所述第一緩存表中的每一條目的地址域的地址,并且 其中,使用包含在這樣的條目的鏈路域中的鏈路,來(lái)將所述條目 地址中的每一個(gè)都發(fā)送到所述備份網(wǎng)絡(luò)設(shè)備,所述這樣的條目為 所述第一鄰居緩存表中的、包含所述條目地址的條目。
16. 根據(jù)權(quán)利要求12的網(wǎng)絡(luò)設(shè)備,其中,所述處理器一皮進(jìn)一 步配置為對(duì)于所迷第一鄰居緩存表中的每一條目,如果從所述第一鄰 居緩存表刪除所述條目,則使所述收發(fā)器能夠向所述備份網(wǎng)絡(luò)設(shè) 備發(fā)送刪除命令。
17. 根據(jù)權(quán)利要求12的網(wǎng)絡(luò)設(shè)備,其中,如果所述網(wǎng)絡(luò)設(shè)備 擔(dān)當(dāng)主設(shè)備,則所述處理器被進(jìn)一步配置為控制多個(gè)分組的轉(zhuǎn)發(fā), 并且其中,如果所述備份網(wǎng)絡(luò)設(shè)備擔(dān)當(dāng)主設(shè)備,則所述備份網(wǎng)絡(luò)設(shè)備被配置為控制多個(gè)分組的轉(zhuǎn)發(fā)。
18. 根據(jù)權(quán)利要求12的網(wǎng)絡(luò)設(shè)備,其中,所述第一鄰居緩存 表中的每一條目包括指示條目地址的地址域,并且進(jìn)一步包括, 指示向所述條目地址進(jìn)行轉(zhuǎn)發(fā)將使用的鏈路的鏈路域;并且其中, 所述處理器被進(jìn)一步配置為如果所述網(wǎng)絡(luò)設(shè)備擔(dān)當(dāng)備份設(shè)備,貝'J:如果在另 一接收鏈路接收到增加命令,則增加條目到所 述第一鄰居緩存表中,從而使得所增加的條目在其地址域中 包括與所述增加命令相關(guān)聯(lián)的另 一主機(jī)地址,并且在其鏈路域中包括所述另一接收鏈路;以及如果接收到刪除命令,則從所述第一鄰居緩存表刪除與 所述刪除命令相關(guān)聯(lián)的條目;以及如果所述網(wǎng)絡(luò)設(shè)備從備份設(shè)備變?yōu)橹髟O(shè)備,則對(duì)于所述第一 鄰居緩存表中的每一條目,發(fā)送帶有源地址域的分組,所述源地 址域包括所述條目的條目地址。
19. 一種計(jì)算機(jī)可讀介質(zhì),被用于管理同步的指令編碼,所述 指令包括用于為第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備提供高度可用性的單 元;以及同步單元,用于在所述第一網(wǎng)絡(luò)設(shè)備和所述第二網(wǎng)絡(luò)設(shè)備之 間進(jìn)行鄰居緩存表同步信息的通信。
20. 根據(jù)權(quán)利要求19的計(jì)算機(jī)可讀介質(zhì),其中,所述同步單 元包括增加命令、更新命令、同步請(qǐng)求命令和同步確認(rèn)命令中的 至少 一 個(gè)。
全文摘要
本發(fā)明提供一種用于同步備份網(wǎng)絡(luò)設(shè)備的鄰居緩存表和主網(wǎng)絡(luò)設(shè)備的鄰居緩存表的方法和設(shè)備。每當(dāng)在主網(wǎng)絡(luò)設(shè)備中增加或者刪除條目時(shí),所述主網(wǎng)絡(luò)設(shè)備就可以向所述備份網(wǎng)絡(luò)設(shè)備發(fā)送增加或者刪除命令。此外,當(dāng)新的網(wǎng)絡(luò)設(shè)備加入到鏈路中成為主設(shè)備或者備份設(shè)備時(shí),將采用同步請(qǐng)求和同步確認(rèn)命令,以使所述新網(wǎng)絡(luò)設(shè)備與主網(wǎng)絡(luò)設(shè)備同步。另外,當(dāng)網(wǎng)絡(luò)設(shè)備成為主設(shè)備時(shí),可以發(fā)送更新命令,以使得鄰居交換設(shè)備能夠更新其各自的鄰居緩存表,且如果需要,重定向到所述網(wǎng)絡(luò)設(shè)備的通信量。
文檔編號(hào)G06F12/16GK101427525SQ200580016287
公開(kāi)日2009年5月6日 申請(qǐng)日期2005年4月14日 優(yōu)先權(quán)日2004年4月30日
發(fā)明者T·源 申請(qǐng)人:諾基亞公司