Using UDT connections

This article describes how to configure UDT transfers. The client is able to connect to other devices via the UDT network protocol. The UDT protocol is optimized for high speed data transfers. It also brings very handy features to run the client behind an internet router or NAT device. UDT uses the UDP hole punching technique, which makes the configuration of port forwarding at the router obsolete. Many other popular peer-to-peer software (e.g. Skype) also use this technique to simplify the network configuration process.

Overview:

Platforms supporting UDT connections

 UDT connections are supported on the following operating systems:

  • Windows XP with Service Pack 3/Vista/7/8
  • Windows Server 2003 / 2003 R2 / 2008 / 2008 R2 / 2012

(warning) Please note: The Microsoft Visual C++ Redistributable Package needs to be installed for UDT connections to work!

(info) The client currently doesn't support UDT on Mac or Linux. On these platforms the client is still able to connect with full relayed or HTTP-tunneled connections. Since both methods requires the traffic to be relayed by a server the transfer speed might not reach the maximum of your internet connection. We strongly recommend to correctly configure any firewall and router on these platforms for optimal transfer performance.


Using hole-punching aka NAT-traversal UDT connections

By default the client tries to connect via UDT (hole punching mode) if no direct TCP connection is possible. Before a hole punching UDT connection can be established, it is required that all devices are connected to a server. The server will act as relay for the connection initialization handshake - afterwards the actual communication happens directly between the connected devices. The client automatically tries to connect to the a server and usually gets at least connected via the HTTP tunnel. 

(info) UDT hole-punching is enabled by default to make the configuration process as easy as possible. To disable UDT hole punching:

  1. Enable the Advanced Mode.
  2. Click on Preferences in the main window.
  3. Click on Network.
  4. Uncheck the Enable UDT transfers checkbox.

 

Using direct UDT connections

It's also possible to directly connect two devices via UDT without being necessarily connected to a server. This option is disabled by default and only recommend when using the client over a high speed data network. It requires unrestricted communication between the devices without getting blocked by any firewall, router or NAT device.

To enable direct UDT connections:

  1. Enable the Advanced Mode.
  2. Click on Preferences in the main window.
  3. Click on Plugins.
  4. Select UDT connections.
  5. Click on Enable.

This option controls if the client should try to connect via UDT directly before trying to connect via TCP. When enabled, the client also listens for incoming UDT connections on the configured data port(s). The default port is 1337.

(warning) Please note: Due to conflicts of UDT on port 1337 (UDP), the client disables the network broadcasting in LAN, which also uses the the default port 1337 (UDP).

 

Troubleshooting UDT connections

To troubleshoot UDT connections:

  • Check if UDT is available on your platform. Please also check, if a Microsoft Visual C++ Redistributable Package is installed.
  • Try to manually connect to other devices in the main window -> Devices -> Search Devices -> Connect, entering an IP and port of a remote devices.
  • Execute "netstat -a -p UDP" on the command line. There should be one line with "0.0.0.0:1337" (or a different port and network address, if configured)
  • Check the Client Log Files for any problems with UDT components.
  • High CPU load: Disable ZIP compression in LAN under Preferences -> Expert Settings and configure all devices to be detected on LAN via the LAN IPs list under Preferences -> Network.