两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

上下文感知的分布式防火墻的制作方法

文檔序號:11637251閱讀:291來源:國知局
上下文感知的分布式防火墻的制造方法與工藝



背景技術:

在軟件定義數(shù)據(jù)中心(sddc)環(huán)境中,分布式網(wǎng)絡防火墻正在取代傳統(tǒng)的防火墻,以便滿足粒度和可擴展性的新要求。通常,防火墻控制器被部署在每一個管理程序上,以保護在管理程序上運行的虛擬機(vm),并且集中式管理組件將防火墻規(guī)則分發(fā)到sddc中的所有防火墻控制器。經(jīng)常,每一個防火墻控制器接收到針對整個數(shù)據(jù)中心的大的規(guī)則集。防火墻控制器然后將所有規(guī)則應用到數(shù)據(jù)中心中的每一個受保護的vm。圖1圖示數(shù)據(jù)中心100中的分布式防火墻方案,其中防火墻規(guī)則的完整集被應用到每一個vm。在這種情況下,因為必須對照整個規(guī)則集檢查每一個網(wǎng)絡分組,所以大的規(guī)則集會對防火墻引擎造成顯著的負擔。此外,因為規(guī)則集被復制到每一個受保護的vm,所以它還消耗大量的存儲器。



技術實現(xiàn)要素:

本發(fā)明的一些實施例提供了上下文感知的分布式防火墻方案,其中任務是為一組網(wǎng)絡地址提供防火墻保護的防火墻引擎應用與和機器相關聯(lián)的一組網(wǎng)絡地址相關的防火墻規(guī)則的精簡集。在一些實施例中,由在主機機器上運行的管理程序或虛擬化軟件實現(xiàn)防火墻控制器,并且由防火墻控制器保護的網(wǎng)絡地址對應于由管理程序托管的vm的網(wǎng)絡地址。這些防火墻控制器中的一些或全部是允許主機機器操作vm的管理程序的一部分。防火墻控制器又通過提供與這些vm的網(wǎng)絡地址相關的規(guī)則來保護那些vm。

在一些實施例中,每一個主機機器接收關于數(shù)據(jù)中心中的所有規(guī)則的防火墻配置消息。但是,主機機器的管理程序/防火墻控制器只識別用于其每一個vm的相關規(guī)則,使得管理程序將只需要應用識別出的相關規(guī)則來對傳入分組進行檢查。在一些實施例中,管理程序實現(xiàn)允許每一個vm的過濾器從所有接收到的規(guī)則中快速識別相關規(guī)則的搜索結構。

在一些實施例中,搜索結構用于識別與vm或一組vm相關的限定規(guī)則(由ipcidr塊指定的規(guī)則)。搜索結構的每一個節(jié)點對應于ipcidr塊。如果規(guī)則的源地址字段或目的地地址字段指定節(jié)點的ipcidr塊,那么規(guī)則與節(jié)點相關聯(lián)。如果若干規(guī)則在它們的地址字段中指定相同的ipcidr塊,那么對應于該ipcidr塊的節(jié)點將與該若干規(guī)則相關聯(lián)。在一些實施例中,搜索結構被構造為二進制前綴樹。

為了使用搜索結構來識別用于vm的相關規(guī)則,一些實施例使用vm的ip地址來查詢搜索結構。查詢遍歷搜索結構的節(jié)點,并且收集與遍歷的節(jié)點相關聯(lián)的所有規(guī)則。如果搜索結構中的節(jié)點(i)其cidr塊包含所查詢的ip地址并且(ii)其所有祖先節(jié)點也被遍歷,那么該節(jié)點將被遍歷。

前面的發(fā)明內(nèi)容旨在用作對本發(fā)明的一些實施例的簡要介紹。它并不意味著是本文檔中所公開的所有發(fā)明性主題的介紹或概述。以下的具體實施方式和具體實施方式所參考的附圖將進一步描述在發(fā)明內(nèi)容中所描述的實施例以及其它實施例。因此,為了理解本文檔所描述的所有實施例,需要對發(fā)明內(nèi)容、具體實施方式和附圖進行全面地閱讀。此外,因為可以在不脫離本主題的精神的情況下以其它特定形式來體現(xiàn)所要求保護的主題,所以所要求保護的主題不受發(fā)明內(nèi)容、具體實施方式和附圖中的說明性細節(jié)的限制,而是要由所附權利要求來限定。

附圖說明

本發(fā)明的新穎特征在所附權利要求中闡述。但是,為了解釋的目的,在以下圖中闡述本發(fā)明的數(shù)個實施例。

圖1圖示數(shù)據(jù)中心中的分布式防火墻方案,其中防火墻規(guī)則的完整集被應用到每一個vm。

圖2圖示分布式防火墻體系架構,其中每一個分布式防火墻控制器僅為它正在保護的網(wǎng)絡地址使用精簡的相關規(guī)則集。

圖3圖示在管理程序中實現(xiàn)的用于保護正在那些管理程序上操作的vm的上下文感知的防火墻控制器。

圖4圖示管理程序,該管理程序從網(wǎng)絡管理器接收防火墻規(guī)則的完整集并且識別與管理程序的每一個vm相關的規(guī)則。

圖5概念性地圖示用于通過僅識別和應用相關規(guī)則來執(zhí)行防火墻過濾操作的過程。

圖6圖示其中每一個規(guī)則僅具有作為源地址和目的地地址的ipcidr塊的防火墻規(guī)則。

圖7圖示用于從集中的合格規(guī)則中高效地識別相關規(guī)則的搜索結構。

圖8圖示使用搜索樹來識別用于數(shù)個示例ip地址的相關規(guī)則。

圖9概念性地圖示用于使用防火墻規(guī)則的搜索樹來識別與ip地址相關的合格規(guī)則的過程。

圖10概念性地圖示用于構建用于識別相關規(guī)則的前綴樹搜索結構并更新到本地防火墻控制器的過程。

圖11圖示正在操作用于托管虛擬機的虛擬化軟件的示例主機機器。

圖12概念性地圖示實現(xiàn)本發(fā)明的一些實施例的電子系統(tǒng)。

具體實施方式

在以下描述中,出于解釋的目的闡述了許多細節(jié)。但是,本領域普通技術人員將認識到的是,可以在不使用這些具體細節(jié)的情況下實踐本發(fā)明。在其它的情況下,以框圖的形式示出眾所周知的結構和設備,以便防止用不必要的細節(jié)模糊本發(fā)明的描述。

本發(fā)明的一些實施例提供了上下文感知的分布式防火墻方案,其中任務是為一組網(wǎng)絡地址提供防火墻保護的防火墻引擎應用與和機器相關聯(lián)的一組網(wǎng)絡地址相關的防火墻規(guī)則的精簡集。對于一些實施例,本發(fā)明通過基于vm的網(wǎng)絡地址減少在每一個vm上加載的規(guī)則來解決由大的規(guī)則集引起的挑戰(zhàn)。在一些實施例中,vm的網(wǎng)絡地址用于確定用于vm的所有相關防火墻規(guī)則。

