Supporting Configurable Congestion Control in Data Transport Services
Supporting 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
Outline OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK udt. sourceforge. net
>> OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK udt. sourceforge. net
From 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 udt. sourceforge. net
UDT 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 udt. sourceforge. net
Motivations § Easy implementation and deployment of new control algorithms § Easy evaluation of new control algorithms § Application awareness support and dynamic configuration udt. sourceforge. net
OVERVIEW >> DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK udt. sourceforge. net
UDT with Configurable Congestion Control Memory Copy Bypass UDT Socket CC CC Callbacks Applications UDT Socket API UDP udt. sourceforge. net
Methodologies § Packet sending control ú Window-based, rate-based, and hybrid § Control event handling ú on. ACK, on. Loss, on. Timeout, on. Pkt. Sent, on. Pkt. Recved, etc. § Protocol parameters access ú RTT, loss rate, RTO, etc. § Packet extension ú User-defined control packets udt. sourceforge. net
Supported Protocols § Reliable UDP-based Protocols § Standard TCP (TCP New. Reno) § Loss-based TCP Variants § Delay-based TCP Variants § Group-based Protocols § And more… udt. sourceforge. net
Examples: Reliable UDP Blast class CUDPBlast: public CCC { public: CUDPBlast() {m_d. CWnd. Size = 83333. 0; } public: void set. Rate(int mbps) { m_d. Pkt. Snd. Period = (m_i. SMSS * 8. 0) / mbps; } protected: static const int m_i. SMSS = 1500; }; udt. sourceforge. net
Examples: Reliable UDP Blast UDT: : setsockopt(usock, 0, UDT_CC, new CCCFactory<CUDPBlast>, sizeof(CCCFactory<CUDPBlast>)); CUDPBlast* cchandle = NULL; int size = sizeof(CUDPBlast); UDT: : getsockopt(usock, 0, UDT_CC, &cchandle, &size); if (NULL != cchandle) cchandle->set. Rate(500); . . . cchandle->set. Rate(1000); udt. sourceforge. net
Examples: TCP New. Reno virtual void on. ACK(const int& ack) { if (three duplicate ACK detected) { // ssthresh = max{flight_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 } } udt. sourceforge. net
OVERVIEW DESIGN OF UDT/CCC >> PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK udt. sourceforge. net
Evaluation § 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? udt. sourceforge. net
Simplicity & 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 udt. sourceforge. net
Simplicity & Expressiveness CCC Base Congestion Control Class CTCP New. Reno CGTP CUDPBlast Group Transport Protocol Reliable UDP Blast 28 CVegas CScalable CHS CBi. C CWestwood TCP Vegas Scalable TCP High. Speed TCP Bi. C TCP Westwood 73 / +132 -6 11 / +192 -29 8 / +27 -1 11 / +192 -29 27 / +145 -2 CFAST TCP 37 / +351 -2 udt. sourceforge. net
Similarity and Overhead § CTCP vs. Linux TCP ú Aggregate throughput ú Jain’s fairness index ú Stability index (standard deviation) Flow # Throughput TCP CTCP Fairness TCP CTCP Stability TCP CTCP 1 112 122 1 1 0. 517 0. 415 2 191 208 0. 997 0. 999 0. 476 0. 426 4 322 323 0. 949 0. 999 0. 484 0. 492 8 378 422 0. 971 0. 999 0. 633 0. 550 16 672 642 0. 958 0. 985 0. 502 0. 482 32 877 799 0. 988 0. 997 0. 491 0. 470 64 921 716 0. 994 0. 996 0. 569 0. 529 udt. sourceforge. net
CPU 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 Flow # 1 2 4 8 16 32 64 2 3. 28 3. 91 4. 32 4. 05 4. 59 5. 41 6. 63 4 3. 15 3. 77 4. 36 4. 87 5. 07 5. 31 6. 58 8 3. 20 3. 95 1. 45 4. 32 5. 60 5. 27 6. 15 ACK Intervals 16 3. 43 3. 59 3. 08 3. 84 4. 41 4. 99 5. 89 32 2. 57 3. 52 3. 54 3. 91 4. 41 5. 15 5. 35 64 2. 59 3. 35 3. 44 3. 63 4. 17 4. 53 5. 08 128 2. 07 3. 51 3. 27 3. 63 3. 12 4. 01 4. 51 udt. sourceforge. net
OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION >> CONCLUSIONS AND FUTURE WORK udt. sourceforge. net
Conclusions § 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 udt. sourceforge. net
Future Work § Keep improving § More built-in congestion control package § More configuration abilities (e. g. , data reliability and timeliness) udt. sourceforge. net
The End Thank You! For More Information Please visit: SC|05 Exhibition Booth 2430 Or online at http: //udt. sf. net udt. sourceforge. net
- Slides: 23