Download presentation
Presentation is loading. Please wait.
Published byAlexys Prewitt Modified over 10 years ago
1
Yunhong Gu & Robert Grossman University of Illinois at Chicago
UDT Tutorial Yunhong Gu & Robert Grossman University of Illinois at Chicago
2
Outline Introduction Installation Programming using UDT
Performance tuning Conclusion
3
Introduction UDT – UDP-based Data Transfer Application level
End-to-end Bi-directional For shared networks But can be tuned for private networks C++ library
4
UDT History 2000: SABUL Concept 2001: SABUL version 1.0 2002: dSABUL
5
Project Online sf.net/projects/udt
Source code, documentations, mailing lists, bug reports Tarball release and CVS
6
Installation Make the C++ source code Tested support hardware
IA32, IA64, AMD64, Power PC, SPARC Tested support OS Linux, OS X, Windows, UNIX make -e arch=XXX os=YYY
7
Post-Installation LD_LIBRARY_PATH
Testing using appserver and appclient ./appserver [port] ./appclient <server-addr> <server-port>
8
Programming using UDT socket-like API UDT:: namespace qualifier
UDTERROR
9
Programming using UDT int client = socket(AF_INET, SOCK_STREAM, 0);
connect(client, (sockaddr*)&serv_addr, sizeof(serv_addr)); If (-1 == send(client, data, size, 0)) { //error processing } UDTSOCKET client = UDT::socket(AF_INET, SOCK_STREAM, 0); UDT::connect(client, (sockaddr*)&serv_addr, sizeof(serv_addr)); If (UDTERROR == UDT::send(client, data, size, 0)) { //error processing }
10
Configuration setsockopt/getsockopt
11
Overlapped IO int send( UDTSOCKET, const char *buf, int len, int flags, int *handle = NULL, UDT_MEM_ROUTINE routine = NULL ); void (UDT_MEME_ROUTINE*)(char*, int);
12
Overlapped IO bool getoverlappedresult( UDTSOCKET u, const int& handle, int& progress, const bool& wait );
13
Overlapped IO New Data User Buffer Data Protocol Buffer
14
Performance monitoring
Monitor UDT performance statistics Monitor internal UDT parameters Diagnose network and application configurations int perfmon( UDTSOCKET u, TRACEINFO* perf );
15
Performance monitoring
TRACEINFO structure Aggregate information Timestamp, Total send/recv/retrans/loss, etc. Local information (values since last time perfmon was called) Local send/recv/retrans/loss, send/recv rate Instant value RTT, cwnd, ipt, etc.
16
Performance Tuning UDT buffer size UDP buffer size IO block size
Larger is better UDP buffer size SNDBUF << RCVBUF Larger is NOT better IO block size Larger is better, but better less than the UDT buffer size File IO block size: mystery
17
Thank you!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.