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]