Presentation is loading. Please wait.

Presentation is loading. Please wait.

Udt.sourceforge.net 1 :: 23 Supporting Configurable Congestion Control in Data Transport Services Yunhong Gu and Robert L. Grossman Laboratory for Advanced.

Similar presentations


Presentation on theme: "Udt.sourceforge.net 1 :: 23 Supporting Configurable Congestion Control in Data Transport Services Yunhong Gu and Robert L. Grossman Laboratory for Advanced."— Presentation transcript:

1 udt.sourceforge.net 1 :: 23 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 2 :: 23 Outline OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK

3 udt.sourceforge.net 3 :: 23 >> OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK

4 udt.sourceforge.net 4 :: 23 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.sourceforge.net 5 :: 23 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 udt.sourceforge.net 6 :: 23 Motivations  Easy implementation and deployment of new control algorithms  Easy evaluation of new control algorithms  Application awareness support and dynamic configuration

7 udt.sourceforge.net 7 :: 23 >> DESIGN OF UDT/CCC PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK OVERVIEW

8 udt.sourceforge.net 8 :: 23 UDT with Configurable Congestion Control UDP Socket API Applications UDT UDT Socket CC CC Callbacks Memory Copy Bypass

9 udt.sourceforge.net 9 :: 23 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 udt.sourceforge.net 10 :: 23 Supported Protocols  Reliable UDP-based Protocols  Standard TCP (TCP NewReno)  Loss-based TCP Variants  Delay-based TCP Variants  Group-based Protocols  And more…

11 udt.sourceforge.net 11 :: 23 Examples: Reliable UDP Blast class CUDPBlast: public CCC { public: CUDPBlast() {m_dCWndSize = 83333.0;} public: void setRate(int mbps) { m_dPktSndPeriod = (m_iSMSS * 8.0) / mbps; } protected: static const int m_iSMSS = 1500; };

12 udt.sourceforge.net 12 :: 23 Examples: Reliable UDP Blast UDT::setsockopt(usock, 0, UDT_CC, new CCCFactory, sizeof(CCCFactory )); CUDPBlast* cchandle = NULL; int size = sizeof(CUDPBlast); UDT::getsockopt(usock, 0, UDT_CC, &cchandle, &size); if (NULL != cchandle) cchandle->setRate(500);... cchandle->setRate(1000);

13 udt.sourceforge.net 13 :: 23 Examples: TCP NewReno virtual void onACK(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 udt.sourceforge.net 14 :: 23 >> PERFORMANCE EVALUATION CONCLUSIONS AND FUTURE WORK OVERVIEW DESIGN OF UDT/CCC

15 udt.sourceforge.net 15 :: 23 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 udt.sourceforge.net 16 :: 23 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 udt.sourceforge.net 17 :: 23 Simplicity & Expressiveness CCC Base Congestion Control Class CTCP TCP NewReno CGTP Group Transport Protocol CUDPBlast Reliable UDP Blast CFAST FAST TCP CVegas TCP Vegas CScalable Scalable TCP CHS HighSpeed TCP CBiC BiC TCP CWestwood TCP Westwood 28 73 / +132-611 / +192-298 / +27-111 / +192-2927 / +145-2 37 / +351-2

18 udt.sourceforge.net 18 :: 23 Similarity and Overhead  CTCP vs. Linux TCP  Aggregate throughput  Jain’s fairness index  Stability index (standard deviation) Flow # ThroughputFairnessStability TCPCTCPTCPCTCPTCPCTCP 1112122110.5170.415 21912080.9970.9990.4760.426 43223230.9490.9990.4840.492 83784220.9710.9990.6330.550 166726420.9580.9850.5020.482 328777990.9880.9970.4910.470 649217160.9940.9960.5690.529

19 udt.sourceforge.net 19 :: 23 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 # ACK Intervals 248163264128 13.283.153.203.432.572.592.07 23.913.773.953.593.523.353.51 44.324.361.453.083.543.443.27 84.054.874.323.843.913.63 164.595.075.604.41 4.173.12 325.415.315.274.995.154.534.01 646.636.586.155.895.355.084.51

20 udt.sourceforge.net 20 :: 23 >> CONCLUSIONS AND FUTURE WORK OVERVIEW DESIGN OF UDT/CCC PERFORMANCE EVALUATION

21 udt.sourceforge.net 21 :: 23 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 udt.sourceforge.net 22 :: 23 Future Work  Keep improving  More built-in congestion control package  More configuration abilities (e.g., data reliability and timeliness)

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


Download ppt "Udt.sourceforge.net 1 :: 23 Supporting Configurable Congestion Control in Data Transport Services Yunhong Gu and Robert L. Grossman Laboratory for Advanced."

Similar presentations


Ads by Google