One document matched: draft-floyd-tcp-highspeed-02.ps
%!PS-Adobe-3.0
%%BoundingBox: 24 24 588 768
%%Title: Enscript Output
%%For: Sally Floyd
%%Creator: GNU enscript 1.6.1
%%CreationDate: Wed Feb 19 14:48:16 2003
%%Orientation: Portrait
%%Pages: (atend)
%%DocumentMedia: Letter 612 792 0 () ()
%%DocumentNeededResources: (atend)
%%EndComments
%%BeginProlog
%%BeginResource: procset Enscript-Prolog 1.6 1
%
% Procedures.
%
/_S { % save current state
/_s save def
} def
/_R { % restore from saved state
_s restore
} def
/S { % showpage protecting gstate
gsave
showpage
grestore
} bind def
/MF { % fontname newfontname -> - make a new encoded font
/newfontname exch def
/fontname exch def
/fontdict fontname findfont def
/newfont fontdict maxlength dict def
fontdict {
exch
dup /FID eq {
% skip FID pair
pop pop
} {
% copy to the new font dictionary
exch newfont 3 1 roll put
} ifelse
} forall
newfont /FontName newfontname put
% insert only valid encoding vectors
encoding_vector length 256 eq {
newfont /Encoding encoding_vector put
} if
newfontname newfont definefont pop
} def
/SF { % fontname width height -> - set a new font
/height exch def
/width exch def
findfont
[width 0 0 height 0 0] makefont setfont
} def
/SUF { % fontname width height -> - set a new user font
/height exch def
/width exch def
/F-gs-user-font MF
/F-gs-user-font width height SF
} def
/M {moveto} bind def
/s {show} bind def
/Box { % x y w h -> - define box path
/d_h exch def /d_w exch def /d_y exch def /d_x exch def
d_x d_y moveto
d_w 0 rlineto
0 d_h rlineto
d_w neg 0 rlineto
closepath
} def
/bgs { % x y height blskip gray str -> - show string with bg color
/str exch def
/gray exch def
/blskip exch def
/height exch def
/y exch def
/x exch def
gsave
x y blskip sub str stringwidth pop height Box
gray setgray
fill
grestore
x y M str s
} def
% Highlight bars.
/highlight_bars { % nlines lineheight output_y_margin gray -> -
gsave
setgray
/ymarg exch def
/lineheight exch def
/nlines exch def
% This 2 is just a magic number to sync highlight lines to text.
0 d_header_y ymarg sub 2 sub translate
/cw d_output_w cols div def
/nrows d_output_h ymarg 2 mul sub lineheight div cvi def
% for each column
0 1 cols 1 sub {
cw mul /xp exch def
% for each rows
0 1 nrows 1 sub {
/rn exch def
rn lineheight mul neg /yp exch def
rn nlines idiv 2 mod 0 eq {
% Draw highlight bar. 4 is just a magic indentation.
xp 4 add yp cw 8 sub lineheight neg Box fill
} if
} for
} for
grestore
} def
% Line highlight bar.
/line_highlight { % x y width height gray -> -
gsave
/gray exch def
Box gray setgray fill
grestore
} def
% Column separator lines.
/column_lines {
gsave
.1 setlinewidth
0 d_footer_h translate
/cw d_output_w cols div def
1 1 cols 1 sub {
cw mul 0 moveto
0 d_output_h rlineto stroke
} for
grestore
} def
% Column borders.
/column_borders {
gsave
.1 setlinewidth
0 d_footer_h moveto
0 d_output_h rlineto
d_output_w 0 rlineto
0 d_output_h neg rlineto
closepath stroke
grestore
} def
% Do the actual underlay drawing
/draw_underlay {
ul_style 0 eq {
ul_str true charpath stroke
} {
ul_str show
} ifelse
} def
% Underlay
/underlay { % - -> -
gsave
0 d_page_h translate
d_page_h neg d_page_w atan rotate
ul_gray setgray
ul_font setfont
/dw d_page_h dup mul d_page_w dup mul add sqrt def
ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto
draw_underlay
grestore
} def
/user_underlay { % - -> -
gsave
ul_x ul_y translate
ul_angle rotate
ul_gray setgray
ul_font setfont
0 0 ul_h_ptsize 2 div sub moveto
draw_underlay
grestore
} def
% Page prefeed
/page_prefeed { % bool -> -
statusdict /prefeed known {
statusdict exch /prefeed exch put
} {
pop
} ifelse
} def
% Wrapped line markers
/wrapped_line_mark { % x y charwith charheight type -> -
/type exch def
/h exch def
/w exch def
/y exch def
/x exch def
type 2 eq {
% Black boxes (like TeX does)
gsave
0 setlinewidth
x w 4 div add y M
0 h rlineto w 2 div 0 rlineto 0 h neg rlineto
closepath fill
grestore
} {
type 3 eq {
% Small arrows
gsave
.2 setlinewidth
x w 2 div add y h 2 div add M
w 4 div 0 rlineto
x w 4 div add y lineto stroke
x w 4 div add w 8 div add y h 4 div add M
x w 4 div add y lineto
w 4 div h 8 div rlineto stroke
grestore
} {
% do nothing
} ifelse
} ifelse
} def
% EPSF import.
/BeginEPSF {
/b4_Inc_state save def % Save state for cleanup
/dict_count countdictstack def % Count objects on dict stack
/op_count count 1 sub def % Count objects on operand stack
userdict begin
/showpage { } def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [ ] 0 setdash newpath
/languagelevel where {
pop languagelevel
1 ne {
false setstrokeadjust false setoverprint
} if
} if
} bind def
/EndEPSF {
count op_count sub { pos } repeat % Clean up stacks
countdictstack dict_count sub { end } repeat
b4_Inc_state restore
} bind def
% Check PostScript language level.
/languagelevel where {
pop /gs_languagelevel languagelevel def
} {
/gs_languagelevel 1 def
} ifelse
%%EndResource
%%BeginResource: procset Enscript-Encoding-88591 1.6 1
/encoding_vector [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /hyphen /period /slash
/zero /one /two /three
/four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C
/D /E /F /G
/H /I /J /K
/L /M /N /O
/P /Q /R /S
/T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c
/d /e /f /g
/h /i /j /k
/l /m /n /o
/p /q /r /s
/t /u /v /w
/x /y /z /braceleft
/bar /braceright /tilde /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /bullet
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndResource
%%EndProlog
%%BeginSetup
%%IncludeResource: font Courier-Bold
%%IncludeResource: font Courier
/HFpt_w 10 def
/HFpt_h 10 def
/Courier-Bold /HF-gs-font MF
/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def
/Courier /F-gs-font MF
/F-gs-font 10 10 SF
/#copies 1 def
% Pagedevice definitions:
gs_languagelevel 1 gt {
<<
/PageSize [612 792]
>> setpagedevice
} if
/d_page_w 564 def
/d_page_h 744 def
/d_header_x 0 def
/d_header_y 744 def
/d_header_w 564 def
/d_header_h 0 def
/d_footer_x 0 def
/d_footer_y 0 def
/d_footer_w 564 def
/d_footer_h 0 def
/d_output_w 564 def
/d_output_h 744 def
/cols 1 def
%%EndSetup
%%Page: (1) 1
%%BeginPageSetup
_S
24 24 translate
/pagenum 1 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 665 M
(Internet Engineering Task Force Sally Floyd) s
5 654 M
(INTERNET DRAFT ICSI) s
5 643 M
(draft-floyd-tcp-highspeed-02.txt February, 2003) s
5 599 M
( HighSpeed TCP for Large Congestion Windows) s
5 555 M
( Status of this Memo) s
5 522 M
( This document is an Internet-Draft and is in full conformance with) s
5 511 M
( all provisions of Section 10 of RFC2026.) s
5 489 M
( Internet-Drafts are working documents of the Internet Engineering) s
5 478 M
( Task Force \(IETF\), its areas, and its working groups. Note that) s
5 467 M
( other groups may also distribute working documents as Internet-) s
5 456 M
( Drafts.) s
5 434 M
( Internet-Drafts are draft documents valid for a maximum of six months) s
5 423 M
( and may be updated, replaced, or obsoleted by other documents at any) s
5 412 M
( time. It is inappropriate to use Internet- Drafts as reference) s
5 401 M
( material or to cite them other than as "work in progress.") s
5 379 M
( The list of current Internet-Drafts can be accessed at) s
5 368 M
( http://www.ietf.org/ietf/1id-abstracts.txt) s
5 346 M
( The list of Internet-Draft Shadow Directories can be accessed at) s
5 335 M
( http://www.ietf.org/shadow.html.) s
5 313 M
(Abstract) s
5 291 M
( This document proposes HighSpeed TCP, a modification to TCP's) s
5 280 M
( congestion control mechanism for use with TCP connections with large) s
5 269 M
( congestion windows. The congestion control mechanisms of the current) s
5 258 M
( Standard TCP constrains the congestion windows that can be achieved) s
5 247 M
( by TCP in realistic environments. For example, for a Standard TCP) s
5 236 M
( connection with 1500-byte packets and a 100 ms round-trip time,) s
5 225 M
( achieving a steady-state throughput of 10 Gbps would require an) s
5 214 M
( average congestion window of 83,333 segments, and a packet drop rate) s
5 203 M
( of at most one congestion event every 5,000,000,000 packets \(or) s
5 192 M
( equivalently, at most one congestion event every 1 2/3 hours\). This) s
5 181 M
( is widely acknowledged as an unrealistic constraint. To address this) s
5 170 M
( limitation of TCP, this document proposes HighSpeed TCP, and solicits) s
5 159 M
( experimentation and feedback from the wider community.) s
5 104 M
(Floyd Experimental [Page 1]) s
_R
S
%%Page: (2) 2
%%BeginPageSetup
_S
24 24 translate
/pagenum 2 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( TO BE DELETED BY THE RFC EDITOR UPON PUBLICATION:) s
5 643 M
( Changes from draft-floyd-tcp-highspeed-01.txt:) s
5 621 M
( * Added a section on "Tradeoffs for Choosing Congestion Control) s
5 610 M
( Parameters".) s
5 588 M
( * Added mention of Scalable TCP from Tom Kelly.) s
5 566 M
( Changes from draft-floyd-tcp-highspeed-00.txt:) s
5 544 M
( * Added a discussion on related work about changing the PMTU.) s
5 522 M
( * Added a discussion of an alternate, linear response function.) s
5 500 M
( * Added a discussion of the TCP window scale option.) s
5 478 M
( * Added a discussion of HighSpeed TCP as roughly emulating the) s
5 467 M
( congestion control response of N parallel TCP connections.) s
5 445 M
( * Added a discussion of the time to converge to fairness.) s
5 423 M
( * Expanded the Introduction.) s
5 401 M
(1. Introduction.) s
5 379 M
( This document proposes HighSpeed TCP, a modification to TCP's) s
5 368 M
( congestion control mechanism for use with TCP connections with large) s
5 357 M
( congestion windows. In a steady-state environment, with a packet) s
5 346 M
( loss rate p, the current Standard TCP's average congestion window is) s
5 335 M
( roughly 1.2/sqrt\(p\) segments. This places a serious constraint on) s
5 324 M
( the congestion windows that can be achieved by TCP in realistic) s
5 313 M
( environments. For example, for a Standard TCP connection with) s
5 302 M
( 1500-byte packets and a 100 ms round-trip time, achieving a steady-) s
5 291 M
( state throughput of 10 Gbps would require an average congestion) s
5 280 M
( window of 83,333 segments, and a packet drop rate of at most one) s
5 269 M
( congestion event every 5,000,000,000 packets \(or equivalently, at) s
5 258 M
( most one congestion event every 1 2/3 hours\).) s
5 236 M
( To address this fundamental limitation of TCP and of the TCP response) s
5 225 M
( function \(the function mapping the steady-state packet drop rate to) s
5 214 M
( TCP's average sending rate in packets per round-trip time\), this) s
5 203 M
( document proposes modifying the TCP response function for regimes) s
5 192 M
( with higher congestion windows. This document also solicits) s
5 181 M
( experimentation and feedback on HighSpeed TCP from the wider) s
5 170 M
( community.) s
5 148 M
( Because HighSpeed TCP's modified response function would only take) s
5 104 M
(Floyd Experimental [Page 2]) s
_R
S
%%Page: (3) 3
%%BeginPageSetup
_S
24 24 translate
/pagenum 3 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( effect with higher congestion windows, HighSpeed TCP does not modify) s
5 654 M
( TCP behavior in environments with mild to heavy congestion, and) s
5 643 M
( therefore does not introduce any new dangers of congestion collapse.) s
5 632 M
( However, if relative fairness between HighSpeed TCP connections is to) s
5 621 M
( be preserved, then in our view any modification to the TCP response) s
5 610 M
( function should be globally-agreed-upon in the IETF, rather than made) s
5 599 M
( as ad hoc decisions by individual implementors or TCP senders.) s
5 588 M
( Modifications to the TCP response function would also have) s
5 577 M
( implications for transport protocols that use TFRC and other forms of) s
5 566 M
( equation-based congestion control, as these congestion control) s
5 555 M
( mechanisms directly use the TCP response function [TFRC].) s
5 533 M
( This proposal for HighSpeed TCP focuses specifically on a proposed) s
5 522 M
( change to the TCP response function, and its implications for TCP.) s
5 511 M
( This document does not address what we view as a separate fundamental) s
5 500 M
( issue, of the mechanisms required to enable best-effort connections) s
5 489 M
( to *start* with large initial windows. In our view, while HighSpeed) s
5 478 M
( TCP proposes a somewhat fundamental change to the TCP response) s
5 467 M
( function, at the same time it is a relatively simple change to) s
5 456 M
( implement in a single TCP sender, and presents no dangers in terms of) s
5 445 M
( congestion collapse. In contrast, in our view, the problem of) s
5 434 M
( enabling connections to *start* with large initial windows is) s
5 423 M
( inherently more risky and structurally more difficult, requiring some) s
5 412 M
( form of explicit feedback from all of the routers along the path.) s
5 401 M
( This is another reason why we would propose addressing the problem of) s
5 390 M
( starting with large initial windows separately, and on a separate) s
5 379 M
( timetable, from the problem of modifying the TCP response function.) s
5 357 M
(2. The Problem Description.) s
5 335 M
( This section describes the number of round-trip times between) s
5 324 M
( congestion events required for a Standard TCP flow to achieve an) s
5 313 M
( average throughput of B bps, given packets of D bytes and a round-) s
5 302 M
( trip time of R seconds. A congestion event refers to a window of) s
5 291 M
( data with one or more dropped or ECN-marked packets \(where ECN stands) s
5 280 M
( for Explicit Congestion Notification\).) s
5 258 M
( From Appendix A, achieving an average TCP throughput of B bps) s
5 247 M
( requires a loss event at most every BR/\(12D\) round-trip times. This) s
5 236 M
( is illustrated in Table 1, for R = 0.1 seconds and D = 1500 bytes.) s
5 225 M
( The table also gives the average congestion window W of BR/\(8D\), and) s
5 214 M
( the steady-state packet drop rate P of 1.5/W^2.) s
5 104 M
(Floyd Experimental [Page 3]) s
_R
S
%%Page: (4) 4
%%BeginPageSetup
_S
24 24 translate
/pagenum 4 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( TCP Throughput \(Mbps\) RTTs Between Losses W P) s
5 654 M
( --------------------- ------------------- ------ -----) s
5 643 M
( 1 5.5 8.3 0.02) s
5 632 M
( 10 55.5 83.3 0.0002) s
5 621 M
( 100 555.5 833.3 0.000002) s
5 610 M
( 1000 5555.5 8333.3 0.00000002) s
5 599 M
( 10000 55555.5 83333.3 0.0000000002) s
5 577 M
( Table 1: RTTs Between Congestion Events for Standard TCP, for) s
5 566 M
( 1500-Byte Packets and a Round-Trip Time of 0.1 Seconds.) s
5 544 M
( This document proposes HighSpeed TCP, a minimal modification to TCP's) s
5 533 M
( increase and decrease parameters, for TCP connections with larger) s
5 522 M
( congestion windows, to allow TCP to achieve high throughput with more) s
5 511 M
( realistic requirements for the steady-state packet drop rate.) s
5 500 M
( Equivalently, HighSpeed TCP has more realistic requirements for the) s
5 489 M
( number of round-trip times between loss events.) s
5 467 M
(3. Design Guidelines.) s
5 445 M
( Our proposal for HighSpeed TCP is motivated by the following) s
5 434 M
( requirements:) s
5 412 M
( * Achieve high per-connection throughput without requiring) s
5 401 M
( unrealistically low packet loss rates.) s
5 379 M
( * Reach high throughput reasonably quickly when in slow-start.) s
5 357 M
( * Reach high throughput without overly long delays when recovering) s
5 346 M
( from multiple retransmit timeouts, or when ramping-up from a period) s
5 335 M
( with small congestion windows.) s
5 313 M
( * No additional feedback or support required from routers:) s
5 291 M
( For example, the goal is for acceptable performance in both ECN-) s
5 280 M
( capable and non-ECN-capable environments, and with Drop-Tail as well) s
5 269 M
( as with Active Queue Management such as RED in the routers.) s
5 247 M
( * No additional feedback required from TCP receivers.) s
5 225 M
( * TCP-compatible performance in environments with moderate or high) s
5 214 M
( congestion:) s
5 192 M
( Equivalently, the requirement is that there be no additional load on) s
5 181 M
( the network \(in terms of increased packet drop rates\) in environments) s
5 170 M
( with moderate or high congestion.) s
5 148 M
( * Performance at least as good as Standard TCP in environments with) s
5 104 M
(Floyd Experimental [Page 4]) s
_R
S
%%Page: (5) 5
%%BeginPageSetup
_S
24 24 translate
/pagenum 5 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( moderate or high congestion.) s
5 643 M
( * Acceptable transient performance, in terms of increases in the) s
5 632 M
( congestion window in one round-trip time, responses to severe) s
5 621 M
( congestion, and convergence times to fairness.) s
5 599 M
( Currently, users wishing to achieve throughputs of 1Gbps or more) s
5 588 M
( typically open up multiple TCP connections in parallel, or use MulTCP) s
5 577 M
( [CO98,GRK99], which behaves roughly like the aggregate of N virtual) s
5 566 M
( TCP connections. While this approach suffices for the occasional) s
5 555 M
( user on well-provisioned links, it leaves the parameter N to be) s
5 544 M
( determined by the user, and results in more aggressive performance) s
5 533 M
( and higher steady-state packet drop rates if used in environments) s
5 522 M
( with periods of moderate or high congestion. We believe that a new) s
5 511 M
( approach is needed that offers more flexibility, more effectively) s
5 500 M
( scales to a wide range of available bandwidths, and competes more) s
5 489 M
( fairly with Standard TCP in congested environments.) s
5 467 M
(4. Non-Goals.) s
5 445 M
( The following are explicitly *not* goals of our work:) s
5 423 M
( * Non-goal: TCP-compatible performance in environments with very low) s
5 412 M
( packet drop rates.) s
5 390 M
( We note that our proposal does not require, or deliver, TCP-) s
5 379 M
( compatible performance in environments with very low packet drop) s
5 368 M
( rates, e.g., with packet loss rates of 10^-5 or 10^-6. As we discuss) s
5 357 M
( later in this document, we assume that Standard TCP is unable to make) s
5 346 M
( effective use of the available bandwidth in environments with loss) s
5 335 M
( rates of 10^-6 in any case, so that it is acceptable and appropriate) s
5 324 M
( for HighSpeed TCP to perform more aggressively than Standard TCP is) s
5 313 M
( such an environment.) s
5 291 M
( * Non-goal: Ramping-up more quickly than allowed by slow-start.) s
5 269 M
( It is our belief that ramping-up more quickly than allowed by slow-) s
5 258 M
( start would necessitate more explicit feedback from routers along the) s
5 247 M
( path. The proposal for HighSpeed TCP is focused on changes to TCP) s
5 236 M
( that could be effectively deployed in the current Internet) s
5 225 M
( environment.) s
5 203 M
( * Non-goal: Avoiding oscillations in environments with only one-way,) s
5 192 M
( long-lived flows all with the same round-trip times.) s
5 170 M
( While we agree that attention to oscillatory behavior is useful,) s
5 159 M
( avoiding oscillations in aggregate throughput has not been our) s
5 148 M
( primary consideration, particularly for simplified environments) s
5 104 M
(Floyd Experimental [Page 5]) s
_R
S
%%Page: (6) 6
%%BeginPageSetup
_S
24 24 translate
/pagenum 6 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( limited to one-way, long-lived flows all with the same, large round-) s
5 654 M
( trip times. Our assessment is that some oscillatory behavior in) s
5 643 M
( these extreme environments is an acceptable price to pay for the) s
5 632 M
( other benefits of HighSpeed TCP.) s
5 610 M
(5. Modifying the TCP Response Function.) s
5 588 M
( The TCP response function, w = 1.2/sqrt\(p\), gives TCP's average) s
5 577 M
( congestion window w in MSS-sized segments, as a function of the) s
5 566 M
( steady-state packet drop rate p [FF98]. This TCP response function) s
5 555 M
( is a direct consequence of TCP's Additive Increase Multiplicative) s
5 544 M
( Decrease \(AIMD\) mechanisms of increasing the congestion window by) s
5 533 M
( roughly one segment per round-trip time in the absence of congestion,) s
5 522 M
( and halving the congestion window in response to a round-trip time) s
5 511 M
( with a congestion event. This response function for Standard TCP is) s
5 500 M
( reflected in the table below. In this proposal we restrict our) s
5 489 M
( attention to TCP performance in environments with packet loss rates) s
5 478 M
( of at most 10^-2, and so we can ignore the more complex response) s
5 467 M
( functions that are required to model TCP performance in more) s
5 456 M
( congested environments with retransmit timeouts. From Appendix A, an) s
5 445 M
( average congestion window of W corresponds to an average of W/1.5) s
5 434 M
( round-trip times between loss events for Standard TCP.) s
5 412 M
( Packet Drop Rate P Congestion Window W RTTs Between Losses) s
5 401 M
( ------------------ ------------------- -------------------) s
5 390 M
( 10^-2 12 8) s
5 379 M
( 10^-3 38 25) s
5 368 M
( 10^-4 120 80) s
5 357 M
( 10^-5 379 252) s
5 346 M
( 10^-6 1200 800) s
5 335 M
( 10^-7 3795 2530) s
5 324 M
( 10^-8 12000 8000) s
5 313 M
( 10^-9 37948 25298) s
5 302 M
( 10^-10 120000 80000) s
5 280 M
( Table 2: TCP Response Function for Standard TCP. The average) s
5 269 M
( congestion window W in MSS-sized segments is given as a function of) s
5 258 M
( the packet drop rate P.) s
5 236 M
( To specify a modified response function for HighSpeed TCP, we use) s
5 225 M
( three parameters, Low_Window, High_Window, and High_P. To ensure TCP) s
5 214 M
( compatibility, the HighSpeed response function uses the same response) s
5 203 M
( function as Standard TCP when the current congestion window is at) s
5 192 M
( most Low_Window, and uses the HighSpeed response function when the) s
5 181 M
( current congestion window is greater than Low_Window. In this) s
5 170 M
( document we set Low_Window to 38 MSS-sized segments, corresponding to) s
5 159 M
( a packet drop rate of 10^-3 for TCP.) s
5 104 M
(Floyd Experimental [Page 6]) s
_R
S
%%Page: (7) 7
%%BeginPageSetup
_S
24 24 translate
/pagenum 7 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( To specify the upper end of the HighSpeed response function, we) s
5 654 M
( specify the packet drop rate needed in the HighSpeed response) s
5 643 M
( function to achieve an average congestion window of 83000 segments.) s
5 632 M
( This is roughly the window needed to sustain 10Gbps throughput, for a) s
5 621 M
( TCP connection with the default packet size and round-trip time used) s
5 610 M
( earlier in this document. For High_Window set to 83000, we specify) s
5 599 M
( High_P of 10^-7; that is, with HighSpeed TCP a packet drop rate of) s
5 588 M
( 10^-7 allows the HighSpeed TCP connection to achieve an average) s
5 577 M
( congestion window of 83000 segments. We believe that this loss rate) s
5 566 M
( sets an achieveable target for high-speed environments, while still) s
5 555 M
( allowing acceptable fairness for the HighSpeed response function when) s
5 544 M
( competing with Standard TCP in environments with packet drop rates of) s
5 533 M
( 10^-4 or 10^5.) s
5 511 M
( For simplicity, for the HighSpeed response function we maintain the) s
5 500 M
( property that the response function gives a straight line on a log-) s
5 489 M
( log scale \(as does the response function for Standard TCP, for low to) s
5 478 M
( moderate congestion\). This results in the following response) s
5 467 M
( function, for values of the average congestion window W greater than) s
5 456 M
( Low_Window:) s
5 434 M
( W = \(p/Low_P\)^S Low_Window,) s
5 412 M
( for Low_P the packet drop rate corresponding to Low_Window, and for S) s
5 401 M
( as following constant [FRS02]:) s
5 379 M
( S = \(log High_Window - log Low_Window\)/\(log High_P - log Low_P\).) s
5 357 M
( For example, for Low_Window set to 38, we have Low_P of 10^-3 \(for) s
5 346 M
( compatibility with Standard TCP\). Thus, for High_Window set to 83000) s
5 335 M
( and High_P set to 10^-7, we get the following response function:) s
5 313 M
( W = 0.12/p^0.835. \(1\)) s
5 291 M
( This HighSpeed response function is illustrated in Table 3 below.) s
5 280 M
( For HighSpeed TCP, the number of round-trip times between losses,) s
5 269 M
( 1/\(pW\), equals 12.7 W^0.2, for W > 38 segments.) s
5 104 M
(Floyd Experimental [Page 7]) s
_R
S
%%Page: (8) 8
%%BeginPageSetup
_S
24 24 translate
/pagenum 8 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( Packet Drop Rate P Congestion Window W RTTs Between Losses) s
5 654 M
( ------------------ ------------------- -------------------) s
5 643 M
( 10^-2 12 8) s
5 632 M
( 10^-3 38 25) s
5 621 M
( 10^-4 263 38) s
5 610 M
( 10^-5 1795 57) s
5 599 M
( 10^-6 12279 83) s
5 588 M
( 10^-7 83981 123) s
5 577 M
( 10^-8 574356 180) s
5 566 M
( 10^-9 3928088 264) s
5 555 M
( 10^-10 26864653 388) s
5 533 M
( Table 3: TCP Response Function for HighSpeed TCP. The average) s
5 522 M
( congestion window W in MSS-sized segments is given as a function of) s
5 511 M
( the packet drop rate P.) s
5 489 M
( We believe that the problem of backward compatibility with Standard) s
5 478 M
( TCP requires a response function that is quite close to that of) s
5 467 M
( Standard TCP for loss rates of 10^-1, 10^-2, or 10^-3. We believe,) s
5 456 M
( however, that such stringent TCP-compatibility is not required for) s
5 445 M
( smaller loss rates, and that an appropriate response function is one) s
5 434 M
( that gives a plausible packet drop rate for a connection throughput) s
5 423 M
( of 10Gbps. This also gives a slowly increasing number of round-trip) s
5 412 M
( times between loss events as a function of a decreasing packet drop) s
5 401 M
( rate.) s
5 379 M
( Another way to look at the HighSpeed response function is to consider) s
5 368 M
( that HighSpeed TCP is roughly emulating the congestion control) s
5 357 M
( response of N parallel TCP connections, where N is initially one, and) s
5 346 M
( where N increases as a function of the HighSpeed TCP's congestion) s
5 335 M
( window. Thus for the HighSpeed response function in Equation \(1\)) s
5 324 M
( above, the response function can be viewed as equivalent to that of) s
5 313 M
( N\(W\) parallel TCP connections, where N\(W\) varies as a function of the) s
5 302 M
( congestion window W. Recall that for a single standard TCP) s
5 291 M
( connection, the average congestion window equals 1.2/sqrt\(p\). For N) s
5 280 M
( parallel TCP connections, the aggregate congestion window W_n equals) s
5 269 M
( N*1.2/sqrt\(p\). From the HighSpeed response function in Equation \(1\)) s
5 258 M
( and the relationship above, we can derive the following:) s
5 236 M
( N\(W\) = 0.23*W^\(0.4\)) s
5 214 M
( for N\(W\) the number of parallel TCP connections emulated by the) s
5 203 M
( HighSpeed TCP response function, and for N\(W\) >= 1. This is shown in) s
5 192 M
( Table 4 below.) s
5 104 M
(Floyd Experimental [Page 8]) s
_R
S
%%Page: (9) 9
%%BeginPageSetup
_S
24 24 translate
/pagenum 9 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( Congestion Window W Number N\(W\) of Parallel TCPs) s
5 654 M
( ------------------- -------------------------) s
5 643 M
( 1 1) s
5 632 M
( 10 1) s
5 621 M
( 100 1.4) s
5 610 M
( 1,000 3.6) s
5 599 M
( 10,000 9.2) s
5 588 M
( 100,000 23.0) s
5 566 M
( Table 4: Number N\(W\) of parallel TCP connections roughly emulated by) s
5 555 M
( the HighSpeed TCP response function.) s
5 533 M
( We do not in this document attempt to seriously evaluate the) s
5 522 M
( HighSpeed response function for congestion windows greater than) s
5 511 M
( 100,000 packets. We believe that we will learn more about the) s
5 500 M
( requirements for sustaining the throughput of best-effort connections) s
5 489 M
( in that range as we gain more experience with HighSpeed TCP with) s
5 478 M
( congestion windows of thousands and tens of thousands of packets.) s
5 467 M
( There also might be limitations to the per-connection throughput that) s
5 456 M
( can be realistically achieved for best-effort traffic in the absence) s
5 445 M
( of additional support or feedback from the routers along the path.) s
5 423 M
(6. Fairness Implications of the HighSpeed Response Function.) s
5 401 M
( The Standard and Highspeed Response Functions can be used directly to) s
5 390 M
( infer the relative fairness between flows using the two response) s
5 379 M
( functions. For example, given a packet drop rate P, assume that) s
5 368 M
( Standard TCP has an average congestion window of W_Standard, and) s
5 357 M
( HighSpeed TCP has a higher average congestion window of W_HighSpeed.) s
5 346 M
( In this case, a single HighSpeed TCP connection is receiving) s
5 335 M
( W_HighSpeed/W_Standard times the throughput of a single Standard TCP) s
5 324 M
( connection competing in the same environment.) s
5 302 M
( This relative fairness is illustrated below in Table 5, for the) s
5 291 M
( parameters used for the Highspeed response function in the section) s
5 280 M
( above. The second column gives the relative fairness, for the) s
5 269 M
( steady-state packet drop rate specified in the first column. To help) s
5 258 M
( calibrate, the third column gives the aggregate average congestion) s
5 247 M
( window for the two TCP connections, and the fourth column gives the) s
5 236 M
( bandwidth that would be needed by the two connections to achieve that) s
5 225 M
( aggregate window and packet drop rate, given 100 ms round-trip times) s
5 214 M
( and 1500-byte packets.) s
5 104 M
(Floyd Experimental [Page 9]) s
_R
S
%%Page: (10) 10
%%BeginPageSetup
_S
24 24 translate
/pagenum 10 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( Packet Drop Rate P Fairness Aggregate Window Bandwidth) s
5 654 M
( ------------------ -------- ---------------- ---------) s
5 643 M
( 10^-2 1.0 24 2.8 Mbps) s
5 632 M
( 10^-3 1.0 76 9.1 Mbps) s
5 621 M
( 10^-4 2.2 383 45.9 Mbps) s
5 610 M
( 10^-5 4.7 2174 260.8 Mbps) s
5 599 M
( 10^-6 10.2 13479 1.6 Gbps) s
5 588 M
( 10^-7 22.1 87776 10.5 Gbps) s
5 577 M
( 10^-8 47.9 586356 70.3 Gbps) s
5 566 M
( 10^-9 103.5 3966036 475.9 Gbps) s
5 555 M
( 10^-10 223.9 26984653 3238.1 Gbps) s
5 533 M
( Table 5: Relative Fairness between the HighSpeed and Standard) s
5 522 M
( Response Functions.) s
5 489 M
( Thus, for packet drop rates of 10^-4, a flow with the HighSpeed) s
5 478 M
( response function can expect to receive 2.2 times the throughput of a) s
5 467 M
( flow using the Standard response function, given the same round-trip) s
5 456 M
( times and packet sizes. With packet drop rates of 10^-6 \(or 10^-7\),) s
5 445 M
( the unfairness is more severe, and we have entered the regime where a) s
5 434 M
( Standard TCP connection requires a congestion event at most every 800) s
5 423 M
( \(or 2530\) round-trip times in order to make use of the available) s
5 412 M
( bandwidth. Our judgement would be that there are not a lot of TCP) s
5 401 M
( connections effectively operating in this regime today, with) s
5 390 M
( congestion windows of thousands of packets, and that therefore the) s
5 379 M
( benefits of the HighSpeed response function would outweigh the) s
5 368 M
( unfairness that would be experienced by Standard TCP in this regime.) s
5 357 M
( However, one purpose of this document is to solicit feedback on this) s
5 346 M
( issue. The parameter Low_Window determines directly the point of) s
5 335 M
( divergence between the Standard and HighSpeed Response Functions.) s
5 313 M
( The third column of Table 5, the Aggregate Window, gives the) s
5 302 M
( aggregate congestion window of the two competing TCP connections,) s
5 291 M
( with HighSpeed and Standard TCP, given the packet drop rate specified) s
5 280 M
( in the first column. From Table 5, a HighSpeed TCP connection would) s
5 269 M
( receive ten times the bandwidth of a Standard TCP in an environment) s
5 258 M
( with a packet drop rate of 10^-6. This would occur when the two) s
5 247 M
( flows sharing a single pipe achieved an aggregate window of 13479) s
5 236 M
( packets. Given a round-trip time of 100 ms and a packet size of 1500) s
5 225 M
( bytes, this would occur with an available bandwidth for the two) s
5 214 M
( competing flows of 1.6 Gbps.) s
5 192 M
( Next we consider the time that it takes two HighSpeed TCP flows to) s
5 181 M
( converge to fairness. The worst case for convergence to fairness) s
5 170 M
( occurs when a new flow is starting up, competing against a high-) s
5 159 M
( bandwidth existing flow, and the new flow suffers a packet drop and) s
5 148 M
( exits slow-start while its window is still small. In the worst case,) s
5 104 M
(Floyd Experimental [Page 10]) s
_R
S
%%Page: (11) 11
%%BeginPageSetup
_S
24 24 translate
/pagenum 11 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( consider that the new flow has entered the congestion avoidance phase) s
5 654 M
( while its window is only one packet. A standard TCP flow in) s
5 643 M
( congestion avoidance increases its window by at most one packet per) s
5 632 M
( round-trip time, and after N round-trip times has only achieved a) s
5 621 M
( window of N packets \(when starting with a window of 1 in the first) s
5 610 M
( round-trip time\). In contrast, a HighSpeed TCP flows increases much) s
5 599 M
( faster than a standard TCP flow while in the congestion avoidance) s
5 588 M
( phase, and we can expect its convergence to fairness to be much) s
5 577 M
( better. This is shown in Table 6 below. The script used to generate) s
5 566 M
( this table is given in Appendix C.) s
5 544 M
( RTT HS_Window Standard_TCP_Window) s
5 533 M
( --- --------- -------------------) s
5 522 M
( 100 131 100) s
5 511 M
( 200 475 200) s
5 500 M
( 300 1131 300) s
5 489 M
( 400 2160 400) s
5 478 M
( 500 3601 500) s
5 467 M
( 600 5477 600) s
5 456 M
( 700 7799 700) s
5 445 M
( 800 10567 800) s
5 434 M
( 900 13774 900) s
5 423 M
( 1000 17409 1000) s
5 412 M
( 1100 21455 1100) s
5 401 M
( 1200 25893 1200) s
5 390 M
( 1300 30701 1300) s
5 379 M
( 1400 35856 1400) s
5 368 M
( 1500 41336 1500) s
5 357 M
( 1600 47115 1600) s
5 346 M
( 1700 53170 1700) s
5 335 M
( 1800 59477 1800) s
5 324 M
( 1900 66013 1900) s
5 313 M
( 2000 72754 2000) s
5 291 M
( Table 6: For a HighSpeed and a Standard TCP connection, the) s
5 280 M
( congestion window during congestion avoidance phase \(starting with a) s
5 269 M
( congestion window of 1 packet during RTT 1.) s
5 247 M
( The classic paper on relative fairness is from Chiu and Jain [CJ89].) s
5 236 M
( This paper shows that AIMD \(Additive Increase Multiplicative) s
5 225 M
( Decrease\) converges to fairness in an environment with synchronized) s
5 214 M
( congestion events. From [CJ89], it is easy to see that MIMD and AIAD) s
5 203 M
( do not converge to fairness in this environment. However, the) s
5 192 M
( results of [CJ89] do not apply to an asynchronous environment such as) s
5 181 M
( that of the current Internet, where the frequency of congestion) s
5 170 M
( feedback can be different for different flows. For example, it has) s
5 159 M
( been shown that MIMD converges to fair states in a model with) s
5 148 M
( proportional instead of synchronous feedback in terms of packet drops) s
5 104 M
(Floyd Experimental [Page 11]) s
_R
S
%%Page: (12) 12
%%BeginPageSetup
_S
24 24 translate
/pagenum 12 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( [GV02]. Thus, we are not concerned about abandoning a strict model) s
5 654 M
( of AIMD for HighSpeed TCP.) s
5 632 M
(7. Translating the HighSpeed Response Function into Congestion Control) s
5 621 M
(Parameters.) s
5 599 M
( For equation-based congestion control such as TFRC, the HighSpeed) s
5 588 M
( Response Function above could be used directly by the TFRC congestion) s
5 577 M
( control mechanism. However, for TCP the HighSpeed response function) s
5 566 M
( would have to be translated into additive increase and multiplicative) s
5 555 M
( decrease parameters. The HighSpeed response function cannot be) s
5 544 M
( achieved by TCP with an additive increase of one segment per round-) s
5 533 M
( trip time and a multiplicative decrease of halving the current) s
5 522 M
( congestion window; HighSpeed TCP will have to modify either the) s
5 511 M
( increase or the decrease parameter, or both. We have concluded that) s
5 500 M
( HighSpeed TCP is most likely to achieve an acceptable compromise) s
5 489 M
( between moderate increases and timely decreases by modifying both the) s
5 478 M
( increase and the decrease parameter.) s
5 456 M
( That is, for HighSpeed TCP let the congestion window increase by a\(w\)) s
5 445 M
( segments per round-trip time in the absence of congestion, and let) s
5 434 M
( the congestion window decrease to w\(1-b\(w\)\) segments in response to a) s
5 423 M
( round-trip time with one or more loss events. Thus, in response to a) s
5 412 M
( single acknowledgement HighSpeed TCP increases its congestion window) s
5 401 M
( in segments as follows:) s
5 379 M
( w <- w + a\(w\)/w.) s
5 357 M
( In response to a congestion event, HighSpeed TCP decreases as) s
5 346 M
( follows:) s
5 324 M
( w <- \(1-b\(w\)\)w.) s
5 302 M
( For Standard TCP, a\(w\) = 1 and b\(w\) = 1/2, regardless of the value of) s
5 291 M
( w. HighSpeed TCP uses the same values of a\(w\) and b\(w\) for w <=) s
5 280 M
( Low_Window. This section specifies a\(w\) and b\(w\) for HighSpeed TCP) s
5 269 M
( for larger values of w.) s
5 247 M
( For w = High_Window, we have specified a loss rate of High_P. From) s
5 236 M
( [FRS02], or from elementary calculations, this requires the following) s
5 225 M
( relationship between a\(w\) and b\(w\) for w = High_Window:) s
5 203 M
( a\(w\) = High_Window^2 * High_P * 2 * b\(w\)/\(2-b\(w\). \(2\)) s
5 181 M
( We use the parameter High_Decrease to specify the decrease parameter) s
5 170 M
( b\(w\) for w = High_Window, and use Equation \(2\) to derive the increase) s
5 159 M
( parameter a\(w\) for w = High_Window. Along with High_P = 10^-7 and) s
5 148 M
( High_Window = 83000, for example, we specify High_Decrease = 0.1,) s
5 104 M
(Floyd Experimental [Page 12]) s
_R
S
%%Page: (13) 13
%%BeginPageSetup
_S
24 24 translate
/pagenum 13 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( specifying that b\(83000\) = 0.1, giving a decrease of 10% after a) s
5 654 M
( congestion event. Equation \(2\) then gives a\(83000\) = 72, for an) s
5 643 M
( increase of 72 segments, or just under 0.1%, within a round-trip) s
5 632 M
( time, for w = 83000.) s
5 610 M
( This moderate decrease strikes us as acceptable, particularly when) s
5 599 M
( coupled with the role of TCP's ACK-clocking in limiting the sending) s
5 588 M
( rate in response to more severe congestion [BBFS01]. A more severe) s
5 577 M
( decrease would require a more aggressive increase in the congestion) s
5 566 M
( window for a round-trip time without congestion. In particular, a) s
5 555 M
( decrease factor High_Decrease of 0.5, as in Standard TCP, would) s
5 544 M
( require an increase of 459 segments per round-trip time when w =) s
5 533 M
( 83000.) s
5 511 M
( Given decrease parameters of b\(w\) = 1/2 for w = Low_Window, and b\(w\)) s
5 500 M
( = High_Decrease for w = High_Window, we are left to specify the value) s
5 489 M
( of b\(w\) for other values of w > Low_Window. From [FRS02], we let) s
5 478 M
( b\(w\) vary linearly as the log of w, as follows:) s
5 456 M
( b\(w\) = \(High_Decrease - 0.5\) \(log\(w\)-log\(W\)\) / \(log\(W_1\)-log\(W\)\) +) s
5 445 M
( 0.5.) s
5 423 M
( The increase parameter a\(w\) can then be computed as follows:) s
5 401 M
( a\(w\) = w^2 * p\(w\) * 2 * b\(w\)/\(2-b\(w\)\),) s
5 379 M
( for p\(w\) the packet drop rate for congestion window w. From) s
5 368 M
( inverting Equation \(1\), we get p\(w\) as follows:) s
5 346 M
( p\(w\) = 0.078/w^1.2.) s
5 324 M
( We assume that experimental implementations of HighSpeed TCP for) s
5 313 M
( further investigation will use a pre-computed look-up table for) s
5 302 M
( finding a\(w\) and b\(w\). For example, the implementation from Tom) s
5 291 M
( Dunigan adjusts the a\(w\) and b\(w\) parameters every 0.1 seconds. In) s
5 280 M
( the appendix we give such a table for our default values of) s
5 269 M
( Low_Window = 38, High_Window = 83,000, High_P = 10^-7, and) s
5 258 M
( High_Decrease = 0.1. These are also the default values in the NS) s
5 247 M
( simulator; example simulations in NS can be run with the command) s
5 236 M
( "./test-all-tcpHighspeed" in the directory tcl/test.) s
5 214 M
(8. An alternate, linear response functions.) s
5 192 M
( In this section we explore an alternate, linear response function for) s
5 181 M
( HighSpeed TCP that has been proposed by a number of other people, in) s
5 170 M
( particular by Glenn Vinnicombe and Tom Kelly. Similarly, it has been) s
5 159 M
( suggested by others that a less "ad-hoc" guideline for a response) s
5 148 M
( function for HighSpeed TCP would be to specify a constant value for) s
5 104 M
(Floyd Experimental [Page 13]) s
_R
S
%%Page: (14) 14
%%BeginPageSetup
_S
24 24 translate
/pagenum 14 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( the number of round-trip times between congestion events.) s
5 643 M
( Assume that we keep the value of Low_Window as 38 MSS-sized segments,) s
5 632 M
( indicating when the HighSpeed response function diverges from the) s
5 621 M
( current TCP response function, but that we modify the High_Window and) s
5 610 M
( High_P parameters that specify the upper range of the HighSpeed) s
5 599 M
( response function. In particular, consider the response function) s
5 588 M
( given by High_Window = 380,000 and High_P = 10^-7, with Low_Window =) s
5 577 M
( 38 and Low_P = 10^-3 as before.) s
5 555 M
( Using the equations in Section 5, this would give the following) s
5 544 M
( Linear response function, for w > Low_Window:) s
5 522 M
( W = 0.038/p.) s
5 500 M
( This Linear HighSpeed response function is illustrated in Table 7) s
5 489 M
( below. For HighSpeed TCP, the number of round-trip times between) s
5 478 M
( losses, 1/\(pW\), equals 1/0.38, or equivalently, 26, for W > 38) s
5 467 M
( segments.) s
5 445 M
( Packet Drop Rate P Congestion Window W RTTs Between Losses) s
5 434 M
( ------------------ ------------------- -------------------) s
5 423 M
( 10^-2 12 8) s
5 412 M
( 10^-3 38 26) s
5 401 M
( 10^-4 380 26) s
5 390 M
( 10^-5 3800 26) s
5 379 M
( 10^-6 38000 26) s
5 368 M
( 10^-7 380000 26) s
5 357 M
( 10^-8 3800000 26) s
5 346 M
( 10^-9 38000000 26) s
5 335 M
( 10^-10 380000000 26) s
5 313 M
( Table 7: An Alternate, Linear TCP Response Function for HighSpeed) s
5 302 M
( TCP. The average congestion window W in MSS-sized segments is given) s
5 291 M
( as a function of the packet drop rate P.) s
5 269 M
( Given a constant decrease b\(w\) of 1/2, this would give an increase) s
5 258 M
( a\(w\) of w/Low_Window, or equivalently, an constant increase of) s
5 247 M
( 1/Low_Window packets per acknowledgement, for w > Low_Window.) s
5 236 M
( Another possibility is Scalable TCP [K03], which uses a fixed) s
5 225 M
( decrease b\(w\) of 1/8 and a fixed increase per acknowledgement of) s
5 214 M
( 0.01. This gives an increase a\(w\) per window of 0.005 w, for a TCP) s
5 203 M
( with delayed acknowledgements.) s
5 181 M
( The relative fairness between the alternate Linear response function) s
5 170 M
( and the standard TCP response function is illustrated below in Table) s
5 159 M
( 8.) s
5 104 M
(Floyd Experimental [Page 14]) s
_R
S
%%Page: (15) 15
%%BeginPageSetup
_S
24 24 translate
/pagenum 15 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( Packet Drop Rate P Fairness Aggregate Window Bandwidth) s
5 654 M
( ------------------ -------- ---------------- ---------) s
5 643 M
( 10^-2 1.0 24 2.8 Mbps) s
5 632 M
( 10^-3 1.0 76 9.1 Mbps) s
5 621 M
( 10^-4 3.2 500 60.0 Mbps) s
5 610 M
( 10^-5 15.1 4179 501.4 Mbps) s
5 599 M
( 10^-6 31.6 39200 4.7 Gbps) s
5 588 M
( 10^-7 100.1 383795 46.0 Gbps) s
5 577 M
( 10^-8 316.6 3812000 457.4 Gbps) s
5 566 M
( 10^-9 1001.3 38037948 4564.5 Gbps) s
5 555 M
( 10^-10 3166.6 380120000 45614.4 Gbps) s
5 533 M
( Table 8: Relative Fairness between the Linear HighSpeed and Standard) s
5 522 M
( Response Functions.) s
5 489 M
( One attraction of the linear response function is that it is scale-) s
5 478 M
( invariant, with a fixed increase in the congestion window per) s
5 467 M
( acknowledgement, and a fixed number of round-trip times between loss) s
5 456 M
( events. My own assumption would be that having a fixed length for) s
5 445 M
( the congestion epoch in round-trip times, regardless of the packet) s
5 434 M
( drop rate, would be a poor fit for an imprecise and imperfect world) s
5 423 M
( with routers with a range of queue management mechanisms, such as the) s
5 412 M
( Drop-Tail queue management that is common today. For example, a) s
5 401 M
( response function with a fixed length for the congestion epoch in) s
5 390 M
( round-trip times might give less clearly-differentiated feedback in) s
5 379 M
( an environment with steady-state background losses at fixed intervals) s
5 368 M
( for all flows \(as might occur with a wireless link with occasional) s
5 357 M
( short error bursts, giving losses for all flows every N seconds) s
5 346 M
( regardless of their sending rate\).) s
5 324 M
( While it is not a goal to have perfect fairness in an environment) s
5 313 M
( with synchronized losses, it would be good to have moderately) s
5 302 M
( acceptable performance in this regime. This goal might argue against) s
5 291 M
( a response function with a constant number of round-trip times) s
5 280 M
( between congestion events. However, this is a question that could) s
5 269 M
( clearly use additional research and investigation. In addition,) s
5 258 M
( flows with different round-trip times would have different time) s
5 247 M
( durations for congestion epochs even in the model with a linear) s
5 236 M
( response function.) s
5 214 M
( The third column of Table 8, the Aggregate Window, gives the) s
5 203 M
( aggregate congestion window of two competing TCP connections, one) s
5 192 M
( with Linear HighSpeed TCP and one with Standard TCP, given the packet) s
5 181 M
( drop rate specified in the first column. From Table 8, a Linear) s
5 170 M
( HighSpeed TCP connection would receive fifteen times the bandwidth of) s
5 159 M
( a Standard TCP in an environment with a packet drop rate of 10^-5.) s
5 148 M
( This would occur when the two flows sharing a single pipe achieved an) s
5 104 M
(Floyd Experimental [Page 15]) s
_R
S
%%Page: (16) 16
%%BeginPageSetup
_S
24 24 translate
/pagenum 16 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( aggregate window of 4179 packets. Given a round-trip time of 100 ms) s
5 654 M
( and a packet size of 1500 bytes, this would occur with an available) s
5 643 M
( bandwidth for the two competing flows of 501 Mbps. Thus, because the) s
5 632 M
( Linear HighSpeed TCP is more aggressive than the HighSpeed TCP) s
5 621 M
( proposed above, it also is less fair when competing with Standard TCP) s
5 610 M
( in a high-bandwidth environment.) s
5 588 M
(9. Tradeoffs for Choosing Congestion Control Parameters.) s
5 566 M
( A range of metrics can be used for evaluating choices for congestion) s
5 555 M
( control parameters for HighSpeed TCP. My assumption in this section) s
5 544 M
( is that for a response function of the form w = c/p^d, for constant c) s
5 533 M
( and exponent d, the only response functions that would be considered) s
5 522 M
( are response functions with 1/2 <= d <= 1. The two ends of this) s
5 511 M
( spectrum are represented by current TCP, with d = 1/2, and by the) s
5 500 M
( linear response function described in Section 8 above, with d = 1.) s
5 489 M
( HighSpeed TCP lies somewhere in the middle of the spectrum, with d =) s
5 478 M
( 0.835.) s
5 456 M
( Response functions with exponents less than 1/2 can be eliminated) s
5 445 M
( from consideration because they would be even worse than standard TCP) s
5 434 M
( in accomodating connections with high congestion windows.) s
5 412 M
(9.1. The Number of Round-Trip Times between Loss Events.) s
5 390 M
( Response functions with exponents greater than 1 can be eliminated) s
5 379 M
( from consideration because for these response functions, the number) s
5 368 M
( of round-trip times between loss events decreases as congestion) s
5 357 M
( decreases. For a response function of w = c/p^d, with one loss event) s
5 346 M
( or congestion event every 1/p packets, the number of round-trip times) s
5 335 M
( between loss events is w^\(\(1/d\)-1\)/c^\(1/d\). Thus, for standard TCP) s
5 324 M
( the number of round-trip times between loss events is linear in w.) s
5 313 M
( In contrast, one attraction of the linear response function, as) s
5 302 M
( described in Section 8 above, is that it is scale-invariant, in terms) s
5 291 M
( of a fixed increase in the congestion window per acknowledgement, and) s
5 280 M
( a fixed number of round-trip times between loss events.) s
5 258 M
( However, for a response function with d > 1, the number of round-trip) s
5 247 M
( times between loss events would be proportional to w^\(\(1/d\)-1\), for a) s
5 236 M
( negative exponent \(\(1/d\)-1\), setting smaller as w increases. This) s
5 225 M
( would seem undesirable.) s
5 203 M
(9.2. The Number of Packet Drops per Loss Event, with Drop-Tail.) s
5 181 M
( A TCP connection increases its sending rate by a\(w\) packets per) s
5 170 M
( round-trip time, and in a Drop-Tail environment, this is likely to) s
5 159 M
( result in a\(w\) dropped packets during a single loss event. One) s
5 148 M
( attraction of standard TCP is that it has a fixed increase per round-) s
5 104 M
(Floyd Experimental [Page 16]) s
_R
S
%%Page: (17) 17
%%BeginPageSetup
_S
24 24 translate
/pagenum 17 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( trip time of one packet, minimizing the number of packets that would) s
5 654 M
( be dropped in a Drop-Tail environment. For an environment with some) s
5 643 M
( form of Active Queue Management, and in particular for an environment) s
5 632 M
( that uses ECN, the number of packets dropped in a single congestion) s
5 621 M
( event would not be a problem. However, even in these environments,) s
5 610 M
( larger increases in the sending rate per round-trip time result in) s
5 599 M
( larger stresses on the ability of the queues in the router to absorb) s
5 588 M
( the fluctuations.) s
5 566 M
( HighSpeed TCP plays a middle ground between the metrics of a moderate) s
5 555 M
( number of round-trip times between loss events, and a moderate) s
5 544 M
( increase in the sending rate per round-trip time. As shown in) s
5 533 M
( Appendix B, for a congestion window of 83,000 packets, HighSpeed TCP) s
5 522 M
( increases its sending rate by 70 packets per round-trip time,) s
5 511 M
( resulting in roughly 70 packet drops for each congestion event in a) s
5 500 M
( Drop-Tail environment. This increased aggressiveness is the price) s
5 489 M
( paid by HighSpeed TCP for its increased scalability. A large number) s
5 478 M
( of packets dropped per congestion event could result in synchronized) s
5 467 M
( drops from multiple flows, with a possible loss of throughput as a) s
5 456 M
( result.) s
5 434 M
( Scalable TCP has an increase a\(w\) of 0.005 w packets per round-trip) s
5 423 M
( time. For a congestion window of 83,000 packets, this gives an) s
5 412 M
( increase of 415 packets per round-trip time, resulting in roughly 415) s
5 401 M
( packet drops per congestion event in a Drop-Tail environment.) s
5 379 M
( Thus, HighSpeed TCP and its variants place increased demands on queue) s
5 368 M
( management in routers, relative to Standard TCP. \(This is rather) s
5 357 M
( similar to the increased demands on queue management that would) s
5 346 M
( result from using N parallel TCP connections instead of a single) s
5 335 M
( Standard TCP connection.\)) s
5 313 M
(10. Slow-Start.) s
5 291 M
( An companion internet-draft on "Limited Slow-Start for TCP with Large) s
5 280 M
( Congestion Windows" [F02b] proposes a modification to TCP's slow-) s
5 269 M
( start procedure that can significantly improve the performance of TCP) s
5 258 M
( connections slow-starting up to large congestion windows. For TCP) s
5 247 M
( connections that are able to use congestion windows of thousands \(or) s
5 236 M
( tens of thousands\) of MSS-sized segments \(for MSS the sender's) s
5 225 M
( MAXIMUM SEGMENT SIZE\), the current slow-start procedure can result in) s
5 214 M
( increasing the congestion window by thousands of segments in a single) s
5 203 M
( round-trip time. Such an increase can easily result in thousands of) s
5 192 M
( packets being dropped in one round-trip time. This is often counter-) s
5 181 M
( productive for the TCP flow itself, and is also hard on the rest of) s
5 170 M
( the traffic sharing the congested link.) s
5 148 M
( [F02b] proposes Limited Slow-Start, limiting the number of segments) s
5 104 M
(Floyd Experimental [Page 17]) s
_R
S
%%Page: (18) 18
%%BeginPageSetup
_S
24 24 translate
/pagenum 18 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( by which the congestion window is increased for one window of data) s
5 654 M
( during slow-start, in order to improve performance for TCP) s
5 643 M
( connections with large congestion windows. We have separated out) s
5 632 M
( Limited Slow-Start to a separate draft because it can be used both) s
5 621 M
( with Standard or with HighSpeed TCP.) s
5 599 M
( Limited Slow-Start is illustrated in the NS simulator, for snapshots) s
5 588 M
( after May 1, 2002, in the tests "./test-all-tcpHighspeed tcp1A" and) s
5 577 M
( "./test-all-tcpHighspeed tcpHighspeed1" in the subdirectory) s
5 566 M
( "tcl/lib".) s
5 544 M
( In order for best-effort flows to safely start-up faster than slow-) s
5 533 M
( start, e.g., in future high-bandwidth networks, we believe that it) s
5 522 M
( would be necessary for the flow to have explicit feedback from the) s
5 511 M
( routers along the path. There are a number of proposals for this,) s
5 500 M
( ranging from a minimal proposal for an IP option that allows TCP SYN) s
5 489 M
( packets to collect information from routers along the path about the) s
5 478 M
( allowed initial sending rate [J02], to proposals with more power that) s
5 467 M
( require more fine-tuned and continuous feedback from routers. These) s
5 456 M
( proposals all are somewhat longer-term proposals that the HighSpeed) s
5 445 M
( TCP proposal in this document, requiring longer lead times and more) s
5 434 M
( coordination for deployment, and will be discussed in later) s
5 423 M
( documents.) s
5 401 M
(11. Other limitations on window size.) s
5 379 M
( The TCP header uses a 16-bit field to report the receive window size) s
5 368 M
( to the sender. Unmodified, this allows a window size of at most) s
5 357 M
( 2**16 = 65K bytes. With window scaling, the maximum window size is) s
5 346 M
( 2**30 = 1073M bytes [RFC 1323]. Given 1500-byte packets, this allows) s
5 335 M
( a window of up to 715,000 packets.) s
5 313 M
(12. Related Work in HighSpeed TCP.) s
5 291 M
( HighSpeed TCP has been separately investigated in simulations by) s
5 280 M
( Sylvia Ratnasamy and by Evandro de Souza, and reports of some of) s
5 269 M
( these simulations should be available shortly. The simulations by) s
5 258 M
( Evandro verify the fairness properties of HighSpeed TCP when sharing) s
5 247 M
( a link with Standard TCP.) s
5 225 M
( These simulations explore the relative fairness of HighSpeed TCP) s
5 214 M
( flows when competing with Standard TCP. The simulation environment) s
5 203 M
( include background forward and reverse-path TCP traffic limited by) s
5 192 M
( the TCP receive window, along with a small amount of forward and) s
5 181 M
( reverse-path traffic from the web traffic generator. Most of the) s
5 170 M
( simulations so far explore performance on a simple dumbbell topology) s
5 159 M
( with a 1Gbps link with a propagation delay of 50 ms. Simulations) s
5 148 M
( have been run both the Adaptive RED and with DropTail queue) s
5 104 M
(Floyd Experimental [Page 18]) s
_R
S
%%Page: (19) 19
%%BeginPageSetup
_S
24 24 translate
/pagenum 19 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( management.) s
5 643 M
( Future work to explore in more detail includes convergence times) s
5 632 M
( after new flows start-up; recovery time after a transient outage; the) s
5 621 M
( response to sudden severe congestion, and investigations of the) s
5 610 M
( potential for oscillations. Additional future work includes) s
5 599 M
( evaluating more fully the choices of parameters for HighSpeed TCP.) s
5 588 M
( We invite contributions from others in this work.) s
5 566 M
( Suggestions to other citations of related work would also be welcome.) s
5 544 M
(13. Relationship to other Work.) s
5 522 M
( Our assumption is that HighSpeed TCP will be used along with the TCP) s
5 511 M
( SACK option, and also with the increased Initial Window of three or) s
5 500 M
( four segments, as allowed by [AFP02]. For paths that have) s
5 489 M
( substantial reordering, TCP performance would be greatly improved by) s
5 478 M
( some of the mechanisms still in the research stages for robust) s
5 467 M
( performance in the presence of reordered packets.) s
5 445 M
( Our view is that HighSpeed TCP is largely orthogonal to proposals for) s
5 434 M
( higher PMTU \(Path MTU\) values [M02]. Unlike changes to the PMTU,) s
5 423 M
( HighSpeed TCP does not require any changes in the network or at the) s
5 412 M
( TCP receiver, and works well in the current Internet. Our assumption) s
5 401 M
( is that HighSpeed TCP would be useful even with larger values for the) s
5 390 M
( PMTU. In particular, unlike the current congestion window, the PMTU) s
5 379 M
( gives no information about the bandwidth-delay product available to) s
5 368 M
( that particular flow.) s
5 346 M
( A related approach is that of a virtual MTU, where the actual MTU of) s
5 335 M
( the path might be limited [VMSS,S02]. The virtual MTU approach has) s
5 324 M
( not been fully investigated, and we do not explore the virtual MTU) s
5 313 M
( approach further in this document.) s
5 291 M
(14. Conclusions.) s
5 269 M
( This is an initial proposal, and we are asking from feedback from the) s
5 258 M
( wider community. We have explored this proposal in simulations,) s
5 247 M
( though we have not yet finished our reports on these simulations. We) s
5 236 M
( would welcome additional analysis, simulations, and particularly,) s
5 225 M
( experimentation. More information on simuations and experiments is) s
5 214 M
( available from the HighSpeed TCP Web Page [HSTCP].) s
5 192 M
( There are three parameters that determine the HighSpeed Response) s
5 181 M
( Function, and an additional parameter that determines HighSpeed TCP's) s
5 170 M
( tradeoffs between increases and decreases using that response) s
5 159 M
( function. We solicit feedback on our setting of these parameters as) s
5 148 M
( well as on other issues.) s
5 104 M
(Floyd Experimental [Page 19]) s
_R
S
%%Page: (20) 20
%%BeginPageSetup
_S
24 24 translate
/pagenum 20 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( We are bringing this proposal to the IETF to be considered as an) s
5 654 M
( Experimental RFC. One reason to bring this to the IETF at this stage) s
5 643 M
( is that HighSpeed TCP proposes a rather significant change in the) s
5 632 M
( underlying TCP response function, and in our view any such change) s
5 621 M
( would have to be globally agreed-upon. It seems advisable to us to) s
5 610 M
( bring such a proposal to the IETF for feedback even in its) s
5 599 M
( preliminary stages.) s
5 577 M
( Another reason to bring this proposal to the IETF is that, while) s
5 566 M
( several people have conducted evaluations of HighSpeed TCP using) s
5 555 M
( simulations, our belief is that the "real" evaluations will have to) s
5 544 M
( happen in experiments and in actual deployment. As part of this) s
5 533 M
( experimentation, HighSpeed TCP has been implemented in the Linux) s
5 522 M
( 2.4.16 Web100 kernel [HSTCP]. It seemed to us that it was advisable,) s
5 511 M
( at this stage, to bring the proposal for HighSpeed TCP to the IETF) s
5 500 M
( and to seek Experimental status.) s
5 478 M
(15. Acknowledgements) s
5 456 M
( The HighSpeed TCP proposal is from joint work with Sylvia Ratnasamy) s
5 445 M
( and Scott Shenker \(and was initiated by Scott Shenker\). Additional) s
5 434 M
( investigations of HighSpeed TCP were joint work with Evandro de Souza) s
5 423 M
( and Deb Agarwal. We thank Tom Dunigan for the implementation in the) s
5 412 M
( Linux 2.4.16 Web100 kernel, and for resulting experimentation with) s
5 401 M
( HighSpeed TCP. We are grateful to the End-to-End Research Group, the) s
5 390 M
( members of the Transport Area Working Group, and to members of the) s
5 379 M
( IPAM program in Large Scale Communication Networks for feedback. We) s
5 368 M
( thank Glenn Vinnicombe for framing the Linear response function in) s
5 357 M
( the parameters of HighSpeed TCP. We are also grateful for) s
5 346 M
( contributions and feedback from the following individuals: Tom Kelly,) s
5 335 M
( Jitendra Padhye, Stanislav Shalunov, Paul Sutter, Brian Tierney, Joe) s
5 324 M
( Touch. Thanks to Jeffrey Hsu and Andrew Reiter for feedback on) s
5 313 M
( earlier versions of this document.) s
5 291 M
(16. Normative References) s
5 269 M
( [RFC2581] M. Allman and V. Paxson, "TCP Congestion Control", RFC) s
5 258 M
( 2581, April 1999.) s
5 236 M
(17. Informative References) s
5 214 M
( [AFP02] Allman, M., Floyd, S., and Partridge, C., "Increasing TCP's) s
5 203 M
( Initial Window", internet-draft draft-ietf-tsvwg-initwin-04.txt,) s
5 192 M
( work-in-progress, June 2002.) s
5 170 M
( [BBFS01] Deepak Bansal, Hari Balakrishnan, Sally Floyd, and Scott) s
5 159 M
( Shenker, "Dynamic Behavior of Slowly-Responsive Congestion Control) s
5 148 M
( Algorithms", SIGCOMM 2001, August 2001.) s
5 104 M
(Floyd Experimental [Page 20]) s
_R
S
%%Page: (21) 21
%%BeginPageSetup
_S
24 24 translate
/pagenum 21 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( [CJ89] D. Chiu and R. Jain, "Analysis of the Increase and Decrease) s
5 654 M
( Algorithms for Congestion Avoidance in Computer Networks", Computer) s
5 643 M
( Networks and ISDN Systems, Vol. 17, pp. 1-14, 1989.) s
5 621 M
( [CO98] J. Crowcroft and P. Oechslin, "Differentiated end-to-end) s
5 610 M
( services using a weighted proportional fair share TCP", Computer) s
5 599 M
( Communication Review, 28\(3\):53--69, 1998.) s
5 577 M
( [FF98] Floyd, S., and Fall, K., "Promoting the Use of End-to-End) s
5 566 M
( Congestion Control in the Internet", IEEE/ACM Transactions on) s
5 555 M
( Networking, August 1999.) s
5 533 M
( [FRS02] Sally Floyd, Sylvia Ratnasamy, and Scott Shenker, "Modifying) s
5 522 M
( TCP's Congestion Control for High Speeds", May 2002. URL) s
5 511 M
( "http://www.icir.org/floyd/notes.html".) s
5 489 M
( [GRK99] Panos Gevros, Fulvio Risso and Peter Kirstein, "Analysis of a) s
5 478 M
( Method for Differential TCP Service" In Proceedings of the IEEE) s
5 467 M
( GLOBECOM'99, Symposium on Global Internet , December 1999, Rio de) s
5 456 M
( Janeiro, Brazil.) s
5 434 M
( [GV02] S. Gorinsky and H. Vin, "Extended Analysis of Binary) s
5 423 M
( Adjustment Algorithms", Technical Report TR2002-39, Department of) s
5 412 M
( Computer Sciences, The University of Texas at Austin, August 2002.) s
5 401 M
( URL "http://www.cs.utexas.edu/users/gorinsky/pubs.html".) s
5 379 M
( [HSTCP] HighSpeed TCP Web Page, URL) s
5 368 M
( "http://www.icir.org/floyd/hstcp.html".) s
5 346 M
( [J02] Amit Jain and Sally Floyd, "Quick-Start for TCP and IP",) s
5 335 M
( internet draft draft-amit-quick-start-00.txt, work in progress, 2002.) s
5 313 M
( [K03] Tom Kelly, "Scalable TCP: Improving Performance in HighSpeed) s
5 302 M
( Wide Area Networks", February 2003. URL "http://www-) s
5 291 M
( lce.eng.cam.ac.uk/~ctk21/scalable/".) s
5 269 M
( [M02] Matt Mathis, "Raising the Internet MTU", Web Page, URL) s
5 258 M
( "http://www.psc.edu/~mathis/MTU/".) s
5 236 M
( [RFC 1323] V. Jacobson, R. Braden, and D. Borman, TCP Extensions for) s
5 225 M
( High Performance, RFC 1323, May 1992.) s
5 203 M
( [S02] Stanislav Shalunov, TCP Armonk, draft, 2002, URL) s
5 192 M
( "http://www.internet2.edu/~shalunov/tcpar/".) s
5 170 M
( [TFRC] Mark Handley, Jitendra Padhye, Sally Floyd, and Joerg Widmer,) s
5 159 M
( TCP Friendly Rate Control \(TFRC\): Protocol Specification, internet) s
5 148 M
( draft draft-ietf-tsvwg-tfrc-04.txt, work in progress, 2002.) s
5 104 M
(Floyd Experimental [Page 21]) s
_R
S
%%Page: (22) 22
%%BeginPageSetup
_S
24 24 translate
/pagenum 22 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( [VMSS] "Web100 at ORNL", Web Page,) s
5 654 M
( "http://www.csm.ornl.gov/~dunigan/netperf/web100.html".) s
5 632 M
(18. Security Considerations) s
5 610 M
( This proposal makes no changes to the underlying security of TCP.) s
5 588 M
(19. IANA Considerations) s
5 566 M
( There are no IANA considerations regarding this document.) s
5 544 M
(A. TCP's Loss Event Rate in Steady-State) s
5 522 M
( This section gives the number of round-trip times between congestion) s
5 511 M
( events for a TCP flow with D-byte packets, for D=1500, as a function) s
5 500 M
( of the connection's average throughput B in bps. To achieve this) s
5 489 M
( average throughput B, a TCP connection with round-trip time R in) s
5 478 M
( seconds requires an average congestion window w of BR/\(8D\) segments.) s
5 456 M
( In steady-state, TCP's average congestion window w is roughly) s
5 445 M
( 1.2/sqrt\(p\) segments. This is equivalent to a lost event at most) s
5 434 M
( once every 1/p packets, or at most once every 1/\(pw\) = w/1.5 round-) s
5 423 M
( trip times. Substituting for w, this is a loss event at most every) s
5 412 M
( \(BR\)/12D\)round-trip times.) s
5 390 M
( An an example, for R = 0.1 seconds and D = 1500 bytes, this gives) s
5 379 M
( B/180000 round-trip times between loss events.) s
5 357 M
(B. A table for a\(w\) and b\(w\).) s
5 335 M
( This section gives a table for the increase and decrease parameters) s
5 324 M
( a\(w\) and b\(w\) for HighSpeed TCP, for the default values of Low_Window) s
5 313 M
( = 38, High_Window = 83000, High_P = 10^-7, and High_Decrease = 0.1.) s
5 104 M
(Floyd Experimental [Page 22]) s
_R
S
%%Page: (23) 23
%%BeginPageSetup
_S
24 24 translate
/pagenum 23 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( w a\(w\) b\(w\)) s
5 654 M
( ---- ---- ----) s
5 643 M
( 38 1 0.50) s
5 632 M
( 118 2 0.44) s
5 621 M
( 221 3 0.41) s
5 610 M
( 347 4 0.38) s
5 599 M
( 495 5 0.37) s
5 588 M
( 663 6 0.35) s
5 577 M
( 851 7 0.34) s
5 566 M
( 1058 8 0.33) s
5 555 M
( 1284 9 0.32) s
5 544 M
( 1529 10 0.31) s
5 533 M
( 1793 11 0.30) s
5 522 M
( 2076 12 0.29) s
5 511 M
( 2378 13 0.28) s
5 500 M
( 2699 14 0.28) s
5 489 M
( 3039 15 0.27) s
5 478 M
( 3399 16 0.27) s
5 467 M
( 3778 17 0.26) s
5 456 M
( 4177 18 0.26) s
5 445 M
( 4596 19 0.25) s
5 434 M
( 5036 20 0.25) s
5 423 M
( 5497 21 0.24) s
5 412 M
( 5979 22 0.24) s
5 401 M
( 6483 23 0.23) s
5 390 M
( 7009 24 0.23) s
5 379 M
( 7558 25 0.22) s
5 368 M
( 8130 26 0.22) s
5 357 M
( 8726 27 0.22) s
5 346 M
( 9346 28 0.21) s
5 335 M
( 9991 29 0.21) s
5 324 M
( 10661 30 0.21) s
5 313 M
( 11358 31 0.20) s
5 302 M
( 12082 32 0.20) s
5 291 M
( 12834 33 0.20) s
5 280 M
( 13614 34 0.19) s
5 269 M
( 14424 35 0.19) s
5 258 M
( 15265 36 0.19) s
5 247 M
( 16137 37 0.19) s
5 236 M
( 17042 38 0.18) s
5 225 M
( 17981 39 0.18) s
5 214 M
( 18955 40 0.18) s
5 203 M
( 19965 41 0.17) s
5 192 M
( 21013 42 0.17) s
5 181 M
( 22101 43 0.17) s
5 170 M
( 23230 44 0.17) s
5 159 M
( 24402 45 0.16) s
5 148 M
( 25618 46 0.16) s
5 104 M
(Floyd Experimental [Page 23]) s
_R
S
%%Page: (24) 24
%%BeginPageSetup
_S
24 24 translate
/pagenum 24 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( 26881 47 0.16) s
5 654 M
( 28193 48 0.16) s
5 643 M
( 29557 49 0.15) s
5 632 M
( 30975 50 0.15) s
5 621 M
( 32450 51 0.15) s
5 610 M
( 33986 52 0.15) s
5 599 M
( 35586 53 0.14) s
5 588 M
( 37253 54 0.14) s
5 577 M
( 38992 55 0.14) s
5 566 M
( 40808 56 0.14) s
5 555 M
( 42707 57 0.13) s
5 544 M
( 44694 58 0.13) s
5 533 M
( 46776 59 0.13) s
5 522 M
( 48961 60 0.13) s
5 511 M
( 51258 61 0.13) s
5 500 M
( 53677 62 0.12) s
5 489 M
( 56230 63 0.12) s
5 478 M
( 58932 64 0.12) s
5 467 M
( 61799 65 0.12) s
5 456 M
( 64851 66 0.11) s
5 445 M
( 68113 67 0.11) s
5 434 M
( 71617 68 0.11) s
5 423 M
( 75401 69 0.10) s
5 412 M
( 79517 70 0.10) s
5 401 M
( 84035 71 0.10) s
5 390 M
( 89053 72 0.10) s
5 379 M
( 94717 73 0.09) s
5 357 M
( Table 9: Parameters for HighSpeed TCP.) s
5 335 M
( This table was computed with the following Perl program:) s
5 104 M
(Floyd Experimental [Page 24]) s
_R
S
%%Page: (25) 25
%%BeginPageSetup
_S
24 24 translate
/pagenum 25 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( $top = 100000;) s
5 654 M
( $num = 38;) s
5 643 M
( if \($num == 38\) {) s
5 632 M
( print " w a\(w\) b\(w\)\\n";) s
5 621 M
( print " ---- ---- ----\\n";) s
5 610 M
( print " 38 1 0.50\\n";) s
5 599 M
( $oldb = 0.50;) s
5 588 M
( $olda = 1;) s
5 577 M
( }) s
5 566 M
( while \($num < $top\) {) s
5 555 M
( $bw = \(0.1 -0.5\)*\(log\($num\)-log\(38\)\)/\(log\(83000\)-log\(38\)\)+0.5;) s
5 544 M
( $aw = \($num**2*2.0*$bw\) / \(\(2.0-$bw\)*$num**1.2*12.8\);) s
5 533 M
( if \($aw > $olda + 1\) {) s
5 522 M
( printf "%6d %5d %3.2f0, $num, $aw, $bw;) s
5 511 M
( $olda = $aw;) s
5 500 M
( }) s
5 489 M
( $num ++;) s
5 478 M
( }) s
5 456 M
( Table 10: Perl Program for computing parameters for HighSpeed TCP.) s
5 434 M
(C. Exploring the time to converge to fairness.) s
5 412 M
( This section gives the Perl program used to compute the congestion) s
5 401 M
( window growth during congestion avoidance.) s
5 104 M
(Floyd Experimental [Page 25]) s
_R
S
%%Page: (26) 26
%%BeginPageSetup
_S
24 24 translate
/pagenum 26 def
/fname (draft-floyd-tcp-highspeed-02.txt) def
/fdir () def
/ftail (draft-floyd-tcp-highspeed-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-floyd-tcp-highspeed-02 February 2003) s
5 665 M
( $top = 2001;) s
5 654 M
( $hswin = 1;) s
5 643 M
( $regwin = 1;) s
5 632 M
( $rtt = 1;) s
5 621 M
( $lastrtt = 0;) s
5 610 M
( $rttstep = 100;) s
5 599 M
( if \($hswin == 1\) {) s
5 588 M
( print " RTT HS_Window Standard_TCP_Window0;) s
5 577 M
( print " --- --------- -------------------0;) s
5 566 M
( }) s
5 555 M
( while \($rtt < $top\) {) s
5 544 M
( $bw = \(0.1 -0.5\)*\(log\($hswin\)-log\(38\)\)/\(log\(83000\)-log\(38\)\)+0.5;) s
5 533 M
( $aw = \($hswin**2*2.0*$bw\) / \(\(2.0-$bw\)*$hswin**1.2*12.8\);) s
5 522 M
( if \($aw < 1\) {) s
5 511 M
( $aw = 1;) s
5 500 M
( }) s
5 489 M
( if \($rtt >= $lastrtt + $rttstep\) {) s
5 478 M
( printf "%5d %9d %10d0, $rtt, $hswin, $regwin;) s
5 467 M
( $lastrtt = $rtt;) s
5 456 M
( }) s
5 445 M
( $hswin += $aw;) s
5 434 M
( $regwin += 1;) s
5 423 M
( $rtt ++;) s
5 412 M
( }) s
5 390 M
( Table 11: Perl Program for computing the window in congestion) s
5 379 M
( avoidance.) s
5 357 M
( AUTHORS' ADDRESSES) s
5 324 M
( Sally Floyd) s
5 313 M
( Phone: +1 \(510\) 666-2989) s
5 302 M
( ICIR \(ICSI Center for Internet Research\)) s
5 291 M
( Email: floyd@icir.org) s
5 280 M
( URL: http://www.icir.org/floyd/) s
5 258 M
( This draft was created in August 2002.) s
5 104 M
(Floyd Experimental [Page 26]) s
_R
S
%%Trailer
%%Pages: 26
%%DocumentNeededResources: font Courier-Bold Courier
%%EOF
| PAFTECH AB 2003-2026 | 2026-04-22 22:38:43 |