在一些實施例中,當vm連接到網(wǎng)絡時,其將自己呈現(xiàn)為具有一個或多個有效的網(wǎng)絡地址,以便參與到網(wǎng)絡通信中。管理程序檢測vm的網(wǎng)絡地址,然后識別防火墻規(guī)則,該防火墻規(guī)則的已定義的網(wǎng)絡地址是vm的網(wǎng)絡地址的超集。這些識別出的規(guī)則是與vm相關的防火墻規(guī)則。這些規(guī)則被應用到vm,并且防火墻引擎將僅使用這些規(guī)則來檢查vm的網(wǎng)絡流量。通常,用于數(shù)據(jù)中心的防火墻規(guī)則的總數(shù)可以相當大,范圍從數(shù)萬到數(shù)十萬。但是,用于單個vm的防火墻規(guī)則的數(shù)量相當小,不超過一百個。因此,基于精簡的相關規(guī)則集的分布式防火墻可以在存儲器和處理時間方面實現(xiàn)顯著的節(jié)省。

在一些實施例中,管理程序中的防火墻引擎將所有防火墻規(guī)則的網(wǎng)絡地址存儲在類特里(trie)的數(shù)據(jù)結構中。在檢測到新vm的網(wǎng)絡地址后,防火墻引擎查找規(guī)則特里并尋找其地址是vm的網(wǎng)絡地址的超集的所有規(guī)則。然后它將這些規(guī)則應用到vm。防火墻引擎將僅使用附屬于vm的規(guī)則來檢查該vm的網(wǎng)絡流量。

下面描述本發(fā)明的數(shù)個更詳細的實施例。部分i描述用于實現(xiàn)上下文感知的分布式防火墻方案的系統(tǒng)體系架構。部分ii描述促進識別用于本地防火墻控制器的相關規(guī)則的搜索結構。部分iii描述用作vm的主機機器的示例計算設備。最后,部分iv描述實現(xiàn)本發(fā)明的一些實施例的電子系統(tǒng)。

i.體系架構

圖2圖示分布式防火墻體系架構,其中每一個分布式防火墻控制器為它正在保護的網(wǎng)絡地址僅使用精簡的相關規(guī)則集。一些實施例將這些分布式防火墻控制器稱為是上下文感知的,這是因為這些防火墻控制器中的每一個都知道其必須保護的網(wǎng)絡地址,并且又僅使用與其知道的網(wǎng)絡地址相關的規(guī)則集。

該圖圖示實現(xiàn)分布式防火墻方案的數(shù)據(jù)中心200。如所圖示的,數(shù)據(jù)中心200采用若干分布式(或本地)防火墻控制器211-219。這些防火墻控制器中的每一個的任務是保護一個或多個網(wǎng)絡地址(即,與這些網(wǎng)絡地址相關聯(lián)的網(wǎng)絡節(jié)點)。如所圖示的,防火墻控制器211的任務是保護網(wǎng)絡地址a、b和c,并且防火墻控制器219的任務是保護網(wǎng)絡地址x、y和z。

數(shù)據(jù)中心200具有防火墻規(guī)則的完整集205。每一個規(guī)則具有源字段和目的地字段。每一個源字段/目的地字段指定網(wǎng)絡地址、網(wǎng)絡地址的范圍(諸如,cidr塊)、或網(wǎng)絡地址的集合(諸如,容器)。具有分別落在規(guī)則的源字段和目的地字段內(nèi)的源地址和目的地地址的分組受規(guī)則的指定動作/要求的約束。

這些規(guī)則用于保護數(shù)據(jù)中心200中的所有網(wǎng)絡地址(例如,在數(shù)據(jù)中心的所有主機機器上運行的所有vm)。如所圖示的,一些規(guī)則適用于由防火墻控制器211保護的地址(地址a、b和c由規(guī)則1、2、3、1001和1002保護),而一些規(guī)則適用于由防火墻控制器219保護的地址(地址x、y和z由規(guī)則1001、1002、2001和2002保護)。但是,與其中每一個防火墻控制器必須檢查數(shù)據(jù)中心100的整個規(guī)則集的圖1的分布式防火墻方案不同,圖2的數(shù)據(jù)中心200中的每一個防火墻控制器是上下文感知的,并且僅檢查用于它正在保護的網(wǎng)絡地址的規(guī)則集205的相關子集。

如所圖示的,上下文感知的防火墻控制器211僅提供分別用于地址a、b和c的規(guī)則的子集221、222和223。因此,地址a的防火墻僅檢查規(guī)則1、2和1001,地址b的防火墻僅檢查規(guī)則1、3和1002,地址c的防火墻僅檢查2和3,等等。同樣,上下文感知防火墻控制器219僅提供分別用于地址x、y和z的規(guī)則的子集227、228和229。因此,地址x的防火墻僅檢查規(guī)則1001、2001和2002,地址y的防火墻僅檢查規(guī)則1002和2001,地址z的防火墻僅檢查規(guī)則2002,等等。

在一些實施例中,防火墻控制器211-219由在主機機器上運行的管理程序或虛擬化軟件實現(xiàn),并且由防火墻控制器保護的網(wǎng)絡地址對應于由管理程序托管的vm的網(wǎng)絡地址。這些防火墻控制器中的一些或全部是允許主機機器操作vm的管理程序的一部分。防火墻控制器又通過提供與這些vm的網(wǎng)絡地址相關的規(guī)則來保護那些vm。對于一些實施例,圖3圖示在管理程序中實現(xiàn)的用于保護正在那些管理程序上操作的vm的上下文感知的防火墻控制器。

圖3圖示具有用于保護整個數(shù)據(jù)中心的集中式防火墻規(guī)則305的集合的數(shù)據(jù)中心300。集中式防火墻規(guī)則305由數(shù)據(jù)中心300的網(wǎng)絡管理器310維護。數(shù)個主機機器311-319位于數(shù)據(jù)中心300中。網(wǎng)絡管理器310和主機機器311-319通過物理網(wǎng)絡基礎設施390互連,這允許網(wǎng)絡管理器向主機機器中的每一個發(fā)送控制平面消息,包括防火墻配置消息。數(shù)據(jù)中心300中的主機機器311-319操作vma至z,并且集中式防火墻規(guī)則305包括用于保護所有那些vm的規(guī)則。

每一個主機機器操作允許主機機器托管一個或多個vm的管理程序或虛擬化軟件。如所圖示的,主機機器311托管vma、b和c,主機機器312托管vmd、e和f,并且主機機器319托管vmx、y和z。每一個主機機器的虛擬化軟件還操作用于保護其正在托管的vm的分布式防火墻控制器(的本地副本)。每一個管理程序基于與vm相關的規(guī)則的精簡集為其vm中的每一個執(zhí)行防火墻操作。例如,主機機器311的虛擬化軟件僅為vma使用與vma相關的防火墻規(guī)則,為vmb使用與vmb相關的防火墻規(guī)則,等等。由于不需要搜索不相關的防火墻規(guī)則,因此每一個管理程序實現(xiàn)的分布式防火墻控制器能夠在分組處理時間和存儲器使用方面實現(xiàn)顯著的節(jié)省。

