Remote device infrastructure
US-2024323248-A1 · Sep 26, 2024 · US
US9807129B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9807129-B2 |
| Application number | US-201514928540-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 30, 2015 |
| Priority date | Jun 27, 2011 |
| Publication date | Oct 31, 2017 |
| Grant date | Oct 31, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.