NVMe Over TCP
   HOME

TheInfoList



OR:

NVMe over TCP, often written NVMe/TCP, is a network transport protocol within the NVMe-oF specification. It extends the
NVMe NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via the PCI Express bus. The in ...
standard over TCP networks. This enables the transmission of NVMe-oF commands over standard
Ethernet Ethernet ( ) is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
-based
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
networks, providing scalable and efficient access to NVMe storage devices without the need for specialized hardware or networking interfaces. It is a component of the broader NVMe-oF standard.


Background

NVMe NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via the PCI Express bus. The in ...
is a high-performance interface and protocol originally designed for direct-attached
PCIe PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
SSD A solid-state drive (SSD) is a type of solid-state storage device that uses Integrated circuit, integrated circuits to store data persistence (computer science), persistently. It is sometimes called semiconductor storage device, solid-stat ...
s. While NVMe greatly improved local storage throughput and latency compared to older protocols like
AHCI The Advanced Host Controller Interface (AHCI) is a technical standard defined by Intel that specifies the Hardware register, register-level interface of Serial ATA (SATA) host controllers in a non-implementation-specific manner in its Intel chip ...
, it was initially limited by PCIe's short reach (within a server or a rack). NVMe-oF was introduced to extend NVMe across network fabrics, enabling remote access to NVMe devices with minimal added latency. The NVMe-oF 1.0 specification was released in mid-2016 by
NVM Express NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface functional specification, specification for accessing a computer's non-volatile storage media usually attached via th ...
, supporting transports such as RDMA (e.g. RoCE,
InfiniBand InfiniBand (IB) is a computer networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used ...
) and later
Fibre Channel Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
. This approach preserves the NVMe command structure over a network, incurring as little as ~10 μs of additional latency in early demonstrations. As NVMe-oF gained traction, there was a push to leverage ubiquitous
Ethernet Ethernet ( ) is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
/ IP networks for NVMe transport. NVMe/TCP emerged as an NVMe-oF transport binding that uses standard TCP/IP as the fabric. Work on NVMe/TCP began by the late 2010s to offer a flexible, cost-effective alternative to specialized RDMA networks. NVMe/TCP encapsulates NVMe commands and data inside TCP packets over Ethernet, avoiding the need for proprietary adapters or lossless networks. By 2018–2019 the NVMe/TCP specification was finalized under the NVMe-oF 1.1 standard, bringing NVMe-oF to any IP-based data center network. ''EE Times'' described NVMe/TCP as a means to address the "data tsunami" from AI and IoT by allowing tens of thousands of NVMe drives to appear local to hosts over Ethernet. The ratified NVMe/TCP 1.0 specification was published in 2021.


Principles of operation


Architecture

NVMe over TCP operates within the NVMe-oF framework using a client–server architecture consisting of NVMe initiators (hosts) and NVMe targets (subsystems). Targets expose NVMe namespaces (storage volumes) over the network, allowing hosts to access remote NVMe controllers similarly to local storage devices. NVMe/TCP encapsulates standard NVMe command and completion traffic directly within TCP/IP packets transmitted over Ethernet. Unlike RDMA's memory-based approach, NVMe/TCP employs message-based transfers comparable to NVMe over Fibre Channel. Each NVMe queue pair, comprising a submission and completion queue, is mapped onto TCP connections, enabling parallelism with support for up to 64K queues, each accommodating up to 64K commands.


Data transfer

Data transfers in NVMe/TCP follow standard NVMe-oF operations. Commands and responses are encapsulated in capsules sent over TCP connections. Small data transfers may be included directly within the capsules, while larger transfers use separate TCP segments. For write commands, the host transmits data segments following the command capsule; for read commands, the target sends data segments back to the host. NVMe/TCP relies on TCP's reliable, in-order delivery rather than remote DMA, eliminating the need for specialized hardware but slightly increasing CPU overhead and latency compared to RDMA transports. Although NVMe/TCP generally introduces additional latency, typically tens of microseconds compared to RDMA, performance optimizations such as kernel bypass and hardware offloads can reduce this impact. NVMe/TCP supports high throughput and scalability in standard IP networks without requiring lossless fabrics.