不同的實施例使用不同的方法來確保每一個分布式防火墻控制器僅考慮相關規(guī)則。在一些其它實施例中,數(shù)據(jù)中心的網(wǎng)絡管理器得知哪些vm正在被特定的分布式防火墻控制器保護。網(wǎng)絡管理器然后識別用于那些vm的相關規(guī)則,并將僅包含識別出的相關規(guī)則的防火墻配置消息發(fā)送到特定的分布式防火墻控制器。因此,每一個主機機器只存儲用于它正在托管的vm的相關規(guī)則。

在一些實施例中,每一個主機機器接收關于數(shù)據(jù)中心中的所有規(guī)則的防火墻配置消息。如圖3所圖示的,每一個主機機器311-319從網(wǎng)絡管理器310接收數(shù)據(jù)中心防火墻規(guī)則305中的所有規(guī)則。但是,主機機器的管理程序/防火墻控制器僅識別用于其每一個vm的相關規(guī)則,使得管理程序將只需要應用識別出的相關規(guī)則來對傳入分組進行檢查。圖4圖示管理程序,該管理程序從網(wǎng)絡管理器接收防火墻規(guī)則的完整集并且識別與管理程序的每一個vm相關的規(guī)則。

如所圖示的,用于數(shù)據(jù)中心300中的每一個主機機器的管理程序包括本地防火墻控制器、搜索結構和用于管理程序的vm的一組過濾器。例如,主機機器311運行管理程序,包括本地防火墻控制器421、搜索結構431和分別用于其vma、b和c的一組過濾器441-443。本地防火墻控制器421從網(wǎng)絡管理器310接收控制平面消息??刂破矫嫦ㄓ糜谡麄€數(shù)據(jù)中心的防火墻規(guī)則。本地防火墻控制器421又使用接收到的防火墻規(guī)則來構建包括數(shù)據(jù)中心300的整個防火墻規(guī)則集的搜索結構431。管理程序311的每一個過濾器(過濾器441-443)又使用搜索結構431來查詢與其對應的vm的ip地址相關的規(guī)則。vm的相關規(guī)則是其源地址或目的地地址包含該vm的ip地址或與該vm的ip地址完全相同的那些規(guī)則。

在一些實施例中,當受保護的vm的虛擬nic(網(wǎng)絡接口控制器)連接到管理程序的l2虛擬交換機時,管理程序創(chuàng)建過濾器作為邏輯網(wǎng)絡自省(introspection)實體。這種過濾器包含防火墻規(guī)則集,并且允許防火墻控制器對照規(guī)則檢查經(jīng)過虛擬nic的所有網(wǎng)絡分組。在從網(wǎng)絡管理器接收到新的防火墻配置消息之后,管理程序將用新規(guī)則對所有受保護的vm的過濾器進行編程。在一些實施例中,管理程序不是將所有接收到的規(guī)則傳遞到內(nèi)核中的每一個適用的過濾器,而是實現(xiàn)允許每一個vm的過濾器從所有接收到的規(guī)則中快速識別相關規(guī)則的搜索結構(諸如,用于管理程序311的搜索結構431)。將在下面部分ii中進一步描述用于識別相關規(guī)則的搜索結構。

圖5概念性地圖示用于通過僅識別和應用相關規(guī)則來執(zhí)行防火墻過濾操作的過程500。在一些實施例中,該過程由在主機機器上運行的管理程序執(zhí)行。具體而言,在一些實施例中,過程500由vm的過濾器模塊執(zhí)行。

當過程接收(在510處)vm的分組時,該過程開始。該過程然后使用(在520處)防火墻規(guī)則搜索結構來基于vm的ip地址識別與vm相關的規(guī)則。在一些實施例中,過濾器高速緩存相關規(guī)則,并且當防火墻規(guī)則已被更新時,例如,當管理程序從網(wǎng)絡控制器接收到防火墻配置消息時,僅使用防火墻規(guī)則搜索結構來更新其高速緩存的規(guī)則。

該過程然后識別(在530處)接收到的分組的源地址字段和目的地地址字段,并且通過應用vm的相關規(guī)則對傳入分組執(zhí)行(在540處)防火墻操作(例如,阻止、允許等)。在一些實施例中,該過程瀏覽相關規(guī)則并且應用那些具有分別包含傳入分組的源字段和目的地字段的源字段和目的地字段的規(guī)則。然后過程500結束。

ii.搜索結構

如所提到的,防火墻規(guī)則的地址字段可以指定網(wǎng)絡地址、網(wǎng)絡地址的范圍或網(wǎng)絡地址的集合。不同的實施例使用針對不同類型的地址字段優(yōu)化的不同類型的搜索結構。例如,一些實施例使用基于容器的搜索結構,該基于容器的搜索結構針對被指定為網(wǎng)絡地址的容器的地址字段優(yōu)化。于2014年6月4日提交的標題為“efficientpacketclassificationfordynamiccontainers”的美國專利申請no.14/295,553描述了用于使用容器來指定源地址和/或目的地地址的規(guī)則的搜索結構。美國專利申請no.14/295,553通過引用被結合于此。

在一些實施例中,防火墻規(guī)則使用ipcidr塊來指定源地址和目的地地址,并且管理程序中的本地防火墻控制器使用搜索結構,該搜索結構為了在使用ipcidr塊來指定源地址和目的地地址的規(guī)則當中尋找相關規(guī)則而優(yōu)化。cidr(無類別域間路由)記號是ip地址及其相關聯(lián)路由前綴的緊湊表示。該記號由ip地址和前綴大小構建,后者相當于路由前綴掩碼中的前導“1”比特的數(shù)量。ip地址根據(jù)ipv4或ipv6的標準來表示。之后跟隨著分隔符,斜杠('/')字符,并且前綴大小被表示為十進制數(shù)。該地址可以表示單個不同的接口地址或整個網(wǎng)絡的起始地址。例如,ipcidr塊192.168.100.0/24指定路由前綴192.168.100.0和子網(wǎng)掩碼255.255.255.0(即,24個前導“1”比特)。換句話說,記號192.168.100.0/24表示包括從192.168.100.0到192.168.100.255的地址范圍的子網(wǎng)。對于一些實施例,單獨的ip地址可以被認為是/32cidr塊(即,具有用于整個子網(wǎng)掩碼的“1”比特)。

在一些實施例中,如果規(guī)則的源地址和目的地地址兩者都被定義為ipcidr塊,但vm的ip地址不落在任何一個ipcidr塊中,那么該規(guī)則被認為與vm無關。來自或去往該vm的任何ip分組將不匹配不相關的規(guī)則,這是因為分組的源地址和目的地地址都將與規(guī)則的源地址和目的地地址不匹配。相反,如果vm的ip地址落在規(guī)則的源ipcidr塊或目的地ipcidr塊的任何一個中,那么該規(guī)則與vm相關,并且因此必須用于檢查來自或去往vm的分組。因此,在一些實施例中,本地防火墻控制器基于這種標準尋找與vm相關的所有規(guī)則。

