交叉引用
本申請要求2014年10月30日提交的、標(biāo)題為“universalcustomerpremiseequipment”的美國臨時申請no.62/072,971,2014年11月4日提交的、標(biāo)題為“universalcustomerpremiseequipment”的美國臨時申請no.62/075,175,2015年10月13日提交的、標(biāo)題為“universalcustomerpremiseequipment”的美國臨時申請no.62/241,059以及2015年10月28日提交的、標(biāo)題為“universalcustomerpremiseequipment”的美國非臨時申請no.14/925,809的權(quán)益和優(yōu)先權(quán),這些申請出于所有目的通過其整體引用而合并在此。
本公開一般涉及數(shù)據(jù)路由和轉(zhuǎn)發(fā),并且更具體地,涉及用于改善配置、部署和管理客戶駐地設(shè)備(cpe)的效率和健壯性的技術(shù)。
背景技術(shù):
傳統(tǒng)地,cpe是提供用于使某些基于網(wǎng)絡(luò)的服務(wù)便利于客戶的基于硬件的解決方案的裝置。在一些實例中,cpe對網(wǎng)絡(luò)運(yùn)營者提供分界點(diǎn)(demarcationpoint)以用于將他們的服務(wù)提供給客戶。換句話講,cpe充當(dāng)網(wǎng)絡(luò)運(yùn)營者的延伸,駐存(reside)在客戶駐地并且使由網(wǎng)絡(luò)運(yùn)營者提供的服務(wù)便利于客戶。
cpe一般可以指的是諸如電話、路由器、交換機(jī)、駐存網(wǎng)關(guān)(rg)、機(jī)頂盒、固定移動融合產(chǎn)品、家庭聯(lián)網(wǎng)適配器以及因特網(wǎng)接入網(wǎng)關(guān)的裝置,這些裝置使得消費(fèi)者能夠經(jīng)由lan(局域網(wǎng))、數(shù)字訂戶線路(dsl)或者其它寬帶因特網(wǎng)路由器、因特網(wǎng)協(xié)議語音(voip)基站或者由特定的服務(wù)提供者使用的其它系統(tǒng),訪問通信服務(wù)提供者的服務(wù)并且將它們分布在他們的房子周圍。同樣包括按鍵電話系統(tǒng)和大多數(shù)專用分機(jī)交換。傳統(tǒng)地,該術(shù)語指的是放置在電話線路的客戶的一端并且通常由電話公司擁有的設(shè)備。今天,幾乎任何最終用戶設(shè)備可以被稱作客戶駐地設(shè)備并且它可以由客戶或者由提供者擁有。
盡管,在整個說明書中討論cpe,但是在若干實施例中,也可以使用網(wǎng)絡(luò)裝置代替cpe以執(zhí)行這里討論的若干實施例。而且,在一些實例中,cpe可以自身執(zhí)行網(wǎng)絡(luò)裝置的功能,諸如網(wǎng)絡(luò)分組的轉(zhuǎn)發(fā)。
技術(shù)實現(xiàn)要素:
本公開一般涉及數(shù)據(jù)路由和轉(zhuǎn)發(fā),并且更具體地,涉及用于改善配置、部署和管理客戶駐地設(shè)備(cpe)的效率和健壯性的技術(shù)。
傳統(tǒng)地,一旦cpe物理地位于客戶的駐地,對cpe的任何改變就導(dǎo)致技術(shù)人員訪問客戶,從而導(dǎo)致較高的成本和不便。而且,如果cpe不支持某種功能或服務(wù)或者如果cpe需要升級,那么cpe通常必須被替換,從而導(dǎo)致對客戶或者網(wǎng)絡(luò)運(yùn)營者的另外成本。而且,cpe是單功能裝置并且客戶可能不能夠使用同一cpe啟用和使用多個服務(wù)和功能。
公開的方面討論用于改善路由和轉(zhuǎn)發(fā)網(wǎng)絡(luò)分組的效率和健壯性、遠(yuǎn)程部署新的服務(wù)、改變配置、改善裝置的不同組件之間的通信以及更新/改變裝置上的某些可執(zhí)行映像的技術(shù)。而且,公開的方面也可以允許不同的網(wǎng)絡(luò)運(yùn)營者對cpe上的某些可執(zhí)行映像的同時控制和升級。
在公開的某些方面,示例裝置包括存儲器、用于接收和傳輸網(wǎng)絡(luò)分組的多個物理網(wǎng)絡(luò)接口以及與存儲器通信的一個或多個處理實體。所述一個或多個處理實體可以被配置為:提供用于提供路由功能的第一路由器,其中,第一路由器沒有被虛擬化;使得虛擬機(jī)能夠執(zhí)行用于提供路由功能的第二路由器;以及使用第一路由器或者第二路由器從裝置轉(zhuǎn)發(fā)網(wǎng)絡(luò)分組。在某些實施例中,裝置是cpe。在其它實施例中,裝置是網(wǎng)絡(luò)裝置。在某些實施例中,網(wǎng)絡(luò)分組在第一路由器處的轉(zhuǎn)發(fā)可以包括執(zhí)行網(wǎng)絡(luò)分組的路由或者交換。在某些實例中,路由可以指的是在開放系統(tǒng)互連(osi)模型網(wǎng)絡(luò)堆棧的層級3(l3)層處處理和轉(zhuǎn)發(fā)分組,而交換可以指的是網(wǎng)絡(luò)分組在osi模型網(wǎng)絡(luò)堆棧的層級2(l2)層的處理和轉(zhuǎn)發(fā)。
在某些實施例中,一個或多個處理器還可以被配置為從用戶空間執(zhí)行與第一路由器相關(guān)聯(lián)的指令。在某些實施例中,第一路由器使用由內(nèi)核分配的一個或多個實時線程在用戶空間中處理網(wǎng)絡(luò)分組。
在某些實施例中,裝置通過多個物理網(wǎng)絡(luò)接口的一個接收網(wǎng)絡(luò)分組并且將網(wǎng)絡(luò)分組拷貝到用戶空間以由第一路由器進(jìn)行處理。裝置還可以在第一路由器處處理網(wǎng)絡(luò)分組并且將網(wǎng)絡(luò)分組從第一路由器發(fā)送到第二路由器,其中,網(wǎng)絡(luò)分組在不離開裝置的情況下被傳送到第二路由器。在某些實施例中,裝置響應(yīng)于對數(shù)據(jù)模型的改變而更新虛擬機(jī)的狀態(tài),其中,對數(shù)據(jù)模型的改變基于接收到的操作模式命令并且數(shù)據(jù)模型包括用于暴露(expose)與虛擬機(jī)相關(guān)聯(lián)的可更新參數(shù)的接口。在某些實例中,裝置還被配置為升級在虛擬機(jī)中執(zhí)行的第二路由器。
在公開的某些方面,在裝置處轉(zhuǎn)發(fā)網(wǎng)絡(luò)分組的示例方法可以包括:在裝置的物理網(wǎng)絡(luò)接口處接收網(wǎng)絡(luò)分組;使用來自內(nèi)核的裝置驅(qū)動將網(wǎng)絡(luò)分組從物理網(wǎng)絡(luò)接口拷貝到通過從用戶空間執(zhí)行的指令可訪問的存儲器;以及在裝置的用戶空間中使用路由器處理網(wǎng)絡(luò)分組以用于網(wǎng)絡(luò)分組的轉(zhuǎn)發(fā)。在某些實施例中,裝置是cpe。在其它實施例中,裝置是網(wǎng)絡(luò)裝置。在某些實施例中,轉(zhuǎn)發(fā)網(wǎng)絡(luò)分組包括通過另一個物理網(wǎng)絡(luò)接口傳輸分組。在某些其它實施例中,轉(zhuǎn)發(fā)網(wǎng)絡(luò)分組包括將分組發(fā)送到在裝置上的虛擬機(jī)中執(zhí)行的另一個路由器。在某些實施例中,網(wǎng)絡(luò)分組在第一路由器處的轉(zhuǎn)發(fā)包括執(zhí)行網(wǎng)絡(luò)分組的路由或者交換。在某些實例中,路由可以指的是在開放系統(tǒng)互連(osi)模型的層級3(l3)層處處理和轉(zhuǎn)發(fā)分組,而交換可以指的是網(wǎng)絡(luò)分組在osi模型的層級2(l2)層處的處理和轉(zhuǎn)發(fā)。
在某些實施例中,示例方法也可以包括從遠(yuǎn)程裝置接收操作模式命令,基于操作模式命令更新數(shù)據(jù)模型的參數(shù),以及基于數(shù)據(jù)模型的更新的參數(shù)對與在裝置上的虛擬機(jī)中執(zhí)行的另一個路由器相關(guān)聯(lián)的狀態(tài)進(jìn)行更新。
在某些實施例中,示例非暫時性計算機(jī)可讀存儲介質(zhì),其中,非暫時性計算機(jī)可讀存儲介質(zhì)可以包括指令,所述指令由處理實體可執(zhí)行以用于:接收網(wǎng)絡(luò)分組;使用在內(nèi)核中執(zhí)行的指令將網(wǎng)絡(luò)分組從物理網(wǎng)絡(luò)接口拷貝到通過從用戶空間執(zhí)行的指令可訪問的存儲器;以及在裝置的用戶空間中使用路由器處理網(wǎng)絡(luò)分組以用于網(wǎng)絡(luò)分組的轉(zhuǎn)發(fā)。這種示例非暫時性計算機(jī)可讀存儲介質(zhì)將用于執(zhí)行整個公開中所討論的若干實施例的指令存儲在裝置上。
附圖說明
圖1例示包括示例客戶駐地設(shè)備(cpe)、呼叫家庭服務(wù)器(callhomeserver)以及配置服務(wù)器的示例系統(tǒng)。
圖2是例示根據(jù)公開的某些方面的用于配置cpe的方法的示例流程圖。
圖3是用于例示示例cpe的某些方面的示例框圖。
圖4是用于例示示例cpe的某些方面的另一示例框圖。
圖5是根據(jù)公開的某些方面的、例示在cpe上執(zhí)行的虛擬機(jī)(vm)的管理的另一示例框圖。
圖6是根據(jù)公開的某些方面的、例示由cpe執(zhí)行的路由功能的框圖。
圖7是根據(jù)公開的至少一個實施例的、例示vm間通信的框圖。
圖8是例示根據(jù)公開的某些方面的對于cpe的部署模型的方法的示例流程圖。
圖9是根據(jù)一些實施例的計算機(jī)系統(tǒng)的框圖。
具體實施方式
詞語“示例性”在這里用于意指“用作示例、實例或者例示”。在這里描述為“示例性”的任何實施例或者設(shè)計不一定被解釋為相比其它實施例或者設(shè)計是優(yōu)選的或者有利的。
客戶駐地設(shè)備(cpe)是位于訂戶的駐地的任何終端/裝置以及相關(guān)聯(lián)的設(shè)備。在一些實例中,cpe與網(wǎng)絡(luò)運(yùn)營者或者運(yùn)營商的電信信道連接。cpe可以在分界點(diǎn)(“分界(demarc)”)處連接到網(wǎng)絡(luò)運(yùn)營者。分界是在建筑物、綜合體(complex)或者系統(tǒng)中建立以將客戶設(shè)備與位于網(wǎng)絡(luò)運(yùn)營者的分布基礎(chǔ)設(shè)施或者中心局中的設(shè)備分離的點(diǎn)。
cpe一般指的是諸如電話、路由器、交換機(jī)、駐存網(wǎng)關(guān)(rg)、機(jī)頂盒、固定移動融合產(chǎn)品、家庭聯(lián)網(wǎng)適配器以及因特網(wǎng)接入網(wǎng)關(guān)的裝置,這些裝置使得消費(fèi)者能夠經(jīng)由lan(局域網(wǎng))、數(shù)字訂戶線路(dsl)或者其它寬帶因特網(wǎng)路由器、因特網(wǎng)協(xié)議語音(voip)基站或者由特定的服務(wù)提供者提供的其它裝置,訪問通信服務(wù)提供者的服務(wù)并且將它們分布在他們的房子周圍。同樣包括按鍵電話系統(tǒng)和大多數(shù)專用分機(jī)交換。傳統(tǒng)地,該術(shù)語指的是放置在電話線路的客戶的一端并且通常由電話公司擁有的設(shè)備。今天,幾乎任何最終用戶設(shè)備可以被稱作客戶駐地設(shè)備并且它可以由客戶或者由提供者擁有。在一些實例中,cpe可以實現(xiàn)利用圖9中公開的組件描述的一個或多個組件或者功能。
盡管,在整個說明書中討論cpe,但是在若干實施例中,也可以使用網(wǎng)絡(luò)裝置代替cpe以執(zhí)行這里討論的若干實施例。而且,在一些實例中,cpe可以自身執(zhí)行網(wǎng)絡(luò)裝置的功能,諸如網(wǎng)絡(luò)分組的轉(zhuǎn)發(fā)。
傳統(tǒng)地,一旦cpe物理地位于客戶的駐地,對cpe的任何改變就導(dǎo)致技術(shù)人員訪問客戶,從而導(dǎo)致較高的成本和不便。而且,如果cpe不支持某種功能或服務(wù)或者如果cpe需要升級,那么cpe通常必須被替換,從而導(dǎo)致對客戶或者網(wǎng)絡(luò)運(yùn)營者的另外成本。而且,cpe是單功能裝置并且客戶可能不能夠使用同一cpe啟用和使用多個服務(wù)和功能。
公開的方面公開用于配置和更新cpe的新技術(shù),使得可以以安全的方式遠(yuǎn)程地并且動態(tài)地配置、更新和升級cpe,而很少或者沒有技術(shù)人員對客戶駐地的訪問。
圖1例示包括示例客戶駐地設(shè)備(cpe)102、呼叫家庭服務(wù)器104以及配置服務(wù)器106的示例系統(tǒng)??梢允褂藐P(guān)于圖3-9公開的技術(shù)根據(jù)在本公開中公開的一個或多個方面實現(xiàn)cpe102。在一些實例中,根據(jù)在這里公開的某些方面,cpe102也可以被稱作通用cpe(ucpe)或者虛擬cpe(vcpe)。
當(dāng)cpe102使用基礎(chǔ)(base)安裝啟動時,它與呼叫家庭服務(wù)器104通信并且向呼叫家庭服務(wù)器104提供它的ip地址以及其它能力參數(shù)。呼叫家庭服務(wù)器104可以與配置服務(wù)器106通信并且將適當(dāng)?shù)呐渲锰峁┙ocpe102。在一些實例中,配置服務(wù)器106和/或其它裝置,單獨(dú)地或者與其它裝置一起,還可以執(zhí)行操作系統(tǒng)服務(wù)、后臺(back-office)系統(tǒng)服務(wù)(ossbss)系統(tǒng)。ossbss可以在針對網(wǎng)絡(luò)運(yùn)營者的后端服務(wù)上提供操作支持,以用于計費(fèi)、配置、庫存等。
在一些實例中,諸如brocade系統(tǒng)控制器(bsc)的單獨(dú)控制器可以被用作呼叫家庭服務(wù)器和/或配置服務(wù)器。在又其它實現(xiàn)中,ossbss也可以由相同或者不同的控制器實現(xiàn)。
圖2是例示根據(jù)公開的某些方面用于配置cpe的方法的示例流程圖。
遠(yuǎn)離與網(wǎng)絡(luò)運(yùn)營者相關(guān)聯(lián)的呼叫家庭服務(wù)器104駐存的cpe102可以與呼叫家庭服務(wù)器104通信。在一個示例配置中,cpe102可以位于客戶場所處,并且呼叫家庭服務(wù)器可以駐存在由網(wǎng)絡(luò)運(yùn)營者操作的服務(wù)器設(shè)施處。在框202處,cpe102使用本地存儲在cpe102上的初始啟動代碼序列啟動。
在框204處,在cpe102啟動之后,它通過動態(tài)主機(jī)配置協(xié)議(dhcp)或者任何其它合適的手段本地獲取它的ip地址。
在框206處,在某些實施例中,cpe102可以被預(yù)配置(pre-provision)為呼叫該呼叫家庭服務(wù)器104并且請求它的配置。其它動態(tài)技術(shù)可以被用于由cpe遠(yuǎn)程地發(fā)現(xiàn)呼叫家庭服務(wù)器104的身份。
在框208處,呼叫家庭服務(wù)器104可以與配置服務(wù)器106通信并且向配置服務(wù)器106指示與cpe102相關(guān)聯(lián)的一個或多個參數(shù)。例如,呼叫家庭服務(wù)器104可以將cpe的ip地址、cpe102的硬件和/或軟件能力、與cpe102的客戶維持占有(possession)相關(guān)聯(lián)的任何服務(wù)級別協(xié)議限制等傳送到配置服務(wù)器106。響應(yīng)于來自呼叫家庭服務(wù)器106的通信,配置服務(wù)器106可以使用合適的協(xié)議向cpe102提供另外的配置信息。配置信息可以包括,但不限于,運(yùn)行時間參數(shù)和/或可執(zhí)行代碼。
在某些實施例中,配置服務(wù)器106使用諸如網(wǎng)絡(luò)配置協(xié)議(netconf)的協(xié)議將配置信息傳送到cpe102。netconf提供使用簡單遠(yuǎn)程過程調(diào)用(rpc)層安裝、改變和管理網(wǎng)絡(luò)裝置的配置的機(jī)制。在某些實施例中,cpe102可以使用zerotouchnetconf協(xié)議與呼叫家庭服務(wù)器104通信。zerotouchnetconf協(xié)議可以提供用于在新部署的cpe102(配置有它的工廠默認(rèn)設(shè)置)與呼叫家庭服務(wù)器104之間建立安全netconf連接的技術(shù)。netconf和zerotouchnetconf的某些方面通過由因特網(wǎng)工程任務(wù)組(ietf)建立和維護(hù)的標(biāo)準(zhǔn)定義。
圖3是根據(jù)公開的某些方面的、用于例示示例cpe的某些方面的示例框圖。
在某些實施例中,cpe300可以作為網(wǎng)絡(luò)裝置操作,具有諸如路由、交換和防火墻能力的網(wǎng)絡(luò)能力以用于相應(yīng)地執(zhí)行網(wǎng)絡(luò)分組的層級3(l3)和層級2(l2)處理和轉(zhuǎn)發(fā)。cpe300可以將網(wǎng)絡(luò)堆棧306中的網(wǎng)絡(luò)功能實現(xiàn)為主機(jī)軟件堆棧的部分(參考圖3中的主機(jī)304)。網(wǎng)絡(luò)堆棧306可以被稱作路由器或者路由堆棧。
如這里所描述的,路由器可以指的是處理網(wǎng)絡(luò)分組并且在物理或者邏輯裝置之間轉(zhuǎn)發(fā)它們的任何邏輯路由實體。路由器執(zhí)行因特網(wǎng)上的“流量引導(dǎo)(trafficdirecting)”功能。如所提到的,在整個說明書中,路由器可以被配置為對網(wǎng)絡(luò)分組執(zhí)行路由操作、交換操作、防火墻操作和/或任何其它合適的網(wǎng)絡(luò)操作。
如這里所描述的,路由器還可以提供基于端口和基于vlan(虛擬局域網(wǎng))的聯(lián)網(wǎng)、l2(層2)和l3(層3)虛擬專用網(wǎng)、因特網(wǎng)可訪問性、ipv4/ipv6路由、l2(層2)和l3(層3)cos(服務(wù)等級)、bfd(雙向轉(zhuǎn)發(fā)檢測)、報告和服務(wù)級別協(xié)議、簡單網(wǎng)絡(luò)管理協(xié)議(snmp)以及sdn(軟件定義網(wǎng)絡(luò))管理的一個或多個。
網(wǎng)絡(luò)分組典型地包括頭部和有效載荷。有效載荷可以包括數(shù)據(jù),并且用于網(wǎng)絡(luò)分組的頭部可以包括描述有效載荷的內(nèi)容、對于網(wǎng)絡(luò)有效載荷的路由、與網(wǎng)絡(luò)分組相關(guān)聯(lián)的服務(wù)質(zhì)量、流信息等的屬性。網(wǎng)絡(luò)分組典型地被從一個路由器轉(zhuǎn)發(fā)到另一個通過,直到它到達(dá)它的目的地節(jié)點(diǎn)。而且,網(wǎng)絡(luò)分組可以指的是osi模型的任何層的分組,并且可以與其它術(shù)語(諸如數(shù)據(jù)報、協(xié)議數(shù)據(jù)單元等)可互換地使用。
網(wǎng)絡(luò)堆棧306可以實現(xiàn)用于cpe300的路由和防火墻功能的路由器。例如,網(wǎng)絡(luò)堆棧306可以實現(xiàn)與控制平面以及一個或多個數(shù)據(jù)平面和/或v平面(vplane)相關(guān)聯(lián)的功能??刂破矫婧?或數(shù)據(jù)平面可以使用關(guān)于圖9描述的一個或多個計算裝置或者計算裝置的組件實現(xiàn)。在某些實施例中,cpe300可以使用一個或多個sdn(軟件定義網(wǎng)絡(luò))原理實現(xiàn)。在某些實例中,網(wǎng)絡(luò)光纖可以指的是用于互連若干組件以路由分組的網(wǎng)絡(luò)拓?fù)?。在一個實現(xiàn)中,cpe300的網(wǎng)絡(luò)堆棧306實現(xiàn)用于網(wǎng)絡(luò)分組的處理和轉(zhuǎn)發(fā)的路由器的數(shù)據(jù)平面方面,并且可以對于控制平面功能與遠(yuǎn)程裝置通信。
控制平面可以負(fù)責(zé)系統(tǒng)配置、路由表信息的管理和交換??刂破矫婵梢酝ㄟ^生成并且處理目的地為cpe300的組件(諸如數(shù)據(jù)平面)或者由這些組件發(fā)起的控制平面分組來執(zhí)行這些任務(wù)。例如,控制平面可以與其它網(wǎng)絡(luò)裝置或者系統(tǒng)交換拓?fù)湫畔?,并且使用諸如路由信息協(xié)議(rip)、開放最短路徑優(yōu)先(ospf)或者邊界網(wǎng)關(guān)協(xié)議(bgp)的路由協(xié)議構(gòu)造/維護(hù)路由表。在一些實例中,控制平面可以被稱作管理平面。
控制平面可以包括用于執(zhí)行上述功能的一些的一個或多個控制器。所述一個或多個控制器可以使用一個或多個處理實體以處理控制平面分組。
處理實體可以指的是物理處理器(諸如
數(shù)據(jù)平面可以負(fù)責(zé)基于從控制平面接收的路由和配置信息將網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中的下一跳。在某些實現(xiàn)中,數(shù)據(jù)平面可以支持與路由實體相關(guān)聯(lián)的層2和層3路由功能、有狀態(tài)和無狀態(tài)防火墻、應(yīng)用流、應(yīng)用邏輯網(wǎng)關(guān)、網(wǎng)絡(luò)訪問裝置(nad)能力,并且在一些實例中,可以支持層4路由和更高層級檢查能力的部分或者全部實現(xiàn)。在一些實例中,數(shù)據(jù)平面也可以被稱作轉(zhuǎn)發(fā)平面。數(shù)據(jù)平面可以使用如上所述的一個或多個處理實體實現(xiàn),以處理通過一個或多個接口從網(wǎng)絡(luò)或者關(guān)于控制平面從控制平面接收的分組。每個數(shù)據(jù)平面可以具有一個或多個物理(例如,網(wǎng)絡(luò)接口卡,nic)或者虛擬接口(例如,本地環(huán)回)。在某些實現(xiàn)中,接口可以通過端口號可尋址。
可以在配置控制平面和數(shù)據(jù)平面中使用物理和虛擬處理實體以及一個或多個裝置的任何組合。例如,控制平面和數(shù)據(jù)平面的任何一個可以是物理實體或者虛擬實體,這些物理實體或者虛擬實體在單個系統(tǒng)或者多個系統(tǒng)上操作以提供它們各自的功能,而不背離本發(fā)明的范圍。
至少在一個示例實施例中,由網(wǎng)絡(luò)運(yùn)營者操作的遠(yuǎn)程服務(wù)器可以提供控制平面功能,而cpe可以提供數(shù)據(jù)平面功能。
除了網(wǎng)絡(luò)堆棧306之外,圖3例示其中虛擬化技術(shù)被用于執(zhí)行在這里描述的實施例的示例執(zhí)行環(huán)境。一般地,“虛擬化技術(shù)”可以被用于提供共享相同的物理資源的不同操作環(huán)境之間的隔離。換句話講,虛擬化可以提供計算資源從物理約束的邏輯抽象。一個常見的抽象被稱作虛擬機(jī)(也被稱作訪客(guest))或者vm,該虛擬機(jī)或者vm在維持抽象的同時將在vm中運(yùn)行的內(nèi)容直接接口提供到物理硬件。一般地,虛擬化技術(shù)允許運(yùn)行在同一物理硬件上的多個vm獨(dú)立地操作并且彼此隔離。系統(tǒng)上的一個或多個vm由虛擬化的機(jī)器監(jiān)視器,或者vmm312(也被稱作超管理器(hypervisor))管理。vmm312是負(fù)責(zé)托管(host)和管理vm的軟件或者固件層。vmm312通常在比vm高的特權(quán)級別執(zhí)行,并且管理系統(tǒng)的處理器和存儲器,以及為每個vm分配其它資源。一般地,直接在裝置上(即,不在vm內(nèi))運(yùn)行的軟件可以被稱作主機(jī)304。在圖3中,在系統(tǒng)上運(yùn)行的網(wǎng)絡(luò)堆棧306、虛擬機(jī)監(jiān)視器312以及任何其它相關(guān)聯(lián)的操作系統(tǒng)或者非虛擬化的應(yīng)用進(jìn)程和/或功能可以被稱作主機(jī)304。
圖3例示執(zhí)行vmm312的裝置硬件302。vmm312管理第一vm308(vm1)、第二vm310(vm2)以及任何另外的vm312。如圖10中更詳細(xì)描述的,裝置硬件302除了其它組件之外可以包括一個或多個處理器以用于操作計算系統(tǒng)。在某些實現(xiàn)中,處理器可以包括對虛擬化技術(shù)的硬件支持。例如,
在某些實施例中,如圖3中所示,vm1308可以執(zhí)行來自與網(wǎng)絡(luò)堆棧306和/或cpe300的cpe提供者相同或者不同的供應(yīng)商的路由器。而且,在某些實施例中,vm2310可以執(zhí)行防火墻以用于提供防火墻功能。在某些實例中,在主機(jī)304中或者至少在比vm高的特權(quán)級別并且作為網(wǎng)絡(luò)堆棧306的部分而執(zhí)行的路由器可以具有另外的功能。而且,在網(wǎng)絡(luò)堆棧306中實現(xiàn)的路由器相對于在vm中實現(xiàn)的路由器可以具有較高的性能,因為網(wǎng)絡(luò)堆棧306可以具有對硬件的直接訪問,以及更健壯的資源分配。例如,操作系統(tǒng)可以使在用戶空間中運(yùn)行的實時線程專用于網(wǎng)絡(luò)堆棧306,這可以導(dǎo)致以最優(yōu)性能對路由、交換和防火墻功能分配諸如處理器核的某些專用硬件資源。
在某些實現(xiàn)中,在虛擬機(jī)中執(zhí)行路由和交換功能可以使得能夠部署具有來自cpe提供者的全特征路由能力的cpe。然而,在vm中提供運(yùn)行路由、交換和聯(lián)網(wǎng)功能的能力允許cpe300部署之后的靈活性。例如,如果客戶想要訂購不同的服務(wù)(其需要具有不由cpe300的網(wǎng)絡(luò)堆棧306中的駐存路由和交換提供的某些構(gòu)建版本的某些路由器),那么在這種實例中,cpe300可以遠(yuǎn)程地配置為從任何數(shù)量的供應(yīng)商下載包括必要路由器的映像并且在vm中執(zhí)行路由和/或交換映像。
圖4是根據(jù)公開的某些方面的、例示示例cpe的更詳細(xì)框圖。如圖4中所示,cpe400可以包括存儲器430和系統(tǒng)硬件420。系統(tǒng)硬件420可以包括一個或多個處理實體422以及物理網(wǎng)絡(luò)接口424。物理網(wǎng)絡(luò)接口424可以提供用于從cpe傳輸和接收網(wǎng)絡(luò)分組的物理端口。換句話講,物理網(wǎng)絡(luò)接口是cpe與專用或公共網(wǎng)絡(luò)之間的互連點(diǎn)。例如,以太網(wǎng)端口可以是物理網(wǎng)絡(luò)接口。來自系統(tǒng)硬件420的一個或多個處理器422可以將軟件從存儲裝置925和/或網(wǎng)絡(luò)加載到存儲器430中以用于執(zhí)行與cpe400相關(guān)聯(lián)的操作。
存儲器430可以被邏輯地分割成若干區(qū)域,包括內(nèi)核空間(或者內(nèi)核)404以及用戶空間408。從內(nèi)核空間404加載的指令當(dāng)被加載在一個或多個處理實體422中時可以在內(nèi)核模式中執(zhí)行。類似地,從用戶空間408加載的指令當(dāng)被加載在一個或多個處理實體422中時可以在用戶模式中執(zhí)行。在內(nèi)核模式中從內(nèi)核404執(zhí)行的指令在一些實例中可以具有較高的特權(quán)并且可以能夠執(zhí)行特權(quán)指令,諸如操縱與處理器相關(guān)聯(lián)的某些控制寄存器。
在某些實施例中,如先前所討論的,虛擬機(jī)管理器(vmm)406可以連同內(nèi)核404一起被實現(xiàn)、添加或者運(yùn)行以支持虛擬化環(huán)境。在這種環(huán)境中,內(nèi)核404、vmm406以及用戶空間408的部分可以認(rèn)為是主機(jī)環(huán)境402的部分。vmm406可以管理一個或多個虛擬機(jī)(vm)或者訪客404。換句話講,主機(jī)402可以包括vmm406并且托管訪客404。訪客404可以認(rèn)為是用戶空間408的部分。
在某些實施例中,cpe400可以具有使用基于內(nèi)核的虛擬機(jī)(kvm)和/或快速仿真器(qemu)的基于軟件的虛擬化環(huán)境(即,仿真)或者硬件支持的虛擬化環(huán)境。例如,kvm可以允許由處理器虛擬化支持的資源的虛擬化以及命名空間的虛擬化。另一方面,qemu仿真處理器/內(nèi)核沒有虛擬化的資源。例如,qemu仿真網(wǎng)絡(luò)接口卡(nic)接口。
在某些實施例中,libvert416被用作vmm406與訪客404之間的另外層。在某些實施例中,libvert416可以提供應(yīng)用可編程接口(api)到qemu中。libvert還提供用于管理虛擬化功能(諸如開始、停止和管理vm)的工具集。另外,在某些實施例中,根據(jù)公開的方面,libvert命令通過數(shù)據(jù)模型410暴露,使得可以使用操作模式命令(諸如命令行接口(cli)、代表性狀態(tài)轉(zhuǎn)移(rest)和netconf)遠(yuǎn)程地或者通過連接的終端管理虛擬機(jī)。使用這種操作模式命令,一個或多個虛擬機(jī)404的虛擬機(jī)生命周期可以由配置服務(wù)器306或者ossbss遠(yuǎn)程地管理。
操作模式命令可以被用于暴露環(huán)境的某些狀態(tài)。在某些實現(xiàn)中,在操作模式中,遠(yuǎn)程實體可以重置某些資源,但是可能不被允許改變配置。這種配置改變在配置模式中基于具體的安全上下文執(zhí)行。在某些方面,vm生命周期管理,諸如開始、停止或者改變vm配置,可以通過更新數(shù)據(jù)模型410(導(dǎo)致命令通過libvirt416到達(dá)vm)通過來自用戶空間408的命令而執(zhí)行。例如,使用操作模式命令,用戶可以登錄并且可以通過修改數(shù)據(jù)模型參數(shù)開始和管理vm。
在某些實例中,諸如開放堆棧的協(xié)議可以被用于直接通過libvert416api管理訪客404。在公開的某些其它方面,如以上簡要地討論的,代替使用諸如開放堆棧的協(xié)議,所有命令通過用戶空間408中由主機(jī)402維護(hù)的數(shù)據(jù)模型410隔絕(sequester)。這可以允許使用一個模型跟蹤關(guān)于cpe400執(zhí)行的所有網(wǎng)絡(luò)動作,代替隨著時間跨越實現(xiàn)地跟蹤各種狀態(tài)機(jī)中的狀態(tài)(潛在地導(dǎo)致跨越裝置的狀態(tài)的不同步傳播以及錯誤)。
在一個實現(xiàn)中,可以使用又另一個下一代(yang)模型實現(xiàn)數(shù)據(jù)模型410。yang是用于netconf的數(shù)據(jù)建模語言。yang可以被用于對網(wǎng)絡(luò)元件的配置數(shù)據(jù)以及狀態(tài)數(shù)據(jù)兩者建模。而且,yang可以被用于定義由網(wǎng)絡(luò)元件發(fā)出的事件通知的格式。因此,使用yang實現(xiàn)的數(shù)據(jù)模型410允許cpe400具有使用統(tǒng)一模型維持過渡和靜態(tài)狀態(tài)的能力。
例如,在某些實施例中,所有可更新的操作模式狀態(tài)可以使用用戶接口層作為參數(shù)被暴露。與操作模式狀態(tài)相關(guān)聯(lián)的這些參數(shù)的每一個被映射到數(shù)據(jù)模型410中。所以,為了添加新的特征,像可以具有對于它的現(xiàn)有l(wèi)inux守護(hù)進(jìn)程的dhcp服務(wù)器一樣,特征可以作為映射到數(shù)據(jù)模型410中的許多參數(shù)暴露給用戶。所以,對dhcp服務(wù)器的任何改變直接反映在數(shù)據(jù)模型410中。這種統(tǒng)一數(shù)據(jù)模型410的實現(xiàn)允許系統(tǒng)中各種數(shù)據(jù)元素的更好同步。例如,如果系統(tǒng)守護(hù)進(jìn)程或者用戶訪問數(shù)據(jù)元素,那么數(shù)據(jù)元素的真實和當(dāng)前拷貝可以通過訪問數(shù)據(jù)模型410而訪問。
而且,支持聯(lián)網(wǎng)基礎(chǔ)設(shè)施的cpe400的若干方面作為用戶空間408的部分而實現(xiàn)以增加系統(tǒng)的響應(yīng)性。
傳統(tǒng)地,在內(nèi)核處在物理網(wǎng)絡(luò)接口424處接收的分組由以太網(wǎng)驅(qū)動在內(nèi)核空間中處理。內(nèi)核的聯(lián)網(wǎng)堆??梢詧?zhí)行網(wǎng)過濾(netfiltering)、路由并且然后通過不同的物理網(wǎng)絡(luò)接口送出經(jīng)處理的分組。
相反,如這里所公開的,cpe400在內(nèi)核中提供影子(shadow)接口驅(qū)動。這些影子接口驅(qū)動負(fù)責(zé)獲得分組并且將它們移動到用戶空間分組管道(框412和414),同時對內(nèi)核性能帶來可以忽略的成本。在用戶空間408中,使用負(fù)責(zé)處理網(wǎng)絡(luò)分組的實時線程處理分組。
“線程”可以指的是處理器或者處理核上的執(zhí)行的線程,并且可以包括與特定的任務(wù)相關(guān)聯(lián)的指令流或者指令的有序序列。內(nèi)核404可以將實時線程指派給特定的任務(wù)。實時線程可以使用比其它線程或任務(wù)高的優(yōu)先級執(zhí)行或者可以被指派專用資源。傳統(tǒng)地,實時線程被指派給諸如音頻或者視頻的任務(wù),這些任務(wù)需要恒定的吞吐量以避免抖動。
在某些實現(xiàn)中,將實時線程指派給特定的任務(wù),諸如處理網(wǎng)絡(luò)分組,可以導(dǎo)致將物理核指派給該線程的處理,從而導(dǎo)致網(wǎng)絡(luò)分組的相對無抖動和優(yōu)先的處理。在又其它實施例中,內(nèi)核404或者用戶空間402代碼可以將親和性(affinity)指派給實時線程,使得特定的核被指派給實時線程。而且,隨著核的數(shù)量增加,由于核作為專用資源被指派給具體任務(wù)的處理,所以系統(tǒng)的性能可以隨著核的數(shù)量而線性地增加。
如上所述的實現(xiàn)可以避免需要較低延遲和恒定吞吐量的任務(wù)(諸如實時任務(wù))當(dāng)在內(nèi)核空間中處理時可能被較高優(yōu)先級線程(諸如內(nèi)核線程或者其它實時線程)阻塞、導(dǎo)致對于像voip的甚至實時分組處理任務(wù)的分組處理的差性能的情況。因此,公開的方面通過在用戶空間408中指派由操作系統(tǒng)提供的實時線程來在用戶空間408中執(zhí)行關(guān)鍵的分組處理。
在某些方面,內(nèi)核的開放構(gòu)建服務(wù)可以用使用實時線程的層級2(l2)分組管道412和層級3(l3)分組管道414替換。在某些實施例中,l2分組管道412和l3分組管道414可以直接與虛擬機(jī)通信。這種實現(xiàn)允許l2分組處理、l3分組處理和虛擬機(jī)間的通信。因此,代替使用v交換機(jī),虛擬機(jī)404可以使用在主機(jī)402的用戶空間408中提供的路由能力彼此通信。
v交換機(jī)是在apache許可下實現(xiàn)的虛擬交換機(jī)。上述實現(xiàn)可以提供相比通過v交換機(jī)提供的vm通信的若干優(yōu)點(diǎn)。例如,這里描述的實現(xiàn)可以提供相比v交換機(jī)的更好的通信延遲以及較低的抖動,特別是在低功率機(jī)器上。例如,通過v交換機(jī)的最大性能是每秒鐘大約1.2至1.5百萬分組,這小于千兆字節(jié)的吞吐量。并且傳統(tǒng)地,在低功率裝置上,使用v交換機(jī)吞吐量是大約200兆字節(jié)。因此,代替使用v交換機(jī),虛擬機(jī)404可以使用在主機(jī)402的用戶空間408中提供的路由能力彼此通信。
在某些情況下,其中兩個vm可以各自實現(xiàn)路由器并且彼此通信,傳統(tǒng)地,網(wǎng)絡(luò)分組通過諸如以太網(wǎng)接口的物理網(wǎng)絡(luò)接口424到達(dá)主機(jī)402,并且被傳遞到在第一vm中實現(xiàn)的第一路由器。為了使第一vm與第二路由器通信,網(wǎng)絡(luò)分組通過v交換機(jī)返回并且到達(dá)第二路由器(諸如防火墻),并且返回離開系統(tǒng)。在這種實現(xiàn)中,網(wǎng)絡(luò)功能(網(wǎng)絡(luò)地址轉(zhuǎn)換(nat)、服務(wù)點(diǎn)(pos)等)在虛擬機(jī)中發(fā)生。
相反,根據(jù)公開的方面,某些聯(lián)網(wǎng)功能通過由cpe400自身實現(xiàn)的主機(jī)402的用戶空間408處理。因此,在vm404中實現(xiàn)的某些路由能力可以使用在主機(jī)402中實現(xiàn)的聯(lián)網(wǎng)功能,這可以以比在虛擬機(jī)404中實現(xiàn)所有的聯(lián)網(wǎng)功能低得多的延遲執(zhí)行。而且,管理端口可以以類似的方式配置到在系統(tǒng)中本機(jī)(native)操作的任何其它網(wǎng)絡(luò)接口。在某些方面,除了在傳統(tǒng)系統(tǒng)中主機(jī)402處執(zhí)行的管理相關(guān)的功能之外,在主機(jī)402處實現(xiàn)的聯(lián)網(wǎng)功能包括轉(zhuǎn)發(fā)相關(guān)的功能。因此,路由器的一個在主機(jī)中實現(xiàn)并且第二路由器在vm中實現(xiàn)。l2和/或l3分組管道可以在主機(jī)中操作的第一路由器與vm中操作的第二路由器之間通信時使用。
這種實現(xiàn)允許cpe系統(tǒng)的靈活性,其中在系統(tǒng)部署到客戶駐地之后,系統(tǒng)可以使用作為主機(jī)402的部分而實現(xiàn)的本機(jī)路由能力提供路由功能或者可以通過在訪客402中提供路由能力來增強(qiáng)或者替換網(wǎng)絡(luò)功能。
與虛擬機(jī)或者主機(jī)的內(nèi)核空間相對,公開的方面使用實時線程在主機(jī)的用戶空間408中執(zhí)行路由功能,顯著地增加對于分組的分組處理和轉(zhuǎn)發(fā)的聯(lián)網(wǎng)功能的性能。
另外,cpe400可以提供綜合軟件平臺以啟用網(wǎng)絡(luò)運(yùn)營者或者cpe提供者的多個服務(wù),提供端到端“打電話回家(phonehome)”解決方案,用于配置下載、生命周期管理和故障排除,并且提供到sdn控制器架構(gòu)的無縫集成。
vm生命周期管理:
圖5是根據(jù)公開的某些方面的、例示在cpe上執(zhí)行的vm的管理的另一個示例框圖。圖5中的粗線例示操作模式命令如何可以管理在cpe上執(zhí)行的vm的操作模式狀態(tài)。操作模式命令可以被用于訪問由數(shù)據(jù)模型410暴露的裝置環(huán)境的某種狀態(tài)。在某些實現(xiàn)中,使用操作模式命令,遠(yuǎn)程實體可以重置某些資源,但是可能不被允許改變配置。這種配置改變在配置模式中基于具體的安全上下文執(zhí)行。在某些方面,vm生命周期管理操作,諸如開始、停止或者改變vm配置,可以通過操作模式命令執(zhí)行。在圖5中,粗線502指示操作模式命令。操作模式命令可以使用命令行接口(cli)、代表性狀態(tài)轉(zhuǎn)移(rest)、netconf或者任何其它合適的手段發(fā)出。
操作模式命令更新數(shù)據(jù)模型410的參數(shù)。所有命令通過用戶空間408中由主機(jī)402維護(hù)的數(shù)據(jù)模型410隔絕。這可以允許使用一個模型跟蹤關(guān)于cpe400執(zhí)行的所有網(wǎng)絡(luò)動作,代替隨著時間跨越實現(xiàn)跟蹤各種狀態(tài)機(jī)中的狀態(tài)(潛在地導(dǎo)致跨越裝置的狀態(tài)的不同步傳播以及錯誤)。
在一個實現(xiàn)中,可以使用又另一個下一代(yang)模型實現(xiàn)數(shù)據(jù)模型410。yang是用于netconf的數(shù)據(jù)建模語言。yang可以被用于對網(wǎng)絡(luò)元件的配置數(shù)據(jù)以及狀態(tài)數(shù)據(jù)兩者建模。而且,yang可以被用于定義由網(wǎng)絡(luò)元件發(fā)出的事件通知的格式。因此,使用yang實現(xiàn)的數(shù)據(jù)模型410允許cpe400具有使用統(tǒng)一模型維持過渡和靜態(tài)狀態(tài)的能力。
例如,在某些實施例中,在數(shù)據(jù)模型410中表示的所有可更新的操作狀態(tài)可以使用用戶接口層作為參數(shù)被暴露。與操作模式狀態(tài)相關(guān)聯(lián)的這些參數(shù)的每一個被映射到數(shù)據(jù)模型410中。所以,為了添加新的特征,像可以具有對于它的現(xiàn)有l(wèi)inux守護(hù)進(jìn)程的dhcp服務(wù)器一樣,特征可以作為映射到數(shù)據(jù)模型410中的許多參數(shù)暴露給用戶。對dhcp服務(wù)器的任何改變直接反映在數(shù)據(jù)模型410中。這種統(tǒng)一數(shù)據(jù)模型410的實現(xiàn)允許系統(tǒng)中各種數(shù)據(jù)元素的更好同步。例如,如果系統(tǒng)守護(hù)進(jìn)程或者用戶訪問數(shù)據(jù)元素,那么數(shù)據(jù)元素的真實和當(dāng)前拷貝可以通過訪問數(shù)據(jù)模型410而訪問。
在一個實施例中,對數(shù)據(jù)模型410做出的、與對vm的更新有關(guān)的任何改變被傳播(粗線504)到libvirt416庫。libvirt庫與vmm406協(xié)調(diào)并且更新vm以及相應(yīng)地在vm內(nèi)執(zhí)行的路由器,如由粗線506所示。
在一些實施例中,諸如開放流的協(xié)議可以被用于直接更新vm。然而,更新vm的這種帶外實現(xiàn)不提供將數(shù)據(jù)模型410同步到對vm或者與vm相關(guān)聯(lián)的路由器做出的改變的機(jī)制,風(fēng)險在于在表示cpe的操作狀態(tài)時數(shù)據(jù)模型的準(zhǔn)確性和完整性。
本機(jī)cpe分組處理:
圖6是根據(jù)公開的至少某些方面的、例示由cpe執(zhí)行的路由功能的框圖。
當(dāng)運(yùn)送到客戶時,根據(jù)公開的方面,cpe400可以提供本機(jī)cpe分組處理。換句話講,路由器可以被設(shè)計到cpe400的主機(jī)402中。在一些實例中,cpe400可以提供路由能力,諸如交換和路由,甚至不設(shè)置虛擬機(jī)。然而,預(yù)安裝或者在cpe400部署在客戶駐地之后的任何隨后的時間點(diǎn),路由器可以在vm內(nèi)安裝或者升級。
如這里所描述的,在主機(jī)402中本機(jī)運(yùn)行路由器向cpe提供如部署那樣將網(wǎng)絡(luò)分組路由到客戶的能力??蛻艉?或網(wǎng)絡(luò)運(yùn)營者可以在vm中安裝另一個路由器以對裝置提供部分或者全部路由能力。
根據(jù)公開的方面,在cpe400中的主機(jī)402中執(zhí)行的路由器可以被優(yōu)化以用于執(zhí)行分組處理。在某些實施例中,支持聯(lián)網(wǎng)基礎(chǔ)設(shè)施的cpe400的若干方面作為用戶空間408的部分而實現(xiàn)以增加系統(tǒng)的響應(yīng)性。
傳統(tǒng)地,在內(nèi)核處在物理網(wǎng)絡(luò)接口處接收的分組由以太網(wǎng)驅(qū)動在內(nèi)核空間中處理。內(nèi)核的聯(lián)網(wǎng)堆??梢詧?zhí)行網(wǎng)過濾、路由并且然后通過不同的物理網(wǎng)絡(luò)接口送出經(jīng)處理的分組。
相反,如這里所公開的,cpe400在內(nèi)核中提供影子接口驅(qū)動。這些影子接口驅(qū)動負(fù)責(zé)獲得網(wǎng)絡(luò)分組并且將它們移動到用戶空間分組管道(框412和414),同時對內(nèi)核性能帶來可以忽略的成本。圖6例示網(wǎng)絡(luò)分組到達(dá)物理網(wǎng)絡(luò)接口424(諸如eth0606)并且調(diào)用在內(nèi)核404中執(zhí)行的eth0驅(qū)動602(粗線610)。在內(nèi)核404中執(zhí)行的eth0驅(qū)動602將網(wǎng)絡(luò)分組從eth0606拷貝到用戶空間408存儲器(粗線614)。
在用戶空間408中,使用負(fù)責(zé)處理網(wǎng)絡(luò)分組的實時線程處理網(wǎng)絡(luò)分組。l2分組管道412或者l3分組管道414可以被用于網(wǎng)絡(luò)分組的處理。圖6例示eth0驅(qū)動602將控制轉(zhuǎn)移到l2分組管道412并且處理分組。
在某些實現(xiàn)中,將實時線程指派給特定的任務(wù),諸如處理網(wǎng)絡(luò)分組,可以導(dǎo)致將物理核指派給該線程的處理,從而導(dǎo)致網(wǎng)絡(luò)分組的相對無抖動和優(yōu)先的處理。在又其它實施例中,內(nèi)核404或者用戶空間402代碼可以將親和性指派給實時線程,使得特定的核被指派給實時線程。而且,隨著核的數(shù)量增加,因為核可以作為專用資源被指派給網(wǎng)絡(luò)分組的處理,所以對于分組處理的性能可以隨著核的數(shù)量而線性地增加。
如上所述的實現(xiàn)可以避免需要較低延遲和恒定吞吐量的任務(wù)(諸如實時任務(wù))當(dāng)在內(nèi)核空間中處理時可能被較高優(yōu)先級線程(諸如內(nèi)核線程或者其它實時線程)阻塞、導(dǎo)致對于像voip的甚至實時分組處理任務(wù)的分組處理的差性能的情況。因此,公開的方面通過在用戶空間408中指派由操作系統(tǒng)提供的實時線程來在用戶空間408中執(zhí)行關(guān)鍵的分組處理。
vm間通信:
如圖6中所示,第二路由器可以在訪客的vm3中實現(xiàn),并且來自cpe400的主機(jī)402的路由器可以與在vm中實現(xiàn)的路由器通信。例如,在一個實現(xiàn)中,cpe400中的本機(jī)路由器可以執(zhí)行路由功能并且vm3中的第二路由器可以實現(xiàn)防火墻。
如圖6中所示,在l2分組管道412中處理分組之后,cpe400可以將控制變換(shift)到libvirt416,以將網(wǎng)絡(luò)分組轉(zhuǎn)移到vm3用于進(jìn)一步處理。在處理網(wǎng)絡(luò)分組之后,vm3中的第二路由器可以通過libvirt416和vmm406(線620)、eth1驅(qū)動604(線622)以及然后eth1608(線612)將網(wǎng)絡(luò)分組送出第二物理網(wǎng)絡(luò),諸如eth1608接口。
圖7是根據(jù)公開的至少某些方面的、例示vm間通信的框圖。
如圖7中所示,在vm2中實現(xiàn)的第一路由器可以與在vm3中實現(xiàn)的第二路由器通信。通信可以通過libvirt416路由到適當(dāng)?shù)姆纸M管道并且通過libert416回到vm3。
傳統(tǒng)地,在這種設(shè)置中,v交換機(jī)將被用于vm間通信。如先前所討論的,v交換機(jī)是在apache許可下實現(xiàn)的虛擬交換機(jī)。通過v交換機(jī)的最大性能是每秒鐘大約1.2至1.5百萬分組,這小于千兆字節(jié)的吞吐量。并且傳統(tǒng)地,在低功率裝置上,使用v交換機(jī)吞吐量是大約200兆字節(jié)。一般地,當(dāng)在同一裝置上執(zhí)行的兩個vm之間通信時,v交換機(jī)引入緩慢瓶頸。
因此,代替使用v交換機(jī),根據(jù)公開的方面,vm404可以使用在主機(jī)402的用戶空間408中提供的路由能力彼此通信。cpe400的主機(jī)402中的路由器或者路由能力可以被用于在vm之間路由分組。更具體地,l2和l3分組管道可以被用作橋,以用于以比v交換機(jī)高得多的速度的vm間通信。l2和l3分組管道可以使得能夠進(jìn)行比v交換機(jī)快的vm間通信,至少因為分組的處理被指派用戶空間中的實時線程,如先前更詳細(xì)地描述的那樣。
圖8是例示對于cpe的部署模型的公開的某些方面的示例流程圖。
在框802處,部署到客戶駐地的cpe被接通并且使用來自cpe自身的駐存固件/軟件映像啟動,并且獲取它的ip地址。cpe可以使用dhcp協(xié)議獲取它的ip地址。在框804處,如果cpe沒有連接到由網(wǎng)絡(luò)運(yùn)營者維護(hù)的遠(yuǎn)程服務(wù)器,那么在框806處,用戶可以使用web圖形用戶界面(gui)本地檢查cpe的狀態(tài)。與網(wǎng)絡(luò)運(yùn)營者相關(guān)聯(lián)的遠(yuǎn)程服務(wù)器可以是呼叫家庭服務(wù)器、配置服務(wù)器或者任何其它服務(wù)器。
在框808處,如果cpe可以連接到遠(yuǎn)程服務(wù)器,那么cpe向網(wǎng)絡(luò)運(yùn)營者注冊它自己。例如,cpe在向網(wǎng)絡(luò)運(yùn)營者注冊它自己之前可以唯一地將它自己識別為由網(wǎng)絡(luò)運(yùn)營者操作或者維護(hù)的裝置。
在框810處,可以檢查cpe軟件/固件映像以確定它是否最新的。例如,在一個實現(xiàn)中,cpe上的駐存映像的散列(hash)和/或版本可以與來自網(wǎng)絡(luò)運(yùn)營者的最新映像的散列和/或版本相比較??梢栽赾pe與遠(yuǎn)程服務(wù)器之間的安全通信信道上執(zhí)行關(guān)于更新版本以及它的散列的通信。如果當(dāng)前安裝在cpe上的軟件/固件映像過時或者損壞,那么在框812處,網(wǎng)絡(luò)運(yùn)營者可以將更新的軟件/固件映像下載到cpe上。在框814處,一旦cpe軟件/固件被更新,cpegui就可以顯示已連接和/或就緒狀態(tài)。
在框816處,網(wǎng)絡(luò)用戶可以登錄到由網(wǎng)絡(luò)運(yùn)營者提供的網(wǎng)絡(luò)門戶以用于配置和維護(hù)cpe。網(wǎng)絡(luò)用戶可以訪問與特定cpe相關(guān)聯(lián)的門戶儀表板(dashboard)(框818)。在框820處,基于來自網(wǎng)絡(luò)用戶的輸入,網(wǎng)絡(luò)門戶可以確定網(wǎng)絡(luò)用戶是否打算添加與cpe相關(guān)聯(lián)的服務(wù)(在框820處)并且將網(wǎng)絡(luò)用戶帶到新的服務(wù)選擇窗格(pane)(框822)。類似地,基于來自網(wǎng)絡(luò)用戶的輸入,在框824處,網(wǎng)絡(luò)門戶可以確定網(wǎng)絡(luò)用戶是否打算配置服務(wù)并且將網(wǎng)絡(luò)用戶帶到服務(wù)配置窗格(框826)。一旦確定新的配置和服務(wù),網(wǎng)絡(luò)運(yùn)營者就可以對cpe進(jìn)行標(biāo)記,以用于cpe下一次啟動時的升級/更新。在一些實例中,網(wǎng)絡(luò)用戶可以強(qiáng)制cpe上的重啟。
已描述了cpe300和cpe400的多個方面,現(xiàn)在將關(guān)于圖9描述可以實現(xiàn)公開的各種方面的計算系統(tǒng)的示例。根據(jù)一個或多個方面,如圖9中所例示的計算機(jī)系統(tǒng)可以合并為cpe300和400的部分,它可以實現(xiàn)、執(zhí)行和/或?qū)嵭性谶@里描述的特征、方法和/或方法步驟的任何一個和/或全部。例如,計算機(jī)系統(tǒng)900可以表示cpe300或者cpe400的組件的一些。在一些實施例中,系統(tǒng)900被配置為實現(xiàn)上述方法的任何一個。圖9提供計算機(jī)系統(tǒng)900的一個實施例的示意例示,如這里所描述的,計算機(jī)系統(tǒng)900可以執(zhí)行由各種其它實施例提供的方法,和/或可以起網(wǎng)絡(luò)裝置或者網(wǎng)絡(luò)裝置的組件或者分布式網(wǎng)絡(luò)系統(tǒng)300的作用。圖9僅意圖提供各種組件的一般化例示,可以在適當(dāng)?shù)那闆r下利用它們的任何一個和/或全部。因此,圖9廣泛地例示如何以相對單獨(dú)或者相對更加集成的方式實現(xiàn)個體系統(tǒng)元件。
計算機(jī)系統(tǒng)900被示出包括可以經(jīng)由總線905電氣耦合(或者適當(dāng)?shù)?,可以另外處于通信?的硬件元件。硬件元件可以包括一個或多個處理器910,其沒有限制地包括一個或多個通用處理器和/或一個或多個專用處理器(諸如數(shù)字信號處理芯片、圖形加速處理器和/或類似物);一個或多個輸入裝置915,該輸入裝置915可以沒有限制地包括無線接收器、無線傳感器、鼠標(biāo)、鍵盤和/或類似物;以及一個或多個輸出裝置920,該輸出裝置920可以沒有限制地包括顯示單元、打印機(jī)和/或類似物。
在一些實施例中,一個或多個處理器910可以被配置為執(zhí)行以上關(guān)于圖9描述的功能的子集或者全部。處理器910可以包括例如一般處理器和/或應(yīng)用處理器。在一些實施例中,處理器被集成到處理視覺跟蹤裝置輸入和無線傳感器輸入的元件中。
計算機(jī)系統(tǒng)900還可以包括一個或多個非暫時性存儲裝置925(和/或處于與其通信中),該非暫時性存儲裝置925可以沒有限制地包括本地和/或網(wǎng)絡(luò)可訪問存儲,和/或可以沒有限制地包括磁盤驅(qū)動器、驅(qū)動器陣列、光學(xué)存儲裝置、固態(tài)存儲裝置,諸如隨機(jī)存取存儲器(“ram”)和/或只讀存儲器(“rom”),它們可以可編程、可閃速更新和/或類似物。這種存儲裝置可以被配置為實現(xiàn)任何適當(dāng)?shù)臄?shù)據(jù)存儲,其沒有限制地包括各種文件系統(tǒng)、數(shù)據(jù)庫結(jié)構(gòu)和/或類似物。
計算機(jī)系統(tǒng)900也可以包括通信子系統(tǒng)930,該通信子系統(tǒng)930可以沒有限制地包括調(diào)制解調(diào)器、網(wǎng)絡(luò)卡(無線或者有線)、紅外通信裝置、無線通信裝置和/或芯片集(諸如
計算機(jī)系統(tǒng)900也可以包括被示為當(dāng)前位于工作存儲器935內(nèi)的軟件元素,包括操作系統(tǒng)940、裝置驅(qū)動、可執(zhí)行庫和/或其它代碼,諸如一個或多個應(yīng)用程序945,如這里所描述的,其可以包括由各種實施例提供的計算機(jī)程序,和/或可以被設(shè)計為實現(xiàn)由其它實施例提供的方法和/或配置系統(tǒng)。僅僅通過示例的方式,關(guān)于以上討論的方法而描述的一個或多個過程,例如關(guān)于圖9所描述的,可以實現(xiàn)為由計算機(jī)(和/或計算機(jī)內(nèi)的處理器)可執(zhí)行的代碼和/或指令;然后,在一方面,這種代碼和/或指令可以被用于配置和/或改編(adapt)通用計算機(jī)(或者其它裝置)以執(zhí)行根據(jù)所描述的方法的一個或多個操作。
這些指令和/或代碼的集合可以存儲在計算機(jī)可讀存儲介質(zhì)(諸如上述存儲裝置925)上。在一些情況下,存儲介質(zhì)可以合并在計算機(jī)系統(tǒng)(諸如計算機(jī)系統(tǒng)900)內(nèi)。在其它實施例中,存儲介質(zhì)可以與計算機(jī)系統(tǒng)分離(例如,可移除介質(zhì),諸如緊湊盤),和/或提供在安裝包中,使得存儲介質(zhì)可以被用于利用存儲在其上的指令/代碼對通用計算機(jī)進(jìn)行編程、配置和/或改編。這些指令可以采取由計算機(jī)系統(tǒng)900可執(zhí)行的可執(zhí)行代碼的形式和/或可以采取源和/或可安裝代碼的形式,其在計算機(jī)系統(tǒng)900上編譯和/或安裝(例如,使用各種一般可用的編譯器、安裝程序、壓縮/解壓縮實用工具等的任何一個)時然后采取可執(zhí)行代碼的形式。
可以根據(jù)具體的需求做出大量變化。例如,也可以使用定制硬件,和/或特定的元素可以以硬件、軟件(包括可移植軟件,諸如小應(yīng)用程序等)或者二者實現(xiàn)。而且,可以采用到諸如網(wǎng)絡(luò)輸入/輸出裝置的其它計算裝置的連接。
一些實施例可以采用計算機(jī)系統(tǒng)(諸如計算機(jī)系統(tǒng)900)以執(zhí)行根據(jù)公開的方法。例如,所描述的方法的過程的一些或者全部可以響應(yīng)于處理器910執(zhí)行包含在工作存儲器935中的一個或多個指令的一個或多個序列(其可以合并到操作系統(tǒng)940和/或其它代碼(諸如應(yīng)用程序945)中)而由計算機(jī)系統(tǒng)900執(zhí)行。這種指令可以從另一個計算機(jī)可讀介質(zhì)(諸如存儲裝置925的一個或多個)讀入到工作存儲器935中。僅僅通過示例的方式,包含在工作存儲器935中的指令的序列的執(zhí)行可以使處理器910執(zhí)行這里所描述的方法(例如關(guān)于圖8描述的方法)的一個或多個過程。
如這里所使用的,術(shù)語“機(jī)器可讀介質(zhì)”和“計算機(jī)可讀介質(zhì)”指的是參與提供使機(jī)器以具體的方式操作的數(shù)據(jù)的任何介質(zhì)。在使用計算機(jī)系統(tǒng)900實現(xiàn)的實施例中,各種計算機(jī)可讀介質(zhì)可以涉及提供指令/代碼給處理器910以用于執(zhí)行和/或可以被用于存儲和/或攜載這種指令/代碼(例如,作為信號)。在許多實現(xiàn)中,計算機(jī)可讀介質(zhì)是物理和/或有形的存儲介質(zhì)。這種介質(zhì)可以采取許多形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)包括例如光盤和/或磁盤,諸如存儲裝置925。易失性介質(zhì)沒有限制地包括動態(tài)存儲器,諸如工作存儲器935。傳輸介質(zhì)沒有限制地包括同軸電纜、銅線和光纖,包括包含總線905的導(dǎo)線,以及通信子系統(tǒng)930的各種組件(和/或通信子系統(tǒng)930通過其提供與其它裝置的通信的介質(zhì))。因此,傳輸介質(zhì)也可以采取波的形式(沒有限制地包括無線電、聲和/或光波,諸如在無線電波和紅外數(shù)據(jù)通信期間生成的那些)。
物理和/或有形的計算機(jī)可讀介質(zhì)的常見形式包括例如軟盤、柔性盤、硬盤、磁帶或者任何其它磁性介質(zhì)、cd-rom、任何其它光學(xué)介質(zhì)、穿孔卡、紙帶、具有孔圖案的任何其它物理介質(zhì)、ram、prom、eprom、flash-eprom、任何其它存儲器芯片或者盒、如下文描述的載波、或者計算機(jī)可以從其讀取指令和/或代碼的任何其它介質(zhì)。
各種形式的計算機(jī)可讀介質(zhì)可以涉及將一個或多個指令的一個或多個序列攜載到處理器910以用于執(zhí)行。僅僅通過示例的方式,指令可以初始攜載在遠(yuǎn)程計算機(jī)的磁盤、光盤或者固態(tài)硬盤上。遠(yuǎn)程計算機(jī)可以將指令加載到它的動態(tài)存儲器中并且將指令作為信號在傳輸介質(zhì)上發(fā)送以由計算機(jī)系統(tǒng)900接收和/或執(zhí)行。根據(jù)本發(fā)明的各種實施例,可以是電磁信號、聲學(xué)信號、光學(xué)信號和/或類似物的形式的這些信號是可以在其上編碼指令的載波的所有示例。
通信子系統(tǒng)930(和/或其組件)一般將接收信號,并且總線905然后可以將信號(和/或由信號攜載的數(shù)據(jù)、指令等)攜載到工作存儲器935,處理器910從工作存儲器935檢索并且執(zhí)行指令。由工作存儲器935接收的指令可以在由處理器910執(zhí)行之前或者之后可選地被存儲在非暫時性存儲裝置925上。存儲器935可以包含根據(jù)這里描述的數(shù)據(jù)庫和方法的任何一個的至少一個數(shù)據(jù)庫。存儲器935因此可以存儲在本公開的任何一個(包括圖1-8和相關(guān)描述)中討論的值的任何一個。
在一些實現(xiàn)中,計算機(jī)系統(tǒng)900,諸如前面的圖中討論的cpe,可以使用基于x86的架構(gòu)以用于它的處理需要。然而,本發(fā)明的實施例不限于基于x86的架構(gòu)。在某些實施例中,計算機(jī)系統(tǒng)900可以以在1-2機(jī)架單元(ru)形狀因子實現(xiàn)。在某些實施例中,可以使用商業(yè)成品(cots)或者cogs組件實現(xiàn)計算機(jī)系統(tǒng)以包含成本。
在這里描述的方法可以由圖9中的各種框?qū)崿F(xiàn)。例如,處理器910可以被配置為執(zhí)行流程圖中的框的功能的任何一個。存儲裝置925可以被配置為存儲中間結(jié)果,諸如在這里提及的框的任何一個內(nèi)討論的全局唯一屬性或者局部唯一屬性。存儲裝置925也可以包含與本公開的任何一個相一致的數(shù)據(jù)庫。存儲器935可以類似地被配置為記錄執(zhí)行在這里提及的框的任何一個中描述的功能的任何一個所必要的信號、信號的表示或者數(shù)據(jù)庫值??赡苄枰淮鎯υ谥T如ram的臨時或者易失性存儲器中的結(jié)果也可以包括在存儲器935中,并且可以包括與可以存儲在存儲裝置925中的相類似的任何中間結(jié)果。根據(jù)這里描述的本公開,輸入裝置915可以被配置為從衛(wèi)星和/或基站接收無線信號。根據(jù)本公開的任何一個,輸出裝置920可以被配置為顯示圖像、打印文本、傳輸信號和/或輸出其它數(shù)據(jù)。
以上討論的方法、系統(tǒng)和裝置是示例。各種實施例可以適當(dāng)?shù)厥÷?、代替或者添加各種過程或者組件。例如,在替代配置中,所描述的方法可以按照與描述的不同的次序來執(zhí)行,和/或可以添加、省略和/或組合各種階段。關(guān)于某些實施例而描述的特征可以在各種其它實施例中組合??梢砸灶愃频姆绞浇M合實施例的不同方面和元素。技術(shù)演變,并且因此,許多元素是不將本公開的范圍限制到那些具體示例的示例。
在描述中給出具體細(xì)節(jié)以提供實施例的徹底理解。然而,實施例可以不使用這些具體細(xì)節(jié)而實踐。例如,眾所周知的電路、處理、算法、結(jié)構(gòu)和技術(shù)沒有示出不必要的細(xì)節(jié)以便避免模糊實施例。該描述僅提供示例實施例,并且不打算限制本發(fā)明的范圍、可適用性或者配置。然而,實施例的前面的描述將向本領(lǐng)域那些技術(shù)人員提供實現(xiàn)本發(fā)明的實施例的使能描述。可以在元素的功能和布置方面做出各種改變而不背離本發(fā)明的精神和范圍。
而且,一些實施例描述為如流程圖或者框圖描繪的處理。盡管每個可以將操作描述為順序的處理,但是可以并行地或者并發(fā)地執(zhí)行許多操作。另外,可以重新布置操作的次序。處理可以具有沒有包括在圖中的另外的步驟。而且,方法的實施例可以由硬件、軟件、固件、中間件、微代碼、硬件描述語言或者它們的任何組合實現(xiàn)。當(dāng)以軟件、固件、中間件或者微代碼實現(xiàn)時,執(zhí)行相關(guān)聯(lián)任務(wù)的程序代碼或者代碼段可以存儲在諸如存儲介質(zhì)的計算機(jī)可讀介質(zhì)中。處理器可以執(zhí)行相關(guān)聯(lián)的任務(wù)。
已描述了若干實施例,但是可以使用各種修改、替代構(gòu)造和等同物而不背離公開的精神。例如,以上的元素可以僅僅是較大系統(tǒng)的組件,其中其它規(guī)則可以優(yōu)先于本發(fā)明的應(yīng)用或者另外修改本發(fā)明的應(yīng)用。許多步驟可以在考慮以上的元素之前、期間或者之后進(jìn)行。因此,以上的描述不限制公開的范圍。
已描述了各種示例。這些和其它示例在下面的權(quán)利要求書的范圍內(nèi)。