VMCI Sockets 1.0 Release Notes

Latest release 14 Sept 2011. Previously released 25 May 2010 and 23 Sept 2008.
Last document update on 12 Sept 2011.



About VMCI Sockets

Virtual Machine Communication Interface (VMCI). ESX/ESXi 4.0 incorporated a new virtual device to facilitate high-speed communication between virtual machines and their host, or between guest virtual machines on a host. VMCI does not rely on in-guest networking. The VMCI Sockets library offers a convenient interface for programming the VMCI device at the user level.

VMCI Sockets API. First introduced in VMware Workstation 6.5, VMCI Sockets is a convenience API for the VMCI device. With minimal code modifications, VMCI Sockets can provide fast communication between guest virtual machines and their host.

Deprecation Notice

With Workstation 8.0 and vSphere 5.0, guest to guest communications (VM to VM) are deprecated. This inter-guest functionality may be removed in the next vSphere release. Support will continue for host to guest communications.

New in Which Release

With VMware Workstation 6.5, stream sockets were not supported between host and guest, so you had to use datagram sockets instead. With Workstation 7.0, stream sockets were supported for Linux hosts, Linux guests, and Windows guests, but only datagram sockets were supported for Windows hosts. On the ESX/ESXi 4.0 platforms, both datagram and stream sockets were supported. On the ESXi 5.0 platform, there are no API changes for VMCI Sockets.

Known Issues and Workarounds

Any application that creates two threads, one thread that makes a blocking VMCI Sockets call such as recv() while another thread closes the same socket, can crash its guest virtual machine. The workaround is for applications to handle one socket per thread, or to open and close sockets from the main process before and after multithreading.

During replay of a recorded client-server session, a communication divergence could occur, but note that record/replay is removed in Workstation 8.0.