Patent ID: 6950879

Claim:
A method in a computer system acting as a host of multiple virtual computer systems for communicating with remote computer systems on behalf of the virtual computer systems, the virtual, remote, and host computer systems each having a unique network address, the communicating on behalf of a virtual computer system performed by using the virtual computer system network address in place of the host computer system network address, the method comprising: communicating with a first remote computer system on behalf of the host computer system by creating a first communication socket on the host computer system whose destination is the network address of the first remote computer system; during establishment of a connection with the first remote computer system using the first communication socket, responding to a query for a source network address for the first communication socket by determining and providing the network address of the host computer system; and sending a message to the first remote computer system from the host computer system by using the first communication socket, the sent message including the source network address of the host computer system; and for each of multiple of the virtual computer systems, communicating with a second remote computer system on behalf of that virtual computer system by determining that a message is to be sent from that virtual computer system to the second remote computer system; creating a communication socket on the host computer system whose destination is the network address of the second remote computer system; before using the created communication socket to establish a connection with the second remote computer system, binding the network address of that virtual computer system to be a source of the created communication socket; and sending a message to the second remote computer system from the host computer system on behalf of that virtual computer system by using the created communication socket, the sent message including the bound source network address of the virtual computer system, so that the second remote computer system receives communication over the host computer system communication socket as if the host computer system were that virtual computer system.