ICC Research Group J. You Internet-Draft Huawei Intended status: Experimental March 20, 2015 Expires: September 21, 2015 Increasing TCP's CWND based on Throughput draft-you-iccrg-throughput-based-cwnd-increasing-00 Abstract With 4K technology, we can get more details compared to traditional HD screens of the same size. However, 4K content increases the demand for higher network throughput, which poses a big challenge for delivering 4K content by TCP. This document proposes a target throughput based method for increasing TCP's congestion window (cwnd). Experimental results show that the proposed method can reach the required throughput much more rapidly than traditional TCP congestion algorithms, such as Reno, Cubic. Moreover, this method prevents cwnd from increasing when cwnd reaching to the required throughput. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on September 21, 2015. You Expires September 21, 2015 [Page 1] Internet-Draft Throughput based CWND Increasing March 2015 Copyright Notice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Increasing CWND based on Throughput . . . . . . . . . . . . . 5 3.1. Window Growth Function . . . . . . . . . . . . . . . . . 6 3.2. Threshold . . . . . . . . . . . . . . . . . . . . . . . . 8 4. Implementation Considerations . . . . . . . . . . . . . . . . 8 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 6. Security considerations . . . . . . . . . . . . . . . . . . . 9 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 10 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 8.2. Informative References . . . . . . . . . . . . . . . . . 10 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 1. Introduction Ultra HD (4K), or Ultra High Definition, is the next big step in HDTV resolution. 4K introduced as a new projection standard for digital cinema, bring digital cinema experience home with more details, more colors, higher frame rate and smoother experience. Basically, 4K content streaming requires throughput no less than 45Mbps. Table 1 shows the main parameters for different kinds of 4K services when using traditional TCP [RFC793] congestion algorithms. You Expires September 21, 2015 [Page 2] Internet-Draft Throughput based CWND Increasing March 2015 Table 1: Paramters for 4K Services +----------+----------------+------------------+-------------+ | | Burst of Speed | Packet Loss Rate |Packet Delay | +----------+----------------+------------------+-------------+ |Quasi 4K | > 30Mbps | < 5.6*10exp(-7) | RTT < 65ms | +----------+----------------+------------------+-------------+ |Basic 4K | > 60Mbps | < 5.6*10exp(-7) | RTT < 35ms | +----------+----------------+------------------+-------------+ |Ultra 4K | > 112Mbps | < 5.6*10exp(-7) | RTT < 22ms | +----------+----------------+------------------+-------------+ 4K video can be encoded using different methods, such as CBR (Constant Bit Rate), VBR (Variable Bit Rate). CBR encodes each frame of video with the same bit rate, however, VBR adjusts the amount of bits assigned to a frame depending on what the encoder believes is happening in the frame. So the bit rate fluctuates over time when using VBR. For example, one tested 4K video using VBR encoding, its average bit rate is about 40Mbps and its maximum bit rate is about 60Mbps. TCP uses slow start to increase the congestion window after a connection is initialized. It may start with an initial window of 10MSS [RFC6928]. During the slow start phase, TCP increases the congestion window very rapidly until packet loss occurs. TCP will enter the congestion avoidance phase. Given target throughput = 50Mbps, RTT = 60ms, then target window size = 259MSS. During the slow start phase, the cwnd increases exponentially per RTT, i.e. 10, 20, 40, 80, ... Assume a packet loss occurs when cwnd = 130MSS. TCP Reno [RFC3782] cuts its congestion window in half, i.e. 65MSS, and switches to the congestion avoidance phase. In congestion avoidance phase, TCP's send rate increases linearly, i.e. cwnd = cwnd+1. It takes 194 RTTs until the sender's congestion window reaches to 259MSS, which needs about 11.64s. On the whole, TCP Reno needs 198 RTTs, i.e. about 11.88s, to reach to 50Mbps from the beginning of a transfer. Another example is TCP Cubic [CubicTCP]. Similarly assume a packet loss occurs when cwnd = 130MSS, then the cwnd is reduced to (717/1024)*130 = 91MSS. The congestion window of Cubic is determined by the following function: W(t) = C * (t-K)^3 + Wmax where C is a scaling factor, t is the elapsed time from the last window reduction, Wmax is the window size just before the last window reduction, and You Expires September 21, 2015 [Page 3] Internet-Draft Throughput based CWND Increasing March 2015 K = ((Wmax*beta)/C)^(1/3) where beta is a constant multiplication decrease factor applied for window reduction at the time of loss event, i.e., the window reduction is beta*Wmax = (307/1024)*130 = 39MSS at the time of the last reduction. Calculate K=9.9 with C = 0.04, then 0.04*(t-9.9)^3+130 = 259, so t = 25. TCP Cubic needs 29 RTTs, i.e. about 1.74s, to reach to 50Mbps from the beginning of a transfer. Throughput(Mbps) ^ | | | / | | cwnd=259 -50 / Cubic | | | / | / | / .../ | / .../ | _/ .../ Reno | .--/ .../ cwnd=130 -25 /| ./ .../ | / |/ .../ cwnd=91 -17.5 | | .../ | / | .../ cwnd=65 -12.5| |/ | / | / |-/ +-----------------------------------------------------------> Time(s) Figure 1: Cubic and Reno Window Curves As shown in Figure 1, if packet loss occurs during the slow start phase, TCP Reno takes much longer time to reach the required throughput. TCP Cubic takes relatively shorter time compared to TCP Reno, but cwnd continues to increase even though it has reached to the target throughput. This document proposes a target throughput based method for increasing TCP's congestion window. Experimental results show that the proposed method can reach the required throughput much more rapidly than traditional TCP congestion algorithms, such as Reno, Cubic. Moreover, this method prevents cwnd from increasing when cwnd reaching to the required throughput. You Expires September 21, 2015 [Page 4] Internet-Draft Throughput based CWND Increasing March 2015 2. Terminology This section contains definitions of term frequently used throughout this document. 4K: known as Ultra HD or UHD, is used to describe a new high resolution video format with a minimum resolution of 3840 x 2160 pixels in a 16 x 9 aspect ratio for any display. TCP: Transmission Control Protocol RTT: Round-Trip Time CBR: Constant Bit Rate VBR: Variable Bit Rate 3. Increasing CWND based on Throughput This document proposes a target throughput based method for increasing TCP's congestion window. The main steps are shown in Figure 2. +---------+ +---------+ | | | | | APPs | | APPs |(1) | | | | +----+----+ +----+----+ | | | | | |(2) | | | | +----V----+ +----V----+ | | | (3) | |TCP Stack<--------------->TCP Stack| | | | | +---------+ +---------+ Client Server Figure 2: Increasing cwnd based on Throughput Step 1: APP calculates the target throughput; take 4K VBR as an example, TARGET_THROUGHPUT = e * BR where e>1, is a multiplication factor. You Expires September 21, 2015 [Page 5] Internet-Draft Throughput based CWND Increasing March 2015 Step 2: Extend TCP socket option: setsockopt(); add a new parameter: TARGET_THROUGHPUT, which will be transferred to TCP protocol stack. Step 3: Calculate the increase factor alpha: alpha = TARGET_THROUGHPUT * RTT - cwnd; The increase factor for cwnd is calculated according to RTT and TARGET_THROUGHPUT. TARGET_THROUGHPUT is input by APP, while RTT is estimated based on current technology, which reflects the congestion state of the network. Hence, cwnd = cwnd + alpha The cwnd can be adjusted for every RTT, as shown in Figure 3. +----------+ |Input | |Target | |Throughput| +----+-----+ | | | | --- | / \ +----V-----+ +----------+ / \ |Calculate | |Network | + Every +-------->increase <----------+State | \ RTT / |factor | |(RTT) | \ / +-----+----+ +----------+ --- | ^ | | | +----+-----+ | |Congestion| | |Avoidance <-------------+ | | +----------+ Figure 3: Procedures for Increasing cwnd 3.1. Window Growth Function Alpha is an increase factor which is determined by the following function: alpha = TARGET_THROUGHPUT * RTT - cwnd You Expires September 21, 2015 [Page 6] Internet-Draft Throughput based CWND Increasing March 2015 However, protection mechanism needs to be considered for alpha, for example, when RTT is longer, the fast growth of cwnd may deteriorate the delay or congestion. So a threshold T is defined to balance the congestion state of the network. When BaseRTT =< RTT <= T; the proposed alpha function will be applied, otherwise, current window growth function (such as Reno, Cubic) will be applied, as shown in Figure 4. In Figure 4, BaseRTT is estimated as the minimum observed RTT for the connection. Assume the TARGET_THROUGHPUT provide by the APP is no larger than the actual network capacity, then TARGET_cwnd = TARGET_THROUGHPUT * BaseRTT When cwnd reaches to TARGET_cwnd, Alpha is zero with RTT = BaseRTT. Alpha ^ . . . | . . . | . . . | . . . | . . . | . alpha=TARGET_THROUGHPUT*RTT-cwnd | . / . . | . / . . | . / . . | . / . . | . / alpha=TARGET_THROUGHPUT*RTT-TARGET_cwnd | . / / . . | . / / . . | . / / . . | . / / . . | ./ / . . | . / . . | . / . . | . / .e.g. Reno . 1 - . / ------------ +-------------------------------------------> BaseRTT T RTO RTT Figure 4: Alpha during Congestion Avoidance When T < RTT <= RTO, alpha will is determined by current congestion algorithm, such as TCP Reno. RTO is the TCP retransmission timeout time. Suppose we still use the above-mentioned alpha formula, i.e. alpha = TARGET_THROUGHPUT * RTT - cwnd, then alpha will be larger. However, at that time, the state of network is not good as RTT is long. If still keeping large increase pace, it may deteriorate congestion. So when RTT is during this range, alpha should be in You Expires September 21, 2015 [Page 7] Internet-Draft Throughput based CWND Increasing March 2015 inverse proportion to RTT. For example, when RTT = RTO, the network is very congested; alpha could be 1 MSS. 3.2. Threshold Threshold T is defined to balance the congestion state of the network. It has two main purposes: o prevent alpha from fast increasing in case TARGET_THROUGHPUT is larger than the actual network capacity. APP may overestimate the network capacity, and provide the incorrect TARGET_THROUGHPUT. o adjust T flexibly so as to adapt to different network. When T = RTO, it shows the network capacity is enough to meet the TARGET_THROUGHPUT. When T = BaseRTT, the proposed method doesn't work. 4. Implementation Considerations Given target throughput = 50Mbps, RTT = 60ms, then target window size = 259MSS. Assume initial cwnd = 10MSS, during the slow start phase, alpha = TARGET_THROUGHPUT * RTT - cwnd = 50Mbps*60ms -10 MSS = 249MSS Only one RTT is needed to reach to the target throughput. After, alpha will be zero if RTT is not changed. If packet loss occurs, TCP will cut its congestion window in half like Reno, i.e. to 130 MSS, and switches to the congestion avoidance phase. In congestion avoidance phase, the cwnd increases still according to: alpha = TARGET_THROUGHPUT * RTT - cwnd = 50Mbps*60ms -130MSS = 129MSS Still one RTT is needed to come back to the target throughput. You Expires September 21, 2015 [Page 8] Internet-Draft Throughput based CWND Increasing March 2015 CWND/MSS^ . . . | . . . | . . . | . . . | . . . | . . . 259- ----------------+ . /-------- | /. . | / | / . . | / . | / . . | / . | / . . | / . | / . . | / . | / . . | / . 130- / . . / . | / . . . | / . . . | / . . . | / . . . |/ . . . 10- . . . +------------------------------------------------------> 1 2 3 RTT/Number Figure 5: Window Curve with Packet Loss using Proposed Method During the slow start phase, the growth of cwnd is not effected by packet loss if the ACK for first packet is received. In the first RTT, cwnd has already increased to the target cwnd when the sender receives the ACK for the first packet. If packet loss occurs in the third RTT, cwnd is reduced to half. Then in the following RTT, the cwnd rapidly increases to the target cwnd. In order to support the alpha function in the sender, the receiver needs to set the receiving window according to the TARGET_THROUGHPUT too; otherwise the sender's cwnd may be limited by the receiving window. 5. IANA Considerations This document has no actions for IANA. 6. Security considerations This document introduces a new method to configure the congestion window for TCP connections. This method facilitates application developers to tune TCP for their benefits. But it also has the possibility that packet loss may be caused by inappropriate cwnd setting if application overestimates the network capacity. You Expires September 21, 2015 [Page 9] Internet-Draft Throughput based CWND Increasing March 2015 7. Acknowledgement TBD. 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3782] Floyd, S., Henderson, T., and A. Gurtov, "The NewReno Modification to TCP's Fast Recovery Algorithm", RFC 3782, April 2004. [RFC6928] Chu, J., Dukkipati, N., Cheng, Y., and M. Mathis, "Increasing TCP's Initial Window", RFC 6928, April 2013. [RFC793] Postel, J., "Transmission Control Protocol", RFC 793, September 1981. 8.2. Informative References [CubicTCP] Ha, S., Rhee, I., and L. Xu, "CUBIC: A New TCP Friendly HighSpeed TCP Variant", 2008. Author's Address Jianjie You Huawei 101 Software Avenue, Yuhua District Nanjing 210012 China Email: youjianjie@huawei.com You Expires September 21, 2015 [Page 10]