虚拟网络中的虚拟机多播/广播的制作方法_2

文档序号:8385923阅读:来源:国知局
036]此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
[0037]计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0038]本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
[0039]已经参考图1描述了物理计算系统(或物理机),现在将描述虚拟计算系统(或虚拟机)的概念。一种类型的物理计算系统被称为主机计算系统(或简称为“主机”)。每个主机能够运行一个或更多个且潜在地许多个虚拟机。例如,图2更详细地抽象地解说了主机200。在图2的示例中,主机200被解说为运行包括虚拟机210A、21B和21C在内的三个虚拟机210。然而,省略号210D再次表示本文描述的原理不受到运行在主机200上的虚拟机的数目的限制。可以由少至零个虚拟机运行在主机上,而且唯一的上限是受到主机200的物理能力的限定。
[0040]在操作期间,虚拟机模拟完全可操作的计算系统,包括至少一个操作系统并且也许还包括一个或多个其他应用。每个虚拟机被指派一个特定的客户端,并且负责支持该客户端的桌面环境。
[0041]虚拟机生成桌面镜像或其他表示桌面的当前状态的呈现指令,并接着将该镜像或指令传送到客户端以供桌面的呈现。在用户与客户端处的桌面进行交互时,用户输入从客户端被传送到虚拟机。虚拟机处理用户输入,并且如果合适,则改变桌面状态。如果桌面状态中这样的改变将导致在所呈现的桌面中的改变,则虚拟机更改镜像或呈现指令(如果合适的话),并将经更改的图像或呈现的指令传送到客户端计算系统以供合适的呈现。从用户的角度而言,就好像客户端计算系统本身在执行桌面处理。
[0042]主机200包括管理程序220,其使用从虚拟机210的视角抽象出的物理资源221来模拟虚拟机210的虚拟资源。管理程序221还提供虚拟机210之间的适当的隔离。因此,从任何给定的虚拟机的角度来看,管理程序220提供该虚拟机正与物理资源对接的错觉,即便该虚拟机仅仅与物理资源的表象(例如,虚拟资源)对接,而不是直接与物理资源对接。在图2中,物理资源221被抽象地表示为包括资源221A到221F。物理资源221的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器等等。
[0043]图3示出标记为A到E的通过虚拟网络301通信的多个虚拟机。虚拟机A到E中的每一个具有虚拟机可以用来通过虚拟网络301通信的相关联的虚拟网络地址321到325。本文描述的虚拟网络地址可各自例如是虚拟因特网协议(IP)地址。
[0044]假定虚拟机A要将网络消息310多播给其他虚拟机B、C、D、E中的每一个(如多头箭头311所表示的)。图4更详细地示出网络消息300的示例400。虚拟机A可以构造网络消息300(例如,网络消息400),它包括表达虚拟网络地址411、412以及413中的每一个的目的地头部401。例如,目的地头部401可表达虚拟机B的虚拟网络地址(它是322)、虚拟机C的虚拟网络地址(它是323)、以及包括虚拟机D和E两者的群虚拟网络地址的网络地址(它是302)。虚拟机D与群虚拟网络地址302之间的关联由虚线303B表示。同样,虚拟机E与群虚拟网络地址302之间的关联由虚线303A表示。例如,群虚拟网络地址302可以是多播虚拟网络地址或可能是广播虚拟网络地址。
[0045]在一些实施例中,多播网络地址可以被订阅为虚拟机,通过向该多播网络地址注册以将该虚拟机添加作为在该多播网络地址处接收到的任何网络消息的成员。相关联的解除注册请求可将虚拟机从多播虚拟网络地址解除注册。广播虚拟网络地址与虚拟网络的特定集合(例如,子网)相关联。在广播虚拟网络地址处接收到的任何网络消息被广播给该子网内的虚拟机中的每一者。
[0046]虚拟网络301在以下意义上是“虚拟的”:底层物理网络架构(及相关联的物理地址)被从虚拟机A到E中的每一者的视图中抽象出来。例如,图5示出物理网络环境500,物理网络环境500示出其实际物理环境中的五个虚拟机A到E。
[0047]物理网络环境包括通过网络501通信的三个主机510、520以及530。每一主机具有物理网络地址,该物理网络地址的示例是用于物理网络501的实际IP地址。例如,主机510具有相关联的物理网络地址541,主机520具有相关联的物理网络地址542,且主机530具有相关联的物理网络地址543。主机510、520以及530中的每一者分别包括相关联的管理程序511、521以及531。
[0048]每一主机包括对应的虚拟机。例如,仅作为示例,主机510操作虚拟机512、513以及514 ;主机520操作虚拟机522、523以及524 ;且主机530操作虚拟机532、533以及534。每一虚拟机可具有唯一性标识符。例如,虚拟机513具有标识符D且对应于图3的虚拟机D,虚拟机514具有标识符A且对应于图3的虚拟机A,虚拟机523具有标识符E且对应于图3的虚拟机E,虚拟机532具有标识符B且对应于图3的虚拟机B,且虚拟机533具有标识符C且对应于图3的虚拟机C。
[0049]因而,物理网络500的实际物理配置与虚拟网络300上提供的抽象视图大不相同。网络地址在虚拟网络300中与物理网络500中不同,且进一步,虚拟机A到E不必关心支持虚拟网络300的基础物理网络。
[0050]物理网络环境500还包括可如下进一步描述地操作的地址查找服务502。地址查找服务502的实现对本文描述的更一般原理而言是不重要的。地址查找服务502可以是例如云服务,或可能是在主机510、520以及530中的每一个上可用的分布式应用。尽管物理网络环境示出了三个主机,每一主机上运行三个虚拟机,但这只是示例。本文描述的原理适用于不论物理网络环境具有多少主机、以及不论多少虚拟机在特定主机上操作。
[0051]图6示出了从分派多播网络消息的源管理程序的观点来看的执行网络消息的虚拟化多播的方法600的流程图。图7示出了从目的地管理程序来看的接收和递送网络消息的方法700的流程图。作为示例,方法600和700可被执行以促进网络消息310(例如,消息400)通过虚拟网络300的多播311,这当然涉及在图5的物理网络环境500的物理层处的操作。因此,现在将频繁参考图3到5来描述图6和7。
[0052]参考图6,源管理程序访问始发自源虚拟机的网络消息(动作601)。参考图3,源虚拟机可以是虚拟机A,且网络消息可以是网络消息310,其示例是图4的网络消息400。在参考图5的物理网络层处,源管理程序511从虚拟机514(即,虚拟机A)访问网络消息,如箭头551所表示的。
[0053]源管理程序随后访问与目的地虚拟机中的每一个相关联的虚拟网络地址(动作602)。例如,参考图4,目的地头部401中的虚拟网络地址指定单独的虚拟网络地址和群虚拟网络地址两者。单独的虚拟网络地址是被专门指派给单独虚拟机的地址(如图3中的虚拟机地址321到325)。群网络地址是可被指派给多个虚拟机的地址(如图3中的群虚拟网络地址302)。
[0054]图8示出了用于访问与被网络消息至少间接寻址的多个目的地虚拟机中的每一个相关联的虚拟网络地址的方法800的流程图。方法800可被执行以实现图6的动作602。方法800是递归的,但在第O层递归(在执行方法800的任何递归之前)处,方法800被针对网络消息中表达的虚拟网络地址中的每一个来执行。例如,在图4的情况下,在第O层递归处,方法800被针对网络消息400内表达的虚拟网络地址411到413中的每一个来执行。
[0055]以虚拟网络地址41
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1