一些實施例將防火墻規(guī)則分類為兩種類別:合格規(guī)則和不合格規(guī)則。如果規(guī)則的源地址和目的地地址兩者都被定義為ipcidr塊(或一組ipcidr塊),并且ipcidr塊既不是廣播地址也不是多播地址,那么該規(guī)則是合格的。所有其它規(guī)則都是不合格規(guī)則。不合格規(guī)則通常落入以下類別:

·規(guī)則的任何一個地址或兩個地址未被定義,這意味著它們是通配符地址。

·規(guī)則的任何一個地址或兩個地址具有否定標志。

·規(guī)則的任何一個地址或兩個地址是廣播或多播地址。

·規(guī)則的任何一個地址或兩個地址是非ip地址。

在一些實施例中,無論受保護的vm的ip地址如何,所有不合格規(guī)則都由管理程序的本地防火墻控制器使用。換句話說,在一些實施例中,本地防火墻控制器將所有不合格規(guī)則視為相關規(guī)則,而不管受保護的vm的ip地址如何。但是,防火墻系統(tǒng)通常具有比不合格規(guī)則多得多的合格規(guī)則。因此,在一些實施例中,本地防火墻控制器使用搜索結構來高效地尋找合格的相關規(guī)則。

圖6圖示示例防火墻規(guī)則集600。防火墻規(guī)則集600包括合格規(guī)則601-608(具有id為1至8的規(guī)則),每一個規(guī)則僅具有ipcidr塊作為源地址和目的地地址。例如,規(guī)則601將ipcidr塊192.168.17.0/24指定為其源地址,并且將cidr塊192.168.101.0/28指定為其目的地地址。規(guī)則606分別指定ip地址192.168.17.5和192.168.17.247作為源地址和目的地地址,但是這些相當于在其子網(wǎng)掩碼中具有32個1的cidr塊(即192.168.17.5/32和192.168.17.247/32)。

防火墻規(guī)則集600的ipcidr塊都屬于子網(wǎng)192.0.0.0/8。由合格規(guī)則集中的規(guī)則使用的ipcidr塊是192.0.0.0/8的子集或子網(wǎng)。圖6還概念性地圖示由集600中的規(guī)則指定的一些不同ipcidr之間的邏輯關系。例如,vm192.168.101.2在子網(wǎng)192.168.101.0/28中,其是由規(guī)則601、605和607使用的ipcidr。子網(wǎng)192.168.101.0/28又是由規(guī)則602使用的子網(wǎng)192.168.0.0/16的子集。因此,規(guī)則601、602、605和607是用于具有ip地址192.168.101.2的vm的相關的合格的防火墻規(guī)則。

圖7圖示用于從集600中的合格規(guī)則中高效地識別相關規(guī)則的搜索結構700。搜索結構700包括節(jié)點701-714。每一個節(jié)點對應于ipcidr塊。如果規(guī)則的源地址字段或目的地地址字段指定節(jié)點的ipcidr塊,那么規(guī)則與該節(jié)點相關聯(lián)。如果兩個(或更多個)規(guī)則都在其地址字段中指定相同的ipcidr塊,那么對應于該ipcidr塊的節(jié)點將與這些規(guī)則相關聯(lián)(例如,通過包括這些規(guī)則的鏈表)。例如,規(guī)則601(規(guī)則id1)、605(規(guī)則id5)和607(規(guī)則id7)都指定ipcidr塊192.168.101.0/28作為源地址或目的地地址。在前綴樹700中,節(jié)點708對應于ipcidr塊192.168.101.0/28,并且因此節(jié)點708與具有id1、5和7的規(guī)則相關聯(lián)。如所圖示的,節(jié)點702、703、704、705、708、710、711、712、713和714都是與來自集600的一個或多個合格規(guī)則相關聯(lián)的節(jié)點。

搜索結構700被構造為二進制前綴樹或特里(即,具有基數(shù)2的帕特里夏樹(patriciatree)),其中每一個節(jié)點最多具有兩個子節(jié)點。在一些實施例中,每一個子節(jié)點的cidr塊是父節(jié)點的cidr的子網(wǎng)。例如,節(jié)點707和711是節(jié)點706的子節(jié)點。節(jié)點707(192.168.64.0/18)的cidr塊和節(jié)點711(192.168.17.0/24)的cidr塊都是由節(jié)點706(192.168.0.0/17)的cidr塊包含的子網(wǎng)。因此,搜索樹700中的任何節(jié)點對應于包含其后代節(jié)點的所有ipcir塊的ipcidr塊(例如,根節(jié)點701的cidr塊(192.0.0.0/8)包含前綴樹中所有其它節(jié)點702-713的cidr塊)。

在一些實施例中,每一個節(jié)點的ipcidr塊可以被表示為前綴二進制串,該前綴二進制串的長度由“/”記號確定的。例如,節(jié)點706的cidr192.168.0.0/17可以被表示為17比特長的前綴二進制串11000000101010000。又可以通過用后綴子串附加父節(jié)點的前綴串得到節(jié)點的每一個子節(jié)點。例如,節(jié)點707(192.168.64.0/18)的cidr可以通過將1比特后綴子串“1”附加到父節(jié)點706的前綴串得到(即,11000000101010000_1)。另一個子節(jié)點711(192.168.17.0/24)的cidr可以通過將7比特后綴子串“0010001”附加到父節(jié)點706的前綴二進制串得到(即,11000000101010000_0010001)。用于子節(jié)點的附加串又變?yōu)樽庸?jié)點的前綴二進制串,其又可以附加后綴子串以得到孫子節(jié)點的前綴串,以此類推。因此,除了根節(jié)點701之外,搜索樹700中的每一個節(jié)點都與后綴子串相關聯(lián)。例如,節(jié)點701與8比特后綴子串1100000相關聯(lián),節(jié)點705與8比特后綴子串10101000相關聯(lián),節(jié)點706與1比特后綴子串0相關聯(lián),節(jié)點711與7比特后綴子串0010001相關聯(lián),并且節(jié)點712與8比特后綴子串11110111相關聯(lián)。每一個節(jié)點的二進制串或cidr塊可以通過將其所有祖先節(jié)點的后綴子串附加到根節(jié)點導出。例如,節(jié)點712的cidr塊192.168.17.247是節(jié)點701、705、706、711和712的所有后綴子串的附加結果(1100000_10101000_0_0010001_11110111)。

