新四季網

虛擬交換機的可擴展性的製作方法

2023-05-20 09:30:41

專利名稱:虛擬交換機的可擴展性的製作方法
虛擬交換機的可擴展性
背景技術:
虛擬機是物理設備的軟體實施方式,其與物理設備類似能夠運行程序。虛擬機通常能夠使用交換機互相進行通信以及與其它物理設備進行通信。虛擬機提供了各種好處,但是也並非不存在問題。一個這樣的問題是會出現開發人員想要實施具有不同功能的交換機的情形。然而,針對每種所期望的功能或功能組合設計新的交換機對於開發人員來說是耗時且麻煩的。

發明內容
提供該發明內容以簡化形式引入以下具體實施方式
部分所進一步描述的概念選擇。該發明內容並非意在標識出所要求保護主題的關鍵特徵或實質性特徵,其也並非意在被用來對所要求保護的主題進行限制。依據一個或多個方面,在計算設備的可擴展虛擬交換機從源接收數據分組。所述可擴展虛擬交換機允許計算設備的一個虛擬機與計算設備的另一個虛擬機進行通信。所述數據分組通過一個或多個擴展被遞送至所述可擴展虛擬交換機,所述可擴展虛擬交換機使用公用協議與所述一個或多個擴展進行通信。在通過一個或多個擴展遞送所述數據分組之後,所述數據分組被提供至所述數據分組的目的地。依據一個或多個方面,在計算設備的可擴展虛擬交換機中包括虛擬交換機小型埠。所述可擴展虛擬交換機允許計算設備的第一虛擬機與計算設備的第二虛擬機進行通信。用於擴展所述可擴充虛擬交換機的功能的一個或多個擴展在所述虛擬交換機小型埠上進行加載。


