1 / 23

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.

emma
Download Presentation

Supporting Configurable Congestion Control in Data Transport Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Outline OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK

  3. >> OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK

  4. 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

  5. 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

  6. Motivations • Easy implementation and deployment of new control algorithms • Easy evaluation of new control algorithms • Application awareness support and dynamic configuration

  7. >> DESIGN OF UDT/CCC OVERVIEW PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK

  8. UDT with Configurable Congestion Control Applications CC UDT Socket CC Callbacks Memory Copy Bypass UDT Socket API UDP

  9. Methodologies • 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

  10. Supported Protocols • Reliable UDP-based Protocols • Standard TCP (TCP NewReno) • Loss-based TCP Variants • Delay-based TCP Variants • Group-based Protocols • And more…

  11. Examples: Reliable UDP Blast classCUDPBlast:publicCCC{public:CUDPBlast() {m_dCWndSize = 83333.0;}public:voidsetRate(intmbps){      m_dPktSndPeriod = (m_iSMSS * 8.0) / mbps;   }protected:static const intm_iSMSS = 1500;};

  12. Examples: Reliable UDP Blast UDT::setsockopt(usock, 0, UDT_CC, newCCCFactory<CUDPBlast>, sizeof(CCCFactory<CUDPBlast>)); CUDPBlast* cchandle = NULL; intsize = sizeof(CUDPBlast); UDT::getsockopt(usock, 0, UDT_CC, &cchandle, &size); if(NULL != cchandle)cchandle->setRate(500); ... cchandle->setRate(1000);

  13. Examples: TCP NewReno virtual voidonACK(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 } }

  14. >> PERFORMANCE EVALUATION OVERVIEW DESIGN OF UDT/CCC CONCLUSIONS AND FUTURE WORK

  15. 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?

  16. 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

  17. CTCP TCP NewReno CGTP Group Transport Protocol CUDPBlast Reliable UDP Blast 28 CVegas TCP Vegas CScalable Scalable TCP CHS HighSpeed TCP CBiC BiC TCP CWestwood TCP Westwood 73 / +132-6 11 / +192-29 8 / +27-1 11 / +192-29 27 / +145-2 CFAST FAST TCP 37 / +351-2 Simplicity & Expressiveness CCC Base Congestion Control Class

  18. Flow # Throughput Fairness Stability TCP CTCP TCP CTCP 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 Similarity and Overhead • CTCP vs. Linux TCP • Aggregate throughput • Jain’s fairness index • Stability index (standard deviation)

  19. Flow # ACK Intervals 2 4 8 16 32 64 128 1 3.28 3.15 3.20 3.43 2.57 2.59 2.07 2 3.91 3.77 3.95 3.59 3.52 3.35 3.51 4 4.32 4.36 1.45 3.08 3.54 3.44 3.27 8 4.05 4.87 4.32 3.84 3.91 3.63 3.63 16 4.59 5.07 5.60 4.41 4.41 4.17 3.12 32 5.41 5.31 5.27 4.99 5.15 4.53 4.01 64 6.63 6.58 6.15 5.89 5.35 5.08 4.51 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

  20. >> CONCLUSIONS AND FUTURE WORK OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION

  21. 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

  22. Future Work • Keep improving • More built-in congestion control package • More configuration abilities (e.g., data reliability and timeliness)

  23. The End Thank You! For More Information Please visit: SC|05 Exhibition Booth 2430 Or online at http://udt.sf.net

More Related