對于在搜索樹中具有兩個子節(jié)點的節(jié)點,一個子節(jié)點位于“1”路徑上,并且另一個子節(jié)點位于“0”路徑上。更準確地說,在一些實施例中,一個子節(jié)點與以“0”開始的后綴子串相關聯(lián),并且另一個子節(jié)點與以“1”開始的后綴子串相關聯(lián)。例如,節(jié)點706具有與后綴子串“1”相關聯(lián)的“1”子節(jié)點707和與后綴子串“0010001”相關聯(lián)的“0”子節(jié)點711。當遍歷用于特定ip地址或cidr塊的搜索樹時,如果“1”路徑的后綴串匹配特定ip地址或cidr塊中的對應比特,那么遍歷將采用“1”路徑。同樣,如果“0”路徑的后綴串匹配特定ip地址或cidr塊的對應比特,那么遍歷將采用“0”路徑。如果“1”路徑或“0”路徑都不具有對ip地址或cidr塊的匹配后綴串,那么遍歷終止。

如上所述,搜索樹700用于促進高效識別與vm或一組vm相關的合格規(guī)則(由ipcidr塊指定的規(guī)則)。為了使用搜索樹識別用于vm的相關規(guī)則,一些實施例使用vm的ip地址來查詢搜索樹。查詢遍歷搜索樹的節(jié)點,并且收集與遍歷的節(jié)點相關聯(lián)的所有規(guī)則。如果搜索樹中的節(jié)點(i)其cidr塊包含所查詢的ip地址并且(ii)其所有祖先節(jié)點也被遍歷,那么該節(jié)點將被遍歷。

圖8圖示使用搜索樹700來識別用于數(shù)個示例ip地址的相關規(guī)則?;趘m的ip地址為vm進行每一個搜索或查詢。第一示例使用前綴樹700尋找用于ip地址192.168.101.2的相關規(guī)則。由于ip地址192.168.101.2(11000000101010000110010100000010)被解析為用于確定搜索樹的遍歷路徑的二進制子串,遍歷遵循節(jié)點701、705、706、707、708、709的路徑。具體而言,該地址被解析為與遍歷的節(jié)點701、705、706、707、708、709的后綴子串匹配的子串(11000000_10101000_0_1_1001010000_0010)。沿此路徑,與遍歷的節(jié)點705、708和709相關聯(lián)的規(guī)則(規(guī)則2、1、5、7)被收集并被識別為與ip地址192.168.101.2相關的規(guī)則。因為節(jié)點709沒有子節(jié)點,所以遍歷在節(jié)點709處結束。節(jié)點709也是具有包含被查詢的ip地址的cidr塊的最后一個節(jié)點(節(jié)點709的cidr與所查詢的ip地址192.168.101.2一致)。

第二示例使用前綴樹700尋找用于具有ip地址192.66.113.9的vm的相關規(guī)則。由于ip地址192.66.113.9(11000000010000100111000100001001)被解析為用于確定搜索樹的遍歷路徑的二進制子串,遍歷遵循節(jié)點701、702和703的路徑。具體而言,ip地址的最高有效部分(11000000_0100001001_1)用于匹配節(jié)點701、702和703的后綴子串。沿此路徑,與節(jié)點702和703相關聯(lián)的規(guī)則(規(guī)則2、5、8)被收集并被識別為與ip地址192.66.113.9相關的規(guī)則。因為節(jié)點703沒有子節(jié)點,所以遍歷在節(jié)點703處結束。節(jié)點703也是具有包含被查詢的ip地址的cidr塊的最后一個節(jié)點(子網(wǎng)192.66.96.0/19包含ip地址192.66.113.9)。

第三示例使用前綴樹700尋找用于ip地址192.168.128.100的相關規(guī)則。由于ip地址192.168.128.100(11000000101010001000000001100100)被解析為用于確定搜索樹的遍歷路徑的二進制子串,遍歷遵循節(jié)點701和705的路徑。具體而言,ip地址的最高有效部分(11000000_10101000)用于匹配節(jié)點701和705的后綴子串。沿此路徑,與節(jié)點705相關聯(lián)的規(guī)則(規(guī)則2)被收集并被識別為與ip地址192.168.128.100相關的規(guī)則。因為節(jié)點705的子節(jié)點(706和714)都不能包含所查詢的ip地址(192.168.128.100既不落在192.168.0.0/17內(nèi)又不落在192.168.165.201內(nèi)),所以遍歷在節(jié)點705處結束。這也是因為所查詢的ip地址192.168.128.100不能遵循節(jié)點705的“1”路徑或“0”路徑,因為對應的子節(jié)點的后綴子串與ip地址192.168.128.100中的對應比特不匹配。

對于一些實施例,圖9概念性地圖示用于使用防火墻規(guī)則的搜索樹來識別與ip地址相關的合格規(guī)則(在一些實施例中不合格規(guī)則被視為相關)的過程900。在一些實施例中,ip地址是在主機機器的管理程序上運行的vm的ip地址,并且管理程序執(zhí)行過程900,以便識別作為其分布式防火墻程序的一部分用于保護vm的相關規(guī)則。在一些實施例中,用于vm的過濾器模塊作為管理程序的一部分執(zhí)行過程900。在一些實施例中,該過程由管理程序中的搜索結構管理模塊執(zhí)行,該管理程序接收對ip地址的查詢并且又產(chǎn)生用于所查詢的ip地址的相關規(guī)則。

當過程900接收到(在910處)基于ip地址的對相關規(guī)則的查詢時,過程900開始。在一些實施例中,該過程接收用作相關規(guī)則查詢的基礎的ip地址。該過程然后確定(在920處)搜索結構的根節(jié)點是否包含所查詢的ip地址。如果不包含,那么過程900終止,這是因為在搜索中沒有其它節(jié)點可能包含所查詢的ip地址。如果根節(jié)點確實包含所查詢的ip地址,那么該過程然后將根節(jié)點設置為(在930處)當前遍歷的節(jié)點并且進行到940。

在940處,如果存在,那么該過程收集與當前遍歷的節(jié)點相關聯(lián)的規(guī)則。該過程然后確定(在950處)所查詢的ip地址是否能夠遵循到當前遍歷的節(jié)點的“1”子節(jié)點的“1”路徑。如果能,那么該過程進行到955。否則,該過程進行到960以確定ip地址是否能夠遵循到當前遍歷的節(jié)點的“0”子節(jié)點的“0”路徑。如果能,那么該過程進行到965。否則,該過程進行到970。

在955處,該過程將當前遍歷的節(jié)點設置為“1”子節(jié)點并且進行到940。相反,在965處,該過程將當前遍歷的節(jié)點設置為“0”子節(jié)點并進行到940。在一些實施例中,如果子節(jié)點的后綴子串與所查詢的ip地址的對應比特匹配,那么所查詢的ip地址能夠遵循到子節(jié)點的路徑。當子節(jié)點被遍歷時,這意味著子節(jié)點的cidr塊包含所查詢的ip地址。

