One document matched: draft-amit-quick-start-02.ps
%!PS-Adobe-3.0
%%BoundingBox: 24 24 588 768
%%Title: Enscript Output
%%For: Sally Floyd
%%Creator: GNU enscript 1.6.1
%%CreationDate: Sun Nov 3 19:57:40 2002
%%Orientation: Portrait
%%Pages: (atend)
%%DocumentMedia: Letter 612 792 0 () ()
%%DocumentNeededResources: (atend)
%%EndComments
%%BeginProlog
%%BeginResource: procset Enscript-Prolog 1.6 1
%
% Procedures.
%
/_S { % save current state
/_s save def
} def
/_R { % restore from saved state
_s restore
} def
/S { % showpage protecting gstate
gsave
showpage
grestore
} bind def
/MF { % fontname newfontname -> - make a new encoded font
/newfontname exch def
/fontname exch def
/fontdict fontname findfont def
/newfont fontdict maxlength dict def
fontdict {
exch
dup /FID eq {
% skip FID pair
pop pop
} {
% copy to the new font dictionary
exch newfont 3 1 roll put
} ifelse
} forall
newfont /FontName newfontname put
% insert only valid encoding vectors
encoding_vector length 256 eq {
newfont /Encoding encoding_vector put
} if
newfontname newfont definefont pop
} def
/SF { % fontname width height -> - set a new font
/height exch def
/width exch def
findfont
[width 0 0 height 0 0] makefont setfont
} def
/SUF { % fontname width height -> - set a new user font
/height exch def
/width exch def
/F-gs-user-font MF
/F-gs-user-font width height SF
} def
/M {moveto} bind def
/s {show} bind def
/Box { % x y w h -> - define box path
/d_h exch def /d_w exch def /d_y exch def /d_x exch def
d_x d_y moveto
d_w 0 rlineto
0 d_h rlineto
d_w neg 0 rlineto
closepath
} def
/bgs { % x y height blskip gray str -> - show string with bg color
/str exch def
/gray exch def
/blskip exch def
/height exch def
/y exch def
/x exch def
gsave
x y blskip sub str stringwidth pop height Box
gray setgray
fill
grestore
x y M str s
} def
% Highlight bars.
/highlight_bars { % nlines lineheight output_y_margin gray -> -
gsave
setgray
/ymarg exch def
/lineheight exch def
/nlines exch def
% This 2 is just a magic number to sync highlight lines to text.
0 d_header_y ymarg sub 2 sub translate
/cw d_output_w cols div def
/nrows d_output_h ymarg 2 mul sub lineheight div cvi def
% for each column
0 1 cols 1 sub {
cw mul /xp exch def
% for each rows
0 1 nrows 1 sub {
/rn exch def
rn lineheight mul neg /yp exch def
rn nlines idiv 2 mod 0 eq {
% Draw highlight bar. 4 is just a magic indentation.
xp 4 add yp cw 8 sub lineheight neg Box fill
} if
} for
} for
grestore
} def
% Line highlight bar.
/line_highlight { % x y width height gray -> -
gsave
/gray exch def
Box gray setgray fill
grestore
} def
% Column separator lines.
/column_lines {
gsave
.1 setlinewidth
0 d_footer_h translate
/cw d_output_w cols div def
1 1 cols 1 sub {
cw mul 0 moveto
0 d_output_h rlineto stroke
} for
grestore
} def
% Column borders.
/column_borders {
gsave
.1 setlinewidth
0 d_footer_h moveto
0 d_output_h rlineto
d_output_w 0 rlineto
0 d_output_h neg rlineto
closepath stroke
grestore
} def
% Do the actual underlay drawing
/draw_underlay {
ul_style 0 eq {
ul_str true charpath stroke
} {
ul_str show
} ifelse
} def
% Underlay
/underlay { % - -> -
gsave
0 d_page_h translate
d_page_h neg d_page_w atan rotate
ul_gray setgray
ul_font setfont
/dw d_page_h dup mul d_page_w dup mul add sqrt def
ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto
draw_underlay
grestore
} def
/user_underlay { % - -> -
gsave
ul_x ul_y translate
ul_angle rotate
ul_gray setgray
ul_font setfont
0 0 ul_h_ptsize 2 div sub moveto
draw_underlay
grestore
} def
% Page prefeed
/page_prefeed { % bool -> -
statusdict /prefeed known {
statusdict exch /prefeed exch put
} {
pop
} ifelse
} def
% Wrapped line markers
/wrapped_line_mark { % x y charwith charheight type -> -
/type exch def
/h exch def
/w exch def
/y exch def
/x exch def
type 2 eq {
% Black boxes (like TeX does)
gsave
0 setlinewidth
x w 4 div add y M
0 h rlineto w 2 div 0 rlineto 0 h neg rlineto
closepath fill
grestore
} {
type 3 eq {
% Small arrows
gsave
.2 setlinewidth
x w 2 div add y h 2 div add M
w 4 div 0 rlineto
x w 4 div add y lineto stroke
x w 4 div add w 8 div add y h 4 div add M
x w 4 div add y lineto
w 4 div h 8 div rlineto stroke
grestore
} {
% do nothing
} ifelse
} ifelse
} def
% EPSF import.
/BeginEPSF {
/b4_Inc_state save def % Save state for cleanup
/dict_count countdictstack def % Count objects on dict stack
/op_count count 1 sub def % Count objects on operand stack
userdict begin
/showpage { } def
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [ ] 0 setdash newpath
/languagelevel where {
pop languagelevel
1 ne {
false setstrokeadjust false setoverprint
} if
} if
} bind def
/EndEPSF {
count op_count sub { pos } repeat % Clean up stacks
countdictstack dict_count sub { end } repeat
b4_Inc_state restore
} bind def
% Check PostScript language level.
/languagelevel where {
pop /gs_languagelevel languagelevel def
} {
/gs_languagelevel 1 def
} ifelse
%%EndResource
%%BeginResource: procset Enscript-Encoding-88591 1.6 1
/encoding_vector [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /hyphen /period /slash
/zero /one /two /three
/four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C
/D /E /F /G
/H /I /J /K
/L /M /N /O
/P /Q /R /S
/T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c
/d /e /f /g
/h /i /j /k
/l /m /n /o
/p /q /r /s
/t /u /v /w
/x /y /z /braceleft
/bar /braceright /tilde /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /bullet
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndResource
%%EndProlog
%%BeginSetup
%%IncludeResource: font Courier-Bold
%%IncludeResource: font Courier
/HFpt_w 10 def
/HFpt_h 10 def
/Courier-Bold /HF-gs-font MF
/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def
/Courier /F-gs-font MF
/F-gs-font 10 10 SF
/#copies 1 def
% Pagedevice definitions:
gs_languagelevel 1 gt {
<<
/PageSize [612 792]
>> setpagedevice
} if
/d_page_w 564 def
/d_page_h 744 def
/d_header_x 0 def
/d_header_y 744 def
/d_header_w 564 def
/d_header_h 0 def
/d_footer_x 0 def
/d_footer_y 0 def
/d_footer_w 564 def
/d_footer_h 0 def
/d_output_w 564 def
/d_output_h 744 def
/cols 1 def
%%EndSetup
%%Page: (1) 1
%%BeginPageSetup
_S
24 24 translate
/pagenum 1 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 665 M
(Internet Engineering Task Force Amit K. Jain) s
5 654 M
(INTERNET DRAFT Array Networks) s
5 643 M
(draft-amit-quick-start-02.txt Sally Floyd) s
5 632 M
( ICIR) s
5 621 M
( October, 2002) s
5 577 M
( Quick-Start for TCP and IP) s
5 533 M
( Status of this Memo) s
5 500 M
( This document is an Internet-Draft and is in full conformance with) s
5 489 M
( all provisions of Section 10 of RFC2026.) s
5 467 M
( Internet-Drafts are working documents of the Internet Engineering) s
5 456 M
( Task Force \(IETF\), its areas, and its working groups. Note that other) s
5 445 M
( groups may also distribute working documents as Internet-Drafts.) s
5 423 M
( Internet-Drafts are draft documents valid for a maximum of six months) s
5 412 M
( and may be updated, replaced, or obsoleted by other documents at any) s
5 401 M
( time. It is inappropriate to use Internet- Drafts as reference) s
5 390 M
( 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 280 M
( This draft outlines an optional Quick-Start mechanism for transport) s
5 269 M
( protocols to determine an optional allowed initial congestion window) s
5 258 M
( or initial sending rate at the start of a data transfer. This) s
5 247 M
( mechanism is designed to be used by a range of transport protocols;) s
5 236 M
( however, in this document we only describe its use with TCP and IPv4.) s
5 225 M
( By using Quick-Start, a TCP host, say, host A, would indicate its) s
5 214 M
( desired initial sending rate in packets per second in a Quick Start) s
5 203 M
( Request option in the IP header of the initial TCP SYN or SYN/ACK) s
5 192 M
( packet. Each router in turn could either approve the specified) s
5 181 M
( initial rate, reduce the specified initial rate, or indicate that) s
5 170 M
( nothing above the default initial rate for that protocol would be) s
5 159 M
( allowed. The Quick-Start mechanism also can determine if there are) s
5 148 M
( routers along the path that do not understand the Quick Start Request) s
5 104 M
(Jain [Page 1]) s
_R
S
%%Page: (2) 2
%%BeginPageSetup
_S
24 24 translate
/pagenum 2 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( option, or have not agreed to the initial rate described in the) s
5 654 M
( option. TCP host B communicates the final initial rate to TCP host A) s
5 643 M
( in a transport-level Quick-Start Response in the answering SYN/ACK or) s
5 632 M
( ACK packet. Quick-Start is designed to allow TCP connections to use) s
5 621 M
( high initial windows in circumstances when there is significant) s
5 610 M
( unused bandwidth along the path, and all of the routers along the) s
5 599 M
( path support the Quick-Start Request. This proposal is a request for) s
5 588 M
( feedback from the community.) s
5 566 M
( Changes from draft-amit-quick-start-01.txt:) s
5 555 M
( * Added a discussion in the related work section about the) s
5 544 M
( possibility of optimistically sending a large initial window,) s
5 533 M
( without explicit permission of routers.) s
5 522 M
( * Added a discussion in the related work section about the tradeoffs) s
5 511 M
( of XCP vs. Quick-Start.) s
5 500 M
( * Added a section on "The Quick-Start Request: Packets or Bytes?") s
5 478 M
( Changes from draft-amit-quick-start-00.txt:) s
5 467 M
( * The addition of a citation to [KHR02].) s
5 456 M
( * The addition of a Related Work section.) s
5 445 M
( * Deleted the QS Nonce, in favor of a random initial value for the) s
5 434 M
( QS TTL.) s
5 412 M
(1. Introduction) s
5 390 M
( The life of a TCP connection begins with a question, that is, "With) s
5 379 M
( what rate I can transfer the data?" The question is not answered) s
5 368 M
( explicitly for TCP, but each TCP connection figures out the answer) s
5 357 M
( for itself. This is done by each connection starting with an initial) s
5 346 M
( congestion window \(called cwnd\) of from one to four MSS-sized) s
5 335 M
( segments, for an MSS the Maximum Segment Size in bytes. Currently,) s
5 324 M
( the TCP protocol allows an initial window of three or four segments) s
5 313 M
( [RFC3390]. The TCP connection then probes the network for available) s
5 302 M
( bandwidth using the slow-start procedure, essentially doubling its) s
5 291 M
( congestion window each round-trip time.) s
5 269 M
( The probing mechanism of slow-start is time-consuming and causes an) s
5 258 M
( overhead in terms of queueing delay. It may take a number of round-) s
5 247 M
( trip times in slow-start before the TCP connection begins to fully) s
5 236 M
( use the available bandwidth of the network; it takes log N round-trip) s
5 225 M
( times to build up to a congestion window of N segments. This time in) s
5 214 M
( slow-start is not a problem for large file transfers, where the slow-) s
5 203 M
( start stage is only a fraction of the total transfer time. However,) s
5 192 M
( in the case of moderate-sized web transfers the connection might) s
5 181 M
( carry out its entire transfer in the slow-start phase. In an) s
5 170 M
( underutilized, high-bandwidth network, such a transfer can end up) s
5 159 M
( taking log N round-trip times to transfer the data, where one or two) s
5 148 M
( round-trip times might have sufficed.) s
5 104 M
(Jain [Page 2]) s
_R
S
%%Page: (3) 3
%%BeginPageSetup
_S
24 24 translate
/pagenum 3 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( A fair amount of work has already been done to address the issue of) s
5 654 M
( choosing the initial window for TCP, with RFC 3390 allowing an) s
5 643 M
( initial window of up to four segments [RFC3390]. Our underlying) s
5 632 M
( premise is that explicit feedback from all of the routers along the) s
5 621 M
( path would be required for best-effort connections to use initial) s
5 610 M
( windows higher than four segments.) s
5 588 M
( The Congestion Manager proposes sharing congestion information among) s
5 577 M
( multiple TCP connections with the same endpoints [RFC2140]. With the) s
5 566 M
( Congestion Manager, a new TCP connection could start with a high) s
5 555 M
( initial window if it was sharing the path with a pre-existing TCP) s
5 544 M
( connection, with a high congestion window, to the same destination.) s
5 533 M
( It is also possible that a newly-starting TCP connection could make) s
5 522 M
( use of congestion information from a recently-terminated TCP) s
5 511 M
( connection to the same destination. However, neither of these) s
5 500 M
( approaches are of any use for a connection to a new destination when) s
5 489 M
( there is no existing or recent connection to that destination.) s
5 467 M
( Active Queue Management and Explicit Congestion Notification \(ECN\)) s
5 456 M
( are both based on the router detecting congestion before buffer) s
5 445 M
( overflow [RFC3168]. In a similar but somewhat simpler fashion,) s
5 434 M
( Quick-Start is based on the ability of the router to determine) s
5 423 M
( whether or not the output link is significantly underutilized.) s
5 401 M
(2. Assumptions, General Principles, and Open Questions) s
5 379 M
( This section describes the assumptions and general principles behind) s
5 368 M
( the design of the Quick-Start mechanism.) s
5 346 M
( Assumptions:) s
5 324 M
( * A router can determine reasonably easily if the output link has) s
5 313 M
( been significantly underutilized over a period of time.) s
5 291 M
( * The data transfer in the two directions of a connection traverses) s
5 280 M
( different queues, and possibly even different routers. Thus, any) s
5 269 M
( mechanism for determining the allowed initial window or initial) s
5 258 M
( sending rate would have to be used independently for each direction.) s
5 236 M
( * Any new mechanism must be incrementally deployed, and may not be) s
5 225 M
( supported by all of the routers and/or end-hosts. Thus, any new) s
5 214 M
( mechanism must be able to accommodate non-supporting routers or end-) s
5 203 M
( hosts without disturbing the current Internet semantics.) s
5 181 M
( * After the initial SYN exchange, a TCP data sender would be able to) s
5 170 M
( translate an initial sending rate in packets per second into an) s
5 159 M
( initial congestion window of MSS-sized segments.) s
5 104 M
(Jain [Page 3]) s
_R
S
%%Page: (4) 4
%%BeginPageSetup
_S
24 24 translate
/pagenum 4 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( General Principles:) s
5 643 M
( * In order for best-effort connections to use initial windows higher) s
5 632 M
( than four segments, explicit feedback from all of the routers along) s
5 621 M
( the path would be required.) s
5 599 M
( * A router should only allow an initial sending rate higher than the) s
5 588 M
( transport protocol's default initial rate if the router is) s
5 577 M
( significantly underutilized. Any other approach will result in) s
5 566 M
( either per-flow state at the router, or the possibility of a) s
5 555 M
( \(possibly transient\) queue at the router.) s
5 533 M
( * No per-flow state is kept at the router for this mechanism. In) s
5 522 M
( Quick-Start, the only state kept at the router is the aggregate) s
5 511 M
( initial sending rate authorized over the most recent interval of time) s
5 500 M
( \(e.g., quarter of a second\).) s
5 478 M
( There are also a number of open questions regarding the Quick-Start) s
5 467 M
( mechanism outlined in this draft.) s
5 445 M
( Open Questions:) s
5 423 M
( * Would the benefits of the Quick-Start mechanism be worth the added) s
5 412 M
( complexity?) s
5 390 M
( One drawback of the Quick-Start mechanism is that the SYN and SYN/ACK) s
5 379 M
( packets containing the Quick-Start option would presumeably be) s
5 368 M
( processed in the slow path in routers. This would reduce the) s
5 357 M
( capacity of routers to handle Quick-Start requests, and delay the) s
5 346 M
( initial SYN exchange for the connection.) s
5 324 M
( Another drawback is that Quick-Start would require functionality in) s
5 313 M
( the router to estimate the current link utilization, and to keep) s
5 302 M
( track of the aggregate Quick-Start rate authorized over the last) s
5 291 M
( interval of time. Adding new functionality to routers should not be) s
5 280 M
( done lightly, and any mechanisms that would require new functionality) s
5 269 M
( in routers would have to be carefully considered.) s
5 247 M
( * Apart from the merits and shortcomings of the Quick-Start) s
5 236 M
( mechanism, is there likely to be a compelling need to add explicit) s
5 225 M
( congestion-related feedback from routers over and above the one-bit) s
5 214 M
( feedback from ECN?) s
5 192 M
( * If the answer to the question above is yes, should we be) s
5 181 M
( considering mechanisms that, while more complex, are also) s
5 170 M
( sufficiently more powerful than Quick-Start?) s
5 148 M
( There are a number of such mechanisms that have been proposed in the) s
5 104 M
(Jain [Page 4]) s
_R
S
%%Page: (5) 5
%%BeginPageSetup
_S
24 24 translate
/pagenum 5 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( literature for more fine-grained congestion-related feedback from) s
5 654 M
( routers [KHR02]. Quick-Start is extremely coarse-grained, in that in) s
5 643 M
( its current form it only applies to the initial window of the) s
5 632 M
( connection. Quick-Start also focuses in on the specific issue of) s
5 621 M
( allowing very high initial sending rates for connections over) s
5 610 M
( underutilized, high-bandwidth paths. Quick-Start might first be) s
5 599 M
( deployed, for example, in an overprovisioned high-bandwidth Intranet,) s
5 588 M
( to allow much quicker transfers of best-effort traffic.) s
5 566 M
(3. The Quick-Start Request in IPv4.) s
5 544 M
( Quick-Start would require end-points and routers to work together,) s
5 533 M
( with end-points requesting a higher initial sending rate in the) s
5 522 M
( Quick-Start Request \(QSR\) option in IP, and routers along the path) s
5 511 M
( approving, modifying, or discarding or ignoring \(and therefore) s
5 500 M
( disallowing\) the Quick-Start Request. The receiver would use) s
5 489 M
( transport-level mechanisms to inform the sender of the status of the) s
5 478 M
( Quick-Start Request. We note that the Quick-Start Request implicitly) s
5 467 M
( assumes a unicast transport protocol; we have not considered the use) s
5 456 M
( of the Quick-Start Request for multicast traffic.) s
5 434 M
(3.1. The Quick-Start Request Option for IPv4) s
5 412 M
( The Quick-Start Request for IPv4 would be defined as follows:) s
5 390 M
( 0 1 2 3) s
5 379 M
( +----------+----------+----------+----------+) s
5 368 M
( | Option | Length=4 | QS TTL | Initial |) s
5 357 M
( | | | | Rate |) s
5 346 M
( +----------+----------+----------+----------+) s
5 324 M
( Figure 1. The Quick-Start Request Option for IPv4.) s
5 302 M
( The first byte contains the option field, which includes the one-bit) s
5 291 M
( copy flag, the 2-bit class field, and the 5-bit option number.) s
5 269 M
( The second byte contains the length field, which indicates an option) s
5 258 M
( length of four bytes.) s
5 236 M
( The third byte contains the Quick-Start TTL \(QS TTL\) field. If the) s
5 225 M
( sender decides to use Quick-Start, then the sender sets the QS TTL) s
5 214 M
( field to a random value. Routers that approve the Quick-Start) s
5 203 M
( Request decrement the QS TTL \(mod 256\). The QS TTL is used by the) s
5 192 M
( sender to detect if all of the routers along the path understood and) s
5 181 M
( approved the Quick-Start option.) s
5 159 M
( The TCP sender also calculates and remembers the TTL Diff, the) s
5 148 M
( difference between the TTL value and the QS TTL value in the) s
5 104 M
(Jain [Page 5]) s
_R
S
%%Page: (6) 6
%%BeginPageSetup
_S
24 24 translate
/pagenum 6 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( transmitted SYN packet, as follows:) s
5 643 M
( TTL Diff = \( TTL - QS TTL \) mod 256) s
5 621 M
( The fourth byte is the requested Initial Rate \(IR\) field. The sender) s
5 610 M
( initializes the Initial Rate to the desired initial sending rate.) s
5 599 M
( The current proposal is for this field to be formatted in packets per) s
5 588 M
( 0.1 sec. Routers can approve the Quick-Start Request for a lower) s
5 577 M
( Initial Rate by decreasing the Initial Rate in the Quick-Start) s
5 566 M
( Request.) s
5 544 M
( Note that the one-byte Initial Rate field, formatted in packets per) s
5 533 M
( 0.1 sec, limits the Initial Rate to at most 2560 packets/sec. For) s
5 522 M
( 1500-byte packets, this corresponds to an initial rate of 30 Mbps. A) s
5 511 M
( larger option field, or a different encoding for the one-byte) s
5 500 M
( requested Initial Rate option, would be needed to allow a higher) s
5 489 M
( range for the requested initial rate. One suggestion has been for an) s
5 478 M
( Initial Rate field encoded on a logarithmic scale, to allow a wider) s
5 467 M
( range of Initial Rates.) s
5 445 M
( If the Quick-Start Request is not approved, then the sender uses the) s
5 434 M
( default initial rate or initial window for that transport protocol.) s
5 412 M
(3.1.1. The Quick-Start Request: Packets or Bytes?) s
5 390 M
( One of the design questions is whether the Initial Rate field should) s
5 379 M
( be in bytes per second or in packets per second. We will discuss) s
5 368 M
( this separately from the perspective of the transport, and from the) s
5 357 M
( perspective of the router.) s
5 335 M
( For TCP, the results from the Quick-Start Request are translated into) s
5 324 M
( an initial window in bytes, using the measured round-trip time and) s
5 313 M
( the MSS. This initial window applies only to the bytes of data) s
5 302 M
( payload, and does not include the bytes in the TCP or IP packet) s
5 291 M
( headers. Other transport protocols would conceivably use the Quick-) s
5 280 M
( Start Request directly in packets per second, or could translate the) s
5 269 M
( Quick-Start Request to an initial window in packets.) s
5 247 M
( The assumption of this draft is that the router only approves the) s
5 236 M
( Quick-Start Request when the output link is significantly) s
5 225 M
( underutilized. For this, the router could measure the available) s
5 214 M
( bandwidth in bytes per second, or could convert between packets and) s
5 203 M
( bytes using the MTU of the output link.) s
5 181 M
( If the Quick-Start Request was in bytes per second, and applied only) s
5 170 M
( to the data payload, then the router would have to convert from bytes) s
5 159 M
( per second of data payload, to bytes per second of packets on the) s
5 148 M
( wire. If the Initial Rate field was in bytes per second and the) s
5 104 M
(Jain [Page 6]) s
_R
S
%%Page: (7) 7
%%BeginPageSetup
_S
24 24 translate
/pagenum 7 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( sender ended up using very small packets, this could translate to a) s
5 654 M
( significantly larger number in terms of bytes per second on the wire.) s
5 632 M
( It has been suggested that the router could possibly use information) s
5 621 M
( from the MSS option in the TCP packet header of the SYN packet to) s
5 610 M
( convert the Quick-Start Request from packets per second to bytes per) s
5 599 M
( second, or vice serva. One problem is that the MSS option is defined) s
5 588 M
( as the maximum MSS that the TCP sender expects to receive, not the) s
5 577 M
( maximum MSS that the TCP sender plans to send [RFC793].) s
5 555 M
( We note that the sender does not necessarily know the Path MTU when) s
5 544 M
( the Quick-Start Request is sent, or when the initial window of data) s
5 533 M
( is sent. Thus, packets from the initial window could end up being) s
5 522 M
( fragmented in the network if the "Don't Fragment" \(DF\) bit is not set) s
5 511 M
( [RFC1191]. Interactions between larger initial windows and Path MTU) s
5 500 M
( Discovery are discussed in more detail in RFC 3390 [RFC3390].) s
5 478 M
( We have chosen an Initial Rate field in packets per second rather) s
5 467 M
( than in bytes per second because it seems somewhat more robust) s
5 456 M
( \(avoiding big surprises if the sender ends up using small packets\).) s
5 445 M
( However, we note that more consideration of this issue is probably) s
5 434 M
( needed.) s
5 412 M
(3.2. Processing the Quick-Start Request at Routers) s
5 390 M
( Each participating router can either terminate or forward the Quick-) s
5 379 M
( Start Request. The router terminates the Quick-Start Request if the) s
5 368 M
( router is not underutilized, and therefore has decided not to grant) s
5 357 M
( the Quick-Start Request.) s
5 335 M
( The preferable method for a router to terminate the Quick-Start) s
5 324 M
( Request is to delete the Quick-Start Request from the IP header. A) s
5 313 M
( less preferable but possibly more efficient method is to simply) s
5 302 M
( forward the packet with the Quick-Start Request unchanged, or with) s
5 291 M
( the Initial Rate set to zero.) s
5 269 M
( If the participating router has decided to approve the Quick-Start) s
5 258 M
( Request, it does the following:) s
5 236 M
( * It decrements the QS TTL by one.) s
5 214 M
( * If the router is only willing to approve an Initial Rate less than) s
5 203 M
( that in the Quick-Start Request, then the router puts the new Initial) s
5 192 M
( Rate in that field of the Quick-Start Request.) s
5 170 M
( A non-participating router forwards the Quick-Start Request) s
5 159 M
( unchanged, without decrementing the QS TTL. Of course, the non-) s
5 148 M
( participating router still decrements the TTL field in the IP header,) s
5 104 M
(Jain [Page 7]) s
_R
S
%%Page: (8) 8
%%BeginPageSetup
_S
24 24 translate
/pagenum 8 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( as is required for all routers. As a result, the TCP sender will be) s
5 654 M
( able to detect that the Quick-Start Request is not valid.) s
5 632 M
( A router that modifies or deletes the Quick-Start Request in the IPv4) s
5 621 M
( header also has to update the IPv4 Header checksum.) s
5 599 M
(3.3. Deciding the Permitted Initial Rate at a Router) s
5 577 M
( In this section we briefly outline how a router might decide whether) s
5 566 M
( or not to approve a Quick-Start Request. As an example, the router) s
5 555 M
( could ask the following questions:) s
5 533 M
( * Has the router's output link been underutilized for some time) s
5 522 M
( \(e.g., several seconds\).) s
5 500 M
( * Would the output link remain underutilized if the arrival rate was) s
5 489 M
( to increase by the aggregate initial rate that the router has) s
5 478 M
( approved over the last fraction of a second?) s
5 456 M
( Answering this question requires that the router have some knowledge) s
5 445 M
( of the available bandwidth on the output link for that output queue.) s
5 434 M
( It also requires that the router keep two counters, one indicating) s
5 423 M
( the total aggregate Initial Rates that have been approved over the) s
5 412 M
( recent interval of time, and one for the total aggregate Initial) s
5 401 M
( Rates approved over the previous interval of time. Thus, if an) s
5 390 M
( underutilized router experiences a SYN flood, then the router would) s
5 379 M
( begin to deny Initial Rate requests, even if the router remains) s
5 368 M
( underutilized.) s
5 346 M
( * If the answer to both of the previous questions is Yes, then the) s
5 335 M
( router could approve the Quick-Start Request. The router could allow) s
5 324 M
( an Initial Rate that was a small fraction of the available unused) s
5 313 M
( bandwidth of the output link.) s
5 291 M
(4. The Quick-Start Mechanisms in TCP.) s
5 269 M
( This section describes how the Quick-Start mechanism would be used in) s
5 258 M
( TCP. If a TCP sender, say host A, would like to request Quick-Start,) s
5 247 M
( the TCP sender puts the requested initial sending rate in packets per) s
5 236 M
( second in the Quick-Start Request option in the IP header of the SYN) s
5 225 M
( or SYN/ACK packet, as described above. The TCP host B returns the) s
5 214 M
( Quick-Start Response option in the TCP header in the responding) s
5 203 M
( SYN/ACK packet or ACK packet, respectively, informing host A of the) s
5 192 M
( results of their request.) s
5 170 M
( If the returning packet does not contain a Quick-Start Response, or) s
5 159 M
( contains a Quick-Start Response with the wrong value for the TTL) s
5 148 M
( Diff, then host A has to assume that its Quick-Start request failed.) s
5 104 M
(Jain [Page 8]) s
_R
S
%%Page: (9) 9
%%BeginPageSetup
_S
24 24 translate
/pagenum 9 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( In this case, host A uses TCP's default initial window.) s
5 643 M
( If the returning packet does contain a valid Quick-Start Response,) s
5 632 M
( then host A uses the information in the response, along with its) s
5 621 M
( measurement of the round-trip time, to determine the initial) s
5 610 M
( congestion window. In order to use Quick-Start, the TCP host would) s
5 599 M
( also be required to use rate-based pacing to pace out the packets in) s
5 588 M
( the initial window at the rate indicated in the Quick-Start Response.) s
5 566 M
( In a similar manner, if TCP host B requests Quick-Start in the IP) s
5 555 M
( header of the TCP SYN/ACK packet, then TCP host A returns the Quick-) s
5 544 M
( Start Response in the TCP header of the answering ACK packet. The) s
5 533 M
( two TCP end-hosts can independently decide whether to request Quick-) s
5 522 M
( Start.) s
5 500 M
(4.1. The Quick-Start Response Option in the TCP header) s
5 478 M
( The Quick-Start Response option is as follows:) s
5 456 M
( 0 1 2 3) s
5 445 M
( +----------+----------+----------+----------+) s
5 434 M
( | Kind | Length=4 | Initial | TTL |) s
5 423 M
( | | | Rate | Diff |) s
5 412 M
( +----------+----------+----------+----------+) s
5 390 M
( Figure 2. The Quick-Start Response option in the TCP header.) s
5 368 M
( The first byte of the Quick-Start Response option contains the option) s
5 357 M
( kind, identifying the TCP option.) s
5 335 M
( The second byte of the Quick-Start Response option contains the) s
5 324 M
( length field, specifying the option length in bytes. The length) s
5 313 M
( field is set to four bytes.) s
5 291 M
( The third byte of the Quick-Start Response option contains the) s
5 280 M
( allowed Initial Rate, formatted as in the Quick-Start Request option.) s
5 258 M
( The fourth byte of the TCP option contains the TTL Diff. The TTL) s
5 247 M
( Diff contains the difference, in the received SYN or SYN/ACK packet,) s
5 236 M
( between the TTL field in the IP header and the QS TTL field in the) s
5 225 M
( Quick-Start Request Option.) s
5 203 M
(4.2. Sending the Quick-Start Response) s
5 181 M
( An end host, say host B, that receives a TCP SYN or SYN/ACK packet) s
5 170 M
( containing a Quick-Start Request passes the Quick-Start Request,) s
5 159 M
( along with the value in the TTL field in the IP header, to the) s
5 148 M
( receiving TCP layer.) s
5 104 M
(Jain [Page 9]) s
_R
S
%%Page: (10) 10
%%BeginPageSetup
_S
24 24 translate
/pagenum 10 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( If the TCP host is willing to permit the Quick-Start request, then a) s
5 654 M
( Quick-Start Response option is included in the TCP header of the) s
5 643 M
( answering acknowledgement packet. The Initial Rate in the Quick-) s
5 632 M
( Start Response option is set to the received value of the Initial) s
5 621 M
( Rate in the Quick-Start Request option, or to a lower value if the) s
5 610 M
( TCP receiver is only willing to allow a lower Initial Rate. The TTL) s
5 599 M
( Diff in the Quick-Start Response is set to the difference between the) s
5 588 M
( TTL value and the QS TTL value as follows:) s
5 566 M
( TTL Diff = \( TTL - QS TTL \) mod 256) s
5 544 M
( If the Quick-Start Response is being sent on the SYN/ACK, in response) s
5 533 M
( to a Quick-Start Request on the SYN, then the Quick-Start Response) s
5 522 M
( will be resent if the SYN/ACK has to be retransmitted. If the Quick-) s
5 511 M
( Start Response is being sent on the ACK, in response to the Quick-) s
5 500 M
( Start Request on the SYN/ACK, then the Quick-Start Response has to be) s
5 489 M
( resent on data packets until that TCP host receives an) s
5 478 M
( acknowledgement from the other end.) s
5 456 M
(4.3. Receiving and Using the Quick-Start Response) s
5 434 M
( A TCP host, say TCP host A, that sent a Quick-Start Request in a SYN) s
5 423 M
( or SYN/ACK, and receives an answering Quick-Start Response in the) s
5 412 M
( acknowledgement, first checks that the Quick-Start Response is valid.) s
5 401 M
( The Quick-Start Response is valid if it contains the correct value) s
5 390 M
( for the TTL Diff, and an equal or lesser value for the Initial Rate) s
5 379 M
( than that transmitted in the Quick-Start Request. If this check is) s
5 368 M
( not successful, then the Quick-Start request failed, and the TCP host) s
5 357 M
( uses the default TCP initial window.) s
5 335 M
( If the checks of the TTL Diff and the Initial Rate are successful,) s
5 324 M
( then the TCP host sets its initial congestion window to R*T*MSS) s
5 313 M
( bytes, for R the Initial Rate in packets per second and T the) s
5 302 M
( measured round-trip time in seconds. The TCP host sets a flag that) s
5 291 M
( it is in Quick-Start mode, and while in Quick-Start mode the TCP) s
5 280 M
( sender uses rate-based pacing, pacing out packets at the specified) s
5 269 M
( Initial Rate.) s
5 247 M
( Because the initial SYN packet with the Quick-Start Request) s
5 236 M
( presumeably was not able to use the fast path in routers, the initial) s
5 225 M
( round-trip time measurement might be unnecessarily large. The Quick-) s
5 214 M
( Start mode ends when the TCP host first receives an ACK for one of) s
5 203 M
( the data packets. If the initial congestion window has not been) s
5 192 M
( fully used, then the initial congestion window is decreased to the) s
5 181 M
( amount that has actually been used so far. This should address the) s
5 170 M
( problem of an overly-large congestion window from an overly-large) s
5 159 M
( initial measurement of the round-trip time.) s
5 104 M
(Jain [Page 10]) s
_R
S
%%Page: (11) 11
%%BeginPageSetup
_S
24 24 translate
/pagenum 11 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( After sending the initial window, the TCP sender remains in slow-) s
5 654 M
( start, and continues to increase its congestion window rather) s
5 643 M
( aggressively from one round-trip time to the next. To add) s
5 632 M
( robustness, the TCP sender would be required to use Limited Slow-) s
5 621 M
( Start along with Quick-Start. With Limited Slow-Start, the TCP) s
5 610 M
( sender limits the number of segments by which the congestion window) s
5 599 M
( is increased for one window of data during slow-start [F02a].) s
5 577 M
(4.4. An Example Quick-Start Scenario with TCP) s
5 555 M
( The following is an example scenario in the case when both hosts) s
5 544 M
( request Quick-Start:) s
5 522 M
( * The TCP SYN packet from Host A contains a Quick-Start Request in) s
5 511 M
( the IP header.) s
5 489 M
( * Routers along the forward path modify the Quick-Start Request as) s
5 478 M
( appropriate.) s
5 456 M
( * Host B receives the Quick-Start Request in the SYN packet, and) s
5 445 M
( calculates the TTL Diff. If Host B approves the Quick-Start Request,) s
5 434 M
( then Host B sends a Quick-Start Response in the TCP header of the) s
5 423 M
( SYN/ACK packet. Host B also sends a Quick-Start Request in the IP) s
5 412 M
( header of the SYN/ACK packet.) s
5 390 M
( * Routers along the reverse path modify the Quick-Start Request as) s
5 379 M
( appropriate.) s
5 357 M
( * Host A receives the Quick-Start Response in the SYN/ACK packet, and) s
5 346 M
( checks the TTL Diff and Initial Rate for validity. If they are) s
5 335 M
( valid, then Host A sets its initial congestion window appropriately,) s
5 324 M
( and sets up rate-based pacing to be used with the initial window. If) s
5 313 M
( the Quick-Start Response is not valid, then Host A uses TCP's default) s
5 302 M
( initial window.) s
5 280 M
( Host A also calculates the TTL Diff for the Quick-Start Request in) s
5 269 M
( the incoming SYN/ACK packet, and sends a Quick-Start Response in the) s
5 258 M
( TCP header of the ACK packet.) s
5 236 M
( * Host A repeats sending the Quick-Start Response in data packets at) s
5 225 M
( least once per round-trip time until it receives an acknowledgement) s
5 214 M
( from Host B for one of those data packets.) s
5 192 M
( * Host B receives the Quick-Start Response in an ACK packet, and) s
5 181 M
( checks the TTL Diff and Initial Rate for validity. If the Quick-) s
5 170 M
( Start Response is valid, then Host B sets its initial congestion) s
5 159 M
( window appropriately, and sets up rate-based pacing to be used with) s
5 148 M
( the initial window. If the Quick-Start Response is not valid, then) s
5 104 M
(Jain [Page 11]) s
_R
S
%%Page: (12) 12
%%BeginPageSetup
_S
24 24 translate
/pagenum 12 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( Host B uses TCP's default initial window.) s
5 643 M
(5. Evaluation of Quick-Start) s
5 621 M
( The main benefit of Quick-Start is to the transport connection) s
5 610 M
( itself. For a small TCP transfer of one to five packets, Quick-Start) s
5 599 M
( is probably of very little benefit; at best, it might shorten the) s
5 588 M
( connection lifetime from three to two round-trip times \(including the) s
5 577 M
( round-trip time for connection establishment\). Similarly, for a very) s
5 566 M
( large transfer, where the slow-start phase would have been only a) s
5 555 M
( small fraction of the connection lifetime, Quick-Start would be of) s
5 544 M
( limited benefit. Quick-Start would not significantly shorten the) s
5 533 M
( connection lifetime, but it might eliminate or at least shorten the) s
5 522 M
( start-up phase. However, for moderate-sized connections of N packets) s
5 511 M
( in well-provisioned environments that allow Quick-Start requests of M) s
5 500 M
( packets per second, the use of Quick-Start could shorten the) s
5 489 M
( connection lifetime from log N round-trip times to at most N/M + 1) s
5 478 M
( round-trip times. For large values of N and M, this would be a) s
5 467 M
( dramatic shortening of the connection lifetime.) s
5 445 M
( The main cost of Quick-Start concerns the costs of added complexity) s
5 434 M
( at the routers. The added complexity at the end-points is moderate,) s
5 423 M
( and might easily be outweighed by the benefit of Quick-Start to the) s
5 412 M
( end hosts. The added complexity at the routers is also somewhat) s
5 401 M
( moderate, in that it involves estimating the unused bandwidth on the) s
5 390 M
( output link over the last several seconds, and keeping a counter of) s
5 379 M
( the aggregate Quick-Start rate approved over the last fraction of a) s
5 368 M
( second. However, this added complexity at the routers adds to the) s
5 357 M
( development cycle, and could prevent the addition of other competing) s
5 346 M
( functionality to routers. Thus, careful thought would have to be) s
5 335 M
( given to the addition of Quick-Start to IP.) s
5 313 M
( Another drawback of Quick-Start is that packets containing the Quick-) s
5 302 M
( Start Request message presumeably would not take the fast path in) s
5 291 M
( routers. This would mean extra delay for the end hosts, and extra) s
5 280 M
( processing burden for the routers. This extra burden is mitigated) s
5 269 M
( somewhat by the following factors: only SYN and SYN-ACK packets would) s
5 258 M
( carry the Quick-Start Request option; very small flows of, say, one) s
5 247 M
( to five packets would receive little benefit from Quick-Start, and) s
5 236 M
( presumeably would not use the Quick-Start Request; flows from end) s
5 225 M
( hosts with low-bandwidth access links would receive little benefit) s
5 214 M
( from Quick-Start, and hopefully could be configured not to use the) s
5 203 M
( Quick-Start Request. In addition, in typical environments where most) s
5 192 M
( of the packets belong to large flows, the burden of the Quick-Start) s
5 181 M
( Option on routers would be considerably reduced. Nevertheless, it is) s
5 170 M
( still conceiveable, in the worst case, that up to 10% of the packets) s
5 159 M
( were SYN or SYN/ACK packets using a Quick-Start Request, and this) s
5 148 M
( could slow down the processing of SYN or SYN/ACK packets in routers) s
5 104 M
(Jain [Page 12]) s
_R
S
%%Page: (13) 13
%%BeginPageSetup
_S
24 24 translate
/pagenum 13 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( considerably.) s
5 643 M
( One limitation of Quick-Start is that it presumes that the data) s
5 632 M
( packets of a connection will follow the same path as the SYN or) s
5 621 M
( SYN/ACK packet. If this is not the case, then the connection could) s
5 610 M
( be sending the initial window, at the permitted initial rate, along a) s
5 599 M
( path that was already congested, or that became congested as a result) s
5 588 M
( of this connection. This is, however, similar to what would happen) s
5 577 M
( if the connection's path was changed in the middle of the connection,) s
5 566 M
( when the connection had already established the allowed initial rate.) s
5 544 M
( A problem of any mechanism for feedback from routers at the IP level) s
5 533 M
( is that there can be queues and bottlenecks in the end-to-end path) s
5 522 M
( that are not in IP-level routers. As an example, these include) s
5 511 M
( queues in layer-two Ethernet or ATM networks. The hope would be that) s
5 500 M
( an IP-level router adjacent to such a non-IP queue or bottleneck) s
5 489 M
( would be configured to reject Quick-Start requests if that was) s
5 478 M
( appropriate.) s
5 456 M
( The discussion in this paper has largely been of the Quick-Start) s
5 445 M
( mechanism with default, best-effort traffic. However, Quick-Start) s
5 434 M
( could also be used by traffic using some form of differentiated) s
5 423 M
( services, and routers could take the traffic class into account when) s
5 412 M
( deciding whether or not to grant the Quick-Start request. However,) s
5 401 M
( we would note that routers should be discouraged from granting Quick-) s
5 390 M
( Start requests for higher-priority traffic when this is likely to) s
5 379 M
( result in significant packet loss for lower-priority traffic.) s
5 357 M
( The Quick-Start proposal, taken together with the recent proposal for) s
5 346 M
( HighSpeed TCP [F02], would go a significant way towards extending the) s
5 335 M
( range of performance for best-effort traffic in the Internet.) s
5 324 M
( However, there are many things that the Quick-Start proposal would) s
5 313 M
( not accomplish. For example, Quick-Start as it is currently) s
5 302 M
( specified would not allow flows to ramp-up quickly in the middle of) s
5 291 M
( the connection. Quick-Start would not help in making more precise) s
5 280 M
( use of the available bandwidth, that is, of achieving the goal of) s
5 269 M
( very high throughput with very low delay and very low packet loss) s
5 258 M
( rates. Quick-Start would not give routers any additional power in) s
5 247 M
( allocating bandwidth in the interests of greater fairness, or in) s
5 236 M
( having more control over slow decrease rates of active connections.) s
5 225 M
( One of the open questions is whether the limited capabilities of) s
5 214 M
( Quick-Start are sufficient to warrant standardization and deployment,) s
5 203 M
( or whether more work is needed to explore the space of potential) s
5 192 M
( mechanisms.) s
5 104 M
(Jain [Page 13]) s
_R
S
%%Page: (14) 14
%%BeginPageSetup
_S
24 24 translate
/pagenum 14 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
(6. Other Mechanisms for Fast Start-ups.) s
5 643 M
( Any evaluation of Quick-Start must include evaluating the relative) s
5 632 M
( benefits of approachs that use no explicit information from routers,) s
5 621 M
( and of approaches that use more fine-grained feedback from routers as) s
5 610 M
( part of a larger congestion control mechanism. We discuss three) s
5 599 M
( classes of proposals \(no explicit feedback from routers; explicit) s
5 588 M
( feedback about the initial rate; and more fine-grained feedback from) s
5 577 M
( routers\) in the sections below.) s
5 555 M
(6.1 Faster Start-ups without Explicit Information from Routers) s
5 533 M
( One possibility would be for senders to use information from the) s
5 522 M
( packet streams to learn about the available bandwidth, without) s
5 511 M
( explicit information from routers.) s
5 489 M
( [JD02] explores the use of periodic packet streams to estimate the) s
5 478 M
( available bandwidth along a path. The idea is that the one-way) s
5 467 M
( delays of a periodic packet stream show an increasing trend when the) s
5 456 M
( stream's rate is higher than the available bandwidth. While [JD02]) s
5 445 M
( states that the proposed mechanism does not cause significant) s
5 434 M
( increases in network utilization, losses, or delays when done by one) s
5 423 M
( flow at a time, the approach could be problematic if conducted) s
5 412 M
( concurrently by a number of flows. [JD02] also gives an overview of) s
5 401 M
( some of the earlier work on inferring the available bandwidth from) s
5 390 M
( packet trains.) s
5 368 M
( One possible path for future research would be to explore the limits) s
5 357 M
( of the ability of TCP flows to infer the available bandwidth using) s
5 346 M
( their own packet stream, without explicit feedback from the router.) s
5 335 M
( One advantage of explicit feedback from the router is that it allows) s
5 324 M
( the TCP sender to discover the available bandwidth immediately after) s
5 313 M
( the initial SYN exchange, possibly allowing a very large initial) s
5 302 M
( window. A second advantage of explicit feedback from the router is) s
5 291 M
( that the available bandwidth along the path does not necessarily map) s
5 280 M
( to the allowed sending rate for an individual flow; when multiple) s
5 269 M
( flows are trying to infer their allowed sending rate, the use of) s
5 258 M
( explicit feedback from the router adds considerable robustness.) s
5 247 M
( Nevertheless, it would also be useful to explore the limits of start-) s
5 236 M
( up behavior without explicit feedback from the router.) s
5 214 M
( As an example, if the TCP sender sends four packets back-to-back in) s
5 203 M
( the initial window, and the TCP receiver reports the timing of the) s
5 192 M
( receipt of the data packets, and the data packets were received with) s
5 181 M
( roughly the same spacing as they were transmitted, does this mean) s
5 170 M
( that the flow can infer an underutilized path? What if the round-) s
5 159 M
( trip time is also considerably larger than the transmission time of) s
5 148 M
( the four packets? And if the sender can infer an underutilized path,) s
5 104 M
(Jain [Page 14]) s
_R
S
%%Page: (15) 15
%%BeginPageSetup
_S
24 24 translate
/pagenum 15 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( can the sender increase faster than slow-start for the next window of) s
5 654 M
( data? While it seems clear that approaches *without* explicit) s
5 643 M
( feedback from the routers will be strictly less powerful that is) s
5 632 M
( possible *with* explicit feedback, it is also possible that some) s
5 621 M
( approaches that are more aggressive than slow-start are possible) s
5 610 M
( without explicit feedback from routers. Proposals for the TCP sender) s
5 599 M
( to infer about available bandwidth along the path without explicit) s
5 588 M
( feedback from routers include the Swift Start proposal in [PRAKS02].) s
5 577 M
( Swift Start combines packet-pair and packet-pacing techniques,) s
5 566 M
( beginning with a four-segment burst of packets to estimate the) s
5 555 M
( available bandwidth along the path.) s
5 533 M
( Another possibility that has been suggested [S02] is for the sender) s
5 522 M
( to start with a large initial window without explicit permission from) s
5 511 M
( the routers, and for the first packet of the initial window to) s
5 500 M
( contain information such as the size or sending rate of the initial) s
5 489 M
( window. The proposal would be that routers under congestion would) s
5 478 M
( use this information in the first data packet to drop or delay many) s
5 467 M
( or all of the packets from that initial window. In this way a flow's) s
5 456 M
( optimistically-large initial window would not force the router to) s
5 445 M
( drop packets from competing flows in the network.) s
5 423 M
( Obviously there would be a number of questions to consider about an) s
5 412 M
( approach of optimistic sending. One question would be the potential) s
5 401 M
( complications of incremental deployment, where some of the routers) s
5 390 M
( along the path might not understand the packet information describing) s
5 379 M
( the initial window. There could also be concerns about congestion) s
5 368 M
( collapse if many flows used large initial windows, many complete sets) s
5 357 M
( of initial windows were dropped, and many congested links ended up) s
5 346 M
( carrying packets that are only going to be dropped downstream. A) s
5 335 M
( more thorough understanding of the dangers \(or absence of dangers\) of) s
5 324 M
( such optimistic larger initial windows would be useful.) s
5 302 M
(6.2. Faster Start-ups with other Information from Routers) s
5 280 M
( There have been several proposals similar to Quick-Start where the) s
5 269 M
( transport protocol collects explicit information from the routers) s
5 258 M
( along the path.) s
5 236 M
( In related work, Joon-Sang Park and John Heidemann investigated the) s
5 225 M
( use of a slightly different IP option for TCP connections to discover) s
5 214 M
( the available bandwidth along the path. In that variant, the IP) s
5 203 M
( option would query the routers along the path about the smallest) s
5 192 M
( available free buffer size. Also, the IP option was sent after the) s
5 181 M
( initial SYN exchange, when the TCP sender already had an estimate of) s
5 170 M
( the round-trip time.) s
5 148 M
( The Performance Transparency Protocol \(PTP\) includes a proposal for a) s
5 104 M
(Jain [Page 15]) s
_R
S
%%Page: (16) 16
%%BeginPageSetup
_S
24 24 translate
/pagenum 16 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( single PTP packet that would collect information from routers along) s
5 654 M
( the path from the sender to the receiver [W00]. For example, a) s
5 643 M
( single PTP packet could be used to determine the bottleneck bandwidth) s
5 632 M
( along a path.) s
5 610 M
( Additional proposals for end nodes to collect explicit information) s
5 599 M
( from routers include Explicit Transport Error Notification \(ETEN\),) s
5 588 M
( which includes a cumulative mechanism to notify endpoints of) s
5 577 M
( aggregate congestion statistics along the path [KAPS02].) s
5 555 M
(6.3. Faster Start-ups with more Fine-Grained Feedback from Routers) s
5 533 M
( Proposals for more fine-grained congestion-related feedback from) s
5 522 M
( routers include XCP [KHR02]. Proposals such as XCP are more powerful) s
5 511 M
( than Quick-Start, involving significant changes to the congestion) s
5 500 M
( control mechanisms of the Internet, but also are more complex to) s
5 489 M
( understand and more difficult to deploy.) s
5 467 M
( We do not discuss proposals such as XCP in detail, but simply note) s
5 456 M
( that there are a number of open questions. One question concerns) s
5 445 M
( whether there is a pressing need for more sophisticated congestion) s
5 434 M
( control mechanisms such as XCP in the Internet. Quick-Start is) s
5 423 M
( inherently a rather crude tool that does not deliver assurances about) s
5 412 M
( maintaining high link utilization and low queueing delay, for) s
5 401 M
( example; Quick-Start is designed for use in environments that are) s
5 390 M
( significantly underutilized. More powerful mechanisms with more) s
5 379 M
( fine-grained feedback from routers can allow faster startups even in) s
5 368 M
( environments with rather high link utilization. Is this a pressing) s
5 357 M
( requirement?) s
5 335 M
( A second question concerns whether mechanisms such as Quick-Start, in) s
5 324 M
( combination with HighSpeed TCP and other changes in progress, would) s
5 313 M
( make a significant contribution towards meeting some of these needs) s
5 302 M
( for new functionality. This could be viewed as a positive step of) s
5 291 M
( meeting some of the current needs with a simple and reasonably) s
5 280 M
( deployable mechanism, or alternately, as a negative step of) s
5 269 M
( unnecessarily delaying more fundamental changes. Without answering) s
5 258 M
( this question, we would note that our own approach tends to favor the) s
5 247 M
( incremental deployment of relatively simple mechanisms, as long as) s
5 236 M
( the simple mechanisms are not short-term hacks but mechanisms that) s
5 225 M
( lead the overall architecture in the fundamentally correct direction.) s
5 203 M
(7. Conclusions) s
5 181 M
( We are presenting the Quick-Start mechanism not as a mechanism that) s
5 170 M
( we believe is urgently needed in the current Internet, but rather as) s
5 159 M
( a proposal for a simple, understandable, and incrementally-deployable) s
5 148 M
( mechanism that would be sufficient to allow connections to start up) s
5 104 M
(Jain [Page 16]) s
_R
S
%%Page: (17) 17
%%BeginPageSetup
_S
24 24 translate
/pagenum 17 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( with large initial rates, or large initial congestion windows, in) s
5 654 M
( overprovisioned, high-bandwidth environments. We are not making any) s
5 643 M
( predictions about what it likely to be a typical environment in the) s
5 632 M
( future Internet. However, we expect there will be an increasing) s
5 621 M
( number of overprovisioned, high-bandwidth environments where the) s
5 610 M
( Quick-Start mechanism, or another mechanism of similar power, could) s
5 599 M
( be of significant benefit to a wide range of traffic. We are) s
5 588 M
( presenting the Quick-Start mechanism as a request for feedback from) s
5 577 M
( the Internet community in considering these issues.) s
5 555 M
(8. Acknowledgements) s
5 533 M
( The authors wish to thank Mark Handley for discussions of these) s
5 522 M
( issues. The authors also thank the End-to-End Research Group, the) s
5 511 M
( Transport Services Working Group, and members of IPAM's program on) s
5 500 M
( Large Scale Communication Networks for both positive and negative) s
5 489 M
( feedback on this proposal. We also thank Mark Allman, Mohammed) s
5 478 M
( Ashraf, John Border, Tom Dunigan, John Heidemann, Dina Katabi, and) s
5 467 M
( Vern Paxson for feedback. This draft builds upon the concepts) s
5 456 M
( described in [RFC3390], [AHO98], [RFC2415], and [RFC3168].) s
5 434 M
( This is a modification of a draft originally by Amit Jain for Initial) s
5 423 M
( Window Discovery.) s
5 401 M
(9. Normative References) s
5 379 M
( [RFC793] J. Postel, Transmission Control Protocol, RFC 793, September) s
5 368 M
( 1981.) s
5 346 M
( [RFC1191] Mogul, J. and S. Deering, Path MTU Discovery, RFC 1191,) s
5 335 M
( November 1990.) 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 203 M
(10. Informative References) s
5 181 M
( [AHO98] M. Allman, C. Hayes and S. Ostermann. An evaluation of TCP) s
5 170 M
( with Larger Initial Windows. ACM Computer Communication Review, July) s
5 159 M
( 1998.) s
5 104 M
(Jain [Page 17]) s
_R
S
%%Page: (18) 18
%%BeginPageSetup
_S
24 24 translate
/pagenum 18 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( [FF99] Floyd, S., and Fall, K., Promoting the Use of End-to-End) s
5 654 M
( Congestion Control in the Internet, IEEE/ACM Transactions on) s
5 643 M
( Networking, August 1999.) s
5 621 M
( [F02] Floyd, S., HighSpeed TCP for Large Congestion Windows,) s
5 610 M
( internet-draft draft-floyd-tcp-highspeed-01.txt, work in progress,) s
5 599 M
( August 2002.) s
5 577 M
( [F02a] Floyd, S., Limited Slow-Start for TCP with Large Congestion) s
5 566 M
( Windows, internet-draft draft draft-floyd-tcp-slowstart-01.txt, work) s
5 555 M
( in progress, August 2002.) s
5 533 M
( [JD02] Manish Jain, Constantinos Dovrolis, End-to-End Available) s
5 522 M
( Bandwidth: Measurement Methodology, Dynamics, and Relation with TCP) s
5 511 M
( Throughput, SIGCOMM 2002.) s
5 489 M
( [KAPS02] Rajesh Krishnan, Mark Allman, Craig Partridge, James P.G.) s
5 478 M
( Sterbenz. Explicit Transport Error Notification \(ETEN\) for Error-) s
5 467 M
( Prone Wireless and Satellite Networks. Technical Report No. 8333, BBN) s
5 456 M
( Technologies, March 2002. URL) s
5 445 M
( "http://roland.lerc.nasa.gov/~mallman/papers/".) s
5 423 M
( [KHR02] Dina Katabi, Mark Handley, and Charles Rohrs, "Internet) s
5 412 M
( Congestion Control for Future High Bandwidth-Delay Product) s
5 401 M
( Environments." ACM Sigcomm 2002, August 2002. URL) s
5 390 M
( "http://ana.lcs.mit.edu/dina/XCP/".) s
5 368 M
( [PK98] Venkata N. Padmanabhan and Randy H. Katz, TCP Fast Start: A) s
5 357 M
( Technique For Speeding Up Web Transfers, IEEE GLOBECOM '98, November) s
5 346 M
( 1998.) s
5 324 M
( [PRAKS02] Craig Partridge, Dennis Rockwell, Mark Allman, Rajesh) s
5 313 M
( Krishnan, James P.G. Sterbenz. A Swifter Start for TCP. Technical) s
5 302 M
( Report No. 8339, BBN Technologies, March 2002. URL) s
5 291 M
( "http://roland.lerc.nasa.gov/~mallman/papers/".) s
5 269 M
( [RFC2140] J. Touch. TCP Control Block Interdependence. RFC 2140.) s
5 258 M
( April 1997) s
5 236 M
( [RFC2309] B. Braden, D. Clark, J. Crowcroft, B. Davie, S. Deering, D.) s
5 225 M
( Estrin, S. Floyd, V. Jacobson, G. Minshall, C. Partridge, L.) s
5 214 M
( Peterson, K. Ramakrishnan, S. Shenker, J. Wroclawski, L. Zhang,) s
5 203 M
( Recommendations on Queue Management and Congestion Avoidance in the) s
5 192 M
( Internet, RFC 2309, April 1998.) s
5 170 M
( [RFC2415] K. Poduri and K. Nichols. Simulation Studies of Increased) s
5 159 M
( Initial TCP Window Size. RFC 2415. September 1998.) s
5 104 M
(Jain [Page 18]) s
_R
S
%%Page: (19) 19
%%BeginPageSetup
_S
24 24 translate
/pagenum 19 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( [RFC2416] T. Shepard and C. Partridge. When TCP Starts Up With Four) s
5 654 M
( Packets Into Only Three Buffers. RFC 2416. September 1998.) s
5 632 M
( [W00] Michael Welzl: PTP: Better Feedback for Adaptive Distributed) s
5 621 M
( Multimedia Applications on the Internet, IPCCC 2000 \(19th IEEE) s
5 610 M
( International Performance, Computing, And Communications Conference\),) s
5 599 M
( Phoenix, Arizona, USA, 20-22 February 2000. URL) s
5 588 M
( "http://informatik.uibk.ac.at/users/c70370/research/publications/".) s
5 566 M
( [S02] Ion Stoica, private communication, 2002. Citation for) s
5 555 M
( acknowledgement purposes only.) s
5 533 M
(11. Security Considerations) s
5 511 M
( The only security consideration would be if the use of Quick-Start) s
5 500 M
( resulted in the sender using an Initial Rate that was inappropriately) s
5 489 M
( large, resulting in congestion along the path. Such congestion could) s
5 478 M
( result in an unacceptable level of packet drops along the path. Such) s
5 467 M
( 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 restrict) s
5 423 M
( our attention to problems with Quick-Start with conformant TCP) s
5 412 M
( senders. \(We also note that if the TCP sender is a busy web server,) s
5 401 M
( then the TCP sender has some incentive to be conformant in this) s
5 390 M
( regard.\)) s
5 368 M
( If a router that understands the Quick-Start Request deletes the) s
5 357 M
( Request, or zeroes the QS TTL in the request, then the chances of a) s
5 346 M
( downstream router or misbehaving receiver guessing the value of the) s
5 335 M
( QS TTL is at most 1/256. Thus, deleting the Quick-Start Request) s
5 324 M
( makes it unlikely that the receiver would be able to send a valid) s
5 313 M
( Quick-Start Response back to the sender.) s
5 291 M
( If there are routers along the path that do not understand or approve) s
5 280 M
( of the Quick-Start Request, and that forward the Quick-Start Request) s
5 269 M
( unchanged, it would be not be easy for a downstream router or the) s
5 258 M
( receiver to cheat and modify the QS TTL field so that the request was) s
5 247 M
( considered valid, because the downstream routers do not know the) s
5 236 M
( initial value for the QS TTL.) s
5 214 M
( It would be easy for routers or for the receiver to increase the) s
5 203 M
( Initial Rate, making the Initial Rate higher than that approved by) s
5 192 M
( upstream routers. Routers could only effectively cheat in this) s
5 181 M
( manner if there were no downstream routers that objected to that) s
5 170 M
( Initial Rate. Receivers, however, would easily increase the Initial) s
5 159 M
( Rate returned in the Quick-Start Response, causing unnecessary) s
5 148 M
( congestion for the next round-trip time along the path. However,) s
5 104 M
(Jain [Page 19]) s
_R
S
%%Page: (20) 20
%%BeginPageSetup
_S
24 24 translate
/pagenum 20 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( this higher Initial Rate will only be considered valid by the TCP) s
5 654 M
( sender if it is no higher than the Initial Rate originally requested) s
5 643 M
( by the sender. Thus, this limits the ability of the TCP receiver to) s
5 632 M
( cheat in this regard.) s
5 610 M
(12. IANA Considerations) s
5 588 M
( The only IANA Considerations would be the addition of an IP option to) s
5 577 M
( the list of IP options, and the addition of a TCP option to the list) s
5 566 M
( of TCP options.) s
5 544 M
(13. Discussion of a QuickStart Nonce) s
5 522 M
( An earlier version of this document included a QuickStart Nonce that) s
5 511 M
( was initialized by the sender to a non-zero, `random' eight-bit) s
5 500 M
( number, along with a QS TTL that was initialized to the same value at) s
5 489 M
( the TTL in the IP header. The QuickStart Nonce would have been) s
5 478 M
( returned by the TCP receiver to the TCP sender in the Quick-Start) s
5 467 M
( Response. A router could deny the Quick-Start request by failing to) s
5 456 M
( decrement the QS TTL field, by zeroing the QS Nonce field, or by) s
5 445 M
( deleting the Quick-Start Request from the packet header. The QS) s
5 434 M
( Nonce was included to provide some protection against broken) s
5 423 M
( downstream routers, or against misbehaving TCP receivers who might be) s
5 412 M
( inclined to lie about the Initial Rate. This protection is now) s
5 401 M
( provided by the use of a random initial value for the QS TTL field.) s
5 379 M
( With the old QuickStart Nonce, along with the QS TTL field set to the) s
5 368 M
( same value as the TTL field in the IP header, the Quick-Start Request) s
5 357 M
( mechanism would have been self-terminating; the Quick-Start Request) s
5 346 M
( would terminate at the first participating router after a non-) s
5 335 M
( participating router has been encountered on the path. This would) s
5 324 M
( have minimized unnecessary overhead incurred by routers because of) s
5 313 M
( option processing for the Quick-Start Request. Thus, one) s
5 302 M
( disadvantage of the new approach with a random initial value for the) s
5 291 M
( QS TTL field is that intermediate routers can no longer determine) s
5 280 M
( when some upstream router has not understood the QuickStart option.) s
5 269 M
( However, a disadvantage of the old approach was that it offered no) s
5 258 M
( protection against downstream routers or the TCP receiver hiding) s
5 247 M
( evidence of upstream routers that do not understand the QuickStart) s
5 236 M
( option.) s
5 214 M
( AUTHORS' ADDRESSES) s
5 181 M
( Amit Jain) s
5 170 M
( Array Networks) s
5 159 M
( Email : ajain@arraynetworks.net) s
5 104 M
(Jain [Page 20]) s
_R
S
%%Page: (21) 21
%%BeginPageSetup
_S
24 24 translate
/pagenum 21 def
/fname (draft-amit-quick-start-02.txt) def
/fdir () def
/ftail (draft-amit-quick-start-02.txt) def
/user_header_p false def
%%EndPageSetup
5 698 M
(draft-amit-quick-start-02.txt October 2002) s
5 665 M
( Sally Floyd) s
5 654 M
( Phone: +1 \(510\) 666-2989) s
5 643 M
( ICIR \(ICSI Center for Internet Research\)) s
5 632 M
( Email: floyd@icir.org) s
5 621 M
( URL: http://www.icir.org/floyd/) s
5 104 M
(Jain [Page 21]) s
_R
S
%%Trailer
%%Pages: 21
%%DocumentNeededResources: font Courier-Bold Courier
%%EOF
| PAFTECH AB 2003-2026 | 2026-04-23 02:53:02 |