Host enabled management channel

US9807129B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9807129-B2
Application numberUS-201514928540-A
CountryUS
Kind codeB2
Filing dateOct 30, 2015
Priority dateJun 27, 2011
Publication dateOct 31, 2017
Grant dateOct 31, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A logical communication path is provided between a target virtual machine (VM) and a host or application communicating with the VM. The target VM runs on a hypervisor host that has a hypervisor and a proxy agent. The hypervisor manages execution of the VM. A mapping is maintained indicating which VMs execute on which hosts. When the host or application is to send a message or packet to the target VM, the mapping is consulted and the hypervisor host hosting the target VM is identified. The message or packet, which may identify the target VM, is transmitted to the hypervisor host. A proxy agent at the hypervisor host selects a communication channel between the hypervisor and the target VM. The hypervisor then passes the message or packet through the selected channel to the target VM.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of providing application-level communication between a target virtual machine (VM) managed by a hypervisor on a first host and an application running on a second host, the method performed by the first host, the method comprising: receiving, via a physical network at the first host, an application-level message conforming to an application-level communication protocol and sent by the application, the application-level message comprising a VM identifier identifying the target VM, the application-level connection request message received via the physical data network between the first host and the second host by the second host having sent the connection request message in one or more first network-level packets addressed to a network address of the first host, the one or more first network-level packets containing the application-level message, the one or more first network-level packets having been routed from the second host to the first host by the physical network according to the network address of the first host in the first network-level packets; responding, by the hypervisor, to the application-level message, wherein the responding comprises, based on the VM identifier in the application-level message, using, by the hypervisor, a communication channel between the hypervisor managing the target VM and the target VM, the communication channel comprising a communication path between the target VM and the hypervisor with endpoints at the target VM and the hypervisor; receiving, by the hypervisor, one or more second network-level packets comprising payloads comprising application-level messages that include the VM identifier, the second network-level packets having been routed from the second host to the first host by the physical data network according to the network address of the first host; and based on the VM identifier in the application-level messages, passing, by the hypervisor, the application-level messages through the communication channel based on the network address of the target VM, and in response a network stack of the target VM extracts the application-level messages and provides the application-level messages to a local application executing on the target VM. 2. A method according to claim 1 , wherein the endpoints of the communication channel are directly accessible to only the hypervisor and the target VM such that another VM on the first host cannot use the communication channel to communicate with the target VM without authorization, and wherein the application-level messages are received and processed by a network protocol stack executing in the VM. 3. A method according to claim 1 , wherein the network address of the first host comprises a first Internet Protocol (IP) address, the second host has a second IP address, and the network address of the target VM comprises a third IP address, wherein first and second network-level packets are unable to be IP-routed from the second IP address to the third IP address. 4. A method according to claim 3 , wherein the first and second network-level packets comprise IP packets, and wherein the method further comprises sending the IP packets from the second host to the first host by the second host addressing the packets to the first IP address. 5. A method according to claim 4 , the method further comprising delivering the extracted application-level messages to an agent executing on the target VM. 6. A method according to claim 1 , wherein the communication channel comprises an internal network switch of the hypervisor and a virtual network interface card provided by the hypervisor and assigned to the target VM. 7. A method according to claim 1 , wherein the hypervisor and a proxy agent on the first host cooperate to allow the second host to communicate with the target VM using a standard network protocol, and wherein the application-level protocol conforms to a Hypertext Transport Protocol. 8. One or more physical computer-readable storage devices storing information to enable a computer to perform a process, the process comprising: executing a virtual machine (VM) and a guest operating system of the VM, wherein the VM comprises a network stack comprising an implementation of a network-level protocol and an implementation of a transport protocol to enable connectivity for the guest operating system according to a network address of the VM, and wherein execution of the VM is managed by a hypervisor on the computer; executing an agent by the hypervisor on the computer; and receiving one or more network-level packets at the hypervisor on the computer, the one or more network-level packets conforming to the network-level protocol and having been routed, via a physical data network, to a network address of the hypervisor on the computer according to the network-level network protocol, the one or more network-level packets comprising one or more respective payloads, the one or more payloads comprising one or more application-level messages that comprise information identifying the VM, wherein the agent accesses the one or more application-level messages and determines, from the information therein identifying the VM, that the VM is to receive the one or more application-level messages, and in response the hypervisor passes the one or more application-level messages to the VM through a communication channel between the VM and the hypervisor, wherein the network stack provides the one or more application-level messages to application-level code executing on the VM. 9. One or more computer-readable storage devices according to claim 8 , wherein a plurality of VMs communicate on the physical data network, the process further comprising maintaining, at the computer, host information indicating which of the VMs reside on the computer. 10. One or more computer-readable storage devices according to claim 9 , the process further comprising selecting the computer based on the host information. 11. One or more computer-readable storage devices according to claim 10 , wherein the information identifying the VM comprises an identifier of the VM, the selecting comprising using the identifier of the VM in the packets to determine that the network-level packets are to be addressed to the network address of the hypervisor. 12. One or more computer-readable storage devices according to claim 8 , the process further comprising receiving the one or more network-level packets at the guest operating system of the VM. 13. One or more computer-readable storage devices according to claim 12 , the process further comprising passing the one or more network-level packets to a guest agent running on the guest operating system. 14. A method comprising: executing a hypervisor on a host, the hypervisor managing and executing a virtual machine (VM); executing an agent by the hypervisor; receiving a network-level packet by the host, the network-level packet conforming to a network-level protocol and comprising a network-level header comprising a network address of the host, the network-level packet having been routed by a physical data network to the host based on the network address of the host in the network-level header, the network-level packet comprising a payload comprising an application-level message generated by a remote host and sent through a network stack of the remote host by a remote application executing on the remote host, the application-level message carried by the network-level packet comprising a VM identifier that identifies the VM; extracting, by a network stack of the hypervisor running on the host, the application-level message from the network-level packet, w

Assignees

Inventors

Classifications

  • Session establishment or de-establishment · CPC title

  • Network integration; Enabling network access in virtual machine instances · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Interprogram communication · CPC title

  • Electricity · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9807129B2 cover?
A logical communication path is provided between a target virtual machine (VM) and a host or application communicating with the VM. The target VM runs on a hypervisor host that has a hypervisor and a proxy agent. The hypervisor manages execution of the VM. A mapping is maintained indicating which VMs execute on which hosts. When the host or application is to send a message or packet to the targ…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L65/1069. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 31 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).