貫穿附圖使用相同附圖標記來指代相似的特徵。圖1是圖示依據一個或多個實施例的實現虛擬交換機可擴展性的示例系統的框圖。圖2圖示了依據一個或多個實施例的示例可擴展虛擬交換機。圖3是圖示依據一個或多個實施例的用於實現虛擬交換機可擴展性的示例過程的流程圖。圖4是圖示依據一個或多個實施例的用於實現虛擬交換機可擴展性的另一個示例過程的流程圖。圖5圖示了依據一個或多個實施例的能夠被配置為實現虛擬交換機可擴展性的示例計算設備。
具體實施例方式這裡對虛擬交換機可擴展性進行討論。可擴展虛擬交換機允許虛擬機相互通信且任選地經由網絡與其它物理設備進行通信。可擴展虛擬交換機包括可擴展性協議綁定和小型埠驅動器,這允許不同擴展被添加至可擴展虛擬交換機並因此擴充可擴展虛擬交換機的功能。所述擴展在小型埠驅動器上進行加載,這實質上使得所述擴展的壽命取決於所述可擴展虛擬交換機的壽命。圖1是圖示依據一個或多個實施例的實現虛擬交換機可擴展性的示例系統100的框圖。系統100包括耦接到網絡104的計算設備102。網絡104可以是各種不同的網絡,包括網際網路、區域網(LAN)、公用電話網、內聯網、個人區域網(PAN)、存儲域網絡(SAN)、其它公用和/或私有網絡、它們的組合等等。計算設備102可以是各種不同類型的設備。例如,計算設備102可以是臺式計算機、伺服器計算機、膝上或上網本計算機、平板或記事本計算機、移動站點、娛樂裝置、通信耦合至顯示設備、電視機或其它顯示設備的機頂盒、蜂窩或其它無線電話、遊戲機、車載計算機,等等。計算設備102包括物理接口 110、虛擬機管理器112,以及一個或多個虛擬機114(1)、…、11400。物理接口 110是通信組件,諸如有線和/或無線網絡適配器(例如,網絡接口卡(NIC))。虛擬機管理器112對虛擬機114的創建、操作和終止進行管理,包括訪問由物理接口 110為虛擬機114所提供的功能。雖然圖1中圖示了單個物理接口 110,但是應當注意的是,計算設備102可以包括相同和/或不同類型的多個物理接口,並且虛擬機管理器112能夠對針對那些多個物理接口所提供的功能的訪問進行管理。虛擬機管理器112允許在計算設備102上運行一個或多個虛擬機114。在計算設備上能夠運行任意數量的虛擬機。虛擬機是指計算設備(或者其它機器或系統)的軟體實施方式,其與物理計算設備類似能夠運行程序。每個虛擬機114能夠執行作業系統和其它應用,並且每個這樣的作業系統和應用無需了解其是在虛擬機運行。虛擬機管理器112包括虛擬機(VM)控制模塊122、可擴展虛擬交換機124和小型埠驅動器126。虛擬機控制模塊122對虛擬機114的執行進行管理,允許虛擬機運行(啟動)和終止,控制虛擬機從一個計算設備到另一個計算設備(例如,經由網絡104在計算設備102與另一個計算設備之間)的遷移,等等。可擴展虛擬交換機124允許虛擬機114相互通信以及任選地經由物理接 口 110和網絡104與其它物理設備進行通信。如以下更為詳細討論的,可擴展虛擬交換機124是可擴展的,這允許不同擴展被添加至可擴展虛擬交換機124。小型埠驅動器126是提供特定於物理接口 110的操作並且允許可擴展虛擬交換機124與物理接口 110進行通信的接口。雖然在計算設備102中圖示了單個小型埠驅動器126,但是如果計算設備102包括多個物理接口 110,則計算設備102典型地也包括多個小型埠驅動器(對應於每個物理接口 110有一個)。雖然在計算設備102中圖示了單個可擴展虛擬交換機124,但是應當注意的是,計算設備102可以包括任意數量的可擴展虛擬交換機。每個可以允許虛擬機114相互通信和/或經由物理接口 110和/或其它物理接口與其它物理設備進行通信。每個可擴展虛擬交換機能夠具有所加載的不同擴展和/或以不同順序加載的擴展。以下對擴展的加載和排序進行更為詳細的討論。圖2圖示了依據一個或多個實施例的示例可擴展虛擬交換機202。可擴展虛擬交換機202例如可以是圖1的可擴展虛擬交換機124。可擴展虛擬交換機202包括對物理接口的綁定204以及一個或多個交換機埠 206。綁定204是對物理接口的綁定,其作為可擴展虛擬交換機202和物理接口之間的接口進行操作。綁定204典型地經由小型埠驅動器(例如,圖1的小型埠驅動器126)從物理接口接收數據並向其發送數據。數據在這裡是指作為數據分組被傳送。數據分組是指數據加上與所述數據相關聯的各種元數據,諸如數據分組的源的指示(例如,虛擬機的網絡地址或其它標識符,物理設備的網絡地址或其它標識符等),數據分組的目標或目的地的指示(例如,虛擬機的網絡地址或其它標識符,物理設備的網絡地址或其它標識符等),等等。雖然這裡作為使用數據分組被傳送來討論,但是應當注意的是,數據可以使用各種其它數據結構來傳送。每個交換機埠 206是與虛擬機網絡適配器(例如,NIC)的通信連接。虛擬機(例如,圖1的每個虛擬機114)包括VM網絡適配器,其與物理網絡適配器(例如,圖1的物理接口 110)相類似(但是是其軟體實施方式)。VM網絡適配器可以連接或接合至交換機埠206,並且虛擬機任選地可以具有均連接或接合至不同交換機埠 206的多個VM網絡適配器。作業系統以及其它應用能夠像它們使用物理網絡適配器那樣使用VM網絡適配器在虛擬機上執行,向VM網絡適配器發送數據分組以及從其接收數據分組。可擴展虛擬交換機202還包括交換機可擴展性協議綁定210。可擴展性協議綁定210展現出能夠由一個或多個擴展212用來對可擴展虛擬交換機202所提供的功能進行擴充的接口集合。擴展212實質上被插入可擴展虛擬交換機202的數據流路徑,允許數據分組被擴展212所修改。任意數量(y)的擴展212可以被插入可擴展虛擬交換機202的數據流路徑。擴展212能夠提供各種功能,並且無需為了不同擴展212要提供其功能而對可擴展虛擬交換機202進行修改。相反,可擴展虛擬交換機202保持不變但是交換機202所提供的功能可以使用具有不同功能的不同擴展212進行擴充。可擴展虛擬交換機202還包括虛擬交換機小型埠 214。虛擬交換機小型埠 214是呈現給擴展212的接口,就像該接口是傳統的小型埠驅動器(例如,圖1的小型驅動器埠 126)。然而,虛擬交換機小型埠 214是被提供來支持可擴展虛擬交換機202的可擴展性的接口。如以下更為詳細討論的,虛擬交換機小型埠 214所接收的數據分組可以通過擴展212被送回而不是被傳輸至物理接口。由於虛擬交換機小型埠 214被用來支持可擴展虛擬交換機202的可擴展性而不是向和/或從物理接口傳輸數據,所以虛擬交換機小型埠 214還可以被稱作隱藏小型埠或幻影小型埠。當在計算設備上創建(例如,舉例說明)可擴展虛擬交換機202時,VM控制模塊(例如,圖1的VM控制模塊122)允許一個或多個擴展212在虛擬交換機小型埠 214上進行加載。這樣加載的擴展212創建了擴展棧,其與將在傳統小型埠驅動器(例如,圖1的小型埠驅動器126)上加載的網絡棧相類似,區別在於所述擴展棧包括在隱藏小型埠或幻影小型埠上加載的擴展。控制模塊能夠以各種不同的方式來確定加載哪些擴展。通常,作為註冊過程的一部分,諸如從擴展自身或者另一個組件或模塊接收要令加載擴展的請求。VM控制模塊能夠批准或不批准擴展被加載,諸如基於從其接收所述擴展的提供方的身份,基於來自運行VM控制模塊的計算設備的用戶或管理員的輸入,等等。一旦擴展212被批准加載,VM控制模塊就在計算設備上每次創建可擴展虛擬交換機202時加載擴展212。控制模塊還能夠以各種不同的方式來確定加載擴展212的順序。例如,加載擴展的順序能夠作為來自運行VM控制模塊的計算設備的用戶或管理員的輸入而接收,能夠從另一個組件或模塊所接收,等等。VM控制模塊保存該順序的記錄,並且在計算設備上每次創建可擴展虛擬交換機202時以該順序加載擴展212。應當注意的是,加載擴展的順序可以在任意時間有所變化(重新排序),這使得擴展212在下一次加載時的不同順序。VM控制模塊能夠以各種不同的方式來確定加載擴展的重新排序的順序。例如,加載擴展的重新排序的順序能夠從運行VM控制模塊的計算設備的用戶或管理員接收,能夠從另一個組件或模塊接收,等等。VM控制模塊保存該重新排序的順序的記錄,並且在計算設備上每次創建可擴展虛擬交換機202時以該重新排序的順序加載擴展212 (除非該順序隨後又一次發生變化)。由於擴展212在虛擬交換機小型埠 214上進行加載,所以每次在計算設備上創建可擴展虛擬交換機202時都創建虛擬交換機小型埠 214並且在虛擬交換機小型埠214上加載擴展212。因此,擴展212在每次創建可擴展虛擬交換機202時自動加載。並且,擴展212在不創建可擴展虛擬交換機202的情況下不進行加載。類似地,如果可擴展虛擬交換機202被創建而隨後被刪除,則響應於可擴展虛擬交換機202的刪除,虛擬交換機小型埠 214和在虛擬交換機小型埠 214上加載的擴展212也都被刪除。因此,擴展212的壽命取決於可擴展虛擬交換機202的壽命一如果可擴展虛擬交換機202存在(已經被創建且正在運行)則擴展212也存在(已經被加載且正在運行),但是如果可擴展虛擬交換機202不存在(還沒有被創建或者沒有運行)則擴展212也不存在(還沒有被加載或者已經被卸載)。在一個或多個實施例中,虛擬交換機可擴展性協議綁定210遵循共用協議,展現出能夠由一個或多個擴展212所使用的共用應用編程接口(API)。該共用API允許擴展212和可擴展性協議綁定210之間的通信。該通信包括傳輸數據分組、傳輸控制和/或狀態信息,等等。協議為共用協議是指該協議是公知協議。在一個或多個實施例中,可擴展性協議綁定210遵循網絡設備接口規範(NDIS)協議,包括NDIS協議的當前和/或後續版本。然而,在其它實施例中,可擴展性協議綁定210能夠遵循其它版本的NDIS協議和/或其它協議(諸如開放數據鏈路接口(ODI)協議)。應當注意的是,通過遵循NDIS或其它已知協議的可擴展性協議綁定210以及通過在虛擬交換機小型埠 214上加載擴展,可擴展虛擬交換機202中出現斷點。該斷點對擴展212表現為傳統網絡棧,允許擴展212的開發人員設計擴展212以使用他們習慣使用的已知協議和模型插入該斷點。開發人員無需重新設計擴展212以在虛擬機環境中工作,這是因為擴展212將用來與非虛擬機環境中的小型埠驅動器進行通信的協議是可擴展性協議綁定210所支持的相同協議。因此,這裡所討論的虛擬交換機可擴展性技術允許擴展212的開發人員輕易地在虛擬機環境中使用針對非虛擬機環境所開發的擴展,反之亦然。虛擬交換機可擴展性協議綁定210允許一個或多個擴展與可擴展虛擬交換機202進行通信,從可擴展虛擬交換機202接收數據分組和/或向其提供數據分組。擴展212形成擴展棧,每個擴展接收數據分組,任選地基於數據人族執行一個或多個操作,並且將數據分組提供至棧中的下一個擴展。數據可以以如下文更為詳細討論的入口方向和出口方向在擴展棧中雙向提供。入口方向指示從綁定204或交換機埠 206向虛擬交換機小型埠214的數據流方向,而出口方向是指從虛擬交換機小型埠 214向綁定204或交換機埠206的數據流方向。可以以不同方式來確定擴展212如何相互和/或向虛擬交換機小型埠 214提供數據分組。例如,當在虛擬交換機小型埠 214上加載擴展212時,能夠建立(例如,通知擴展212)如何相互和/或向虛擬交換機小型埠 214提供數據分組的加載過程的部分。通過另一個示例,擴展212相互和/或向虛擬交換機小型埠 214提供數據分組的方式可以是虛擬交換機可擴展性協議綁定210所遵循的協議中所固有的。在一個或多個實施例中,擴展212被配置為直接從其它擴展212接收數據分組並且向其傳輸數據分組。例如,被圖示為「WFP擴展」的擴展212能夠從可擴展虛擬交換機202接收數據分組,基於所述數據分組執行一個或多個操作,並且將所述數據分組傳輸至被圖示為「擴展(2)」的擴展212。可替換地,擴展212可以被配置為經由可擴展虛擬交換機202與其它擴展212進行通信。例如,被圖示為「WFP擴展」的擴展212能夠從可擴展虛擬交換機202接收數據分組,基於所述數據分組執行一個或多個操作,並且將所述數據分組返回至可擴展虛擬交換機202,其隨後將所述數據分組傳輸至被圖示為「擴展(2) 」的擴展212。擴展212能夠基於數據分組執行任意各種不同的操作。這些操作可以包括對數據分組進行轉換或修改以使得擴展212所接收的數據分組不同於擴展212傳輸至另一個擴展212的數據分組。這些操作還可以包括基於所述數據分組生成或修改其它數據以使得擴展212所接收的數據分組與擴展212傳輸至另一個擴展212的數據分組相同。例如,擴展212能夠對數據分組中的數據進行加密和/或解密,能夠對數據分組中的數據執行惡意代碼檢查,能夠監視數據被發送至哪裡和/或從哪裡接收,能夠將數據分組中的數據從一種格式轉換為另一種格式,能夠限制另一個虛擬機能夠與哪些其它虛擬機進行通信,能夠限制虛擬機能夠與哪些其它物理設備進行通信,等等。還應當注意的是,擴展212無需基於數據分組執行任何操作,並且能夠簡單地將數據分組傳輸至另一個擴展212。在一個或多個實施例中,一個或多個擴展212是協議轉換擴展,這允許數據分組從一種協議轉換為另一種協議。這樣的轉換擴展能夠使用不同協議或API與一種或多種附加擴展212進行通信,這允許即使在各種不同擴展212並不遵循與可擴展性協議綁定210相同的協議或API的情況下也能夠使用那些擴展。例如,被圖示為「WFP擴展」的擴展212能夠從可擴展虛擬交換機202接收數據分組並且將那些數據分組從可擴展性協議綁定212所使用的協議(例如,NDIS協議)轉換為Windows過濾平臺(WFP)。擴展能夠使用NDIS協議API與可擴展性協議綁定210進行通信,能夠使用WFP協議API與一個或多個其它擴展進行通信,並且視需要在NDIS和WFP協議之間轉變或轉換數據。因此,諸如被圖示為「WFP驅動器」的擴展212的一個或多個附加擴展212能夠包括在擴展212中,即使這樣的附加擴展並不使用與可擴展性協議綁定210相同的API。在操作期間,通過可擴展虛擬交換機202和擴展212的數據分組的數據流路徑如下。數據分組由可擴展虛擬交換機202經由綁定204或交換機埠 206所接收,並且被提供至虛擬交換機可擴展性協議綁定210。可擴展性協議綁定210將數據分組提供至擴展212。被提供了數據分組的擴展212是擴展棧中的頂端擴展212,並且數據分組以入口方向通過擴展棧進行傳輸。擴展的順序可以與以上所討論不同的方式來確定。一個擴展212被確定為處於擴展棧的頂端,並且在圖2的示例中是被圖示為「WFP擴展」的擴展212。另一個擴展212被確定為處於擴展棧的底部,並且在圖2的示例中是被圖示為「擴展(y) 」的擴展212。處於擴展棧頂端的擴展(也被稱作頂端擴展)是最初(在任意其它擴展212之前)從可擴展虛擬交換機202接收數據分組的擴展212。處於擴展棧底部的擴展(也被稱作底部擴展)是在向虛擬交換機小型埠 214傳輸數據分組之前最後(在所有其它擴展之後)接收數據分組的擴展212。從擴展棧頂端傳輸至擴展棧底部的數據分組也被稱作以入口方向通過擴展棧輸送。從擴展棧底部向擴展棧頂端傳輸的數據分組也被稱作以出口方向通過擴展棧輸送。在以入口方向通過擴展212進行輸送之後,數據分組被虛擬交換機小型埠 214所接收。虛擬交換機小型埠 214將數據分組提供至入口過濾模塊216。入口過濾模塊216能夠執行(無論是從綁定204還是交換機埠 206所接收的)數據分組的各種過濾,基於各種入口過濾標準防止或允許數據分組被傳輸至它們所請求的目的地。例如,入口過濾標準可以識別(例如,基於網絡地址)一個或多個數據分組源,並且入口過濾模塊216在數據分組從所識別的一個或多個數據分組源之一接收的情況下防止數據分組被傳輸至其目的地。如果入口過濾模塊216確定了數據分組不被允許傳輸至其所請求的目的地,則模塊216停止該數據分組(例如,刪除或者以其他方式忽略該數據分組)。然而,如果入口過濾模塊216確定了數據分組被允許傳輸至其所請求的目的地,則入口過濾模塊216將數據分組提供至轉發模塊218,所述轉發模塊218對數據分組執行一個或多個轉發操作。通常,這樣的轉發操作包括修改或生產數據分組的目的地的網絡地址(如果確是如此,如由擴展212所修改的)。例如,轉發可以包括將目的地的網絡地址從一種格式變換為另一種格式,將目的地的網絡地址從一個網絡地址空間變換至另一個網絡地址空間,等等。轉發模塊218將所述數據分組提供至出口過濾模塊220,其能夠執行數據分組的各種過濾,基於各種出口過濾條件防止或允許數據分組被傳輸至它們所請求的目的地。例如,出口過濾條件能夠(例如,基於網絡地址)識別一個或多個數據分組目的地,並且出口過濾模塊220在目的地是所識別的一個或多個數據分組源之一的情況下防止數據分組被傳輸至其目的地。如果出口過濾模塊220確定數據分組不被允許傳輸至其所請求的目的地,則模塊220停止該數據分組(例如,刪除或者以其他方式忽略該數據分組)。然而,如果出口過濾模塊220確定了數據分組被允許傳輸至其所請求目的地,則出口過濾模塊220將所述數據分組提供至擴展212。被提供了數據分組的擴展212是擴展棧中的底部擴展212,並且數據分組以出口方向通過擴展棧進行傳輸。每個擴展212能夠在數據以入口方向以及以出口方向通過擴展棧輸送時基於數據分組執行各種操作。應當注意的是,擴展212無需在數據分組以入口方向以及以出口方向通過擴展棧輸送時基於每個數據分組執行操作。例如,擴展212可以在數據分組以入口方向通過擴展棧進行輸送時基於該數據分組執行操作(例如,對數據分組中的數據進行加密),但是並不在數據分組以出口方向通過擴展棧輸送時基於數據分組執行任何操作。作為另一個示例,擴展212可以在數據分組以入口方向通過擴展棧進行輸送時基於該數據分組執行操作(例如,對數據分組中的數據進行加密),並且在數據分組以出口方向通過擴展棧輸送時基於數據分組執行另一操作(例如,對數據分組中的數據進行解密)。在以出口方向通過擴展212輸送之後,數據分組被虛擬交換機可擴展性協議綁定210所接收。可擴展性協議綁定210將所述數據分組提供至綁定204 (其經由物理接口將數據分組傳送至其目的地)或交換機埠(其將數據分組傳輸至其目的地虛擬機)中適當的一個。可擴展性協議綁定210能夠例如基於數據分組目的地的網絡地址來確定是將所述數據分組提供至綁定204還是交換機埠 206。(並未由於入口過濾模塊216或出口過濾模塊220或者擴展212的過濾器而停止的)每個數據分組的數據流在入口方向和出口方向中遵循相同的路徑通過擴展212。因此,這裡所討論的虛擬交換機可擴展性技術為數據分組提供了擴展212的確定性排序。每個數據分組在擴展棧的相同頂端開始以入口方向通過所述擴展棧中的擴展212輸送並且在所述擴展棧的相同底部完成,並且在擴展棧的相同底部開始以出口方向通過所述擴展棧中的擴展212輸送並且在所述擴展棧的相同頂端完成。可擴展虛擬交換機202被圖示為包括綁定202以及一個或多個交換機埠 206。可替換地,可擴展虛擬交換機202可以被實施為排除對經由物理接口與其它設備進行通信的支持。例如,可擴展虛擬交換機202可以僅支持虛擬機之間的通信,或者虛擬機和實施所述虛擬機的計算設備上的主機作業系統之間的通信。在這樣的實施例中,可擴展虛擬交換機202無需包括綁定204。此外,在一個或多個實施例中,虛擬機網絡適配器可以具有要由可擴展虛擬交換機所滿足以便所述虛擬機網絡適配器連接至可擴展虛擬交換機的各種擴展標準。這些擴展標準識別要由可擴展虛擬交換機所加載和/或將不被可擴展虛擬交換機所加載以便所述虛擬機使用所述可擴展虛擬交換機的各種擴展212。虛擬機網絡適配器具有(例如,由用戶或管理員所設置的)相關聯的擴展標準,並且虛擬機控制模塊(例如,圖1的模塊122)在將虛擬機網絡適配器連接到可擴展虛擬交換機的交換機埠之前驗證可擴展虛擬交換機滿足所述相關聯的擴展標準。例如,特定的虛擬機網絡適配器可以被配置為通過網際網路向其它物理設備傳送數據分組,並且因此具有指示可擴展虛擬交換機要加載執行數據分組加密的擴展標準。虛擬機控制模塊驗證特定可擴展虛擬交換機具有所加載的執行數據分組加密的擴展。如果所述特定可擴展虛擬交換機具有所加載的執行數據分組加密的擴展,則虛擬機控制模塊允許所述特定虛擬機網絡適配器連接到該特定可擴展虛擬交換機。然而,如果所述特定可擴展虛擬交換機並不具有所加載的執行數據分組加密的擴展,則虛擬機控制模塊並不允許所述特定虛擬機網絡適配器連接到該特定可擴展虛擬交換機。所述擴展標準可以在創建虛擬機和/或可擴展虛擬交換機時使用。例如,虛擬機控制模塊在創建虛擬機和/或可擴展虛擬交換機時驗證特定可擴展虛擬交換機滿足擴展標準,並且基於所述可擴展虛擬交換機是否滿足擴展標準而允許或防止虛擬機網絡適配器連接到所述可擴展虛擬交換機的交換機埠。所述擴展標準還在虛擬機從一個計算設備遷移至另一個計算設備時使用。在一個或多個實施例中,虛擬機僅在其它計算設備上的可擴展虛擬交換機滿足虛擬機網絡適配器的擴展標準的情況下才遷移至另一個計算設備。如果虛擬機網絡適配器的擴展標準沒有被另一個計算設備的可擴展虛擬交換機所滿足,則具有該虛擬機網絡適配器的虛擬機就不被遷移至該其它計算設備。此外,在一個或多個實施例中,虛擬交換機可擴展性協議綁定210在擴展212想要基於數據分組執行操作時(例如,經由可擴展性協議綁定210所展現出的API)從擴展212接收指示。如果一個或多個擴展212想要基於數據分組執行至少一個操作,則數據分組通過可擴展虛擬交換機202和擴展212的數據流路徑為如以上所討論的。然而,如果沒有擴展212想要執行基於數據分組的操作,則數據分組無需被提供至擴展212。相反,數據分組的數據流路徑可以是從可擴展性協議綁定210到虛擬交換機小型埠 214到入口過濾模塊216到轉發模塊218到出口過濾模塊220到可擴展性協議綁定210,繞過了擴展212。圖3是圖示依據一個或多個實施例的用於實現虛擬交換機可擴展性的示例過程300的流程圖。過程300由諸如圖1的計算設備102的設備所執行,並且能夠以軟體、固件、硬體或者其組合來實施。過程300被示為動作的集合併且並不局限於所示出的用於執行各個動作的操作的順序。過程300是用於實現虛擬交換機可擴展性的示例過程;實現虛擬交換機可擴展性的附加討論參考不同附圖而包括於此。在過程300中,在設備實施過程300的可擴展虛擬交換機接收數據分組(動作302)。如以上所討論的,所述數據分組可以從實施過程300的設備的虛擬機接收或者從另一個設備接收。所述數據分組通過一個或多個擴展輸送至所述可擴展虛擬交換機(動作304)。所述可擴展虛擬交換機使用諸如以上所討論的NDIS協議之類的共用協議與一個或多個擴展進行通信。在通過一個或多個擴展進行輸送之後,數據分組被提供至所述數據分組的目的地(動作306)。如以上所討論的,所述目的地可以是實施過程300的設備的虛擬機或另一個設備。圖4是圖示依據一個或多個實施例的實現虛擬交換機可擴展性的另一個示例過程400的流程圖。過程400由諸如圖1的計算設備102的設備所執行,並且能夠以軟體、固件、硬體或者其組合來實施。過程300被示為動作的集合併且並不局限於所示出的用於執行各個動作的操作的順序。過程400是用於實現虛擬交換機可擴展性的示例過程;實現虛擬交換機可擴展性的附加討論參考不同附圖而包括於此。在過程400中,虛擬交換機小型埠被包括在實施過程400的設備的可擴展虛擬交換機中(動作402)。如以上所討論的,所述可擴展虛擬交換機允許實施過程400的設備的虛擬機相互通信以及任選地與其它設備進行通信。用於對可擴展虛擬交換機的功能進行擴充的一個或多個擴展在所述虛擬交換機小型埠上進行加載(動作404)。如以上所討論的所述一個或多個擴展中每一個的壽命因此取決於所述虛擬交換機小型埠的壽命。圖5圖示了依據一個或多個實施例的能夠被配置為實現虛擬交換機可擴展性的示例計算設備500。計算設備500例如可以是圖1的計算設備102。計算設備500包括一個或多個過程器或過程單元502,可以包括一個或多個存儲器和/或存儲組件506的一個或多個計算機可讀媒體504,一個或多個輸入/輸出(I/O)設備508,以及允許各個組件和設備相互通信的總線510。計算機可讀媒體504和/或一個或多個輸入/輸出(I/O)設備508能夠被包括作為計算設備500的一部分,或者可替換地,可以耦合至計算設備500。過程器502、計算機可讀媒體504、一個或多個設備508和/或總線510能夠任選地被實現為單個組件或晶片(例如,片載系統)。總線510表示若干類型的總線結構中的一個或多個,包括使用各種不同總線架構的存儲器總線或存儲器控制器、外部總線、加速圖形埠、過程器或局部總線等。總線510可以包括有線和/或無線總線。存儲器/存儲組件506表示一個或多個計算機存儲媒體。組件506可以包括易失性媒體(諸如隨機訪問存儲器(RAM))和/或非易失性媒體(諸如只讀存儲器(ROM)、快閃記憶體、光碟、磁碟等)。組件506可以包括固定媒體(例如,RAM、ROM、固定硬碟驅動器等)以及可移動媒體(例如,快閃記憶體驅動器、可移動硬碟驅動器、光碟等)。這裡所討論的技術可以以軟體來實施,所述軟體具有由一個或多個處理單元502執行的指令。所要意識到的是,不同指令可以存儲在計算設備500的不同組件中,諸如存儲在處理單元502中、處理單元502的各個緩存存儲器中、設備500的其它緩存存儲器(未示出)中、其它計算機可讀媒體上,等等。此外,所要意識到的是,指令在計算設備500中存儲的位置可以隨時間有所變化。—個或多個輸入/輸出設備508允許用戶向計算設備500輸入命令和信息,並且還允許信息被呈現給用戶和/或其它組件或設備。輸入設備的示例包括鍵盤、光標控制設備(例如,滑鼠)、麥克風、掃描儀,等等。輸出設備的示例包括顯示設備(例如,監視器或投影儀)、揚聲器、印表機、網卡,等等。各種技術在這裡可以在軟體或程序模塊的一般環境下進行描述。通常,軟體包括執行特定任務或者實施特定抽象數據類型的例程、程序、應用、對象、組件、數據結構等。這些模塊和技術的實施方式可以存儲在某種形式的計算機可讀媒體上或者跨所述計算機可讀媒體進行傳送。計算機可讀媒體可以是計算設備所能夠訪問的任意可用介質或媒體。作為示例而非限制,計算機可讀媒體可以包括「計算機存儲媒體」和「通信媒體」。「計算機存儲媒體」包括用於信息存儲的任意方法或技術中所實施的易失性和非易失性的、可移動和不可移動的媒體,所述信息諸如計算機可讀指令、數據結構、程序模塊或其它數據。計算機存儲媒體包括但不限於RAM、ROM、EEPR0M、快閃記憶體或其它存儲器技術、CD-ROM、數字通用光碟(DVD)或其它光學存儲、磁帶盒、磁帶、磁碟存儲或其它磁性存儲設備,或者可以被用來存儲所期望信息並且能夠被計算機所訪問的任意其它媒體,但是並不局限於此。與僅僅是信號傳輸、載波或信號本身相比,計算機存儲媒體是指用於信息存儲的媒體。因此,計算機存儲媒體是指非信號承載媒體,並且不是通信媒體。「通信媒體」典型地將計算機可讀指令、數據結構、程序模塊,或者其它數據包含在調製的數據信號中,比如載波或其它傳輸機制。通信媒體還包括任何信息傳遞媒體。術語「調製的數據信號」意味著以將信息編碼在信號中的方式設置或改變其特徵中的一個或多個特徵的信號。作為示例而非限制,通信媒體包括諸如有線網絡或直接有線連接的有線媒體,諸如聲音、RF、紅外和其它無線媒體的無線媒體。以上任意的組合也包括在計算機可讀媒體的範圍之內。通常,這裡所描述的任意功能或技術可以使用軟體、固件、硬體(例如,股東邏輯電路)、人工過程或者這些實施方式的組合來實施。如這裡所使用的術語「模塊」和「組件」通常表示軟體、固件、硬體或者其組合。在軟體實施方式的情況下,模塊或組件表示當在處理器(例如,一個或多個CPU)上執行時執行指定任務的程序代碼。所述程序代碼可以存儲在一個或多個計算機可讀存儲器設備中,其進一步描述可以參考圖5而找到。在硬體實施方式的情況下,模塊或組件表示執行指定任務的功能塊或其它硬體。例如,在硬體實施方式中,模塊或組件可以是專用集成電路(ASIC)、現場可編程門陣列(FPGA)、複雜可編程邏輯設備(CPLD)等等。這裡所描述的虛擬交換機可擴展性技術的特徵是獨立於平臺的,意味著該技術能夠在具有各種處理器的各種商業計算平臺上實施。雖然已經以特定於結構特徵和/或方法動作的語言對主題進行了描述,但是所要理解的是,所附權利要求中所限定的主題並不必然局限於以上所描述的具體特徵或動作。相反,以上所描述的具體特徵或動作作為實施所述權利要求的示例形式被公開。
權利要求
1.一種方法,包括: 在計算設備的可擴展虛擬交換機從源接收(302)數據分組,所述可擴展虛擬交換機允許所述計算設備的第一虛擬機與所述計算設備的第二虛擬機進行通信; 將所述數據分組通過一個或多個擴展輸送(304)至所述可擴展虛擬交換機,所述可擴展虛擬交換機使用共用協議與所述一個或多個擴展進行通信;並且 在通過所述一個或多個擴展輸送所述數據分組之後,將所述數據分組提供(306)至所述數據分組的目的地。
2.按權利要求1所述的方法,所述共用協議包括網絡設備接口規範(NDIS)協議。
3.按權利要求1所述的方法,進一步包括: 僅在第一虛擬機網絡適配器的擴展標準得以滿足的情況下允許所述第一虛擬機的第一虛擬機網絡適配器連接到所述可擴展虛擬交換機的多個交換機埠之一,所述第一虛擬機網絡適配器的擴展標準識別要包括在所述一個或多個擴展中的至少一個擴展;並且僅在第二虛擬機網絡適配器的擴展標準得以滿足的情況下允許所述第二虛擬機的第二虛擬機網絡適配器連接到所述可擴展虛擬交換機的多個交換機埠之一,所述第二虛擬機網絡適配器的擴展標準識別要包括在所述一個或多個擴展中的至少一個擴展。
4.按權利要求1所述的方法,所述一個或多個擴展包括擴展棧,所述輸送包括以入口方向通過所述擴展棧輸送所述數據分組,並且隨後以出口方向通過所述擴展棧輸送所述數據分組,所述方法進一步包括接收指示所述一個或多個擴展在所述擴展棧中的順序的管理員輸入。
5.按權利要求1所述的方法,所述源包括所述第一虛擬機或第二虛擬機,並且所述目的地包括所述第一虛擬機或所述第二虛擬機中的另一個。
6.一種計算設備,包括: 一個或多個處理器(502);和 一個或多個計算機可讀媒體(504),其具有存儲於其上的多個指令,當被所述一個或多個處理器所執行時,所述多個指令使得所述一個或多個處理器: 在所述計算設備的可擴展虛擬交換機中包括(402)虛擬交換機小型埠,所述可擴展虛擬交換機允許所述計算設備的第一虛擬機與所述計算設備的第二虛擬機進行通信;並且在所述虛擬交換機小型埠上加載(404) —個或多個擴展以對所述可擴展虛擬交換機的功能進行擴充。
7.按權利要求6所述的計算設備,所述一個或多個擴展包括擴展棧,所述多個指令進一步使得所述一個或多個處理器以入口方向通過所述擴展棧並且隨後以出口方向通過所述擴展棧輸送在所述可擴展虛擬交換機接收的數據分組。
8.按權利要求7所述的計算設備,所述擴展棧提供所述一個或多個擴展的確定性排序。
9.按權利要求6所述的計算設備,所述多個指令進一步使得所述一個或多個處理器響應於所述可擴展虛擬交換機被刪除而刪除所述虛擬交換機小型埠以及所述一個或多個擴展。
10.按權利要求6所述的計算設備,所述多個指令進一步使得所述一個或多個處理器: 在所述計算設備的附加可擴展虛擬交換機中包括附加虛擬交換機小型埠,所述附加可擴展虛擬交換機允許所述計算設備的第一虛擬機與所述計算設備的第二虛擬機進行通信;並且 在所述附加虛擬交換機小型埠上加載至少一個擴展以對所述附加可擴展虛擬交換機的功能進行擴充,所述至少一個擴展是不同於所述虛擬交換機小型埠上所加載的一個或多個擴展的擴展或者是以與所述虛擬交換機小型埠上所加載的一個或多個擴展不同的順序所加載的一個或多個擴展。
11.一種或多種其上存儲計算機可執行指令的計算機可讀存儲媒體,所述指令當由計算設備執行時,使得所述計算設 備實現如權利要求1 一 5中的任一個所述的方法。
全文摘要
一種可擴展虛擬交換機允許虛擬機相互通信且任選地經由網絡與其它物理設備進行通信。所述可擴展虛擬交換機包括可擴展性協議綁定,這允許不同擴展被添加至所述可擴展虛擬交換機。所述可擴展虛擬交換機還包括在其上加載擴展的小型埠驅動器,這使得所述擴展的壽命取決於所述可擴展虛擬交換機的壽命。
文檔編號H04L12/46GK103095544SQ20121032847
公開日2013年5月8日 申請日期2012年9月7日 優先權日2011年9月9日
發明者R.C.科姆布斯, P.加格, S.M.芒德庫, L.M.赫南德滋, A.達巴赫, S.K.辛格哈 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