UDT UDT Bo Liu 11/1/2012 Inspired by Yunhong GU
What is UDT
UDP-based Data Transfer Protocol
Implemented in Application Layer
Built on top of UDP with reliability control and congestion control
Goal of UDT
BDP-Bandwidth Delay Product
Product of a data link's capacity and its end-to-end delay
Equivalent to the maximum amount of data on the network circuit at any given time
Commonly known as a long fat network
Three Conditions
Physical condition
networkbandwidth today has been expanded to 10Gb/s with 100Gb/s emerging
Three conditions
Application condition
High-energy physics, astronomy, earth science, and other high performance computing areas
Three conditions
TCP is not suitable for a high BDP network
TCP has been found inefficient as the network bandwidth-delay product (BDP) increases
Congestion control of UDT
Rate control algorithm
Slow start is controlled by FLow Control Similar to TCP, but only occurs at the session beginning.
Window based flow control (Flow Control) FC limits the number of unacknowledged packets. FC is triggered on each received ACK.
Congestion control of UDT
Rate control algorithm
(1) Positive ack x←x+α(x) α(x) is non-increasing and it approaches 0 as
x increases, i.e., limx→+∞α(x) = 0
cx xB )log(10)(
Congestion control of UDT
B(Mb/s) a(x)(packets/interval) B<=0.1 0.00067 0.1<B<=1 0.001 1<B<=10 0.01 10<B<=100 0.1
Congestion control of UDT
Rate Control Algorithm
(2) Negative ACK x←(1-β)·x (0 < β < 1) Decrease
Randomized decrease factor = 1 – (8/9)n
UDT Format
Data packet PCI
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
0| Packet Sequence Number +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |FF |O| Message Number +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
Time Stamp +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Destination Socket ID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
UDT Format
Control Packet PCI 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |1| Type | Reserved +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Additional Info +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Time Stamp +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Destination Socket ID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Control Information Field ˜ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
UDT Format
TYPE 0x0: Protocol Connection Handshake Additional Info: Undefined Control Info: 1) 32 bits: UDT version 2) 32 bits: initial packet sequence number 3) 32 bits: maximum packet size 4) 32 bits: socket ID
UDT Format
TYPE 0x2: Acknowledgement (ACK) Control Info: 1) 32 bits: The packet sequence number to which all the previous packets have been received (excluding) 2) 32 bits: RTT (in microseconds) 3) 32 bits: RTT variance 4) 32 bits: Available buffer size (in bytes) 5) 32 bits: Estimated link capacity (in number of packets per second)
UDT Format
TYPE 0x3: Negative Acknowledgement (NAK)
Additional Info: Undefined Control Info: 1) 32 bits integer array of compressed loss
information
UDT Format
TYPE 0x7: Message Drop Request: Additional Info: Message ID Control Info: 1) 32 bits: First sequence number in the
message 2) 32 bits: Last sequence number in the
message
Composable UDT
Easy implementation and deployment of new control algorithms
Easy evaluation of new control algorithms
Application awareness support and dynamic configuration