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-20262026-04-23 02:53:02