在970處,該過程已經(jīng)確定所查詢的ip地址不能遍歷當前節(jié)點的子節(jié)點。在一些實施例中,這是因為子節(jié)點都不包含所查詢的ip地址,或者因為當前節(jié)點沒有子節(jié)點。在任何一種情況下,當前節(jié)點是對應于包含所查詢的ip地址的cidr塊的最后一個節(jié)點。因此,該過程報告在遍歷防火墻搜索結構期間收集到的所有規(guī)則作為與所查詢的ip地址相關或適用于所查詢的ip地址的規(guī)則。過程970然后結束。查詢實體(即,用于vm的管理程序或過濾器)然后采用報告的規(guī)則作為被識別用于保護vm的相關防火墻規(guī)則(合格規(guī)則)。

在一些實施例中,當管理程序從網(wǎng)絡管理器接收到防火墻配置更新消息時,管理程序構建和更新前綴樹搜索結構(諸如,搜索樹700)。構建的樹然后被提供給vm的過濾器作為用于高效識別相關規(guī)則的搜索結構。對于一些實施例,圖10概念性地圖示用于構建用于識別相關規(guī)則的前綴樹搜索結構并更新到本地防火墻控制器的過程1000。在一些實施例中,過程1000由執(zhí)行本地防火墻控制器的管理程序執(zhí)行。一些實施例連續(xù)執(zhí)行過程1000以動態(tài)地保持其搜索結構最新,使得vm的過濾器將能訪問防火墻規(guī)則的最新集。

當該過程從網(wǎng)絡管理器(例如,310)接收到(在1010處)防火墻規(guī)則時,該過程開始。在一些實施例中,規(guī)則是從網(wǎng)絡管理器接收到的防火墻配置消息的一部分。該過程然后在接收到的規(guī)則中從源地址字段和目的地地址字段識別(在1020處)合格的ipcidr塊。

該過程然后基于規(guī)則的cidr塊遍歷(在1030處)防火墻規(guī)則搜索樹。在一些實施例中,這種遍歷是基于接收到的規(guī)則的cidr塊的二進制串(而不是基于如在過程900中的受保護vm的ip地址的二進制串),即,通過將子節(jié)點的子串與規(guī)則的cidr塊中的對應比特進行比較來決定是采取“0”路徑還是“1”路徑等。

該過程然后確定(在1040處)其是否能夠從遍歷中為規(guī)則的cidr塊在搜索結構中定位節(jié)點。與其中搜索是用于識別具有包含所查詢的ip地址的cidr塊的節(jié)點的過程900中用于尋找相關規(guī)則的遍歷不同,這里在過程1000中的遍歷是用于尋找恰好與規(guī)則的cidr塊匹配的節(jié)點。如果該過程能夠在搜索結構中找到與規(guī)則的cidr塊匹配的節(jié)點,那么該過程進行到1050。否則,該過程進行到1045。

在1045處,因為搜索結構沒有與規(guī)則的cidr塊對應的現(xiàn)有節(jié)點,所以該過程將與規(guī)則的cidr塊對應的新節(jié)點添加或插入到搜索結構中。在一些實施例中,該過程重新組織搜索結構,使得可以維護樹的二進制前綴結構。在一些實施例中,這種重新組織需要在防火墻中添加不與任何規(guī)則對應的存根節(jié)點,諸如搜索樹700中的節(jié)點706和707。在添加用于接收到的規(guī)則的cidr塊的新節(jié)點之后,該過程進行到1050。

在1050處,該過程將接收到的規(guī)則與節(jié)點(從操作1045新添加的節(jié)點或從操作1040定位的節(jié)點)相關聯(lián)。該過程然后確定(在1060處)在接收到的規(guī)則中是否存在更多合格的cidr塊。如果存在,那么該過程返回到1020以或者在搜索結構中定位現(xiàn)有節(jié)點或者為規(guī)則中的其他cidr塊向搜索結構添加新節(jié)點。否則,過程1000終止,并且構建的搜索樹被更新并且可用于使用于識別相關規(guī)則。

在一些實施例中,如在部分ii中描述的搜索結構是在數(shù)據(jù)中心的網(wǎng)絡管理器處實現(xiàn)的。網(wǎng)絡管理器在其防火墻規(guī)則數(shù)據(jù)庫中構建和更新用于合格規(guī)則的搜索結構。搜索結構然后用于識別與各個vm相關的規(guī)則,該識別基于來自各個管理程序對那些vm的查詢或基于網(wǎng)絡管理器自己的記錄。標識出的相關規(guī)則然后被傳遞給那些vm的主機機器。

iii.計算設備

如之前提到的,本發(fā)明的一些實施例由在用作主機機器的計算設備上運行的虛擬化軟件或管理程序實現(xiàn)。對于一些實施例,圖11圖示正在操作虛擬化軟件1105的示例主機機器1100。虛擬化軟件1105允許主機機器托管虛擬機1111-1114以及將虛擬機連接到物理網(wǎng)絡1190。這個物理網(wǎng)絡1190可以跨越一個或更多數(shù)據(jù)中心,并且包括各種物理交換機和路由器。

如所圖示的,主機1100能夠通過物理nic(pnic)1195訪問物理網(wǎng)絡1190。虛擬化軟件1105用作托管的vm1111-1114與物理nic1195(以及其它物理資源,諸如處理器和存儲器)之間的接口。vm中的每一個包括用于通過虛擬化軟件1105訪問網(wǎng)絡的虛擬nic(vnic)。vm中的每一個vnic負責在vm和虛擬化軟件1105之間交換分組。在一些實施例中,vnic是由虛擬nic仿真器實現(xiàn)的物理nic的軟件抽象。在一些實施例中,vm的vnic還包括用于識別相關防火墻規(guī)則并將那些防火墻規(guī)則應用于過濾分組的防火墻過濾器。

虛擬化軟件1105管理vm1111-1114的操作,并且包括用于管理vm對物理網(wǎng)絡的訪問(在一些實施例中,通過實現(xiàn)vm連接到的邏輯網(wǎng)絡)的數(shù)個組件。如所圖示的,虛擬化軟件1105包括物理交換元件1120、物理路由元件1130、控制器接口1140、上下文感知的分布式防火墻模塊1150以及上行鏈路模塊1170。

控制器接口1140從控制器或控制器集群1160接收控制平面消息。在一些實施例中,這些控制平面消息包括用于配置虛擬化軟件和/或虛擬機的各種組件(諸如,物理交換元件1120和物理路由元件1130)的配置數(shù)據(jù)。在一些實施例中,控制平面消息還包括用于防火墻配置的消息,例如,包括對存儲在主機機器1100處的防火墻規(guī)則的更新的消息。

上下文感知的分布式防火墻模塊1150從控制器接口1150接收防火墻規(guī)則更新(或防火墻配置消息)。上下文感知的分布式防火墻模塊1150還基于接收到的防火墻規(guī)則建立搜索結構。使得搜索結構對于vm(或其vnic中的其對應過濾器)可訪問,因此可以如以上部分i和ii中描述的那樣高效地識別用于執(zhí)行防火墻操作的相關規(guī)則。

