9.0
Table Of Contents
- VMCI Sockets Programming Guide
- Contents
- About This Book
- About VMCI Sockets
- Porting to VMCI Sockets
- Creating Stream VMCI Sockets
- Creating Datagram VMCI Sockets
- Security of the VMCI Device
- Appendix: Learning More About Sockets
- Index
VMware, Inc. 7
1
Thischapterincludesthefollowingtopics:
“IntroductiontoVMCISockets”onpage 7
“FeaturesinSpecificVMwareReleases”onpage 8
“EnablingandFindingVMCISockets”onpage 8
“UseCasesforVMCISockets”onpage 9
ThisguideassumesthatyouknowabouteitherBerkeleysocketsorWinsock,theWindowsimplementation.
Ifyouarenewtosockets,see“Appendix: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.
TheVMCIsocketslibrarysupportsbothconnection‐orientedstreamsocketslikeTCP,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