專利名稱:在分布式開關中管理全局轉發(fā)表的制作方法
技術領域:
本公開涉及計算技術,更具體地,涉及在分布式開關中多播(multicast)數(shù)據(jù)。
背景技術:
通常,多播指在單個傳輸中將數(shù)據(jù)遞送到多個主機(host)。諸如分布式開關的開關使用多播成員資格信息將發(fā)送到多播目的地地址的多播數(shù)據(jù)(例如多播分組)轉發(fā)到正確的主機。但是,當分布式開關不具有對于多播目的地地址的多播成員資格信息時,分布式開關通常默認將該多播分組廣播或者泛洪(flooding)到網(wǎng)絡上的實際所有主機(例如多播域內(nèi)的所有主機)。通過泛洪,分布式開關確保由多播目的地地址標識的組的主機接收到多播分組。但是,泛洪也可能導致帶寬的浪費以及多播分組傳輸?shù)椒且庥闹鳈C,這可能進一步引起安全風險。泛洪還可能導致資源的浪費,因為接收多播分組的每個非意欲的主機可能花費資源最終確定其需要丟棄該多播分組,或者多播分組被非意欲的主機接收并且可能發(fā)生安全性暴露。
發(fā)明內(nèi)容
在一個具體實施例中,公開了在分布式開關中管理全局轉發(fā)表的方法。該分布式開關可以包括多個開關轉發(fā)單元。該方法可以啟動針對全局轉發(fā)表中的條目的計時器,該條目包括多播目的地地址和相應的多播成員資格信息。該方法還可以響應于該條目的計時器到期,檢查至少一個命中狀態(tài),以確定所述多個開關轉發(fā)單元中的至少一個開關轉發(fā)單元是否已經(jīng)對于該條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù)。該方法還可以基于所述命中狀態(tài)確定該條目是否是排除(cast-out)的候選者。
在另一個實施例中,公開了一種裝置,包括:至少一個處理器;以及程序代碼,配置為由所述處理器執(zhí)行以在分布式開關中管理全局轉發(fā)表。該分布式開關可以包括多個開關轉發(fā)單元。該程序代碼可以配置為由處理器執(zhí)行以啟動針對全局轉發(fā)表中的條目的計時器,該條目可以包括多播目的地地址和相應的多播成員資格信息。該程序代碼還可以配置為由處理器執(zhí)行以響應于該條目的計時器到期,檢查至少一個命中狀態(tài),以確定所述多個開關轉發(fā)單元中的至少一個開關轉發(fā)單元是否已經(jīng)對于該條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù)。該程序代碼還可以配置為由處理器執(zhí)行以基于所述命中狀態(tài)確定該條目是否是排除的候選者。在一個具體實施例中,公開了可以在分布式開關中管理全局轉發(fā)表的另一方法。該分布式開關可以包括多個開關轉發(fā)單元。該方法可以啟動針對全局轉發(fā)表中的條目的計時器,所述條目包括多播目的地地址和相應的多播成員資格信息。該方法可以響應于所述條目的計時器到期,確定任意主開關轉發(fā)單元是否被編程有所述條目的多播目的地地址和相應的多播成員資格信息。該方法還可以檢查被編程的主開關轉發(fā)單元的命中狀態(tài),以確定任意的被編程的主開關轉發(fā)單元是否已經(jīng)對于所述條目的多播目的地地址的多播成員資格信息轉發(fā)了多播數(shù)據(jù)。該方法還可以確定任意從開關轉發(fā)單元是否被編程有所述條目的多播目的地地址和相應的多播成員資格信息。該方法還可以檢查被編程的從開關轉發(fā)單元的命中狀態(tài),以確定任意的被編程的從開關轉發(fā)單元是否已經(jīng)對于所述條目的多播目的地地址的多播成員資格信息轉發(fā)了多播數(shù)據(jù)。該方法還可以基于命中狀態(tài)確定所述條目是否是排除的候選者。
圖1是配置為在分布式開關中管理全局轉發(fā)表的計算系統(tǒng)的實施例的框圖。圖2是更詳細地例示用于實施與圖1的計算系統(tǒng)一致的分布式開關的實施例的主要硬件和固件實體的框圖。圖3是在分布式開關中請求由多播目的地地址標識的組的多播成員資格信息的方法的實施例的流程圖。圖4是在分布式開關中請求由多播目的地地址標識的組的多播成員資格信息的方法的另一實施例的流程圖。
圖5是在分布式開關中管理全局轉發(fā)表的方法的實施例的流程圖。
具體實施例方式集中式開關通常利用單個開關轉發(fā)單元對于所有附連的主機進行所有轉發(fā)功能性,通常導致瓶頸和延遲。但是,通過引入分布式開關,已經(jīng)克服了集中式開關的許多挑戰(zhàn)。具體地,分布式開關通??邕^大量開關轉發(fā)單元分布功能性,每個開關轉發(fā)單元僅負責其附連的主機的轉發(fā)功能性。當開關轉發(fā)單元“需要知道”時,開關轉發(fā)單元通常還僅被編程多播目的地地址和相應的多播成員資格信息。具體地,當“需要知道”時,開關轉發(fā)單元可能被編程,因為在可能被編程的多播目的地地址的數(shù)量方面,開關轉發(fā)單元可能具有限的容量。有限的容量可能由于內(nèi)容可尋址存儲器的使用而導致。事實上,當包含在每個開關轉發(fā)單元內(nèi)的內(nèi)容可尋址存儲器(CAM)提供快速搜索時間時,CAM通常是昂貴的。不過,例如,當開關轉發(fā)單元附連到發(fā)送多播數(shù)據(jù)(例如多播分組)的主機時,開關轉發(fā)單元“需要知道”多播數(shù)據(jù)的多播目的地地址的多播成員資格信息,以便將多播數(shù)據(jù)恰當?shù)剞D發(fā)到各成員。分布式開關可以通過使用探聽器(snooper)探聽通信來“學習”將多播數(shù)據(jù)轉發(fā)到明哩。例如,經(jīng)由諸如因特網(wǎng)組管理協(xié)議(IGMP)或者多播偵聽發(fā)現(xiàn)(MLD),路由器或者分布式開關充當詢問者,并且主機以對于多播成員信息進行探聽的報告來響應詢問。具體地,可以響應于由詢問者以某個間隔發(fā)起的一般詢問來接收報告。該一般詢問通常請求每個主機報告其成員資格。在由詢問者發(fā)起的MLD的情況下,也可以響應于具體組詢問/具體多播地址詢問而接收報告。具體組詢問/具體多播地址詢問請求主機報告對于該具體組的成員資格。此外,可以按非請求的方式接收報告,比如在主機加入組時。探聽器通常建立已經(jīng)學習的多播目的地地址及其相應的多播成員資格信息的有限大小的全局轉發(fā)表。當該表填滿時,探聽器通常停止學習,直到該表具有空間。這樣,探聽器可能不能獲悉新的多播目的地地址及其相應的多播成員資格信息。此外,新的多播目的地地址及其相應的多播成員資格信息可能未被編程到“需要知道”它的開關轉發(fā)單元中,并且該開關轉發(fā)單元默認將多播數(shù)據(jù)泛洪到網(wǎng)絡上的實際所有的主機(例如在廣播域內(nèi)的所有主機)。該開關轉發(fā)單元還產(chǎn)生被稱為故障(miss)事件的硬件事件以通知“需要知道”。在此提供了在分布式開關中管理全局轉發(fā)表的裝置和方法的實施例。這樣做,可以加速對多播目的地地址的更新或最新的多播成員資格信息的學習,可能引起更少的泛洪。圖1例示可以配置為請求由多播目的地地址標識的組的多播成員資格信息的計算系統(tǒng)100的框圖。多播成員資格信息實際上可以是與成員資格有關的任意信息,比如但不限于已經(jīng)加入由該多播目的地地址標識的組的成員資格的任何主機或其標識符。多播成員資格信息可以符合與多播成員資格相關聯(lián)的通信協(xié)議,比如IGMP或者MLD。多播目的地地址可以是具有設置為多播而不是單播或者廣播的位的媒體訪問控制(MAC)目的地地址。該多播目的地地址標識主機組或者已經(jīng)加入該組的成員,以便接收發(fā)送到該多播目的地地址的多播分組。每個多播分組可以包括多播目的地地址。計算系統(tǒng)100可以包括至少一個主機(例如主機102、104、106)、至少一個多播路由器108和至少一個分布式開關110。分布式開關110可以包括具有至少一個探聽器114和至少一個主開關轉發(fā)單元116的至少一個主分布式開關元件112。分布式開關110還可以包括具有至少一個從開關轉發(fā)單元120的至少一個從分布式開關元件118。實際上,分布式開關元件110可以包括多個從分布式開關元件118、多個主開關轉發(fā)單元116和多個從開關轉發(fā)單元120,如結合圖2所示。主機102、104、106、多播路由器108和分布式開關110的每個可以經(jīng)由諸如以太網(wǎng)絡的網(wǎng)絡耦接。主機102、104、106的每個可以是任何適當?shù)挠嬎阍O備,比如個人計算機、工作站、客戶端、服務器、大型機(mainframe)、手持計算機、掌上計算機、電話設備、網(wǎng)絡工具、刀鋒計算機、其他計算機或者其任意組合。主機102、104、106可以配置為發(fā)送和接收多播分組。具體地,主機102可以是充當向該組的成員的多播目的地地址發(fā)送至少一個多播分組的多播發(fā)送器的服務器。主機104、106的每個可以是已經(jīng)加入由多播目的地地址標識的組以便接收多播分組的客戶端。這樣,主機104、106的每個可以充當接收來自主機102的多播分組的多播偵聽器。多播路由器108可以是配置為路由多播分組的任何適當?shù)脑O備。此外,多播路由器108可以配置為充當詢問器,比如IGMP詢問器或者MLD詢問器,并且可以發(fā)起和轉發(fā)比如IGMP或MLD詢問的詢問,其是一般詢問、具體組詢問或者其任意組合的詢問。IGMP或MLD詢問可以包括IGMP或MLD分組。值得注意的是,與詢問和多播成員資格信息相關聯(lián)的IGMP分組和MLD分組可以不同于發(fā)送到多播目的地地址的數(shù)據(jù)的多播分組。此外,IGMP可以是但不限于因特網(wǎng)協(xié)議版本4 (IPv4)的組件。MLD可以是但不限于因特網(wǎng)協(xié)議版本6 (IPv6)的組件。此外,可以利用其他通信協(xié)議或者其他版本的IGMP和MLD。具體地,多播路由器108可以發(fā)起并發(fā)送請求大致上所有主機提供大致上所有多播成員資格信息的一般詢問。換句話說,主機要響應于一般詢問而報告其成員的所有組。該一般詢問可以由多播路由器108發(fā)送到每個主機在變?yōu)槁?lián)機時加入的所有組??梢曰陂g隔發(fā)送該一般詢問。該間隔 可以是可配置的,并且可以被設置為大約I秒到高達大約65535秒。在一個實施例中,該間隔可以設置為大約125秒。多播路由器108也可以發(fā)起和發(fā)送具體組詢問。例如,如果主機指示其想要離開組,則多播路由器108可以發(fā)起并發(fā)送具體組詢問到該組的多播目的地地址,以請求該組的成員資格。組可以具有O或更多個成員。主機104、106的每個可以以多播成員資格信息來響應一般詢問和具體組詢問。例如,主機104、106的每個對于其是成員的每一組,可以用IGMP或MLD報告來應答。IGMP或者MLD報告可以包括IGMP或者MLD分組。主機104、106的每個還可以在其加入組時發(fā)送非請求的IGMP或者MLD報告。主機104、106的每個可以加入一個或多個組,并且可以離開一個或多個組。分布式開關110的探聽 器114可以是“偵聽”主機104、106和詢問器(例如多播路由器108或者分布式開關110)之間的IGMP或MLD通信的IGMP或者MLD探聽器。這樣,探聽器114可以從IGMP或MLD報告學習多播成員資格信息,比如哪些主機與哪些多播目的地地址相關聯(lián)。分布式開關110可以是配置為跨過多個開關轉發(fā)單元分布轉發(fā)功能性的任何適當?shù)姆植际介_關,所述多個開關轉發(fā)單元比如主開關轉發(fā)單元116和從開關轉發(fā)單元120,它們按“需要知道”被編程。事實上,分布式開關110實際上可以是利用“需要知道”編程算法的任何分布式開關。分布式開關110可以是層2 (L2)分布式開關。例如,分布式開關110可以是分布式L2開關,并且主開關轉發(fā)單元116和從開關轉發(fā)單元120可以是分布式虛擬以太網(wǎng)橋(dVEB)。分布式開關可以包括層2功能性、層3功能性或其任意組合。分布式開關110還可以充當詢問器,比如IGMP或者MLD詢問器,而不是多播路由器108充當,并且可以基于間隔發(fā)起和轉發(fā)作為一般詢問的詢問或者發(fā)起和轉發(fā)作為具體組詢問的詢問,比如IGMP或MLD詢問。響應于故障事件,分布式開關110可以充當詢問器,該詢問器發(fā)起和轉發(fā)作為沒有間隔的一般詢問或者具體組詢問的詢問,比如IGMP或MLD詢問。例如,分布式開關110可以響應于故障事件在下一間隔之前發(fā)起和轉發(fā)一般詢問。更具體地,主分布式開關元件112或者從分布式開關元件118可以充當詢問器,并且發(fā)起和轉發(fā)詢問。例如,與主分布式開關元件112或者從分布式開關元件118對應的固件(圖2所示)可以響應于故障事件而發(fā)起詢問,并且主分布式開關元件112的主開關轉發(fā)單元116或者從分布式開關元件118的從開關轉發(fā)單元120可以將該詢問轉發(fā)給主機。事實上,主開關轉發(fā)單元116和從開關轉發(fā)單元120可以基于“需要知道”而被編程,將多播分組轉發(fā)到主機,將IGMP或者MLD分組轉發(fā)到主機,并產(chǎn)生故障事件。然后,多播路由器108可以恢復其職責作為詢問器,并且基于間隔發(fā)起和轉發(fā)一般詢問或者發(fā)起和轉發(fā)具體組詢問。但是,能夠暫時在網(wǎng)絡上具有多個詢問。如果分布式開關Iio在故障事件之前是詢問器,而不是多播路由器108是詢問器,則分布式開關110可以基于間隔發(fā)起和轉發(fā)一般詢問或者發(fā)起和轉發(fā)具體組詢問。圖2例示用于實現(xiàn)包括至少一個處理器和配置為由該至少一個處理器執(zhí)行的程序代碼的裝置的主要硬件和固件實體。該裝置可以是類似于圖1的分布式開關110的分布式開關200的實施例。分布式開關200可以包括分別可以類似于圖1的具有探聽器114和主轉發(fā)單元116的主分布式開關元件112的、具有探聽器208和主開關轉發(fā)單元220、224的主分布式開關元件202。主分布式開關元件202還可以包括處理器210和存儲器212。處理器210、存儲器212以及主開關轉發(fā)單元220、224可以通過總線直接或者間接耦接。
分布式開關200還可以包括第一從分布式開關元件204和第η從分布式開關元件206,兩者類似于圖1的從分布式開關元件118。此外,第一從開關轉發(fā)單元236、240和第η從開關轉發(fā)單元252、256可以類似于圖1的從開關轉發(fā)單元120。第一從分布式開關元件204包括處理器228和存儲器230。處理器228、存儲器230和第一從開關轉發(fā)單元236、240可以通過總線耦接。第η從分布式開關元件206包括處理器244和存儲器246。處理器244、存儲器246和從開關轉發(fā)單元252、256可以通過總線直接或者間接耦接。存儲器212、230、246的每個分別可以包括多播固件,比如主多播固件213、第一從多播固件232和第η從多播固件248。多播固件可以是在分布式開關元件中運行的代碼層,其可以在開關轉發(fā)單元220、224、236、240、252、256中進行讀操作、寫操作或其任意組合。事實上,單個多播固件組件可以管理對于分布式開關200的開關轉發(fā)單元220、224、236、240、252、256的子集的讀操作、寫操作或其任意組合。主多播固件213、第一從多播固件232和第η從多播固件248可以是配置為分別由處理器210、228、244執(zhí)行的程序代碼。探聽器208可以與主多播固件213通信。主多播固件213和諸如第一從多播固件232以及第η從多播固件248的從多播固件可以彼此通信。主多播固件213、第一從多播固件232和第η從多播固件248也可以響應于故障事件而發(fā)起作為一般詢問、具體組詢問或其任意組合的詢問,比如IGMP或MLD詢問。存儲器212、230、246還可以包括可以指示哪些多播目的地地址及相應的多播成員資格信息被編程在相應的開關轉發(fā)單元220、224、236、240、252中的編程表214、234、250。事實上,編程表可以具有多個條目,每個條目具有多播目的地地址和多播成員資格信息(例如其指示哪些主機或端口是與多播目的地地址對應的多播組的成員)。開關轉發(fā)單元220、224、236、240、252、256的每個可以是具有用于附連到諸如圖1的主機102、104、106的主機的物理端口的硬件。事實上,基于“需要知道”用多播目的地地址的多播成員資格信息編程開關轉發(fā)單元220、224、236、240、252、256,并且分組由開關轉發(fā)單元220、224、236、240、252、256轉發(fā)到附連的圖1的主機102、104、106。在一個實施例中,分布式開關200可 以是分布式L2開關,開關轉發(fā)單元220、224、236、240、252、256可以是dVEB,并且基于“需要知道”用多播成員資格信息編程dVEB。開關轉發(fā)單元220、224、236、240、252、256的每個還可以產(chǎn)生故障事件。故障事件可以是分別由開關轉發(fā)單元220、224、236、240、252、256對于相應的多播固件213、232、248產(chǎn)生的中斷(例如硬件中斷)。當開關轉發(fā)單元220、224、236、240、252、256之一“需要知道”多播目的地地址的多播成員資格信息時,可以產(chǎn)生故障事件,但是多播目的地地址不登記在各自的多播目的地地址高速緩存222、226、238、242、254、258中。多播目的地地址可以在(與相應的多播成員資格信息一起)被存儲在多播目的地地址高速緩存222、226、238、242、254、258的至少一個中時被登記。開關轉發(fā)單元220、224、236、240、252、256的每個分別可以包括硬件的多播目的地地址高速緩存222、226、238、242、254、258,指示被編程到相應的開關轉發(fā)單元的硬件中的多播目的地地址。具體地,每個高速緩存可以具有多個條目,每個條目具有多播目的地地址、多播成員資格信息(例如指示哪些主機或端口是對應于該多播目的地地址的多播組的成員)以及命中狀態(tài)。當也是硬件的相應的開關轉發(fā)單元進行對于給定的多播目的地地址的任意分組轉發(fā)功能時,對于該條目的命中狀態(tài)可以指示轉發(fā)(例如命中狀態(tài)可以被設置為真和/或可以利用位)。相應的多播固件可以檢驗命中狀態(tài)以確定相應的開關轉發(fā)單元是否已經(jīng)進行分組轉發(fā)。因為命中狀態(tài)可以處于硬件高速緩存級,所有可以由諸如相應的開關轉發(fā)單元的硬件來設置命中位,并由相應的多播固件來檢驗并重置該命中位。從非常普遍的意義來說,“高速緩存”可以僅僅指存儲在硬件中的多播目的地地址。但是,盡管在此利用了措辭“高速緩存”,但是本領域技術人員可以認識到,高速緩存替換地可以是存儲器、內(nèi)容可尋址存儲器(CAM)或者其任意組合。因此,多播目的地地址高速緩存 222、226、238、242、254、258 可以分別是多播目的地地址 CAM222、226、238、242、254、258,并且權利要求的范圍不應受在此使用措辭“高速緩存”的限制。主分布式開關元件202還可以包括由探聽器208學習的多播目的地地址和對應的多播成員資格信息的、由主多播固件213維持的至少一個全局轉發(fā)表215。具體地,全局轉發(fā)表215由探聽的多播成員資格信息與相應的多播目的地地址一起構成。全局轉發(fā)表215可以包括多個條目,比如第一條目216和第η條目217,每個條目可以包括計時器,比如與第一條目216對應的第一計時器218和與第η條目217對應的第η計時器219。計時器可以記錄老化時間并且可以用于確定已經(jīng)“老化(age out)”的條目的目的。已經(jīng)老化的條目可以是排除的(cast-out)候選者。事實上,可以在此可互換地使用老化和排除。實體216、217的每個可以包括多播目的地地址及其相應的多播成員資格信息??梢酝ㄟ^與探聽器208的 通信建立全局轉發(fā)表,并且探聽器208可以決定多播目的地地址應該何時作為條目被添加或者作為條目從全局轉發(fā)表215移除。為此,探聽器208還可以具有與主多播固件215的全局轉發(fā)表215—致的并且與之同步的全局轉發(fā)表209。具體地,探聽器208可以是具有添加或移除條目的權限的唯一實體,并且其可以在全局轉發(fā)表209中添加或移除實體,然后向主多播固件213傳送該添加或移除,用于全局轉發(fā)表215的同步。在一些實施例中,具體條目可以具有在全局轉發(fā)表209和全局轉發(fā)表215兩者中的計時器?;蛘?,計時器可以在全局轉發(fā)表215中。在后一替換中,探聽器208可以周期地向主多播固件213進行關于計時器的詢問。值得注意,盡管具體格式和實現(xiàn)方式可能變化,但是某個多播目的地地址及其相應的多播成員資格信息可以存儲在各個位置中,例如在全局轉發(fā)表215 (以及全局轉發(fā)表209)中、在諸如編程表214、234、250的編程表中、以及在諸如多播目的地地址高速緩存222、226、238、242、254和258的多播目的地地址高速緩存中。在具體成員(或端口)正加入或離開給定的多播組時,在所有的四個位置中的多播目的地地址和對應的多播成員資格信息可以被更新。因此,這四個位置的每個可以具有針對多播目的地地址和對應的多播成員資格信息的條目。圖3示出請求由分布式開關中的多播目的地地址標識的組的多播成員資格信息的方法300的實施例。在方法300中,(a)響應于故障事件并且(b)探聽器不知道針對給定多播地址的多播成員資格信息(例如全局轉發(fā)表中沒有消息),發(fā)起詢問。繼續(xù)到302,可以探聽IGMP或者MLD報告的至少一個IGMP或者MLD分組。例如,圖1的多播路由器108可以以設置的間隔發(fā)出一般詢問或者發(fā)出具體組詢問,并且主機104、106可以用具有多播成員資格信息的IGMP或者MLD報告來響應。圖1的探聽器114或者圖2的探聽器208可以探聽IGMP或者MLD報告的IGMP或者MLD分組。此外,在硬件級,可以設置過濾器以便任意IGMP或者MLD分組可以由探聽器208探聽,即使不是以所述間隔探聽。例如,在主機來到網(wǎng)絡上并且想要加入組時可以接收的任何非請求的IGMP或者MLD報告分組可以被探聽器208探聽。在304,可以傳送來自探聽的多播成員資格信息。例如,圖1的探聽器114或者圖2的探聽器208可以決定向其全局轉發(fā)表209添加新條目,并且可以與主多播固件213通信以將探聽的多播成員資格信息和相應的多播目的地地址添加到全局轉發(fā)表209以保持各表同步。在多播成員資格信息被主多播固件213存儲在全局轉發(fā)表215中之后,基于“需要知道”,可以由主多播固件213檢索該多播成員資格信息用于編程其主開關轉發(fā)單元220、224,或者提供給第一從多播固件232用于編程其第一從開關轉發(fā)單元236、240,或者提供給第η從多播固件232用于編程其第η從開關轉發(fā)單元252、256。在306,可以接收至少一個多播分組。例如,圖1的主機102可以向由多播分組的多播目的地地址標識的組的成員發(fā)送該多播分組。主開關轉發(fā)單元220、224、第一從開關轉發(fā)單元236、240或者第η開關轉發(fā)單元252、256之一可以基于物理端口接收多播分組。為了簡化,假設第一從開關轉發(fā)單元236接收該多播分組。繼續(xù)到308,確定是否登記了該多播分組的多播目的地地址。例如,可以從圖2的第一從開關轉發(fā)單元236的多播目的地地址高速緩存238搜索該多播分組的多播目的地地址。登記可以指示第一從開關轉發(fā)單元236已經(jīng)被編程有多播成員資格信息和多播目的地地址。當?shù)怯浟硕嗖ツ康牡氐刂窌r,圖2的從開關轉發(fā)單元236在310基于多播成員資格信息轉發(fā)該多播分組310到比如作為由該多播目的地地址標識的組的成員的任意主機。在310還可以在相應的多播目的地地址高速緩存中將命中狀態(tài)設置為真,以指示向登記的多播目的地地址的轉發(fā),如將結合圖5進一步討論的??刂瓶梢岳^續(xù)到302。當未登記多播目的地地址時,在312,可以廣播該多播分組。例如,圖2的第一從開關轉發(fā)單元236可以將該多播分組廣播或者泛洪到廣播域中的大致上所有主機以確保作為由未登記的多播目的地地址標識的組的成員的任意主機接收到該多播分組。廣播域可以是可配置的,并且可以包括多達耦接到分布式開關200的所有主機。在314,可以產(chǎn)生故障事件。具體地,可以由“需要知道”但是未被編程有該多播目的地地址的開關轉發(fā)單元產(chǎn)生故障事件。對開關轉發(fā)單元的相應的多播固件產(chǎn)生故障事件。例如,圖2的第一從開關轉發(fā)單元236可以對第一從多播固件232產(chǎn)生故障事件,指示其“需要知道”該多播分組的多播目的地地址的多播成員資格信息。在316,可以請求多播成員資格信息。產(chǎn)生的故障事件不僅通知對于未登記的多播目的地地址的“需要知道”狀態(tài),而且可以響應于該故障事件而請求該未登記的多播目的地地址的多播成員資格信息。當在圖2的第一從開關轉發(fā)單元236、240或者在第η從開關轉發(fā)單元252、256的任意一個中產(chǎn)生故障事件時,相應的第一從多播固件232或者第η從多播固件248可以與主多播固件213通信以請求多播成員資格信息。當在主開關轉發(fā)單元220,224之一中產(chǎn)生故障事件時,主多播固件213不需要從另一實體請求。例如,響應于在第一從開關轉發(fā)單元236中產(chǎn)生的故障事件,圖2的第一從多播固件232可以代表第一從開關轉發(fā)單元236從主分布式開關元件202的主多播固件213請求多播成員資格信息。繼續(xù)到318,可以確定多播成員資格信息是否存儲在全局轉發(fā)表中,具體地,盡管開關轉發(fā)單元可能未被編 程,多播目的地地址的多播成員資格信息可以在全局轉發(fā)表中。這樣,可以在全局轉發(fā)表中搜索未登記的多播目的地地址的多播成員資格信息,即使其不是最新的多播成員資格信息。例如,圖2的主分布式開關元件202的主多播固件213可以在全局轉發(fā)表215的條目216、217中搜索多播成員資格信息。
當在全局轉發(fā)表215中找到多播成員資格信息,并且在第一從開關轉發(fā)單兀236、240或者第η從開關轉發(fā)單元252、256的任意一個中產(chǎn)生故障事件時,則相應的第一從多播固件232或者第η從多播固件248可以接收多播成員資格信息。相應的第一從多播固件232或者第η從多播固件248可以用多播成員資格信息和多播目的地地址來更新相應的第一從編程表234或者第η從編程表250。多播目的地地址和多播成員資格信息可以被編程在產(chǎn)生故障事件的第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的開關轉發(fā)單元中。當在全局轉發(fā)表215中找到多播成員資格信息,并且在主開關轉發(fā)單元220、224中產(chǎn)生故障事件時,相應的主多播固件213可以接收多播成員資格信息并用多播成員資格信息和多播目的地地址來更新主編程表214。多播成員資格信息可以被編程在產(chǎn)生故障事件的主開關轉發(fā)單元220、224的開關轉發(fā)單元中。例如,響應于在第一從開關轉發(fā)單兀236中產(chǎn)生的故障事件,相應的第一從多播固件232可以從主多播固件213接收來自全局轉發(fā)表215的多播成員資格信息。相應的第一從多播固件232可以更新相應的第一從編程表234。在320,多播成員資格信息可以被編程在第一從開關轉發(fā)單元236中,并且控制可以轉到302。當未在全局轉發(fā)表215中找到多播成員資格信息時,控制可以繼續(xù)到322以發(fā)起詢問。當未在全局轉發(fā)表215中找到多播成員資格信息時,主多播固件213可以發(fā)起作為一般詢問或者具體組詢問的詢問,比如IGMP或者MLD詢問。主開關轉發(fā)單元220、224的至少一個可以將該詢問轉發(fā)到主機。或者,諸如第一從多播固件232和第η從多播固件248的從多播固件可以發(fā)起詢問,并且相應的第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的至少一個可以將該詢問轉發(fā)到主機。在324,可以接收多播成員資格信息。例如,主機可以用傳送多播成員資格信息的IGMP或MLD分組的報告來響應,并且圖1的探聽器114或者圖2的探聽器208可以探聽,如之前結合302所討論的。在328,可以存儲接收的多播成員資格信息。例如,圖1的探聽器114或者圖2的探聽器208可以決定向其全局轉發(fā)表209添加新條目,并且可以與主多播固件213通信,以將探聽的多播成員資格信息和相應的多播目的地地址添加到全局轉發(fā)表215以保持各表同步,如結合304所討論的。值得注意,針對在分布式開關中管理全局轉發(fā)表的方法的實施例的更詳細的討論,參考圖5。在330,編程開關轉發(fā)單元。當在第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的任意一個中產(chǎn)生故障事件時,則相應的第一從多播固件232或者第η從多播固件248可以接收多播成員資格信息。相應的第一從多播固件232或者第η從多播固件248可以用多播成員資格信息和多播目的地地址來更新相應的第一從編程表234或者第η從編程表250。在330,多播目的地地址和多播成員資格信息可以被編程在產(chǎn)生故障事件的第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的開關轉發(fā)單元中以及編程在相應的多播目的地地址高速緩存238、242、254、258中。
當在主開關轉發(fā)單元220、224中產(chǎn)生故障事件時,相應的主多播固件213可以接收多播成員資格信息并且用該多播成員資格信息和多播目的地地址來更新主編程表214。在330,該多播成員資格信息和多播目的地地址可以被編程在產(chǎn)生故障事件的主開關轉發(fā)單元220、224的開關轉發(fā)單元中,以及編程在相應的多播目的地地址高速緩存222、226中。例如,響應于在第一從開關轉發(fā)單元236中產(chǎn)生的故障事件,相應的第一從多播固件232可以從主多播固件213接收來自全局轉發(fā)表215的多播成員資格信息。相應的第一從多播固件232可以更新相應的第一從編程表234。在330,多播成員資格信息可以被編程在第一從開關轉發(fā)單元236中,并且可以用該多播目的地地址和相應的多播成員資格信息來更新多播目的地地址高速緩存238。控制可以繼續(xù)到302。本領域普通技術人員可以理解,下一次接收到多播分組時,在308,可以登記相應的多播目的地地址,并且在310可以將該多播分組轉發(fā)到意欲的主機而不在312廣播。此夕卜,開關轉發(fā)單元可以基于編程的多播目的地地址和多播成員資格信息直接轉發(fā)該多播分組而不用與多播固件或探聽器通信。事實上,在多播成員資格信息被主多播固件213存儲在全局轉發(fā)表215中之后,基于“需要知道”,該多播成員資格信息可以由主多播固件213取得,用于編程其主開關轉發(fā)單元220、224,或者提供給第一從多播固件232用于編程其第一從開關轉發(fā)單元236、240,或者提供給第η從多播固件232用于編程其第η從開關轉發(fā)單元252、256。圖4示出在分布式開關中請求由多播目的地地址標識的組的多播成員資格信息的方法400的實施例。在方法400中,響應于故障事件發(fā)起詢問。例如,大致上可以在每次產(chǎn)生故障事件時發(fā)起詢問。繼續(xù)到402,可以探聽IGMP或者MLD報告的至少一個IGMP或者MLD分組。例如,圖1的多播路由器108可以以設置的間隔發(fā)起詢問或者發(fā)起具體組詢問,并且主機104、106可以用具有多播成員資格信息的IGMP或者MLD報告來響應。圖1的探聽器114或者圖2的探聽器208可以探聽該IGMP或者MLD報告的IGMP或MLD分組。此夕卜,在硬件級,可以設置過濾器以便可以由探聽器208探聽任意的IGMP或者MLD分組,即使不是按間隔偵聽。例如,可以由探聽器208探聽在主機來到網(wǎng)絡上并且想要加入組時可以接收的任何非請求 的IGMP或者MLD報告分組。在404,可以傳送來自探聽的多播成員資格信息。例如,圖1的探聽器114或者圖2的探聽器208可以決定向其全局轉發(fā)表209添加新條目并且可以與主多播固件213通信以將探聽的多播成員資格信息和相應的多播目的地地址添加到全局轉發(fā)表215,用于保持各表同步。在多播成員資格信息被主多播固件213存儲在全局轉發(fā)表215中之后,基于“需要知道”,該多播成員資格信息可以由主多播固件213取回用于編程其主開關轉發(fā)單元220、224,或者提供給第一從多播固件232用于編程其第一從開關轉發(fā)單元236、240,或者提供給第η從多播固件232用于編程其第η從開關轉發(fā)單元252、256。在406,可以接收至少一個多播分組。例如,圖1的主機102可以向由多播分組的目的地地址標識的組的成員發(fā)送該多播分組。主開關轉發(fā)單元220、224、第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256之一可以基于物理端口接收該多播分組。為了簡化,假設第一從開關轉發(fā)單元236接收該多播分組。繼續(xù)到408,確定是否登記了的該多播分組的多播目的地地址。例如,可以在圖2的第一從開關轉發(fā)單元236的多播目的地地址高速緩存238中搜索該多播分組的多播目的地地址。登記可以指示第一從開關轉發(fā)單元236已經(jīng)被編程有多播成員資格信息和多播目的地地址。當?shù)怯浟硕嗖ツ康牡氐刂窌r,在410,圖2的從開關轉發(fā)單元236基于多播成員資格信息將該多播分組轉發(fā)到比如作為由多播目的地地址標識的組的成員的任意主機。在410,還可以在相應的多播目的地地址高速緩存410中將命中狀態(tài)設置為真,以指示向登記的多播目的地地址的轉發(fā),如將結合圖5進一步討論的??刂瓶梢岳^續(xù)到402。當未登記多播目的地地址時,在412,可以廣播該多播分組。例如,圖2的第一從開關轉發(fā)單元236可以廣播或泛洪該多播分組到廣播域中的大致上所有主機,以確保作為由未登記的多播目的地地址標識的組的成員的任意主機都接收到該多播分組。廣播域可以是可配置的,并且可以包括多達耦接到分布式開關200的所有主機。在414,可以產(chǎn)生故障事件。具體地,可以由“需要知道”多播目的地地址但是未被編程有多播目的地地址的開關轉發(fā)單元產(chǎn)生故障事件。對該開關轉發(fā)單元的相應的多播固件產(chǎn)生故障事件。例如,圖2的第一從開關轉發(fā)單元236可以對第一從多播固件232產(chǎn)生故障事件,指示其“需要知道”多播分組的多播目的地地址的多播成員資格信息。在416,可以請求多播成員資格信息。產(chǎn)生的故障事件不僅通知對于未登記的多播目的地地址的“需要知道”狀態(tài),而且可以響應于故障事件請求未登記多播目的地地址的多播成員資格信息。當在圖2的第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的任意一個中產(chǎn)生故障 事件時,相應的第一從多播固件232或者第η從多播固件248可以與主多播固件213通信以請求該多播成員資格信息。當在主開關轉發(fā)單元220、224之一中產(chǎn)生故障事件時,主多播固件213不需要從另一實體請求。例如,響應于在第一從開關轉發(fā)單元236中產(chǎn)生的故障事件,圖2的第一從多播固件232可以代表第一從開關轉發(fā)單元236從主分布式開關元件202的主多播固件213請求多播成員資格信息。在322,可以發(fā)起詢問。主多播固件213可以發(fā)起作為一般詢問或者具體組詢問的詢問,比如IGMP或者MLD詢問。主開關轉發(fā)單元220、224的至少一個可以將該詢問轉發(fā)給主機?;蛘撸T如第一從多播固件232和第η從多播固件248的從多播固件可以發(fā)起該詢問,并且相應的第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的至少一個可以將該詢問轉發(fā)給主機。在424,可以接收多播成員資格信息。例如,主機可以用傳送該多播成員資格信息的IGMP或MLD分組的報告來響應,并且圖1的探聽器114或者圖2的探聽器208可以探聽,如之前結合402所討論的。在428,可以存儲接收的多播成員資格信息。例如,圖1的探聽器114或者圖2的探聽器208可以決定向其全局轉發(fā)表209添加新條目,并且可以與主多播固件213通信,以將探聽的多播成員資格信息和相應的多播目的地地址添加到全局轉發(fā)表215以保持各表同步,如結合404所討論的。值得注意,針對在分布式開關中管理全局轉發(fā)表的方法的實施例的更詳細的討論,參考圖5。在430,編程開關轉發(fā)單元。當在第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的任意一個中產(chǎn)生故障事件時,則相應的第一從多播固件232或者第η從多播固件248可以接收該多播成員資格信息。相應的第一從多播固件232或者第η從多播固件248可以用該多播成員資格信息和多播目的地地址來更新相應的第一從編程表234或者第η從編程表250。在430,該多播目的地地址和多播成員資格信息可以被編程在產(chǎn)生故障事件的第一從開關轉發(fā)單元236、240或者第η從開關轉發(fā)單元252、256的開關轉發(fā)單元中,以及編程在相應的多播目的地地址高速緩存238、242、24、258中。當在主開關轉發(fā)單元220、224中產(chǎn)生故障事件時,相應的主多播固件213可以接收多播成員資格信息并且用該多播成員資格信息和多播目的地地址來更新主編程表214。在430,多播成員資格信息和多播成員資格信息可以被編程在產(chǎn)生該故障事件的主開關轉發(fā)單元220、224中的開關轉發(fā)單元中以及編程在相應的多播目的地地址高速緩存222、226中。例如,響應于在第一從 開關轉發(fā)單兀236中產(chǎn)生的故障事件,相應的第一從多播固件232可以從主多播固件213接收來自全局轉發(fā)表215的多播成員資格信息。相應的第一從多播固件232可以更新相應的第一從編程表234。在430,多播成員資格信息可以被編程在第一從開關轉發(fā)單元236中,并且可以用該多播目的地地址和相應的多播成員資格信息來更新多播目的地地址高速緩存238??刂瓶梢岳^續(xù)到402。本領域技術人員可以理解,下一次接收到多播分組時,在408,可以登記相應的多播目的地地址,并且在410可以將該多播分組轉發(fā)到意欲的主機而不在412廣播。此外,開關轉發(fā)單元可以基于編程的多播目的地地址和多播成員資格信息直接轉發(fā)該多播分組而不與多播固件或探聽器通信。事實上,在多播成員資格信息被主多播固件213存儲在全局轉發(fā)表215中之后,基于“需要知道”,該多播成員資格信息可以由主多播固件213取回用于編程其主開關轉發(fā)單元220、224,或者提供給第一從多播固件232用于編程其第一從開關轉發(fā)單元236、240,或者提供給第η從多播固件232用于編程其第η從開關轉發(fā)單元252、256。本領域技術人員可以理解,經(jīng)由圖3的方法300和圖4的方法400,當遇到未登記的多播目的地地址并且產(chǎn)生故障事件時,分布式開關或者其主分布式開關元件或者從分布式開關元件可以臨時充當詢問器。這樣,可以加速對多播目的地地址的最新多播成員資格信息的學習而不是等待配置的詢問間隔的到期,作為探聽器“學習”最新的多播成員資格信息的下一次機會,該配置的詢問間隔可以被設置為從大約I秒到大約65536秒。此外,加速多播成員資格信息的學習可以減小由泛洪引起的帶寬浪費,可以改進在將多播分組轉發(fā)到其意欲的目的地時的準確性,并且可以增加學習并利用多播目的地地址的更新的或者最新的多播成員資格信息用于轉發(fā)的可能性。圖5示出在分布式開關中管理全局轉發(fā)表的方法的實施例。如以上結合圖3和圖4所討論的,響應于故障事件,圖2的主分布式開關元件202、第一從分布式開關元件204或者第η從分布式開關元件206可以用作詢問器。開關元件的相應的多播固件發(fā)起一般詢問或者具體組詢問,并且相應的開關轉發(fā)單元將該詢問轉發(fā)到適當?shù)闹鳈C。響應于該詢問,主機可以發(fā)送探聽器探聽以學習多播成員資格信息的報告。探聽器208可以是具有添加或移除條目的權限的唯一實體,并且其可以添加或移除全局轉發(fā)表209中的條目,然后向主多播固件213通信該添加或移除,用于全局轉發(fā)表215的同步。在一些實施例中,具體條目可以具有在全局轉發(fā)表209和全局轉發(fā)表215兩者中的計時器。或者,該計時器可以在全局轉發(fā)表215中。在后一替換情況下下,探聽器208可以關于計時器周期地向主多播固件213進行詢問。為了易于說明,假設在圖5中全局轉發(fā)表215正被管理并且計時器僅在全局轉發(fā)表215中。但是,本領域技術人員將理解,全局轉發(fā)表209可以用一個計時器管理,全局轉發(fā)表215可以用兩個表中的計時器管理,全局轉發(fā)表215可以用一個計時器管理,等等。例如,可以由分布式開關的探聽器管理全局轉發(fā)表,可以由分布式開關的主分布式開關元件的主多播固件管理全局轉發(fā)表,或者是它們的任何組合。事實上,可以存在其他變化,例如,在一些實施例中可以省略502。此外,盡管結合在響應于通過故障事件發(fā)起的詢問接收的報告中的探聽的多播成員資格信息描述圖5的方法500的實施例,但是實際上可以在從主機接收到多播成員資格信息時的任何其他時間進行方法500 (例如由主機發(fā)送的響應于基于間隔的一般詢問的報告或者非請求的報告)。繼續(xù)502,發(fā)出向表添加條目的請求。例如,圖2的探聽器208可能已經(jīng)探聽了IGMP或者MLD通信,比如探聽圖1的多播路由器108和其附連的主機中的一個或多個之間的報告,或者探聽響應于對故障事件進行響應而發(fā)起并轉發(fā)的詢問的報告。不過,探聽器208可以確定存在新的多播組成員資格(例如先前不知道的新的多播目的地地址),并且將該條目添加到全局轉發(fā)表209。探聽器208可以將該新的多播成員資格傳送到主多播固件213。在504,該條目被添加到該表。例如,圖2的多播固件213可以將第一條目216添加到全局轉發(fā)表215用于由探聽器208傳送的新的多播組成員資格。第一條目216可以包括新的多播目的地地址并且可以包括作為由該多播目的地地址標識的組的成員的至少一個主機。在506,啟動針對該條目的計時器。例如,圖2的主多播固件213可以啟動針對該第一條目216的計時器。值得注意,表中的每個條目可以具有與其相關聯(lián)的唯一的計時器。在一些實施例中,在該條目的多播目的地地址和多播成員資格信息被編程在產(chǎn)生故障事件的開關轉發(fā)單元中之后,可以啟動第一計時器218。但是,在一些實施例中,可以在第一條目216的多播目的地地址和多播成員資格信息被編程在產(chǎn)生故障事件的開關轉發(fā)單元中之前啟動第一計時器218。盡管如此,開關轉發(fā)單元220、224、236、240、252、256的任意一個可以在其“需要知道”時被編程有來自全局轉發(fā)表215的第一條目216的多播目的地地址和相應的多播成員資格信息。繼續(xù)到508,確定計時器是否已經(jīng)到期。例如,圖2的主多播固件213可以確定第一計時器218是否已經(jīng)到期。只要第一計時器218未到期,主多播固件213就可以繼續(xù)確定第一計時器218是否已經(jīng)到期。當?shù)谝挥嫊r器218到期時,在510,確定第一條目216是否被編程在主開關轉發(fā)單元的任意一個中。例如,圖2的主多播固件213可以搜索主編程表214以確定第一條目216是否已被編程在主開關轉發(fā)單元220、224的任意一個中。具體地,主多播固件213可以通過在主編程表214中搜索在504添加到全局轉發(fā)表的第一條目216的多播目的地地址和相應的多播成員資格信息來搜索主編程表214,以確定第一條目216是否已被編程。在512,當該條目未被編程在主開關轉發(fā)單元的任意一個中時,在514,確定該條目是否被編程在從開關轉發(fā)單元的任意一個中。例如,圖2的主多播固件213可以與大致上所有的從分布式開關元件的從多播固件通信并請求在相應的從編程表中搜索第一條目216。第一從多播固件232和 第η從多播固件248可以通過在編程表234、250中搜索在504被添加到全局轉發(fā)表的第一條目216的多播目的地地址和相應的多播成員資格信息,而分別搜索第一從編程表234和第η從編程表250的條目,以確定第一條目216是否已經(jīng)被編程。具體地,主多播固件213可以與第一從多播固件232通信并且請求來自第一從編程表234的該條目的編程狀態(tài)。類似地,主多播固件213可以與第η從多播固件248通信并且請求來自第η從編程表250的第一條目216的編程狀態(tài)。第一從多播固件234和第η從多播固件248可以分別搜索第一編程表234和第η編程表250以確定第一條目216是否已被編程在第一從開關轉發(fā)單元236、240和第η開關轉發(fā)單元252、256的任意一個中。在516,接收該條目的編程狀態(tài)。例如,圖2的第一從多播固件234和第η從多播固件248兩者可以向主多播固件213通信該第一條目216的編程狀態(tài),并且該編程狀態(tài)被主多播固件213接收。在518,當該條目的編程狀態(tài)指示該條目未被編程在任何從開關轉發(fā)單元中時,在520,該條目可以被指示為是排除的候選者,因為其已經(jīng)老化。事實上,該條目未被編程在任何主開關轉發(fā)單元或者任何從開關轉發(fā)單元中,這樣,圖2的主多播固件213可以與探聽器208通信并且指示第一條目216是排除的候選者。探聽器208可以決定是否應該從全局轉發(fā)表209移除第一條目216,并且可以向主多播固件213通信該第一條目216的移除用于全局轉發(fā)表215的同步。在522,可以重新啟動該條目的計時器。例如,主多播固件213可以重新啟動第一計時器218,并且控制可以繼續(xù)到508,如上所述。返回到512,當該條目被編程在主開關轉發(fā)單元的任意一個中時,在524,可以檢查命中狀態(tài)。因為命中狀態(tài)可能處于硬件高速緩存級,所以當多播分組被轉發(fā)到該條目時,該命中狀態(tài)可以通過硬件設置,并且通過相應的多播固件來檢查(例如,如果命中狀態(tài)=真或者如果設置了命中位,則可以發(fā)生命中)和重置。當命中發(fā)生時,這指示多播分組的轉發(fā),在526,可以重置命中狀態(tài),并且在522可以重新啟動該條目的計時器。例如,假設主編程表214指示主開關轉發(fā)單元220被編程有第一條目216,則主多播固件213可以檢查多播目的地地址高速緩存222中的第一條目216的命中狀態(tài)。具體地,主多播固件213可以在多播目的地地址高速緩存222的條目中搜索在504添加到全局轉發(fā)表的第一條目216的多播目的地地址和相應的多播成員資格信息,并檢查命中狀態(tài)。主多播固件213可以重置多播目的地地址高速緩存222中的第一條目216的命中狀態(tài)(例如將該命中狀態(tài)重置到假或者清除命中位)。此外,主多播固件213可以重新啟動第一計時器218,并且控制可以繼續(xù)到502,如上所述。
返回到512,即使因為主開關轉發(fā)單元220、224的至少一個已經(jīng)使用第一條目216轉發(fā)了多播分組,主多播固件213發(fā)現(xiàn)命中發(fā)生,無論何時第一計時器218到期,對于從開關轉發(fā)單元的任意一個發(fā)生的命中可能需要被重置(將命中狀態(tài)重置為假或者清除命中位)。這樣,控制也可以繼續(xù)到514、516、518和520,如上所述。此外,當由于老化而指示排除的候選者并且第一條目216被編程在至少一個開關轉發(fā)單元中時,探聽器208可以請求主多播固件213從該條目被編程到其中的大致上所有開關轉發(fā)單元中無效或者移除該條目。如果主開關轉發(fā)單元220、224的任意一個按照主編程表214被編程,則主多播固件213可以從主開關轉發(fā)單元220、224移除該條目。主多播固件213還可以與第一從多播固件232和第η從多播固件248通信,并且如果第一從開關轉發(fā)單元236、240和第η從開關轉發(fā)單兀252、256的任意一個分別按照第一從編程表234和第η從編程表250被編程,則使第一從多播固件232和第η從多播固件248從第一從開關轉發(fā)單元236、240和第η從開關轉發(fā)單元252、256移除該條目。返回到518,當該條目被編程在從開關轉發(fā)單元的任意一個中時,在528,可以檢查命中狀態(tài)。當命中發(fā)生時,這指示多播分組的轉發(fā),在526可以重置命中狀態(tài),并且在522可以重新啟動該條目的計時器。例如,假設第一從編程表234指示第一從開關轉發(fā)單元236被編程有第一條目216,第一從多播固件232可以檢查多播目的地地址高速緩存238中的第一條目216的命中狀態(tài)。具體地,第一從多播固件232可以在多播目的地地址高速緩存238的條目中搜索在504添加到全局轉發(fā)表的第一條目216的多播目的地地址和相應的多播成員資格信息,并檢查命中狀態(tài)。第一從多播固件232可以重置多播目的地地址高速緩存238中的命中狀態(tài)(例如將命中狀態(tài)重置為假或者清除命中位)。此外,第一從多播固件232可以重新啟動第一計時器218,并且控制可以繼續(xù)到502,如上所述??偟膩碚f,如果條目未被編程在任何主開關轉發(fā)單元中,或者如果該條目被編程但是具有等于假的命中狀態(tài),則主多播固件可以與探聽器通信以指示已經(jīng)老化的排除的候選者。如果該條目被編程在任何主開關轉發(fā)單元中并且具有等于真的命中狀態(tài),則主多播固件可以重置相應的開關轉發(fā)單元中的命中狀態(tài)并且可以重新啟動該條目的計時器。此外,如果該條目未被編程在任何主開關轉發(fā)單元中,并且至少一個從多播固件確定該條目被編程在其管理的從開關轉發(fā)單元中,則從多播固件可以重置命中狀態(tài)。此外,從開關元件可以將該命中狀態(tài)返回給主多播固件并指示該條目被編程并且分組轉發(fā)活動已經(jīng)發(fā)生(例如不是排除的候選者)。 本領域技術人員可以理解,經(jīng)由方法500,即使在全局轉發(fā)表和編程在硬件中的分組轉發(fā)指令之間不再有一對一的對應性,也可以管理全局轉發(fā)表。利用傳統(tǒng)的集中化的開關,通常存在一對一的對應性,因為在探聽器學習新的多播組成員資格時,其立即將此信息編程到其硬件中(例如其唯一的開關轉發(fā)單元中)。此外,探聽器還啟動針對該條目的“排除”計時器。如果排除計時器到期,則探聽器通常請求編程在硬件中的相應條目的命中狀態(tài)。該命中狀態(tài)指示自從上次計時器到期(并且請求命中狀態(tài))起,對于該多播目的地地址是否發(fā)生任何分組轉發(fā)活動。如果命中狀態(tài)是真,則這向探聽器指示此條目不是排除的候選者,并且探聽器重新啟動該條目的排除計時器,并且重置相應硬件條目的命中狀態(tài)。在命中狀態(tài)為假的情況下,一般認為該條目是排除的候選者,并且探聽器將其從其多播表中移除并且使硬件中的該條目無效。這樣,另外的條目可能變得可用于要學習的新的多播組成員資格。但是,分布式開關中的對應性可以是一對多的對應性,因為某個多播目的地地址和相應的多播成員資格信息可以被編程在多個開關轉發(fā)單元中。此外,如結合圖5所討論的,在此所述的是多播固件利用跨過多個開關轉發(fā)單元的命中狀態(tài)以及與探聽器一起工作來確定作為排除的候選者的多播條目的方法。具體地,在全局轉發(fā)表中利用計時器,并且多播固件(即主多播固件和從多播固件)可以找到被設置為“真”或“假”的條目的命中狀態(tài)。如果例如在計時器到期時任意的開關轉發(fā)單元具有設置為“真”的命中狀態(tài),則該條目可能被認為不是排除的候選者。在此情況下,對于該條目的命中狀態(tài)可以設置為假。下一次該計時器到期時,可以再次輪詢命中狀態(tài)。如果跨過多個開關轉發(fā)單元命中狀態(tài)仍然是假,則該條目可以被認為是排除的候選者,因為其已經(jīng)老化,并且主多播固件將此傳送到探聽器。探聽器具有從其全局轉發(fā)表中移除條目并且隨后請求主多播固件從其全局轉發(fā)表移除該條目的權限。此外,可以請求多播固件(主多播固件和從多播固件兩者)無效或移除跨過多個開關轉發(fā)單元被編程在任意地方的相應條目。在此所述的具體實施例可以采取全硬件實施例、全固件環(huán)境、全軟件實施例或者包含硬件、固件和軟件要素的任意組合的實施例。在具體實施例中,所公開的方法以嵌入在處理器可記錄和可讀的存儲介質(zhì)中并且由處理器執(zhí)行的軟件而實現(xiàn),這包括但不限于固件、駐留軟件、微代碼等。此外,本公開的實施例( 比如一個或多個實施例)可以采取可從提供由計算機或者任意指令執(zhí)行系統(tǒng)使用或者與計算機或者任意指令執(zhí)行系統(tǒng)結合使用的程序代碼的計算機可用或者計算機可讀的存儲介質(zhì)訪問的計算機程序產(chǎn)品的形式。為了此說明的目的,計算機可用或者可記錄的計算機可讀的非瞬時存儲介質(zhì)可以是可以有形地具體化計算機程序并且可以包含、存儲、通信、傳播或者傳輸由指令執(zhí)行系統(tǒng)、裝置或設備使用或與指令執(zhí)行系統(tǒng)、裝置或設備結合使用的程序的任意裝置。在各個實施例中,介質(zhì)可以包括電子、磁、光、電磁、紅外或者半導體系統(tǒng)(或裝置或設備)或者傳播介質(zhì)??捎涗浀挠嬎銠C可讀存儲介質(zhì)的例子包括半導體或者固態(tài)存儲器、磁帶、可移除計算機磁盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、剛性磁盤和光盤。光盤的當前例子包括緊湊盤-只讀存儲器(CD-ROM)、緊湊盤-讀/寫(CD-R/W)和數(shù)字通用盤(DVD)0適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括通過系統(tǒng)總線直接或者間接耦接到存儲器元件的至少一個處理器。存儲器元件可以包括在程序代碼的實際執(zhí)行期間采用的本地存儲器、大容量存儲器和提供至少一些程序代碼的臨時存儲以便減少在執(zhí)行期間必須從大容量存儲器取回代碼的次數(shù)的高速緩存。輸入/輸出或者I/O設備(包括但不限于鍵盤、顯示器、指示設備等)可以直接耦接或者通過居間的I/O控制器間接耦接到數(shù)據(jù)處理系統(tǒng)。網(wǎng)絡適配器還可以耦接到數(shù)據(jù)處理系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠變得通過居間的私有或者公共網(wǎng)絡耦接到其他數(shù)據(jù)處理系統(tǒng)或者遠程打印機或者存儲設備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡僅僅是一些當前可用類型的網(wǎng)絡適配器。提供所公開的實施例的以上描述以使本領域技術人員能夠做出或使用公開的實施例。對這些實施例的各種修改對本領域技術人員將是非常顯而易見的,并且在此定義的一般原理可以應用于其他實施例而不脫離本公開的范圍。因此,本公開不意欲限于在此示出的實施例,而是按照與以下權利要求定義的原理和特征一致的可能的最寬范圍。
權利要求
1.一種在分布式開關中管理全局轉發(fā)表的方法,其中該分布式開關包括多個開關轉發(fā)單元,該方法包括: 啟動針對全局轉發(fā)表中的條目的計時器,其中該條目包括多播目的地地址和相應的多播成員資格信息; 響應于該條目的計時器到期,檢查至少一個命中狀態(tài),以確定所述多個開關轉發(fā)單元中的至少一個開關轉發(fā)單元是否已經(jīng)對于該條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù);以及 基于所述命中狀態(tài)確定該條目是否是排除的候選者。
2.如權利要求1所述的方法,其中檢查命中狀態(tài)不指示對于所述條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù),該方法還包括指示所述條目是排除的候選者。
3.如權利要求1所述的方法,其中檢查命中狀態(tài)指示對于所述條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù),該方法還包括重置所述命中狀態(tài)。
4.如權利要求1所 述的方法,還包括在檢查所述命中狀態(tài)之前確定開關轉發(fā)單元是否被編程有所述條目的多播目的地地址和相應的多播成員資格信息。
5.如權利要求1所述的方法,其中確定所述條目是排除的候選者,該方法還包括向所述分布式開關的探聽器指示所述條目是排除的候選者。
6.如權利要求1所述的方法,其中確定所述條目是排除的候選者,該方法還包括從所述全局轉發(fā)表移除所述條目。
7.如權利要求1所述的方法,其中確定所述條目是排除的候選者,該方法還包括使被編程有所述條目的多播目的地地址和相應的多播成員資格信息的至少一個開關轉發(fā)單元中的所述條目的多播目的地地址和相應的多播成員資格信息無效。
8.如權利要求1所述的方法,其中所述全局轉發(fā)表由所述分布式開關的探聽器來管理。
9.如權利要求1所述的方法,其中所述全局轉發(fā)表由所述分布式開關的主分布式開關元件的主多播固件來管理。
10.如權利要求1所述的方法,還包括: 重新啟動所述條目的計時器; 響應于所述條目的重新啟動的計時器到期,檢查至少一個命中狀態(tài),以確定所述多個開關轉發(fā)單元中的開關轉發(fā)單元是否已經(jīng)對于所述條目的多播目的地地址的相應的多播成員資格信息轉發(fā)了多播數(shù)據(jù);以及 基于所述命中狀態(tài)確定所述條目是否是排除的候選者。
11.一種裝置,包括: 至少一個處理器;以及 程序代碼,配置為由所述處理器執(zhí)行,以通過以下操作在分布式開關中管理全局轉發(fā)表,其中該分布式開關包括多個開關轉發(fā)單元: 啟動針對全局轉發(fā)表中的條目的計時器,其中該條目包括多播目的地地址和相應的多播成員資格信息; 響應于該條目的計時器到期,檢查至少一個命中狀態(tài),以確定所述多個開關轉發(fā)單元中的至少一個開關轉發(fā)單元是否已經(jīng)對于該條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù);以及 基于所述命中狀態(tài)確定該條目是否是排除的候選者。
12.如權利要求11所述的裝置,其中所述程序代碼配置為檢查所述命中狀態(tài)不指示對于所述條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù),以及其中所述程序代碼還配置為指示所述條目是排除的候選者。
13.如權利要求11所述的裝置,其中所述程序代碼配置為檢查所述命中狀態(tài)指示對于所述條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù),以及其中所述程序代碼還配置為重置所述命中狀態(tài)。
14.如權利要求11所述的裝置,其中所述程序代碼配置為在檢查所述命中狀態(tài)之前確定開關轉發(fā)單元是否被編程有所述條目的多播目的地地址和相應的多播成員資格信息。
15.如權利要求11所述的裝置,其中所述程序代碼配置為確定所述條目是排除的候選者,以及其中所述程序代碼還配置為向所述分布式開關的探聽器指示所述條目是排除的候選者。
16.如權利要求11所述的裝置,其中所述程序代碼配置為確定所述條目是排除的候選者,以及其中所述程序代碼還配置為從所述全局轉發(fā)表移除所述條目。
17.如權利要求11所述的裝置,其中所述程序代碼配置為確定所述條目是排除的候選者,以及其中所述程序代碼還配置為使被編程有所述條目的多播目的地地址和相應的多播成員資格信息的至少一個開關轉發(fā)單元中的所述條目的多播目的地地址和相應的多播成員資格信息無效。
18.如權利要求11所述的裝置,其中所述程序代碼配置為: 重新啟動所述條目的計時器; 響應于所述條目的重新啟動的計時器到期,檢查至少一個命中狀態(tài),以確定所述多個開關轉發(fā)單元中的開關轉發(fā)單元是否已經(jīng)對于所述條目的多播目的地地址的相應的多播成員資格信息轉發(fā)了多播數(shù)據(jù);以及 基于所述命中狀態(tài)確定所述條目是否是排除的候選者。
19.如權利要求11所述的裝置,其中所述全局轉發(fā)表由所述分布式開關的探聽器、所述分布式開關的主分布式開關元件的主多播固件或者其任意組合來管理。
20.一種在分布式開關中管理全局轉發(fā)表的方法,其中該分布式開關包括多個開關轉發(fā)單元,該方法包括: 啟動針對全局轉發(fā)表中的條目的計時器,其中所述條目包括多播目的地地址和相應的多播成員資格信息; 響應于所述條目的計時器到期,確定任意主開關轉發(fā)單元是否被編程有所述條目的多播目的地地址和相應的多播成員資格信息; 檢查被編程的主開關轉發(fā)單元的命中狀態(tài),以確定任意的被編程的主開關轉發(fā)單元是否已經(jīng)對于所述條目的多播目的地地址的相應的多播成員資格信息轉發(fā)了多播數(shù)據(jù); 確定任意從開關轉發(fā)單元是否被編程有所述條目的多播目的地地址和相應的多播成員資格信息; 檢查被編程的從開關轉發(fā)單元的命中狀態(tài),以確定任意的被編程的從開關轉發(fā)單元是否已經(jīng)對于所述條目的多播目的地地址的相應的多播成員資格信息轉發(fā)了多播數(shù)據(jù);以及 基于命中狀態(tài)確定 所述條目是否是排除的候選者。
全文摘要
本發(fā)明提供了用于在分布式開關中管理全局轉發(fā)表的裝置和方法。具體方法可以包括在分布式開關中管理全局轉發(fā)表。該分布式開關可以包括多個開關轉發(fā)單元。該方法可以啟動針對全局轉發(fā)表中的條目的計時器,該條目可以包括多播目的地地址和相應的多播成員資格信息。該方法還可以響應于該條目的計時器到期,檢查至少一個命中狀態(tài)以確定所述多個開關轉發(fā)單元中的至少一個開關轉發(fā)單元是否已經(jīng)對于該條目的多播目的地地址的相應多播成員資格信息轉發(fā)了多播數(shù)據(jù)。該方法還可以基于所述命中狀態(tài)確定該條目是否是排除的候選者。
文檔編號H04L12/18GK103220160SQ201310019590
公開日2013年7月24日 申請日期2013年1月18日 優(yōu)先權日2012年1月18日
發(fā)明者D.L.昂斯特, C.巴索, J.科斯, R.蒙德拉, N.韋德亞納塞恩 申請人:國際商業(yè)機器公司