The UDT library is distributed with source code, example applications, simulation scripts, and documentation. Currently the source code can be compiled on Linux, BSD, Solaris, and Windows system.
Here is the content of the distribution:
./src: UDT source code
./app: Example applications
./sim: NS-2 simulation scripts
./doc: UDT documentation
./win: Windows version of UDT
The library is in the original source code format without any installation tools, so installation is simply a make command. To make the C++ source code on different platform, the user needs to explicitly tell make the current operating system and hardware architecture with the "-e" option (except for UNIX and Windows).
The available operating system options are: LINUX, BSD, and OSX.
The available options for hardware architecture are: IA32, IA64, POWERPC, and AMD64.
The command is in the format:
make -e os=XXX arch=YYY
where XXX and YYY are one of the options above. Note that it is case sensitive. There is a default value for Linux on the IA32 architecture, so if UDT is compiled on it, simply use make.
On Windows, use the Visual Studio .Net project files at ./win directory.
After a successful make, you can begin to use the UDT library. The (only) header file udt.h and the library libudt.a (depending on the target system, libudt.so, libudt.dylib, and udt.dll may be available) are located in ./src directory.
Proper environment configuration should be set up before using UDT library. For example, if using libudt.so, the library path environment variable must be updated as:
export LD_LIBRARY_PATH=<location of libudt.so>:$LD_LIBRARY_PATH
1. By default, UDT uses the non-busy-waiting data sending in order to reduce CPU usage. You may turn off the -DNO_BUSY_WAITING option in ./src/Makefile, which may lead to better performance.
2. If you need to configure congestion control algorithms, please uncomment the -DCUSTOM_CC compile option in ./src/Makefile. When this option is enabled, -DNO_BUSY_WAITIING is always disabled.
3. UDT has been compiled on UNIX systems. However, no thorough testing has been done on UNIX. Please contact the developer directly for more information.