Presentation is loading. Please wait.

Presentation is loading. Please wait.

UDT Tutorial Yunhong Gu & Robert Grossman University of Illinois at Chicago.

Similar presentations

Presentation on theme: "UDT Tutorial Yunhong Gu & Robert Grossman University of Illinois at Chicago."— Presentation transcript:

1 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 : dSABUL 2002: SABUL version 2.0, 2.1, 2.2, 2.3, 2003: UDT : UDT 1.1 & : UDT : UDT 3.0

5 Project Online 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

8 Programming using UDT socket-like API UDT:: namespace qualifier UDTSOCKET UDTERROR

9 Programming using UDT 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 } 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 }

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 Protocol Buffer User Buffer Data New Data

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 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!

Download ppt "UDT Tutorial Yunhong Gu & Robert Grossman University of Illinois at Chicago."

Similar presentations

Ads by Google