NVMe-oF capsules

Capsules are the basic communication units within NVMe over Fabrics ( NVMe-oF), used to transport NVMe commands and completions across networks. A capsule carries either an NVMe command from host to target or an NVMe completion response from target to host, along with optional data payloads and scatter-gather lists (SGLs). Small data transfers may be contained entirely within a capsule ("in-capsule data"), while larger transfers use separate data messages referenced by SGLs. Capsules abstract NVMe operations from underlying network transports, allowing them to span multiple packets or frames as required, independent of the specific transport protocol, such as Ethernet, TCP, or RDMA.


NVMe/TCP Protocol Data Units

To transmit NVMe-oF capsules over TCP, NVMe/TCP defines
protocol data unit In telecommunications, a protocol data unit (PDU) is a single unit of information transmitted among peer entities of a computer network. It is composed of protocol-specific control information and user data. In the layered architectures of c ...
s (PDUs) that frame the capsules and data within the TCP byte stream. Each PDU contains a header indicating its type (command capsule, response, or data) and length, allowing the receiver to parse the TCP stream into discrete NVMe messages. For example, a host transmits a Command Capsule PDU for NVMe commands, followed by Data PDUs for write operations. The target replies with a Response PDU containing NVMe completion status, accompanied by Data PDUs for read requests. PDUs also handle session management. After establishing a TCP connection, hosts and controllers perform an NVMe-oF Connect operation. The standard NVMe Keep Alive command is used to maintain connection liveness. Flow control relies primarily on TCP's built-in window mechanisms, with optional host-side queue-depth control.


Applications

NVMe over TCP is frequently used in
cloud In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles, suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
and
hyperscale In computing, hyperscale is the ability of an architecture to scale appropriately as increased demand is added to the system. This typically involves the ability to seamlessly provide and add compute, memory, networking, and storage resources to ...
data centers, supporting resource disaggregation and software-defined storage architectures. NVMe/TCP enables pools of NVMe SSDs to be attached and shared over standard Ethernet networks, allowing storage capacity to scale independently of computing resources. In enterprise environments, NVMe/TCP is adopted to modernize SANs. The protocol is sometimes compared to
iSCSI Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
due to its use of IP networks, though specifically adapted for NVMe-based storage performance.


Implementations

Multiple implementations of NVMe over TCP exist in both hardware and software forms. In the open-source domain, NVMe/TCP support was added to the
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
in version 5.0, released in early 2019, which includes initiator (client) and target (server) drivers. As a result, modern
Linux distribution A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
s can function as NVMe/TCP hosts or targets using built-in kernel modules. The introduction of NVMe/TCP in Linux simplified configurations compared to previous RDMA-based NVMe-oF implementations.


Standardisation

The NVMe over TCP protocol is defined and maintained by
NVM Express NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface functional specification, specification for accessing a computer's non-volatile storage media usually attached via th ...
, which oversees the NVMe family of specifications. NVMe/TCP was developed as an extension of the NVMe over Fabrics ( NVMe-oF) specification. The initial NVMe-oF 1.0 specification, ratified in 2016, initially supported RDMA transports, and provided a foundation for later
Fibre Channel Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
integration. NVMe/TCP was subsequently introduced in the NVMe-oF 1.1 specification, which was completed and released for member review in July 2019, was approved alongside NVMe-oF 1.1 later that year and issued as a standalone specification (Revision 1.0) in May 2021. Since 2020, NVMe/TCP has been integrated into the broader NVMe specification framework, specifically as the NVMe Transport Specification (TCP Transport) within the NVMe 2.x series. Under this structure, NVMe/TCP is versioned and maintained alongside other NVMe specifications. As of NVMe version 2.2 (2025), NVMe/TCP continues as an official transport method, undergoing periodic updates to improve functionality and add features.


References


External links

* {{Cite web , title=TCP Transport Specification - NVM Express , url=https://nvmexpress.org/specification/tcp-transport-specification/ , access-date=2025-06-15 , website=nvmexpress.org Computer hardware standards Transmission Control Protocol