Grant Proposal for Project Name
Download
Report
Transcript Grant Proposal for Project Name
Internet2 Spring Meeting
An Introduction to UDT
Yunhong Gu
[email protected]
Robert L. Grossman (Advisor)
National Center for Data Mining
University of Illinois at Chicago
What's UDT?
UDT: UDP-based Data Transfer Protocol
Application level, end-to-end, unicast,
reliable, connection-oriented, streaming
data transport protocol.
Successor of SABUL
Open source C++ Implementation
Layered Architecture
UDT Socket API
UDT
OS Socket Interface
UDP
Memory Copy Avoidance
Kernel
User Space
Applications
Flow/Congestion Control
AIMD: Additive Increases Multiplicative
Decreases
Increase Parameter
Related
to available bandwidth
Bandwidth estimation: automatic parameter tuning
Decrease Factor
Randomized
decrease factor: alleviate loss
synchronization problem
Performance Characteristics
Efficiency
Approximately
constant time to probe 90% of
available bandwidth
Fairness
Intra-protocol
fairness (max-min)
RTT independent
TCP friendly
Configurable Congestion Control
Kernel
User Space
Applications
UDT Socket API
UDT
OS Socket Interface
UDP
CC
How to Use UDT?
Linux
Ported
to Windows, UNIX, BSD, and OS X
C++ API
socket-like API
Transport Middleware
XIO
UDT Driver
C API
No
changes for existing applications, just
recompilation and link
Limitation: no "fork"
Java and Python wrapper
Non-objectives and limitations
Not a replacement to TCP
For
bulk data transfer over high-speed wide area
networks, where TCP does not work well
UDT is designed to co-exist with TCP
Built-in control algorithm is not suitable for
applications requires real-time, messaging,
lossy, or smooth data traffic.
Not suitable for high concurrency (a large
number of flows sharing the network)
http://udt.sf.net
UDT Source Code
Stable release (v2.0)
CVS (most recent update and bug fixes)
Technical papers
Online documentation
Questions?
http://udt.sf.net
http://www.ncdm.uic.edu
[email protected]