Title: Optimizing UDP-based Protocol Implementations
1Optimizing UDP-based Protocol Implementations
- Yunhong Gu and Robert L. Grossman
- Presenter Michal Sabala
National Center for Data Mining
2Outline
- UDP Performance Characteristics and Optimizations
- Composable UDT A Framework for UDP-based
Protocol Implementations
3Part I. UDP Performance Characteristics and
Optimization Techniques
4Introduction
- UDP-based Protocol is needed
- As short-term solution to the lack of effective
kernel space transport protocols for high
bandwidth-delay product networks - As application specific data transfer library,
e.g., Multimedia data transfer - It is not an easy task to impalement a new
UDP-based protocol from scratch - And may be not necessary!
5UDP Performance
- Sending and receiving buffer size
- Packet size
- IO mode
- Scattering/gathering (writev/readv)
- Memory copy avoidance (e.g., overlapped IO of
Windows Socket2) - To reach same data transfer rate, UDP needs
slightly less CPU time than TCP, and cause
slightly less end system delay
6UDP Performance Impact of Buffer Size
7UDP Performance Impact of Packet Size
Throughput
CPU Util.
8UDP-based Protocol Performance
- Additional overhead
- Additional memory copy
- Additional packet processing
- Additional context switches
9Optimization Guidelines
- Avoid additional memory copy
- Reduce the number of packets
- Control packets, esp. acknowledgements
- Reduce overall processing time
- Simpler mechanism is better
- Avoid burst in processing time
- CPU may be too busy to process incoming packets
10Optimization Guidelines
- Memory copy avoidance
- UDP IO
- API semantics
- Acknowledgements
- Timer-based Acknowledging
- Light ACK
- Loss processing
- Timing, rate control, and self-clocking
11Optimization Guidelines
- Disk IO
- sendfile/recvfile
- Threading
- Synchronization cost
- Code Optimization
- sending/receiving loop
- Profiling
12Part II. Composable UDT A Framework for
UDP-based Protocol Implementations
13Composable UDT
- Based on the UDT (UDP-based Data Transfer
library) implementation - Integrated those optimization techniques
described in this paper
14Objectives
- Rapid development of UDP-based transport
protocols and application specific data transfer
libraries - Easy evaluation of new congestion control
algorithms - Non-objectives
- Replace kernel space protocol implementations
- User-level TCP implementation
15Current Status
- UDT/CCC Configurable congestion control
- In future
- Data reliability configuration
- Message boundary support
16Configurable Congestion Control
- Packet sending control
- Rate-based, window-based, hybrid
- Redefinition of control event handlers
- Loss, ACK, Time Out, etc.
- Access to internal protocol parameters
- RTT, RTO, Loss Rate, etc.
- User customized packet formats
17Implementation
- C class inheritance
- CCC base class for control event handing
- Callbacks
- Performance monitoring
- Internal protocol parameters
- Performance statistics
18Implementation
19Example Simplified TCP
20Configurable Congestion Control
21Future Work
- Continue to improve the UDT/CCC library
- More experimental evaluation work of the UDT/CCC
library - Compare k-TCP and u-TCP in more network
environments - Implement more TCP variants
- More pre-implemented congestion control algorithms
22Conclusion
- UDP-based protocol is one of the solutions to
bulk data transfer in high BDP networks - Some optimization principles and techniques are
discussed in this paper - We further propose a composable framework in
order to make it much easier to implement
UDP-based protocols
23Thank you!
- For more information, please visit
- UDT Project http//udt.sf.net
- NCDM http//www.ncdm.uic.edu
24Backup Slides
25UDP Performance Experiment Setup
26UDP Performance CPU Utilization
27UDP Performance End System Delay
28UDT Profiling Modules
29UDT Profiling Functionalities
30CPU Utilization K-TCP vs U-TCP