Internet DRAFT - draft-you-iccrg-throughput-based-cwnd-increasing
draft-you-iccrg-throughput-based-cwnd-increasing
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]