9.0

Table Of Contents
VMware, Inc. 7
1
Thischapterincludesthefollowingtopics:
“IntroductiontoVMCISockets”onpage 7
“FeaturesinSpecificVMwareReleases”onpage 8
“EnablingandFindingVMCISockets”onpage 8
“UseCasesforVMCISockets”onpage 9
ThisguideassumesthatyouknowabouteitherBerkeleysocketsorWinsock,theWindowsimplementation.
Ifyouarenewtosockets,seeAppendix:LearningMoreAboutSockets”onpage 25.
Introduction to VMCI Sockets
TheVMwareVMCIsocketslibraryoffersanAPIthatissimilartotheBerkeleyUNIXsocketinterfaceandthe
Windowssocketinterface,twoindustrystandards.VMCIsocketssupportfastandefficientcommunication
betweenguestvirtualmachinesandtheirhost.
Previous VMCI Releases
TheoriginalVMCIlibrarywasreleasedasanexperimentalClanguageinterfacewithWorkstation6.0.VMCI
includedadatagramAPIandasharedmemoryAPI.BothinterfaceswerediscontinuedinWorkstation6.5.
TheVMCIsocketslibrarywasfirstreleasedwithWorkstation6.5andServer2.0asasupportedinterface.The
VMCIso
cketslibraryhadmoreflexiblealgorithms,wrappedinastreamsocketsAPIforexternalpresentation.
StreamsocketsupportwasimprovedforESX/ESXihostswhenVMwarevSphere™4andvCenter™Server4
werereleased.
How VMCI Sockets Work
VMCIsocketsaresimilartoothersockettypes.LikelocalUNIXsockets,VMCIsocketsworkonanindividual
physicalmachine,andcanperforminterprocesscommunicationonthelocalsystem.WithInternetsockets,
communicatingprocessesusuallyresideondifferentsystemsacrossthenetwork.Similarly,VMCIsockets
allowguestvirtualmachinestocommunicateth
ehostonwhichtheyreside.
TheVMCIsocketslibrarysupportsbothconnectionorientedstreamsocketslikeTCP,andconnectionless
datagramsocketslikeUDP.However,withVMCIsockets,avirtualsocketcanhaveonlytwoendpointsand
unlikeTCPsockets,theservercannotinitiateaconnectiontotheclient.
VMCIsocketssupportdatatransfe
ramongprocessesonthesamesystem(interprocesscommunication).They
alsoallowcommunicationtoprocessesondifferentsystems,includingonesrunningdifferentversionsand
typesofoperatingsystems.VMCIsocketscompriseasingleprotocolfamily.
Socketsrequireactiveprocesses,socommunicatingguestvirtualmachinesmustberunning,notpoweredoff.
VMCIsoc
ketsareavailableonlyattheuserlevel.KernelAPIsarenotsupported.
About VMCI Sockets
1