UDT Tutorial - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

UDT Tutorial

Description:

UDT Tutorial Yunhong Gu & Robert Grossman University of Illinois at Chicago Outline Introduction Installation Programming using UDT Performance tuning Conclusion ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 18
Provided by: udtSource
Category:
Tags: udt | c | tutorial

less

Transcript and Presenter's Notes

Title: UDT Tutorial


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 1.0
  • 2002 dSABUL
  • 2002 SABUL version 2.0, 2.1, 2.2, 2.3,
  • 2003 UDT 1.0
  • 2004 UDT 1.1 1.2
  • 2004 UDT 2.0
  • 2005 UDT 3.0

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 archXXX osYYY

7
Post-Installation
  • LD_LIBRARY_PATH
  • Testing using appserver and appclient
  • ./appserver port
  • ./appclient ltserver-addrgt ltserver-portgt

8
Programming using UDT
  • socket-like API
  • UDT namespace qualifier
  • UDTSOCKET
  • 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 UDTsocket(AF_INET,
SOCK_STREAM, 0) UDTconnect(client,
(sockaddr)serv_addr, sizeof(serv_addr)) If
(UDTERROR UDTsend(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
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
  • Larger is better
  • UDP buffer size
  • SNDBUF ltlt 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!
Write a Comment
User Comments (0)
About PowerShow.com