Presentation is loading. Please wait.

Presentation is loading. Please wait.

Yunhong Gu & Robert Grossman University of Illinois at Chicago

Similar presentations


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

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!


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

Similar presentations


Ads by Google