端點的分布式多播的制作方法
【專利摘要】本發(fā)明涉及端點的分布式多播。提供了一種在網(wǎng)絡(luò)中進(jìn)行多播通信量的新穎的方法。網(wǎng)絡(luò)包括從網(wǎng)絡(luò)接收消息以及產(chǎn)生用于網(wǎng)絡(luò)的消息的多個端點。端點位于網(wǎng)絡(luò)的不同段中,每個段包括一個或多個端點。為了使源端點將特定消息(例如數(shù)據(jù)包)復(fù)制到網(wǎng)絡(luò)內(nèi)的屬于特定復(fù)制組(即多播組)的所有端點,源端點將該特定消息復(fù)制到源端點自己的段內(nèi)的每個端點并且復(fù)制到每個其它段中的代理端點。每個代理端點又將該特定消息復(fù)制到代理端點自己的段內(nèi)的屬于該特定復(fù)制組的所有端點。
【專利說明】端點的分布式多播
【技術(shù)領(lǐng)域】
[0001] 多播是在單次傳輸中同時將消息或信息從源傳送到一組目的地計算機(jī)。消息的拷 貝由其它網(wǎng)絡(luò)元件自動復(fù)制并且轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)并且復(fù)制多播包通常由網(wǎng)絡(luò)中的中間節(jié)點完 成--交換機(jī)執(zhí)行層2網(wǎng)絡(luò)內(nèi)部的多播轉(zhuǎn)發(fā),而(多播)路由器執(zhí)行跨越層3網(wǎng)絡(luò)的多播 路由。通常,支持多播的交換機(jī)使用IGMP(因特網(wǎng)組管理協(xié)議)探聽,而支持多播的路由器 使用PIM(協(xié)議無關(guān)多播)作為路由協(xié)議。
【背景技術(shù)】
[0002] 雖然以前并沒有非常多的應(yīng)用使用多播,但已經(jīng)開發(fā)并且部署了許多IP多播應(yīng) 用,比如財務(wù)軟件、視頻服務(wù)等。值得注意的使用情況是基于疊加的網(wǎng)絡(luò)虛擬化(層2隧 道),其中VXLAN是提出的重要技術(shù)。VXLAN可以在物理IP網(wǎng)絡(luò)上支持大量的邏輯層2網(wǎng) 絡(luò)。它基于UDP上MAC封裝,并且需要分派IP多播組以用于邏輯網(wǎng)絡(luò)內(nèi)部的BUM(廣播、未 知單播和多播)通信量的封裝。結(jié)果,可消耗大量的多播組,尤其是在每個租戶可創(chuàng)建大量 邏輯網(wǎng)絡(luò)的云環(huán)境中。這些創(chuàng)建的邏輯網(wǎng)絡(luò)和對應(yīng)的多播組可跨越物理層3網(wǎng)絡(luò),甚至跨 越數(shù)據(jù)中心。
[0003] 不幸的是,IP多播的使用受到用于支持IP多播的基礎(chǔ)設(shè)施的缺乏的限制。低端 交換機(jī)和路由器通常不支持IGMP和PIM,并且它們通常不支持大量的多播組。此外,即使當(dāng) 物理網(wǎng)絡(luò)硬件具有支持多播的能力時,用戶也通常由于IP多播的可管理性和可伸縮性的 復(fù)雜性而避開在數(shù)據(jù)中心網(wǎng)絡(luò)中實現(xiàn)多播。實現(xiàn)跨越數(shù)據(jù)中心和提供商網(wǎng)絡(luò)的多播甚至更 難。
[0004] 所需要的是一種用于實現(xiàn)跨越可包括數(shù)據(jù)中心或提供商網(wǎng)絡(luò)的物理網(wǎng)絡(luò)的大量 的多播組的網(wǎng)絡(luò)系統(tǒng)。這種網(wǎng)絡(luò)系統(tǒng)應(yīng)該在不依賴物理網(wǎng)絡(luò)的內(nèi)置多播能力的情況下支持 網(wǎng)絡(luò)虛擬化,然而,即使當(dāng)在物理網(wǎng)絡(luò)中沒有完全實現(xiàn)多播時,也利用由物理網(wǎng)絡(luò)提供的多 播能力來實現(xiàn)更高的效率。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的一些實施例提供一種用于執(zhí)行跨越網(wǎng)絡(luò)將消息復(fù)制到選擇的一組端點 (艮P,多播復(fù)制)的方法。網(wǎng)絡(luò)包括從網(wǎng)絡(luò)接收消息以及產(chǎn)生用于網(wǎng)絡(luò)的消息的多個端點。 端點位于網(wǎng)絡(luò)的不同段中,每個段包括一個或多個端點。為了使源端點將特定消息(例如, 數(shù)據(jù)包)復(fù)制到網(wǎng)絡(luò)內(nèi)的屬于特定復(fù)制組(即,多播組)的所有端點,源端點將該特定消息 復(fù)制到源端點自己的段內(nèi)的每個端點并且復(fù)制到每個其它段中的代理端點。每個代理端點 又將該特定消息復(fù)制到代理端點自己的段內(nèi)的屬于該特定復(fù)制組的所有端點。
[0006] 在一些實施例中,按照三個步驟執(zhí)行端點的多播復(fù)制:(1)源段中的本地復(fù)制,其 中多播包被發(fā)送到與發(fā)送者相同的段中的本地接收者端點;(2)跨段復(fù)制,其中包被復(fù)制 到具有多播組的接收者的每個遠(yuǎn)程段;(3)遠(yuǎn)程段中的本地復(fù)制,其中包被發(fā)送到遠(yuǎn)程段 中的每個接收者端點。
[0007] 為了獲得用于多播復(fù)制的所有相關(guān)信息,一些實施例中的端點彼此交換信息。在 一些實施例中,端點使用控制平面協(xié)議以分布式方式彼此交換信息。在一些實施例中,一組 單獨的實體(例如,集中式控制器)從端點收集信息,并且將端點執(zhí)行多播復(fù)制所需的關(guān)于 物理網(wǎng)絡(luò)和其它端點的信息公布給端點(主動地或響應(yīng)于來自端點的查詢)。
[0008] -些實施例以使遠(yuǎn)程段中的通信量負(fù)荷均衡的方式選擇代理。在一些實施例中, 通過針對每個多播組隨機(jī)地從池中選擇端點來實現(xiàn)這一點。一些實施例通過有意地避開已 經(jīng)繁忙的端點來智能地執(zhí)行代理選擇。
[0009] 在一些實施例中,多播復(fù)制用于實現(xiàn)基于疊加的網(wǎng)絡(luò)虛擬化解決方案,例如 VXLAN。在疊加網(wǎng)絡(luò)中,可在物理網(wǎng)絡(luò)上面創(chuàng)建邏輯層2網(wǎng)絡(luò),并且可在加入同一邏輯層2 網(wǎng)絡(luò)的端點之間建立全混亂層2隧道。在一些實施例中,源自邏輯層2網(wǎng)絡(luò)中的一個隧道 端點的BUM包被復(fù)制到網(wǎng)絡(luò)的所有其它成員端點。
[0010] 在一些實施例中,VM是邏輯層2網(wǎng)絡(luò)的消費者,并且超級監(jiān)督者是隧道端點。這 些實施例中的一些實施例將多播復(fù)制操作的范圍(即,多播組)映射到邏輯層2網(wǎng)絡(luò)并且 將多播端點映射到隧道端點。如此,邏輯網(wǎng)絡(luò)中的BUM包復(fù)制被實現(xiàn)為到物理網(wǎng)絡(luò)中的多 播組的多播復(fù)制。換句話說,在這些實施例中,邏輯網(wǎng)絡(luò)的復(fù)制范圍被映射為僅包括多播組 的接收者端點。
[0011] 前面的"
【發(fā)明內(nèi)容】
"旨在用作本發(fā)明的一些實施例的簡要介紹。它并不意味著是 本文檔中公開的所有獨創(chuàng)性主題的介紹或概述。下面的"【具體實施方式】"和在"具體實施方 式"中參照的附圖將會進(jìn)一步描述在"
【發(fā)明內(nèi)容】
"中描述的實施例和其它實施例。因此,為 了理解由本文檔描述的所有實施例,需要完整閱讀"
【發(fā)明內(nèi)容】
"、"【具體實施方式】"和附圖。此 夕卜,要求保護(hù)的主題不應(yīng)該受"
【發(fā)明內(nèi)容】
"、"【具體實施方式】"和附圖中的說明性細(xì)節(jié)限制,而 是應(yīng)該由所附權(quán)利要求來限定,因為可以在不偏離主題的精神的情況下以其它具體形式來 實施要求保護(hù)的主題。
【專利附圖】
【附圖說明】
[0012] 在所附權(quán)利要求中闡述本發(fā)明的新穎的特征。然而,為了解釋的目的,在下面的附 圖中闡述本發(fā)明的幾個實施例。
[0013] 圖1圖示其中段的端點將數(shù)據(jù)包復(fù)制到特定復(fù)制組的所有端點的網(wǎng)絡(luò)。
[0014] 圖2圖示通過使用代理實現(xiàn)的從一個網(wǎng)絡(luò)段到其它網(wǎng)絡(luò)段的多播通信量的傳播。
[0015] 圖3圖示使用端點的單播復(fù)制實現(xiàn)本地段中的多播的網(wǎng)絡(luò)。
[0016] 圖4概念性地圖示用于在網(wǎng)絡(luò)中復(fù)制/轉(zhuǎn)發(fā)多播包的處理。
[0017]圖5圖示與多播復(fù)制相關(guān)的端點信息的收集和分發(fā)。
[0018] 圖6圖示由端點用于復(fù)制和轉(zhuǎn)發(fā)多播通信量的一組多播信息。
[0019] 圖7a_b概念性地圖示用于在遠(yuǎn)程段中選擇多播代理的處理。
[0020] 圖8圖示物理網(wǎng)絡(luò)上的邏輯網(wǎng)絡(luò)的網(wǎng)絡(luò)虛擬化。
[0021] 圖9圖示能夠執(zhí)行跨越多個網(wǎng)絡(luò)段的多播復(fù)制/轉(zhuǎn)發(fā)的物理網(wǎng)絡(luò)上的多個邏輯網(wǎng) 絡(luò)的實現(xiàn)方式。
[0022] 圖10圖示通過在物理網(wǎng)絡(luò)中使用多播代理實現(xiàn)的邏輯網(wǎng)絡(luò)中的BUM包的傳輸。
[0023] 圖11概念性地圖示用來實現(xiàn)本發(fā)明的一些實施例的電子系統(tǒng)。
【具體實施方式】
[0024] 在下面的描述中,為了解釋的目的而闡述許多細(xì)節(jié)。然而,本領(lǐng)域普通技術(shù)人員將 會意識到,可在不使用這些具體細(xì)節(jié)的情況下實施本發(fā)明。在其它實例中,以方框圖形式示 出公知的結(jié)構(gòu)和裝置以免在不必要的細(xì)節(jié)上模糊本發(fā)明的描述。
[0025] 本發(fā)明的一些實施例提供一種用于執(zhí)行跨越網(wǎng)絡(luò)將消息復(fù)制到選擇的一組端點 (艮P,多播復(fù)制)的方法。網(wǎng)絡(luò)包括從網(wǎng)絡(luò)接收消息以及產(chǎn)生用于網(wǎng)絡(luò)的消息的多個端點。 端點位于網(wǎng)絡(luò)的不同段中,每個段包括一個或多個端點。為了使源端點將特定消息(例如, 數(shù)據(jù)包)復(fù)制到網(wǎng)絡(luò)內(nèi)的屬于特定復(fù)制組(即,多播組)的所有端點,源端點將該特定消息 復(fù)制到源端點自己的段內(nèi)的每個端點并且復(fù)制到每個其它段中的代理端點。每個代理端點 又將該特定消息復(fù)制到代理端點自己的段內(nèi)的屬于該特定復(fù)制組的所有端點。
[0026] 對于一些實施例,圖1圖示網(wǎng)絡(luò)100,在網(wǎng)絡(luò)100中,端點將數(shù)據(jù)包跨越該網(wǎng)絡(luò)的不 同段復(fù)制到特定復(fù)制組的所有端點。網(wǎng)絡(luò)100被劃分成段。端點將數(shù)據(jù)包復(fù)制到該端點自 己的段中的特定復(fù)制組的所有端點。然后,其它段中的代理將數(shù)據(jù)包復(fù)制到其它段中的多 播組的其它端點。
[0027] 如圖所示,網(wǎng)絡(luò)100被劃分成至少四個段101-104。網(wǎng)絡(luò)段101-104中的每個網(wǎng)絡(luò) 段包括產(chǎn)生并且接收網(wǎng)絡(luò)數(shù)據(jù)通信量的許多端點。具體地講,段101包括端點111-116,段 102包括端點121-126,段103包括端點131-136,并且段104包括端點141-146。段之間的 數(shù)據(jù)通信量經(jīng)過段間路由150。
[0028] 圖1還圖示由端點111產(chǎn)生的數(shù)據(jù)包190的復(fù)制。指定數(shù)據(jù)包190被復(fù)制到特定 復(fù)制組的所有成員端點。這個特定復(fù)制組的成員包括端點111、112、114、115、121、122、123、 124、125、126、131、132、135、136、141、144、145和146。這些端點在圖1中被示出為陰影。未 被示出為陰影的端點不屬于該特定復(fù)制組。在一些實施例中,不將數(shù)據(jù)包190轉(zhuǎn)發(fā)到不屬 于該復(fù)制組的那些端點。值得注意的是,并非段的所有端點屬于同一復(fù)制組。例如,雖然網(wǎng) 絡(luò)段102的所有端點屬于該特定復(fù)制組,但網(wǎng)絡(luò)段101中只有一些端點屬于該特定復(fù)制組 (對于網(wǎng)絡(luò)段103和104中的端點而言,同樣如此)。在一些實施例中,這些其它端點可屬 于其它復(fù)制組。一些端點屬于一個以上的復(fù)制組。
[0029] 源端點111在網(wǎng)絡(luò)段101中,并且該端點將數(shù)據(jù)包復(fù)制到網(wǎng)絡(luò)段101內(nèi)的復(fù)制組 的其它成員,即復(fù)制到端點112U14和115。相同的數(shù)據(jù)包還被復(fù)制到網(wǎng)絡(luò)段102U03和 104中的端點。然而,源端點111不將數(shù)據(jù)包190直接轉(zhuǎn)發(fā)到這些其它網(wǎng)絡(luò)段中的端點。替 代地,源端點111將復(fù)制數(shù)據(jù)包190轉(zhuǎn)發(fā)到這些其它網(wǎng)絡(luò)段中的每個網(wǎng)絡(luò)段中的代理端點。 具體地講,源端點111已選擇端點121作為網(wǎng)絡(luò)段102的代理,已選擇端點131作為網(wǎng)絡(luò)段 103的代理,并且已選擇端點141作為網(wǎng)絡(luò)段104的代理。這些代理中的每個代理又將數(shù)據(jù) 包190復(fù)制并且轉(zhuǎn)發(fā)到每個相應(yīng)網(wǎng)絡(luò)段內(nèi)的屬于該特定復(fù)制組的端點(例如,代理141將 數(shù)據(jù)包190轉(zhuǎn)發(fā)到端點141、144、145和146)。以下將在章節(jié)III中進(jìn)一步描述代理端點的 選擇。
[0030] 不同網(wǎng)絡(luò)段中的代理的使用允許源端點111將數(shù)據(jù)包190轉(zhuǎn)發(fā)到其它網(wǎng)絡(luò)段中的 端點,而不必花費計算資源以便到達(dá)遠(yuǎn)程段中的端點。它還允許消息的復(fù)制和轉(zhuǎn)發(fā)以充分 使用每個網(wǎng)絡(luò)段的局部網(wǎng)絡(luò)結(jié)構(gòu),在一些實施例中,某個網(wǎng)絡(luò)段具有被構(gòu)造為支持多播的 硬件。通過如此操作,利用由物理網(wǎng)絡(luò)提供的多播能力來實現(xiàn)更高的效率,同時基于物理網(wǎng) 絡(luò)拓?fù)渲С謨?yōu)化的復(fù)制和傳送路徑。
[0031] 網(wǎng)絡(luò)100為連接到網(wǎng)絡(luò)100的實體之間的數(shù)據(jù)通信提供物理基礎(chǔ)設(shè)施。在一些實 施例中,網(wǎng)絡(luò)100包括以可通信方式互相鏈接以形成網(wǎng)絡(luò)100的許多在物理上截然不同的 通信路徑集合。在一些實施例中,這些在物理上截然不同的通信路徑集合中的至少一些集 合具有不同拓?fù)浜?或使用不同通信協(xié)議。在一些實施例中,網(wǎng)絡(luò)100跨越一個或多個數(shù) 據(jù)中心和/或(因特網(wǎng)服務(wù))提供商網(wǎng)絡(luò),從而在物理上截然不同的通信路徑集合中的至 少一些集合位于數(shù)據(jù)中心或提供商網(wǎng)絡(luò)中。在一些實施例中,網(wǎng)絡(luò)100是可被劃分成多個 物理層2 (VLAN)、IP子網(wǎng)和多播島的物理IP網(wǎng)絡(luò)。在多播島內(nèi)部支持多播轉(zhuǎn)發(fā),但不支持 跨越島的多播轉(zhuǎn)發(fā)(或者不能以足夠好的性能完成多播轉(zhuǎn)發(fā))。在一些實施例中,網(wǎng)絡(luò)根本 不支持多播。
[0032] 在一些實施例中,網(wǎng)絡(luò)端點(例如,111)是產(chǎn)生并且接收網(wǎng)絡(luò)100上的數(shù)據(jù)通信量 的實體。這種實體可以是計算裝置、數(shù)據(jù)存儲器或者提供或消費網(wǎng)絡(luò)上的數(shù)據(jù)通信量的其 它類型的裝置。
[0033] 將消息復(fù)制并且轉(zhuǎn)發(fā)到多個接收者的網(wǎng)絡(luò)端點被稱為多播端點。在一些實施例 中,多播端點根據(jù)物理網(wǎng)絡(luò)拓?fù)浜投嗖ツ芰υ诓煌J较聢?zhí)行多播復(fù)制本身。在一些實施 例中,多播端點可以是超級監(jiān)督者,該超級監(jiān)督者代表其在主機(jī)機(jī)器上運行的虛擬機(jī)(VM) 將多播通信量發(fā)送到物理網(wǎng)絡(luò)以及從物理網(wǎng)絡(luò)接收多播通信量。
[0034] 在一些實施例中,多播端點可以是不產(chǎn)生并且消費多播通信量的網(wǎng)絡(luò)段中的實 體。這些多播端點中的一些多播端點攔截在本地產(chǎn)生的多播通信量并且將攔截的通信量 復(fù)制到遠(yuǎn)程段的多播端點,以及從遠(yuǎn)程段接收多播通信量并且將接收的通信量注入到本地 段。
[0035] 網(wǎng)絡(luò)段(例如,段101-104)是包括一批端點的網(wǎng)絡(luò)的子集。在一些實施例中,每 個網(wǎng)絡(luò)段能夠支持所包括的多播端點之間的多播通信量。在一些實施例中,網(wǎng)絡(luò)段中的至 少一些網(wǎng)絡(luò)段不支持多播通信量并且必須依賴于單播將多播包復(fù)制并且轉(zhuǎn)發(fā)到多播組中 的每個接收者端點。
[0036] 與在跨越不同段的端點之間復(fù)制并且轉(zhuǎn)發(fā)多播消息相比,在同一段的端點之間以 不同方式復(fù)制并且轉(zhuǎn)發(fā)多播消息。例如,在一些實施例中,同一段的端點之間的網(wǎng)絡(luò)通信的 成本小于不同段中的端點之間的網(wǎng)絡(luò)通信的成本。在一些實施例中,與不同段中的端點之 間的通信帶寬相比,網(wǎng)絡(luò)在同一段的端點之間支持更高的通信帶寬。在一些實施例中,段由 物理網(wǎng)絡(luò)的多播能力定義。在這些實施例中的一些實施例中,段內(nèi)的多播通信量(同時將 網(wǎng)絡(luò)通信量發(fā)送到多個接收者)可以可靠地使用物理網(wǎng)絡(luò)的多播能力,而跨越段的多播通 信量或者根據(jù)得不到物理網(wǎng)絡(luò)的支持,或者以更有限的方式被支持。
[0037] 在一些實施例中,段可以是VLAN(虛擬局域網(wǎng))或VLAN內(nèi)部的IP子網(wǎng)。(在一些 實施例中,VLAN僅包含一個IP子網(wǎng)。在一些實施例中,在VLAN中分派多個IP子網(wǎng)。)在 一些實施例中,網(wǎng)絡(luò)段包括彼此之間具有高帶寬和/或低成本鏈路的一組相鄰的VLAN。
[0038] 在一些實施例中,段是"多播島"。在一些實施例中,多播島是支持IP多播的物理 網(wǎng)絡(luò)、或者是其中所有路由器支持多播路由協(xié)議的物理網(wǎng)絡(luò)。在一些實施例中,段是多播 島,該多播島是VLAN,其中IGMP探聽由交換機(jī)支持,而路由器不支持多播路由,因此多播轉(zhuǎn) 發(fā)局限于在VLAN內(nèi)部。在一些實施例中,多播島包括多個VLAN和子網(wǎng)。在一些實施例中, 這種多播島包括支持多播路由的內(nèi)部路由器(或?qū)?交換機(jī)),因此可以在內(nèi)部VLAN之間 路由多播通信量,但不能將多播通信量路由至島外或?qū)⒍嗖ネㄐ帕繌耐獠柯酚芍翇u中。
[0039] 段間路由150包括在不同網(wǎng)絡(luò)段101-104之間提供通信路徑的網(wǎng)絡(luò)100的一部 分。在一些實施例中,發(fā)生在每個網(wǎng)絡(luò)段內(nèi)的多播通信量無法直接跨越段間路由150而被 路由,或者無法在沒有引起在時間、帶寬或計算能力方面的額外成本的情況下被路由。在 一些實施例中,段間路由150包括不允許多播通信量的數(shù)據(jù)中心或提供商網(wǎng)絡(luò)。在這些實 施例中的一些實施例中,一個段的多播通信量僅可以通過段間路由150作為單播通信量傳 播,尤其是傳播到不同段中的代理端點。
[0040] 以上描述介紹了一些實施例的端點的分布式多播復(fù)制。以下描述幾個更詳細(xì)的實 施例。首先,章節(jié)I更詳細(xì)地描述一些實施例的端點的多播復(fù)制,而章節(jié)Π描述為支持根 據(jù)一些實施例的分布式多播復(fù)制所需的信息的收集和交換。接下來,章節(jié)III描述根據(jù)一 些實施例的代理端點的選擇和網(wǎng)絡(luò)負(fù)荷的均衡。章節(jié)IV描述基于如其它章節(jié)中所述的分 布式多播復(fù)制的網(wǎng)絡(luò)虛擬化方案的一些實施例。最后,章節(jié)V描述用來實現(xiàn)本發(fā)明的一些 實施例的電子系統(tǒng)。
[0041] L端點的多播復(fù)制
[0042] 在一些實施例中,端點的多播復(fù)制包括下面的三個步驟:(1)源段中的本地復(fù)制, 其中多播包被發(fā)送到與發(fā)送者相同的段中的本地接收者端點;(2)跨段復(fù)制,其中包被復(fù) 制到具有多播組的接收者的每個遠(yuǎn)程段;(3)遠(yuǎn)程段中的本地復(fù)制,其中包被發(fā)送到遠(yuǎn)程 段中的每個接收者端點。
[0043] 步驟(1)和(2)由發(fā)送者端點啟動。在步驟(2)中,發(fā)送者端點在復(fù)制多播包之前 選擇每個遠(yuǎn)程接收段中的一個端點作為代理,然后利用單播將包復(fù)制到每個代理端點。在 接收到復(fù)制的包之后,代理將繼續(xù)在步驟(3)中執(zhí)行復(fù)制過程。
[0044] 圖2圖示通過使用代理實現(xiàn)的從一個網(wǎng)絡(luò)段到其它網(wǎng)絡(luò)段的多播通信量的傳播。 具體地講,圖2圖示網(wǎng)絡(luò)200中的源段中的本地復(fù)制、跨段復(fù)制和遠(yuǎn)程段中的本地復(fù)制。如 圖所示,網(wǎng)絡(luò)200包括四個段210、220、230和240,段210具有端點211-214,段220具有端 點221-224,段230具有端點231-234,并且段240具有端點241-244。另外,源端點211已 分別為遠(yuǎn)程段220、230和240選擇端點221、231和241作為用于復(fù)制并且轉(zhuǎn)發(fā)多播消息的 代理。為了說明簡單的目的,所有的端點被示出為屬于同一特定多播組,但本領(lǐng)域普通技術(shù) 人員將會理解,一些段可包括不屬于同一多播組的端點。
[0045] 在四個階段201-204中,圖2圖示從源端點211到段210、220、230和240中的同 一多播組的所有端點的多播消息的復(fù)制和轉(zhuǎn)發(fā)。在每個階段,已接收到多播消息/數(shù)據(jù)包 的端點被示出為陰影。
[0046] 在第一階段201,源端點211通過多播將數(shù)據(jù)包轉(zhuǎn)發(fā)到本地網(wǎng)絡(luò)段210 (本地網(wǎng)絡(luò) 段210是源端點的網(wǎng)絡(luò)段)內(nèi)的屬于同一多播組的所有其它端點。在一些實施例中,通過 使用構(gòu)成網(wǎng)絡(luò)段210的基礎(chǔ)的物理網(wǎng)絡(luò)的多播能力來實現(xiàn)這種復(fù)制和轉(zhuǎn)發(fā)。
[0047] 第二階段202示出跨段復(fù)制,其中包被復(fù)制到具有該多播組的接收者端點的每個 遠(yuǎn)程段。具體地講,源端點211將數(shù)據(jù)包復(fù)制并且轉(zhuǎn)發(fā)到分別位于遠(yuǎn)程段220、230和240 中的代理端點221、231和241。在一些實施例中,跨越被構(gòu)造為用于多播的物理通信路徑進(jìn) 行跨段復(fù)制,并且跨段復(fù)制不使用可用的內(nèi)置多播能力。然而,在一些實施例中,跨越并非 被構(gòu)造為用于多播的物理通信路徑進(jìn)行這種跨段復(fù)制。在這些實施例中的一些實施例中, 通過單播通信協(xié)議來執(zhí)行從一個段到另一個段的多播包的轉(zhuǎn)發(fā)。
[0048] 第三階段203示出遠(yuǎn)程段中的本地復(fù)制,其中包被發(fā)送到遠(yuǎn)程段中的每個接收者 端點。具體地講,由這些遠(yuǎn)程段中的每個遠(yuǎn)程段中的代理端點執(zhí)行這種復(fù)制。也就是說,被 選擇為段220的代理的端點221將包復(fù)制并且轉(zhuǎn)發(fā)到端點222-224。同樣地,作為段230的 代理的端點231將包復(fù)制并且轉(zhuǎn)發(fā)到端點232-234,并且作為段240的代理的端點241將包 復(fù)制并且轉(zhuǎn)發(fā)到端點242-244。在一些實施例中,通過使用構(gòu)成這些遠(yuǎn)程網(wǎng)絡(luò)段的基礎(chǔ)的 物理網(wǎng)絡(luò)的多播能力來實現(xiàn)這些遠(yuǎn)程段中的一些遠(yuǎn)程段中的多播包的復(fù)制和轉(zhuǎn)發(fā)。第四階 段204(即,最后階段)示出數(shù)據(jù)包的復(fù)制和轉(zhuǎn)發(fā)的完成,其中該多播組中的每個端點已接 收到數(shù)據(jù)包。
[0049] 如上所述,在一些實施例中,通過由構(gòu)成段的基礎(chǔ)的物理網(wǎng)絡(luò)支持的本地多播復(fù) 制來實現(xiàn)該段中的多播復(fù)制。在一些實施例中,當(dāng)段是多播島時情況是如此,從而發(fā)送者/ 代理端點發(fā)出多播包,該多播包將被物理網(wǎng)絡(luò)復(fù)制到本地多播島中的該多播組的每個接收 者。在一些實施例中,多播島不允許多播包離開該島,并且發(fā)送者端點將會在不使用多播的 情況下(例如,通過使用單播)將原始包發(fā)送到島的外面。即使路由器支持多播,一些實施 例也通過強迫路由器丟棄多播包來防止多播包被轉(zhuǎn)發(fā)到段外部。
[0050] 在一些實施例中,至少一些段在本地不支持多播協(xié)議。在這些實施例中的一些實 施例中,發(fā)送者/代理端點利用單播將原始多播包復(fù)制到每個本地接收者端點。因此,對于 每個本地接收者,發(fā)送者/代理復(fù)制原始包并且將其轉(zhuǎn)換成單播包以發(fā)送到接收者端點。 圖3圖示使用端點的單播復(fù)制實現(xiàn)本地段中的多播的網(wǎng)絡(luò)300。
[0051] 如圖所示,網(wǎng)絡(luò)300具有四個網(wǎng)絡(luò)段310、320、330和340,段310具有端點 311-314,段320具有端點321-324,段330具有端點331-334,并且段340具有端點341-344。 源端點311已分別為遠(yuǎn)程段320、330和340選擇端點321、331和341作為用于復(fù)制并且轉(zhuǎn) 發(fā)多播消息的代理。為了說明簡單的目的,所有的端點被示出為屬于同一特定多播組,但本 領(lǐng)域普通技術(shù)人員將會理解,一些段可包括不屬于同一多播組的端點。
[0052] 圖3在十個階段301-309和399中圖示本地段中的單播復(fù)制。第一階段301圖示 源端點311通過單播將數(shù)據(jù)包復(fù)制并且轉(zhuǎn)發(fā)到端點312。段310不支持多播協(xié)議,因此必須 通過至同一多播組的各端點的單播傳輸來實現(xiàn)至段310內(nèi)的多個端點的多播通信量。在接 收者端點與發(fā)送者端點(或代理)位于同一VLAN中的一些實施例中,目的地MAC地址被改 變?yōu)榻邮照叨它c的MAC地址。
[0053] 為了完成至段310中的該多播組的其余成員的數(shù)據(jù)包的多播復(fù)制和轉(zhuǎn)發(fā),源端點 執(zhí)行至端點313和314的單播轉(zhuǎn)發(fā)。第二階段302和第三階段303分別圖示至端點313和 314的單播轉(zhuǎn)發(fā)。
[0054] 第四階段304圖示從段310中的源端點311到段320的所選擇的代理端點321的 跨段消息復(fù)制/轉(zhuǎn)發(fā)。圖3的例子圖示通過單播執(zhí)行的跨段轉(zhuǎn)發(fā)。然而,在一些實施例中, 如果構(gòu)成跨段通信的基礎(chǔ)的物理通信路徑支持多播,則通過從源端點到所有代理的多播來 執(zhí)行跨段轉(zhuǎn)發(fā)。
[0055] 第五階段305圖示從源端點311到段330的所選擇的代理端點331的跨段消息復(fù) 制/轉(zhuǎn)發(fā)。階段305還圖示由代理321執(zhí)行的至段320中的端點的消息復(fù)制/轉(zhuǎn)發(fā)的開始。
[0056] 第六階段306圖示從源端點311到段340的所選擇的代理端點341的跨段消息復(fù) 制/轉(zhuǎn)發(fā)。在這個階段中,代理321繼續(xù)通過單播將消息復(fù)制/轉(zhuǎn)發(fā)到段320中的端點,而 代理331開始通過單播將消息復(fù)制/轉(zhuǎn)發(fā)到段330中的端點。
[0057] 在第七階段307,源端點311已完成將消息發(fā)送到源端點311的所有目的地(即, 同一多播組的位于源端點311的本地段310中的所有端點以及遠(yuǎn)程段中的所有代理端點), 而代理321和331繼續(xù)通過單播將數(shù)據(jù)包復(fù)制/轉(zhuǎn)發(fā)到它們各自的網(wǎng)絡(luò)段中的同一多播組 的端點。代理341開始通過單播將消息復(fù)制/轉(zhuǎn)發(fā)到段340中的端點。
[0058] 由代理執(zhí)行的復(fù)制和轉(zhuǎn)發(fā)在第八階段308和第九階段309中繼續(xù)進(jìn)行。第十階段 399(即,最后階段)示出數(shù)據(jù)包的復(fù)制和轉(zhuǎn)發(fā)的完成,其中多播組中的每個端點已接收到 數(shù)據(jù)包。
[0059] 雖然圖2和圖3將整個網(wǎng)絡(luò)圖示為使用單播或多播來復(fù)制/轉(zhuǎn)發(fā)多播消息,但在 一些實施例中,可以按照每段甚至每端點粒度構(gòu)造復(fù)制模式。例如,可以構(gòu)造圖1的網(wǎng)絡(luò) 100,以使得源端點111使用多播來轉(zhuǎn)發(fā)/復(fù)制消息,而代理端點131使用單播。還可以構(gòu) 造網(wǎng)絡(luò)100,以使得第一多播組(例如,由圖1中的陰影端點代表的組)使用多播,而第二多 播組(未示出)使用單播。
[0060] 通過執(zhí)行多播來實現(xiàn)的多播包的復(fù)制/轉(zhuǎn)發(fā)需要由本地段內(nèi)部的物理網(wǎng)絡(luò)支持 的多播。通過這樣操作,利用了物理網(wǎng)絡(luò)的多播能力,與依賴于端點的單播相比,這允許更 高效的多播轉(zhuǎn)發(fā)和復(fù)制。當(dāng)多播不可用時,通過單播來實現(xiàn)的多播包的復(fù)制/轉(zhuǎn)發(fā)(如圖 3中所示)仍然是有益的,只要段內(nèi)部的包轉(zhuǎn)發(fā)成本低于段外部的轉(zhuǎn)發(fā)成本即可,并且通過 僅將包的單個拷貝復(fù)制到每個遠(yuǎn)程段的代理來減少跨越段的復(fù)制的包。
[0061] 對于一些實施例,圖4概念性地圖示當(dāng)在網(wǎng)絡(luò)中復(fù)制/轉(zhuǎn)發(fā)多播包時由端點執(zhí)行 的處理400。當(dāng)端點接收到(在410)用于在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包時,該處理開始。這個接 收到的數(shù)據(jù)包可以由通過該端點連接到該網(wǎng)絡(luò)的實體(例如,運行應(yīng)用的計算機(jī)或提供數(shù) 據(jù)的存儲裝置)產(chǎn)生。接收到的數(shù)據(jù)還可以來自由端點從該網(wǎng)絡(luò)接收到的數(shù)據(jù)包。
[0062] 該處理隨后確定(在420)是否復(fù)制接收到的數(shù)據(jù)包。對于接收到來自使用該端 點連接到該網(wǎng)絡(luò)的實體的數(shù)據(jù)的端點,該端點可以從由數(shù)據(jù)的源提供的信息確定這個數(shù)據(jù) 包是否以多個接收者為目的地。對于從該網(wǎng)絡(luò)接收數(shù)據(jù)作為包的端點,該處理需要確定數(shù) 據(jù)包是否來自使用該端點作為代理以復(fù)制并且轉(zhuǎn)發(fā)數(shù)據(jù)包的多播組。在一些實施例中,代 理端點區(qū)分需要在本地進(jìn)一步復(fù)制的接收到的包與其它普通的單播通信量。一些實施例通 過在發(fā)送到接收者/代理端點之前封裝原始多播包來促進(jìn)這一點。當(dāng)接收者/代理端點接 收到封裝的包時,它對包進(jìn)行解封裝并且恢復(fù)原始多播包。在一些實施例中,封裝頭包括向 代理告知該包需要進(jìn)一步本地復(fù)制的標(biāo)志。在一些實施例中,發(fā)送者/代理端點將原始多 播包轉(zhuǎn)換成單播包,并且將包含原始目的地多播地址的IP選項添加到該包。
[0063] 如果數(shù)據(jù)包需要由端點執(zhí)行的進(jìn)一步復(fù)制,則該處理前進(jìn)至430。否則,處理400 識別(在480)數(shù)據(jù)包的接收者,將數(shù)據(jù)包發(fā)送(在490)到識別的接收者并且結(jié)束。
[0064] 在430,處理400識別數(shù)據(jù)包的多播組。在一些實施例中,從接收到的數(shù)據(jù)包獲得 或提取這種信息。該處理隨后識別(在440)屬于識別的多播組的將要接收數(shù)據(jù)包的端點。 在一些實施例中,中央實體提供由端點識別多播組的成員端點所需的信息,該中央實體從 網(wǎng)絡(luò)中的端點收集這種信息并且分發(fā)該信息。在一些實施例中,網(wǎng)絡(luò)中的端點事先在它們 之間交換這種信息。以下在章節(jié)II中進(jìn)一步描述這種信息的收集和交換。以下通過參照 圖6來描述由端點用于識別多播組成員的信息的例子。
[0065]接下來,該處理確定(在450)識別的接收者端點中的任何接收者端點是否在本地 段中。如果識別的接收者端點中的任何接收者端點在本地段中,則該處理前進(jìn)至455以將 數(shù)據(jù)包復(fù)制并且轉(zhuǎn)發(fā)到本地段中的(識別的多播組的)所有識別的接收者端點。在一些實 施例中,處理400確定本地段是否支持多播。如果本地段支持多播,則該處理使用多播協(xié)議 將數(shù)據(jù)包發(fā)送到本地段中的多播組的所有成員。否則,該處理使用單播協(xié)議分別將數(shù)據(jù)包 發(fā)送到每個識別的接收者端點。
[0066] 該處理隨后確定(460)識別的接收者端點中的任何接收者端點是否在遠(yuǎn)程段中。 如果識別的接收者端點中的任何接收者端點在遠(yuǎn)程段中,則該處理前進(jìn)至470以將數(shù)據(jù)包 復(fù)制并且轉(zhuǎn)發(fā)到這些遠(yuǎn)程段的代理端點。在將數(shù)據(jù)包發(fā)送到本地段中的接收者端點和/或 識別的遠(yuǎn)程段中的端點的代理之后,處理400結(jié)束。
[0067] II.信息收集和交換
[0068]在一些實施例中,如以上在章節(jié)I中所述地執(zhí)行多播復(fù)制和轉(zhuǎn)發(fā)的端點需要關(guān)于 多播組成員和物理網(wǎng)絡(luò)拓?fù)涞男畔ⅰ6嗖ソM的發(fā)送者端點需要知道具有這個組的接收者的 所有遠(yuǎn)程段和這些段中的每個段中的至少一個端點,因此它可以在每個遠(yuǎn)程段選擇端點作 為代理。
[0069]在單播復(fù)制模式下,當(dāng)發(fā)送者或代理端點通過單播復(fù)制來執(zhí)行多播(如以上參照 圖2所述)時,它需要知道該多播組的所有本地接收者端點的相關(guān)信息(例如,地址)以將 數(shù)據(jù)包復(fù)制到它們中的每個。端點當(dāng)然知道它自己的多播組成員。在一些實施例中,當(dāng)段 是可以從IP前綴獲得的一個IP子網(wǎng)或一組子網(wǎng)時,端點可以從IP地址計算它自己的段或 其它端點的段。在一些實施例中,網(wǎng)絡(luò)中的端點使用發(fā)現(xiàn)協(xié)議確定彼此的段ID。在一些實 施例中,端點的段ID由網(wǎng)絡(luò)管理員配置。
[0070]為了獲得用于多播復(fù)制的所有相關(guān)信息,一些實施例中的端點彼此交換信息。在 一些實施例中,端點使用控制平面協(xié)議以分布式方式彼此交換信息。在一些實施例中,一組 單獨的實體(例如,集中式控制器)從端點收集信息,并且將由端點執(zhí)行多播復(fù)制所需的關(guān) 于物理網(wǎng)絡(luò)和其它端點的信息公布給端點(主動地或響應(yīng)于來自端點的查詢)。
[0071]圖5圖示針對一些實施例的與多播復(fù)制相關(guān)的端點信息的收集和分發(fā)。具體地 講,希望加入特定多播組的端點向收集關(guān)于該特定多播組的成員的信息的中央控制實體提 交報告。收集的信息隨后被分發(fā)(通過來自端點的查詢或者通過從中央控制器的主動推 送)到該特定多播組的每個成員。
[0072] 圖5圖示包括網(wǎng)絡(luò)段510、520和530的網(wǎng)絡(luò)500。該網(wǎng)絡(luò)包括作為多播組100的 成員的端點,其中多播組100包括成員端點511、512、521和532(被示出為陰影)。端點511 和512位于段510中(段A的端點Al和A3),端點521位于段520中(段B的端點B2), 并且端點532位于段530中(段C的端點Cl)。圖5還圖示最初不在多播組100中的端點 531。這個端點531位于段530中(段C的端點C5)。
[0073] 圖5還圖示用于從網(wǎng)絡(luò)中的端點收集關(guān)于網(wǎng)絡(luò)的信息以及將關(guān)于網(wǎng)絡(luò)的信息分 發(fā)到網(wǎng)絡(luò)中的端點的實體550。在一些實施例中,實體550是用于網(wǎng)絡(luò)的所有段的中央控制 器。在一些實施例中,實體550包括一個或多個計算裝置,這一個或多個計算裝置收集從各 端點提交的信息并且將收集的信息存儲為不同多播組的表或目錄560。在一些實施例中,實 體550通過由網(wǎng)絡(luò)500提供的物理基礎(chǔ)設(shè)施接收并且分發(fā)這種信息。在一些實施例中,實 體550通過控制平面協(xié)議與各端點通信。在一些其它實施例中,中央實體550和不同段中 的各端點之間的通信發(fā)生在獨立于網(wǎng)絡(luò)500的通信路徑中。在一些實施例中,作為中央控 制器的實體550基于它已收集的信息選擇用于每個多播組的每個端點的代理。在一些實施 例中,端點自己基于由實體550分發(fā)給它們的信息選擇它們自己的多播代理。
[0074]圖5以三個操作圖示端點531加入多播組100。在一些實施例中,端點(例如,端 點531)可在它已接收到包括包的原始目的地多播組標(biāo)識的單播包之后決定加入新的多播 組(在一些實施例中,接收者端點可加入多個多播組)。在一些實施例中,端點將會由此通 過向?qū)嶓w550提交報告來基于接收到的多播組標(biāo)識決定加入多播組。
[0075] 在第一操作(標(biāo)記為"1")期間,端點531向中央控制器實體550提交報告562: 它想要加入多播組100。在一些實施例中,這種報告包括期望的多播組的標(biāo)識符、該端點的 標(biāo)識符(例如,它的MAC地址)以及用于在網(wǎng)絡(luò)內(nèi)定位該端點的信息(例如,它的網(wǎng)絡(luò)IP 地址)。
[0076] 在第二操作(標(biāo)記為"2")期間,中央控制器實體550基于接收到的報告562更新 它的多播組100的記錄以包括端點531的信息。在一些實施例中,中央控制器實體保持每 個多播組的目錄或表。在一些實施例中,中央控制器解析由各端點提交的原始信息,并且將 其編譯為多播組的成員的優(yōu)化的表或目錄。以下將參照圖6進(jìn)一步描述這種目錄的例子。
[0077] 在第三操作(標(biāo)記為"3")期間,中央控制器實體550將多播組100的更新的成員 信息552分發(fā)給不同段中的該多播組的所有成員端點。因此,已有的成員511、512、521、532 知道新的成員端點531已剛剛加入該多播組,并且這個新的成員端點位于段C(530)中。新 加入的端點531也從中央控制器接收關(guān)于組100的成員信息,這讓它了解該多播組的其它 已有成員及其在網(wǎng)絡(luò)中的位置(例如,哪個段)。
[0078] 圖6圖示針對一些實施例的由中央控制實體(例如,550)保持的多播組的示例性 目錄610。目錄610保持多個表,每個表記錄一個多播組的成員信息。例如,表611存儲多 播組" 100"的成員信息,而表612存儲多播組"200"的成員信息。每個表包括多個條目,每 個條目對應(yīng)于多播組中的端點。例如,表611中的每個條目記錄位于多播組"100"中的端 點的標(biāo)識符,而表612中的每個條目記錄位于多播組"200"中的端點的標(biāo)識符。每個條目 還包括端點所屬的網(wǎng)絡(luò)段。值得注意的是,端點可以屬于一個以上的多播組,例如,段"B" 的端點"B3"屬于多播組100和200兩者,因為它出現(xiàn)在表611和612兩者中。根據(jù)示例性 目錄610,由于圖5中示出的操作,多播組100已增加了端點"A4"和"B3"。
[0079] 圖6還圖示由端點用于復(fù)制并且轉(zhuǎn)發(fā)多播通信量的一組多播信息。如圖所示,一 組多播信息620被端點591使用以便參與多播組" 100"和"300"。該組多播信息620包括 多播組"100"的用于識別遠(yuǎn)程段中的代理的表621、用于識別多播組"100"中的位于本地段 中的其它端點的表622、多播組"300"的用于識別遠(yuǎn)程段中的代理的表623和用于識別多播 組"300"中的位于本地段中的其它端點的表624。在一些實施例中,由端點591使用的多播 信息620由端點591自己保持。在一些實施例中,多播信息由網(wǎng)絡(luò)中的另一實體保持。在 一些實施例中,端點591存儲多播信息。
[0080] 因此,當(dāng)端點591(被識別為網(wǎng)絡(luò)500的段X中的端點XN,圖5中未示出)需要將 多播數(shù)據(jù)包復(fù)制并且轉(zhuǎn)發(fā)到多播組100時,它使用表622識別位于同一段X內(nèi)的多播組100 中的所有其它端點。同樣地,如果多播數(shù)據(jù)包用于多播組300,則端點591使用表624識別 位于同一段X內(nèi)的多播組300中的所有其它端點。端點591隨后通過多播或單播將數(shù)據(jù)包 發(fā)送到段X中的那些識別的端點中的每個。
[0081] 端點591還使用表622和624識別用于在遠(yuǎn)程段中復(fù)制多播通信量的代理。表 622和624中的每個條目對應(yīng)于遠(yuǎn)程段,并且識別作為用于將多播通信量從端點591復(fù)制到 該遠(yuǎn)程段的代理的端點。值得注意的是,在一些實施例中,對于同一遠(yuǎn)程段,端點可以針對 不同多播組而具有不同代理。例如,對于段B,端點591選擇端點B2作為用于多播組"100" 的代理,而選擇端點B3作為用于多播組"300"的代理。還值得注意的是,在一些實施例中, 端點僅跟蹤遠(yuǎn)程段中的代理,而不保持關(guān)于所有段中的所有端點的信息。還值得注意的是, 在一些實施例中,同一段中的兩個端點可以選擇用于將多播通信量復(fù)制到給定遠(yuǎn)程段的不 同代理。
[0082]在一些實施例中,端點不僅需要詳細(xì)描述網(wǎng)絡(luò)的拓?fù)洌矗h(yuǎn)程段)、基礎(chǔ)物理網(wǎng) 絡(luò)中的交換機(jī)和路由器的信息,還需要發(fā)現(xiàn)并且保持多播組的本地接收者的記錄,以便將 該組的多播包轉(zhuǎn)發(fā)到所有接收者端點。在一些實施例中,使用IGMP來允許端點加入多播組 作為接收者。一些實施例使用以IGMP探聽為特征的交換機(jī)從接收到的IGMP消息了解多播 組成員。在一些實施例中,路由器(或具有層3能力的交換機(jī))用作IGMP查詢者,該IGMP 查詢者定期發(fā)送IGMP查詢消息以請求接收者端點或下游交換機(jī)/路由器報告多播組成員 信息。在一些實施例中,路由器運行多播路由協(xié)議以交換多播成員信息,并且定義跨越層3 網(wǎng)絡(luò)的多播包的傳送路徑。一些實施例使用諸如P頂(協(xié)議無關(guān)多播)、DVMRP或MOSPF的 協(xié)議。
[0083]在一些實施例中,交換機(jī)支持IGMP探聽,而路由器不支持多播路由。在這些實施 例中的一些實施例中,在段中可能不存在IGMP查詢者。在這種情況下,即使每個接收者端 點從未接收到IGMP查詢,每個接收者端點也可定期將IGMP報告發(fā)送給它加入的多播組的 物理網(wǎng)絡(luò),以使交換機(jī)中的多播轉(zhuǎn)發(fā)條目保持有效。
[0084]在一些實施例中,多播島形成樹形拓?fù)洌⑶覙渲械拿總€路由器(或?qū)?交換機(jī)) 通過IGMP和代理IGMP從其下游接口到其上游節(jié)點查詢并且探聽多播成員。在這些實施例 中的一些實施例中,多播路由協(xié)議未在不同段之間運行,因此不能跨越段對多播通信量進(jìn) 行路由。一些實施例僅在整個IP網(wǎng)絡(luò)的一部分(在一些單獨的段中被隔離)中運行諸如 P頂?shù)亩嗖ヂ酚蓞f(xié)議。
[0085] III.代理選擇和負(fù)荷均衡
[0086] 如上所述,在一些實施例中,發(fā)送者端點需要在每個遠(yuǎn)程接收段中選擇代理以復(fù) 制多播包。每個發(fā)送者端點可以基于不同策略獨立地做出代理選擇。例如,在一些實施例 中,發(fā)送者端點針對所有多播通信量在每個段中選擇固定代理。替選地,在一些實施例中, 發(fā)送者端點在每個段中按照多播組選擇固定代理。在一些其它實施例中,發(fā)送者在每個段 中按照多播流(例如對于m)P,由〈源ip,目的地ip,協(xié)議〉或〈源ip,目的地ip,源端口, 目的地端口〉標(biāo)識的多播流)選擇固定代理。
[0087]在一些實施例中,代理選擇的這些不同方法能夠在段的不同端點之間均衡網(wǎng)絡(luò)通 信量負(fù)荷。在一些實施例中,發(fā)送者端點使用來自發(fā)送者端點已選擇的代理的"心跳"通信 來檢測代理故障。一些實施例通過單獨的控制平面實現(xiàn)方式來檢測端點故障。
[0088] 在一些實施例中,發(fā)送者可以將遠(yuǎn)程段中的任何端點選擇為代理。在這些實施例 中的一些實施例中,端點針對每個特定多播組選擇遠(yuǎn)程段中的接收者端點之一。通過這 樣操作,具有這樣的優(yōu)點:使一個多播組對其它多播組和其它類型的網(wǎng)絡(luò)數(shù)據(jù)通信量的影 響最小化(因為這使得端點不太可能必須處理該端點不是其接收者的多播組的多播通信 量)。其還具有這樣的優(yōu)點:使對物理網(wǎng)絡(luò)的多播轉(zhuǎn)發(fā)狀態(tài)的干擾最小化。在一些實施例 中,代理的選擇由控制平面實現(xiàn)方式(即,中央控制器,例如550)來確定,在一些實施例中, 控制平面實現(xiàn)方式可選擇不提供關(guān)于遠(yuǎn)程段中的所有端點的信息。在這些實施例中的一些 實施例中,中央控制器將具體代理分派給每個端點,而不是讓每個端點自己決定。
[0089] 不同的實施例以不同方式選擇代理。圖7a圖示由各個端點執(zhí)行的分布式處理,而 圖7b圖示由中央控制器執(zhí)行的集中式處理。對于一些實施例,圖7a概念性地圖示由端點 為了在遠(yuǎn)程段中選擇多播代理而執(zhí)行的處理701。當(dāng)端點接收到(在710)關(guān)于這個端點所 屬的所有多播組的成員的更新時,該處理開始。在一些實施例中,端點從中央控制器接收更 新的信息,如以上參照圖5所討論的。
[0090] 該處理隨后更新(在720)可用作每個遠(yuǎn)程段的代理的端點的列表或池。在一些 實施例中,潛在的代理的這個列表或池基于從中央控制器接收到的信息。在一些實施例中, 這個列表基于這個端點和其它端點之間的信息(例如,心跳)的交換。
[0091] 接下來,該處理針對每個多播組選擇(在730)每個遠(yuǎn)程段的代理。在一些實施例 中,以均衡遠(yuǎn)程段中的網(wǎng)絡(luò)通信量負(fù)荷的方式來執(zhí)行這個選擇處理。在一些實施例中,通過 針對每個多播組隨機(jī)地從池中選擇端點來實現(xiàn)這一點。一些實施例通過有意地避開已經(jīng)繁 忙(例如因為其它多播組的多播通信量或其它類型的網(wǎng)絡(luò)通信量)的端點來智能地執(zhí)行代 理選擇。
[0092] 該處理隨后監(jiān)測(在740)被選擇為代理的端點,并且確定(在745)是否存在代 理故障(例如,通過心跳)。如果存在代理故障,則處理701返回到720以通過從池中去除 發(fā)生故障的端點來更新可用作代理的端點的列表并且選擇替換代理。否則,該處理返回到 740以繼續(xù)監(jiān)測所選擇的代理。
[0093] 圖7b概念性地圖示針對一些實施例的由中央控制器(例如,550)執(zhí)行的代理選擇 的處理702。當(dāng)中央控制器從一個段中的至少一個端點接收到(在760)更新的信息時,該 處理702開始。
[0094] 該處理隨后確定(在770)代理的分派是否需要更新。當(dāng)存在剛剛加入多播組(因 此,可用作代理)的端點時或者當(dāng)端點已發(fā)生故障時,一些實施例決定進(jìn)行新代理分派。網(wǎng) 絡(luò)中的其它事件也可以使該處理進(jìn)行新代理分派,例如當(dāng)檢測到由于通信量負(fù)荷的不均衡 導(dǎo)致的性能劣化時。如果需要更新代理的分派,則該處理前進(jìn)至780。否則,該處理702結(jié) 束。
[0095] 在780,該處理針對一個多播組的一個段的至少一個端點進(jìn)行新代理分派。如由端 點執(zhí)行的代理選擇的情況一樣,在一些實施例中,集中執(zhí)行的代理選擇也為了負(fù)荷均衡而 使用從可用端點的池中的隨機(jī)選擇。一些實施例通過有意地避開已經(jīng)繁忙(例如因為其它 多播組的多播通信量或其它類型的網(wǎng)絡(luò)通信量)的端點來智能地執(zhí)行代理選擇。在進(jìn)行新 代理分派之后,該處理702結(jié)束。
[0096]IV.網(wǎng)絡(luò)虛擬化
[0097] 在一些實施例中,如上所述的多播復(fù)制方法用于實現(xiàn)基于疊加的網(wǎng)絡(luò)虛擬化解決 方案,例如VXLAN。在疊加網(wǎng)絡(luò)中,可在物理網(wǎng)絡(luò)上面創(chuàng)建邏輯層2網(wǎng)絡(luò),并且可在加入同一 邏輯層2網(wǎng)絡(luò)的端點之間建立全混亂層2隧道。在一些實施例中,來自邏輯層2網(wǎng)絡(luò)中的 一個隧道端點的BUM包被復(fù)制到邏輯網(wǎng)絡(luò)的所有其它成員端點。
[0098] 在一些實施例中,VM是邏輯層2網(wǎng)絡(luò)的消費者,并且超級監(jiān)督者是隧道端點。這 些實施例中的一些實施例將多播復(fù)制操作的范圍(即,多播組)映射到邏輯層2網(wǎng)絡(luò),并且 將多播端點映射到隧道端點。如此,邏輯網(wǎng)絡(luò)中的BUM包復(fù)制被實現(xiàn)為物理網(wǎng)絡(luò)中的多播 組的多播復(fù)制。換句話說,在這些實施例中,邏輯網(wǎng)絡(luò)的復(fù)制范圍被映射為僅包括多播組的 接收者端點。在一些實施例中,超級監(jiān)督者包括受管理的網(wǎng)絡(luò)交換機(jī),該受管理的網(wǎng)絡(luò)交換 機(jī)的轉(zhuǎn)發(fā)操作由控制器管理。
[0099] 圖8圖示物理網(wǎng)絡(luò)805上的邏輯網(wǎng)絡(luò)800的網(wǎng)絡(luò)虛擬化。邏輯網(wǎng)絡(luò)800用于 VM811-819之間的數(shù)據(jù)通信,VM811-819經(jīng)由運行在主機(jī)機(jī)器821-825上的超級監(jiān)督者而在 主機(jī)機(jī)器821-825上運行。主機(jī)機(jī)器以可通信方式連接到物理網(wǎng)絡(luò)805。
[0100] 在一些實施例中,物理網(wǎng)絡(luò)805類似于圖1的網(wǎng)絡(luò)100。換句話說,物理網(wǎng)絡(luò)805 可包括一個或多個網(wǎng)絡(luò)段,并且主機(jī)機(jī)器(或在這些主機(jī)機(jī)器上運行的超級監(jiān)督者)是連 接到網(wǎng)絡(luò)的不同段的端點。無論是通過使用由物理網(wǎng)絡(luò)的一些部分(例如,多播島)提供 的內(nèi)置多播能力,還是通過執(zhí)行跨越該網(wǎng)絡(luò)的不支持多播的部分(例如,數(shù)據(jù)中心和提供 商網(wǎng)絡(luò))的單播,該物理網(wǎng)絡(luò)能夠支持多播通信量。物理網(wǎng)絡(luò)還可以經(jīng)由網(wǎng)關(guān)860與外部 網(wǎng)絡(luò)870通信。
[0101] 通過封裝由VM為了在物理網(wǎng)絡(luò)中傳輸而產(chǎn)生的數(shù)據(jù)包來實現(xiàn)圖8的網(wǎng)絡(luò)虛擬化。 如圖所示,在主機(jī)機(jī)器821上運行的VM812將數(shù)據(jù)包880發(fā)送給在主機(jī)機(jī)器824上運行的 VM815。主機(jī)機(jī)器821基于數(shù)據(jù)包880創(chuàng)建封裝的包890,并且物理網(wǎng)絡(luò)805將封裝的包890 傳送到主機(jī)機(jī)器824。主機(jī)機(jī)器824又對接收的包890進(jìn)行解封裝并且將解封裝的包880 傳送到目的地VM815。
[0102] 在一些實施例中,根據(jù)網(wǎng)絡(luò)虛擬化標(biāo)準(zhǔn)(例如,VXLAN)創(chuàng)建封裝的數(shù)據(jù)包890。圖 8圖示根據(jù)VXLAN的數(shù)據(jù)包890的示例性封裝格式895。VXLAN是可以支持物理層3網(wǎng)絡(luò) 上的大量邏輯層2網(wǎng)絡(luò)的快速供應(yīng)的疊加網(wǎng)絡(luò)技術(shù)。VXLAN基于UDP上MAC解決方案。在 物理連線上使用Μ)Ρ來封裝VXLAN邏輯網(wǎng)絡(luò)的以太網(wǎng)幀。在VXLAN頭中,存在唯一地標(biāo)識 VXLAN邏輯層2網(wǎng)絡(luò)的24比特VNI(VXLAN網(wǎng)絡(luò)標(biāo)識符),因此支持多達(dá)16M個邏輯網(wǎng)絡(luò)。
[0103]VXLAN封裝由VTEP(VXLAN隧道端點)來實現(xiàn),VTEP是超級監(jiān)督者(或超級監(jiān)督 者上的vSwitch),而VM是VXLAN網(wǎng)絡(luò)的用戶。當(dāng)一個VTEP上的VM將以太網(wǎng)幀發(fā)送到位 于同一VXLAN網(wǎng)絡(luò)中但位于不同VTEP上的另一VM時,源VTEP將會在把幀注入到物理網(wǎng)絡(luò) 之前,使用源VTEP的IP地址作為外頭部中的源IP和VXLAN網(wǎng)絡(luò)的VNI來封裝該幀。目的 地VTEP對包進(jìn)行解封裝并且僅將原始內(nèi)幀轉(zhuǎn)發(fā)到目的地VM。對于普通的單播幀(其目的 地MAC對源VTEP來說是已知的),目的地VTEP的IP地址將會用作外目的地IP。VTEP應(yīng) 該通常通過通信量學(xué)習(xí)或某種控制平面實現(xiàn)方式來保持其VM所連接到的VXLAN網(wǎng)絡(luò)的VM MAC-VTEPIP映射。
[0104] 對于BUM通信量,VXLAN利用IP多播。每個VXLAN網(wǎng)絡(luò)被分派物理多播組。使用 VXLAN網(wǎng)絡(luò)的多播IP作為外目的地IP來封裝BUM幀。VTEP應(yīng)該通常通過將IGMP報告發(fā) 送到物理網(wǎng)絡(luò)來加入它上面的VXLAN網(wǎng)絡(luò)的多播組。
[0105] 對于一些實施例,圖9圖示能夠執(zhí)行跨越多個網(wǎng)絡(luò)段的多播復(fù)制/轉(zhuǎn)發(fā)的物理網(wǎng) 絡(luò)900上的多個邏輯網(wǎng)絡(luò)(例如,VXLAN邏輯網(wǎng)絡(luò))的實現(xiàn)方式。邏輯網(wǎng)絡(luò)用于在主機(jī)機(jī) 器中的超級監(jiān)督者上運行的VM之間的數(shù)據(jù)通信。這些超級監(jiān)督者是物理網(wǎng)絡(luò)900的端點, 并且用作邏輯網(wǎng)絡(luò)的隧道端點。
[0106] 物理網(wǎng)絡(luò)900具有至少三個段910、920和930。段910包括超級監(jiān)督者941-943(超 級監(jiān)督者A、B、C)。段920包括超級監(jiān)督者944-946(超級監(jiān)督者D、E、F)。段930包括超 級監(jiān)督者947-949 (超級監(jiān)督者G、H、I)。超級監(jiān)督者A運行VM911-913,超級監(jiān)督者B運行 VM914-916,超級監(jiān)督者C運行VM917-919,超級監(jiān)督者D運行VM921-923,超級監(jiān)督者E運 行VM924-926,超級監(jiān)督者F運行VM927-929,超級監(jiān)督者G運行VM931-933,超級監(jiān)督者H 運行VM934-936,并且超級監(jiān)督者I運行VM937-939。
[0107] 網(wǎng)絡(luò)虛擬化允許物理網(wǎng)絡(luò)900同時支持多個邏輯網(wǎng)絡(luò)901-909。VM913、914、919、 921、923、925、928、929、932、934、935 和 937 位于邏輯網(wǎng)絡(luò) 901 (邏輯網(wǎng)絡(luò)"1")中。VM912、 916、918、924、927、931 和 938 位于邏輯網(wǎng)絡(luò) 902(邏輯網(wǎng)絡(luò)"2")中。VM911、915、917、922、 926、933、936和939位于邏輯網(wǎng)絡(luò)909(邏輯網(wǎng)絡(luò)"η")中。邏輯網(wǎng)絡(luò)901-909中的每個被 映射到物理網(wǎng)絡(luò)900中的多播組。這些映射的多播組中的每個用于處理對應(yīng)邏輯網(wǎng)絡(luò)的 BUM通信量。
[0108] 在一些實施例中,超級監(jiān)督者是物理網(wǎng)絡(luò)900的端點。在這些實施例中的一些實 施例中,超級監(jiān)督者執(zhí)行復(fù)制并且轉(zhuǎn)發(fā)多播包的任務(wù),并且超級監(jiān)督者代表其它超級監(jiān)督 者在不同網(wǎng)絡(luò)段中用作各種多播組(即,邏輯網(wǎng)絡(luò))的代理。在一些實施例中,作為網(wǎng)絡(luò) 900的端點的超級監(jiān)督者還加入多播組以便建立邏輯網(wǎng)絡(luò)。在這些實施例中的一些實施例 中,超級監(jiān)督者通過向中央控制器實體進(jìn)行報告而加入多播組,接收多播組成員信息,并且 選擇用于將多播包復(fù)制并且轉(zhuǎn)發(fā)到不同段的代理。在一些實施例中,當(dāng)超級監(jiān)督者的VM中 的至少一個想要連接到使用特定多播組的邏輯網(wǎng)絡(luò)時,超級監(jiān)督者加入該特定多播組。
[0109] 如圖所示,對于邏輯網(wǎng)絡(luò)901 (邏輯網(wǎng)絡(luò)"1"),超級監(jiān)督者B已被超級監(jiān)督者D選 擇為段910的代理,超級監(jiān)督者D已被超級監(jiān)督者A選擇為段920的代理,并且超級監(jiān)督 者H和I已分別被超級監(jiān)督者A和D選擇為段930的代理。對于邏輯網(wǎng)絡(luò)902 (邏輯網(wǎng)絡(luò) "2"),超級監(jiān)督者A已被超級監(jiān)督者D選擇為段910的代理,超級監(jiān)督者E已被超級監(jiān)督者 A選擇為段920的代理,超級監(jiān)督者G和I已分別被超級監(jiān)督者A和D選擇為段930的代 理。對于邏輯網(wǎng)絡(luò)909 (邏輯網(wǎng)絡(luò)"η"),超級監(jiān)督者C已被超級監(jiān)督者D選擇為段910的 代理,超級監(jiān)督者D已被超級監(jiān)督者A選擇為段920的代理,并且超級監(jiān)督者G和H已分別 被超級監(jiān)督者D和A選擇為段930的代理。
[0110] 值得注意的是,在一些實施例中,超級監(jiān)督者可以支持屬于不同邏輯網(wǎng)絡(luò)的多個VM(例如,超級監(jiān)督者Α,它操作邏輯網(wǎng)絡(luò)1、2和η中的VM)。另外,超級監(jiān)督者可以是同一 多播組或不同多播組中的多個超級監(jiān)督者的代理,但在一些實施例中,代理選擇處理將會 試圖以均衡網(wǎng)絡(luò)通信量負(fù)荷的方式來分派代理。
[0111]圖10圖示通過在物理網(wǎng)絡(luò)中使用多播代理實現(xiàn)的邏輯網(wǎng)絡(luò)中的BUM包的傳輸。該 圖示出在邏輯網(wǎng)絡(luò)901上從VM913到VM925的廣播包1010的傳送。如以上參照圖9所討 論的,在物理網(wǎng)絡(luò)900上實現(xiàn)邏輯網(wǎng)絡(luò)901 (即,邏輯網(wǎng)絡(luò)1),其中物理網(wǎng)絡(luò)900包括網(wǎng)絡(luò)段 910和920。運行VM913的超級監(jiān)督者A(941)位于網(wǎng)絡(luò)段910上。運行VM925的超級監(jiān)督 者E(945)位于網(wǎng)絡(luò)段920上。由于VM913運行在與運行VM925的超級監(jiān)督者不同的段上 的超級監(jiān)督者上,所以邏輯網(wǎng)絡(luò)901將通過使用多播代理把包1010發(fā)送到它的目的地。如 圖9和圖10中所示,超級監(jiān)督者A已針對邏輯網(wǎng)絡(luò)901 (及其對應(yīng)的多播組)選擇超級監(jiān) 督者D(944)作為它在段920中的代理。
[0112] 圖10以七個操作示出從VM913到VM925的BUM包的傳輸。在第一操作(標(biāo)記為 "1")期間,VM913產(chǎn)生針對邏輯網(wǎng)絡(luò)901的所有成員的廣播包1010。這種廣播包的例子是 針對邏輯網(wǎng)絡(luò)上的其它VM的MAC地址的ARP查詢。在一些實施例中,這個原始包包括分派 給VM913的MAC地址。
[0113]在第二操作(標(biāo)記為"2")期間,VM超級監(jiān)督者將廣播包1010封裝為封裝的包 1020。在一些實施例中,這個封裝包括由超級監(jiān)督者A附加的邏輯網(wǎng)絡(luò)的標(biāo)識符。在一些實 施例中,超級監(jiān)督者A還附加它自己的IP地址作為封裝的包的一部分。在一些實施例中, 這個封裝具有由網(wǎng)絡(luò)虛擬化協(xié)議(例如,VXLAN)指定的格式,如以上參照圖8所討論的。
[0114]在第三操作(標(biāo)記為"3")期間,超級監(jiān)督者A將針對邏輯網(wǎng)絡(luò)901封裝的包復(fù)制 并且轉(zhuǎn)發(fā)到在本地網(wǎng)絡(luò)段910的超級監(jiān)督者上運行的其它VM。例如,在超級監(jiān)督者B(942) 運行的VM914也位于網(wǎng)絡(luò)段910上,因此超級監(jiān)督者A將封裝的包1020復(fù)制并且轉(zhuǎn)發(fā)到超 級監(jiān)督者B。在第四操作(標(biāo)記為"4")中,超級監(jiān)督者B又對包1020進(jìn)行解封裝并且將 原始廣播包傳送到VM914。在一些實施例中,發(fā)送者端點(例如,超級監(jiān)督者A)利用由網(wǎng)絡(luò) 段910提供的IP多播能力,并且通過本地多播將封裝的包同時復(fù)制到多個接收者。在一些 實施例中,當(dāng)多播轉(zhuǎn)發(fā)在基礎(chǔ)物理網(wǎng)絡(luò)中不可用時,超級監(jiān)督者使用單播在段內(nèi)實現(xiàn)多播 轉(zhuǎn)發(fā)。
[0115]在第五操作(標(biāo)記為"5")期間,超級監(jiān)督者A將封裝的包1020復(fù)制并且轉(zhuǎn)發(fā)到 遠(yuǎn)程段。具體地講,對于遠(yuǎn)程段920,超級監(jiān)督者A將包1020轉(zhuǎn)發(fā)到選擇的代理超級監(jiān)督者 D(944)。在第六操作(標(biāo)記為"6")中,代理超級監(jiān)督者D又將它從超級監(jiān)督者A接收到的 包復(fù)制并且轉(zhuǎn)發(fā)到段920中的屬于該同一多播組(即,邏輯網(wǎng)絡(luò)901)的其它超級監(jiān)督者。 這些接收者之一是超級監(jiān)督者E(945)。在一些實施例中,代理端點(例如,超級監(jiān)督者D) 利用由網(wǎng)絡(luò)段910提供的IP多播能力,并且通過本地多播將封裝的包同時復(fù)制到多個接收 者。在一些實施例中,當(dāng)多播轉(zhuǎn)發(fā)在基礎(chǔ)物理網(wǎng)絡(luò)中不可用時,代理超級監(jiān)督者使用單播在 它的段內(nèi)實現(xiàn)多播轉(zhuǎn)發(fā)。
[0116]在第七操作(標(biāo)記為"7")期間,超級監(jiān)督者E對接收到的包進(jìn)行解封裝并且將解 封裝的包1010發(fā)送到VM925。在這個例子中,代理超級監(jiān)督者D具有它自己的屬于該同一 邏輯網(wǎng)絡(luò)的VM921,并且也將接收到解封裝的包。然而,在一些實施例中,針對特定多播組/ 邏輯網(wǎng)絡(luò)被選擇為代理的端點可能不是超級監(jiān)督者,或者可能是不具有在該特定邏輯網(wǎng)絡(luò) 中操作的VM的超級監(jiān)督者。在這些實例中,代理自己將不會消費接收到的多播通信量。
[0117]V.電子系統(tǒng)
[0118]許多上述特征和應(yīng)用被實現(xiàn)為軟件處理,所述軟件處理被指定為記錄在計算機(jī)可 讀存儲介質(zhì)(也稱為計算機(jī)可讀介質(zhì))上的一組指令。當(dāng)這些指令由一個或多個處理單元 (例如,一個或多個處理器、處理器的核或其它處理單元)執(zhí)行時,它們使處理單元執(zhí)行在 指令中指示的動作。計算機(jī)可讀介質(zhì)的例子包括但不限于CD-ROM、閃存驅(qū)動器、RAM芯片、 硬盤驅(qū)動器、EPROM等。計算機(jī)可讀介質(zhì)不包括以無線方式或經(jīng)由有線連接傳送的載波和 電子信號。
[0119] 在本說明書中,術(shù)語"軟件"旨在包括駐留在只讀存儲器中的固件或存儲在磁存儲 器中的應(yīng)用,其可以被讀取到貯存器中以由處理器處理。此外,在一些實施例中,多個軟件 發(fā)明可以在保持截然不同的軟件發(fā)明的同時被實現(xiàn)為更大程序的子部分。在一些實施例 中,多個軟件發(fā)明還可以被實現(xiàn)為單獨的程序。最后,一起實現(xiàn)這里描述的軟件發(fā)明的單獨 程序的任何組合落在本發(fā)明的范圍內(nèi)。在一些實施例中,當(dāng)軟件程序被安裝以在一個或多 個電子系統(tǒng)上操作時,軟件程序定義執(zhí)行并且運行軟件程序的操作的一個或多個具體機(jī)器 實現(xiàn)方式。
[0120] 圖11概念性地圖示用來實現(xiàn)本發(fā)明的一些實施例的電子系統(tǒng)1100。電子系統(tǒng) 1100可以用來執(zhí)行上述控制應(yīng)用、虛擬化應(yīng)用或操作系統(tǒng)應(yīng)用中的任何應(yīng)用。電子系統(tǒng) 1100可以是計算機(jī)(例如,桌上型計算機(jī)、個人計算機(jī)、平板計算機(jī)、服務(wù)器計算機(jī)、大型計 算機(jī)、刀片計算機(jī)等)、電話、PDA或任何其它種類的電子裝置。這種電子系統(tǒng)包括各種類型 的計算機(jī)可讀介質(zhì)和用于各種其它類型的計算機(jī)可讀介質(zhì)的接口。電子系統(tǒng)1100包括總 線1105、處理單元1110、系統(tǒng)貯存器1125、只讀存儲器1130、永久存儲裝置1135、輸入裝置 1140和輸出裝置1145。
[0121] 總線1105共同地表示以可通信方式連接電子系統(tǒng)1100的許多內(nèi)部裝置的所有系 統(tǒng)總線、外圍總線和芯片組總線。例如,總線1105以可通信方式連接處理單元1110與只讀 存儲器1130、系統(tǒng)貯存器1125和永久存儲裝置1135。
[0122] 從這些各種貯存器單元,處理單元1110檢索要執(zhí)行的指令和要處理的數(shù)據(jù)以便 執(zhí)行本發(fā)明的處理。在不同實施例中,處理單元可以是單處理器或多核處理器。
[0123] 只讀存儲器(ROM) 1130存儲由電子系統(tǒng)的處理單元1110和其它模塊所需的靜態(tài) 數(shù)據(jù)和指令。另一方面,永久存儲裝置1135是讀寫貯存器裝置。這個裝置是即使當(dāng)電子系 統(tǒng)1100關(guān)閉時也存儲指令和數(shù)據(jù)的非易失性貯存器單元。本發(fā)明的一些實施例使用大容 量存儲裝置(例如,磁盤或光盤及其對應(yīng)的盤驅(qū)動器)作為永久存儲裝置1135。
[0124] 其它實施例使用可移動存儲裝置(例如,軟盤、閃存驅(qū)動器等)作為永久存儲裝 置。如永久存儲裝置1135-樣,系統(tǒng)貯存器1125是讀寫貯存器裝置。然而,與存儲裝置 1135不同,系統(tǒng)貯存器是易失性讀寫貯存器,例如隨機(jī)存取貯存器。系統(tǒng)貯存器存儲處理 器在運行時需要的一些指令和數(shù)據(jù)。在一些實施例中,本發(fā)明的處理被存儲在系統(tǒng)貯存器 1125、永久存儲裝置1135和/或只讀存儲器1130中。從這些各種貯存器單元,處理單元 1110檢索要執(zhí)行的指令和要處理的數(shù)據(jù)以便執(zhí)行一些實施例的處理。
[0125] 總線1105還連接到輸入裝置1140和輸出裝置1145。輸入裝置使得用戶能夠?qū)⑿?息和選擇命令傳送到電子系統(tǒng)。輸入裝置1140包括字母數(shù)字鍵盤和指點裝置(也被稱為 "光標(biāo)控制裝置")。輸出裝置1145顯示由電子系統(tǒng)產(chǎn)生的圖像。輸出裝置包括打印機(jī)和顯 示裝置,例如陰極射線管(CRT)或液晶顯示器(LCD)。一些實施例包括既用作輸入裝置又用 作輸出裝置的裝置,例如觸摸屏。
[0126] 最后,如圖11中所示,總線1105還通過網(wǎng)絡(luò)適配器(未示出)將電子系統(tǒng)1100耦 合到網(wǎng)絡(luò)1165。以這種方式,計算機(jī)可以是計算機(jī)的網(wǎng)絡(luò)的一部分(例如,局域網(wǎng)("LAN")、 廣域網(wǎng)("WAN")或內(nèi)聯(lián)網(wǎng)或網(wǎng)絡(luò)中的網(wǎng)絡(luò)(例如,因特網(wǎng)))??山Y(jié)合本發(fā)明使用電子系 統(tǒng)1100的任何部件或全部部件。
[0127] 一些實施例包括電子部件,例如微處理器、將計算機(jī)程序指令存儲在機(jī)器可讀介 質(zhì)或計算機(jī)可讀介質(zhì)(替選地,被稱為計算機(jī)可讀存儲介質(zhì)、機(jī)器可讀介質(zhì)或機(jī)器可讀存 儲介質(zhì))中的存儲器和貯存器。這種計算機(jī)可讀介質(zhì)的一些例子包括ram、rom、只讀壓縮盤 (CD-ROM)、可記錄壓縮盤(CD-R)、可重寫壓縮盤(CD-RW)、只讀數(shù)字通用盤(例如,DVD-ROM、 雙層DVD-ROM)、各種可記錄/可重寫DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、閃存(例 如,SD卡、迷你SD卡、微SD卡等)、磁和/或固態(tài)硬盤驅(qū)動器、只讀可記錄Blu-Ray?盤、 超密度光盤、任何其它光學(xué)或磁介質(zhì)和軟盤。計算機(jī)可讀介質(zhì)可存儲計算機(jī)程序,該計算機(jī) 程序可由至少一個處理單元執(zhí)行并且包括用于執(zhí)行各種操作的指令集。計算機(jī)程序或計算 機(jī)代碼的例子包括諸如由編譯器產(chǎn)生的機(jī)器代碼和包括由計算機(jī)、電子部件或微處理器使 用解釋器執(zhí)行的高級代碼的文件。
[0128] 盡管以上討論主要參照執(zhí)行軟件的微處理器或多核處理器,但由一個或多個集成 電路(例如,專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA))執(zhí)行一些實施例。在一些 實施例中,這種集成電路執(zhí)行存儲在該電路本身上的指令。
[0129] 如在本說明書中所使用的,術(shù)語"計算機(jī)"、"服務(wù)器"、"處理器"和"貯存器"全都 表示電子或其它技術(shù)裝置。這些術(shù)語不包括人或一組人。為了說明書的目的,術(shù)語"顯示" 表示在電子裝置上顯示。如在本說明書中所使用的,術(shù)語"計算機(jī)可讀介質(zhì)"和"機(jī)器可讀 介質(zhì)"完全局限于以可由計算機(jī)讀取的形式存儲信息的有形、物理物體。這些術(shù)語不包括任 何無線信號、有線下載信號和任何其它短暫信號。
[0130] 盡管已參照許多具體細(xì)節(jié)描述了本發(fā)明,但本領(lǐng)域普通技術(shù)人員將會意識到,在 不偏離本發(fā)明的精神的情況下,本發(fā)明可以被實現(xiàn)為其它具體形式。另外,許多附圖(包括 圖4和圖7a_b)概念性地圖示各處理。這些處理的具體操作可不按照所示出并且描述的準(zhǔn) 確次序來執(zhí)行??刹辉谝幌盗羞B續(xù)操作中執(zhí)行該具體操作,并且可在不同實施例中執(zhí)行不 同的具體操作。另外,可以使用幾個子處理來實現(xiàn)該處理,或者該處理可被實現(xiàn)為更大的宏 處理的一部分。因此,本領(lǐng)域普通技術(shù)人員將會理解,本發(fā)明不受前面的說明性細(xì)節(jié)限制, 而是由所附權(quán)利要求來限定。
【權(quán)利要求】
1. 一種在網(wǎng)絡(luò)中執(zhí)行多播的方法,該方法包括: 在網(wǎng)絡(luò)的特定端點接收消息,該消息指定特定多播組; 將消息復(fù)制到屬于該特定多播組的第一組端點,其中第一組端點位于包括該特定端點 的網(wǎng)絡(luò)的本地段中;以及 通過將消息復(fù)制到一組代理來將消息復(fù)制到屬于該特定多播組的第二組端點,每個代 理用于將消息轉(zhuǎn)發(fā)到網(wǎng)絡(luò)的遠(yuǎn)程段中的屬于該特定多播組的一組端點。
2. 如權(quán)利要求1所述的方法,還包括:選擇每個遠(yuǎn)程段的代理。
3. 如權(quán)利要求2所述的方法,其中從遠(yuǎn)程段中的端點的池中隨機(jī)選擇所述代理。
4. 如權(quán)利要求2所述的方法,其中由中央控制器選擇所述代理。
5. 如權(quán)利要求2所述的方法,其中基于端點網(wǎng)絡(luò)負(fù)荷選擇所述代理。
6. 如權(quán)利要求1所述的方法,其中將消息復(fù)制到第一組端點包括:通過單播將復(fù)制的 消息轉(zhuǎn)發(fā)到第一組端點中的每個端點。
7. 如權(quán)利要求1所述的方法,其中將消息復(fù)制到第一組端點包括:通過多播將復(fù)制的 消息轉(zhuǎn)發(fā)到第一組端點中的所有端點。
8. 如權(quán)利要求1所述的方法,其中所述網(wǎng)絡(luò)不支持不同段之間的多播通信量。
9. 如權(quán)利要求8所述的方法,其中所述網(wǎng)絡(luò)中的至少一個段允許消息一次被復(fù)制到多 個接收者。
10. 如權(quán)利要求8所述的方法,其中所述網(wǎng)絡(luò)中的至少一個段不允許消息一次被復(fù)制 到多個接收者。
11. 如權(quán)利要求8所述的方法,其中所述段中的至少一個段是多播島。
12. 如權(quán)利要求8所述的方法,其中遠(yuǎn)程段的代理通過多播將消息復(fù)制到遠(yuǎn)程段中的 屬于該特定多播組的一組端點。
13. -種電子裝置,包括: 用于從網(wǎng)絡(luò)的遠(yuǎn)程段的特定端點接收特定多播組的多播數(shù)據(jù)包的模塊;和 用于將接收的數(shù)據(jù)包復(fù)制并且轉(zhuǎn)發(fā)到包括該電子裝置的網(wǎng)絡(luò)的本地段中的多個端點, 其中所述網(wǎng)絡(luò)不支持遠(yuǎn)程段和本地段之間的多播通信量。
14. 如權(quán)利要求13所述的電子裝置,還包括:用于接收該特定多播組的成員信息的模 塊。
15. 如權(quán)利要求13所述的電子裝置,還包括:用于將該電子裝置添加到該特定多播組 的模塊。
16. 如權(quán)利要求13所述的電子裝置,其中所述遠(yuǎn)程段的特定端點將該電子裝置指定為 用于在本地段中復(fù)制并且轉(zhuǎn)發(fā)該特定多播組的多播包的代理。
17. 如權(quán)利要求13所述的電子裝置,其中用于復(fù)制并且轉(zhuǎn)發(fā)接收的包的模塊通過多播 將接收的包發(fā)送給本地段中的所述多個端點。
18. 如權(quán)利要求17所述的電子裝置,其中所述本地段是支持物理網(wǎng)絡(luò)的多播的多播 島。
19. 如權(quán)利要求13所述的電子裝置,其中用于復(fù)制并且轉(zhuǎn)發(fā)接收的包的模塊通過單播 將接收的包發(fā)送給本地段中的所述多個端點中的每個端點。
20. 如權(quán)利要求19所述的電子裝置,其中所述本地段不支持物理網(wǎng)絡(luò)的多播。
21. 如權(quán)利要求13所述的電子裝置,還包括:超級監(jiān)督者,用于操作至少一個虛擬機(jī)。
22. 如權(quán)利要求21所述的電子裝置,其中所述超級監(jiān)督者是本地段的端點。
23. -種方法,包括: 提供用于操作一組虛擬機(jī)的超級監(jiān)督者; 將所述一組虛擬機(jī)中的特定虛擬機(jī)連接到覆蓋物理網(wǎng)絡(luò)的邏輯網(wǎng)絡(luò),邏輯網(wǎng)絡(luò)被分派 物理網(wǎng)絡(luò)中的多播組;以及 將數(shù)據(jù)包從該特定虛擬機(jī)發(fā)送到邏輯網(wǎng)絡(luò)中的多個接收者,其中所述接收者中的至少 一個接收者位于物理網(wǎng)絡(luò)的與該虛擬機(jī)不同的遠(yuǎn)程段中,其中遠(yuǎn)程段包括用于將數(shù)據(jù)包復(fù) 制并且轉(zhuǎn)發(fā)到遠(yuǎn)程段中的接收者的代理。
24. 如權(quán)利要求23所述的方法,其中所述物理網(wǎng)絡(luò)不允許不同段之間的多播通信量。
25. 如權(quán)利要求23所述的方法,其中所述遠(yuǎn)程段允許物理網(wǎng)絡(luò)的多播通信量。
26. 如權(quán)利要求23所述的方法,其中所述邏輯網(wǎng)絡(luò)是覆蓋物理網(wǎng)絡(luò)的多個邏輯網(wǎng)絡(luò)之 〇
27. 如權(quán)利要求26所述的方法,其中每個邏輯網(wǎng)絡(luò)被分派物理網(wǎng)絡(luò)中的不同多播組。
28. 如權(quán)利要求23所述的方法,其中所述遠(yuǎn)程段的代理是超級監(jiān)督者。
29. 如權(quán)利要求23所述的方法,其中所述超級監(jiān)督者是邏輯網(wǎng)絡(luò)的隧道端點。
30. 如權(quán)利要求23所述的方法,其中所述超級監(jiān)督者利用邏輯網(wǎng)絡(luò)的標(biāo)識符對數(shù)據(jù)包 進(jìn)行封裝以在物理網(wǎng)絡(luò)中傳輸。
【文檔編號】H04L12/18GK104426681SQ201410194283
【公開日】2015年3月18日 申請日期:2014年5月8日 優(yōu)先權(quán)日:2013年8月24日
【發(fā)明者】沈建軍, A·泰絲莫, R·D·辛格, 王 華, 萬達(dá) 申請人:Nicira股份有限公司