Title: Supporting Configurable Congestion Control in Data Transport Services
1Supporting Configurable Congestion Control in
Data Transport Services
Yunhong Gu and Robert L. Grossman Laboratory for
Advanced Computing National Center for Data
Mining University of Illinois at Chicago November
16, 2005
udt.sourceforge.net
2Outline
OVERVIEW
DESIGN OF UDT/CCC
PERFORMANCE EVALUATION
CONCLUSIONS AND FUTURE WORK
3gtgt OVERVIEW
DESIGN OF UDT/CCC
PERFORMANCE EVALUATION
CONCLUSIONS AND FUTURE WORK
4From UDT to Composable UDT
- UDT (UDP-based Data Transfer Protocol)
- New application level protocol add reliability
and congestion control to UDP - New congestion control algorithm designed for
high performance data transfer over high-speed
wide area networks - Open source http//udt.sourceforge.net
- Composable UDT
- An expansion to UDT with ability to allow users
to configure the UDT library congestion control,
data reliability, etc. - Compile time option no performance drop for the
original UDT
5UDT with Configurable Congestion Control (CCC)
- CCC support is the first step of Composable UDT
- UDT/CCC allows user to implement or assign a
specific congestion control algorithm to a UDT
connection - Per connection control
- Dynamically configurable
6Motivations
- Easy implementation and deployment of new control
algorithms - Easy evaluation of new control algorithms
- Application awareness support and dynamic
configuration
7gtgt DESIGN OF UDT/CCC
OVERVIEW
PERFORMANCE EVALUATION
CONCLUSIONS AND FUTURE WORK
8UDT with Configurable Congestion Control
Applications
CC
UDT Socket
CC Callbacks
Memory Copy Bypass
UDT
Socket API
UDP
9Methodologies
- Packet sending control
- Window-based, rate-based, and hybrid
- Control event handling
- onACK, onLoss, onTimeout, onPktSent, onPktRecved,
etc. - Protocol parameters access
- RTT, loss rate, RTO, etc.
- Packet extension
- User-defined control packets
10Supported Protocols
- Reliable UDP-based Protocols
- Standard TCP (TCP NewReno)
- Loss-based TCP Variants
- Delay-based TCP Variants
- Group-based Protocols
- And more
11Examples Reliable UDP Blast
- class CUDPBlast public CCCpublic Â
CUDPBlast() m_dCWndSize 83333.0public Â
void setRate(int mbps)Â Â Â Â Â Â Â m_dPktSndPeriod
(m_iSMSS 8.0) / mbps  protected Â
static const int m_iSMSS 1500
12Examples Reliable UDP Blast
- UDTsetsockopt(usock, 0, UDT_CC,
- new CCCFactoryltCUDPBlastgt,
- sizeof(CCCFactoryltCUDPBlastgt))
- CUDPBlast cchandle NULL
- int size sizeof(CUDPBlast)
- UDTgetsockopt(usock, 0, UDT_CC, cchandle,
size) - if (NULL ! cchandle)cchandle-gtsetRate(500)
- ...
- cchandle-gtsetRate(1000)
13Examples TCP NewReno
- virtual void onACK(const int ack)
-
- if (three duplicate ACK detected)
- // ssthresh maxflight_size / 2, 3
- // cwnd ssthresh 3 SMSS
- else if (further duplicate ACK detected)
- // cwnd cwnd SMSS
- else if (end fast recovery)
- // cwnd ssthresh
- else
- // cwnd cwnd 1/cwnd
-
-
14gtgt PERFORMANCE EVALUATION
OVERVIEW
DESIGN OF UDT/CCC
CONCLUSIONS AND FUTURE WORK
15Evaluation
- Simplicity
- Can it be easily used?
- Expressiveness
- Can it be used to implement most control
protocols? - Similarity
- Can Composable UDT based implementations
reproduce the performance of their native
implementations? - Overhead
- Will the overhead added by Composable UDT be too
large?
16Simplicity Expressiveness
- Eight event handlers, four protocol control
functions, and one performance monitoring
function. - Support a large variety of protocols
- Reliable UDT blast
- TCP and its variants (both loss and delay based)
- Group transport protocols
17Simplicity Expressiveness
CCC Base Congestion Control Class
18Similarity and Overhead
- CTCP vs. Linux TCP
- Aggregate throughput
- Jains fairness index
- Stability index (standard deviation)
19CPU Overhead vs. ACK Frequencies
- CPU usage
- Sender CTCP uses about 100 more times of CPU as
Linux TCP - Receiver CTCP uses about 20 more CPU than Linux
TCP - Source of overheads
- Additional memory copy and context switch
- ACK Frequencies is one of the major factors
20gtgt CONCLUSIONS AND FUTURE WORK
OVERVIEW
DESIGN OF UDT/CCC
PERFORMANCE EVALUATION
21Conclusions
- We expanded our UDT protocol with support for
configurable congestion control - Easy implementation and deployment of new control
algorithms - Easy evaluation of new control algorithms
- Application awareness support and dynamic
configuration - Pros
- Simplicity and expressiveness
- Easily deployable
- Cons
- CPU overhead
22Future Work
- Keep improving
- More built-in congestion control package
- More configuration abilities (e.g., data
reliability and timeliness)
23The End
- Thank You!
- For More Information
- Please visit
- SC05 Exhibition Booth 2430
- Or online at http//udt.sf.net