vsock(7) Miscellaneous Information Manual vsock(7) vsock - VSOCK #include #include stream_socket = socket(AF_VSOCK, SOCK_STREAM, 0); datagram_socket = socket(AF_VSOCK, SOCK_DGRAM, 0); VSOCK . . SOCK_STREAM SOCK_DGRAM. SOCK_STREAM . SOCK_DGRAM . . socket(AF_VSOCK, socket_type, 0); connect(2) . . bind(2) listen(2). send(2) write(2) recv(2) read(2). (CID) 32 32 . CID . . struct sockaddr_vm { sa_family_t svm_family; /* Address family: AF_VSOCK */ unsigned short svm_reserved1; unsigned int svm_port; /* Port # in host byte order */ unsigned int svm_cid; /* Address in host byte order */ unsigned char svm_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) - sizeof(unsigned short) - sizeof(unsigned int) - sizeof(unsigned int)]; }; svm_family AF_VSOCK. svm_reserved1 0. svm_port . 1024 . CAP_NET_BIND_SERVICE bind(2) . svm_zero . : VMADDR_CID_ANY (-1U) VMADDR_CID_HYPERVISOR (0) VMADDR_CID_LOCAL (1) () VMADDR_CID_HOST (2) . VMADDR_PORT_ANY (-1U) . . SOCK_STREAM . . CID CID . CID . Ioctls ioctl /dev/vsock. IOCTL_VM_SOCKETS_GET_LOCAL_CID CID . unsigned int. ioctl(fd, IOCTL_VM_SOCKETS_GET_LOCAL_CID, &cid); VMADDR_CID_ANY CID IOCTL_VM_SOCKETS_GET_LOCAL_CID. VMADDR_CID_LOCAL (1) . . CID IOCTL_VM_SOCKETS_GET_LOCAL_CID VMADDR_CID_LOCAL. EACCES CAP_NET_BIND_SERVICE. EADDRINUSE . EADDRNOTAVAIL CID . EINVAL . : sockaddr_vm . ENOPROTOOPT setsockopt(2) getsockopt(2). ENOTCONN . EOPNOTSUPP . : MSG_OOB send(2) MSG_PEEK recv(2). EPROTONOSUPPORT . 0. ESOCKTNOSUPPORT socket(2). SOCK_STREAM SOCK_DGRAM . VMware (VMCI) 3.9. KVM (virtio) 4.8. Hyper-V 4.14. VMADDR_CID_LOCAL 5.6. 5.6. ( ) (VMCI virtio). bind(2), connect(2), listen(2), recv(2), send(2), socket(2), capabilities(7) 3 . . : . 6.18 17 2025 vsock(7)