USB4 interdomain connections

The Windows USB4 connection manager supports the Ethernet over USB4 interdomain protocol, also known as USB4NET. This enables two USB4 PCs to establish a network connection between each other when connected using a USB4 cable, akin to connecting an ethernet cable between network cards on two PCs. Since the protocol is backwards compatible with the protocol that was in use for Thunderbolt™ 3, this also works if one of the PCs is a Thunderbolt™ 3 PC, connected with a USB4 or Thunderbolt™ 3 cable.

Windows ignores any loopback connections created by connecting two ports on the same system (or ports on hubs connected to the same system) with a USB4 cable. Only connections between two PCs are considered functional interdomain connections. Connections between two USB4 host routers on the same system, while technically interdomain since they are distinct USB4 domains, are also ignored by Windows since they do not enable any functional user experiences.

The software connection manager starting with Windows 11 enables file sharing over a USB4 interdomain connection using existing network file sharing techniques and user interfaces. When a connection is established, a new network adapter is enumerated and a link-local IPv4 address (169.254.0.0/16) is automatically assigned. The user may then share any folders using the File Sharing Wizard and access any shared folders by browsing to the IP address of the peer from within Windows Explorer. Using the computer name may not be guaranteed to use the USB4 connection if the remote computer is also visible over another network, like WiFi.

Steps to perform a file transfer over a USB4 interdomain connection

  1. Connect the two PCs together with a USB4 cable.

  2. A new network adapter appears on the system.

    Screenshot of USB4 P2P network adapter properties in Windows Device Manager.

  3. Open the network adapter properties and note the IP address of each system.

    Screenshot showing USB4 network connection IP addresses.

  4. Ensure that firewall and network sharing settings allow for file sharing.

    1. Turn on Public folder sharing on the PC you are trying to access. This will allow you to access the Users folder of the user whose credentials you use to remotely login when presented the login prompt in Windows Explorer (see below).

    2. Alternatively, enabling Public folder sharing and turning off Password Protected Sharing will allow anyone to access Public folders. However, this is less secure and will apply to all network connections, not just USB4 interdomain connections.

    Screenshot showing public folder sharing settings.

  5. In Windows Explorer, browse to \\<IP address>. For example, \\169.254.76.91

  6. Sign in using an account on the remote system.

  7. If the user account you used to sign in is an administrator on the remote system, you can also access admin shares. For example, \\169.254.76.91\C$

Manageability

If you would like to disable USB4 interdomain functionality, existing group policies for blocking devices based on compatible IDs can be leveraged. The Ethernet over USB4 protocol uses the compatible ID USB4\USB4NET. Blocking this compatible ID will prevent the USB4 P2P network adapter from starting.

Screenshot showing the group policies dialog.

Screenshot showing USB4 net properties.

The corresponding MDM policy name is "DeviceInstallation/PreventInstallationOfMatchingDeviceIDs".

Testing

Basic functionality

  1. Attempt to ping the peer to confirm that the USB4 host-to-host tunnel has been set up correctly and that the network adapter has been correctly initialized.
    1. The firewall settings must be configured to allow pinging. Select Turn on network discovery in Network and Sharing Center or change the network type to Private, where network discovery is on by default.
  2. Attempt a file transfer as described in Steps to perform a file transfer over a USB4 interdomain connection.

Throughput testing

Network throughput and stress testing can be performed using NTTTCP, which can be downloaded from GitHub.

Example test cases:

  1. Testing TCP

    Run on the receiver: NTttcp.exe -r -l 60000 -n 100M -m 8,*,169.254.X.Y -t 60

    Run on the sender: NTttcp.exe -s -nic 169.254.A.B -l 60000 -n 100M -m 8,*,169.254.X.Y -t 60

    Where 169.254.X.Y is the IP address of the receiver and 169.254.A.B is the IP address of the sender.

  2. Testing UDP

    Same as TCP, except add -u to the command lines.

See also

Thunderbolt is a trademark of Intel Corporation or its subsidiaries.

"USB4™" is a trademark of USB Implementers Forum and is only intended for use with products based on and compliant with the USB4™ specification.