NVMe/TCP
NVMe/TCP is an NVMe transport binding that carries commands, responses and data as protocol data units over TCP connections.
Queue mapping: An ordinary Admin or I/O connection carries one Admin or I/O submission/completion queue pair. A controller can use multiple connections. Revision 1.3 separately defines kickstart discovery connections restricted to KDReq/KDResp exchanges [1].
Endpoint selection: TCP discovery defaults to port 8009. I/O controllers have no default TCP port in transport revision 1.3; use the advertised transport service identifier [1].
Security: TLS protects the TCP channel when configured and supported. In-band authentication is a separate mechanism, and its availability depends on the host and target implementation [2].
Integrity: Header and data digests are CRC32C error checks, separate from authentication and encryption; see nvme-tcp-digest [1].
Relations
- related
- nvme-of, nvme-discovery-controller, nvme-rdma, nvme-fc, nvme, queue-depth, nvme-tcp-digest
Citations
- NVM Express NVMe over TCP Transport 1.3, sections 2, 3.1, 3.2, 3.3.1.1 and 3.6
- SPDK NVMe over Fabrics target: transport support, TLS and in-band authentication
Sources & caveats
- Transport statements use revision 1.3, ratified 31 July 2026. SPDK is an implementation example, not a universal feature matrix.