One document matched: draft-amit-quick-start-03.ps
%!PS-Adobe-3.0
%%BoundingBox: 24 24 588 768
%%Title: Enscript Output
%%For: Sally Floyd
%%Creator: GNU enscript 1.6.1
%%CreationDate: Sat Sep 25 10:36:32 2004
%%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 (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 731 M
(Internet Engineering Task Force A. Jain) s
5 720 M
(INTERNET-DRAFT F5 Networks) s
5 709 M
(draft-amit-quick-start-03.txt S. Floyd) s
5 698 M
(Expires: March 2005 M. Allman) s
5 687 M
( ICIR) s
5 676 M
( P. Sarolahti) s
5 665 M
( Nokia / Univ. Helsinki) s
5 654 M
( 25 September 2004) s
5 621 M
( Quick-Start for TCP and IP) s
5 588 M
(Status of this Memo) s
5 566 M
( By submitting this Internet-Draft, we certify that any applicable) s
5 555 M
( patent or other IPR claims of which we are aware have been) s
5 544 M
( disclosed, or will be disclosed, and any of which we become aware) s
5 533 M
( will be disclosed, in accordance with RFC 3668 \(BCP 79\).) s
5 511 M
( By submitting this Internet-Draft, we accept the provisions of) s
5 500 M
( Section 3 of RFC 3667 \(BCP 78\).) s
5 478 M
( Internet-Drafts are working documents of the Internet Engineering) s
5 467 M
( Task Force \(IETF\), its areas, and its working groups. Note that) s
5 456 M
( other groups may also distribute working documents as Internet-) s
5 445 M
( Drafts.) s
5 423 M
( Internet-Drafts are draft documents valid for a maximum of six) s
5 412 M
( months and may be updated, replaced, or obsoleted by other documents) s
5 401 M
( at any time. It is inappropriate to use Internet- Drafts as) s
5 390 M
( reference material or to cite them other than as "work in progress.") s
5 368 M
( The list of current Internet-Drafts can be accessed at) s
5 357 M
( http://www.ietf.org/ietf/1id-abstracts.txt) s
5 335 M
( The list of Internet-Draft Shadow Directories can be accessed at) s
5 324 M
( http://www.ietf.org/shadow.html.) s
5 302 M
(Abstract) s
5 269 M
( This draft specifies an optional Quick-Start mechanism for transport) s
5 258 M
( protocols, in cooperation with routers, to determine an allowed) s
5 247 M
( sending rate at the start and at times in the middle of a data) s
5 203 M
(Jain/Floyd/Allman/Sarolahti [Page 1]) s
_R
S
%%Page: (2) 2
%%BeginPageSetup
_S
24 24 translate
/pagenum 2 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( transfer. While Quick-Start is designed to be used by a range of) s
5 676 M
( transport protocols, in this document we describe its use with TCP.) s
5 665 M
( By using Quick-Start, a TCP host, say, host A, would indicate its) s
5 654 M
( desired sending rate in bytes per second, using a Quick Start) s
5 643 M
( Request option in the IP header of a TCP packet. A Quick-Start) s
5 632 M
( request for a higher sending rate would be sent in a TCP packet.) s
5 621 M
( Each router along the path could, in turn, either approve the) s
5 610 M
( requested rate, reduce the requested rate, or indicate that the) s
5 599 M
( Quick-Start request is not approved. If the Quick-Start request is) s
5 588 M
( not approved, then the sender would use the default congestion) s
5 577 M
( control mechanisms. The Quick-Start mechanism can determine if) s
5 566 M
( there are routers along the path that do not understand the Quick-) s
5 555 M
( Start Request option, or have not agreed to the Quick-Start rate) s
5 544 M
( request. TCP host B communicates the final rate request to TCP host) s
5 533 M
( A in a transport-level Quick-Start Response in an answering TCP) s
5 522 M
( packet. Quick-Start is designed to allow connections to use higher) s
5 511 M
( sending rates when there is significant unused bandwidth along the) s
5 500 M
( path, and all of the routers along the path support the Quick-Start) s
5 489 M
( Request.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 2]) s
_R
S
%%Page: (3) 3
%%BeginPageSetup
_S
24 24 translate
/pagenum 3 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( TO BE DELETED BY THE RFC EDITOR UPON PUBLICATION:) s
5 665 M
( Changes from draft-amit-quick-start-02.txt:) s
5 654 M
( * Added a discussion on Using Quick-Start in the Middle of a) s
5 643 M
( Connection. The request would be on the total rate,) s
5 632 M
( not on the additional rate.) s
5 621 M
( * Changed name "Initial Rate" to "Rate Request", and changed) s
5 610 M
( the units from packets per second to bytes per second.) s
5 599 M
( * The following sections are new:) s
5 588 M
( - The Quick-Start Request Option for IPv6) s
5 577 M
( - Quick-Start in IP Tunnels) s
5 566 M
( - When to Use Quick-Start) s
5 555 M
( - TCP: Responding to a Loss of a Quick-Start Packet) s
5 544 M
( - TCP: A Quick-Start Request for a Larger Initial Window) s
5 533 M
( - TCP: A Quick-Start Request after an Idle Period) s
5 522 M
( - The Quick-Start Mechanisms in DCCP and other Transport) s
5 511 M
( Protocols) s
5 500 M
( - Quick-Start with DCCP) s
5 489 M
( - Implementation and Deployment Issues) s
5 478 M
( - Design Decisions) s
5 467 M
( * Added a discussion of Kunniyur's Anti-ECN proposal.) s
5 456 M
( * Added a section on simulations, with a brief discussion of the) s
5 445 M
( simulations by Srikanth Sundarrajan.) s
5 423 M
( Changes from draft-amit-quick-start-01.txt:) s
5 412 M
( * Added a discussion in the related work section about the) s
5 401 M
( possibility of optimistically sending a large initial window,) s
5 390 M
( without explicit permission of routers.) s
5 379 M
( * Added a discussion in the related work section about the) s
5 368 M
( tradeoffs of XCP vs. Quick-Start.) s
5 357 M
( * Added a section on "The Quick-Start Request: Packets or Bytes?") s
5 335 M
( Changes from draft-amit-quick-start-00.txt:) s
5 324 M
( * The addition of a citation to [KHR02].) s
5 313 M
( * The addition of a Related Work section.) s
5 302 M
( * Deleted the QS Nonce, in favor of a random initial value for the) s
5 291 M
( QS TTL.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 3]) s
_R
S
%%Page: (4) 4
%%BeginPageSetup
_S
24 24 translate
/pagenum 4 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Table of Contents) s
5 665 M
( 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 6) s
5 654 M
( 2. Assumptions and General Principles. . . . . . . . . . . . . . 7) s
5 643 M
( 2.1. Overview of Quick-Start. . . . . . . . . . . . . . . . . 8) s
5 632 M
( 3. The Quick-Start Request in IP . . . . . . . . . . . . . . . . 11) s
5 621 M
( 3.1. The Quick-Start Request Option for IPv4. . . . . . . . . 11) s
5 610 M
( 3.2. The Quick-Start Request Option for IPv6. . . . . . . . . 13) s
5 599 M
( 3.3. Processing the Quick-Start Request at) s
5 588 M
( Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . 14) s
5 577 M
( 3.4. Deciding the Permitted Rate Request at a) s
5 566 M
( Router. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15) s
5 555 M
( 3.5. Quick-Start in IP Tunnels. . . . . . . . . . . . . . . . 15) s
5 544 M
( 4. The Quick-Start Mechanisms in TCP . . . . . . . . . . . . . . 17) s
5 533 M
( 4.1. When to Use Quick-Start. . . . . . . . . . . . . . . . . 18) s
5 522 M
( 4.2. The Quick-Start Response Option in the TCP) s
5 511 M
( header. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19) s
5 500 M
( 4.3. TCP: Sending the Quick-Start Response. . . . . . . . . . 20) s
5 489 M
( 4.4. TCP: Receiving and Using the Quick-Start) s
5 478 M
( Response Packet . . . . . . . . . . . . . . . . . . . . . . . 20) s
5 467 M
( 4.5. TCP: Responding to a Loss of a Quick-Start) s
5 456 M
( Packet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21) s
5 445 M
( 4.6. TCP: A Quick-Start Request for a Larger Ini-) s
5 434 M
( tial Window . . . . . . . . . . . . . . . . . . . . . . . . . 22) s
5 423 M
( 4.7. TCP: A Quick-Start Request after an Idle) s
5 412 M
( Period. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24) s
5 401 M
( 4.8. An Example Quick-Start Scenario with TCP . . . . . . . . 25) s
5 390 M
( 5. The Quick-Start Mechanism in other Transport Pro-) s
5 379 M
( tocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25) s
5 368 M
( 5.1. Quick-Start with DCCP. . . . . . . . . . . . . . . . . . 26) s
5 357 M
( 6. Evaluation of Quick-Start . . . . . . . . . . . . . . . . . . 28) s
5 346 M
( 6.1. Benefits of Quick-Start. . . . . . . . . . . . . . . . . 28) s
5 335 M
( 6.2. Costs of Quick-Start . . . . . . . . . . . . . . . . . . 29) s
5 324 M
( 6.3. Protection against Misbehaving Nodes . . . . . . . . . . 30) s
5 313 M
( 6.4. Quick-Start with QoS-enabled Traffic . . . . . . . . . . 33) s
5 302 M
( 6.5. Limitations of Quick-Start . . . . . . . . . . . . . . . 33) s
5 291 M
( 6.6. Simulations with Quick-Start . . . . . . . . . . . . . . 34) s
5 280 M
( 7. Related Work. . . . . . . . . . . . . . . . . . . . . . . . . 34) s
5 269 M
( 7.1. Fast Start-ups without Explicit Information) s
5 258 M
( from Routers. . . . . . . . . . . . . . . . . . . . . . . . . 34) s
5 247 M
( 7.2. Optimistic Sending without Explicit Informa-) s
5 236 M
( tion from Routers . . . . . . . . . . . . . . . . . . . . . . 35) s
5 225 M
( 7.3. Fast Start-ups with other Information from) s
5 214 M
( Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . 36) s
5 203 M
( 7.4. Fast Start-ups with more Fine-Grained Feed-) s
5 192 M
( back from Routers . . . . . . . . . . . . . . . . . . . . . . 37) s
5 181 M
( 8. Implementation and Deployment Issues. . . . . . . . . . . . . 37) s
5 170 M
( 8.1. Implementation Issues for Sending Quick-) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 4]) s
_R
S
%%Page: (5) 5
%%BeginPageSetup
_S
24 24 translate
/pagenum 5 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Start Requests. . . . . . . . . . . . . . . . . . . . . . . . 38) s
5 676 M
( 8.2. Implementation Issues for Processing Quick-) s
5 665 M
( Start Requests. . . . . . . . . . . . . . . . . . . . . . . . 38) s
5 654 M
( 8.3. Possible Deployment Scenarios. . . . . . . . . . . . . . 38) s
5 643 M
( 8.4. Would QuickStart packets take the slow path) s
5 632 M
( in routers? . . . . . . . . . . . . . . . . . . . . . . . . . 39) s
5 621 M
( 8.5. A Comparison with the Deployment Problems of) s
5 610 M
( ECN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40) s
5 599 M
( 9. Security Considerations . . . . . . . . . . . . . . . . . . . 40) s
5 588 M
( 10. Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . 40) s
5 577 M
( 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41) s
5 566 M
( A. Design Decisions. . . . . . . . . . . . . . . . . . . . . . . 41) s
5 555 M
( A.1. Alternate Mechanisms for the Quick-Start) s
5 544 M
( Request: ICMP and RSVP. . . . . . . . . . . . . . . . . . . . 41) s
5 533 M
( A.1.1. ICMP. . . . . . . . . . . . . . . . . . . . . . . . 41) s
5 522 M
( A.1.2. RSVP. . . . . . . . . . . . . . . . . . . . . . . . 42) s
5 511 M
( A.2. Alternate Encoding Functions . . . . . . . . . . . . . . 43) s
5 500 M
( A.3. The Quick-Start Request: Packets or Bytes? . . . . . . . 44) s
5 489 M
( A.4. Quick-Start Semantics: Total Rate or Addi-) s
5 478 M
( tional Rate?. . . . . . . . . . . . . . . . . . . . . . . . . 46) s
5 467 M
( A.5. Alternate Responses to the Loss of a Quick-) s
5 456 M
( Start Packet. . . . . . . . . . . . . . . . . . . . . . . . . 46) s
5 445 M
( A.6. Why Not Include More Functionality?. . . . . . . . . . . 47) s
5 434 M
( A.7. A QuickStart Nonce?. . . . . . . . . . . . . . . . . . . 49) s
5 423 M
( Normative References . . . . . . . . . . . . . . . . . . . . . . 50) s
5 412 M
( Informative References . . . . . . . . . . . . . . . . . . . . . 51) s
5 401 M
( IANA Considerations. . . . . . . . . . . . . . . . . . . . . . . 53) s
5 390 M
( AUTHORS' ADDRESSES . . . . . . . . . . . . . . . . . . . . . . . 54) s
5 379 M
( Full Copyright Statement . . . . . . . . . . . . . . . . . . . . 54) s
5 368 M
( Intellectual Property. . . . . . . . . . . . . . . . . . . . . . 54) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 5]) s
_R
S
%%Page: (6) 6
%%BeginPageSetup
_S
24 24 translate
/pagenum 6 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(1. Introduction) s
5 654 M
( Each TCP connection begins with a question: "What is the appropriate) s
5 643 M
( sending rate for the current network path?" The question is not) s
5 632 M
( answered explicitly for TCP, but each TCP connection determines the) s
5 621 M
( sending rate by probing the network path and altering the congestion) s
5 610 M
( window \(cwnd\) based on perceived congestion. Each connection starts) s
5 599 M
( with a pre-configured initial congestion window \(ICW\). Currently,) s
5 588 M
( TCP allows an initial window of between one and four MSS-sized) s
5 577 M
( segments [RFC2581,RFC3390]. The TCP connection then probes the) s
5 566 M
( network for available bandwidth using the slow-start procedure) s
5 555 M
( [Jac88,RFC2581], doubling cwnd during each congestion-free round-) s
5 544 M
( trip time \(RTT\).) s
5 522 M
( The slow-start algorithm can be time-consuming --- especially over) s
5 511 M
( networks with large bandwidth or long delays. It may take a number) s
5 500 M
( of RTTs in slow-start before the TCP connection begins to fully use) s
5 489 M
( the available bandwidth of the network. For instance, it takes) s
5 478 M
( log_2\(N\) - 2 round-trip times to build cwnd up to N segments,) s
5 467 M
( assuming an initial congestion window of 4 segments. This time in) s
5 456 M
( slow-start is not a problem for large file transfers, where the) s
5 445 M
( slow-start stage is only a fraction of the total transfer time.) s
5 434 M
( However, in the case of moderate-sized web transfers the connection) s
5 423 M
( might carry out its entire transfer in the slow-start phase, taking) s
5 412 M
( many round-trip times, where one or two RTTs might have been) s
5 401 M
( sufficient.) s
5 379 M
( A fair amount of work has already been done to address the issue of) s
5 368 M
( choosing the initial congestion window for TCP, with RFC 3390) s
5 357 M
( allowing an initial window of up to four segments based on the MSS) s
5 346 M
( used by the connection [RFC3390]. Our underlying premise is that) s
5 335 M
( explicit feedback from all of the routers along the path would be) s
5 324 M
( required, in the current architecture, for best-effort connections) s
5 313 M
( to use initial windows significantly larger than those allowed by) s
5 302 M
( [RFC3390], in the absence of other information about the path.) s
5 280 M
( The Congestion Manager [RFC3124] and TCP control block sharing) s
5 269 M
( [RFC2140] both propose sharing congestion information among multiple) s
5 258 M
( TCP connections with the same endpoints. With the Congestion) s
5 247 M
( Manager, a new TCP connection could start with a high initial cwnd) s
5 236 M
( if it was sharing the path and the cwnd with a pre-existing TCP) s
5 225 M
( connection to the same destination that had already obtained a high) s
5 214 M
( congestion window. RFC 2140 discusses ensemble sharing, where an) s
5 203 M
( established connection's congestion window could be `divided up' to) s
5 192 M
( be shared with a new connection to the same host. However, neither) s
5 181 M
( of these approaches addresses the case of a connection to a new) s
5 170 M
( destination, with no existing or recent connection \(and therefore) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 1. [Page 6]) s
_R
S
%%Page: (7) 7
%%BeginPageSetup
_S
24 24 translate
/pagenum 7 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( congestion control state\) to that destination.) s
5 665 M
( Quick-Start would not be the first mechanism for explicit) s
5 654 M
( communication from routers to transport protocols about sending) s
5 643 M
( rates. Explicit Congestion Notification \(ECN\) gives explicit) s
5 632 M
( congestion control feedback from routers to transport protocols,) s
5 621 M
( based on the router detecting congestion before buffer overflow) s
5 610 M
( [RFC3168]. In contrast, routers do not use Quick-Start to get) s
5 599 M
( congestion information, but instead use Quick-Start as an optional) s
5 588 M
( mechanism to give permission to transport protocols to use higher) s
5 577 M
( sending rates, based on the ability of all the routers along the) s
5 566 M
( path to determine if their respective output links are significantly) s
5 555 M
( underutilized.) s
5 522 M
(2. Assumptions and General Principles) s
5 500 M
( This section describes the assumptions and general principles behind) s
5 489 M
( the design of the Quick-Start mechanism.) s
5 467 M
( Assumptions:) s
5 445 M
( * The data transfer in the two directions of a connection traverses) s
5 434 M
( different queues, and possibly even different routers. Thus, any) s
5 423 M
( mechanism for determining the allowed sending rate would have to be) s
5 412 M
( used independently for each direction.) s
5 390 M
( * The path between the two endpoints is relatively stable, such that) s
5 379 M
( the path used by the Quick-Start request is generally the same path) s
5 368 M
( used by the Quick-Start packets one round-trip time later.) s
5 346 M
( * Any new mechanism must be incrementally deployable, and might not) s
5 335 M
( be supported by all of the routers and/or end-hosts. Thus, any new) s
5 324 M
( mechanism must be able to accommodate non-supporting routers or end-) s
5 313 M
( hosts without disturbing the current Internet semantics.) s
5 291 M
( General Principles:) s
5 269 M
( * Our underlying premise is that explicit feedback from all of the) s
5 258 M
( routers along the path would be required, in the current) s
5 247 M
( architecture, for best-effort connections to use initial windows) s
5 236 M
( significantly larger than those allowed by [RFC3390], in the absence) s
5 225 M
( of other information about the path.) s
5 203 M
( * A router should only approve a request for a higher sending rate) s
5 192 M
( if the output link is underutilized. Any other approach will result) s
5 181 M
( in either per-flow state at the router, or the possibility of a) s
5 170 M
( \(possibly transient\) queue at the router.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 2. [Page 7]) s
_R
S
%%Page: (8) 8
%%BeginPageSetup
_S
24 24 translate
/pagenum 8 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( * No per-flow state should be required at the router.) s
5 665 M
( There are also a number of questions regarding the Quick-Start) s
5 654 M
( mechanism that are discussed later in this document.) s
5 632 M
( Open Questions:) s
5 610 M
( * Would the benefits of the Quick-Start mechanism be worth the added) s
5 599 M
( complexity?) s
5 577 M
( The benefits and drawbacks of Quick-Start are discussed in more) s
5 566 M
( detail in Section 6 on "Evaluation of Quick-Start".) s
5 544 M
( * A practical consideration is that packets with known and unknown) s
5 533 M
( IP options are often dropped in the current Internet [MAF04].) s
5 511 M
( This does not preclude using Quick-Start in Intranets. Further,) s
5 500 M
( [MAF04] also shows that over time the blocking of packets) s
5 489 M
( negotiating ECN has dropped, and therefore an incremental deployment) s
5 478 M
( story for Quick-Start based on IP Options is not out of the) s
5 467 M
( question. Appendix A.1 on "Alternate Mechanisms for the Quick-Start) s
5 456 M
( Request" discusses the possibility of using RSVP or ICMP instead of) s
5 445 M
( IP Options for carrying Quick-Start Requests to routers.) s
5 423 M
( * Apart from the merits and shortcomings of the Quick-Start) s
5 412 M
( mechanism, is there likely to be a compelling need to add explicit) s
5 401 M
( congestion-related feedback from routers over and above the one-bit) s
5 390 M
( feedback from ECN?) s
5 368 M
( If the answer to the question above is yes, should we be considering) s
5 357 M
( mechanisms that, while more complex, are also sufficiently more) s
5 346 M
( powerful than Quick-Start? This is discussed further in Appendix) s
5 335 M
( A.6 on "Why Not Include More Functionality".) s
5 302 M
(2.1. Overview of Quick-Start) s
5 280 M
( In this section we give an overview of the use of Quick-Start with) s
5 269 M
( TCP, used to request a higher congestion window. The description in) s
5 258 M
( this section is non-normative; the normative description of Quick-) s
5 247 M
( Start with IP and TCP follows in Sections 3 and 4. Quick-Start can) s
5 236 M
( be used in the middle of a connection, e.g., after an idle or) s
5 225 M
( underutilized period, as well as for the initial sending rate; these) s
5 214 M
( uses of Quick-Start are discussed later in the document.) s
5 192 M
( Quick-Start requires end-points and routers to work together, with) s
5 181 M
( end-points requesting a higher sending rate in the Quick-Start) s
5 170 M
( Request \(QSR\) option in IP, and routers along the path approving,) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 2.1. [Page 8]) s
_R
S
%%Page: (9) 9
%%BeginPageSetup
_S
24 24 translate
/pagenum 9 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( modifying, discarding or ignoring \(and therefore disallowing\) the) s
5 676 M
( Quick-Start Request. The receiver uses reliable, transport-level) s
5 665 M
( mechanisms to inform the sender of the status of the Quick-Start) s
5 654 M
( Request. In addition, Quick-Start assumes a unicast, congestion-) s
5 643 M
( controlled transport protocol; we do not consider the use of Quick-) s
5 632 M
( Start for multicast traffic.) s
5 610 M
( The Quick-Start Request Option includes a request for a sending rate) s
5 599 M
( in bytes per second, and a Quick-Start TTL \(QS TTL\) to be) s
5 588 M
( decremented by every router along the path that understands the) s
5 577 M
( option and approves the request. The Quick-Start TTL is initialized) s
5 566 M
( by the sender to a random value. The transport receiver returns the) s
5 555 M
( rate and information about the TTL to the sender using transport-) s
5 544 M
( level mechanisms. In particular, the receiver computes the) s
5 533 M
( difference between the Quick-Start TTL and the TTL in the IP header) s
5 522 M
( of the Quick-Start request packet, and returns this in the Quick-) s
5 511 M
( Start response. The sender uses this information to determine if) s
5 500 M
( all of the routers along the path decremented the Quick-Start TTL,) s
5 489 M
( approving the Quick-Start Request.) s
5 467 M
( If the request is approved by all of the routers along the path,) s
5 456 M
( then the TCP sender combines this allowed rate with the measurement) s
5 445 M
( of the round-trip time, and ends up with an allowed TCP window.) s
5 434 M
( This window is sent rate-paced over the round-trip time, or until an) s
5 423 M
( ACK packet is received.) s
5 401 M
( Figure 1 shows a successful use of Quick-Start, with both routers) s
5 390 M
( along the path approving the Quick-Start Request. In this example,) s
5 379 M
( Quick-Start is used by TCP to establish the initial congestion) s
5 368 M
( window.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 2.1. [Page 9]) s
_R
S
%%Page: (10) 10
%%BeginPageSetup
_S
24 24 translate
/pagenum 10 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Sender Router 1 Router 2 Receiver) s
5 676 M
( ------ -------- -------- --------) s
5 665 M
( | Quick-Start Request) s
5 654 M
( | in SYN or SYN/ACK -->) s
5 643 M
( |) s
5 632 M
( | Decrement) s
5 621 M
( | QS TTL) s
5 610 M
( | to approve) s
5 599 M
( | request -->) s
5 588 M
( |) s
5 577 M
( | Decrement) s
5 566 M
( | QS TTL) s
5 555 M
( | to approve) s
5 544 M
( | request -->) s
5 533 M
( |) s
5 522 M
( | Return Quick-Start) s
5 511 M
( | info to sender in) s
5 500 M
( | <-- TCP ACK packet.) s
5 489 M
( |) s
5 478 M
( | Quick-Start approved,) s
5 467 M
( | translate to cwnd.) s
5 456 M
( V Send cwnd paced over one RTT. -->) s
5 434 M
( Figure 1: A successful Quick-Start Request.) s
5 401 M
( Figure 2 shows an unsuccessful use of Quick-Start, with one of the) s
5 390 M
( routers along the path not approving the Quick-Start Request. If) s
5 379 M
( the Quick-Start Request is not approved, then the sender uses the) s
5 368 M
( default congestion control mechanisms for that transport protocol,) s
5 357 M
( including the default initial congestion window, response to idle) s
5 346 M
( periods, etc.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 2.1. [Page 10]) s
_R
S
%%Page: (11) 11
%%BeginPageSetup
_S
24 24 translate
/pagenum 11 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Sender Router 1 Router 2 Receiver) s
5 676 M
( ------ -------- -------- --------) s
5 665 M
( | Quick-Start Request) s
5 654 M
( | in SYN or SYN/ACK -->) s
5 643 M
( |) s
5 632 M
( | Decrement) s
5 621 M
( | QS TTL) s
5 610 M
( | to approve) s
5 599 M
( | request -->) s
5 588 M
( |) s
5 577 M
( | Forward packet) s
5 566 M
( | without modifying) s
5 555 M
( | Quick-Start Option. -->) s
5 544 M
( |) s
5 533 M
( | Return Quick-Start) s
5 522 M
( | info to sender in) s
5 511 M
( | <-- TCP ACK packet.) s
5 500 M
( |) s
5 489 M
( | Quick-Start not approved.) s
5 478 M
( V Use default initial cwnd. -->) s
5 456 M
( Figure 2: An unsuccessful Quick-Start Request.) s
5 401 M
(3. The Quick-Start Request in IP) s
5 368 M
(3.1. The Quick-Start Request Option for IPv4) s
5 346 M
( The Quick-Start Request for IPv4 is defined as follows:) s
5 324 M
( 0 1 2 3) s
5 313 M
( +----------+----------+----------+----------+) s
5 302 M
( | Option | Length=4 | QS TTL | Rate |) s
5 291 M
( | | | | Request |) s
5 280 M
( +----------+----------+----------+----------+) s
5 258 M
( Figure 1. The Quick-Start Request Option for IPv4.) s
5 236 M
( The first byte contains the option field, which includes the one-bit) s
5 225 M
( copy flag, the 2-bit class field, and the 5-bit option number \(to be) s
5 214 M
( assigned by IANA\).) s
5 192 M
( The second byte contains the length field, indicating an option) s
5 181 M
( length of four bytes.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 3.1. [Page 11]) s
_R
S
%%Page: (12) 12
%%BeginPageSetup
_S
24 24 translate
/pagenum 12 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( The third byte contains the Quick-Start TTL \(QS TTL\) field. The) s
5 676 M
( sender sets the QS TTL field to a random value. Routers that) s
5 665 M
( approve the Quick-Start Request decrement the QS TTL \(mod 256\). The) s
5 654 M
( QS TTL is used by the sender to detect if all of the routers along) s
5 643 M
( the path understood and approved the Quick-Start option.) s
5 621 M
( The transport sender also calculates and remembers the TTL Diff, the) s
5 610 M
( difference between the IP TTL value and the QS TTL value in the) s
5 599 M
( Quick-Start request packet, as follows:) s
5 577 M
( TTL Diff = \( IP TTL - QS TTL \) mod 256. \(1\)) s
5 555 M
( The fourth byte is the Rate Request field. The sender initializes) s
5 544 M
( the Rate Request to the desired sending rate, including an estimate) s
5 533 M
( of the transport and IP header overhead.) s
5 511 M
( Our current proposal for an encoding function uses only the first) s
5 500 M
( four bits of the fourth byte, leaving the other four bits reserved) s
5 489 M
( for future use. The encoding function sets the request rate to) s
5 478 M
( K*2^N bps, for N the value in the Rate Request field, and for K set) s
5 467 M
( to 40,000. For N=0, the rate request would be set to zero,) s
5 456 M
( regardless of the encoding function. This is illustrated in the) s
5 445 M
( table below. For a four-bit Rate Request field, the request range) s
5 434 M
( would be from 80 Kbps to 1.3 Gbps. Alternate encodings for the Rate) s
5 423 M
( Request are given in Appendix A.2.) s
5 401 M
( N Rate Request \(in Kbps\)) s
5 390 M
( --- -------------------) s
5 379 M
( 0 0) s
5 368 M
( 1 80) s
5 357 M
( 2 160) s
5 346 M
( 3 320) s
5 335 M
( 4 640) s
5 324 M
( 5 1,280) s
5 313 M
( 6 2,560) s
5 302 M
( 7 5,120) s
5 291 M
( 8 10,240) s
5 280 M
( 9 20,480) s
5 269 M
( 10 40,960) s
5 258 M
( 11 81,920) s
5 247 M
( 12 163,840) s
5 236 M
( 13 327,680) s
5 225 M
( 14 655,360) s
5 214 M
( 15 1,310,720) s
5 192 M
( Mapping from the Rate Request field to the rate request in Kbps.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 3.1. [Page 12]) s
_R
S
%%Page: (13) 13
%%BeginPageSetup
_S
24 24 translate
/pagenum 13 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Routers can approve the Quick-Start Request for a lower rate by) s
5 676 M
( decreasing the Rate Request in the Quick-Start Request.) s
5 654 M
( We note that unlike a Quick-Start Request sent at the beginning of a) s
5 643 M
( connection, when a Quick-Start Request is sent in the middle of a) s
5 632 M
( connection, the connection could already have an established) s
5 621 M
( congestion window or sending rate. The Rate Request is the) s
5 610 M
( requested total rate for the connection, including the current rate) s
5 599 M
( of the connection; the Rate Request is *not* a request for an) s
5 588 M
( additional sending rate over and above the current sending rate. If) s
5 577 M
( the Rate Request is denied, or lowered to a value below the) s
5 566 M
( connection's current sending rate, then the sender can ignore the) s
5 555 M
( request, and revert to the default congestion control mechanisms of) s
5 544 M
( the transport protocol.) s
5 522 M
( In IPv4, a change in IP options at routers requires recalculating) s
5 511 M
( the IP header checksum.) s
5 478 M
(3.2. The Quick-Start Request Option for IPv6) s
5 456 M
( The Quick-Start Request Option for IPv6 is placed in the Hop-by-Hop) s
5 445 M
( Options extension header that is processed at every network node) s
5 434 M
( along the communication path [RFC 2460]. The option format following) s
5 423 M
( the generic Hop-by-Hop Options header is similar to the IPv4 format) s
5 412 M
( with the exception that the Length field should exclude the common) s
5 401 M
( type and length fields in the option format and be set to 2.) s
5 379 M
( 0 1 2 3) s
5 368 M
( +----------+----------+----------+----------+) s
5 357 M
( | Option | Length=2 | QS TTL | Rate |) s
5 346 M
( | | | | Request |) s
5 335 M
( +----------+----------+----------+----------+) s
5 313 M
( Figure 2. The Quick-Start Request Option for IPv6.) s
5 291 M
( The transport receiver compares the Quick-Start TTL with the IPv6) s
5 280 M
( Hop Limit field in order to calculate the TTL Diff. \(The Hop Limit) s
5 269 M
( in IPv6 is the equivalent of the TTL in IPv6.\) That is, TTL Diff is) s
5 258 M
( calculated as follows:) s
5 236 M
( TTL Diff = \( IPv6 Hop Limit - QS TTL \) mod 256.) s
5 225 M
( \(1\)) s
5 203 M
( Unlike IPv4, modifying or deleting the Quick-Start Request IPv6) s
5 192 M
( Option does not require checksum re-calculation, because the IPv6) s
5 181 M
( header does not have a checksum field, and modifying the Quick-Start) s
5 170 M
( Request in the IPv6 Hop-by-Hop options header does not affect the) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 3.2. [Page 13]) s
_R
S
%%Page: (14) 14
%%BeginPageSetup
_S
24 24 translate
/pagenum 14 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( IPv6 pseudo-header checksum used in upper-layer checksum) s
5 676 M
( calculations.) s
5 654 M
( Note that [RFC2460] specifies that when a specific flow label has) s
5 643 M
( been assigned to packets, the contents of the Hop-by-Hop options,) s
5 632 M
( excluding the next header field, must originate with the same) s
5 621 M
( contents throughout the IP flow lifetime. This requirement would) s
5 610 M
( have to be modified to implement Quick-Start on an IPv6) s
5 599 M
( implementation that uses flow labels, because the Quick-Start) s
5 588 M
( Request option would be included in only a small fraction of the) s
5 577 M
( packets during a flow lifetime.) s
5 544 M
(3.3. Processing the Quick-Start Request at Routers) s
5 522 M
( Each participating router can either terminate or forward the Quick-) s
5 511 M
( Start Request. The router terminates the Quick-Start Request if the) s
5 500 M
( router is not underutilized, and therefore has decided not to grant) s
5 489 M
( the Quick-Start Request.) s
5 467 M
( The preferable method for a router to terminate the Quick-Start) s
5 456 M
( Request is to delete the Quick-Start Request from the IP header. A) s
5 445 M
( less preferable but possibly more efficient method is to simply) s
5 434 M
( forward the packet with the Quick-Start Request unchanged, or with) s
5 423 M
( the Rate Request set to zero.) s
5 401 M
( If the participating router has decided to approve the Quick-Start) s
5 390 M
( Request, it does the following:) s
5 368 M
( * It decrements the QS TTL by one.) s
5 346 M
( * If the router is only willing to approve an Rate Request less than) s
5 335 M
( that in the Quick-Start Request, then the router puts the smaller) s
5 324 M
( Rate Request in that field of the Quick-Start Request. The router) s
5 313 M
( MUST NOT increase the Rate Request in the Quick-Start Request.) s
5 291 M
( * In IPv4, it updates the IP header checksum.) s
5 269 M
( A non-participating router forwards the Quick-Start Request) s
5 258 M
( unchanged, without decrementing the QS TTL. Of course, the non-) s
5 247 M
( participating router still decrements the TTL field in the IP) s
5 236 M
( header, as is required for all routers [RFC1812]. As a result, the) s
5 225 M
( TCP sender will be able to detect that the Quick-Start Request had) s
5 214 M
( not been understood or approved by all of the routers along the) s
5 203 M
( path.) s
5 181 M
( A router that modifies or deletes the Quick-Start Request in the) s
5 170 M
( IPv4 header also has to update the IPv4 Header checksum. For IPv6,) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 3.3. [Page 14]) s
_R
S
%%Page: (15) 15
%%BeginPageSetup
_S
24 24 translate
/pagenum 15 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( no checksum updates are needed.) s
5 654 M
(3.4. Deciding the Permitted Rate Request at a Router) s
5 632 M
( In this section we briefly outline how a router might decide whether) s
5 621 M
( or not to approve a Quick-Start Request. As an example, the router) s
5 610 M
( could ask the following questions:) s
5 588 M
( * Has the router's output link been underutilized for some time) s
5 577 M
( \(e.g., several seconds\).) s
5 555 M
( * Would the output link remain underutilized if the arrival rate was) s
5 544 M
( to increase by the aggregate rate requests that the router has) s
5 533 M
( approved over the last fraction of a second?) s
5 511 M
( Answering this question requires that the router have some knowledge) s
5 500 M
( of the available bandwidth on the output link for that output queue.) s
5 489 M
( It also requires that the router keep two counters, one indicating) s
5 478 M
( the total aggregate Rate Requests that have been approved over the) s
5 467 M
( recent interval of time, and one for the total aggregate Rate) s
5 456 M
( Requests approved over the previous interval of time. Thus, if an) s
5 445 M
( underutilized router experiences a SYN flood, then the router would) s
5 434 M
( begin to deny Rate Request requests, even if the router remains) s
5 423 M
( underutilized.) s
5 401 M
( * If the router's output link has been underutilized and the) s
5 390 M
( aggregate Quick Start Request Rate options granted is low enough to) s
5 379 M
( prevent a near-term bandwidth shortage, then the router could) s
5 368 M
( approve the Quick-Start Request. The router could allow an Rate) s
5 357 M
( Request that was a small fraction of the available unused bandwidth) s
5 346 M
( of the output link.) s
5 313 M
(3.5. Quick-Start in IP Tunnels) s
5 291 M
( In this section we consider the effect of IP tunnels on Quick-Start.) s
5 280 M
( In the discussion, we use TTL Diff, defined earlier as the) s
5 269 M
( difference between the IP TTL and the Quick-Start TTL, mod 256.) s
5 258 M
( Recall that the sender considers the Quick-Start request approved if) s
5 247 M
( the value of TTL Diff for the packet entering the network is the) s
5 236 M
( same as the value of TTL Diff for the packet exiting the network.) s
5 214 M
( There are two legitimate ways for handling the Quick-Start Request) s
5 203 M
( with IP tunnels:) s
5 181 M
( \(1\) The tunnel ingress node does not support Quick-Start, or does) s
5 170 M
( not approve the Quick-Start request. The node could strip the Quick-) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 3.5. [Page 15]) s
_R
S
%%Page: (16) 16
%%BeginPageSetup
_S
24 24 translate
/pagenum 16 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Start Request option from the IP header before encapsulation.) s
5 676 M
( Alternately, the ingress node can decrement the IP TTL before) s
5 665 M
( encapsulation, while leaving the Quick-Start TTL unchanged, changing) s
5 654 M
( TTL Diff. This is the assumed behavior of current IP tunnels that) s
5 643 M
( are not aware of Quick-Start.) s
5 621 M
( For a tunnel ingress node that does not support Quick-Start,) s
5 610 M
( problems with a Quick-Start Request could still occur if a tunnel) s
5 599 M
( discards the outer header at egress and does not decrement the inner) s
5 588 M
( IP TTL at the ingress. In this case, if both the inner IP TTL and) s
5 577 M
( the Quick-Start TTL are decremented after decapsulation at a Quick-) s
5 566 M
( Start aware egress, or if neither is decremented at the egress, then) s
5 555 M
( TTL Diff would be the same after egress as it was before ingress, so) s
5 544 M
( that it would wrongly appear that all the routers in the tunnel had) s
5 533 M
( approved the Quick-Start request. Fortunately, we are not aware of) s
5 522 M
( tunnel technologies that operate this way; to the best of our) s
5 511 M
( knowledge, all tunnels decrement the IP TTL either at the ingress) s
5 500 M
( before encapsulation, or at the egress router after decapsulation,) s
5 489 M
( thus changing TTL Diff.) s
5 467 M
( Even the extreme case when the tunnel ingress is at the TCP sender) s
5 456 M
( and the tunnel egress is at the TCP receiver, our assumption is that) s
5 445 M
( the IP TTL will be decremented either at the tunnel ingress or at) s
5 434 M
( the tunnel egress, changing TTL Diff and preventing the end-nodes) s
5 423 M
( from wrongly inferring that the Quick-Start Request was approved by) s
5 412 M
( all of the routers along the path. If there are tunnels where the) s
5 401 M
( IP TTL in not decremented, perhaps for PPP over SSH, then additional) s
5 390 M
( attention will have to be paid to the robustness of Quick-Start in) s
5 379 M
( these environments.) s
5 357 M
( A Quick-Start aware egress must also make sure that the Quick-Start) s
5 346 M
( Request is not approved if for some reason the inner header includes) s
5 335 M
( the Quick-Start Request option, but the outer header does not. In) s
5 324 M
( this case the egress node should remove the Quick-Start Request) s
5 313 M
( option from the inner header after decapsulation. Alternately, the) s
5 302 M
( egress node could decrement the Rate Request in the Quick-Start) s
5 291 M
( Request option to zero.) s
5 269 M
( \(2\) The tunnel ingress node may choose to support Quick-Start, and) s
5 258 M
( locally approve the Quick-Start Request. In this case the IP TTL) s
5 247 M
( and Quick-Start option must be copied from the inner IP header to) s
5 236 M
( the outer header at the tunnel ingress. Upon decapsulation, the IP) s
5 225 M
( TTL and the Quick-Start option in the outer IP header must be copied) s
5 214 M
( back to the inner header. If the ingress router decrements the IP) s
5 203 M
( TTL in the inner header before encapsulation, or in the outer header) s
5 192 M
( after encapsulation, then if the ingress router wishes to approve) s
5 181 M
( the Quick-Start request, it must decrement the Quick-Start TTL at) s
5 170 M
( the same time, so as not to change TTL Diff. Similarly, if the) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 3.5. [Page 16]) s
_R
S
%%Page: (17) 17
%%BeginPageSetup
_S
24 24 translate
/pagenum 17 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( egress router wishes to approve the Quick-Start request, then when) s
5 676 M
( it decrements the IP TTL in the outer header before decapsulation,) s
5 665 M
( or in the inner header after decapsulation, it must decrement the) s
5 654 M
( Quick-Start TTL at the same time.) s
5 632 M
( A tunnel ingress node can support a Quick-Start request without) s
5 621 M
( explicitly verifying that the tunnel egress also supports Quick-) s
5 610 M
( Start. All that the ingress node has to do is to decrement the IP) s
5 599 M
( TTL, but not the Quick-Start TTL, in the inner header after) s
5 588 M
( encapsulation. In this case, if the egress node simply discards the) s
5 577 M
( outer header at the egress point, TTL Diff will be different after) s
5 566 M
( the tunnel egress than it was at the tunnel ingress, and the Quick-) s
5 555 M
( Start will not be considered by the end-nodes as having been) s
5 544 M
( approved in the network. Thus, the tunnel ingress node on its own) s
5 533 M
( can provide protection against egress nodes that might discard the) s
5 522 M
( outer header at the egress point.) s
5 489 M
(4. The Quick-Start Mechanisms in TCP) s
5 467 M
( This section describes how the Quick-Start mechanism would be used) s
5 456 M
( in TCP. We first sketch the procedure and then tightly define it in) s
5 445 M
( the subsequent subsections.) s
5 423 M
( If a TCP sender, say host A, would like to use Quick-Start, the TCP) s
5 412 M
( sender puts the requested sending rate in bytes per second,) s
5 401 M
( appropriately formatted, in the Quick-Start Request option in the IP) s
5 390 M
( header of the TCP packet, called the Quick-Start request packet.) s
5 379 M
( \(We will be somewhat loose in our use of "packet" vs. "segment" in) s
5 368 M
( this section.\) For initial start-up, the Quick-Start request packet) s
5 357 M
( can be either the SYN or SYN/ACK packet, as described above. The) s
5 346 M
( requested rate includes an estimate for the transport and IP header) s
5 335 M
( overhead. The TCP receiver, say host B, returns the Quick-Start) s
5 324 M
( Response option in the TCP header in the responding SYN/ACK packet) s
5 313 M
( or ACK packet, called the Quick-Start response packet, informing) s
5 302 M
( host A of the results of their request.) s
5 280 M
( If the acknowledging packet does not contain a Quick-Start Response,) s
5 269 M
( or contains a Quick-Start Response with the wrong value for the TTL) s
5 258 M
( Diff, then host A MUST assume that its Quick-Start request failed.) s
5 247 M
( In this case, host A uses TCP's default congestion control) s
5 236 M
( procedure. For initial start-up, host A uses the default initial) s
5 225 M
( congestion window.) s
5 203 M
( If the returning packet contains a valid Quick-Start Response, then) s
5 192 M
( host A uses the information in the response, along with its) s
5 181 M
( measurement of the round-trip time, to determine the Quick-Start) s
5 170 M
( congestion window \(QS-cwnd\). Quick-Start packets are defined as) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4. [Page 17]) s
_R
S
%%Page: (18) 18
%%BeginPageSetup
_S
24 24 translate
/pagenum 18 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( packets sent as the result of a successful Quick-Start request, up) s
5 676 M
( to the time when the first Quick-Start packet is acknowledged. In) s
5 665 M
( order to use Quick-Start, the TCP host is also required to use rate-) s
5 654 M
( based pacing to pace out Quick-Start packets at the rate indicated) s
5 643 M
( in the Quick-Start Response.) s
5 621 M
( The two TCP end-hosts can independently decide whether to request) s
5 610 M
( Quick-Start. For example, host A could sent a Quick-Start Request) s
5 599 M
( in the SYN packet, and host B could also send a Quick-Start Request) s
5 588 M
( in the SYN/ACK packet.) s
5 555 M
(4.1. When to Use Quick-Start) s
5 533 M
( In addition to the use of Quick-Start when a connection is) s
5 522 M
( established, there are several additional points in a connection) s
5 511 M
( when a transport protocol may want to issue a Rate Request. We) s
5 500 M
( first re-iterate the notion that Quick-Start is a coarse-grained) s
5 489 M
( mechanism. That is, Quick-Start's Rate Requests are not meant to be) s
5 478 M
( used for fine-grained control of the transport's sending rate.) s
5 467 M
( Rather, the transport can issue a Rate Request when no information) s
5 456 M
( about the appropriate sending rate is available, and the default) s
5 445 M
( congestion control mechanisms might be significantly underestimating) s
5 434 M
( the appropriate sending rate.) s
5 412 M
( The following are the potential points where Quick-Start may be) s
5 401 M
( useful:) s
5 368 M
( \(1\) At connection initiation when the transport has no idea of) s
5 357 M
( the capacity of the network, as discussed above. \(A transport) s
5 346 M
( that uses TCP Control Block sharing, the Congestion Manager, or) s
5 335 M
( the like may not need Quick-Start to determine an appropriate) s
5 324 M
( rate.\)) s
5 291 M
( \(2\) After a lengthy idle period when the transport no longer has) s
5 280 M
( a validated estimate of the available bandwidth for this flow.) s
5 247 M
( \(3\) After a host has been explicitly informed that a link in the) s
5 236 M
( path has gone down and has come back up. In this case, the) s
5 225 M
( network has changed in unknown ways and the sender has lost its) s
5 214 M
( validated assessment of the appropriate sending rate.) s
5 181 M
( \(4\) After a host has received explicit indications that one of) s
5 170 M
( the endpoints has moved its point of network attachment. This) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.1. [Page 18]) s
_R
S
%%Page: (19) 19
%%BeginPageSetup
_S
24 24 translate
/pagenum 19 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( can happen due to some underlying mobility mechanism like Mobile) s
5 676 M
( IP [RFC3344,RFC3775]. Some transports, such as SCTP [RFC2960],) s
5 665 M
( may associate with multiple IP addresses and can switch) s
5 654 M
( addresses \(and, therefore network paths\) in mid-connection. If) s
5 643 M
( the transport has concrete knowledge of a changing network path) s
5 632 M
( then the current sending rate may not be appropriate and the) s
5 621 M
( transport sender may use Quick-Start to probe the network for) s
5 610 M
( the appropriate rate at which to send. \(Alternatively,) s
5 599 M
( traditional slow start should be used in this case when Quick-) s
5 588 M
( Start is not available.\)) s
5 555 M
( \(5\) After an application-limited period when the sender has been) s
5 544 M
( using only a small amount of its appropriate share of the) s
5 533 M
( network capacity, and has no valid estimate for its fair share.) s
5 522 M
( In this case, Quick-Start may be an appropriate mechanism to) s
5 511 M
( assess the available capacity on the network path.) s
5 478 M
( Of the above, this document recommends that a TCP MAY attempt to use) s
5 467 M
( Quick-Start in cases \(1\) and \(2\). Cases \(3\) and \(4\) require) s
5 456 M
( external notifications not presently defined for TCP or other) s
5 445 M
( transport protocols. Case \(5\) requires further thought and) s
5 434 M
( investigation with regard to how the transport protocol could detect) s
5 423 M
( it was in a situation that would warrant transmitting a Quick-Start) s
5 412 M
( Rate Request.) s
5 368 M
(4.2. The Quick-Start Response Option in the TCP header) s
5 346 M
( TCP's Quick-Start Response option is defined as follows:) s
5 324 M
( 0 1 2 3) s
5 313 M
( +----------+----------+----------+----------+) s
5 302 M
( | Kind | Length=4 | Rate | TTL |) s
5 291 M
( | | | Request | Diff |) s
5 280 M
( +----------+----------+----------+----------+) s
5 258 M
( Figure 2. The Quick-Start Response option in the TCP header.) s
5 236 M
( The first byte of the Quick-Start Response option contains the) s
5 225 M
( option kind, identifying the TCP option \(to be assigned by IANA\).) s
5 203 M
( The second byte of the Quick-Start Response option contains the) s
5 192 M
( option length in bytes. The length field is set to four bytes.) s
5 170 M
( The third byte of the Quick-Start Response option contains the) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.2. [Page 19]) s
_R
S
%%Page: (20) 20
%%BeginPageSetup
_S
24 24 translate
/pagenum 20 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( allowed Rate Request, formatted as in the Quick-Start Request) s
5 676 M
( option.) s
5 654 M
( The fourth byte of the TCP option contains the TTL Diff. The TTL) s
5 643 M
( Diff contains the difference between the IP TTL and QS TTL fields in) s
5 632 M
( the received Quick-Start request packet, as calculated in equation) s
5 621 M
( \(1\).) s
5 588 M
(4.3. TCP: Sending the Quick-Start Response) s
5 566 M
( An end host, say host B, that receives a TCP packet containing a) s
5 555 M
( Quick-Start Request passes the Quick-Start Request, along with the) s
5 544 M
( value in the IP TTL field, to the receiving TCP layer.) s
5 522 M
( If the TCP host is willing to permit the Quick-Start Request, then a) s
5 511 M
( Quick-Start Response option is included in the TCP header of the) s
5 500 M
( corresponding acknowledgement packet. The Rate Request in the) s
5 489 M
( Quick-Start Response option is set to the received value of the Rate) s
5 478 M
( Request in the Quick-Start Request option, or to a lower value if) s
5 467 M
( the TCP receiver is only willing to allow a lower Rate Request. The) s
5 456 M
( TTL Diff in the Quick-Start Response is set to the difference) s
5 445 M
( between the IP TTL value and the QS TTL value as given in equation) s
5 434 M
( \(1\).) s
5 412 M
( When the Quick-Start Response is being sent on the SYN/ACK, in) s
5 401 M
( response to a Quick-Start Request on the SYN, then the Quick-Start) s
5 390 M
( Response will be resent if the SYN/ACK is retransmitted. When the) s
5 379 M
( Quick-Start Response is being sent on an ACK, for example in) s
5 368 M
( response to the Quick-Start Request on the SYN/ACK, then the Quick-) s
5 357 M
( Start Response MUST be resent on data packets until that TCP host) s
5 346 M
( receives an acknowledgement from the other endpoint.) s
5 313 M
(4.4. TCP: Receiving and Using the Quick-Start Response Packet) s
5 291 M
( A TCP host, say TCP host A, that sent a Quick-Start Request and) s
5 280 M
( receives an answering Quick-Start Response in the acknowledgement) s
5 269 M
( first checks that the Quick-Start Response is valid. The Quick-) s
5 258 M
( Start Response is valid if it contains the correct value for the TTL) s
5 247 M
( Diff, and an equal or lesser value for the Rate Request than that) s
5 236 M
( transmitted in the Quick-Start Request. If this check is not) s
5 225 M
( successful, then the Quick-Start request failed, and the TCP host) s
5 214 M
( MUST use the default TCP congestion window that it would have used) s
5 203 M
( without Quick-Start.) s
5 181 M
( If the checks of the TTL Diff and the Rate Request are successful,) s
5 170 M
( then the TCP host sets its Quick-Start congestion window \(in terms) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.4. [Page 20]) s
_R
S
%%Page: (21) 21
%%BeginPageSetup
_S
24 24 translate
/pagenum 21 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( of MSS-sized segments\), QS_cwnd, as follows:) s
5 665 M
( QS_cwnd = \(R * T\) / \(MSS + H\) \(2\)) s
5 643 M
( where R the Rate Request in bytes per second, T the measured round-) s
5 632 M
( trip time in seconds, and H the estimated header size in bytes) s
5 621 M
( \(e.g., 40 bytes\). [Derivation: the sender gets R bytes per second) s
5 610 M
( including packet headers, but only R*MSS/\(MSS+H\) bytes per second,) s
5 599 M
( or equivalently R*T*MSS/\(MSS+H\) bytes per round-trip time, of) s
5 588 M
( application data.] The TCP host sets its congestion window cwnd to) s
5 577 M
( QS-cwnd only if QS-cwnd is greater than cwnd; otherwise QS-cwnd is) s
5 566 M
( ignored. If QS-cwnd is used, the TCP host sets a flag that it is in) s
5 555 M
( Quick-Start mode, and while in Quick-Start mode the TCP sender uses) s
5 544 M
( rate-based pacing, pacing out Quick-Start packets at the specified) s
5 533 M
( Rate Request. Quick-Start mode ends when the TCP host receives an) s
5 522 M
( ACK for one of the Quick-Start packets.) s
5 500 M
( Because the Quick-Start request packet might not have used the fast) s
5 489 M
( path in routers, the round-trip time measurement for the Quick-Start) s
5 478 M
( request might be unnecessarily large. If the congestion window has) s
5 467 M
( not been fully used when the first ack arrives ending the Quick-) s
5 456 M
( Start mode, then the congestion window is decreased to the amount) s
5 445 M
( that has actually been used so far. This should address the problem) s
5 434 M
( of an overly-large congestion window from an overly-large) s
5 423 M
( measurement of the round-trip time.) s
5 401 M
( If the Quick-Start mode ends with all Quick-Start packets being) s
5 390 M
( successfully acknowledged, the TCP sender returns to using the) s
5 379 M
( default congestion control mechanisms. After all the packets are) s
5 368 M
( acknowledged from a Quick-Start request for an initial window, for) s
5 357 M
( example, the TCP sender remains in slow-start, if permitted by) s
5 346 M
( ssthresh, continuing to increase its congestion window rather) s
5 335 M
( aggressively from one round-trip time to the next. To add) s
5 324 M
( robustness, the TCP sender is required to use Limited Slow-Start) s
5 313 M
( along with Quick-Start. With Limited Slow-Start, the TCP sender) s
5 302 M
( limits the number of packets by which the congestion window is) s
5 291 M
( increased for one window of data during slow-start [F02a].) s
5 258 M
(4.5. TCP: Responding to a Loss of a Quick-Start Packet) s
5 236 M
( For TCP, we have defined a ``Quick-Start packet'' as one of the) s
5 225 M
( packets sent in the window immediately following a successful Quick-) s
5 214 M
( Start request. After detecting the loss of a Quick-Start packet,) s
5 203 M
( TCP MUST revert to the default congestion control procedures that) s
5 192 M
( would have been used if the Quick-Start request had not been) s
5 181 M
( approved. For example, if Quick-Start is used for setting the) s
5 170 M
( initial window, and a packet from the initial window is lost, then) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.5. [Page 21]) s
_R
S
%%Page: (22) 22
%%BeginPageSetup
_S
24 24 translate
/pagenum 22 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( the TCP sender must then slow-start with the default initial window) s
5 676 M
( that would have been used if Quick-Start had not been used. In) s
5 665 M
( addition to reverting to the default congestion control mechanisms,) s
5 654 M
( the sender must take into account that the Quick-Start congestion) s
5 643 M
( window was too large. Thus, the sender should decrease ssthresh to) s
5 632 M
( at most half the number of Quick-Start packets that were) s
5 621 M
( successfully transmitted. Section A.5 discusses possible) s
5 610 M
( alternatives in responding to the loss of a Quick-Start packet.) s
5 577 M
(4.6. TCP: A Quick-Start Request for a Larger Initial Window) s
5 555 M
( Some of the issues of using Quick-Start are related to the specific) s
5 544 M
( scenario in which Quick-Start is used. This section discusses the) s
5 533 M
( following issues that arise when Quick-Start is used by TCP to) s
5 522 M
( request a larger initial window: \(1\) determining the rate to) s
5 511 M
( request; \(2\) interactions with Path MTU Discovery; and \(3\) Quick-) s
5 500 M
( Start request packets that are eaten by middleboxes.) s
5 478 M
( \(1\) Determining the rate to request:) s
5 467 M
( When Quick-Start is requested by TCP connections at web servers \(or) s
5 456 M
( at server-related middleboxes\), the web server knows the amount of) s
5 445 M
( data ready to be transferred, along with the history of successful) s
5 434 M
( and unsuccessful Quick-Start requests, and can use this information) s
5 423 M
( in choosing Rate Requests. In the absence of other information,) s
5 412 M
( there could be a configured value for the Quick-Start Rate Request.) s
5 401 M
( Quick-Start will be more effective if Quick-Start requests are not) s
5 390 M
( larger than necessary; every Quick-Start request that is approved) s
5 379 M
( but not used takes away from the bandwidth pool available for) s
5 368 M
( granting successive Quick-Start requests. Therefore, it is) s
5 357 M
( recommended that the request for the initial sending rate be) s
5 346 M
( somewhat conservative, in order to improve the chances for more) s
5 335 M
( Quick-Start requests to be approved.) s
5 313 M
( \(2\) Interactions with Path MTU Discovery:) s
5 302 M
( A second issue when Quick-Start is used to request a large initial) s
5 291 M
( window concerns the interactions between the large initial window) s
5 280 M
( and Path MTU Discovery. Some of the issues are discussed in RFC) s
5 269 M
( 3390:) s
5 236 M
( "When larger initial windows are implemented along with Path MTU) s
5 225 M
( Discovery [RFC1191], alternatives are to set the "Don't) s
5 214 M
( Fragment" \(DF\) bit in all segments in the initial window, or to) s
5 203 M
( set the "Don't Fragment" \(DF\) bit in one of the segments. It is) s
5 192 M
( an open question as to which of these two alternatives is best.") s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.6. [Page 22]) s
_R
S
%%Page: (23) 23
%%BeginPageSetup
_S
24 24 translate
/pagenum 23 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Unfortunately, the sender doesn't necessarily know the Path MTU when) s
5 676 M
( it sends packets in the initial window. The sender should be) s
5 665 M
( conservative in the packet size used. Sending a large number of) s
5 654 M
( overly-large packets with the DF bit set is not desirable, but) s
5 643 M
( sending a large number of packets that are fragmented in the network) s
5 632 M
( can be equally undesirable.) s
5 610 M
( One possibility would be for the sender to delay using the approved) s
5 599 M
( rate request for one round-trip time, while it sends a small number) s
5 588 M
( of packets to do Path MTU Discovery. While delaying the use of an) s
5 577 M
( approved rate request indefinitely is not acceptable, delaying the) s
5 566 M
( use for one round-trip time is within the bounds of acceptable) s
5 555 M
( behavior.) s
5 533 M
( In the future, it might be possible for the TCP SYN packet to do a) s
5 522 M
( probe about the Path MTU. For example, [W03] has proposed an IP) s
5 511 M
( Option that queries routers for their MTU before starting a Path MTU) s
5 500 M
( Discovery process.) s
5 478 M
( \(3\) Quick-Start request packets that are eaten by middleboxes:) s
5 467 M
( It is always possible for a TCP SYN packet carrying a Quick-Start) s
5 456 M
( request to be dropped in the network due to congestion, or to be) s
5 445 M
( blocked due to interactions with middleboxes. Measurement studies) s
5 434 M
( of interactions between transport protocols and middleboxes [MAF04]) s
5 423 M
( show that for 70% of the web servers investigated, no connection is) s
5 412 M
( established if the TCP SYN packet contains an unknown IP option \(and) s
5 401 M
( for 43% of the web servers, no connection is established if the TCP) s
5 390 M
( SYN packet contains an IP TimeStamp Option\). In both cases, this is) s
5 379 M
( presumably due to middleboxes along that path.) s
5 357 M
( If the TCP sender doesn't receive a response to the SYN or SYN/ACK) s
5 346 M
( packet containing the Quick-Start Request, then the TCP sender) s
5 335 M
( SHOULD resend the SYN or SYN/ACK packet without the Quick-Start) s
5 324 M
( Request. Similarly, if the TCP sender receives a TCP reset in) s
5 313 M
( response to the SYN or SYN/ACK packet containing the Quick-Start) s
5 302 M
( Request, then the TCP sender SHOULD resend the SYN or SYN/ACK packet) s
5 291 M
( without the Quick-Start Request [RFC3360].) s
5 269 M
( While RFC 1122 and 2988 recommend that the sender should set the) s
5 258 M
( initial RTO to three seconds, many TCP implementations set the) s
5 247 M
( initial RTO to one second. For a TCP SYN packet sent with a Quick-) s
5 236 M
( Start request, we recommend an RTO of one second, so that the sender) s
5 225 M
( can retransmit the SYN packet reasonably promptly if the original) s
5 214 M
( TCP SYN packet is dropped by a middlebox in the network.) s
5 192 M
( We note that if the TCP SYN packet is using the IP Quick-Start) s
5 181 M
( Option for a Quick-Start request, and it also using bits in the TCP) s
5 170 M
( header to negotiate ECN-capability with the TCP host at the other) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.6. [Page 23]) s
_R
S
%%Page: (24) 24
%%BeginPageSetup
_S
24 24 translate
/pagenum 24 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( end, then the drop of a TCP SYN packet could be due to congestion,) s
5 676 M
( to a middlebox dropping the packet because of the IP Option, or) s
5 665 M
( because of a middlebox dropping the packet because of the) s
5 654 M
( information in the TCP header negotiating ECN. In this case, the) s
5 643 M
( sender could resend the dropped packet without either the Quick-) s
5 632 M
( Start or the ECN requests. Alternately, the sender could resend the) s
5 621 M
( dropped packet with only the ECN request in the TCP header,) s
5 610 M
( resending the TCP SYN packet without either the Quick-Start or the) s
5 599 M
( ECN requests if the second TCP SYN packet is dropped. The second) s
5 588 M
( choice seems reasonable to us, given that a TCP SYN packet today is) s
5 577 M
( more likely to be blocked due to IP Options than due to an ECN) s
5 566 M
( request in the TCP header.) s
5 533 M
(4.7. TCP: A Quick-Start Request after an Idle Period) s
5 511 M
( This section discusses the following issues that arise when Quick-) s
5 500 M
( Start is used by TCP to request a larger window after an idle) s
5 489 M
( period: \(1\) determining the rate to request; and \(2\) the response if) s
5 478 M
( Quick-Start packets are dropped;) s
5 456 M
( \(1\) Determining the rate to request:) s
5 445 M
( After an idle period, an easy rule of thumb would be for the TCP) s
5 434 M
( sender to determine the largest congestion window that the TCP) s
5 423 M
( connection achieved since the last packet drop, to translate this) s
5 412 M
( congestion window to a sending rate, and use this rate in the Quick-) s
5 401 M
( Start request after the idle period. If the request is granted,) s
5 390 M
( then the sender essentially restarts with its old congestion window) s
5 379 M
( from before the idle period.) s
5 357 M
( The sender should not use Quick-Start if the idle period has been) s
5 346 M
( less than an RTO, and the congestion window has not decayed down to) s
5 335 M
( less than half of its value at the start of the idle period.) s
5 313 M
( \(2\) Response if Quick-Start packets are dropped:) s
5 302 M
( If Quick-Start packets are dropped after an idle period, then the) s
5 291 M
( sender should revert to half of the Quick-Start window, or to the) s
5 280 M
( congestion window that the sender would have used if the Quick-Start) s
5 269 M
( request had not been approved, whichever is smaller.) s
5 247 M
( A technical question is whether a Quick-Start Request sent in the) s
5 236 M
( middle of a connection could carry a data payload. For example, for) s
5 225 M
( TCP, a Quick-Start Request in the middle of a connection could carry) s
5 214 M
( a data payload, or could be in a TCP acknowledgement packet. Is) s
5 203 M
( there any advice in this regard that should be offered to the) s
5 192 M
( transport protocol?) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 4.7. [Page 24]) s
_R
S
%%Page: (25) 25
%%BeginPageSetup
_S
24 24 translate
/pagenum 25 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(4.8. An Example Quick-Start Scenario with TCP) s
5 665 M
( The following is an example scenario in the case when both hosts) s
5 654 M
( request Quick-Start for setting their initial windows:) s
5 632 M
( * The TCP SYN packet from Host A contains a Quick-Start Request in) s
5 621 M
( the IP header.) s
5 599 M
( * Routers along the forward path modify the Quick-Start Request as) s
5 588 M
( appropriate.) s
5 566 M
( * Host B receives the Quick-Start Request in the SYN packet, and) s
5 555 M
( calculates the TTL Diff. If Host B approves the Quick-Start) s
5 544 M
( Request, then Host B sends a Quick-Start Response in the TCP header) s
5 533 M
( of the SYN/ACK packet. Host B also sends a Quick-Start Request in) s
5 522 M
( the IP header of the SYN/ACK packet.) s
5 500 M
( * Routers along the reverse path modify the Quick-Start Request as) s
5 489 M
( appropriate.) s
5 467 M
( * Host A receives the Quick-Start Response in the SYN/ACK packet,) s
5 456 M
( and checks the TTL Diff and Rate Request for validity. If they are) s
5 445 M
( valid, then Host A sets its initial congestion window appropriately,) s
5 434 M
( and sets up rate-based pacing to be used with the initial window.) s
5 423 M
( If the Quick-Start Response is not valid, then Host A uses TCP's) s
5 412 M
( default initial window.) s
5 390 M
( Host A also calculates the TTL Diff for the Quick-Start Request in) s
5 379 M
( the incoming SYN/ACK packet, and sends a Quick-Start Response in the) s
5 368 M
( TCP header of the ACK packet.) s
5 346 M
( * Host A repeats sending the Quick-Start Response in data packets at) s
5 335 M
( least once per round-trip time until it receives an acknowledgement) s
5 324 M
( from Host B for one of those data packets.) s
5 302 M
( * Host B receives the Quick-Start Response in an ACK packet, and) s
5 291 M
( checks the TTL Diff and Rate Request for validity. If the Quick-) s
5 280 M
( Start Response is valid, then Host B sets its initial congestion) s
5 269 M
( window appropriately, and sets up rate-based pacing to be used with) s
5 258 M
( its initial window. If the Quick-Start Response is not valid, then) s
5 247 M
( Host B uses TCP's default initial window.) s
5 214 M
(5. The Quick-Start Mechanism in other Transport Protocols) s
5 192 M
( The section earlier specified the use of Quick-Start in TCP. In) s
5 181 M
( this section, we generalize this to give guidelines for the use of) s
5 170 M
( Quick-Start with other transport protocols. We also discuss briefly) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 5. [Page 25]) s
_R
S
%%Page: (26) 26
%%BeginPageSetup
_S
24 24 translate
/pagenum 26 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( how Quick-Start could be specified for other transport protocols.) s
5 665 M
( The general guidelines for Quick-Start in transport protocols are as) s
5 654 M
( follows:) s
5 632 M
( * Quick-Start is only specified for unicast transport protocols with) s
5 621 M
( appropriate congestion control mechanisms.) s
5 599 M
( * A transport-level mechanism is needed for the Quick-Start response) s
5 588 M
( from the receiver to the sender. This response contains the Rate) s
5 577 M
( Request and the TTL Diff. The Quick-Start response should ideally) s
5 566 M
( be sent reliably.) s
5 544 M
( * The sender checks the validity of the Quick-Start response.) s
5 522 M
( * The sender has an estimate of the round-trip time, and translates) s
5 511 M
( the Quick-Start response into an allowed window or allowed sending) s
5 500 M
( rate. The sender starts sending Quick-Start packets, rate-paced out) s
5 489 M
( at the approved sending rate.) s
5 467 M
( * After the sender receives the first acknowledgement packet for a) s
5 456 M
( Quick-Start packet, no more Quick-Start packets are sent. The) s
5 445 M
( sender adjusts its current congestion window or sending rate to be) s
5 434 M
( consistent with the actual amount of data that was transmitted in) s
5 423 M
( that round-trip time.) s
5 401 M
( * When the last Quick-Start packet is acknowledged, the sender) s
5 390 M
( continues using the standard congestion control mechanisms of that) s
5 379 M
( protocol.) s
5 357 M
( * If one of the Quick-Start packets is lost, then the sender reverts) s
5 346 M
( to the standard congestion control method of that protocol that) s
5 335 M
( would have been used if the Quick-Start request had not been) s
5 324 M
( approved. In addition, the sender takes into account the) s
5 313 M
( information that the Quick-Start congestion window was too large) s
5 302 M
( \(e.g., by decreasing ssthresh in TCP\).) s
5 269 M
(5.1. Quick-Start with DCCP) s
5 247 M
( DCCP is a new transport protocol for congestion-controlled,) s
5 236 M
( unreliable datagrams, intended for applications such as streaming) s
5 225 M
( media, Internet telephony, and on-line games. In DCCP, the) s
5 214 M
( application has a choice of congestion control mechanisms, with the) s
5 203 M
( currently-specified Congestion Control Identifiers \(CCIDs\) being) s
5 192 M
( CCID 2 for TCP-like congestion control, and CCID 3 for TFRC, an) s
5 181 M
( equation-based form of congestion control. We refer the reader to) s
5 170 M
( [KHF04] for a more detailed description of DCCP, and of the) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 5.1. [Page 26]) s
_R
S
%%Page: (27) 27
%%BeginPageSetup
_S
24 24 translate
/pagenum 27 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( congestion control mechanisms.) s
5 665 M
( Because CCID 3 uses a rate-based congestion control mechanism, it) s
5 654 M
( raises some new issues about the use of Quick-Start with transport) s
5 643 M
( protocols. In this document we don't attempt to specify the use of) s
5 632 M
( Quick-Start with DCCP. However, we do discuss some of the issues) s
5 621 M
( that might arise.) s
5 599 M
( In considering the use of Quick-Start with CCID 3 for requesting a) s
5 588 M
( higher initial sending rate, the following questions arise: \(1\) how) s
5 577 M
( does the sender respond if a Quick-Start packet is dropped; and \(2\)) s
5 566 M
( when does the sender determine that there has been no feedback from) s
5 555 M
( the receiver, and reduce the sending rate?) s
5 533 M
( \(1\) How does the sender respond if a Quick-Start packet is dropped:) s
5 522 M
( As in TCP, if an initial Quick-Start packet is dropped, the CCID 3) s
5 511 M
( sender should revert to the congestion control mechanisms it would) s
5 500 M
( have used if the Quick-Start request had not been approved.) s
5 478 M
( \(2\) When does the sender decide there has been no feedback from the) s
5 467 M
( receiver:) s
5 456 M
( Unlike TCP, CCID 3 does not use acknowledgements for every packet,) s
5 445 M
( or for every other packet. In contrast, the CCID 3 receiver sends) s
5 434 M
( feedback to the sender roughly once per round-trip time. In CCID 3,) s
5 423 M
( the allowed sending rate is halved if no feedback is received from) s
5 412 M
( the receiver in at least four round-trip times \(when the sender is) s
5 401 M
( sending at least one packet every two round-trip times\). When a) s
5 390 M
( Quick-Start request is used, it would seem prudent to use a smaller) s
5 379 M
( time interval, e.g., to reduce the sending rate if no feedback is) s
5 368 M
( received from the receiver in at least two round-trip times.) s
5 346 M
( The question also arises of how the sending rate should be reduced) s
5 335 M
( after a period of no feedback from the receiver. The default CCID 3) s
5 324 M
( response of halving the sending rate might not be sufficient; an) s
5 313 M
( alternative would be to reduce the sending rate to the sending rate) s
5 302 M
( that would have been used if no Quick-Start request had been) s
5 291 M
( approved. That is, if a CCID 3 sender uses a Quick-Start request,) s
5 280 M
( special rules might be required to handle the sender's response to a) s
5 269 M
( period of no feedback from the receiver regarding the Quick-Start) s
5 258 M
( packets.) s
5 236 M
( Similarly, in considering the use of Quick-Start with CCID 3 for) s
5 225 M
( requesting a higher sending rate after an idle period, the following) s
5 214 M
( questions arise: \(1\) what rate does the sender request; \(2\) what is) s
5 203 M
( the response to a loss; and \(3\) when does the sender determine that) s
5 192 M
( there has been no feedback from the receiver, and the sending rate) s
5 181 M
( must be reduced?) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 5.1. [Page 27]) s
_R
S
%%Page: (28) 28
%%BeginPageSetup
_S
24 24 translate
/pagenum 28 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( \(1\) What rate does the sender request:) s
5 676 M
( As in TCP, there is a straightforward answer to the rate request) s
5 665 M
( that the CCID 3 sender should use in requesting a higher sending) s
5 654 M
( rate after an idle period. The sender knows the current loss event) s
5 643 M
( rate, either from its own calculations or from feedback from the) s
5 632 M
( receiver, and can determine the sending rate allowed by that loss) s
5 621 M
( event rate. This is the upper bound on the sending rate that should) s
5 610 M
( be requested by the CCID 3 sender. A Quick-Start request is useful) s
5 599 M
( with CCID 3 when the sender is coming out of an idle or) s
5 588 M
( underutilized period, because in standard operation CCID 3 does not) s
5 577 M
( allow the sender to send more that twice as fast as the receiver has) s
5 566 M
( reported received in the most recent feedback message.) s
5 544 M
( \(2\) What is the response to loss:) s
5 533 M
( The response to the loss of Quick-Start packets should be to return) s
5 522 M
( to the sending rate that would have been used if Quick-Start had not) s
5 511 M
( been requested.) s
5 489 M
( \(3\) When does the sender decide there has been no feedback from the) s
5 478 M
( receiver:) s
5 467 M
( As in the case of the initial sending rate, it would seem prudent to) s
5 456 M
( reduce the sending rate if no feedback is received from the receiver) s
5 445 M
( in at least two round-trip times. It seems likely that in this) s
5 434 M
( case, the sending rate should be reduced to the sending rate that) s
5 423 M
( would have been used if no Quick-Start request had been approved.) s
5 390 M
(6. Evaluation of Quick-Start) s
5 357 M
(6.1. Benefits of Quick-Start) s
5 335 M
( The main benefit of Quick-Start is the faster start-up for the) s
5 324 M
( transport connection itself. For a small TCP transfer of one to) s
5 313 M
( five packets, Quick-Start is probably of very little benefit; at) s
5 302 M
( best, it might shorten the connection lifetime from three to two) s
5 291 M
( round-trip times \(including the round-trip time for connection) s
5 280 M
( establishment\). Similarly, for a very large transfer, where the) s
5 269 M
( slow-start phase would have been only a small fraction of the) s
5 258 M
( connection lifetime, Quick-Start would be of limited benefit.) s
5 247 M
( Quick-Start would not significantly shorten the connection lifetime,) s
5 236 M
( but it might eliminate or at least shorten the start-up phase.) s
5 225 M
( However, for moderate-sized connections in a well-provisioned) s
5 214 M
( environment, Quick-Start could allow the entire transfer of M) s
5 203 M
( packets to be completed in one round-trip time \(after the initial) s
5 192 M
( round-trip time for the SYN exchange\), instead of the log_2\(M\)-2) s
5 181 M
( round-trip times that it would normally for the data transfer, in an) s
5 170 M
( uncongested environments \(assuming an initial window of four) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 6.1. [Page 28]) s
_R
S
%%Page: (29) 29
%%BeginPageSetup
_S
24 24 translate
/pagenum 29 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( packets\).) s
5 654 M
(6.2. Costs of Quick-Start) s
5 621 M
( This section discusses the costs of Quick-Start for the connection) s
5 610 M
( and for the routers along the path.) s
5 588 M
( The cost of having a Quick-Start packet dropped:) s
5 577 M
( For the sender the biggest risk in using Quick-Start lies in the) s
5 566 M
( possibility of suffering from congestion-related losses of the) s
5 555 M
( Quick-Start packets. This should be an unlikely situation because) s
5 544 M
( routers are expected to approve Quick-Start Requests only when they) s
5 533 M
( are significantly underutilized. However, a transient increase in) s
5 522 M
( cross-traffic in one of the routers, a sudden decrease in available) s
5 511 M
( bandwidth on one of the links, or congestion at a non-IP queue could) s
5 500 M
( result in packet losses even when the Quick-Start Request was) s
5 489 M
( approved by all of the routers along the path. If a Quick-Start) s
5 478 M
( packet is dropped, then the sender reverts to the congestion control) s
5 467 M
( mechanisms it would have used if the Quick-Start request has not) s
5 456 M
( been approved, so the performance cost to the connection of having a) s
5 445 M
( Quick-Start packet dropped is small, compared to the performance) s
5 434 M
( without Quick-Start. \(On the other hand, the performance difference) s
5 423 M
( between Quick-Start with a Quick-Start packet dropped and Quick-) s
5 412 M
( Start with no Quick-Start packet dropped can be considerable.\)) s
5 390 M
( Added complexity at routers:) s
5 379 M
( The main cost of Quick-Start at routers concerns the costs of added) s
5 368 M
( complexity. The added complexity at the end-points is moderate, and) s
5 357 M
( might easily be outweighed by the benefit of Quick-Start to the end) s
5 346 M
( hosts. The added complexity at the routers is also somewhat) s
5 335 M
( moderate; it involves estimating the unused bandwidth on the output) s
5 324 M
( link over the last several seconds, processing the Quick-Start) s
5 313 M
( request, and keeping a counter of the aggregate Quick-Start rate) s
5 302 M
( approved over the last fraction of a second. However, this added) s
5 291 M
( complexity at routers adds to the development cycle, and could) s
5 280 M
( prevent the addition of other competing functionality to routers.) s
5 269 M
( Thus, careful thought would have to be given to the addition of) s
5 258 M
( Quick-Start to IP.) s
5 236 M
( The slow path in routers:) s
5 225 M
( Another drawback of Quick-Start is that packets containing the) s
5 214 M
( Quick-Start Request message might not take the fast path in routers.) s
5 203 M
( This would mean extra delay for the end hosts, and extra processing) s
5 192 M
( burden for the routers. This extra burden is mitigated somewhat by) s
5 181 M
( the following factors: only very few packets would carry the Quick-) s
5 170 M
( Start Request option; very small flows of, say, one to five packets) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 6.2. [Page 29]) s
_R
S
%%Page: (30) 30
%%BeginPageSetup
_S
24 24 translate
/pagenum 30 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( would receive little benefit from Quick-Start, and presumeably would) s
5 676 M
( not use the Quick-Start Request; flows from end hosts with low-) s
5 665 M
( bandwidth access links would receive little benefit from Quick-) s
5 654 M
( Start, and hopefully could be configured not to use the Quick-Start) s
5 643 M
( Request. In addition, in typical environments where most of the) s
5 632 M
( packets belong to large flows, the burden of the Quick-Start Option) s
5 621 M
( on routers would be considerably reduced. Nevertheless, it is still) s
5 610 M
( conceiveable, in the worst case, that up to 10% of the packets were) s
5 599 M
( Quick-Start packets, and this could slow down the processing of) s
5 588 M
( Quick-Start packets in routers considerably. In particular, because) s
5 577 M
( many Quick-Start packets are likely to be TCP SYN or SYN/ACK) s
5 566 M
( packets, the slow processing of Quick-Start packets would slow down) s
5 555 M
( the establishment of the corresponding TCP connections.) s
5 533 M
( Multiple paths:) s
5 522 M
( One limitation of Quick-Start is that it presumes that the data) s
5 511 M
( packets of a connection will follow the same path as the Quick-Start) s
5 500 M
( request packet. If this is not the case, then the connection could) s
5 489 M
( be sending the Quick-Start packets, at the approved rate, along a) s
5 478 M
( path that was already congested, or that became congested as a) s
5 467 M
( result of this connection. This is, however, similar to what would) s
5 456 M
( happen if the connection's path was changed in the middle of the) s
5 445 M
( connection, when the connection had already established the allowed) s
5 434 M
( initial rate.) s
5 412 M
( Non-IP queues:) s
5 401 M
( A problem of any mechanism for feedback from routers at the IP level) s
5 390 M
( is that there can be queues and bottlenecks in the end-to-end path) s
5 379 M
( that are not in IP-level routers. As an example, these include) s
5 368 M
( queues in layer-two Ethernet or ATM networks. One possibility would) s
5 357 M
( be that an IP-level router adjacent to such a non-IP queue or) s
5 346 M
( bottleneck would be configured to reject Quick-Start requests if) s
5 335 M
( that was appropriate.) s
5 302 M
(6.3. Protection against Misbehaving Nodes) s
5 280 M
( In this section we discuss the protection against receivers lying) s
5 269 M
( about the Quick-Start Request, and against other possible) s
5 258 M
( misbehaviors regarding Quick-Start. First, we note that it is not) s
5 247 M
( necessarily in the receiver's interest to lie about the Quick-Start) s
5 236 M
( Request. If the sender sends at too-high of an initial rate, and) s
5 225 M
( has a packet dropped, this does not improve the performance of the) s
5 214 M
( connection, relative to the case when the Quick-Start Request was) s
5 203 M
( not approved.) s
5 181 M
( Receivers lying about whether the request was approved:) s
5 170 M
( The use of the Quick-Start TTL initialized by the sender to a random) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 6.3. [Page 30]) s
_R
S
%%Page: (31) 31
%%BeginPageSetup
_S
24 24 translate
/pagenum 31 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( value makes it difficult for the receiver to lie to the sender about) s
5 676 M
( whether the request has been approved by all of the routers along) s
5 665 M
( the path. If a router that understands the Quick-Start Request) s
5 654 M
( deletes the Request, or zeroes the QS TTL in the request, then the) s
5 643 M
( chances of a downstream router or misbehaving receiver guessing the) s
5 632 M
( value of the QS TTL is at most 1/256.) s
5 610 M
( In particular, if a router deletes the Quick-Start Request, it is) s
5 599 M
( unlikely that the receiver would be able to send a valid Quick-Start) s
5 588 M
( Response back to the sender. Similarly, if there are routers along) s
5 577 M
( the path that do not understand or approve of the Quick-Start) s
5 566 M
( Request, and that forward the Quick-Start Request unchanged, it) s
5 555 M
( would be not be easy for a downstream router or the receiver to) s
5 544 M
( cheat and modify the QS TTL field so that the request was considered) s
5 533 M
( valid, because the downstream routers do not know the initial value) s
5 522 M
( for the QS TTL.) s
5 500 M
( Receivers lying about the rate request:) s
5 489 M
( The receiver could lie to the sender about the Rate Request in the) s
5 478 M
( received Quick-Start Request. However, the receiver doesn't know) s
5 467 M
( the Rate Request in the original Quick-Start Request sent by the) s
5 456 M
( sender, and a higher Rate Request reported by the receiver will only) s
5 445 M
( be considered valid by the sender if it is no higher than the Rate) s
5 434 M
( Request originally requested by the sender. This limits the ability) s
5 423 M
( of the receiver to cheat. For example, if the sender sends a Quick-) s
5 412 M
( Start Request with an Rate Request of X, and the receiver reports) s
5 401 M
( receiving a Quick-Start Request with an Rate Request of Y > X, then) s
5 390 M
( the sender knows that either some router along the path) s
5 379 M
( malfunctioned \(increasing the Rate Request inappropriately\), or the) s
5 368 M
( receiver is lying about the Rate Request in the received packet.) s
5 346 M
( However, if the sender sends a Quick-Start Request with an Rate) s
5 335 M
( Request of Z, the receiver receives the Quick-Start Request with an) s
5 324 M
( approved Rate Request of X, and reports an Rate Request of Y, for X) s
5 313 M
( < Y < Z, then the receiver succeeds in lying to the sender about the) s
5 302 M
( approved rate.) s
5 280 M
( One protection against such misbehavior from the receiver would be) s
5 269 M
( for a router decreasing a Rate Request in a Quick-Start Request to) s
5 258 M
( report the decrease directly to the sender. However, it is) s
5 247 M
( hopefully sufficient protection that the receiver does not know the) s
5 236 M
( Rate Request in the original Quick-Start Request.) s
5 214 M
( One way to add additional protection would be for senders to use) s
5 203 M
( some degree of randomization in the requested Rate Request, so that) s
5 192 M
( it is difficult for receivers to guess the original value for the) s
5 181 M
( Rate Request. However, this is more difficult if there is fairly) s
5 170 M
( coarse granularity in the set of rate requests available to the) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 6.3. [Page 31]) s
_R
S
%%Page: (32) 32
%%BeginPageSetup
_S
24 24 translate
/pagenum 32 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( sender.) s
5 665 M
( Similarly, a router could attempt to cheat and increase the rate) s
5 654 M
( request, but this would only be effective if there were no) s
5 643 M
( downstream routers that denied the Rate Request.) s
5 621 M
( Misbehaving routers:) s
5 610 M
( In addition to protecting against misbehaving receivers, it is) s
5 599 M
( necessary also to protect against misbehaving routers. Consider) s
5 588 M
( collusion between an ingress router and an egress router belonging) s
5 577 M
( to the same Intranet. The ingress router could decrement the Rate) s
5 566 M
( Request at the ingress, with the egress router increasing it again) s
5 555 M
( at the egress. The routers between the ingress and egress that) s
5 544 M
( approved the decremented rate request might not have been willing to) s
5 533 M
( approve the larger, original request.) s
5 511 M
( Another form of collusion would be for the ingress router to inform) s
5 500 M
( the egress router out-of-band of the IP TTL and QS TTL in the) s
5 489 M
( request packet at the ingress. This would enable the egress router) s
5 478 M
( to modify the QS TTL so that it appeared that all of the routers) s
5 467 M
( along the path had approved the request. We would note that in the) s
5 456 M
( extreme case, there does not appear to be any protection against a) s
5 445 M
( colluding ingress and egress router. Even if an intermediate router) s
5 434 M
( had deleted the Quick-Start Request Option from the packet, the) s
5 423 M
( ingress router could have sent the Quick-Start Request Option to the) s
5 412 M
( egress router out-of-band, with the egress router inserting the) s
5 401 M
( Quick-Start Request Option, with a modified QS TTL field, back in) s
5 390 M
( the packet.) s
5 368 M
( However, unlike ECN, there is somewhat less incentive for) s
5 357 M
( cooperating ingress and egress routers to collude to falsely modify) s
5 346 M
( the Quick-Start Request so that it appears to have been approved by) s
5 335 M
( all of the routers along the path. With ECN, a colluding ingress) s
5 324 M
( router could falsely mark a packet as ECN-capable, with the) s
5 313 M
( colluding egress router returning the ECN field in the IP header to) s
5 302 M
( its original non-ECN-capable codepoint, and congested routers along) s
5 291 M
( the path could have been fooled into not dropping that packet. This) s
5 280 M
( collusion would give an unfair competitive advantage to the traffic) s
5 269 M
( protected by the colluding ingress and egress routers.) s
5 247 M
( In contrast, with Quick-Start, the ingress and egress routers) s
5 236 M
( colluding to make it falsely appear that a Quick-Start request was) s
5 225 M
( approved does not necessarily give an advantage to the traffic) s
5 214 M
( covered by that collusion. If some router along the path really) s
5 203 M
( does not have enough available bandwidth to approve the Quick-Start) s
5 192 M
( request, then the Quick-Start packets sent as a result of the) s
5 181 M
( falsely-approved request could be dropped in the network, to the) s
5 170 M
( resulting disadvantage of the connection. Thus, while the ingress) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 6.3. [Page 32]) s
_R
S
%%Page: (33) 33
%%BeginPageSetup
_S
24 24 translate
/pagenum 33 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( and egress routers could collude to prevent intermediate routers) s
5 676 M
( from denying a Quick-Start request, it would generally not be to the) s
5 665 M
( connection's advantage for this to happen.) s
5 643 M
( Of course, if the congested router was ECN-capable, and the) s
5 632 M
( colluding ingress and egress routers were lying about ECN-capability) s
5 621 M
( as well as about Quick-Start, then the result could be that the) s
5 610 M
( Quick-Start request falsely appears to the sender to have been) s
5 599 M
( approved, the Quick-Start packets falsely appear to the congested) s
5 588 M
( router to be ECN-capable, and the colluding routers succeed in) s
5 577 M
( giving a competitive advantage to the traffic protected by their) s
5 566 M
( collusion.) s
5 533 M
(6.4. Quick-Start with QoS-enabled Traffic) s
5 511 M
( The discussion in this paper has largely been of Quick-Start with) s
5 500 M
( default, best-effort traffic. However, Quick-Start could also be) s
5 489 M
( used by traffic using some form of differentiated services, and) s
5 478 M
( routers could take the traffic class into account when deciding) s
5 467 M
( whether or not to grant the Quick-Start request. We don't address) s
5 456 M
( this context further in this paper, since it is orthogonal to the) s
5 445 M
( specification of Quick-Start. However, we note that routers should) s
5 434 M
( be discouraged from granting Quick-Start requests for higher-) s
5 423 M
( priority traffic when this is likely to result in significant packet) s
5 412 M
( loss for lower-priority traffic.) s
5 379 M
(6.5. Limitations of Quick-Start) s
5 357 M
( The Quick-Start proposal, taken together with the recent proposal) s
5 346 M
( for HighSpeed TCP [F02], could go a significant way towards) s
5 335 M
( extending the range of performance for best-effort traffic in the) s
5 324 M
( Internet. However, there are many things that the Quick-Start) s
5 313 M
( proposal would not accomplish. Quick-Start is not a congestion) s
5 302 M
( control mechanism, and would not help in making more precise use of) s
5 291 M
( the available bandwidth, that is, of achieving the goal of very high) s
5 280 M
( throughput with very low delay and very low packet loss rates.) s
5 269 M
( Quick-Start would not give routers more control over the decrease) s
5 258 M
( rates of active connections. One of the open questions addressed) s
5 247 M
( later in this document is whether the limited capabilities of Quick-) s
5 236 M
( Start are sufficient to warrant standardization and deployment, or) s
5 225 M
( whether more work is needed to explore the space of potential) s
5 214 M
( mechanisms.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 6.5. [Page 33]) s
_R
S
%%Page: (34) 34
%%BeginPageSetup
_S
24 24 translate
/pagenum 34 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(6.6. Simulations with Quick-Start) s
5 665 M
( Quick-Start was added to the NS simulator [SH02] by Srikanth) s
5 654 M
( Sundarrajan, and additional functionality was added by Pasi) s
5 643 M
( Sarolahti. The validation test is at `test-all-quickstart' in the) s
5 632 M
( 'tcl/test' directory in NS. The initial simulation studies from) s
5 621 M
( [SH02] show a significant performance improvement using Quick-Start) s
5 610 M
( for moderate-sized flows \(between 4KB and 128KB\) in under-utilized) s
5 599 M
( environments. These studies are of file transfers, with the) s
5 588 M
( improvement measured as the relative increase in the overall) s
5 577 M
( throughput for the file transfer. The study shows that potential) s
5 566 M
( improvement from Quick-Start is proportional to the delay-bandwidth) s
5 555 M
( product of the path.) s
5 522 M
(7. Related Work) s
5 500 M
( Any evaluation of Quick-Start must include a discussion of the) s
5 489 M
( relative benefits of approaches that use no explicit information) s
5 478 M
( from routers, and of approaches that use more fine-grained feedback) s
5 467 M
( from routers as part of a larger congestion control mechanism. We) s
5 456 M
( discuss three classes of proposals \(no explicit feedback from) s
5 445 M
( routers; explicit feedback about the initial rate; and more fine-) s
5 434 M
( grained feedback from routers\) in the sections below.) s
5 401 M
(7.1. Fast Start-ups without Explicit Information from Routers) s
5 379 M
( One possibility would be for senders to use information from the) s
5 368 M
( packet streams to learn about the available bandwidth, without) s
5 357 M
( explicit information from routers. These techniques would not allow) s
5 346 M
( a start-up as fast as that available from Quick-Start, in an) s
5 335 M
( underutilized environment; one has to have sent some packets) s
5 324 M
( already to use the packet stream to learn about available bandwidth.) s
5 313 M
( However, these techniques could allow a start-up considerably faster) s
5 302 M
( than the current slow-start. While it seems clear that approaches) s
5 291 M
( *without* explicit feedback from the routers will be strictly less) s
5 280 M
( powerful that is possible *with* explicit feedback, it is also) s
5 269 M
( possible that approaches that are more aggressive than slow-start) s
5 258 M
( are possible without explicit feedback from routers.) s
5 236 M
( Periodic packet streams:) s
5 225 M
( [JD02] explores the use of periodic packet streams to estimate the) s
5 214 M
( available bandwidth along a path. The idea is that the one-way) s
5 203 M
( delays of a periodic packet stream show an increasing trend when the) s
5 192 M
( stream's rate is higher than the available bandwidth. While [JD02]) s
5 181 M
( states that the proposed mechanism does not cause significant) s
5 170 M
( increases in network utilization, losses, or delays when done by one) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 7.1. [Page 34]) s
_R
S
%%Page: (35) 35
%%BeginPageSetup
_S
24 24 translate
/pagenum 35 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( flow at a time, the approach could be problematic if conducted) s
5 676 M
( concurrently by a number of flows. [JD02] also gives an overview of) s
5 665 M
( some of the earlier work on inferring the available bandwidth from) s
5 654 M
( packet trains.) s
5 632 M
( Swift-Start:) s
5 621 M
( The Swift Start proposal from [PRAKS02] combines packet-pair and) s
5 610 M
( packet-pacing techniques, beginning with a four-segment burst of) s
5 599 M
( packets to estimate the available bandwidth along the path.) s
5 577 M
( While continued research on the limits of the ability of TCP and) s
5 566 M
( other transport protocols to learn of available bandwidth without) s
5 555 M
( explicit feedback from the router seems useful, we note that there) s
5 544 M
( are several fundamental advantages of explicit feedback from) s
5 533 M
( routers.) s
5 511 M
( \(1\) Explicit feedback is faster than implicit feedback:) s
5 500 M
( One advantage of explicit feedback from the routers is that it) s
5 489 M
( allows the transport sender to reliably learn of available bandwidth) s
5 478 M
( in one round-trip time.) s
5 456 M
( \(2\) Explicit feedback is more reliable than implicit feedback:) s
5 445 M
( A second advantage of explicit feedback from the routers is that the) s
5 434 M
( available bandwidth along the path does not necessarily map to the) s
5 423 M
( allowed sending rate for an individual flow. As an example, if the) s
5 412 M
( TCP sender sends four packets back-to-back in the initial window,) s
5 401 M
( and the TCP receiver reports that the data packets were received) s
5 390 M
( with roughly the same spacing as they were transmitted, does this) s
5 379 M
( mean that the flow can infer an underutilized path? And how fast) s
5 368 M
( can the flow send in the next round-trip time? Do the results) s
5 357 M
( depend on the level of statistical multiplexing at the congested) s
5 346 M
( link, and on the number of flows attempting a faster start-up at the) s
5 335 M
( same time?) s
5 302 M
(7.2. Optimistic Sending without Explicit Information from Routers) s
5 280 M
( Another possibility that has been suggested [S02] is for the sender) s
5 269 M
( to start with a large initial window without explicit permission) s
5 258 M
( from the routers and without bandwidth estimation techniques, and) s
5 247 M
( for the first packet of the initial window to contain information) s
5 236 M
( such as the size or sending rate of the initial window. The) s
5 225 M
( proposal would be that congested routers would use this information) s
5 214 M
( in the first data packet to drop or delay many or all of the packets) s
5 203 M
( from that initial window. In this way a flow's optimistically-large) s
5 192 M
( initial window would not force the router to drop packets from) s
5 181 M
( competing flows in the network. Such an approach would seem to) s
5 170 M
( require some mechanism for the sender to ensure that the routers) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 7.2. [Page 35]) s
_R
S
%%Page: (36) 36
%%BeginPageSetup
_S
24 24 translate
/pagenum 36 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( along the path understood the mechanism for marking the first packet) s
5 676 M
( of a large initial window.) s
5 654 M
( Obviously there would be a number of questions to consider about an) s
5 643 M
( approach of optimistic sending.) s
5 621 M
( \(1\) Incremental deployment:) s
5 610 M
( One question would be the potential complications of incremental) s
5 599 M
( deployment, where some of the routers along the path might not) s
5 588 M
( understand the packet information describing the initial window.) s
5 566 M
( \(2\) Congestion collapse:) s
5 555 M
( There could also be concerns about congestion collapse if many flows) s
5 544 M
( used large initial windows, many packets were dropped from) s
5 533 M
( optimistic initial windows, and many congested links ended up) s
5 522 M
( carrying packets that are only going to be dropped downstream.) s
5 500 M
( \(3\) Distributed Denial of Service attacks:) s
5 489 M
( A third key question would be the potential role of optimistic) s
5 478 M
( sender in amplifying the damage done by a Distributed Denial of) s
5 467 M
( Service \(DDoS\) attack.) s
5 445 M
( \(4\) Performance hits if a packet is dropped:) s
5 434 M
( A fourth issue would be to quantify the performance hit to the) s
5 423 M
( connection when a packet is dropped from one of the initial windows.) s
5 390 M
(7.3. Fast Start-ups with other Information from Routers) s
5 368 M
( There have been several proposals somewhat similar to Quick-Start,) s
5 357 M
( where the transport protocol collects explicit information from the) s
5 346 M
( routers along the path.) s
5 324 M
( An IP Option about the free buffer size:) s
5 313 M
( In related work, Joon-Sang Park and John Heidemann investigated the) s
5 302 M
( use of a slightly different IP option for TCP connections to) s
5 291 M
( discover the available bandwidth along the path [P00]. In that) s
5 280 M
( proposal, the IP option would query the routers along the path about) s
5 269 M
( the smallest available free buffer size. Also, the IP option would) s
5 258 M
( have been sent after the initial SYN exchange, when the TCP sender) s
5 247 M
( already had an estimate of the round-trip time.) s
5 225 M
( The Performance Transparency Protocol:) s
5 214 M
( The Performance Transparency Protocol \(PTP\) includes a proposal for) s
5 203 M
( a single PTP packet that would collect information from routers) s
5 192 M
( along the path from the sender to the receiver [W00]. For example,) s
5 181 M
( a single PTP packet could be used to determine the bottleneck) s
5 170 M
( bandwidth along a path.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 7.3. [Page 36]) s
_R
S
%%Page: (37) 37
%%BeginPageSetup
_S
24 24 translate
/pagenum 37 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( ETEN:) s
5 676 M
( Additional proposals for end nodes to collect explicit information) s
5 665 M
( from routers include Explicit Transport Error Notification \(ETEN\),) s
5 654 M
( which includes a cumulative mechanism to notify endpoints of) s
5 643 M
( aggregate congestion statistics along the path [KAPS02].) s
5 610 M
(7.4. Fast Start-ups with more Fine-Grained Feedback from Routers) s
5 588 M
( Proposals for more fine-grained congestion-related feedback from) s
5 577 M
( routers include XCP [KHR02] and AntiECN marking [K03]. Section A.6) s
5 566 M
( discusses in more detail the relationship between Quick-Start and) s
5 555 M
( proposals for more fine-grained per-packet feedback from routers.) s
5 533 M
( XCP:) s
5 522 M
( Proposals such as XCP for new congestion control mechanisms based on) s
5 511 M
( more feedback from routers are more powerful than Quick-Start, but) s
5 500 M
( also are more complex to understand and more difficult to deploy.) s
5 489 M
( XCP routers maintain no per-flow state, but provide more fine-) s
5 478 M
( grained feedback to end-nodes than the one-bit congestion feedback) s
5 467 M
( of ECN. The per-packet feedback from XCP can be positive or) s
5 456 M
( negative, and specifies the increase or decrease in the sender's) s
5 445 M
( congestion window when this packet is acknowledged.) s
5 423 M
( AntiECN:) s
5 412 M
( The AntiECN proposal is for a single bit in the packet header that) s
5 401 M
( routers could set to indicate that they are underutilized. For each) s
5 390 M
( TCP ACK arriving at the sender indicating that a packet has been) s
5 379 M
( received with the Anti-ECN bit set, the sender would be able to) s
5 368 M
( increase its congestion window by one packet, as it would during) s
5 357 M
( slow-start.) s
5 324 M
(8. Implementation and Deployment Issues) s
5 302 M
( This section discusses some of the implementation issues with Quick-) s
5 291 M
( Start. This section also discusses some of the key deployment) s
5 280 M
( issues, such as the chicken-and-egg deployment problems of) s
5 269 M
( mechanisms that have to be deployed in both routers and end nodes in) s
5 258 M
( order to work, and the problems posed by the wide deployment of) s
5 247 M
( middleboxes today that block the use of known or unknown IP Options.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 8. [Page 37]) s
_R
S
%%Page: (38) 38
%%BeginPageSetup
_S
24 24 translate
/pagenum 38 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(8.1. Implementation Issues for Sending Quick-Start Requests) s
5 665 M
( Section 4.6 has discussed some of the issues with deciding the) s
5 654 M
( initial sending rate to request. Quick-Start raises additional) s
5 643 M
( issues about the communication between the transport protocol and) s
5 632 M
( the application, and about the use of the past history with Quick-) s
5 621 M
( Start in the end node.) s
5 599 M
( One possibility is that a protocol implementation could provide an) s
5 588 M
( API for applications to indicate when they want to request Quick-) s
5 577 M
( Start, and what rate they would like to request. In the) s
5 566 M
( conventional socket API this could be a socket option that is set) s
5 555 M
( before a connection is established. Some applications, such those) s
5 544 M
( that use TCP for bulk transfers, do not have interest in the) s
5 533 M
( transmission rate, but they might know the amount of data that can) s
5 522 M
( be sent immediately. Based on this, the sender implementation could) s
5 511 M
( decide whether Quick-Start would be useful, and what rate should be) s
5 500 M
( requested. Datagram-based real-time streaming applications, on the) s
5 489 M
( other hand, may have a specific preference on the transmission rate) s
5 478 M
( and they could indicate the required rate explicitly to the) s
5 467 M
( transport protocol to be used in the Quick-Start Request.) s
5 434 M
(8.2. Implementation Issues for Processing Quick-Start Requests) s
5 412 M
( A router or other network host must be able to determine the) s
5 401 M
( approximate bandwidth of its outbound network interfaces in order to) s
5 390 M
( process incoming Quick-Start rate requests, including those that) s
5 379 M
( originate from the host itself. One possibility would be for hosts) s
5 368 M
( to rely on configuration information to determine link bandwidths;) s
5 357 M
( this has the drawback of not being robust to errors in) s
5 346 M
( configuration. Another possibility would be for network device) s
5 335 M
( drivers to infer the bandwidth for the interface and to communicate) s
5 324 M
( this to the IP layer.) s
5 302 M
( Particular issues will arise for wireless links with variable) s
5 291 M
( bandwidth, where decisions will have to be made about how frequently) s
5 280 M
( the network host gets updates of the changing bandwidth. It seems) s
5 269 M
( appropriate that Quick-Start Requests would be handled particularly) s
5 258 M
( conservatively for links with variable bandwidth. to avoid cases) s
5 247 M
( where Quick-Start Requests are approved, the link bandwidth is) s
5 236 M
( reduced, and the data packets that are send end up being dropped.) s
5 203 M
(8.3. Possible Deployment Scenarios) s
5 181 M
( Because of possible problems discussed above concerning using Quick-) s
5 170 M
( Start over some network paths, the most realistic initial deployment) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 8.3. [Page 38]) s
_R
S
%%Page: (39) 39
%%BeginPageSetup
_S
24 24 translate
/pagenum 39 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( of Quick-Start would likely to take place in Intranets and other) s
5 676 M
( controlled environments. Quick-Start is most useful on high) s
5 665 M
( bandwidth-delay paths that are significantly underutilized. The) s
5 654 M
( primary initial users of Quick-Start would likely be in) s
5 643 M
( organizations that provide network services to their users and also) s
5 632 M
( have control over a large portion of the network path.) s
5 610 M
( Below are a few examples of networking environments where Quick-) s
5 599 M
( Start would potentially be useful. These are the environments that) s
5 588 M
( might consider an initial deployment of Quick-Start in the routers) s
5 577 M
( and end-nodes, where the incentives for routers to deploy Quick-) s
5 566 M
( Start might be the most clear.) s
5 544 M
( * Centrally-administrated organizational Intranets often have large) s
5 533 M
( network capacity and the networks are underutilized for most of the) s
5 522 M
( time. with the network nodes along the path administrated by a) s
5 511 M
( single organization. Such Intranets might also include high-) s
5 500 M
( bandwidth and high-delay paths to remote sites. In such an) s
5 489 M
( environment, Quick-Start would be of benefit to users, and there) s
5 478 M
( would be a clear incentive for the deployment of Quick-Start in) s
5 467 M
( routers.) s
5 445 M
( * Quick-Start could also be useful in high-delay environments of) s
5 434 M
( Cellular Wide-Area Wireless Networks such as the GPRS [BW97] and) s
5 423 M
( their enhancements and next generations. For example, GPRS EDGE) s
5 412 M
( \(Enhanced Data for GSM Evolution\) is expected to provide wireless) s
5 401 M
( bandwidth of up to 384 Kbps \(roughly 32 1500-byte packets per) s
5 390 M
( second\) while the GPRS round-trip times are typically up to one) s
5 379 M
( second excluding any possible queueing delays in the network) s
5 368 M
( [GPAR02]. In addition, these networks sometimes have variable) s
5 357 M
( additional delays due to resource allocation that could be avoided) s
5 346 M
( by keeping the connection path constantly utilized, starting from) s
5 335 M
( initial slow start. Thus, Quick-Start could be of significant) s
5 324 M
( benefit to users in these environments.) s
5 302 M
( * Geostationary Orbit \(GEO\) satellite links have one-way propagation) s
5 291 M
( delays on the order of 250 ms while the bandwidth is typically) s
5 280 M
( measured in megabits per second [RFC2488]. Because of the) s
5 269 M
( considerable bandwidth-delay product on the link, TCP's slow start) s
5 258 M
( is a major performance limitation in the beginning of the) s
5 247 M
( connection. A large initial congestion window would be useful to) s
5 236 M
( users of such satellite links.) s
5 203 M
(8.4. Would QuickStart packets take the slow path in routers?) s
5 181 M
( How much delay would the slow path add to the processing time for) s
5 170 M
( this packet? Similarly, if QuickStart packets took the slow path,) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 8.4. [Page 39]) s
_R
S
%%Page: (40) 40
%%BeginPageSetup
_S
24 24 translate
/pagenum 40 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( how much stress would it add to routers for there to be many more) s
5 676 M
( packets on the slow path, because of the number of packets using) s
5 665 M
( QuickStart? These are both questions to be considered for the) s
5 654 M
( deployment of Quick-Start in the Internet.) s
5 621 M
(8.5. A Comparison with the Deployment Problems of ECN) s
5 599 M
( For ECN, only one router along the path has to understand. For) s
5 588 M
( Quick-Start, all of the routers along the path would have to) s
5 577 M
( understand. Also, Quick-Start has the complicating factor of using) s
5 566 M
( IP Options, while ECN uses a field in the IP header itself.) s
5 533 M
(9. Security Considerations) s
5 511 M
( One security consideration would be if Quick-Start resulted in the) s
5 500 M
( sender using an Rate Request that was inappropriately large,) s
5 489 M
( resulting in congestion along the path. Such congestion could) s
5 478 M
( result in an unacceptable level of packet drops along the path.) s
5 467 M
( Such congestion could also be part of a Denial of Service attack.) s
5 445 M
( A misbehaving TCP sender could use a non-conformant initial) s
5 434 M
( congestion window even without the use of Quick-Start, so we) s
5 423 M
( restrict our attention to problems with Quick-Start with conformant) s
5 412 M
( TCP senders. \(We also note that if the TCP sender is a busy web) s
5 401 M
( server, then the TCP sender has some incentive to be conformant in) s
5 390 M
( this regard.\) Section 6.3 discusses the dangers of receivers or) s
5 379 M
( routers lying about the Quick-Start rate request, or about whether) s
5 368 M
( the rate request was approved.) s
5 335 M
(10. Conclusions) s
5 313 M
( We are presenting the Quick-Start mechanism as a proposal for a) s
5 302 M
( simple, understandable, and incrementally-deployable mechanism that) s
5 291 M
( would be sufficient to allow connections to start up with large) s
5 280 M
( initial rates, or large initial congestion windows, in) s
5 269 M
( overprovisioned, high-bandwidth environments. We expect there will) s
5 258 M
( be an increasing number of overprovisioned, high-bandwidth) s
5 247 M
( environments where the Quick-Start mechanism, or another mechanism) s
5 236 M
( of similar power, could be of significant benefit to a wide range of) s
5 225 M
( traffic. We are presenting the Quick-Start mechanism as a request) s
5 214 M
( for feedback from the Internet community in considering these) s
5 203 M
( issues.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section 10. [Page 40]) s
_R
S
%%Page: (41) 41
%%BeginPageSetup
_S
24 24 translate
/pagenum 41 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(11. Acknowledgements) s
5 665 M
( The authors wish to thank Mark Handley for discussions of these) s
5 654 M
( issues. The authors also thank the End-to-End Research Group, the) s
5 643 M
( Transport Services Working Group, and members of IPAM's program on) s
5 632 M
( Large Scale Communication Networks for both positive and negative) s
5 621 M
( feedback on this proposal. We thank Srikanth Sundarrajan for the) s
5 610 M
( initial implementation of Quick-Start in the NS simulator, and for) s
5 599 M
( the initial simulation study. We also thank Mohammed Ashraf, John) s
5 588 M
( Border, Tom Dunigan, John Heidemann, Dina Katabi, and Vern Paxson) s
5 577 M
( for feedback. This draft builds upon the concepts described in) s
5 566 M
( [RFC3390], [AHO98], [RFC2415], and [RFC3168].) s
5 544 M
( This is a modification of a draft originally by Amit Jain for) s
5 533 M
( Initial Window Discovery.) s
5 500 M
(A. Design Decisions) s
5 467 M
(A.1. Alternate Mechanisms for the Quick-Start Request: ICMP and RSVP) s
5 445 M
( This document has proposed using an IP Option for the Quick-Start) s
5 434 M
( Request from the sender to the receiver, and using transport) s
5 423 M
( mechanisms for the Quick-Start Response from the receiver back to) s
5 412 M
( the sender. In this section we discuss alternate mechanisms, and) s
5 401 M
( consider whether ICMP [RFC792, RFC2463] or RSVP [RFC2205] protocols) s
5 390 M
( could be used for delivering the Quick-Start Request.) s
5 357 M
(A.1.1. ICMP) s
5 335 M
( Being a control protocol used between Internet nodes, one could) s
5 324 M
( argue that ICMP is the ideal method for requesting a permission for) s
5 313 M
( faster startup from routers. The ICMP header is above the IP) s
5 302 M
( header. Quick-Start would be done with ICMP as follows: If the ICMP) s
5 291 M
( protocol is used to implement Quick-Start, the equivalent of the) s
5 280 M
( Quick-Start IP option would be carried in the ICMP header of the) s
5 269 M
( ICMP Quick-Start Request. The ICMP Quick-Start Request would have) s
5 258 M
( to pass by the routers on the path to the receiver; for now, we) s
5 247 M
( don't address the mechanisms that would be needed to accomplish) s
5 236 M
( this. A router that approves the Quick-Start Request would take the) s
5 225 M
( same actions as in the case with the Quick-Start IP Option, and) s
5 214 M
( forward the packet to the next router along the path. A router that) s
5 203 M
( does not approve the Quick-Start Request, even with a decreased) s
5 192 M
( value for the Requested Rate, would delete the ICMP Quick-Start) s
5 181 M
( Request, and send an ICMP Reply to the sender that the request was) s
5 170 M
( not approved. If the ICMP Reply was dropped in the network, and did) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.1.1. [Page 41]) s
_R
S
%%Page: (42) 42
%%BeginPageSetup
_S
24 24 translate
/pagenum 42 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( not reach the receiver, the sender would still know that the request) s
5 676 M
( was not approved from the absence of feedback from the receiver. If) s
5 665 M
( the ICMP Quick-Start request was dropped in the network due to) s
5 654 M
( congestion, the sender would assume that the request was not) s
5 643 M
( approved. If the ICMP Quick-Start Request reached the receiver, the) s
5 632 M
( receiver would use transport-level mechanisms to send a response to) s
5 621 M
( the sender, exactly as with the IP Option.) s
5 599 M
( One benefit of using ICMP would be that the delivery of the TCP SYN) s
5 588 M
( packet or other initial packet would not be delayed by IP option) s
5 577 M
( processing at routers. A greater advantage is that if middleboxes) s
5 566 M
( were blocking packets with Quick-Start Requests, using the Quick-) s
5 555 M
( Start Request in a separate ICMP packet would mean that the) s
5 544 M
( middlebox behavior would not affect the connection as a whole. \(To) s
5 533 M
( get this robustness to middleboxes with TCP using an IP Quick-Start) s
5 522 M
( Option, one would have to have a TCP-level Quick-Start Request) s
5 511 M
( packet that was sent concurrently but separately from the TCP SYN) s
5 500 M
( packet.\)) s
5 478 M
( However, there are a number of disadvantages to using ICMP. Some) s
5 467 M
( firewalls and middleboxes may not forward the ICMP Quick-Start) s
5 456 M
( Request packets. \(If the ICMP Reply packet is dropped in the) s
5 445 M
( network, this is not a problem, as we stated above.\) In addition, it) s
5 434 M
( would be difficult, if not impossible, for a router in the middle of) s
5 423 M
( an IP tunnel to deliver an ICMP Reply packet to the actual source,) s
5 412 M
( for example when the inner IP header is encrypted as in IPsec tunnel) s
5 401 M
( mode [RFC2401]. Again, however, the ICMP Reply packet would not be) s
5 390 M
( essential to the correct operation of ICMP Quick-Start.) s
5 368 M
( Unauthenticated out-of-band ICMP messages could enable some types of) s
5 357 M
( attacks by third-party malicious hosts that are not possible when) s
5 346 M
( the control information is carried in-band with the IP packets that) s
5 335 M
( can only be altered by the routers on the connection path. Finally,) s
5 324 M
( as a minor concern, using ICMP would cause a small amount of) s
5 313 M
( additional traffic in the network, which is not the case when using) s
5 302 M
( IP options.) s
5 269 M
(A.1.2. RSVP) s
5 247 M
( With some modifications RSVP [RFC2205] could be used as a bearer) s
5 236 M
( protocol for carrying the Quick-Start Requests. Because routers are) s
5 225 M
( expected to process RSVP packets more extensively than the normal) s
5 214 M
( transport protocol IP packets, delivering a Quick-Start rate request) s
5 203 M
( using an RSVP packet would seem an appealing choice. However, Quick-) s
5 192 M
( Start with RSVP would require a few differences from the) s
5 181 M
( conventional usage of RSVP. Quick-Start would not require periodical) s
5 170 M
( refreshing of soft state, because Quick-Start does not require per-) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.1.2. [Page 42]) s
_R
S
%%Page: (43) 43
%%BeginPageSetup
_S
24 24 translate
/pagenum 43 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( connection state in routers. Quick-Start Requests would be) s
5 676 M
( transmitted downstream from the sender to receiver in the RSVP Path) s
5 665 M
( messages, which is different from the conventional RSVP model where) s
5 654 M
( the reservations originate from the receiver. Furthermore, the) s
5 643 M
( Quick-Start Response would be sent using the transport-level) s
5 632 M
( mechanisms instead of using the RSVP Resv message.) s
5 610 M
( If RSVP was used for carrying a Quick-Start Request, a new "Quick-) s
5 599 M
( Start Request" class object would be included in the RSVP Path) s
5 588 M
( message that is sent from the sender to receiver. The object would) s
5 577 M
( contain the rate request field in addition to the common length and) s
5 566 M
( type fields. The Send_TTL field in the RSVP common header could be) s
5 555 M
( used as the equivalent of the QS TTL field. The Quick-Start capable) s
5 544 M
( routers along the path would inspect the Quick-Start Request object) s
5 533 M
( in the RSVP Path message, decrement Send_TTL and adjust the rate) s
5 522 M
( request field if needed. If an RSVP router did not understand the) s
5 511 M
( Quick-Start Request object, it would reject the entire RSVP message) s
5 500 M
( and send an RSVP PathErr message back to the sender. When an RSVP) s
5 489 M
( message with the Quick-Start Request object reaches the receiver,) s
5 478 M
( the receiver sends a Quick-Start Reply message in the corresponding) s
5 467 M
( transport protocol header in the same way as described in the) s
5 456 M
( context of IP options earlier. If the RSVP message with the Quick-) s
5 445 M
( Start Request object was dropped along the path, the transport) s
5 434 M
( sender would simply proceed with the normal congestion control) s
5 423 M
( procedures.) s
5 401 M
( Much of the discussion about benefits and drawbacks of using ICMP) s
5 390 M
( for making the Quick-Start Request also applies to the RSVP case. If) s
5 379 M
( the Quick-Start Request was transmitted in a separate packet instead) s
5 368 M
( of as an IP option, the transport protocol packet delivery would not) s
5 357 M
( be delayed due to IP option processing at the routers, and the) s
5 346 M
( initial transport packets would reach their destination more) s
5 335 M
( reliably. The possible disadvantages of using ICMP and RSVP are also) s
5 324 M
( expected to be similar: middleboxes in the network may not be able) s
5 313 M
( to forward the Quick-Start Request messages, and the IP tunnels) s
5 302 M
( might cause problems for processing the Quick-Start Requests.) s
5 269 M
(A.2. Alternate Encoding Functions) s
5 247 M
( In this section we look at alternate encoding functions for the Rate) s
5 236 M
( Request field in the Quick-Start Request. The main requirements for) s
5 225 M
( this function is that it should have a sufficiently wide range for) s
5 214 M
( the requested rate. There is no need for overly-fine-grained) s
5 203 M
( precision in the requested rate. Similarly, while it would be) s
5 192 M
( attractive for the encoding function to be easily computable, it is) s
5 181 M
( also possible for end-nodes and routers to simply store the) s
5 170 M
( 256-entry table giving the mapping between the value N in the Rate) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.2. [Page 43]) s
_R
S
%%Page: (44) 44
%%BeginPageSetup
_S
24 24 translate
/pagenum 44 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Request field, and the actual rate request f\(N\).) s
5 665 M
( Linear functions:) s
5 654 M
( The Quick-Start Request contains an 8-bit field for the Rate) s
5 643 M
( Request. One possible proposal would be for this field to be) s
5 632 M
( formatted in bits per second, scaled so that one unit equals 80) s
5 621 M
( Kbps. Thus, for the value N in the Rate Request field, the) s
5 610 M
( requested rate is 80,000*N bps. This gives a request range between) s
5 599 M
( 80 Kbps and 20.48 Mbps. For 1500-byte packets, this corresponds to) s
5 588 M
( a request range between 6 and 1706 packets per second.) s
5 566 M
( Powers of two:) s
5 555 M
( If a granularity of factors of two is sufficient for the Rate) s
5 544 M
( Request, then the encoding function with the most range would be for) s
5 533 M
( the requested rate to be K*2^N, for N the value in the Rate Request) s
5 522 M
( field, and for K some constant. For N=0, the rate request would be) s
5 511 M
( set to zero, regardless of the encoding function. For example, for) s
5 500 M
( K=40,000, the request range would be from 80 Kbps to 40*2^256 Kbps.) s
5 489 M
( This clearly would be an unnecessarily large request range.) s
5 467 M
( For a four-bit Rate Request field, the upper limit on the rate) s
5 456 M
( request is 1.3 Gbps. It is possible that an upper limit of 1.3 Gbps) s
5 445 M
( would be fine for the Quick-Start rate request, and that connections) s
5 434 M
( wishing to start up with a higher initial sending rate should be) s
5 423 M
( encouraged to use other mechanisms, such as the explicit reservation) s
5 412 M
( of bandwidth. If an upper limit of 1.3 Gbps is not acceptable, then) s
5 401 M
( five bits could be used for the Rate Request field.) s
5 379 M
( If the granularity of factors of two is too coarse, then the) s
5 368 M
( encoding function could use a base less than two. An alternate form) s
5 357 M
( for the encoding function would be to use a hybrid of linear and) s
5 346 M
( exponential functions.) s
5 324 M
( We note that the Rate Request also has to be constrained by the) s
5 313 M
( abilities of the transport protocol. For example, for TCP with) s
5 302 M
( Window Scaling, the maximum window is at most 2**30 bytes. For a) s
5 291 M
( TCP connection with a long, 1 second round-trip time, this would) s
5 280 M
( give a maximum sending rate of 1.07 Gbps.) s
5 247 M
(A.3. The Quick-Start Request: Packets or Bytes?) s
5 225 M
( One of the design questions is whether the Rate Request field should) s
5 214 M
( be in bytes per second or in packets per second. We will discuss) s
5 203 M
( this separately from the perspective of the transport, and from the) s
5 192 M
( perspective of the router.) s
5 170 M
( For TCP, the results from the Quick-Start Request are translated) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.3. [Page 44]) s
_R
S
%%Page: (45) 45
%%BeginPageSetup
_S
24 24 translate
/pagenum 45 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( into a congestion window in bytes, using the measured round-trip) s
5 676 M
( time and the MSS. This window applies only to the bytes of data) s
5 665 M
( payload, and does not include the bytes in the TCP or IP packet) s
5 654 M
( headers. Other transport protocols would conceivably use the Quick-) s
5 643 M
( Start Request directly in packets per second, or could translate the) s
5 632 M
( Quick-Start Request to a congestion window in packets.) s
5 610 M
( The assumption of this draft is that the router only approves the) s
5 599 M
( Quick-Start Request when the output link is significantly) s
5 588 M
( underutilized. For this, the router could measure the available) s
5 577 M
( bandwidth in bytes per second, or could convert between packets and) s
5 566 M
( bytes by some mechanism.) s
5 544 M
( If the Quick-Start Request was in bytes per second, and applied only) s
5 533 M
( to the data payload, then the router would have to convert from) s
5 522 M
( bytes per second of data payload, to bytes per second of packets on) s
5 511 M
( the wire. If the Rate Request field was in bytes per second and the) s
5 500 M
( sender ended up using very small packets, this could translate to a) s
5 489 M
( significantly larger number in terms of bytes per second on the) s
5 478 M
( wire. Therefore, for a Quick-Start Request in bytes per second, it) s
5 467 M
( makes most sense for this to include the transport and IP headers as) s
5 456 M
( well as the data payload. Of course, this will be at best a rough) s
5 445 M
( approximation on the part of the sender; the transport-level sender) s
5 434 M
( might not know the size of the transport and IP headers in bytes,) s
5 423 M
( and might know nothing at all about the separate headers added in IP) s
5 412 M
( tunnels downstream. This rough estimate seems sufficient, however,) s
5 401 M
( given the overall lack of fine precision in Quick-Start) s
5 390 M
( functionality.) s
5 368 M
( It has been suggested that the router could possibly use information) s
5 357 M
( from the MSS option in the TCP packet header of the SYN packet to) s
5 346 M
( convert the Quick-Start Request from packets per second to bytes per) s
5 335 M
( second, or vice versa. The MSS option is defined as the maximum MSS) s
5 324 M
( that the TCP sender expects to receive, not the maximum MSS that the) s
5 313 M
( TCP sender plans to send [RFC793]. However, it is probably often) s
5 302 M
( the case that this MSS also applies as an upper bound on the MSS) s
5 291 M
( used by the TCP sender in sending.) s
5 269 M
( We note that the sender does not necessarily know the Path MTU when) s
5 258 M
( the Quick-Start Request is sent, or when the initial window of data) s
5 247 M
( is sent. Thus, with IPv4, packets from the initial window could end) s
5 236 M
( up being fragmented in the network if the "Don't Fragment" \(DF\) bit) s
5 225 M
( is not set [RFC1191]. A Rate Request in bytes per second is) s
5 214 M
( reasonably robust to fragmentation. Clearly a Rate Request in) s
5 203 M
( packets per second is less robust in the presence of fragmentation.) s
5 192 M
( Interactions between larger initial windows and Path MTU Discovery) s
5 181 M
( are discussed in more detail in RFC 3390 [RFC3390].) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.3. [Page 45]) s
_R
S
%%Page: (46) 46
%%BeginPageSetup
_S
24 24 translate
/pagenum 46 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( For a Quick-Start Request in bytes per second, the transport senders) s
5 676 M
( would have the additional complication of estimating the bandwidth) s
5 665 M
( usage added by the packet headers.) s
5 643 M
( We have chosen an Rate Request field in bytes per second rather than) s
5 632 M
( in packets per second because it seems somewhat more robust,) s
5 621 M
( particularly to routers.) s
5 588 M
(A.4. Quick-Start Semantics: Total Rate or Additional Rate?) s
5 566 M
( For a Quick-Start Request sent in the middle of a connection, there) s
5 555 M
( are two possible semantics for the Rate Request field, as follows:) s
5 533 M
( \(1\) Total Rate: The requested Rate Request is the requested total) s
5 522 M
( rate for the connection, including the current rate; or) s
5 500 M
( \(2\) Additional Rate: The requested Rate Request is the requested) s
5 489 M
( increase in the total rate for that connection, over and above the) s
5 478 M
( current sending rate.) s
5 456 M
( In this section we consider briefly the tradeoffs between these two) s
5 445 M
( options, and explain why we have chosen the `Total Rate' semantics.) s
5 423 M
( The Total Rate semantics makes it easier for routers to ``allocate'') s
5 412 M
( the same rate to all connections. This lends itself to fairness,) s
5 401 M
( and improves convergence times between old and new connections.) s
5 379 M
( The Additional Rate semantics lends itself to gaming by the) s
5 368 M
( connection, with the sender sending frequent Quick-Start Requests in) s
5 357 M
( the hope of gaining a higher rate.) s
5 335 M
( For either of these alternatives, there would not be room to report) s
5 324 M
( the current sending rate in the Quick-Start Option using the current) s
5 313 M
( minimal format for the Quick-Start Request. Thus, either the Quick-) s
5 302 M
( Start Option would have to take more than four bytes to include a) s
5 291 M
( report of the current sending rate, or the current sending rate) s
5 280 M
( would not be reported to the routers.) s
5 236 M
(A.5. Alternate Responses to the Loss of a Quick-Start Packet) s
5 214 M
( Section 4.5 discusses TCP's response to the loss of a Quick-Start) s
5 203 M
( packet in the initial window. This section discusses several) s
5 192 M
( alternate responses.) s
5 170 M
( One possible alternative to reverting to the default slow-start) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.5. [Page 46]) s
_R
S
%%Page: (47) 47
%%BeginPageSetup
_S
24 24 translate
/pagenum 47 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( after the loss of a Quick-Start packet from the initial window would) s
5 676 M
( have been to halve the congestion window and continue in congestion) s
5 665 M
( avoidance. However, we note that this would not have been a) s
5 654 M
( desirable response for either the connection or for the network as a) s
5 643 M
( whole. The packet loss in the initial window indicates that Quick-) s
5 632 M
( Start failed in finding an appropriate congestion window, meaning) s
5 621 M
( that the congestion window after halving may easily also be wrong.) s
5 599 M
( A more moderate alternate would be to continue in congestion) s
5 588 M
( avoidance from a window of \(W-D\)/2, where W is the Quick-Start) s
5 577 M
( congestion window, and D is the number of packets dropped or marked) s
5 566 M
( from that window.) s
5 533 M
(A.6. Why Not Include More Functionality?) s
5 511 M
( As Section 6.5 discussed, this proposal for Quick-Start is a rather) s
5 500 M
( coarse-grained mechanism that would allow connections to use larger) s
5 489 M
( initial windows along underutilized paths, but that does not attempt) s
5 478 M
( to provide a next-generation transport protocol, and does not) s
5 467 M
( attempt the goal of providing very high throughput with very low) s
5 456 M
( delay. As Section 7.4 discusses, there are a number of proposals) s
5 445 M
( such as XCP and AntiECN for more fine-grained per-packet feedback) s
5 434 M
( from routers that the current congestion control mechanisms, that do) s
5 423 M
( attempt these more ambitious goals.) s
5 401 M
( Compared to proposals such as XCP and AntiECN, Quick-Start offers) s
5 390 M
( much less control; Quick-Start does not attempt to provide a new) s
5 379 M
( congestion control mechanism, but simply to get permission from) s
5 368 M
( routers for a higher sending rate at start-up, or after an idle) s
5 357 M
( period. At the same time, Quick-Start would allow larger initial) s
5 346 M
( windows that would proposals such as AntiECN, requires less input to) s
5 335 M
( routers than XCP, and would require less frequent feedback from) s
5 324 M
( routers than any new congestion control mechanism. Thus, Quick-) s
5 313 M
( Start is less powerful in general than proposals for new congestion) s
5 302 M
( control mechanisms such as XCP and AntiECN, but as powerful or more) s
5 291 M
( powerful in terms of the specific issue of allowing larger initial) s
5 280 M
( windows, and \(we think\) more amenable to incremental deployment in) s
5 269 M
( the current Internet.) s
5 247 M
( We do not discuss proposals such as XCP in detail, but simply note) s
5 236 M
( that there are a number of open questions. One question concerns) s
5 225 M
( whether there is a pressing need for more sophisticated congestion) s
5 214 M
( control mechanisms such as XCP in the Internet. Quick-Start is) s
5 203 M
( inherently a rather crude tool that does not deliver assurances) s
5 192 M
( about maintaining high link utilization and low queueing delay;) s
5 181 M
( Quick-Start is designed for use in environments that are) s
5 170 M
( significantly underutilized, and addresses the single question of) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.6. [Page 47]) s
_R
S
%%Page: (48) 48
%%BeginPageSetup
_S
24 24 translate
/pagenum 48 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( whether a higher sending rate is allowed. New congestion control) s
5 676 M
( mechanisms with more fine-grained feedback from routers could allow) s
5 665 M
( faster startups even in environments with rather high link) s
5 654 M
( utilization. Is this a pressing requirement? Are the other) s
5 643 M
( benefits of more fine-grained congestion control feedback from) s
5 632 M
( routers a pressing requirement?) s
5 610 M
( We would argue that even if more fine-grained per-packet feedback) s
5 599 M
( from routers was implemented, it is reasonable to have a separate) s
5 588 M
( mechanism such as Quick-Start for indicating an allowed initial) s
5 577 M
( sending rate, or an allowed total sending rate after an idle or) s
5 566 M
( underutilized period.) s
5 544 M
( One fundamental difference between Quick-Start and current proposals) s
5 533 M
( for fine-grained per-packet feedback is that the feedback of Quick-) s
5 522 M
( Start is per-connection, giving an allowed sending rate for the) s
5 511 M
( connection as a whole, while the proposals for per-packet feedback) s
5 500 M
( for congestion control are about the increase or decrease in the) s
5 489 M
( rate or window per-packet, when a particular data packet is) s
5 478 M
( acknowledged.) s
5 456 M
( A second difference is that unlike per-packet feedback, Quick-Start) s
5 445 M
( lends itself to more than just a few bits of feedback from routers) s
5 434 M
( to indicate the initial sending rate allowed by the router. While) s
5 423 M
( XCP also allocates a byte for per-packet feedback, there has been) s
5 412 M
( discussion of variants of XCP with less per-packet feedback. This) s
5 401 M
( would be more like other proposals such as anti-ECN that use a) s
5 390 M
( single bit of feedback from routers to indicate that the sender can) s
5 379 M
( increase as fast as slow-starting, in response to this particular) s
5 368 M
( packet acknowledgement. In general, there is probably considerable) s
5 357 M
( power in fine-grained proposals with only two bits of feedback,) s
5 346 M
( indicating that the sender should decrease, maintain, or increase) s
5 335 M
( the sending rate or window when this packet is acknowledged.) s
5 324 M
( However, the power of Quick-Start would be considerably limited if) s
5 313 M
( it was restricted to only two bits of feedback; it seems likely that) s
5 302 M
( determining the initial sending rate fundamentally requires more) s
5 291 M
( bits of feedback from routers than does the everyday, per-packet) s
5 280 M
( feedback to increase or decrease the sending rate.) s
5 258 M
( On a more practical level, one difference between Quick-Start and) s
5 247 M
( proposals for per-packet feedback is that there are fewer open) s
5 236 M
( issues with Quick-Start than there would be with a new congestion) s
5 225 M
( control mechanism. For example, for a mechanism for requesting a) s
5 214 M
( initial sending rate, the fairness issues of a general congestion) s
5 203 M
( control mechanism go away, and there is no need for the end nodes to) s
5 192 M
( tell the routers the round-trip time and congestion window, as is) s
5 181 M
( done in XCP; all that is needed is for the end nodes to report the) s
5 170 M
( requested sending rate.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.6. [Page 48]) s
_R
S
%%Page: (49) 49
%%BeginPageSetup
_S
24 24 translate
/pagenum 49 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Proposals for) s
5 676 M
( Quick-Start Per-Packet Feedback) s
5 665 M
( +------------------+----------------------+----------------------+) s
5 654 M
( Semantics: | Allowed sending rate | Change in rate/window,) s
5 643 M
( | per connection. | per-packet.) s
5 632 M
( +------------------+----------------------+----------------------+) s
5 621 M
( Relationship to | In addition. | Replacement.) s
5 610 M
( congestion ctrl: | |) s
5 599 M
( +------------------+----------------------+----------------------+) s
5 588 M
( Frequency: | Start-up, or after | Every packet.) s
5 577 M
( | an idle period. |) s
5 566 M
( +------------------+----------------------+----------------------+) s
5 555 M
( Limitations: | Only useful on | General congestion) s
5 544 M
( | underutilized paths.| control mechanism.) s
5 533 M
( +------------------+----------------------+----------------------+) s
5 522 M
( Input to routers: | Rate request. | RTT, cwnd, request \(XCP\).) s
5 511 M
( | | None \(Anti-ECN\).) s
5 500 M
( +------------------+----------------------+----------------------+) s
5 489 M
( Bits of feedback: | One byte. | A few bits would) s
5 478 M
( | | suffice?) s
5 467 M
( +------------------+----------------------+----------------------+) s
5 445 M
( Differences between Quick-Start and Proposals for) s
5 434 M
( Fine-Grained Per-Packet Feedback.) s
5 401 M
( A separate question concerns whether mechanisms such as Quick-Start,) s
5 390 M
( in combination with HighSpeed TCP and other changes in progress,) s
5 379 M
( would make a significant contribution towards meeting some of these) s
5 368 M
( needs for new congestion control mechanisms. This could be viewed) s
5 357 M
( as a positive step of meeting some of the current needs with a) s
5 346 M
( simple and reasonably deployable mechanism, or alternately, as a) s
5 335 M
( negative step of unnecessarily delaying more fundamental changes.) s
5 324 M
( Without answering this question, we would note that our own approach) s
5 313 M
( tends to favor the incremental deployment of relatively simple) s
5 302 M
( mechanisms, as long as the simple mechanisms are not short-term) s
5 291 M
( hacks but mechanisms that lead the overall architecture in the) s
5 280 M
( fundamentally correct direction.) s
5 247 M
(A.7. A QuickStart Nonce?) s
5 225 M
( An earlier version of this document included a QuickStart Nonce that) s
5 214 M
( was initialized by the sender to a non-zero, `random' eight-bit) s
5 203 M
( number, along with a QS TTL that was initialized to the same value) s
5 192 M
( at the TTL in the IP header. The QuickStart Nonce would have been) s
5 181 M
( returned by the TCP receiver to the TCP sender in the Quick-Start) s
5 170 M
( Response. A router could deny the Quick-Start request by failing to) s
5 126 M
(Jain/Floyd/Allman/Sarolahti Section A.7. [Page 49]) s
_R
S
%%Page: (50) 50
%%BeginPageSetup
_S
24 24 translate
/pagenum 50 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( decrement the QS TTL field, by zeroing the QS Nonce field, or by) s
5 676 M
( deleting the Quick-Start Request from the packet header. The QS) s
5 665 M
( Nonce was included to provide some protection against broken) s
5 654 M
( downstream routers, or against misbehaving TCP receivers who might) s
5 643 M
( be inclined to lie about the Rate Request. This protection is now) s
5 632 M
( provided by the use of a random initial value for the QS TTL field.) s
5 610 M
( With the old QuickStart Nonce, along with the QS TTL field set to) s
5 599 M
( the same value as the TTL field in the IP header, the Quick-Start) s
5 588 M
( Request mechanism would have been self-terminating; the Quick-Start) s
5 577 M
( Request would terminate at the first participating router after a) s
5 566 M
( non-participating router had been encountered on the path. This) s
5 555 M
( would have minimized unnecessary overhead incurred by routers) s
5 544 M
( because of option processing for the Quick-Start Request. Thus, one) s
5 533 M
( disadvantage of the new approach with a random initial value for the) s
5 522 M
( QS TTL field is that intermediate routers can no longer determine) s
5 511 M
( when some upstream router has not understood the QuickStart option.) s
5 500 M
( However, a disadvantage of the old approach was that it offered no) s
5 489 M
( protection against downstream routers or the TCP receiver hiding) s
5 478 M
( evidence of upstream routers that do not understand the QuickStart) s
5 467 M
( option.) s
5 434 M
(Normative References) s
5 412 M
( [RFC793] J. Postel, Transmission Control Protocol, RFC 793,) s
5 401 M
( September 1981.) s
5 379 M
( [RFC1191] Mogul, J. and S. Deering, Path MTU Discovery, RFC 1191,) s
5 368 M
( November 1990.) s
5 346 M
( [RFC2460] S. Deering and R. Hinden. Internet Protocol, Version 6) s
5 335 M
( \(IPv6\) Specification. RFC 2460, December 1998.) s
5 313 M
( [RFC2581] M. Allman, V. Paxson, and W. Stevens. TCP Congestion) s
5 302 M
( Control. RFC 2581. April 1999.) s
5 280 M
( [RFC3168] Ramakrishnan, K.K., Floyd, S., and Black, D. The Addition) s
5 269 M
( of Explicit Congestion Notification \(ECN\) to IP. RFC 3168, Proposed) s
5 258 M
( Standard, September 2001.) s
5 236 M
( [RFC3390] M. Allman, S. Floyd, and C. Partridge. Increasing TCP's) s
5 225 M
( Initial Window. RFC 3390, October 2002.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 50]) s
_R
S
%%Page: (51) 51
%%BeginPageSetup
_S
24 24 translate
/pagenum 51 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(Informative References) s
5 665 M
( [RFC792] J. Postel. Internet Control Message Protocol. RFC 792,) s
5 654 M
( September 1981.) s
5 632 M
( [RFC1812] F. Baker \(ed.\). Requirements for IP Version 4 Routers. RFC) s
5 621 M
( 1812, June 1995.) s
5 599 M
( [RFC2140] J. Touch. TCP Control Block Interdependence. RFC 2140.) s
5 588 M
( April 1997.) s
5 566 M
( [RFC2205] R. Braden, et al. Resource ReSerVation Protocol \(RSVP\) --) s
5 555 M
( Version 1 Functional Specification. RFC 2205, September 1997.) s
5 533 M
( [RFC2309] B. Braden, D. Clark, J. Crowcroft, B. Davie, S. Deering,) s
5 522 M
( D. Estrin, S. Floyd, V. Jacobson, G. Minshall, C. Partridge, L.) s
5 511 M
( Peterson, K. Ramakrishnan, S. Shenker, J. Wroclawski, L. Zhang,) s
5 500 M
( Recommendations on Queue Management and Congestion Avoidance in the) s
5 489 M
( Internet, RFC 2309, April 1998.) s
5 467 M
( [RFC2401] S. Kent and R. Atkinson. Security Architecture for the) s
5 456 M
( Internet Protocol. RFC 2401, November 1998.) s
5 434 M
( [RFC2415] K. Poduri and K. Nichols. Simulation Studies of Increased) s
5 423 M
( Initial TCP Window Size. RFC 2415. September 1998.) s
5 401 M
( [RFC2416] T. Shepard and C. Partridge. When TCP Starts Up With Four) s
5 390 M
( Packets Into Only Three Buffers. RFC 2416. September 1998.) s
5 368 M
( [RFC2463] A. Conta and S. Deering. Internet Control Message Protocol) s
5 357 M
( \(ICMPv6\) for the Internet Protocol Version 6 \(IPv6\) Specification.) s
5 346 M
( RFC 2463, December 1998.) s
5 324 M
( [RFC2488] M. Allman, D. Glover, and L. Sanchez. Enhancing TCP Over) s
5 313 M
( Satellite Channels using Standard Mechanisms. RFC 2488. January) s
5 302 M
( 1999.) s
5 280 M
( [RFC2960] R. Stewart, et. al. Stream Control Transmission Protocol.) s
5 269 M
( RFC 2960, October 2000.) s
5 247 M
( [RFC3124] H. Balakrishnan and S. Seshan. The Congestion Manager. RFC) s
5 236 M
( 3124. June 2001.) s
5 214 M
( [RFC3344] C. Perkins \(ed.\). IP Mobility Support for IPv4. RFC 3344,) s
5 203 M
( August 2002.) s
5 181 M
( [RFC3360] S. Floyd. Inappropriate TCP Resets Considered Harmful.) s
5 170 M
( RFC 3360, August 2002.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 51]) s
_R
S
%%Page: (52) 52
%%BeginPageSetup
_S
24 24 translate
/pagenum 52 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( [RFC3775] D. Johnson, C. Perkins, and J. Arkko. Mobility Support in) s
5 676 M
( IPv6. RFC 3775, June 2004.) s
5 654 M
( [AHO98] M. Allman, C. Hayes and S. Ostermann. An evaluation of TCP) s
5 643 M
( with Larger Initial Windows. ACM Computer Communication Review, July) s
5 632 M
( 1998.) s
5 610 M
( [BW97] G. Brasche and B. Walke. Concepts, Services and Protocols of) s
5 599 M
( the new GSM Phase 2+ General Packet Radio Service. IEEE) s
5 588 M
( Communications Magazine, pages 94--104, August 1997.) s
5 566 M
( [FF99] Floyd, S., and Fall, K., Promoting the Use of End-to-End) s
5 555 M
( Congestion Control in the Internet, IEEE/ACM Transactions on) s
5 544 M
( Networking, August 1999.) s
5 522 M
( [F02] Floyd, S., HighSpeed TCP for Large Congestion Windows,) s
5 511 M
( internet-draft draft-floyd-tcp-highspeed-01.txt, work in progress,) s
5 500 M
( August 2002.) s
5 478 M
( [F02a] Floyd, S., Limited Slow-Start for TCP with Large Congestion) s
5 467 M
( Windows, internet-draft draft draft-floyd-tcp-slowstart-01.txt, work) s
5 456 M
( in progress, August 2002.) s
5 434 M
( [GPAR02] A. Gurtov, M. Passoja, O. Aalto, and M. Raitola. Multi-) s
5 423 M
( Layer Protocol Tracing in a GPRS Network. In Proceedings of the IEEE) s
5 412 M
( Vehicular Technology Conference \(Fall VTC2002\), Vancouver, Canada,) s
5 401 M
( September 2002.) s
5 379 M
( [Jac88] V. Jacobson, Congestion Avoidance and Control, ACM SIGCOMM) s
5 357 M
( [JD02] Manish Jain, Constantinos Dovrolis, End-to-End Available) s
5 346 M
( Bandwidth: Measurement Methodology, Dynamics, and Relation with TCP) s
5 335 M
( Throughput, SIGCOMM 2002.) s
5 313 M
( [KHR02] Dina Katabi, Mark Handley, and Charles Rohrs, Internet) s
5 302 M
( Congestion Control for Future High Bandwidth-Delay Product) s
5 291 M
( Environments. ACM Sigcomm 2002, August 2002. URL) s
5 280 M
( "http://ana.lcs.mit.edu/dina/XCP/".) s
5 258 M
( [KHF04] E. Kohler, M. Handley, and S. Floyd, Datagram Congestion) s
5 247 M
( Control Protocol \(DCCP\), internet draft draft-ietf-dccp-spec-07.txt,) s
5 236 M
( work in progress, July 2004.) s
5 214 M
( [K03] S. Kunniyur, "AntiECN Marking: A Marking Scheme for High) s
5 203 M
( Bandwidth Delay Connections", Proceedings, IEEE ICC '03, May 2003.) s
5 192 M
( URL "http://www.seas.upenn.edu/~kunniyur/".) s
5 170 M
( [KAPS02] Rajesh Krishnan, Mark Allman, Craig Partridge, James P.G.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 52]) s
_R
S
%%Page: (53) 53
%%BeginPageSetup
_S
24 24 translate
/pagenum 53 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Sterbenz. Explicit Transport Error Notification \(ETEN\) for Error-) s
5 676 M
( Prone Wireless and Satellite Networks. Technical Report No. 8333,) s
5 665 M
( BBN Technologies, March 2002. URL) s
5 654 M
( "http://roland.lerc.nasa.gov/~mallman/papers/".) s
5 632 M
( [MAF04] Alberto Medina, Mark Allman, and Sally Floyd, Measuring) s
5 621 M
( Interactions Between Transport Protocols and Middleboxes, Internet) s
5 610 M
( Measurement Conference 2004, August 2004. URL) s
5 599 M
( "http://www.icir.org/tbit/".) s
5 577 M
( [PK98] Venkata N. Padmanabhan and Randy H. Katz, TCP Fast Start: A) s
5 566 M
( Technique For Speeding Up Web Transfers, IEEE GLOBECOM '98, November) s
5 555 M
( 1998.) s
5 533 M
( [P00] Joon-Sang Park, Bandwidth Discovery of a TCP Connection,) s
5 522 M
( report to John Jeidemann, 2000, private communication. Citation for) s
5 511 M
( acknowledgement purposes only.) s
5 489 M
( [PRAKS02] Craig Partridge, Dennis Rockwell, Mark Allman, Rajesh) s
5 478 M
( Krishnan, James P.G. Sterbenz. A Swifter Start for TCP. Technical) s
5 467 M
( Report No. 8339, BBN Technologies, March 2002. URL) s
5 456 M
( "http://roland.lerc.nasa.gov/~mallman/papers/".) s
5 434 M
( [S02] Ion Stoica, private communication, 2002. Citation for) s
5 423 M
( acknowledgement purposes only.) s
5 401 M
( [SH02] Srikanth Sundarrajan and John Heidemann. Study of TCP Quick) s
5 390 M
( Start with NS-2. Class Project, December 2002. Not publically) s
5 379 M
( available; citation for acknowledgement purposes only.) s
5 357 M
( [W00] Michael Welzl: PTP: Better Feedback for Adaptive Distributed) s
5 346 M
( Multimedia Applications on the Internet, IPCCC 2000 \(19th IEEE) s
5 335 M
( International Performance, Computing, And Communications) s
5 324 M
( Conference\), Phoenix, Arizona, USA, 20-22 February 2000. URL) s
5 313 M
( "http://informatik.uibk.ac.at/users/c70370/research/publications/".) s
5 291 M
( [W03] Michael Welzl, PMTU-Options: Path MTU Discovery Using Options,) s
5 280 M
( expired internet-draft draft-welzl-pmtud-options-01.txt, work-in-) s
5 269 M
( progress. February 2003.) s
5 236 M
(IANA Considerations) s
5 214 M
( The only IANA Considerations would be the addition of an IP option) s
5 203 M
( to the list of IP options, and the addition of a TCP option to the) s
5 192 M
( list of TCP options.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 53]) s
_R
S
%%Page: (54) 54
%%BeginPageSetup
_S
24 24 translate
/pagenum 54 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
(AUTHORS' ADDRESSES) s
5 654 M
( Amit Jain) s
5 643 M
( F5 Networks) s
5 632 M
( Email : a.jain@f5.com) s
5 610 M
( Sally Floyd) s
5 599 M
( Phone: +1 \(510\) 666-2989) s
5 588 M
( ICIR \(ICSI Center for Internet Research\)) s
5 577 M
( Email: floyd@icir.org) s
5 566 M
( URL: http://www.icir.org/floyd/) s
5 544 M
( Pasi Sarolahti) s
5 533 M
( Nokia Research Center) s
5 522 M
( P.O. Box 407) s
5 511 M
( FI-00045 NOKIA GROUP) s
5 500 M
( Finland) s
5 489 M
( Phone: +358 50 4876607) s
5 478 M
( Email: pasi.sarolahti@iki.fi) s
5 445 M
(Full Copyright Statement) s
5 423 M
( Copyright \(C\) The Internet Society 2004. This document is subject) s
5 412 M
( to the rights, licenses and restrictions contained in BCP 78, and) s
5 401 M
( except as set forth therein, the authors retain all their rights.) s
5 379 M
( This document and the information contained herein are provided on) s
5 368 M
( an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE) s
5 357 M
( REPRESENTS OR IS SPONSORED BY \(IF ANY\), THE INTERNET SOCIETY AND THE) s
5 346 M
( INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR) s
5 335 M
( IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF) s
5 324 M
( THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED) s
5 313 M
( WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.) s
5 280 M
(Intellectual Property) s
5 258 M
( The IETF takes no position regarding the validity or scope of any) s
5 247 M
( Intellectual Property Rights or other rights that might be claimed) s
5 236 M
( to pertain to the implementation or use of the technology described) s
5 225 M
( in this document or the extent to which any license under such) s
5 214 M
( rights might or might not be available; nor does it represent that) s
5 203 M
( it has made any independent effort to identify any such rights.) s
5 192 M
( Information on the procedures with respect to rights in RFC) s
5 181 M
( documents can be found in BCP 78 and BCP 79.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 54]) s
_R
S
%%Page: (55) 55
%%BeginPageSetup
_S
24 24 translate
/pagenum 55 def
/fname (quickstart.txt) def
/fdir () def
/ftail (quickstart.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT Expires: March 2005 September 2004) s
5 687 M
( Copies of IPR disclosures made to the IETF Secretariat and any) s
5 676 M
( assurances of licenses to be made available, or the result of an) s
5 665 M
( attempt made to obtain a general license or permission for the use) s
5 654 M
( of such proprietary rights by implementers or users of this) s
5 643 M
( specification can be obtained from the IETF on-line IPR repository) s
5 632 M
( at http://www.ietf.org/ipr.) s
5 610 M
( The IETF invites any interested party to bring to its attention any) s
5 599 M
( copyrights, patents or patent applications, or other proprietary) s
5 588 M
( rights that may cover technology that may be required to implement) s
5 577 M
( this standard. Please address the information to the IETF at ietf-) s
5 566 M
( ipr@ietf.org.) s
5 126 M
(Jain/Floyd/Allman/Sarolahti [Page 55]) s
_R
S
%%Trailer
%%Pages: 55
%%DocumentNeededResources: font Courier-Bold Courier
%%EOF
| PAFTECH AB 2003-2026 | 2026-04-23 02:49:20 |