From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc3649.txt | 1907 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1907 insertions(+) create mode 100644 doc/rfc/rfc3649.txt (limited to 'doc/rfc/rfc3649.txt') diff --git a/doc/rfc/rfc3649.txt b/doc/rfc/rfc3649.txt new file mode 100644 index 0000000..6a20e0d --- /dev/null +++ b/doc/rfc/rfc3649.txt @@ -0,0 +1,1907 @@ + + + + + + +Network Working Group S. Floyd +Request for Comments: 3649 ICSI +Category: Experimental December 2003 + + + HighSpeed TCP for Large Congestion Windows + +Status of this Memo + + This memo defines an Experimental Protocol for the Internet + community. It does not specify an Internet standard of any kind. + Discussion and suggestions for improvement are requested. + Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2003). All Rights Reserved. + +Abstract + + The proposals in this document are experimental. While they may be + deployed in the current Internet, they do not represent a consensus + that this is the best method for high-speed congestion control. In + particular, we note that alternative experimental proposals are + likely to be forthcoming, and it is not well understood how the + proposals in this document will interact with such alternative + proposals. + + This document proposes HighSpeed TCP, a modification to TCP's + congestion control mechanism for use with TCP connections with large + congestion windows. The congestion control mechanisms of the current + Standard TCP constrains the congestion windows that can be achieved + by TCP in realistic environments. For example, for a Standard TCP + connection with 1500-byte packets and a 100 ms round-trip time, + achieving a steady-state throughput of 10 Gbps would require an + average congestion window of 83,333 segments, and a packet drop rate + of at most one congestion event every 5,000,000,000 packets (or + equivalently, at most one congestion event every 1 2/3 hours). This + is widely acknowledged as an unrealistic constraint. To address this + limitation of TCP, this document proposes HighSpeed TCP, and solicits + experimentation and feedback from the wider community. + + + + + + + + + + +Floyd Experimental [Page 1] + +RFC 3649 HighSpeed TCP December 2003 + + +Table of Contents + + 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2. The Problem Description.. . . . . . . . . . . . . . . . . . . . 3 + 3. Design Guidelines.. . . . . . . . . . . . . . . . . . . . . . . 4 + 4. Non-Goals.. . . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 5. Modifying the TCP Response Function.. . . . . . . . . . . . . . 6 + 6. Fairness Implications of the HighSpeed Response + Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 + 7. Translating the HighSpeed Response Function into + Congestion Control Parameters . . . . . . . . . . . . . . . . . 12 + 8. An alternate, linear response functions.. . . . . . . . . . . . 13 + 9. Tradeoffs for Choosing Congestion Control Parameters. . . . . . 16 + 9.1. The Number of Round-Trip Times between Loss Events . . . . 17 + 9.2. The Number of Packet Drops per Loss Event, with Drop-Tail. 17 + 10. Related Issues . . . . . . . . . . . . . . . . . . . . . . . . 18 + 10.1. Slow-Start. . . . . . . . . . . . . . . . . . . . . . . . 18 + 10.2. Limiting burstiness on short time scales. . . . . . . . . 19 + 10.3. Other limitations on window size. . . . . . . . . . . . . 19 + 10.4. Implementation issues.. . . . . . . . . . . . . . . . . . 19 + 11. Deployment issues. . . . . . . . . . . . . . . . . . . . . . . 20 + 11.1. Deployment issues of HighSpeed TCP. . . . . . . . . . . . 20 + 11.2. Deployment issues of Scalable TCP . . . . . . . . . . . . 22 + 12. Related Work in HighSpeed TCP. . . . . . . . . . . . . . . . . 23 + 13. Relationship to other Work.. . . . . . . . . . . . . . . . . . 25 + 14. Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . . 25 + 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25 + 16. Normative References . . . . . . . . . . . . . . . . . . . . . 26 + 17. Informative References . . . . . . . . . . . . . . . . . . . . 26 + 18. Security Considerations. . . . . . . . . . . . . . . . . . . . 28 + 19. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 28 + A. TCP's Loss Event Rate in Steady-State. . . . . . . . . . . . . 29 + B. A table for a(w) and b(w). . . . . . . . . . . . . . . . . . . 30 + C. Exploring the time to converge to fairness . . . . . . . . . . 32 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . 33 + Full Copyright Statement . . . . . . . . . . . . . . . . . . . 34 + +1. Introduction + + This document proposes HighSpeed TCP, a modification to TCP's + congestion control mechanism for use with TCP connections with large + congestion windows. In a steady-state environment, with a packet + loss rate p, the current Standard TCP's average congestion window is + roughly 1.2/sqrt(p) segments. This places a serious constraint on + the congestion windows that can be achieved by TCP in realistic + environments. For example, for a Standard TCP connection with 1500- + byte packets and a 100 ms round-trip time, achieving a steady-state + throughput of 10 Gbps would require an average congestion window of + + + +Floyd Experimental [Page 2] + +RFC 3649 HighSpeed TCP December 2003 + + + 83,333 segments, and a packet drop rate of at most one congestion + event every 5,000,000,000 packets (or equivalently, at most one + congestion event every 1 2/3 hours). The average packet drop rate of + at most 2*10^(-10) needed for full link utilization in this + environment corresponds to a bit error rate of at most 2*10^(-14), + and this is an unrealistic requirement for current networks. + + To address this fundamental limitation of TCP and of the TCP response + function (the function mapping the steady-state packet drop rate to + TCP's average sending rate in packets per round-trip time), this + document describes a modified TCP response function for regimes with + higher congestion windows. This document also solicits + experimentation and feedback on HighSpeed TCP from the wider + community. + + Because HighSpeed TCP's modified response function would only take + effect with higher congestion windows, HighSpeed TCP does not modify + TCP behavior in environments with heavy congestion, and therefore + does not introduce any new dangers of congestion collapse. However, + if relative fairness between HighSpeed TCP connections is to be + preserved, then in our view any modification to the TCP response + function should be addressed in the IETF, rather than made as ad hoc + decisions by individual implementors or TCP senders. Modifications + to the TCP response function would also have implications for + transport protocols that use TFRC and other forms of equation-based + congestion control, as these congestion control mechanisms directly + use the TCP response function [RFC3448]. + + This proposal for HighSpeed TCP focuses specifically on a proposed + change to the TCP response function, and its implications for TCP. + This document does not address what we view as a separate fundamental + issue, of the mechanisms required to enable best-effort connections + to *start* with large initial windows. In our view, while HighSpeed + TCP proposes a somewhat fundamental change to the TCP response + function, at the same time it is a relatively simple change to + implement in a single TCP sender, and presents no dangers in terms of + congestion collapse. In contrast, in our view, the problem of + enabling connections to *start* with large initial windows is + inherently more risky and structurally more difficult, requiring some + form of explicit feedback from all of the routers along the path. + This is another reason why we would propose addressing the problem of + starting with large initial windows separately, and on a separate + timetable, from the problem of modifying the TCP response function. + + + + + + + + +Floyd Experimental [Page 3] + +RFC 3649 HighSpeed TCP December 2003 + + +2. The Problem Description + + This section describes the number of round-trip times between + congestion events required for a Standard TCP flow to achieve an + average throughput of B bps, given packets of D bytes and a round- + trip time of R seconds. A congestion event refers to a window of + data with one or more dropped or ECN-marked packets (where ECN stands + for Explicit Congestion Notification). + + From Appendix A, achieving an average TCP throughput of B bps + requires a loss event at most every BR/(12D) round-trip times. This + is illustrated in Table 1, for R = 0.1 seconds and D = 1500 bytes. + The table also gives the average congestion window W of BR/(8D), and + the steady-state packet drop rate P of 1.5/W^2. + + TCP Throughput (Mbps) RTTs Between Losses W P + --------------------- ------------------- ---- ----- + 1 5.5 8.3 0.02 + 10 55.5 83.3 0.0002 + 100 555.5 833.3 0.000002 + 1000 5555.5 8333.3 0.00000002 + 10000 55555.5 83333.3 0.0000000002 + + Table 1: RTTs Between Congestion Events for Standard TCP, for + 1500-Byte Packets and a Round-Trip Time of 0.1 Seconds. + + This document proposes HighSpeed TCP, a minimal modification to TCP's + increase and decrease parameters, for TCP connections with larger + congestion windows, to allow TCP to achieve high throughput with more + realistic requirements for the steady-state packet drop rate. + Equivalently, HighSpeed TCP has more realistic requirements for the + number of round-trip times between loss events. + +3. Design Guidelines + + Our proposal for HighSpeed TCP is motivated by the following + requirements: + + * Achieve high per-connection throughput without requiring + unrealistically low packet loss rates. + + * Reach high throughput reasonably quickly when in slow-start. + + * Reach high throughput without overly long delays when recovering + from multiple retransmit timeouts, or when ramping-up from a + period with small congestion windows. + + + + + +Floyd Experimental [Page 4] + +RFC 3649 HighSpeed TCP December 2003 + + + * No additional feedback or support required from routers: + + For example, the goal is for acceptable performance in both ECN- + capable and non-ECN-capable environments, and with Drop-Tail as well + as with Active Queue Management such as RED in the routers. + + * No additional feedback required from TCP receivers. + + * TCP-compatible performance in environments with moderate or high + congestion (e.g., packet drop rates of 1% or higher): + + Equivalently, the requirement is that there be no additional load on + the network (in terms of increased packet drop rates) in environments + with moderate or high congestion. + + * Performance at least as good as Standard TCP in environments with + moderate or high congestion. + + * Acceptable transient performance, in terms of increases in the + congestion window in one round-trip time, responses to severe + congestion, and convergence times to fairness. + + Currently, users wishing to achieve throughputs of 1 Gbps or more + typically open up multiple TCP connections in parallel, or use MulTCP + [CO98,GRK99], which behaves roughly like the aggregate of N virtual + TCP connections. While this approach suffices for the occasional + user on well-provisioned links, it leaves the parameter N to be + determined by the user, and results in more aggressive performance + and higher steady-state packet drop rates if used in environments + with periods of moderate or high congestion. We believe that a new + approach is needed that offers more flexibility, more effectively + scales to a wide range of available bandwidths, and competes more + fairly with Standard TCP in congested environments. + +4. Non-Goals + + The following are explicitly *not* goals of our work: + + * Non-goal: TCP-compatible performance in environments with very low + packet drop rates. + + We note that our proposal does not require, or deliver, TCP- + compatible performance in environments with very low packet drop + rates, e.g., with packet loss rates of 10^-5 or 10^-6. As we discuss + later in this document, we assume that Standard TCP is unable to make + effective use of the available bandwidth in environments with loss + + + + + +Floyd Experimental [Page 5] + +RFC 3649 HighSpeed TCP December 2003 + + + rates of 10^-6 in any case, so that it is acceptable and appropriate + for HighSpeed TCP to perform more aggressively than Standard TCP in + such an environment. + + * Non-goal: Ramping-up more quickly than allowed by slow-start. + + It is our belief that ramping-up more quickly than allowed by slow- + start would necessitate more explicit feedback from routers along the + path. The proposal for HighSpeed TCP is focused on changes to TCP + that could be effectively deployed in the current Internet + environment. + + * Non-goal: Avoiding oscillations in environments with only one-way, + long-lived flows all with the same round-trip times. + + While we agree that attention to oscillatory behavior is useful, + avoiding oscillations in aggregate throughput has not been our + primary consideration, particularly for simplified environments + limited to one-way, long-lived flows all with the same, large round- + trip times. Our assessment is that some oscillatory behavior in + these extreme environments is an acceptable price to pay for the + other benefits of HighSpeed TCP. + +5. Modifying the TCP Response Function + + The TCP response function, w = 1.2/sqrt(p), gives TCP's average + congestion window w in MSS-sized segments, as a function of the + steady-state packet drop rate p [FF98]. This TCP response function + is a direct consequence of TCP's Additive Increase Multiplicative + Decrease (AIMD) mechanisms of increasing the congestion window by + roughly one segment per round-trip time in the absence of congestion, + and halving the congestion window in response to a round-trip time + with a congestion event. This response function for Standard TCP is + reflected in the table below. In this proposal we restrict our + attention to TCP performance in environments with packet loss rates + of at most 10^-2, and so we can ignore the more complex response + functions that are required to model TCP performance in more + congested environments with retransmit timeouts. From Appendix A, an + average congestion window of W corresponds to an average of 2/3 W + round-trip times between loss events for Standard TCP (with the + congestion window varying from 2/3 W to 4/3 W). + + + + + + + + + + +Floyd Experimental [Page 6] + +RFC 3649 HighSpeed TCP December 2003 + + + Packet Drop Rate P Congestion Window W RTTs Between Losses + ------------------ ------------------- ------------------- + 10^-2 12 8 + 10^-3 38 25 + 10^-4 120 80 + 10^-5 379 252 + 10^-6 1200 800 + 10^-7 3795 2530 + 10^-8 12000 8000 + 10^-9 37948 25298 + 10^-10 120000 80000 + + Table 2: TCP Response Function for Standard TCP. The average + congestion window W in MSS-sized segments is given as a function of + the packet drop rate P. + + To specify a modified response function for HighSpeed TCP, we use + three parameters, Low_Window, High_Window, and High_P. To ensure TCP + compatibility, the HighSpeed response function uses the same response + function as Standard TCP when the current congestion window is at + most Low_Window, and uses the HighSpeed response function when the + current congestion window is greater than Low_Window. In this + document we set Low_Window to 38 MSS-sized segments, corresponding to + a packet drop rate of 10^-3 for TCP. + + To specify the upper end of the HighSpeed response function, we + specify the packet drop rate needed in the HighSpeed response + function to achieve an average congestion window of 83000 segments. + This is roughly the window needed to sustain 10 Gbps throughput, for + a TCP connection with the default packet size and round-trip time + used earlier in this document. For High_Window set to 83000, we + specify High_P of 10^-7; that is, with HighSpeed TCP a packet drop + rate of 10^-7 allows the HighSpeed TCP connection to achieve an + average congestion window of 83000 segments. We believe that this + loss rate sets an achievable target for high-speed environments, + while still allowing acceptable fairness for the HighSpeed response + function when competing with Standard TCP in environments with packet + drop rates of 10^-4 or 10^5. + + For simplicity, for the HighSpeed response function we maintain the + property that the response function gives a straight line on a log- + log scale (as does the response function for Standard TCP, for low to + moderate congestion). This results in the following response + function, for values of the average congestion window W greater than + Low_Window: + + W = (p/Low_P)^S Low_Window, + + + + +Floyd Experimental [Page 7] + +RFC 3649 HighSpeed TCP December 2003 + + + for Low_P the packet drop rate corresponding to Low_Window, and for S + as following constant [FRS02]: + + S = (log High_Window - log Low_Window)/(log High_P - log Low_P). + + (In this paper, "log x" refers to the log base 10.) For example, for + Low_Window set to 38, we have Low_P of 10^-3 (for compatibility with + Standard TCP). Thus, for High_Window set to 83000 and High_P set to + 10^-7, we get the following response function: + + W = 0.12/p^0.835. (1) + + This HighSpeed response function is illustrated in Table 3 below. + For HighSpeed TCP, the number of round-trip times between losses, + 1/(pW), equals 12.7 W^0.2, for W > 38 segments. + + Packet Drop Rate P Congestion Window W RTTs Between Losses + ------------------ ------------------- ------------------- + 10^-2 12 8 + 10^-3 38 25 + 10^-4 263 38 + 10^-5 1795 57 + 10^-6 12279 83 + 10^-7 83981 123 + 10^-8 574356 180 + 10^-9 3928088 264 + 10^-10 26864653 388 + + Table 3: TCP Response Function for HighSpeed TCP. The average + congestion window W in MSS-sized segments is given as a function of + the packet drop rate P. + + We believe that the problem of backward compatibility with Standard + TCP requires a response function that is quite close to that of + Standard TCP for loss rates of 10^-1, 10^-2, or 10^-3. We believe, + however, that such stringent TCP-compatibility is not required for + smaller loss rates, and that an appropriate response function is one + that gives a plausible packet drop rate for a connection throughput + of 10 Gbps. This also gives a slowly increasing number of round-trip + times between loss events as a function of a decreasing packet drop + rate. + + Another way to look at the HighSpeed response function is to consider + that HighSpeed TCP is roughly emulating the congestion control + response of N parallel TCP connections, where N is initially one, and + where N increases as a function of the HighSpeed TCP's congestion + window. Thus for the HighSpeed response function in Equation (1) + above, the response function can be viewed as equivalent to that of + + + +Floyd Experimental [Page 8] + +RFC 3649 HighSpeed TCP December 2003 + + + N(W) parallel TCP connections, where N(W) varies as a function of the + congestion window W. Recall that for a single standard TCP + connection, the average congestion window equals 1.2/sqrt(p). For N + parallel TCP connections, the aggregate congestion window for the N + connections equals N*1.2/sqrt(p). From the HighSpeed response + function in Equation (1) and the relationship above, we can derive + the following: + + N(W) = 0.23*W^(0.4) + + for N(W) the number of parallel TCP connections emulated by the + HighSpeed TCP response function, and for N(W) >= 1. This is shown in + Table 4 below. + + Congestion Window W Number N(W) of Parallel TCPs + ------------------- ------------------------- + 1 1 + 10 1 + 100 1.4 + 1,000 3.6 + 10,000 9.2 + 100,000 23.0 + + Table 4: Number N(W) of parallel TCP connections roughly emulated by + the HighSpeed TCP response function. + + In this document, we do not attempt to seriously evaluate the + HighSpeed response function for congestion windows greater than + 100,000 packets. We believe that we will learn more about the + requirements for sustaining the throughput of best-effort connections + in that range as we gain more experience with HighSpeed TCP with + congestion windows of thousands and tens of thousands of packets. + There also might be limitations to the per-connection throughput that + can be realistically achieved for best-effort traffic, in terms of + congestion window of hundreds of thousands of packets or more, in the + absence of additional support or feedback from the routers along the + path. + +6. Fairness Implications of the HighSpeed Response Function + + The Standard and Highspeed Response Functions can be used directly to + infer the relative fairness between flows using the two response + functions. For example, given a packet drop rate P, assume that + Standard TCP has an average congestion window of W_Standard, and + HighSpeed TCP has a higher average congestion window of W_HighSpeed. + + + + + + +Floyd Experimental [Page 9] + +RFC 3649 HighSpeed TCP December 2003 + + + In this case, a single HighSpeed TCP connection is receiving + W_HighSpeed/W_Standard times the throughput of a single Standard TCP + connection competing in the same environment. + + This relative fairness is illustrated below in Table 5, for the + parameters used for the Highspeed response function in the section + above. The second column gives the relative fairness, for the + steady-state packet drop rate specified in the first column. To help + calibrate, the third column gives the aggregate average congestion + window for the two TCP connections, and the fourth column gives the + bandwidth that would be needed by the two connections to achieve that + aggregate window and packet drop rate, given 100 ms round-trip times + and 1500-byte packets. + + Packet Drop Rate P Fairness Aggregate Window Bandwidth + ------------------ -------- ---------------- --------- + 10^-2 1.0 24 2.8 Mbps + 10^-3 1.0 76 9.1 Mbps + 10^-4 2.2 383 45.9 Mbps + 10^-5 4.7 2174 260.8 Mbps + 10^-6 10.2 13479 1.6 Gbps + 10^-7 22.1 87776 10.5 Gbps + + Table 5: Relative Fairness between the HighSpeed and Standard + Response Functions. + + Thus, for packet drop rates of 10^-4, a flow with the HighSpeed + response function can expect to receive 2.2 times the throughput of a + flow using the Standard response function, given the same round-trip + times and packet sizes. With packet drop rates of 10^-6 (or 10^-7), + the unfairness is more severe, and we have entered the regime where a + Standard TCP connection requires at most one congestion event every + 800 (or 2530) round-trip times in order to make use of the available + bandwidth. Our judgement would be that there are not a lot of TCP + connections effectively operating in this regime today, with + congestion windows of thousands of packets, and that therefore the + benefits of the HighSpeed response function would outweigh the + unfairness that would be experienced by Standard TCP in this regime. + However, one purpose of this document is to solicit feedback on this + issue. The parameter Low_Window determines directly the point of + divergence between the Standard and HighSpeed Response Functions. + + The third column of Table 5, the Aggregate Window, gives the + aggregate congestion window of the two competing TCP connections, + with HighSpeed and Standard TCP, given the packet drop rate specified + in the first column. From Table 5, a HighSpeed TCP connection would + receive ten times the bandwidth of a Standard TCP in an environment + with a packet drop rate of 10^-6. This would occur when the two + + + +Floyd Experimental [Page 10] + +RFC 3649 HighSpeed TCP December 2003 + + + flows sharing a single pipe achieved an aggregate window of 13479 + packets. Given a round-trip time of 100 ms and a packet size of 1500 + bytes, this would occur with an available bandwidth for the two + competing flows of 1.6 Gbps. + + Next we consider the time that it takes a standard or HighSpeed TCP + flow to converge to fairness against a pre-existing HighSpeed TCP + flow. The worst case for convergence to fairness occurs when a new + flow is starting up, competing against a high-bandwidth existing + flow, and the new flow suffers a packet drop and exits slow-start + while its window is still small. In the worst case, consider that + the new flow has entered the congestion avoidance phase while its + window is only one packet. A standard TCP flow in congestion + avoidance increases its window by at most one packet per round-trip + time, and after N round-trip times has only achieved a window of N + packets (when starting with a window of 1 in the first round-trip + time). In contrast, a HighSpeed TCP flows increases much faster than + a standard TCP flow while in the congestion avoidance phase, and we + can expect its convergence to fairness to be much better. This is + shown in Table 6 below. The script used to generate this table is + given in Appendix C. + + RTT HS_Window Standard_TCP_Window + --- --------- ------------------- + 100 131 100 + 200 475 200 + 300 1131 300 + 400 2160 400 + 500 3601 500 + 600 5477 600 + 700 7799 700 + 800 10567 800 + 900 13774 900 + 1000 17409 1000 + 1100 21455 1100 + 1200 25893 1200 + 1300 30701 1300 + 1400 35856 1400 + 1500 41336 1500 + 1600 47115 1600 + 1700 53170 1700 + 1800 59477 1800 + 1900 66013 1900 + 2000 72754 2000 + + Table 6: For a HighSpeed and a Standard TCP connection, the + congestion window during congestion avoidance phase (starting with a + congestion window of 1 packet during RTT 1). + + + +Floyd Experimental [Page 11] + +RFC 3649 HighSpeed TCP December 2003 + + + The classic paper on relative fairness is from Chiu and Jain [CJ89]. + This paper shows that AIMD (Additive Increase Multiplicative + Decrease) converges to fairness in an environment with synchronized + congestion events. From [CJ89], it is easy to see that MIMD and AIAD + do not converge to fairness in this environment. However, the + results of [CJ89] do not apply to an asynchronous environment such as + that of the current Internet, where the frequency of congestion + feedback can be different for different flows. For example, it has + been shown that MIMD converges to fair states in a model with + proportional instead of synchronous feedback in terms of packet drops + [GV02]. Thus, we are not concerned about abandoning a strict model + of AIMD for HighSpeed TCP. However, we note that in an environment + with Drop-Tail queue management, there is likely to be some + synchronization of packet drops. In this environment, the model of + completely synchronous feedback does not hold, but the model of + completely asynchronous feedback is not accurate either. Fairness in + Drop-Tail environments is discussed in more detail in Sections 9 and + 12. + +7. Translating the HighSpeed Response Function into Congestion Control + Parameters + + For equation-based congestion control such as TFRC, the HighSpeed + Response Function above could be used directly by the TFRC congestion + control mechanism. However, for TCP the HighSpeed response function + has to be translated into additive increase and multiplicative + decrease parameters. The HighSpeed response function cannot be + achieved by TCP with an additive increase of one segment per round- + trip time and a multiplicative decrease of halving the current + congestion window; HighSpeed TCP will have to modify either the + increase or the decrease parameter, or both. We have concluded that + HighSpeed TCP is most likely to achieve an acceptable compromise + between moderate increases and timely decreases by modifying both the + increase and the decrease parameter. + + That is, for HighSpeed TCP let the congestion window increase by a(w) + segments per round-trip time in the absence of congestion, and let + the congestion window decrease to w(1-b(w)) segments in response to a + round-trip time with one or more loss events. Thus, in response to a + single acknowledgement HighSpeed TCP increases its congestion window + in segments as follows: + + w <- w + a(w)/w. + + In response to a congestion event, HighSpeed TCP decreases as + follows: + + w <- (1-b(w))w. + + + +Floyd Experimental [Page 12] + +RFC 3649 HighSpeed TCP December 2003 + + + For Standard TCP, a(w) = 1 and b(w) = 1/2, regardless of the value of + w. HighSpeed TCP uses the same values of a(w) and b(w) for w <= + Low_Window. This section specifies a(w) and b(w) for HighSpeed TCP + for larger values of w. + + For w = High_Window, we have specified a loss rate of High_P. From + [FRS02], or from elementary calculations, this requires the following + relationship between a(w) and b(w) for w = High_Window: + + a(w) = High_Window^2 * High_P * 2 * b(w)/(2-b(w)). (2) + + We use the parameter High_Decrease to specify the decrease parameter + b(w) for w = High_Window, and use Equation (2) to derive the increase + parameter a(w) for w = High_Window. Along with High_P = 10^-7 and + High_Window = 83000, for example, we specify High_Decrease = 0.1, + specifying that b(83000) = 0.1, giving a decrease of 10% after a + congestion event. Equation (2) then gives a(83000) = 72, for an + increase of 72 segments, or just under 0.1%, within a round-trip + time, for w = 83000. + + This moderate decrease strikes us as acceptable, particularly when + coupled with the role of TCP's ACK-clocking in limiting the sending + rate in response to more severe congestion [BBFS01]. A more severe + decrease would require a more aggressive increase in the congestion + window for a round-trip time without congestion. In particular, a + decrease factor High_Decrease of 0.5, as in Standard TCP, would + require an increase of 459 segments per round-trip time when w = + 83000. + + Given decrease parameters of b(w) = 1/2 for w = Low_Window, and b(w) + = High_Decrease for w = High_Window, we are left to specify the value + of b(w) for other values of w > Low_Window. From [FRS02], we let + b(w) vary linearly as the log of w, as follows: + + b(w) = (High_Decrease - 0.5) (log(w)-log(W)) / (log(W_1)-log(W)) + + 0.5, + + for W = Low_window and W_1 = High_window. The increase parameter + a(w) can then be computed as follows: + + a(w) = w^2 * p(w) * 2 * b(w)/(2-b(w)), + + for p(w) the packet drop rate for congestion window w. From + inverting Equation (1), we get p(w) as follows: + + p(w) = 0.078/w^1.2. + + + + + +Floyd Experimental [Page 13] + +RFC 3649 HighSpeed TCP December 2003 + + + We assume that experimental implementations of HighSpeed TCP for + further investigation will use a pre-computed look-up table for + finding a(w) and b(w). For example, the implementation from Tom + Dunigan adjusts the a(w) and b(w) parameters every 0.1 seconds. In + the appendix we give such a table for our default values of + Low_Window = 38, High_Window = 83,000, High_P = 10^-7, and + High_Decrease = 0.1. These are also the default values in the NS + simulator; example simulations in NS can be run with the command + "./test-all-tcpHighspeed" in the directory tcl/test. + +8. An alternate, linear response functions + + In this section we explore an alternate, linear response function for + HighSpeed TCP that has been proposed by a number of other people, in + particular by Glenn Vinnicombe and Tom Kelly. Similarly, it has been + suggested by others that a less "ad-hoc" guideline for a response + function for HighSpeed TCP would be to specify a constant value for + the number of round-trip times between congestion events. + + Assume that we keep the value of Low_Window as 38 MSS-sized segments, + indicating when the HighSpeed response function diverges from the + current TCP response function, but that we modify the High_Window and + High_P parameters that specify the upper range of the HighSpeed + response function. In particular, consider the response function + given by High_Window = 380,000 and High_P = 10^-7, with Low_Window = + 38 and Low_P = 10^-3 as before. + + Using the equations in Section 5, this would give the following + Linear response function, for w > Low_Window: + + W = 0.038/p. + + This Linear HighSpeed response function is illustrated in Table 7 + below. For HighSpeed TCP, the number of round-trip times between + losses, 1/(pW), equals 1/0.38, or equivalently, 26, for W > 38 + segments. + + + + + + + + + + + + + + + +Floyd Experimental [Page 14] + +RFC 3649 HighSpeed TCP December 2003 + + + Packet Drop Rate P Congestion Window W RTTs Between Losses + ------------------ ------------------- ------------------- + 10^-2 12 8 + 10^-3 38 26 + 10^-4 380 26 + 10^-5 3800 26 + 10^-6 38000 26 + 10^-7 380000 26 + 10^-8 3800000 26 + 10^-9 38000000 26 + 10^-10 380000000 26 + + Table 7: An Alternate, Linear TCP Response Function for HighSpeed + TCP. The average congestion window W in MSS-sized segments is given + as a function of the packet drop rate P. + + Given a constant decrease b(w) of 1/2, this would give an increase + a(w) of w/Low_Window, or equivalently, a constant increase of + 1/Low_Window packets per acknowledgement, for w > Low_Window. + Another possibility is Scalable TCP [K03], which uses a fixed + decrease b(w) of 1/8 and a fixed increase per acknowledgement of + 0.01. This gives an increase a(w) per window of 0.005 w, for a TCP + with delayed acknowledgements, for pure MIMD. + + The relative fairness between the alternate Linear response function + and the standard TCP response function is illustrated below in Table + 8. + + Packet Drop Rate P Fairness Aggregate Window Bandwidth + ------------------ -------- ---------------- --------- + 10^-2 1.0 24 2.8 Mbps + 10^-3 1.0 76 9.1 Mbps + 10^-4 3.2 500 60.0 Mbps + 10^-5 15.1 4179 501.4 Mbps + 10^-6 31.6 39200 4.7 Gbps + 10^-7 100.1 383795 46.0 Gbps + + Table 8: Relative Fairness between the Linear HighSpeed and Standard + Response Functions. + + One attraction of the linear response function is that it is scale- + invariant, with a fixed increase in the congestion window per + acknowledgement, and a fixed number of round-trip times between loss + events. My own assumption would be that having a fixed length for + the congestion epoch in round-trip times, regardless of the packet + drop rate, would be a poor fit for an imprecise and imperfect world + with routers with a range of queue management mechanisms, such as the + Drop-Tail queue management that is common today. For example, a + + + +Floyd Experimental [Page 15] + +RFC 3649 HighSpeed TCP December 2003 + + + response function with a fixed length for the congestion epoch in + round-trip times might give less clearly-differentiated feedback in + an environment with steady-state background losses at fixed intervals + for all flows (as might occur with a wireless link with occasional + short error bursts, giving losses for all flows every N seconds + regardless of their sending rate). + + While it is not a goal to have perfect fairness in an environment + with synchronized losses, it would be good to have moderately + acceptable performance in this regime. This goal might argue against + a response function with a constant number of round-trip times + between congestion events. However, this is a question that could + clearly use additional research and investigation. In addition, + flows with different round-trip times would have different time + durations for congestion epochs even in the model with a linear + response function. + + The third column of Table 8, the Aggregate Window, gives the + aggregate congestion window of two competing TCP connections, one + with Linear HighSpeed TCP and one with Standard TCP, given the packet + drop rate specified in the first column. From Table 8, a Linear + HighSpeed TCP connection would receive fifteen times the bandwidth of + a Standard TCP in an environment with a packet drop rate of 10^-5. + This would occur when the two flows sharing a single pipe achieved an + aggregate window of 4179 packets. Given a round-trip time of 100 ms + and a packet size of 1500 bytes, this would occur with an available + bandwidth for the two competing flows of 501 Mbps. Thus, because the + Linear HighSpeed TCP is more aggressive than the HighSpeed TCP + proposed above, it also is less fair when competing with Standard TCP + in a high-bandwidth environment. + +9. Tradeoffs for Choosing Congestion Control Parameters + + A range of metrics can be used for evaluating choices for congestion + control parameters for HighSpeed TCP. My assumption in this section + is that for a response function of the form w = c/p^d, for constant c + and exponent d, the only response functions that would be considered + are response functions with 1/2 <= d <= 1. The two ends of this + spectrum are represented by current TCP, with d = 1/2, and by the + linear response function described in Section 8 above, with d = 1. + HighSpeed TCP lies somewhere in the middle of the spectrum, with d = + 0.835. + + Response functions with exponents less than 1/2 can be eliminated + from consideration because they would be even worse than standard TCP + in accommodating connections with high congestion windows. + + + + + +Floyd Experimental [Page 16] + +RFC 3649 HighSpeed TCP December 2003 + + +9.1. The Number of Round-Trip Times between Loss Events + + Response functions with exponents greater than 1 can be eliminated + from consideration because for these response functions, the number + of round-trip times between loss events decreases as congestion + decreases. For a response function of w = c/p^d, with one loss event + or congestion event every 1/p packets, the number of round-trip times + between loss events is w^((1/d)-1)/c^(1/d). Thus, for standard TCP + the number of round-trip times between loss events is linear in w. + In contrast, one attraction of the linear response function, as + described in Section 8 above, is that it is scale-invariant, in terms + of a fixed increase in the congestion window per acknowledgement, and + a fixed number of round-trip times between loss events. + + However, for a response function with d > 1, the number of round- + trip times between loss events would be proportional to w^((1/d)-1), + for a negative exponent ((1/d)-1), setting smaller as w increases. + This would seem undesirable. + +9.2. The Number of Packet Drops per Loss Event, with Drop-Tail + + A TCP connection increases its sending rate by a(w) packets per + round-trip time, and in a Drop-Tail environment, this is likely to + result in a(w) dropped packets during a single loss event. One + attraction of standard TCP is that it has a fixed increase per + round-trip time of one packet, minimizing the number of packets that + would be dropped in a Drop-Tail environment. For an environment with + some form of Active Queue Management, and in particular for an + environment that uses ECN, the number of packets dropped in a single + congestion event would not be a problem. However, even in these + environments, larger increases in the sending rate per round-trip + time result in larger stresses on the ability of the queues in the + router to absorb the fluctuations. + + HighSpeed TCP plays a middle ground between the metrics of a moderate + number of round-trip times between loss events, and a moderate + increase in the sending rate per round-trip time. As shown in + Appendix B, for a congestion window of 83,000 packets, HighSpeed TCP + increases its sending rate by 70 packets per round-trip time, + resulting in at most 70 packet drops when the buffer overflows in a + Drop-Tail environment. This increased aggressiveness is the price + paid by HighSpeed TCP for its increased scalability. A large number + of packets dropped per congestion event could result in synchronized + drops from multiple flows, with a possible loss of throughput as a + result. + + + + + + +Floyd Experimental [Page 17] + +RFC 3649 HighSpeed TCP December 2003 + + + Scalable TCP has an increase a(w) of 0.005 w packets per round-trip + time. For a congestion window of 83,000 packets, this gives an + increase of 415 packets per round-trip time, resulting in roughly 415 + packet drops per congestion event in a Drop-Tail environment. + + Thus, HighSpeed TCP and its variants place increased demands on queue + management in routers, relative to Standard TCP. (This is rather + similar to the increased demands on queue management that would + result from using N parallel TCP connections instead of a single + Standard TCP connection.) + +10. Related Issues + +10.1. Slow-Start + + A companion internet-draft on "Limited Slow-Start for TCP with Large + Congestion Windows" [F02b] proposes a modification to TCP's slow- + start procedure that can significantly improve the performance of TCP + connections slow-starting up to large congestion windows. For TCP + connections that are able to use congestion windows of thousands (or + tens of thousands) of MSS-sized segments (for MSS the sender's + MAXIMUM SEGMENT SIZE), the current slow-start procedure can result in + increasing the congestion window by thousands of segments in a single + round-trip time. Such an increase can easily result in thousands of + packets being dropped in one round-trip time. This is often + counter-productive for the TCP flow itself, and is also hard on the + rest of the traffic sharing the congested link. + + [F02b] proposes Limited Slow-Start, limiting the number of segments + by which the congestion window is increased for one window of data + during slow-start, in order to improve performance for TCP + connections with large congestion windows. We have separated out + Limited Slow-Start to a separate draft because it can be used both + with Standard or with HighSpeed TCP. + + Limited Slow-Start is illustrated in the NS simulator, for snapshots + after May 1, 2002, in the tests "./test-all-tcpHighspeed tcp1A" and + "./test-all-tcpHighspeed tcpHighspeed1" in the subdirectory + "tcl/lib". + + In order for best-effort flows to safely start-up faster than slow- + start, e.g., in future high-bandwidth networks, we believe that it + would be necessary for the flow to have explicit feedback from the + routers along the path. There are a number of proposals for this, + ranging from a minimal proposal for an IP option that allows TCP SYN + packets to collect information from routers along the path about the + allowed initial sending rate [J02], to proposals with more power that + require more fine-tuned and continuous feedback from routers. These + + + +Floyd Experimental [Page 18] + +RFC 3649 HighSpeed TCP December 2003 + + + proposals are all somewhat longer-term proposals than the HighSpeed + TCP proposal in this document, requiring longer lead times and more + coordination for deployment, and will be discussed in later + documents. + +10.2. Limiting burstiness on short time scales + + Because the congestion window achieved by a HighSpeed TCP connection + could be quite large, there is a possibility for the sender to send a + large burst of packets in response to a single acknowledgement. This + could happen, for example, when there is congestion or reordering on + the reverse path, and the sender receives an acknowledgement + acknowledging hundreds or thousands of new packets. Such a burst + would also result if the application was idle for a short period of + time less than a round-trip time, and then suddenly had lots of data + available to send. In this case, it would be useful for the + HighSpeed TCP connection to have some method for limiting bursts. + + In this document, we do not specify TCP mechanisms for reducing the + short-term burstiness. One possible mechanism is to use some form of + rate-based pacing, and another possibility is to use maxburst, which + limits the number of packets that are sent in response to a single + acknowledgement. We would caution, however, against a permanent + reduction in the congestion window as a mechanism for limiting + short-term bursts. Such a mechanism has been deployed in some TCP + stacks, and our view would be that using permanent reductions of the + congestion window to reduce transient bursts would be a bad idea + [Fl03]. + +10.3. Other limitations on window size + + The TCP header uses a 16-bit field to report the receive window size + to the sender. Unmodified, this allows a window size of at most + 2**16 = 65K bytes. With window scaling, the maximum window size is + 2**30 = 1073M bytes [RFC 1323]. Given 1500-byte packets, this allows + a window of up to 715,000 packets. + +10.4. Implementation issues + + One implementation issue that has been raised with HighSpeed TCP is + that with congestion windows of 4MB or more, the handling of + successive SACK packets after a packet is dropped becomes very time- + consuming at the TCP sender [S03]. Tom Kelly's Scalable TCP includes + a "SACK Fast Path" patch that addresses this problem. + + The issues addressed in the Web100 project, the Net100 project, and + related projects about the tuning necessary to achieve high bandwidth + data rates with TCP apply to HighSpeed TCP as well [Net100, Web100]. + + + +Floyd Experimental [Page 19] + +RFC 3649 HighSpeed TCP December 2003 + + +11. Deployment issues + +11.1. Deployment issues of HighSpeed TCP + + We do not claim that the HighSpeed TCP modification to TCP described + in this paper is an optimal transport protocol for high-bandwidth + environments. Based on our experiences with HighSpeed TCP in the NS + simulator [NS], on simulation studies [SA03], and on experimental + reports [ABLLS03,D02,CC03,F03], we believe that HighSpeed TCP + improves the performance of TCP in high-bandwidth environments, and + we are documenting it for the benefit of the IETF community. We + encourage the use of HighSpeed TCP, and of its underlying response + function, and we further encourage feedback about operational + experiences with this or related modifications. + + We note that in environments typical of much of the current Internet, + HighSpeed TCP behaves exactly as does Standard TCP today. This is + the case any time the congestion window is less than 38 segments. + + Bandwidth Avg Cwnd w (pkts) Increase a(w) Decrease b(w) + --------- ----------------- ------------- ------------- + 1.5 Mbps 12.5 1 0.50 + 10 Mbps 83 1 0.50 + 100 Mbps 833 6 0.35 + 1 Gbps 8333 26 0.22 + 10 Gbps 83333 70 0.10 + + Table 9: Performance of a HighSpeed TCP connection + + To help calibrate, Table 9 considers a TCP connection with 1500-byte + packets, an RTT of 100 ms (including average queueing delay), and no + competing traffic, and shows the average congestion window if that + TCP connection had a pipe all to itself and fully used the link + bandwidth, for a range of bandwidths for the pipe. This assumes that + the TCP connection would use Table 12 in determining its increase and + decrease parameters. The first column of Table 9 gives the + bandwidth, and the second column gives the average congestion window + w needed to utilize that bandwidth. The third column shows the + increase a(w) in segments per RTT for window w. The fourth column + shows the decrease b(w) for that window w (where the TCP sender + decreases the congestion window from w to w(1-b(w)) segments after a + loss event). When a loss occurs we note that the actual congestion + window is likely to be greater than the average congestion window w + in column 2, so the decrease parameter used could be slightly smaller + than the one given in column 4 of Table 9. + + Table 9 shows that a HighSpeed TCP over a 10 Mbps link behaves + exactly the same as a Standard TCP connection, even in the absence of + + + +Floyd Experimental [Page 20] + +RFC 3649 HighSpeed TCP December 2003 + + + competing traffic. One can think of the congestion window staying + generally in the range of 55 to 110 segments, with the HighSpeed TCP + behavior being exactly the same as the behavior of Standard TCP. (If + the congestion window is ever 128 segments or more, then the + HighSpeed TCP increases by two segments per RTT instead of by one, + and uses a decrease parameter of 0.44 instead of 0.50.) + + Table 9 shows that for a HighSpeed TCP connection over a 100 Mbps + link, with no competing traffic, HighSpeed TCP behaves roughly as + aggressively as six parallel TCP connections, increasing its + congestion window by roughly six segments per round-trip time, and + with a decrease parameter of roughly 1/3 (corresponding to decreasing + down to 2/3-rds of its old congestion window, rather than to half, in + response to a loss event). + + For a Standard TCP connection in this environment, the congestion + window could be thought of as generally varying in the range of 550 + to 1100 segments, with an average packet drop rate of 2.2 * 10^-6 + (corresponding to a bit error rate of 1.8 * 10^-10), or equivalently, + roughly 55 seconds between congestion events. While a Standard TCP + connection could sustain such a low packet drop rate in a carefully + controlled environment with minimal competing traffic, we would + contend that in an uncontrolled best-effort environment with even a + small amount of competing traffic, the occasional congestion events + from smaller competing flows could easily be sufficient to prevent a + Standard TCP flow with no lower-speed bottlenecks from fully + utilizing the available bandwidth of the underutilized 100 Mbps link. + + That is, we would contend that in the environment of 100 Mbps links + with a significant amount of available bandwidth, Standard TCP would + sometimes be unable to fully utilize the link bandwidth, and that + HighSpeed TCP would be an improvement in this regard. We would + further contend that in this environment, the behavior of HighSpeed + TCP is sufficiently close to that of Standard TCP that HighSpeed TCP + would be safe to deploy in the current Internet. We note that + HighSpeed TCP can only use high congestion windows if allowed by the + receiver's advertised window size. As a result, even if HighSpeed + TCP was ubiquitously deployed in the Internet, the impact would be + limited to those TCP connections with an advertised window from the + receiver of 118 MSS or larger. + + We do not believe that the deployment of HighSpeed TCP would serve as + a block to the possible deployment of alternate experimental + protocols for high-speed congestion control, such as Scalable TCP, + XCP [KHR02], or FAST TCP [JWL03]. In particular, we don't expect + HighSpeed TCP to interact any more poorly with alternative + experimental proposals than would the N parallel TCP connections + commonly used today in the absence of HighSpeed TCP. + + + +Floyd Experimental [Page 21] + +RFC 3649 HighSpeed TCP December 2003 + + +11.2. Deployment issues of Scalable TCP + + We believe that Scalable TCP and HighSpeed TCP have sufficiently + similar response functions that they could easily coexist in the + Internet. However, we have not investigated Scalable TCP + sufficiently to be able to claim, in this document, that Scalable TCP + is safe for a widespread deployment in the current Internet. + + Bandwidth Avg Cwnd w (pkts) Increase a(w) Decrease b(w) + --------- ----------------- ------------- ------------- + 1.5 Mbps 12.5 1 0.50 + 10 Mbps 83 0.4 0.125 + 100 Mbps 833 4.1 0.125 + 1 Gbps 8333 41.6 0.125 + 10 Gbps 83333 416.5 0.125 + + Table 10: Performance of a Scalable TCP connection. + + Table 10 shows the performance of a Scalable TCP connection with + 1500-byte packets, an RTT of 100 ms (including average queueing + delay), and no competing traffic. The TCP connection is assumed to + use delayed acknowledgements. The first column of Table 10 gives the + bandwidth, the second column gives the average congestion window + needed to utilize that bandwidth, and the third and fourth columns + give the increase and decrease parameters. + + Note that even in an environment with a 10 Mbps link, Scalable TCP's + behavior is considerably different from that of Standard TCP. The + increase parameter is smaller than that of Standard TCP, and the + decrease is smaller also, 1/8-th instead of 1/2. That is, for 10 + Mbps links, Scalable TCP increases less aggressively than Standard + TCP or HighSpeed TCP, but decreases less aggressively as well. + + In an environment with a 100 Mbps link, Scalable TCP has an increase + parameter of roughly four segments per round-trip time, with the same + decrease parameter of 1/8-th. A comparison of Tables 9 and 10 shows + that for this scenario of 100 Mbps links, HighSpeed TCP increases + more aggressively than Scalable TCP. + + Next we consider the relative fairness between Standard TCP, + HighSpeed TCP and Scalable TCP. The relative fairness between + HighSpeed TCP and Standard TCP was shown in Table 5 earlier in this + document, and the relative fairness between Scalable TCP and Standard + TCP was shown in Table 8. Following the approach in Section 6, for a + given packet drop rate p, for p < 10^-3, we can estimate the relative + fairness between Scalable and HighSpeed TCP as + W_Scalable/W_HighSpeed. This relative fairness is shown in Table 11 + below. The bandwidth in the last column of Table 11 is the aggregate + + + +Floyd Experimental [Page 22] + +RFC 3649 HighSpeed TCP December 2003 + + + bandwidth of the two competing flows given 100 ms round-trip times + and 1500-byte packets. + + Packet Drop Rate P Fairness Aggregate Window Bandwidth + ------------------ -------- ---------------- --------- + 10^-2 1.0 24 2.8 Mbps + 10^-3 1.0 76 9.1 Mbps + 10^-4 1.4 643 77.1 Mbps + 10^-5 2.1 5595 671.4 Mbps + 10^-6 3.1 50279 6.0 Gbps + 10^-7 4.5 463981 55.7 Gbps + + Table 11: Relative Fairness between the Scalable and HighSpeed + Response Functions. + + The second row of Table 11 shows that for a Scalable TCP and a + HighSpeed TCP flow competing in an environment with 100 ms RTTs and a + 10 Mbps pipe, the two flows would receive essentially the same + bandwidth. The next row shows that for a Scalable TCP and a + HighSpeed TCP flow competing in an environment with 100 ms RTTs and a + 100 Mbps pipe, the Scalable TCP flow would receive roughly 50% more + bandwidth than would HighSpeed TCP. Table 11 shows the relative + fairness in higher-bandwidth environments as well. This relative + fairness seems sufficient that there should be no problems with + Scalable TCP and HighSpeed TCP coexisting in the same environment as + Experimental variants of TCP. + + We note that one question that requires more investigation with + Scalable TCP is that of convergence to fairness in environments with + Drop-Tail queue management. + +12. Related Work in HighSpeed TCP + + HighSpeed TCP has been separately investigated in simulations by + Sylvia Ratnasamy and by Evandro de Souza [SA03]. The simulations in + [SA03] verify the fairness properties of HighSpeed TCP when sharing a + link with Standard TCP. + + These simulations explore the relative fairness of HighSpeed TCP + flows when competing with Standard TCP. The simulation environment + includes background forward and reverse-path TCP traffic limited by + the TCP receive window, along with a small amount of forward and + reverse-path traffic from the web traffic generator. Most of the + simulations so far explore performance on a simple dumbbell topology + with a 1 Gbps link with a propagation delay of 50 ms. Simulations + have been run with Adaptive RED and with DropTail queue management. + + + + + +Floyd Experimental [Page 23] + +RFC 3649 HighSpeed TCP December 2003 + + + The simulations in [SA03] explore performance with a varying number + of competing flows, with the competing traffic being all standard + TCP; all HighSpeed TCP; or a mix of standard and HighSpeed TCP. For + the simulations in [SA03] with RED queue management, the relative + fairness between standard and HighSpeed TCP is consistent with the + relative fairness predicted in Table 5. For the simulations with + Drop Tail queues, the relative fairness is more skewed, with the + HighSpeed TCP flows receiving an even larger share of the link + bandwidth. This is not surprising; with Active Queue Management at + the congested link, the fraction of packet drops received by each + flow should be roughly proportional to that flow's share of the link + bandwidth, while this property no longer holds with Drop Tail queue + management. We also note that relative fairness in simulations with + Drop Tail queue management can sometimes depend on small details of + the simulation scenario, and that Drop Tail simulations need special + care to avoid phase effects [F92]. + + [SA03] explores the bandwidth `stolen' by HighSpeed TCP from standard + TCP by exploring the fraction of the link bandwidth N standard TCP + flows receive when competing against N other standard TCP flows, and + comparing this to the fraction of the link bandwidth the N standard + TCP flows receive when competing against N HighSpeed TCP flows. For + the 1 Gbps simulation scenarios dominated by long-lived traffic, a + small number of standard TCP flows are able to achieve high link + utilization, and the HighSpeed TCP flows can be viewed as stealing + bandwidth from the competing standard TCP flows, as predicted in + Section 6 on the Fairness Implications of the HighSpeed Response + Function. However, [SA03] shows that when even a small fraction of + the link bandwidth is used by more bursty, short TCP connections, the + standard TCP flows are unable to achieve high link utilization, and + the HighSpeed TCP flows in this case are not `stealing' bandwidth + from the standard TCP flows, but instead are using bandwidth that + otherwise would not be utilized. + + The conclusions of [SA03] are that "HighSpeed TCP behaved as forseen + by its response function, and appears to be a real and viable option + for use on high-speed wide area TCP connections." + + Future work that could be explored in more detail includes + convergence times after new flows start-up; recovery time after a + transient outage; the response to sudden severe congestion, and + investigations of the potential for oscillations. We invite + contributions from others in this work. + + + + + + + + +Floyd Experimental [Page 24] + +RFC 3649 HighSpeed TCP December 2003 + + +13. Relationship to other Work + + Our assumption is that HighSpeed TCP will be used with the TCP SACK + option, and also with the increased Initial Window of three or four + segments, as allowed by [RFC3390]. For paths that have substantial + reordering, TCP performance would be greatly improved by some of the + mechanisms still in the research stages for robust performance in the + presence of reordered packets. + + Our view is that HighSpeed TCP is largely orthogonal to proposals for + higher PMTU (Path MTU) values [M02]. Unlike changes to the PMTU, + HighSpeed TCP does not require any changes in the network or at the + TCP receiver, and works well in the current Internet. Our assumption + is that HighSpeed TCP would be useful even with larger values for the + PMTU. Unlike the current congestion window, the PMTU gives no + information about the bandwidth-delay product available to that + particular flow. + + A related approach is that of a virtual MTU, where the actual MTU of + the path might be limited [VMSS,S02]. The virtual MTU approach has + not been fully investigated, and we do not explore the virtual MTU + approach further in this document. + +14. Conclusions + + This document has proposed HighSpeed TCP, a modification to TCP's + congestion control mechanism for use with TCP connections with large + congestion windows. We have explored this proposal in simulations, + and others have explored HighSpeed TCP with experiments, and we + believe HighSpeed TCP to be safe to deploy on the current Internet. + We would welcome additional analysis, simulations, and particularly, + experimentation. More information on simulations and experiments is + available from the HighSpeed TCP Web Page [HSTCP]. There are several + independent implementations of HighSpeed TCP [D02,F03] and of + Scalable TCP [K03] for further investigation. + +15. Acknowledgements + + The HighSpeed TCP proposal is from joint work with Sylvia Ratnasamy + and Scott Shenker (and was initiated by Scott Shenker). Additional + investigations of HighSpeed TCP were joint work with Evandro de Souza + and Deb Agarwal. We thank Tom Dunigan for the implementation in the + Linux 2.4.16 Web100 kernel, and for resulting experimentation with + HighSpeed TCP. We are grateful to the End-to-End Research Group, the + members of the Transport Area Working Group, and to members of the + IPAM program in Large Scale Communication Networks for feedback. We + thank Glenn Vinnicombe for framing the Linear response function in + the parameters of HighSpeed TCP. We are also grateful for + + + +Floyd Experimental [Page 25] + +RFC 3649 HighSpeed TCP December 2003 + + + contributions and feedback from the following individuals: Les + Cottrell, Mitchell Erblich, Jeffrey Hsu, Tom Kelly, Chuck Jackson, + Matt Mathis, Jitendra Padhye, Andrew Reiter, Stanislav Shalunov, Alex + Solan, Paul Sutter, Brian Tierney, Joe Touch. + +16. Normative References + + [RFC2581] Allman, M., Paxson, V. and W. Stevens, "TCP Congestion + Control", RFC 2581, April 1999. + +17. Informative References + + [ABLLS03] A. Antony, J. Blom, C. de Laat, J. Lee, and W. Sjouw, + "Microscopic Examination of TCP Flows over Transatlantic + Links", iGrid2002 special issue, Future Generation + Computer Systems, volume 19 issue 6 (2003), URL + "http://www.science.uva.nl/~delaat/techrep-2003-2- + tcp.pdf". + + [BBFS01] Deepak Bansal, Hari Balakrishnan, Sally Floyd, and Scott + Shenker, "Dynamic Behavior of Slowly-Responsive Congestion + Control Algorithms", SIGCOMM 2001, August 2001. + + [CC03] Fabrizio Coccetti and Les Cottrell, "TCP Stack + Measurements on Lightly Loaded Testbeds", 2003. URL + "http://www-iepm.slac.stanford.edu/monitoring/bulk/fast/". + + [CJ89] D. Chiu and R. Jain, "Analysis of the Increase and + Decrease Algorithms for Congestion Avoidance in Computer + Networks", Computer Networks and ISDN Systems, Vol. 17, + pp. 1-14, 1989. + + [CO98] J. Crowcroft and P. Oechslin, "Differentiated End-to-end + Services using a Weighted Proportional Fair Share TCP", + Computer Communication Review, 28(3):53--69, 1998. + + [D02] Tom Dunigan, "Floyd's TCP slow-start and AIMD mods", URL + "http://www.csm.ornl.gov/~dunigan/net100/floyd.html". + + [F03] Gareth Fairey, "High-Speed TCP", 2003. URL + "http://www.hep.man.ac.uk/u/garethf/hstcp/". + + [F92] S. Floyd and V. Jacobson, "On Traffic Phase Effects in + Packet-Switched Gateways, Internetworking: Research and + Experience", V.3 N.3, September 1992, p.115-156. URL + "http://www.icir.org/floyd/papers.html". + + + + + +Floyd Experimental [Page 26] + +RFC 3649 HighSpeed TCP December 2003 + + + [Fl03] Sally Floyd, "Re: [Tsvwg] taking NewReno (RFC 2582) to + Proposed Standard", Email to the tsvwg mailing list, May + 14, 2003. + + URLs "http://www1.ietf.org/mail-archive/working- + groups/tsvwg/current/msg04086.html" and + "http://www1.ietf.org/mail-archive/working- + groups/tsvwg/current/msg04087.html". + + [FF98] Floyd, S., and Fall, K., "Promoting the Use of End-to-End + Congestion Control in the Internet", IEEE/ACM Transactions + on Networking, August 1999. + + [FRS02] Sally Floyd, Sylvia Ratnasamy, and Scott Shenker, + "Modifying TCP's Congestion Control for High Speeds", May + 2002. URL "http://www.icir.org/floyd/notes.html". + + [GRK99] Panos Gevros, Fulvio Risso and Peter Kirstein, "Analysis + of a Method for Differential TCP Service". In Proceedings + of the IEEE GLOBECOM'99, Symposium on Global Internet , + December 1999, Rio de Janeiro, Brazil. + + [GV02] S. Gorinsky and H. Vin, "Extended Analysis of Binary + Adjustment Algorithms", Technical Report TR2002-39, + Department of Computer Sciences, The University of Texas + at Austin, August 2002. URL + "http://www.cs.utexas.edu/users/gorinsky/pubs.html". + + [HSTCP] HighSpeed TCP Web Page, URL + "http://www.icir.org/floyd/hstcp.html". + + [J02] Amit Jain and Sally Floyd, "Quick-Start for TCP and IP", + Work in Progress, 2002. + + [JWL03] Cheng Jin, David X. Wei and Steven H. Low, "FAST TCP for + High-speed Long-distance Networks", Work in Progress, June + 2003. + + [K03] Tom Kelly, "Scalable TCP: Improving Performance in + HighSpeed Wide Area Networks", February 2003. URL + "http://www-lce.eng.cam.ac.uk/~ctk21/scalable/". + + [KHR02] Dina Katabi, Mark Handley, and Charlie Rohrs, "Congestion + Control for High Bandwidth-Delay Product Networks", + SIGCOMM 2002. + + [M02] Matt Mathis, "Raising the Internet MTU", Web Page, URL + "http://www.psc.edu/~mathis/MTU/". + + + +Floyd Experimental [Page 27] + +RFC 3649 HighSpeed TCP December 2003 + + + [Net100] The DOE/MICS Net100 project. URL + "http://www.csm.ornl.gov/~dunigan/net100/". + + [NS] The NS Simulator, "http://www.isi.edu/nsnam/ns/". + + [RFC 1323] Jacobson, V., Braden, R. and D. Borman, "TCP Extensions + for High Performance", RFC 1323, May 1992. + + [RFC3390] Allman, M., Floyd, S. and C., Partridge, "Increasing TCP's + Initial Window", RFC 3390, October 2002. + + [RFC3448] Handley, M., Padhye, J., Floyd, S. and J. Widmer, "TCP + Friendly Rate Control (TFRC): Protocol Specification", RFC + 3448, January 2003. + + [SA03] Souza, E. and D.A., Agarwal, "A HighSpeed TCP Study: + Characteristics and Deployment Issues", LBNL Technical + Report LBNL-53215. URL + "http://www.icir.org/floyd/hstcp.html". + + [S02] Stanislav Shalunov, "TCP Armonk", Work in Progress, 2002, + URL "http://www.internet2.edu/~shalunov/tcpar/". + + [S03] Alex Solan, private communication, 2003. + + [VMSS] "Web100 at ORNL", Web Page, + "http://www.csm.ornl.gov/~dunigan/netperf/web100.html". + + [Web100] The Web100 project. URL "http://www.web100.org/". + +18. Security Considerations + + This proposal makes no changes to the underlying security of TCP. + +19. IANA Considerations + + There are no IANA considerations regarding this document. + + + + + + + + + + + + + + +Floyd Experimental [Page 28] + +RFC 3649 HighSpeed TCP December 2003 + + +A. TCP's Loss Event Rate in Steady-State + + This section gives the number of round-trip times between congestion + events for a TCP flow with D-byte packets, for D=1500, as a function + of the connection's average throughput B in bps. To achieve this + average throughput B, a TCP connection with round-trip time R in + seconds requires an average congestion window w of BR/(8D) segments. + + In steady-state, TCP's average congestion window w is roughly + 1.2/sqrt(p) segments. This is equivalent to a lost event at most + once every 1/p packets, or at most once every 1/(pw) = w/1.5 round- + trip times. Substituting for w, this is a loss event at most every + (BR)/12D)round-trip times. + + An an example, for R = 0.1 seconds and D = 1500 bytes, this gives + B/180000 round-trip times between loss events. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Floyd Experimental [Page 29] + +RFC 3649 HighSpeed TCP December 2003 + + +B. A table for a(w) and b(w). + + This section gives a table for the increase and decrease parameters + a(w) and b(w) for HighSpeed TCP, for the default values of Low_Window + = 38, High_Window = 83000, High_P = 10^-7, and High_Decrease = 0.1. + + w a(w) b(w) + ---- ---- ---- + 38 1 0.50 + 118 2 0.44 + 221 3 0.41 + 347 4 0.38 + 495 5 0.37 + 663 6 0.35 + 851 7 0.34 + 1058 8 0.33 + 1284 9 0.32 + 1529 10 0.31 + 1793 11 0.30 + 2076 12 0.29 + 2378 13 0.28 + 2699 14 0.28 + 3039 15 0.27 + 3399 16 0.27 + 3778 17 0.26 + 4177 18 0.26 + 4596 19 0.25 + 5036 20 0.25 + 5497 21 0.24 + 5979 22 0.24 + 6483 23 0.23 + 7009 24 0.23 + 7558 25 0.22 + 8130 26 0.22 + 8726 27 0.22 + 9346 28 0.21 + 9991 29 0.21 + 10661 30 0.21 + 11358 31 0.20 + 12082 32 0.20 + 12834 33 0.20 + 13614 34 0.19 + 14424 35 0.19 + 15265 36 0.19 + 16137 37 0.19 + 17042 38 0.18 + 17981 39 0.18 + 18955 40 0.18 + + + +Floyd Experimental [Page 30] + +RFC 3649 HighSpeed TCP December 2003 + + + 19965 41 0.17 + 21013 42 0.17 + 22101 43 0.17 + 23230 44 0.17 + 24402 45 0.16 + 25618 46 0.16 + 26881 47 0.16 + 28193 48 0.16 + 29557 49 0.15 + 30975 50 0.15 + 32450 51 0.15 + 33986 52 0.15 + 35586 53 0.14 + 37253 54 0.14 + 38992 55 0.14 + 40808 56 0.14 + 42707 57 0.13 + 44694 58 0.13 + 46776 59 0.13 + 48961 60 0.13 + 51258 61 0.13 + 53677 62 0.12 + 56230 63 0.12 + 58932 64 0.12 + 61799 65 0.12 + 64851 66 0.11 + 68113 67 0.11 + 71617 68 0.11 + 75401 69 0.10 + 79517 70 0.10 + 84035 71 0.10 + 89053 72 0.10 + 94717 73 0.09 + + Table 12: Parameters for HighSpeed TCP. + + + + + + + + + + + + + + + + +Floyd Experimental [Page 31] + +RFC 3649 HighSpeed TCP December 2003 + + + This table was computed with the following Perl program: + + $top = 100000; + $num = 38; + if ($num == 38) { + print " w a(w) b(w)\n"; + print " ---- ---- ----\n"; + print " 38 1 0.50\n"; + $oldb = 0.50; + $olda = 1; + } + while ($num < $top) { + $bw = (0.1 -0.5)*(log($num)-log(38))/(log(83000)-log(38))+0.5; + $aw = ($num**2*2.0*$bw) / ((2.0-$bw)*$num**1.2*12.8); + if ($aw > $olda + 1) { + printf "%6d %5d %3.2f0, $num, $aw, $bw; + $olda = $aw; + } + $num ++; + } + + Table 13: Perl Program for computing parameters for HighSpeed TCP. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Floyd Experimental [Page 32] + +RFC 3649 HighSpeed TCP December 2003 + + +C. Exploring the time to converge to fairness. + + This section gives the Perl program used to compute the congestion + window growth during congestion avoidance. + + $top = 2001; + $hswin = 1; + $regwin = 1; + $rtt = 1; + $lastrtt = 0; + $rttstep = 100; + if ($hswin == 1) { + print " RTT HS_Window Standard_TCP_Window0; + print " --- --------- -------------------0; + } + while ($rtt < $top) { + $bw = (0.1 -0.5)*(log($hswin)-log(38))/(log(83000)-log(38))+0.5; + $aw = ($hswin**2*2.0*$bw) / ((2.0-$bw)*$hswin**1.2*12.8); + if ($aw < 1) { + $aw = 1; + } + if ($rtt >= $lastrtt + $rttstep) { + printf "%5d %9d %10d0, $rtt, $hswin, $regwin; + $lastrtt = $rtt; + } + $hswin += $aw; + $regwin += 1; + $rtt ++; + } + + Table 14: Perl Program for computing the window in congestion + avoidance. + +Author's Address + + Sally Floyd + ICIR (ICSI Center for Internet Research) + + Phone: +1 (510) 666-2989 + EMail: floyd@acm.org + URL: http://www.icir.org/floyd/ + + + + + + + + + + +Floyd Experimental [Page 33] + +RFC 3649 HighSpeed TCP December 2003 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2003). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assignees. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Floyd Experimental [Page 34] + -- cgit v1.2.3