物理交換元件1120(或受管理的物理交換元件mpse)向物理nic1195和從物理nic1195傳遞網(wǎng)絡數(shù)據(jù),該物理nic1195與物理網(wǎng)絡1190對接。物理交換元件還包括多個虛擬端口(vport),該物理交換元件將物理nic與vm1111-1114、物理路由元件1130和控制器接口1140通信地互連。在一些實施例中,每一個虛擬端口與唯一的l2mac地址相關聯(lián)。物理交換元件在連接到其虛擬端口的任何兩個網(wǎng)絡元件之間執(zhí)行l(wèi)2鏈路層分組轉發(fā)。物理交換元件還在連接到其虛擬端口中的任何一個端口的任何網(wǎng)絡元件和物理網(wǎng)絡1190上可達的l2網(wǎng)絡元件(例如,在另一個主機上運行的另一個vm)之間執(zhí)行l(wèi)2鏈路層分組轉發(fā)。

物理路由元件1130(或受管理的物理路由元件mpre)對從物理交換單元1120上的虛擬端口接收到的數(shù)據(jù)分組執(zhí)行l(wèi)3路由(例如,通過執(zhí)行l(wèi)3ip地址到l2mac地址解析)。在一些實施例中,物理路由元件1130附接到的虛擬端口是宿端口(sinkport)。每一個路由數(shù)據(jù)分組然后被發(fā)送回到物理交換單元1120,以根據(jù)解析的l2mac地址轉發(fā)到數(shù)據(jù)分組目的地。這個目的地可以是連接到物理交換單元1120上的虛擬端口的另一個vm,或者是物理網(wǎng)絡1190上可達的l2網(wǎng)絡元件(例如,在另一個主機上運行的另一個vm、物理非虛擬化機器,等等)。

上行鏈路模塊1170在物理交換元件1120和物理nic1195之間中繼數(shù)據(jù)。在一些實施例中,上行鏈路模塊1170允許主機機器1100用作封裝覆蓋網(wǎng)絡(諸如,vxlan和vlan)的隧道端點。vxlan是一種覆蓋網(wǎng)絡封裝協(xié)議。由vxlan封裝創(chuàng)建的覆蓋網(wǎng)絡有時被稱為vxlan網(wǎng)絡,或簡稱為vxlan。當主機1100上的vm將數(shù)據(jù)分組(例如,以太網(wǎng)幀)發(fā)送到在相同vxlan網(wǎng)絡中但是在不同主機上的另一個vm時,在將分組發(fā)送到物理網(wǎng)絡之前,上行鏈路模塊1170使用vxlan網(wǎng)絡的vni和vtep的網(wǎng)絡地址封裝數(shù)據(jù)分組。分組通過物理網(wǎng)絡被隧道化到目的地主機(即,封裝使得底層分組對于中間網(wǎng)元是透明的)。上行鏈路模塊1170還對傳入的vxlan分組進行解封裝,并只將原始的內(nèi)部數(shù)據(jù)分組轉發(fā)到目的地vm。

在本文檔中,術語“分組”是指跨網(wǎng)絡發(fā)送的特定格式的比特集合。本領域普通技術人員將認識到的是,術語分組在本文中可以用于指可以跨網(wǎng)絡發(fā)送的比特的各種格式化集合,諸如以太網(wǎng)幀、tcp段、udp數(shù)據(jù)報、ip分組,等等。

貫穿本說明書涉及包括虛擬機(vm)的計算和網(wǎng)絡環(huán)境。但是,虛擬機只是數(shù)據(jù)計算節(jié)點(dcn)或數(shù)據(jù)計算端節(jié)點(也被稱為可尋址節(jié)點)的一個示例。dcn可以包括非虛擬化物理主機、虛擬機、在主機操作系統(tǒng)之上運行而不需要管理程序或單獨的操作系統(tǒng)的容器、以及管理程序內(nèi)核網(wǎng)絡接口模塊。

在一些實施例中,vm使用由虛擬化軟件(例如,管理程序、虛擬機監(jiān)視器,等等)虛擬化的主機的資源在主機上與其自己的客戶操作系統(tǒng)一起操作。租戶(即vm的所有者)可以選擇在客戶操作系統(tǒng)之上要操作哪些應用。另一方面,一些容器是在主機操作系統(tǒng)之上運行而不需要管理程序或單獨的客戶操作系統(tǒng)的結構。在一些實施例中,主機操作系統(tǒng)使用命名空間將容器彼此隔離,并且因此提供在不同容器內(nèi)操作的不同應用組的操作系統(tǒng)級隔離。這種隔離類似于在虛擬化系統(tǒng)硬件的管理程序虛擬化環(huán)境中提供的vm隔離,并且因此可以被視為隔離在不同容器中操作的不同應用組的虛擬化形式。這種容器比vm更輕量。

在一些實施例中,管理程序內(nèi)核網(wǎng)絡接口模塊是包括具有管理程序內(nèi)核網(wǎng)絡接口和接收/傳輸線程的網(wǎng)絡堆棧的非vmdcn。管理程序內(nèi)核網(wǎng)絡接口模塊的一個示例是作為vmware公司的esxitm管理程序的一部分的vmknic模塊。

本領域普通技術人員將認識到的是,雖然本說明書涉及vm,但是給出的示例可以是任何類型的dcn,包括物理主機、vm、非-vm容器和管理程序內(nèi)核網(wǎng)絡接口模塊。事實上,在一些實施例中,示例網(wǎng)絡可以包括不同類型的dcn的組合。

iv.電子系統(tǒng)

許多上述特征和應用被實現(xiàn)為軟件過程,該軟件過程被指定為記錄在計算機可讀存儲介質(zhì)(也被稱為計算機可讀介質(zhì))上的一組指令。當這些指令被(一個或多個)處理單元(例如,一個或多個處理器、處理器核心、或其它處理單元)執(zhí)行時,它們使得該(一個或多個)處理單元執(zhí)行在指令中指示的動作。計算機可讀介質(zhì)的示例包括,但不限于,cd-rom、閃存驅動器、ram芯片、硬盤驅動器、eprom,等等。計算機可讀介質(zhì)不包括無線傳遞或通過有線連接傳遞的載波和電子信號。

在本說明書中,術語“軟件”是指包括駐留在只讀存儲器中的固件或者可以被讀入到存儲器中用于被處理器處理的存儲在磁存儲設備中的應用。此外,在一些實施例中,若干軟件發(fā)明可以被實現(xiàn)為更大程序的子部分,同時保持獨特的軟件發(fā)明。在一些實施例中,若干軟件發(fā)明也可以被實現(xiàn)為單獨的程序。最后,一起實現(xiàn)本文所描述的軟件發(fā)明的單獨程序的任意組合在本發(fā)明的范圍之內(nèi)。在一些實施例中,當軟件程序被安裝以在一個或多個電子系統(tǒng)上操作時,軟件程序定義執(zhí)行該軟件程序的操作的一個或多個特定的機器實現(xiàn)。

