Every USB4 port must support the USB4 protocol/connections, which is a distinct standard to establish USB4 links/connections between USB4 devices that exists in parallel to previous USB protocols. Unlike USB 2.0 and USB 3.x, it does not provide a way to transfer data directly, it is rather a mere vessel that can contain multiple virtual connections ("tunnels"). Other specifications are referenced to define the contents and internal functionality of a tunnel. USB4 defines the following tunnel types: • USB3 connections • DisplayPort connections • PCIe connections • Ethernet/network connections according to the included USB4Net and Cross-Domain specifications
General principles of USB4 USB4 forms a tree-like topology of USB4 routers, where each USB4 device includes a USB4 router to participate in this network. A tunnel can be end-to-end, where the route through the entire network of routers is preconfigured. But tunnels can also be single-hop, where it exists only for a single USB4 link (i.e., between 2 routers). In this case, the tunnel will be "unpacked" by the recipient and will use some other means specific to the tunnel type to identify where data needs to be sent next. If the next
hop is another USB4 router, data will be ingested again into the next single-hop tunnel until it exits the USB4 network. Accordingly, single-hop tunnels require specific support in each USB4 router, just to support passing them through to further USB4 routers. However, end-to-end tunnels require support of a USB4 router only when the data is ingested into the tunnel and at the target, to the point where the tunnel ends. Note: USB 2.0 is not part of any tunnel. That functionality is provided by maintaining a physically and logically separate USB 2.0 connection in parallel to a USB4 connection over the dedicated wires, just as it was handled with USB 3.x and its backward compatibility to USB 2.0.
Protocol input/output adapters A Protocol Input Adapter will ingest a connection according to whatever protocol it is based on and convert the contents into a USB4 tunnel. Protocol Output Adapters do the reverse. They extract a tunnel from the USB4 network and if needed recreate a regular connection from the tunnel contents. The conversion into a tunnel typically entails removing any
Phy/Electrical layer and encoding of the underlying connection standard and potentially losslessly compresses the contents; for example, by leaving out empty filler data. A USB4 tunnel itself is virtual and doesn't need to conform to any fixed bandwidth or other limitations that stem from the Phy/Electrical layer of the underlying connection standard. But since most tunnel types will eventually be converted back to a regular, physical connection again, most of those physical limitations, like max. bandwidth, are still likely to apply in the end.
USB3 Gen X tunneling This is a single-hop tunnel that essentially can transport any
Enhanced SuperSpeed connection according to the USB 3.2 specification. USB3 Gen X follows the Enhanced SuperSpeed Hub topology, where every USB4 router with more than one USB3 endpoint must include a USB3 hub as well. It is the default way USB3 connections through USB4 are made. Supporting it at 10 Gbit/s is mandatory on every USB4 . The minimum supported speed for the USB3 connection being tunneled is 10 Gbit/s as every USB4 device already has to support this speed and USB3 hubs handle converting this to 5 Gbit/s devices that may be connected. This means that a USB4 hub will share a single upstream USB3 connection and distribute its bandwidth across all its downstream facing ports that make use of USB3 connections.
USB3 Gen T tunneling This is an optional alternative to USB3 Gen X tunneling that was introduced in USB4 Version 2.0. It is an end-to-end variant of USB3 Gen X tunnel. Through this, it eschews the need for USB3 hubs in every USB4 router that can and will limit the throughput. It allows multiple separate USB3 Gen T tunnels even over shared links. Since it is an end-to-end tunnel, every USB4 hub will support passing it through. USB3 Gen T is intended as exclusively virtual, there exists no physical equivalent for it. Thus, it can only be used inside of a USB4 controller. This allows it to leave the limitations to 10 or 20 Gbit/s connections of USB 3.2 behind, while reusing most of the other parts of the
Enhanced SuperSpeed protocol. No known USB4 controller implements support for Gen T tunneling to date (August 2024).
DP tunneling DisplayPort is also tunneled as end-to-end connection. There can be multiple independent DP tunnels, but each will be delivered to a single protocol output adapter (at which point
DisplayPort MST might be used to further split each connection up). USB4 Version 1.0 only defines how to tunnel DP connections according to the
DisplayPort 1.4a specification (up to HBR3 speeds). USB4 Version 2.0 updates this support to the full
DisplayPort 2.1 specification (up to UHBR20 speeds). Notably, the USB4 specification explicitly carves out needing to support the UHBR13.5 DP speed, even if UHBR20 is supported. The DP specification is not public. It is unknown if it makes similar carve-outs. DP tunneling has great understanding of the contents of DP connections, and will efficiently skip/transmit any filler data, reducing the actually utilized bandwidth of a DP tunnel. But since DP connections have
real-time requirements, bandwidth must be reserved for them. USB4 mandates that in absence of any other information, the maximum possible bandwidth for the particular DP connection (DP lanes and speed) must be reserved. This reservation only applies to other real-time tunnels though. Reserved, but unused bandwidth can be used by non-real-time tunnels such as PCIe or USB3, but the reservation may still block other DP tunnels from being established.
PCIe tunneling Similar to USB3 Gen X tunneling, PCIe tunneling uses single-hop tunnels, requiring PCIe switches in every USB4 router that supports PCIe tunneling. USB4 has, from the start, referenced the
PCI Express Specification Revision 4 and with USB4 Version 2.0 added references to
PCI Express Specification Revision 5.0. PCIe tunneling has had a significant limitation in USB4 Version 1.0 and also Thunderbolt 3: PCIe has a
variable Maximum Payload Size, which applies end-to-end to a transmission. If any one component or PCIe Switch has a limited , all packets passing through must be limited accordingly. Because USB4 uses a payload of up to 256 Byte per USB4 packet and a PCIe tunnel packet contains further PCIe headers and
meta data, the MPS for PCIe tunnels was limited to 128 Byte. This limitation can reduce the efficiency of the PCIe connection greatly for all devices and systems that would otherwise support 256 Byte or even larger MPS. USB4 Version 2.0 removes this bottleneck (mandatory for all implementers), by defining how a larger PCIe packet can be split across multiple USB4 packets. Support for this new feature requires every USB4 component / controller involved in the PCIe tunnel to implement USB4 Version 2.0. == USB4 signaling modes ==