圖12概念性地圖示實現(xiàn)本發(fā)明的一些實施例的電子系統(tǒng)1200。電子系統(tǒng)1200可以用于執(zhí)行任何上述控制、虛擬化或操作系統(tǒng)應用。電子系統(tǒng)1200可以是計算機(例如,桌面計算機、個人計算機、平板計算機、服務器計算機、大型機、刀片計算機,等等)、電話、pda或任何其它種類的電子設備。這種電子系統(tǒng)包括用于各種其它類型的計算機可讀介質(zhì)的各種類型的計算機可讀介質(zhì)和接口。電子系統(tǒng)1200包括總線1205、(一個或多個)處理單元1210、系統(tǒng)存儲器1225、只讀存儲器1230、永久存儲設備1235、輸入設備1240、以及輸出設備1245。

總線1205統(tǒng)一地表示通信連接電子系統(tǒng)1200的眾多內(nèi)部設備的所有系統(tǒng)、外設和芯片組總線。例如,總線1205將(一個或多個)處理單元1210與只讀存儲器1230、系統(tǒng)存儲器1225、永久存儲設備1235通信地連接。

從這些各種存儲器單元中,(一個或多個)處理單元1210檢索要執(zhí)行的指令和要處理的數(shù)據(jù),以便執(zhí)行本發(fā)明的過程。(一個或多個)處理單元在不同實施例中可以是單個處理器或多核心處理器。

只讀存儲器(rom)1230存儲由(一個或多個)處理單元1210和電子系統(tǒng)的其它模塊所需要的靜態(tài)數(shù)據(jù)和指令。另一方面,永久存儲設備1235是讀與寫(read-and-write)存儲器設備。這個設備是即使當電子系統(tǒng)1200關閉時也存儲指令和數(shù)據(jù)的非易失性存儲單元。本發(fā)明的一些實施例使用大容量存儲設備(諸如,磁盤或光盤及其對應的盤驅動器)作為永久存儲設備1235。

其它實施例使用可移除存儲設備(諸如,軟盤、閃存驅動器等)作為永久存儲設備。與永久存儲設備1235類似,系統(tǒng)存儲器1225是讀與寫存儲器設備。但是,與存儲設備1235不同,系統(tǒng)存儲器是易失性讀與寫存儲器,諸如隨機存取存儲器。系統(tǒng)存儲器存儲處理器在運行時需要的一些指令和數(shù)據(jù)。在一些實施例中,本發(fā)明的過程被存儲在系統(tǒng)存儲器1225、永久存儲設備1235、和/或只讀存儲器1230中。從這些各種存儲器單元中,(一個或多個)處理單元1210檢索要執(zhí)行的指令和要處理的數(shù)據(jù),以便執(zhí)行一些實施例的過程。

總線1205還連接到輸入設備和輸出設備1240和1245。輸入設備使得用戶能夠將信息和選擇命令傳遞到電子系統(tǒng)。輸入設備1240包括字母數(shù)字鍵盤和定點設備(也稱為“光標控制設備”)。輸出設備1245顯示由電子系統(tǒng)生成的圖像。輸出設備包括打印機和顯示設備,諸如陰極射線管(crt)或液晶顯示器(lcd)。一些實施例包括用作輸入設備和輸出設備兩者的的設備,諸如觸摸屏。

最后,如在圖12中所示,總線1205還通過網(wǎng)絡適配器(未示出)將電子系統(tǒng)1200耦合到網(wǎng)絡1265。以這種方式,計算機可以是計算機的網(wǎng)絡(諸如,局域網(wǎng)(“l(fā)an”)、廣域網(wǎng)(“wan”)、或內(nèi)聯(lián)網(wǎng)、或網(wǎng)絡的網(wǎng)絡,諸如互聯(lián)網(wǎng))的一部分。電子系統(tǒng)1200的任何或所有組件可以與本發(fā)明結合使用。

一些實施例包括電子組件,諸如微處理器、在機器可讀或計算機可讀介質(zhì)(可替代地稱為計算機可讀存儲介質(zhì)、機器可讀介質(zhì)或機器可讀存儲介質(zhì))中存儲計算機程序指令的存儲設備和存儲器。這種計算機可讀介質(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)硬盤驅動器、只讀和可記錄盤、超密度光盤、任何其它光或磁介質(zhì)、以及軟盤。計算機可讀介質(zhì)可以存儲可由至少一個處理單元執(zhí)行的并且包括用于執(zhí)行各種操作的指令集的計算機程序。計算機程序或計算機代碼的示例包括機器代碼(諸如由編譯器產(chǎn)生的),以及包括由計算機、電子組件、或使用解釋器的微處理器執(zhí)行的更高級代碼的文件。

雖然以上討論主要涉及執(zhí)行軟件的微處理器或多核處理器,但是一些實施例由一個或多個集成電路(諸如,專用集成電路(asic)或現(xiàn)場可編程門陣列(fpga))來執(zhí)行。在一些實施例中,這種集成電路執(zhí)行存儲在電路自身上的指令。

如在本說明書中所使用的,術語“計算機”、“服務器”、“處理器”以及“存儲器”都是指電子或其它技術設備。這些術語不包括人或人群。出于本說明書的目的,術語顯示或正在顯示意味著在電子設備上顯示。如本說明書中所使用的,術語“計算機可讀介質(zhì)”、“多個計算機可讀介質(zhì)”和“機器可讀介質(zhì)”被完全限制為以由計算機可讀的形式存儲信息的、有形的、物理的對象。這些術語不包括任何無線信號、有線下載信號、以及任何其它短暫信號。

雖然已經(jīng)參考許多特定細節(jié)描述本發(fā)明,但是本領域普通技術人員將認識到的是,在不脫離本發(fā)明的精神的情況下,可以以其它特定形式體現(xiàn)本發(fā)明。此外,多個圖(包括圖5、9和10)概念性地圖示過程??梢圆灰耘c所示出和描述的確切順序執(zhí)行這些過程的特定操作??梢圆辉谝幌盗羞B續(xù)的操作中執(zhí)行特定操作,并且不同的特定操作可以在不同的實施例中執(zhí)行特定操作。此外,可以使用數(shù)個子過程來實現(xiàn),或者作為較大的宏過程的一部分來實現(xiàn)過程。因此,本領域普通技術人員將理解的是,本發(fā)明不受上述說明性細節(jié)的限制,而是由所附權利要求來限定。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
陈巴尔虎旗| 基隆市| 铜梁县| 宁明县| 司法| 邵武市| 资阳市| 阳西县| 天台县| 万山特区| 黔江区| 万州区| 银川市| 海南省| 黔西县| 连州市| 阿拉善盟| 通城县| 汝城县| 金乡县| 都匀市| 东阳市| 新民市| 商城县| 剑河县| 汉寿县| 于都县| 潜山县| 淮南市| 宽甸| 阳曲县| 陆川县| 长顺县| 抚顺县| 海丰县| 黑山县| 温宿县| 济阳县| 依安县| 南陵县| 河北区|