One document matched: draft-ietf-tcpm-ecnsyn-07.ps


%!PS-Adobe-3.0
%%BoundingBox: 24 24 588 768
%%Title: Enscript Output
%%For: Sally Floyd
%%Creator: GNU enscript 1.6.1
%%CreationDate: Mon Nov  3 12:17:55 2008
%%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-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 731 M
(Internet Engineering Task Force                            A. Kuzmanovic) s
5 720 M
(INTERNET-DRAFT                                                 A. Mondal) s
5 709 M
(Intended status: Proposed Standard               Northwestern University) s
5 698 M
(Expires: 3 May 2009                                             S. Floyd) s
5 687 M
(Updates: 3168                                                       ICIR) s
5 676 M
(                                                       K.K. Ramakrishnan) s
5 665 M
(                                                                    AT&T) s
5 654 M
(                                                         3 November 2008) s
5 621 M
(        Adding Explicit Congestion Notification \(ECN\) Capability) s
5 610 M
(                        to TCP's SYN/ACK Packets) s
5 599 M
(                     draft-ietf-tcpm-ecnsyn-07.txt) s
5 566 M
(Status of this Memo) s
5 544 M
(   By submitting this Internet-Draft, each author represents that any) s
5 533 M
(   applicable patent or other IPR claims of which he or she is aware) s
5 522 M
(   have been or will be disclosed, and any of which he or she becomes) s
5 511 M
(   aware will be disclosed, in accordance with Section 6 of BCP 79.) s
5 489 M
(   Internet-Drafts are working documents of the Internet Engineering) s
5 478 M
(   Task Force \(IETF\), its areas, and its working groups.  Note that) s
5 467 M
(   other groups may also distribute working documents as Internet-) s
5 456 M
(   Drafts.) s
5 434 M
(   Internet-Drafts are draft documents valid for a maximum of six months) s
5 423 M
(   and may be updated, replaced, or obsoleted by other documents at any) s
5 412 M
(   time.  It is inappropriate to use Internet-Drafts as reference) s
5 401 M
(   material or to cite them other than as "work in progress.") s
5 379 M
(   The list of current Internet-Drafts can be accessed at) s
5 368 M
(   http://www.ietf.org/ietf/1id-abstracts.txt.) s
5 346 M
(   The list of Internet-Draft Shadow Directories can be accessed at) s
5 335 M
(   http://www.ietf.org/shadow.html.) s
5 313 M
(   This Internet-Draft will expire on May 2009.) s
5 291 M
(Copyright Notice) s
5 269 M
(   Copyright \(C\) The IETF Trust \(2008\).) s
5 203 M
(Floyd et al.               Expires: 3 May 2009                  [Page 1]) s
_R
S
%%Page: (2) 2
%%BeginPageSetup
_S
24 24 translate
/pagenum 2 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(Abstract) s
5 665 M
(   This draft specifies a modification to RFC 3168 to allow TCP SYN/ACK) s
5 654 M
(   packets to be ECN-Capable.  For TCP, RFC 3168 only specifies setting) s
5 643 M
(   an ECN-Capable codepoint on data packets, and not on SYN and SYN/ACK) s
5 632 M
(   packets.  However, because of the high cost to the TCP transfer of) s
5 621 M
(   having a SYN/ACK packet dropped, with the resulting retransmit) s
5 610 M
(   timeout, this document specifies the use of ECN for the SYN/ACK) s
5 599 M
(   packet itself, when sent in response to a SYN packet with the two ECN) s
5 588 M
(   flags set in the TCP header, indicating a willingness to use ECN.) s
5 577 M
(   Setting the initial TCP SYN/ACK packet as ECN-Capable can be of great) s
5 566 M
(   benefit to the TCP connection, avoiding the severe penalty of a) s
5 555 M
(   retransmit timeout for a connection that has not yet started placing) s
5 544 M
(   a load on the network.  The TCP responder \(the sender of the SYN/ACK) s
5 533 M
(   packet\) must reply to a report of an ECN-marked SYN/ACK packet by) s
5 522 M
(   resending a SYN/ACK packet that is not ECN-Capable.  If the resent) s
5 511 M
(   SYN/ACK packet is acknowledged, then the TCP responder reduces its) s
5 500 M
(   initial congestion window from two, three, or four segments to one) s
5 489 M
(   segment, thereby reducing the subsequent load from that connection on) s
5 478 M
(   the network.  If instead the SYN/ACK packet is dropped, or for some) s
5 467 M
(   other reason the TCP responder does not receive an acknowledgement in) s
5 456 M
(   the specified time, the TCP responder follows TCP standards for a) s
5 445 M
(   dropped SYN/ACK packet \(setting the retransmit timer\).  This document) s
5 434 M
(   updates RFC 3168.) s
5 412 M
(Table of Contents) s
5 390 M
(   1. Introduction ....................................................5) s
5 379 M
(   2. Conventions and Terminology .....................................7) s
5 368 M
(   3. Specification ...................................................7) s
5 357 M
(      3.1. SYN/ACK Packets Dropped in the Network .....................8) s
5 346 M
(      3.2. SYN/ACK Packets ECN-Marked in the Network ..................9) s
5 335 M
(      3.3. Management Interface ......................................11) s
5 324 M
(   4. Discussion .....................................................12) s
5 313 M
(      4.1. Flooding Attacks ..........................................12) s
5 302 M
(      4.2. The TCP SYN Packet ........................................12) s
5 291 M
(      4.3. SYN/ACK Packets and Packet Size ...........................13) s
5 280 M
(      4.4. Response to ECN-marking of SYN/ACK Packets ................13) s
5 269 M
(   5. Related Work ...................................................15) s
5 258 M
(   6. Performance Evaluation .........................................16) s
5 247 M
(      6.1. The Costs and Benefit of Adding ECN-Capability ............16) s
5 236 M
(      6.2. An Evaluation of Different Responses to ECN-Marked SYN/ACK) s
5 225 M
(      Packets ........................................................17) s
5 214 M
(   7. Security Considerations ........................................18) s
5 203 M
(      7.1. 'Bad' Routers or Middleboxes ..............................18) s
5 192 M
(      7.2. Congestion Collapse .......................................19) s
5 181 M
(   8. Conclusions ....................................................19) s
5 170 M
(   9. Acknowledgements ...............................................20) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 2]) s
_R
S
%%Page: (3) 3
%%BeginPageSetup
_S
24 24 translate
/pagenum 3 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   A. Report on Simulations ..........................................20) s
5 676 M
(      A.1. Simulations with RED in Packet Mode .......................21) s
5 665 M
(      A.2. Simulations with RED in Byte Mode .........................25) s
5 654 M
(   B. Issues of Incremental Deployment ...............................27) s
5 643 M
(   Normative References ..............................................30) s
5 632 M
(   Informative References ............................................30) s
5 621 M
(   IANA Considerations ...............................................31) s
5 610 M
(   Full Copyright Statement ..........................................32) s
5 599 M
(   Intellectual Property .............................................32) s
5 566 M
(   NOTE TO RFC EDITOR: PLEASE DELETE THIS NOTE UPON PUBLICATION.) s
5 544 M
(   Changes from draft-ietf-tcpm-ecnsyn-06:) s
5 522 M
(   * Updated text and simulation results to specify ECN+/TryOnce) s
5 511 M
(     instead of ECN+.  Added tables on CDFs.) s
5 489 M
(   * Acknowledged Adam's Linux implementation of ECN+/TryOnce.) s
5 467 M
(   Changes from draft-ietf-tcpm-ecnsyn-05:) s
5 445 M
(   * Added "Updates: 3168" to the header.  Added a reference) s
5 434 M
(     to RFC 4987.  Mild editing.) s
5 423 M
(     Feedback from Lars's Area Director review.) s
5 401 M
(   * Updated simulation results with new simulation scripts that) s
5 390 M
(     don't require any modifications to the ns simulator, and that) s
5 379 M
(     all use the same seed for generating traffic.  The results are) s
5 368 M
(     somewhat different for the very-high-congestion scenarios) s
5 357 M
(     \(with loss rates of 25% in the absence of ECN-capability) s
5 346 M
(     for SYN/ACK packets\).  This is reflected in the simulations with) s
5 335 M
(     a target load of 125% in Tables 1 and 2.) s
5 313 M
(   * Added the URL for the web page that has the simulation scripts.) s
5 291 M
(   Changes from draft-ietf-tcpm-ecnsyn-04:) s
5 269 M
(   * Updating the copyright date.) s
5 247 M
(   Changes from draft-ietf-tcpm-ecnsyn-03:) s
5 225 M
(   * General editing.  This includes using the terms "initiator") s
5 214 M
(     and "responder" for the two ends of the TCP connection.) s
5 203 M
(     Feedback from Alfred Hoenes.) s
5 181 M
(   * Added some text to the backwards compatibility discussion,) s
5 170 M
(     now in Appendix B, about the pros and cons of using a TCP) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 3]) s
_R
S
%%Page: (4) 4
%%BeginPageSetup
_S
24 24 translate
/pagenum 4 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(     flag for the TCP initiator to signal that it understands) s
5 676 M
(     ECN-Capable SYN/ACK packets.  The consensus at this time is) s
5 665 M
(     not to use such a flag.  Also added a recommendation that) s
5 654 M
(     TCP implementations include a management interface to turn) s
5 643 M
(     off the use of ECN for SYN/ACK packets.  From email from) s
5 632 M
(     Bob Briscoe.) s
5 610 M
(   Changes from draft-ietf-tcpm-ecnsyn-02:) s
5 588 M
(   * Added to the discussion in the Security section of whether) s
5 577 M
(     ECN-Capable TCP SYN packets have problems with firewalls,) s
5 566 M
(     over and above the known problems of TCP data packets) s
5 555 M
(     \(e.g., as in the Microsoft report\).  From a question raised) s
5 544 M
(     at the TCPM meeting at the July 2007 IETF.) s
5 522 M
(   * Added a sentence to the discussion of routers or middleboxes that) s
5 511 M
(     *might* drop TCP SYN packets on the basis of IP header fields.) s
5 500 M
(     Feedback from Remi Denis-Courmont.) s
5 478 M
(   * General editing.  Feedback from Alfred Hoenes.) s
5 456 M
(   Changes from draft-ietf-tcpm-ecnsyn-01:) s
5 434 M
(   * Changes in response to feedback from Anil Agarwal.) s
5 412 M
(   * Added a look at the costs of adding ECN-Capability to) s
5 401 M
(     SYN/ACKs in a highly-congested scenario.) s
5 390 M
(     From feedback from Mark Allman and Janardhan Iyengar.) s
5 368 M
(   * Added a comparative evaluation of two possible responses) s
5 357 M
(     to an ECN-marked SYN/ACK packet.  From Mark Allman.) s
5 335 M
(   Changes from draft-ietf-tcpm-ecnsyn-00:) s
5 313 M
(   * Only updating the revision number.) s
5 291 M
(   Changes from draft-ietf-twvsg-ecnsyn-00:) s
5 269 M
(   * Changed name of draft to draft-ietf-tcpm-ecnsyn.) s
5 247 M
(   * Added a discussion in Section 3 of "Response to) s
5 236 M
(     ECN-marking of SYN/ACK packets".  Based on) s
5 225 M
(     suggestions from Mark Allman.) s
5 203 M
(   * Added a discussion to the Conclusions about adding) s
5 192 M
(     ECN-capability to relevant set-up packets in other) s
5 181 M
(     protocols.  From a suggestion from Wesley Eddy.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 4]) s
_R
S
%%Page: (5) 5
%%BeginPageSetup
_S
24 24 translate
/pagenum 5 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   * Added a description of SYN exchanges with SYN cookies.) s
5 676 M
(     From a suggestion from Wesley Eddy.) s
5 654 M
(   * Added a discussion of one-way data transfers, where the) s
5 643 M
(     host sending the SYN/ACK packet sends no data packets.) s
5 621 M
(   * Minor editing, from feedback from Mark Allman and Janardhan) s
5 610 M
(     Iyengar.) s
5 588 M
(   * Future work: a look at the costs of adding) s
5 577 M
(     ECN-Capability in a worst-case scenario.) s
5 566 M
(     From feedback from Mark Allman and Janardhan Iyengar.) s
5 544 M
(   * Future work: a comparative evaluation of two) s
5 533 M
(     possible responses to an ECN-marked SYN/ACK packet.) s
5 511 M
(   Changes from draft-kuzmanovic-ecn-syn-00.txt:) s
5 489 M
(   * Changed name of draft to draft-ietf-twvsg-ecnsyn.) s
5 467 M
(   END OF NOTE TO RFC EDITOR.) s
5 445 M
(1.  Introduction) s
5 423 M
(   TCP's congestion control mechanism has primarily used packet loss as) s
5 412 M
(   the congestion indication, with packets dropped when buffers) s
5 401 M
(   overflow.  With such tail-drop mechanisms, the packet delay can be) s
5 390 M
(   high, as the queue at bottleneck routers can be fairly large.) s
5 379 M
(   Dropping packets only when the queue overflows, and having TCP react) s
5 368 M
(   only to such losses, results in:) s
5 357 M
(   1\) significantly higher packet delay;) s
5 346 M
(   2\) unnecessarily many packet losses; and) s
5 335 M
(   3\) unfairness due to synchronization effects.) s
5 313 M
(   The adoption of Active Queue Management \(AQM\) mechanisms allows) s
5 302 M
(   better control of bottleneck queues [RFC2309].  This use of AQM has) s
5 291 M
(   the following potential benefits:) s
5 280 M
(   1\) better control of the queue, with reduced queueing delay;) s
5 269 M
(   2\) fewer packet drops; and) s
5 258 M
(   3\) better fairness because of fewer synchronization effects.) s
5 236 M
(   With the adoption of ECN, performance may be further improved.  When) s
5 225 M
(   the router detects congestion before buffer overflow, the router can) s
5 214 M
(   provide a congestion indication either by dropping a packet, or by) s
5 203 M
(   setting the Congestion Experienced \(CE\) codepoint in the  Explicit) s
5 192 M
(   Congestion Notification \(ECN\) field in the IP header [RFC3168].  The) s
5 181 M
(   IETF has standardized the use of the Congestion Experienced \(CE\)) s
5 170 M
(   codepoint in the IP header for routers to indicate congestion.  For) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 5]) s
_R
S
%%Page: (6) 6
%%BeginPageSetup
_S
24 24 translate
/pagenum 6 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   incremental deployment and backwards compatibility, the RFC on ECN) s
5 676 M
(   [RFC3168] specifies that routers may mark ECN-capable packets that) s
5 665 M
(   would otherwise have been dropped, using the Congestion Experienced) s
5 654 M
(   codepoint in the ECN field.  The use of ECN allows TCP to react to) s
5 643 M
(   congestion while avoiding unnecessary retransmit timeouts.  Thus,) s
5 632 M
(   using ECN has several benefits:) s
5 610 M
(   1\) For short transfers, a TCP connection's congestion window may be) s
5 599 M
(   small.  For example, if the current window contains only one packet,) s
5 588 M
(   and that packet is dropped, TCP will have to wait for a retransmit) s
5 577 M
(   timeout to recover, reducing its overall throughput.  Similarly, if) s
5 566 M
(   the current window contains only a few packets and one of those) s
5 555 M
(   packets is dropped, there might not be enough duplicate) s
5 544 M
(   acknowledgements for a fast retransmission, and the sender of the) s
5 533 M
(   data packet might have to wait for a delay of several round-trip) s
5 522 M
(   times using Limited Transmit [RFC3042].  With the use of ECN, short) s
5 511 M
(   flows are less likely to have packets dropped, sometimes avoiding) s
5 500 M
(   unnecessary delays or costly retransmit timeouts.) s
5 478 M
(   2\) While longer flows may not see substantially improved throughput) s
5 467 M
(   with the use of ECN, they may experience lower loss. This may benefit) s
5 456 M
(   TCP applications that are latency- and loss-sensitive, because of the) s
5 445 M
(   avoidance of retransmissions.) s
5 423 M
(   RFC 3168 only specifies marking the Congestion Experienced codepoint) s
5 412 M
(   on TCP's data packets, and not on SYN and SYN/ACK packets.  RFC 3168) s
5 401 M
(   specifies the negotiation of the use of ECN between the two TCP end-) s
5 390 M
(   points in the TCP SYN and SYN-ACK exchange, using flags in the TCP) s
5 379 M
(   header.  Erring on the side of being conservative, RFC 3168 does not) s
5 368 M
(   specify the use of ECN for the first SYN/ACK packet itself.  However,) s
5 357 M
(   because of the high cost to the TCP transfer of having a SYN/ACK) s
5 346 M
(   packet dropped, with the resulting retransmit timeout, this document) s
5 335 M
(   specifies the use of ECN for the SYN/ACK packet itself.  This can be) s
5 324 M
(   of great benefit to the TCP connection, avoiding the severe penalty) s
5 313 M
(   of a retransmit timeout for a connection that has not yet started) s
5 302 M
(   placing a load on the network.  The sender of the SYN/ACK packet must) s
5 291 M
(   respond to a report of an ECN-marked SYN/ACK packet by sending a non-) s
5 280 M
(   ECN-Capable SYN/ACK packet, and by reducing its initial congestion) s
5 269 M
(   window from two, three, or four segments to one segment, reducing the) s
5 258 M
(   subsequent load from that connection on the network.) s
5 236 M
(   The use of ECN for SYN/ACK packets has the following potential) s
5 225 M
(   benefits:) s
5 214 M
(   1\) Avoidance of a retransmit timeout;) s
5 203 M
(   2\) Improvement in the throughput of short connections.) s
5 181 M
(   This draft specifies a modification to RFC 3168 to allow TCP SYN/ACK) s
5 170 M
(   packets to be ECN-Capable.  Section 3 contains the specification of) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 6]) s
_R
S
%%Page: (7) 7
%%BeginPageSetup
_S
24 24 translate
/pagenum 7 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   the change, while Section 4 discusses some of the issues, and Section) s
5 676 M
(   5 discusses related work.  Section 6 contains an evaluation of the) s
5 665 M
(   specified change.) s
5 643 M
(2.  Conventions and Terminology) s
5 621 M
(   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",) s
5 610 M
(   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this) s
5 599 M
(   document are to be interpreted as described in [RFC 2119].) s
5 577 M
(   We use the following terminology from RFC 3168:) s
5 555 M
(   The ECN field in the IP header:) s
5 544 M
(   o  CE: the Congestion Experienced codepoint; and) s
5 533 M
(   o  ECT: either one of the two ECN-Capable Transport codepoints.) s
5 511 M
(   The ECN flags in the TCP header:) s
5 500 M
(   o  CWR: the Congestion Window Reduced flag; and) s
5 489 M
(   o  ECE: the ECN-Echo flag.) s
5 467 M
(   ECN-setup packets:) s
5 456 M
(   o  ECN-setup SYN packet: a SYN packet with the ECE and CWR flags;) s
5 445 M
(   o  ECN-setup SYN-ACK packet: a SYN-ACK packet with ECE but not CWR.) s
5 423 M
(   In this document we use the terms "initiator" and "responder" to) s
5 412 M
(   refer to the sender of the SYN packet and of the SYN-ACK packet,) s
5 401 M
(   respectively.) s
5 379 M
(3.  Specification) s
5 357 M
(   This section specifies the modification to RFC 3168 to allow TCP) s
5 346 M
(   SYN/ACK packets to be ECN-Capable.) s
5 324 M
(   RFC 3168 in Section 6.1.1. states that "A host MUST NOT set ECT on) s
5 313 M
(   SYN or SYN-ACK packets." In this section, we specify that a TCP node) s
5 302 M
(   MAY respond to an initial ECN-setup SYN packet by setting ECT in the) s
5 291 M
(   responding ECN-setup SYN/ACK packet, indicating to routers that the) s
5 280 M
(   SYN/ACK packet is ECN-Capable.  This allows a congested router along) s
5 269 M
(   the path to mark the packet instead of dropping the packet as an) s
5 258 M
(   indication of congestion.) s
5 236 M
(   Assume that TCP node A transmits to TCP node B an ECN-setup SYN) s
5 225 M
(   packet, indicating willingness to use ECN for this connection.  As) s
5 214 M
(   specified by RFC 3168, if TCP node B is willing to use ECN, node B) s
5 203 M
(   responds with an ECN-setup SYN-ACK packet.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 7]) s
_R
S
%%Page: (8) 8
%%BeginPageSetup
_S
24 24 translate
/pagenum 8 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(3.1.  SYN/ACK Packets Dropped in the Network) s
5 665 M
(   Figure 1 shows an interchange with the SYN/ACK packet dropped by a) s
5 654 M
(   congested router.  Node B waits for a retransmit timeout, and then) s
5 643 M
(   retransmits the SYN/ACK packet.) s
5 610 M
(        ---------------------------------------------------------------) s
5 599 M
(           TCP Node A             Router                  TCP Node B) s
5 588 M
(           \(initiator\)                                   \(responder\)) s
5 577 M
(           ----------             ------                  ----------) s
5 555 M
(           ECN-setup SYN packet --->) s
5 544 M
(                                            ECN-setup SYN packet --->) s
5 522 M
(                                 <--- ECN-setup SYN/ACK, possibly ECT) s
5 511 M
(                                                   3-second timer set) s
5 500 M
(                               SYN/ACK dropped               .) s
5 489 M
(                                                             .) s
5 478 M
(                                                             .) s
5 467 M
(                                               3-second timer expires) s
5 456 M
(                                      <--- ECN-setup SYN/ACK, not ECT) s
5 445 M
(           <--- ECN-setup SYN/ACK) s
5 434 M
(           Data/ACK --->) s
5 423 M
(                                                        Data/ACK --->) s
5 412 M
(                                     <--- Data \(one to four segments\)) s
5 401 M
(        ---------------------------------------------------------------) s
5 379 M
(           Figure 1: SYN exchange with the SYN/ACK packet dropped.) s
5 346 M
(   If the SYN/ACK packet is dropped in the network, the responder \(node) s
5 335 M
(   B\) responds by waiting three seconds for the retransmit timer to) s
5 324 M
(   expire [RFC2988].  If a SYN/ACK packet with the ECT codepoint is) s
5 313 M
(   dropped, the responder SHOULD resend the SYN/ACK packet without the) s
5 302 M
(   ECN-Capable codepoint.  \(Although we are not aware of any middleboxes) s
5 291 M
(   that drop SYN/ACK packets that contain an ECN-Capable codepoint in) s
5 280 M
(   the IP header, we have learned to design our protocols defensively in) s
5 269 M
(   this regard [RFC3360].\)) s
5 247 M
(   We note that if syn-cookies were used by the responder \(node B\) in) s
5 236 M
(   the exchange in Figure 1, the responder wouldn't set a timer upon) s
5 225 M
(   transmission of the SYN/ACK packet [SYN-COOK] [RFC4987].  In this) s
5 214 M
(   case, if the SYN/ACK packet was lost, the initiator \(Node A\) would) s
5 203 M
(   have to timeout and retransmit the SYN packet in order to trigger) s
5 192 M
(   another SYN-ACK.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 8]) s
_R
S
%%Page: (9) 9
%%BeginPageSetup
_S
24 24 translate
/pagenum 9 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(3.2.  SYN/ACK Packets ECN-Marked in the Network) s
5 665 M
(   Figure 2 shows an interchange with the SYN/ACK packet sent as ECN-) s
5 654 M
(   Capable, and ECN-marked instead of dropped at the congested router.) s
5 643 M
(   This document specifies ECN+/TryOnce, which differs from the original) s
5 632 M
(   proposal for ECN+ in [ECN+]; with ECN+/TryOnce, if the TCP responder) s
5 621 M
(   is informed that the SYN/ACK was ECN-marked, the TCP responder) s
5 610 M
(   immediately sends a SYN/ACK packet that is not ECN-Capable.  The TCP) s
5 599 M
(   responder is only allowed to send data packets after the TCP) s
5 588 M
(   initiator reports the receipt of a SYN/ACK packet that is neither) s
5 577 M
(   marked nor dropped.) s
5 544 M
(        ---------------------------------------------------------------) s
5 533 M
(           TCP Node A             Router                  TCP Node B) s
5 522 M
(           \(initiator\)                                   \(responder\)) s
5 511 M
(           ----------             ------                  ----------) s
5 489 M
(           ECN-setup SYN packet --->) s
5 478 M
(                                           ECN-setup SYN packet --->) s
5 456 M
(                                         <--- ECN-setup SYN/ACK, ECT) s
5 445 M
(                                                  3-second timer set) s
5 434 M
(                              <--- Sets CE on SYN/ACK) s
5 423 M
(           <--- ECN-setup SYN/ACK, CE) s
5 401 M
(           Data/ACK, ECN-Echo --->) s
5 390 M
(                                             Data/ACK, ECN-Echo --->) s
5 379 M
(                                      Window reduced to one segment.) s
5 368 M
(                                <--- ECN-setup SYN/ACK, CWR, not ECT) s
5 357 M
(           <--- ECN-setup SYN/ACK, CWR) s
5 335 M
(           Data/ACK --->) s
5 324 M
(                                                       Data/ACK --->) s
5 313 M
(                                        <--- Data \(one segment only\)) s
5 302 M
(        ---------------------------------------------------------------) s
5 280 M
(           Figure 2: SYN exchange with the SYN/ACK packet marked.) s
5 269 M
(                               ECN+/TryOnce.) s
5 236 M
(   If the initiator \(node A\) receives a SYN/ACK packet that has been) s
5 225 M
(   marked by the congested router, with the CE codepoint set, the) s
5 214 M
(   initiator MUST respond by setting the ECN-Echo flag in the TCP header) s
5 203 M
(   of the responding ACK packet.  However, with ECN+/TryOnce the) s
5 192 M
(   initiator does not advance from the "SYN-Sent" to the "SYN-Received") s
5 181 M
(   state until it receives a SYN/ACK packet that is not ECN-marked.  As) s
5 170 M
(   specified in RFC 3168, the initiator continues to set the ECN-Echo) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                  [Page 9]) s
_R
S
%%Page: (10) 10
%%BeginPageSetup
_S
24 24 translate
/pagenum 10 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   flag in packets until it receives a packet with the CWR flag set.) s
5 665 M
(   When the responder \(node B\) receives the ECN-Echo packet reporting) s
5 654 M
(   the Congestion Experienced indication in the SYN/ACK packet, the) s
5 643 M
(   responder MUST set the initial congestion window to one segment,) s
5 632 M
(   instead of two segments as allowed by [RFC2581], or three or four) s
5 621 M
(   segments allowed by [RFC3390].  In the original proposal for ECN+, if) s
5 610 M
(   the responder \(node B\) received an ECN-Echo packet informing it of a) s
5 599 M
(   Congestion Experienced indication on its SYN/ACK packet, the) s
5 588 M
(   responder would been able to send data packets using an initial) s
5 577 M
(   window of one segment, without waiting for a retransmit timeout.  In) s
5 566 M
(   contrast, this document specifies ECN+/TryOnce, illustrated in Figure) s
5 555 M
(   2; if the responder \(node B\) receives an ECN-Echo packet informing it) s
5 544 M
(   of a Congestion Experienced indication on its SYN/ACK packet, the) s
5 533 M
(   responder sends a SYN/ACK packet that is not ECN-Capable, in addition) s
5 522 M
(   to setting the initial window to one segment.) s
5 500 M
(   We note that this document updates RFC 3168, which specified that) s
5 489 M
(   "the sending TCP MUST reset the retransmit timer on receiving the) s
5 478 M
(   ECN-Echo packet when the congestion window is one."  As an update,) s
5 467 M
(   this document specifies the response of a TCP host to receiving an) s
5 456 M
(   ECN-Echo packet acknowledging the receipt of an ECN-Capable SYN/ACK) s
5 445 M
(   packet.) s
5 423 M
(   RFC 3168 specifies that in response to an ECN-Echo packet, the TCP) s
5 412 M
(   responder also sets the CWR flag in the TCP header of the next data) s
5 401 M
(   packet sent, to acknowledge its receipt of and reaction to the ECN-) s
5 390 M
(   Echo flag.  This document updates RFC 3168 by specifying that in) s
5 379 M
(   response to an ECN-Echo packet acknowledging the receipt of an ECN-) s
5 368 M
(   Capable SYN/ACK packet, the responder sets the CWR flag in the TCP) s
5 357 M
(   header of the non-ECN-Capable SYN/ACK packet.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 10]) s
_R
S
%%Page: (11) 11
%%BeginPageSetup
_S
24 24 translate
/pagenum 11 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(        ---------------------------------------------------------------) s
5 676 M
(           TCP Node A             Router                  TCP Node B) s
5 665 M
(           \(initiator\)                                   \(responder\)) s
5 654 M
(           ----------             ------                  ----------) s
5 632 M
(           ECN-setup SYN packet --->) s
5 621 M
(                                           ECN-setup SYN packet --->) s
5 599 M
(                                         <--- ECN-setup SYN/ACK, ECT) s
5 588 M
(                              <--- Sets CE on SYN/ACK) s
5 577 M
(           <--- ECN-setup SYN/ACK, CE) s
5 555 M
(           Data/ACK, ECN-Echo --->) s
5 544 M
(                                             Data/ACK, ECN-Echo --->) s
5 533 M
(                                      Window reduced to one segment.) s
5 511 M
(                                 <--- ECN-setup SYN/ACK, CWR, not ECT) s
5 500 M
(                                                   3-second timer set) s
5 489 M
(                               SYN/ACK dropped               .) s
5 478 M
(                                                             .) s
5 467 M
(                                                             .) s
5 456 M
(                                               3-second timer expires) s
5 445 M
(                                 <--- ECN-setup SYN/ACK, CWR, not ECT) s
5 434 M
(           <--- ECN-setup SYN/ACK, CWR, not ECT) s
5 423 M
(           Data/ACK --->) s
5 412 M
(                                                        Data/ACK --->) s
5 401 M
(                                         <--- Data \(one segment only\)) s
5 390 M
(        ---------------------------------------------------------------) s
5 368 M
(           Figure 3: SYN exchange with the first SYN/ACK packet marked,) s
5 357 M
(             and the second SYN/ACK packet dropped.  ECN+/TryOnce.) s
5 324 M
(   In contrast to Figure 2, Figure 3 shows an interchange where the) s
5 313 M
(   first SYN/ACK packet is ECN-marked and the second SYN/ACK packet is) s
5 302 M
(   dropped in the network.  As in Figure 2, the TCP responder sets a) s
5 291 M
(   timer when the second SYN/ACK packet is sent.  Figure 3 shows that if) s
5 280 M
(   the timer expires before the TCP responder receives an) s
5 269 M
(   acknowledgement for the other end, the TCP responder resends the) s
5 258 M
(   SYN/ACK packet, following the TCP standards.) s
5 225 M
(3.3.  Management Interface) s
5 203 M
(   The TCP implementation using ECN-Capable SYN/ACK packets SHOULD) s
5 192 M
(   include a management interface to allow the use of ECN to be turned) s
5 181 M
(   off for SYN/ACK packets.  This is to deal with possible backwards) s
5 170 M
(   compatibility problems such as those discussed in Appendix B.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 11]) s
_R
S
%%Page: (12) 12
%%BeginPageSetup
_S
24 24 translate
/pagenum 12 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(4.  Discussion) s
5 654 M
(   The rationale for the specification in this document is the) s
5 643 M
(   following.  When node B receives a TCP SYN packet with ECN-Echo bit) s
5 632 M
(   set in the TCP header, this indicates that node A is ECN-capable. If) s
5 621 M
(   node B is also ECN-capable, there are no obstacles to immediately) s
5 610 M
(   setting one of the ECN-Capable codepoints in the IP header in the) s
5 599 M
(   responding TCP SYN/ACK packet.) s
5 577 M
(   There can be a great benefit in setting an ECN-capable codepoint in) s
5 566 M
(   SYN/ACK packets, as is discussed further in [ECN+], and reported) s
5 555 M
(   briefly in Section 5 below.  Congestion is most likely to occur in) s
5 544 M
(   the server-to-client direction.  As a result, setting an ECN-capable) s
5 533 M
(   codepoint in SYN/ACK packets can reduce the occurrence of three-) s
5 522 M
(   second retransmit timeouts resulting from the drop of SYN/ACK) s
5 511 M
(   packets.) s
5 478 M
(4.1.  Flooding Attacks) s
5 456 M
(   Setting an ECN-Capable codepoint in the responding TCP SYN/ACK) s
5 445 M
(   packets does not raise any new or additional security) s
5 434 M
(   vulnerabilities.  For example, provoking servers or hosts to send) s
5 423 M
(   SYN/ACK packets to a third party in order to perform a "SYN/ACK) s
5 412 M
(   flood" attack would be highly inefficient.  Third parties would) s
5 401 M
(   immediately drop such packets, since they would know that they didn't) s
5 390 M
(   generate the TCP SYN packets in the first place.  Moreover, such) s
5 379 M
(   SYN/ACK attacks would have the same signatures as the existing TCP) s
5 368 M
(   SYN attacks. Provoking servers or hosts to reply with SYN/ACK packets) s
5 357 M
(   in order to congest a certain link would also be highly inefficient) s
5 346 M
(   because SYN/ACK packets are small in size.) s
5 324 M
(   However, the addition of ECN-Capability to SYN/ACK packets could) s
5 313 M
(   allow SYN/ACK packets to persist for more hops along a network path) s
5 302 M
(   before being dropped, thus adding somewhat to the ability of a) s
5 291 M
(   SYN/ACK attack to flood a network link.) s
5 258 M
(4.2.  The TCP SYN Packet) s
5 236 M
(   There are several reasons why an ECN-Capable codepoint MUST NOT be) s
5 225 M
(   set in the IP header of the initiating TCP SYN packet.  First, when) s
5 214 M
(   the TCP SYN packet is sent, there are no guarantees that the other) s
5 203 M
(   TCP endpoint \(node B in Figure 2\) is ECN-capable, or that it would be) s
5 192 M
(   able to understand and react if the ECN CE codepoint was set by a) s
5 181 M
(   congested router.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 12]) s
_R
S
%%Page: (13) 13
%%BeginPageSetup
_S
24 24 translate
/pagenum 13 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   Second, the ECN-Capable codepoint in TCP SYN packets could be misused) s
5 676 M
(   by malicious clients to `improve' the well-known TCP SYN attack. By) s
5 665 M
(   setting an ECN-Capable codepoint in TCP SYN packets, a malicious host) s
5 654 M
(   might be able to inject a large number of TCP SYN packets through a) s
5 643 M
(   potentially congested ECN-enabled router, congesting it even further.) s
5 621 M
(   For both these reasons, we continue the restriction that the TCP SYN) s
5 610 M
(   packet MUST NOT have the ECN-Capable codepoint in the IP header set.) s
5 577 M
(4.3.  SYN/ACK Packets and Packet Size) s
5 555 M
(   There are a number of router buffer architectures that have smaller) s
5 544 M
(   dropping rates for small \(SYN\) packets than for large \(data\) packets.) s
5 533 M
(   For example, for a Drop Tail queue in units of packets, where each) s
5 522 M
(   packet takes a single slot in the buffer regardless of packet size,) s
5 511 M
(   small and large packets are equally likely to be dropped.  However,) s
5 500 M
(   for a Drop Tail queue in units of bytes, small packets are less) s
5 489 M
(   likely to be dropped than are large ones.  Similarly, for RED in) s
5 478 M
(   packet mode, small and large packets are equally likely to be dropped) s
5 467 M
(   or marked, while for RED in byte mode, a packet's chance of being) s
5 456 M
(   dropped or marked is proportional to the packet size in bytes.) s
5 434 M
(   For a congested router with an AQM mechanism in byte mode, where a) s
5 423 M
(   packet's chance of being dropped or marked is proportional to the) s
5 412 M
(   packet size in bytes, the drop or marking rate for TCP SYN/ACK) s
5 401 M
(   packets should generally be low.  In this case, the benefit of making) s
5 390 M
(   SYN/ACK packets ECN-Capable should be similarly moderate.  However,) s
5 379 M
(   for a congested router with a Drop Tail queue in units of packets or) s
5 368 M
(   with an AQM mechanism in packet mode, and with no priority queueing) s
5 357 M
(   for smaller packets, small and large packets should have the same) s
5 346 M
(   probability of being dropped or marked.  In such a case, making) s
5 335 M
(   SYN/ACK packets ECN-Capable should be of significant benefit.) s
5 313 M
(   We believe that there are a wide range of behaviors in the real world) s
5 302 M
(   in terms of the drop or mark behavior at routers as a function of) s
5 291 M
(   packet size [Tools] \(Section 10\).  We note that all of these) s
5 280 M
(   alternatives listed above are available in the NS simulator \(Drop) s
5 269 M
(   Tail queues are by default in units of packets, while the default for) s
5 258 M
(   RED queue management has been changed from packet mode to byte mode\).) s
5 225 M
(4.4.  Response to ECN-marking of SYN/ACK Packets) s
5 203 M
(   One question is why TCP SYN/ACK packets should be treated differently) s
5 192 M
(   from other packets in terms of the end node's response to an ECN-) s
5 181 M
(   marked packet.  Section 5 of RFC 3168 specifies the following:) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 13]) s
_R
S
%%Page: (14) 14
%%BeginPageSetup
_S
24 24 translate
/pagenum 14 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   "Upon the receipt by an ECN-Capable transport of a single CE packet,) s
5 676 M
(   the congestion control algorithms followed at the end-systems MUST be) s
5 665 M
(   essentially the same as the congestion control response to a *single*) s
5 654 M
(   dropped packet.  For example, for ECN-Capable TCP the source TCP is) s
5 643 M
(   required to halve its congestion window for any window of data) s
5 632 M
(   containing either a packet drop or an ECN indication.") s
5 610 M
(   In particular, Section 6.1.2 of RFC 3168 specifies that when the TCP) s
5 599 M
(   congestion window consists of a single packet and that packet is ECN-) s
5 588 M
(   marked in the network, then the data sender must reduce the sending) s
5 577 M
(   rate below one packet per round-trip time, by waiting for one RTO) s
5 566 M
(   before sending another packet.  If the RTO was set to the average) s
5 555 M
(   round-trip time, this would result in halving the sending rate;) s
5 544 M
(   because the RTO is in fact larger than the average round-trip time,) s
5 533 M
(   the sending rate is reduced to less than half of its previous value.) s
5 511 M
(   TCP's congestion control response to the *dropping* of a SYN/ACK) s
5 500 M
(   packet is to wait a default time before sending another packet.  This) s
5 489 M
(   document argues that ECN gives end-systems a wider range of possible) s
5 478 M
(   responses to the *marking* of a SYN/ACK packet, and that waiting a) s
5 467 M
(   default time before sending another packet is not the desired) s
5 456 M
(   response.) s
5 434 M
(   On the conservative end, one could assume an effective congestion) s
5 423 M
(   window of one packet for the SYN/ACK packet, and respond to an ECN-) s
5 412 M
(   marked SYN/ACK packet by reducing the sending rate to one packet) s
5 401 M
(   every two round-trip times.  As an approximation, the TCP end-node) s
5 390 M
(   could measure the round-trip time T between the sending of the) s
5 379 M
(   SYN/ACK packet and the receipt of the acknowledgement, and reply to) s
5 368 M
(   the acknowledgement of the ECN-marked SYN/ACK packet by waiting T) s
5 357 M
(   seconds before sending a data packet.) s
5 335 M
(   However, we note that for an ECN-marked SYN/ACK packet, halving the) s
5 324 M
(   *congestion window* is not the same as halving the *sending rate*;) s
5 313 M
(   there is no `sending rate' associated with an ECN-Capable SYN/ACK) s
5 302 M
(   packet, as such packets are only sent as the first packet in a) s
5 291 M
(   connection from that host.  Further, a router's marking of a SYN/ACK) s
5 280 M
(   packet is not affected by any past history of that connection.) s
5 258 M
(   Adding ECN-Capability to SYN/ACK packets allows the response of the) s
5 247 M
(   responder setting the initial congestion window to one packet,) s
5 236 M
(   instead of its allowed default value of two, three, or four packets.) s
5 225 M
(   The responder sends a non-ECN-Capable SYN/ACK packet, and proceeds) s
5 214 M
(   with a cautious sending rate of one data packet per round-trip time) s
5 203 M
(   after that SYN/ACK packet is acknowledged.  This document argues that) s
5 192 M
(   this approach is useful to users, with no dangers of congestion) s
5 181 M
(   collapse or of starvation of competing traffic.  This is discussed in) s
5 170 M
(   more detail below in Section 6.2.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 14]) s
_R
S
%%Page: (15) 15
%%BeginPageSetup
_S
24 24 translate
/pagenum 15 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   We note that if the data transfer is entirely from Node A to Node B,) s
5 676 M
(   there is still a difference in performance between the original) s
5 665 M
(   mechanism ECN+ and the mechanism ECN+/TryOnce specified in this) s
5 654 M
(   document.  In particular, with ECN+/TryOnce the TCP originator does) s
5 643 M
(   not send data packets until it has received a non-ECN-marked SYN/ACK) s
5 632 M
(   packet from the other end.) s
5 599 M
(5.  Related Work) s
5 577 M
(   The addition of ECN-capability to TCP's SYN/ACK packets was initially) s
5 566 M
(   proposed in [ECN+].  The paper includes an extensive set of) s
5 555 M
(   simulation and testbed experiments to evaluate the effects of the) s
5 544 M
(   proposal, using several Active Queue Management \(AQM\) mechanisms,) s
5 533 M
(   including Random Early Detection \(RED\) [RED], Random Exponential) s
5 522 M
(   Marking \(REM\) [REM], and Proportional Integrator \(PI\) [PI].  The) s
5 511 M
(   performance measures were the end-to-end response times for each) s
5 500 M
(   request/response pair, and the aggregate throughput on the bottleneck) s
5 489 M
(   link.  The end-to-end response time was computed as the time from the) s
5 478 M
(   moment when the request for the file is sent to the server, until) s
5 467 M
(   that file is successfully downloaded by the client.) s
5 445 M
(   The measurements from [ECN+] show that setting an ECN-Capable) s
5 434 M
(   codepoint in the IP packet header in TCP SYN/ACK packets) s
5 423 M
(   systematically improves performance with all evaluated AQM schemes.) s
5 412 M
(   When SYN/ACK packets at a congested router are ECN-marked instead of) s
5 401 M
(   dropped, this can avoid a long initial retransmit timeout, improving) s
5 390 M
(   the response time for the affected flow dramatically.) s
5 368 M
(   [ECN+] shows that the impact on aggregate throughput can also be) s
5 357 M
(   quite significant, because marking SYN ACK packets can prevent larger) s
5 346 M
(   flows from suffering long timeouts before being "admitted" into the) s
5 335 M
(   network.  In addition, the testbed measurements from [ECN+] show that) s
5 324 M
(   web servers setting the ECN-Capable codepoint in TCP SYN/ACK packets) s
5 313 M
(   could serve more requests.) s
5 291 M
(   As a final step, [ECN+] explores the co-existence of flows that do) s
5 280 M
(   and don't set the ECN-capable codepoint in TCP SYN/ACK packets.  The) s
5 269 M
(   results in [ECN+] show that both types of flows can coexist, with) s
5 258 M
(   some performance degradation for flows that don't use ECN+.  Flows) s
5 247 M
(   that do use ECN+ improve their end-to-end performance.  At the same) s
5 236 M
(   time, the performance degradation for flows that don't use ECN+, as a) s
5 225 M
(   result of the flows that do use ECN+, increases as a greater fraction) s
5 214 M
(   of flows use ECN+.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 15]) s
_R
S
%%Page: (16) 16
%%BeginPageSetup
_S
24 24 translate
/pagenum 16 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(6.  Performance Evaluation) s
5 665 M
(6.1.  The Costs and Benefit of Adding ECN-Capability) s
5 643 M
(   [ECN+] explores the costs and benefits of adding ECN-Capability to) s
5 632 M
(   SYN/ACK packets with both simulations and experiments.  The addition) s
5 621 M
(   of ECN-capability to SYN/ACK packets could be of significant benefit) s
5 610 M
(   for those ECN connections that would have had the SYN/ACK packet) s
5 599 M
(   dropped in the network, and for which the ECN-Capability would allow) s
5 588 M
(   the SYN/ACK to be marked rather than dropped.) s
5 566 M
(   The percent of SYN/ACK packets on a link can be quite high. In) s
5 555 M
(   particular, measurements on links dominated by web traffic indicate) s
5 544 M
(   that 15-20% of the packets can be SYN/ACK packets [SCJO01].) s
5 522 M
(   The benefit of adding ECN-capability to SYN/ACK packets depends in) s
5 511 M
(   part on the size of the data transfer.  The drop of a SYN/ACK packet) s
5 500 M
(   can increase the download time of a short file by an order of) s
5 489 M
(   magnitude, by requiring a three-second retransmit timeout.  For) s
5 478 M
(   longer-lived flows, the effect of a dropped SYN/ACK packet on file) s
5 467 M
(   download time is less dramatic.  However, even for longer-lived) s
5 456 M
(   flows, the addition of ECN-capability to SYN/ACK packets can improve) s
5 445 M
(   the fairness among long-lived flows, as newly-arriving flows would be) s
5 434 M
(   less likely to have to wait for retransmit timeouts.) s
5 412 M
(   One question that arises is what fraction of connections would see) s
5 401 M
(   the benefit from making SYN/ACK packets ECN-capable, in a particular) s
5 390 M
(   scenario.  Specifically:) s
5 368 M
(   \(1\) What fraction of arriving SYN/ACK packets are dropped at the) s
5 357 M
(   congested router when the SYN/ACK packets are not ECN-capable?) s
5 335 M
(   \(2\) Of those SYN/ACK packets that are dropped, what fraction would) s
5 324 M
(   have been ECN-marked instead of dropped if the SYN/ACK packets had) s
5 313 M
(   been ECN-capable?) s
5 291 M
(   To answer \(1\), it is necessary to consider not only the level of) s
5 280 M
(   congestion but also the queue architecture at the congested link.  As) s
5 269 M
(   described in Section 4 above, for some queue architectures small) s
5 258 M
(   packets are less likely to be dropped than large ones.  In such an) s
5 247 M
(   environment, SYN/ACK packets would have lower packet drop rates;) s
5 236 M
(   question \(1\) could not necessarily be inferred from the overall) s
5 225 M
(   packet drop rate, but could be answered by measuring the drop rate) s
5 214 M
(   for SYN/ACK packets directly.  In such an environment, adding ECN-) s
5 203 M
(   capability to SYN/ACK packets would be of less dramatic benefit than) s
5 192 M
(   in environments where all packets are equally likely to be dropped) s
5 181 M
(   regardless of packet size.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 16]) s
_R
S
%%Page: (17) 17
%%BeginPageSetup
_S
24 24 translate
/pagenum 17 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   As question \(2\) implies, even if all of the SYN/ACK packets were ECN-) s
5 676 M
(   capable, there could still be some SYN/ACK packets dropped instead of) s
5 665 M
(   marked at the congested link; the full answer to question \(2\) depends) s
5 654 M
(   on the details of the queue management mechanism at the router.  If) s
5 643 M
(   congestion is sufficiently bad, and the queue management mechanism) s
5 632 M
(   cannot prevent the buffer from overflowing, then SYN/ACK packets will) s
5 621 M
(   be dropped rather than marked upon buffer overflow whether or not) s
5 610 M
(   they are ECN-capable.) s
5 588 M
(   For some AQM mechanisms, ECN-capable packets are marked instead of) s
5 577 M
(   dropped any time this is possible, that is, any time the buffer is) s
5 566 M
(   not yet full.  For other AQM mechanisms however, such as the RED) s
5 555 M
(   mechanism as recommended in [RED], packets are dropped rather than) s
5 544 M
(   marked when the packet drop/mark rate exceeds a certain threshold,) s
5 533 M
(   e.g., 10%, even if the packets are ECN-capable.  For a router with) s
5 522 M
(   such an AQM mechanism, when congestion is sufficiently severe to) s
5 511 M
(   cause a high drop/mark rate, some SYN/ACK packets would be dropped) s
5 500 M
(   instead of marked whether or not they were ECN-capable.) s
5 478 M
(   Thus, the degree of benefit of adding ECN-Capability to SYN/ACK) s
5 467 M
(   packets depends not only on the overall packet drop rate in the) s
5 456 M
(   network, but also on the queue management architecture at the) s
5 445 M
(   congested link.) s
5 412 M
(6.2.  An Evaluation of Different Responses to ECN-Marked SYN/ACK Packets) s
5 390 M
(   This document specifies that the end-node responds to the report of) s
5 379 M
(   an ECN-marked SYN/ACK packet by setting the initial congestion window) s
5 368 M
(   to one segment, instead of its possible default value of two to four) s
5 357 M
(   segments, and resending a SYN/ACK packet that is not ECN-Capable.  We) s
5 346 M
(   call this ECN+/TryOnce.) s
5 324 M
(   However, Section 4 discussed two other possible responses to an ECN-) s
5 313 M
(   marked SYN/ACK packet.  In ECN+, the original proposal from [ECN+],) s
5 302 M
(   the end node responds to the report of an ECN-marked SYN/ACK packet) s
5 291 M
(   by setting the initial congestion window to one segment and) s
5 280 M
(   immediately sending a data packet, if it has one to send.  In) s
5 269 M
(   ECN+/Wait, the end node responds to the report of an ECN-marked) s
5 258 M
(   SYN/ACK packet by setting the initial congestion window to one) s
5 247 M
(   segment and waiting an RTT before sending a data packet.) s
5 225 M
(   Simulations comparing the performance with Standard ECN \(without ECN-) s
5 214 M
(   marked SYN/ACK packets\), ECN+, and ECN+/Wait, and ECN/TryOnce show) s
5 203 M
(   little difference, in terms of aggregate congestion, between ECN+ and) s
5 192 M
(   ECN+/Wait.  However, for some scenarios with queues that are packet-) s
5 181 M
(   based rather than byte-based, and with packet drop rates above 25%) s
5 170 M
(   without ECN+, the use of ECN+ or of ECN+/Wait can more than double) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 17]) s
_R
S
%%Page: (18) 18
%%BeginPageSetup
_S
24 24 translate
/pagenum 18 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   the packet drop rates, to greater than 50%.  The details are given in) s
5 676 M
(   Tables 1 and 3 of Appendix A below.  ECN+/TryOnce does not increase) s
5 665 M
(   the packet drop rate in scenarios of high congestion.  Therefore,) s
5 654 M
(   ECN+/TryOnce is superior to ECN+ or to ECN+/Wait, which both) s
5 643 M
(   significantly increase the packet drop rate in scenarios of high) s
5 632 M
(   congestion.  At the same time, ECN+/TryOnce gives a performance) s
5 621 M
(   improvement similar to that of ECN+ or ECN+/Wait \(Tables 2 and 4 of) s
5 610 M
(   Appendix A\).) s
5 588 M
(   Our conclusions are that ECN+/TryOnce is safe, and has significant) s
5 577 M
(   benefits to the user, and avoids the problems of ECN+ or ECN+/Wait) s
5 566 M
(   under extreme levels of congestion.  As a consequence, this document) s
5 555 M
(   specifies the use of ECN+/TryOnce.) s
5 533 M
(   [Note: We only discovered the occasional congestion-related problems) s
5 522 M
(   of ECN+ and of ECN+/Wait when re-running the simulations with an) s
5 511 M
(   updated version of the ns-2 simulator, after the internet-draft had) s
5 500 M
(   almost completed the standardization process.]) s
5 467 M
(7.  Security Considerations) s
5 445 M
(   TCP packets carrying the ECT codepoint in IP headers can be marked) s
5 434 M
(   rather than dropped by ECN-capable routers. This raises several) s
5 423 M
(   security concerns that we discuss below.) s
5 390 M
(7.1.  'Bad' Routers or Middleboxes) s
5 368 M
(   There are a number of known deployment problems from using ECN with) s
5 357 M
(   TCP traffic in the Internet.  The first reported problem, dating back) s
5 346 M
(   to 2000, is of a small but decreasing number of routers or) s
5 335 M
(   middleboxes that reset a TCP connection in response to TCP SYN) s
5 324 M
(   packets using flags in the TCP header to negotiate ECN-capability) s
5 313 M
(   [Kelson00] [RFC3360] [MAF05].  Dave Thaler reported at the March 2007) s
5 302 M
(   IETF of new two problems encountered by TCP connections using ECN;) s
5 291 M
(   the first of the two problems concerns routers that crash when a TCP) s
5 280 M
(   data packet arrives with the ECN field in the IP header with the) s
5 269 M
(   codepoint ECT\(0\) or ECT\(1\), indicating that an ECN-Capable connection) s
5 258 M
(   has been established [SBT07].) s
5 236 M
(   While there is no evidence that any routers or middleboxes drop) s
5 225 M
(   SYN/ACK packets that contain an ECN-Capable or CE codepoint in the IP) s
5 214 M
(   header, such behavior cannot be excluded.  \(There seems to be a) s
5 203 M
(   number of routers or middleboxes that drop TCP SYN packets that) s
5 192 M
(   contain known or unknown IP options [MAF05] \(Figure 1\).\)  Thus, as) s
5 181 M
(   specified in Section 3, if a SYN/ACK packet with the ECT or CE) s
5 170 M
(   codepoint is dropped, the TCP node SHOULD resend the SYN/ACK packet) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 18]) s
_R
S
%%Page: (19) 19
%%BeginPageSetup
_S
24 24 translate
/pagenum 19 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   without the ECN-Capable codepoint.  There is also no evidence that) s
5 676 M
(   any routers or middleboxes crash when a SYN/ACK arrives with an ECN-) s
5 665 M
(   Capable or CE codepoint in the IP header \(over and above the routers) s
5 654 M
(   already known to crash when a data packet arrives with either ECT\(0\)) s
5 643 M
(   or ECT\(1\)\), but we have not conducted any measurement studies of this) s
5 632 M
(   [F07].) s
5 599 M
(7.2.  Congestion Collapse) s
5 577 M
(   Because TCP SYN/ACK packets carrying an ECT codepoint could be ECN-) s
5 566 M
(   marked instead of dropped at an ECN-capable router, the concern is) s
5 555 M
(   whether this can either invoke congestion, or worsen performance in) s
5 544 M
(   highly congested scenarios.  However, after learning that a SYN/ACK) s
5 533 M
(   packet was ECN-marked, the responder sends a SYN/ACK packet that is) s
5 522 M
(   not ECN-Capable; if this SYN/ACK packet is dropped, the responder) s
5 511 M
(   then waits for a retransmission timeout, as specified in the TCP) s
5 500 M
(   standards.  In addition, routers are free to drop rather than mark) s
5 489 M
(   arriving packets in times of high congestion, regardless of whether) s
5 478 M
(   the packets are ECN-capable.  When congestion is very high and a) s
5 467 M
(   router's buffer is full, the router has no choice but to drop rather) s
5 456 M
(   than to mark an arriving packet.) s
5 434 M
(   The simulations reported in Appendix A show that even with demanding) s
5 423 M
(   traffic mixes dominated by short flows and high levels of congestion,) s
5 412 M
(   the aggregate packet dropping rates are not significantly different) s
5 401 M
(   with Standard ECN or with ECN+/TryOnce.  However, in our simulations,) s
5 390 M
(   we have one scenario where ECN+ or ECN+/Wait results in a) s
5 379 M
(   significantly higher packet drop rate than ECN or ECN+/TryOnce) s
5 368 M
(   \(Tables 1 and 3 in Appendix A below\).) s
5 335 M
(8.  Conclusions) s
5 313 M
(   This draft specifies a modification to RFC 3168 to allow TCP nodes to) s
5 302 M
(   send SYN/ACK packets as being ECN-Capable.  Making the SYN/ACK packet) s
5 291 M
(   ECN-Capable avoids the high cost to a TCP transfer when a SYN/ACK) s
5 280 M
(   packet is dropped by a congested router, by avoiding the resulting) s
5 269 M
(   retransmit timeout.  This improves the throughput of short) s
5 258 M
(   connections.  This document specifies the ECN+/TryOnce mechanism for) s
5 247 M
(   ECN-Capability for SYN/ACK packets, where the sender of the SYN/ACK) s
5 236 M
(   packet responds to an ECN mark by reducing its initial congestion) s
5 225 M
(   window from two, three, or four segments to one segment, and sending) s
5 214 M
(   a SYN/ACK packet that is not ECN-Capable.  The addition of ECN-) s
5 203 M
(   capability to SYN/ACK packets is particularly beneficial in the) s
5 192 M
(   server-to-client direction, where congestion is more likely to occur.) s
5 181 M
(   In this case, the initial information provided by the ECN marking in) s
5 170 M
(   the SYN/ACK packet enables the server to appropriately adjust the) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 19]) s
_R
S
%%Page: (20) 20
%%BeginPageSetup
_S
24 24 translate
/pagenum 20 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   initial load it places on the network, while avoiding the delay of a) s
5 676 M
(   retransmit timeout.) s
5 654 M
(9.  Acknowledgements) s
5 632 M
(   We thank Anil Agarwal, Mark Allman, Remi Denis-Courmont, Wesley Eddy,) s
5 621 M
(   Lars Eggert, Alfred Hoenes, Janardhan Iyengar, and Pasi Sarolahti for) s
5 610 M
(   feedback on earlier versions of this draft.  We thank Adam Langley) s
5 599 M
(   [L08] for contributing a patch for ECN+/TryOnce for the Linux) s
5 588 M
(   development tree.) s
5 566 M
(A.  Report on Simulations) s
5 544 M
(   This section reports on simulations showing the costs of adding ECN+) s
5 533 M
(   in highly-congested scenarios.  This section also reports on) s
5 522 M
(   simulations for a comparative evaluation between ECN, ECN+,) s
5 511 M
(   ECN+/Wait, and ECN+/TryOnce.) s
5 489 M
(   The simulations are run with a range of file-size distributions,) s
5 478 M
(   using the PackMime traffic generator in the ns-2 simulator.  They all) s
5 467 M
(   use a heavy-tailed distribution of file sizes.  The simulations) s
5 456 M
(   reported in the tables below use a mean file size of 3 KBypes, to) s
5 445 M
(   show the results with a traffic mix with a large number of small) s
5 434 M
(   transfers.  Other simulations were run with mean file sizes of 5) s
5 423 M
(   KBytes, 7 Kbytes, 14 KBytes, and 17 Kbytes.  The title of each chart) s
5 412 M
(   gives the targeted average load from the traffic generator.  Because) s
5 401 M
(   the simulations use a heavy-tailed distribution of file sizes, and) s
5 390 M
(   run for only 85 seconds \(including ten seconds of warm-up time\), the) s
5 379 M
(   actual load is often much smaller than the targeted load.  The) s
5 368 M
(   congested link is 100 Mbps.  RED is run in gentle mode, and arriving) s
5 357 M
(   ECN-Capable packets are only dropped instead of marked if the buffer) s
5 346 M
(   is full \(and the router has no choice\).) s
5 324 M
(   We explore three possible mechanisms for a TCP node's response to a) s
5 313 M
(   report of an ECN-marked SYN/ACK packet.  With ECN+, the TCP node) s
5 302 M
(   sends a data packet immediately \(with an initial congestion window of) s
5 291 M
(   one segment\).  With ECN+/Wait, the TCP node waits a round-trip time) s
5 280 M
(   before sending a data packet; the responder already has one) s
5 269 M
(   measurement of the round-trip time when the acknowledgement for the) s
5 258 M
(   SYN/ACK packet is received.  With ECN+/TryOnce, the mechanism) s
5 247 M
(   standardized in this document, the TCP responder replies to a report) s
5 236 M
(   of an ECN-marked SYN/ACK packet by sending a SYN/ACK packet that is) s
5 225 M
(   not ECN-Capable, and reducing the initial congestion window to one) s
5 214 M
(   segment.) s
5 192 M
(   The simulation scripts are available on [ECN-SYN].  along with graphs) s
5 181 M
(   showing the distribution of response times for the TCP connections.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 20]) s
_R
S
%%Page: (21) 21
%%BeginPageSetup
_S
24 24 translate
/pagenum 21 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(A.1.  Simulations with RED in Packet Mode) s
5 665 M
(   The simulations with RED in packet mode and with the queue in packets) s
5 654 M
(   show that ECN+ is useful in times of moderate or of high congestion.) s
5 643 M
(   However, for the simulations with a target load of 125%, with a) s
5 632 M
(   packet loss rate of over 25% for ECN, ECN+ and ECN+/Wait both result) s
5 621 M
(   in a packet loss rate of over 50%.  \(In contrast, the packet loss) s
5 610 M
(   rate with ECN+/TryOnce is less than that of ECN alone.\)  For the) s
5 599 M
(   distribution of response times, the simulations show that ECN+,) s
5 588 M
(   ECN+/Wait, and ECN+/TryOnce all significantly improve the response) s
5 577 M
(   times, compared to the response times with plain ECN.) s
5 555 M
(   Table 1 shows the congestion levels for simulations with RED in) s
5 544 M
(   packet mode, with a queue in packets.  To explore a worst-case) s
5 533 M
(   scenario, these simulations use a traffic mix with an unrealistically) s
5 522 M
(   small flow size distribution, with a mean flow size of 3 Kbytes.  For) s
5 511 M
(   each table showing a particular traffic load, the four rows show the) s
5 500 M
(   number of packets dropped, the number of packets ECN-marked, the) s
5 489 M
(   aggregate packet drop rate, and the aggregate throughput, and the) s
5 478 M
(   four columns show the simulations with Standard ECN, ECN+, ECN+/Wait,) s
5 467 M
(   and ECN+/TryOnce.) s
5 445 M
(   These simulations were run with RED set to mark instead of drop) s
5 434 M
(   packets any time that the queue is not full.  This is a worst-case) s
5 423 M
(   scenario for ECN+ and its variants.  For the default implementation) s
5 412 M
(   of RED in the ns-2 simulator, when the average queue size exceeds a) s
5 401 M
(   configured threshold.  the router drops all arriving packets.  For) s
5 390 M
(   scenarios with this RED mechanisms, it is less likely that ECN+ or) s
5 379 M
(   one of its variants would increase the average queue size above the) s
5 368 M
(   configured threshold.) s
5 346 M
(   The usefulness of ECN+: The first thing to observe is that for all of) s
5 335 M
(   the simulations, the use of ECN+ or ECN+/Wait significantly increases) s
5 324 M
(   the number of packets marked.  In contrast, the use of ECN+/TryOnce) s
5 313 M
(   significantly increases the number of packets marked in the) s
5 302 M
(   simulations with moderate congestion, and gives a more moderate) s
5 291 M
(   increase in the number of packets marked for the simulations with) s
5 280 M
(   higher levels of congestion.  However, the cumulative distribution) s
5 269 M
(   function \(CDF\) in Table 2 shows that ECN+, ECN+/Wait, and) s
5 258 M
(   ECN+/TryOnce all improve response times for all of the simulations,) s
5 247 M
(   with moderate or with larger levels of congestion.) s
5 225 M
(   Little increase in congestion, sometimes: The second thing to observe) s
5 214 M
(   is that for the simulations with low or moderate levels of congestion) s
5 203 M
(   \(that is, with packet drop rates less than 10%\), the use of ECN+,) s
5 192 M
(   ECN+/Wait, and ECN+/TryOnce all decrease the aggregate packet drop) s
5 181 M
(   rate, relative to the simulations with ECN.  This makes sense, since) s
5 170 M
(   with low or moderate levels of congestion, ECN+ allows SYN/ACK) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 21]) s
_R
S
%%Page: (22) 22
%%BeginPageSetup
_S
24 24 translate
/pagenum 22 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   packets to be marked instead of dropped, and the use of ECN+ doesn't) s
5 676 M
(   add to the aggregate congestion.  However, for the simulations with) s
5 665 M
(   packet drop rates of 15% or higher with ECN, the use of ECN+ or) s
5 654 M
(   ECN+/Wait increases the aggregate packet drop rate, sometimes even) s
5 643 M
(   doubling it.) s
5 621 M
(   Comparing ECN+, ECN+/Wait, and ECN+/TryOnce: The aggregate packet) s
5 610 M
(   drop rate is generally higher with ECN+/Wait than with ECN+.  Thus,) s
5 599 M
(   there is no congestion-related reason to prefer ECN+/Wait over ECN+.) s
5 588 M
(   In contrast, the aggregate packet drop rate with ECN+/TryOnce is) s
5 577 M
(   often significantly lower than the aggregate packet drop rate with) s
5 566 M
(   either ECN, ECN+, ECN+/Wait.) s
5 533 M
(        Target Load = 95%:) s
5 522 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 511 M
(                   -------     -------     -------      ----------) s
5 500 M
(        Dropped    20,516      11,226      11,735        16,446`) s
5 489 M
(        Marked     30,586      37,741      37,425        40,530) s
5 478 M
(        Loss rate   1.41%       0.78%       0.81%         1.01%) s
5 467 M
(        Throughput   81%          81%         81%           81%) s
5 445 M
(        Target Load = 110%:) s
5 434 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 423 M
(                   -------     -------     -------      ----------) s
5 412 M
(        Dropped    165,566     106,083     147,180       218,594) s
5 401 M
(        Marked     179,735     281,306     308,473       242,969) s
5 390 M
(        Loss rate    9.01%       6.12%       8.02%         7.14%) s
5 379 M
(        Throughput     92%         92%         92%           94%) s
5 357 M
(        Target Load = 125%:) s
5 346 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 335 M
(                   -------     -------     -------      ----------) s
5 324 M
(        Dropped    600,628    1,746,768   2,176,530      650,781) s
5 313 M
(        Marked     418,433    1,166,450   1,164,932      440,432) s
5 302 M
(        Loss rate   25.45%       51.73%      56.87%       18.22%) s
5 291 M
(        Throughput     94%          98%         97%          95%) s
5 269 M
(        Target Load =  1.50%) s
5 258 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 247 M
(                   -------     -------     -------      ----------) s
5 236 M
(        Dropped  1,449,945  1,565,0517  1,563,0801     1,372,067) s
5 225 M
(        Marked     669,840     583,378     591,315       675,290) s
5 214 M
(        Loss rate    46.7%       59.0%       59.0%         32.3%) s
5 203 M
(        Throughput     88%         94%         94%           93%) s
5 170 M
(   Table 1:  Simulations with an average flow size of 3 Kbytes, a) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 22]) s
_R
S
%%Page: (23) 23
%%BeginPageSetup
_S
24 24 translate
/pagenum 23 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   100 Mbps link, RED in packet mode, queue in packets.) s
5 643 M
(        Target Load = 95%:) s
5 621 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 610 M
(               ------------------------------------------------------) s
5 599 M
(        ECN:   0.00 0.07 0.26 0.51 0.82 0.96 0.97 0.97 0.97 1.00 1.00) s
5 588 M
(        ECN+:  0.00 0.07 0.27 0.53 0.85 0.99 1.00 1.00 1.00 1.00 1.00) s
5 577 M
(        Wait:  0.00 0.07 0.26 0.51 0.83 0.97 1.00 1.00 1.00 1.00 1.00) s
5 566 M
(        Once:  0.00 0.07 0.24 0.49 0.83 0.97 1.00 1.00 1.00 1.00 1.00) s
5 544 M
(        Target Load = 110%:) s
5 522 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 511 M
(               ------------------------------------------------------) s
5 500 M
(        ECN:   0.00 0.05 0.19 0.41 0.67 0.79 0.80 0.80 0.80 0.96 0.96) s
5 489 M
(        ECN+:  0.00 0.07 0.22 0.48 0.81 0.96 1.00 1.00 1.00 1.00 1.00) s
5 478 M
(        Wait:  0.00 0.05 0.18 0.38 0.64 0.77 0.95 1.00 1.00 1.00 1.00) s
5 467 M
(        Once:  0.00 0.06 0.19 0.41 0.70 0.86 0.95 0.96 0.96 0.99 0.99) s
5 445 M
(        Target Load = 125%:) s
5 423 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 412 M
(               ------------------------------------------------------) s
5 401 M
(        ECN:   0.00 0.04 0.13 0.27 0.46 0.56 0.58 0.59 0.59 0.82 0.82) s
5 390 M
(        ECN+:  0.00 0.06 0.18 0.33 0.58 0.76 0.97 0.99 0.99 1.00 1.00) s
5 379 M
(        Wait:  0.00 0.01 0.06 0.13 0.21 0.27 0.68 0.98 0.99 1.00 1.00) s
5 368 M
(        Once:  0.00 0.05 0.16 0.34 0.58 0.73 0.85 0.87 0.87 0.95 0.96) s
5 346 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 335 M
(               ------------------------------------------------------) s
5 324 M
(        ECN:   0.00 0.03 0.08 0.18 0.31 0.39 0.42 0.42 0.43 0.68 0.68) s
5 313 M
(        ECN+:  0.00 0.06 0.18 0.39 0.67 0.81 0.83 0.84 0.84 0.93 0.93) s
5 302 M
(        Wait:  0.00 0.06 0.18 0.39 0.67 0.81 0.83 0.84 0.84 0.93 0.94) s
5 291 M
(        Once:  0.00 0.04 0.13 0.28 0.47 0.60 0.72 0.75 0.76 0.88 0.89) s
5 269 M
(   Table 2:  The cumulative distribution function \(CDF\) for transfer) s
5 258 M
(   times, for simulations with an average flow size of 3 Kbytes, a) s
5 247 M
(   100 Mbps link, RED in packet mode, queue in packets.  \(The graphs are) s
5 236 M
(   available from "http://www.icir.org/floyd/ecn-syn/".\)) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 23]) s
_R
S
%%Page: (24) 24
%%BeginPageSetup
_S
24 24 translate
/pagenum 24 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(        Target Load =  0.95%) s
5 676 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 665 M
(                   -------     -------     -------      ----------) s
5 654 M
(        Dropped      8,448       6,362       7,740      16,323) s
5 643 M
(        Marked       9,891      16,787      17,456      17,186) s
5 632 M
(        Loss rate     5.5%        4.3%        5.0%        5.4%) s
5 621 M
(        Throughput     78%         78%         78%         82%) s
5 599 M
(        Target Load =  1.10%) s
5 588 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 577 M
(                   -------     -------     -------      ----------) s
5 566 M
(        Dropped     31,284      29,773      49,297      42,201) s
5 555 M
(        Marked      28,429      54,729      60,383      33,672) s
5 544 M
(        Loss rate    15.3%       15.2%       21.9%       13.5%) s
5 533 M
(        Throughput     97%         96%         96%         95%) s
5 511 M
(        Target Load =  1.25%) s
5 500 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 489 M
(                   -------     -------     -------      ----------) s
5 478 M
(        Dropped     61,433     176,682     214,096      79,463) s
5 467 M
(        Marked      44,408     119,728     117,301      48,991) s
5 456 M
(        Loss rate    25.4%       51.9%       56.0%       22.5%) s
5 445 M
(        Throughput     97%         98%         98%         95%) s
5 423 M
(        Target Load =  1.50%) s
5 412 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 401 M
(                   -------     -------     -------      ----------) s
5 390 M
(        Dropped    130,007     251,856     326,845     141,418) s
5 379 M
(        Marked      63,066     146,757     147,239      67,772) s
5 368 M
(        Loss rate    42.5%       61.3%       67.3%       33.3%) s
5 357 M
(        Throughput     93%         99%         99%         94%) s
5 335 M
(   Table 3: Simulations with an average flow size of 3 Kbytes, a 10 Mbps) s
5 324 M
(   link, RED in packet mode, queue in packets.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 24]) s
_R
S
%%Page: (25) 25
%%BeginPageSetup
_S
24 24 translate
/pagenum 25 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(        Target Load = 95%:) s
5 665 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 654 M
(               ------------------------------------------------------) s
5 643 M
(        ECN:   0.00 0.05 0.18 0.42 0.70 0.86 0.88 0.88 0.88 0.98 0.98) s
5 632 M
(        ECN+:  0.00 0.06 0.20 0.45 0.78 0.96 1.00 1.00 1.00 1.00 1.00) s
5 621 M
(        Wait:  0.00 0.05 0.18 0.40 0.68 0.84 0.96 1.00 1.00 1.00 1.00) s
5 610 M
(        Once:  0.00 0.05 0.18 0.39 0.69 0.87 0.96 0.96 0.96 0.99 0.99) s
5 588 M
(        Target Load = 110%:) s
5 566 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 555 M
(               ------------------------------------------------------) s
5 544 M
(        ECN:   0.00 0.03 0.13 0.29 0.52 0.66 0.69 0.69 0.69 0.91 0.91) s
5 533 M
(        ECN+:  0.00 0.05 0.17 0.36 0.66 0.88 0.98 0.99 1.00 1.00 1.00) s
5 522 M
(        Wait:  0.00 0.02 0.08 0.20 0.35 0.47 0.76 0.98 1.00 1.00 1.00) s
5 511 M
(        Once:  0.00 0.04 0.15 0.33 0.59 0.76 0.89 0.91 0.91 0.98 0.98) s
5 489 M
(        Target Load = 125%:) s
5 467 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 456 M
(               ------------------------------------------------------) s
5 445 M
(        ECN:   0.00 0.03 0.10 0.22 0.40 0.52 0.56 0.56 0.57 0.82 0.82) s
5 434 M
(        ECN+:  0.00 0.03 0.14 0.27 0.49 0.70 0.96 0.99 0.99 0.99 1.00) s
5 423 M
(        Wait:  0.00 0.00 0.03 0.07 0.12 0.18 0.50 0.94 0.99 0.99 1.00) s
5 412 M
(        Once:  0.00 0.04 0.13 0.29 0.51 0.66 0.81 0.84 0.84 0.94 0.94) s
5 390 M
(        Target Load = 150%:) s
5 368 M
(        TIME:    10  100  200  300  400  500 1000 2000 3000 4000 5000) s
5 357 M
(               ------------------------------------------------------) s
5 346 M
(        ECN:   0.00 0.02 0.07 0.15 0.28 0.38 0.42 0.42 0.43 0.67 0.68) s
5 335 M
(        ECN+:  0.00 0.00 0.00 0.00 0.01 0.05 0.68 0.83 0.95 0.97 0.98) s
5 324 M
(        Wait:  0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.62 0.83 0.93 0.97) s
5 313 M
(        Once:  0.00 0.03 0.11 0.23 0.42 0.56 0.71 0.74 0.74 0.87 0.88) s
5 280 M
(   Table 4:  The cumulative distribution function \(CDF\) for transfer) s
5 269 M
(   times, for simulations with an average flow size of 3 Kbytes, a) s
5 258 M
(   10 Mbps link, RED in packet mode, queue in packets.  \(The graphs are) s
5 247 M
(   available from "http://www.icir.org/floyd/ecn-syn/".\)) s
5 214 M
(A.2.  Simulations with RED in Byte Mode) s
5 192 M
(   Table 5 below shows simulations with RED in byte mode and the queue) s
5 181 M
(   in bytes.  There is no significant increase in aggregate congestion) s
5 170 M
(   with the use of ECN+, ECN+/Wait, or ECN+/TryOnce.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 25]) s
_R
S
%%Page: (26) 26
%%BeginPageSetup
_S
24 24 translate
/pagenum 26 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   However, unlike the simulations with RED in packet mode, the) s
5 676 M
(   simulations with RED in byte mode show little benefit from the use of) s
5 665 M
(   ECN+ or ECN+/Wait, in that the packet marking rate with ECN+ or) s
5 654 M
(   ECN+/Wait is not much different than the packet marking rate with) s
5 643 M
(   Standard ECN.  This is because with RED in byte mode, small packets) s
5 632 M
(   like SYN/ACK packets are rarely dropped or marked - that is, there is) s
5 621 M
(   no drawback from the use of ECN+ in these scenarios, but not much) s
5 610 M
(   need for ECN+ either, in a scenario where small packets are unlikely) s
5 599 M
(   to be dropped or marked.) s
5 566 M
(        Target Load = 95%) s
5 555 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 544 M
(                   -------     -------     -------      ----------) s
5 533 M
(        Dropped        766         446         427             408) s
5 522 M
(        Marked      32,683      34,289      33,412          31,892) s
5 511 M
(        Loss rate    0.05%       0.03%       0.03%           0.03%) s
5 500 M
(        Throughput     81%         81%         81%             81%) s
5 478 M
(        Target Load = 110%) s
5 467 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 456 M
(                   -------     -------     -------      ----------) s
5 445 M
(        Dropped      2,496       2,110       1,733           2,024) s
5 434 M
(        Marked     220,573     258,696     230,955         224,338) s
5 423 M
(        Loss rate    0.15%       0.13%       0.11%           0.11%) s
5 412 M
(        Throughput     92%         91%         92%             92%) s
5 390 M
(        Target Load = 125%) s
5 379 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 368 M
(                   -------     -------     -------      ----------) s
5 357 M
(        Dropped     20,032      13,555      13,979          19,544) s
5 346 M
(        Marked     725,165     726,992     726,823         627,088) s
5 335 M
(        Loss rate    1.11%       0.76%       0.78%           0.72%) s
5 324 M
(        Throughput     95%         95%         95%             95%) s
5 302 M
(        Target Load = 150%) s
5 291 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 280 M
(                   -------     -------     -------      ----------) s
5 269 M
(        Dropped    484,251     483,847     507,727         572,373) s
5 258 M
(        Marked     865,905     872,254     873,317         816,841) s
5 247 M
(        Loss rate   19.09%      19.13%      19.71%          12.28%) s
5 236 M
(        Throughput     99%         98%         99%             99%) s
5 214 M
(   Table 5: Simulations with an average flow size of 3 Kbytes, a) s
5 203 M
(   100 Mbps link, RED in byte mode, queue in bytes.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 26]) s
_R
S
%%Page: (27) 27
%%BeginPageSetup
_S
24 24 translate
/pagenum 27 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(        Target Load =  0.95%) s
5 676 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 665 M
(                   -------     -------     -------      ----------) s
5 654 M
(        Dropped        142          77         103          99) s
5 643 M
(        Marked      11,694      11,387      11,604      12,129) s
5 632 M
(        Loss rate     0.1%        0.1%        0.1%        0.1%) s
5 621 M
(        Throughput     78%         78%         78%         78%) s
5 599 M
(        Target Load =  1.10%) s
5 588 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 577 M
(                   -------     -------     -------      ----------) s
5 566 M
(        Dropped        338         210         247         292) s
5 555 M
(        Marked      41,676      40,412      44,173      37,527) s
5 544 M
(        Loss rate     0.2%        0.1%        0.1%        0.1%) s
5 533 M
(        Throughput     94%         94%         94%         95%) s
5 511 M
(        Target Load =  1.25%) s
5 500 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 489 M
(                   -------     -------     -------      ----------) s
5 478 M
(        Dropped      1,559         951         978       1,490) s
5 467 M
(        Marked      74,933      75,499      75,481      57,721) s
5 456 M
(        Loss rate     0.8%        0.5%        0.5%        0.5%) s
5 445 M
(        Throughput     99%         99%         99%         96%) s
5 423 M
(        Target Load =  1.50%) s
5 412 M
(                      ECN        ECN+     ECN+/Wait    ECN+/TryOnce) s
5 401 M
(                   -------     -------     -------      ----------) s
5 390 M
(        Dropped      2,374       1,528       1,515       4,517) s
5 379 M
(        Marked      85,739      86,428      86,144      81,695) s
5 368 M
(        Loss rate     1.2%        0.8%        0.8%        1.3%) s
5 357 M
(        Throughput     99%         98%         98%         98%) s
5 324 M
(   Table 6: Simulations with an average flow size of 3 Kbytes, a 10 Mbps) s
5 313 M
(   link, RED in byte mode, queue in bytes.) s
5 291 M
(B.  Issues of Incremental Deployment) s
5 269 M
(   In order for TCP node B to send a SYN/ACK packet as ECN-Capable, node) s
5 258 M
(   B must have received an ECN-setup SYN packet from node A.  However,) s
5 247 M
(   it is possible that node A supports ECN, but either ignores the CE) s
5 236 M
(   codepoint on received SYN/ACK packets, or ignores SYN/ACK packets) s
5 225 M
(   with the ECT or CE codepoint set.  If the TCP initiator ignores the) s
5 214 M
(   CE codepoint on received SYN/ACK packets, this would mean that the) s
5 203 M
(   TCP responder would not respond to this congestion indication.) s
5 192 M
(   However, this seems to us an acceptable cost to pay in the) s
5 181 M
(   incremental deployment of ECN-Capability for TCP's SYN/ACK packets.) s
5 170 M
(   It would mean that the responder would not reduce the initial) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 27]) s
_R
S
%%Page: (28) 28
%%BeginPageSetup
_S
24 24 translate
/pagenum 28 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   congestion window from two, three, or four segments down to one) s
5 676 M
(   segment, as it should.  and would not sent a non-ECN-Capable SYN/ACK) s
5 665 M
(   packet to complete the SYN exchange.  However, the TCP end nodes) s
5 654 M
(   would still respond correctly to any subsequent CE indications on) s
5 643 M
(   data packets later on in the connection.) s
5 621 M
(   Figure 4 shows an interchange with the SYN/ACK packet ECN-marked, but) s
5 610 M
(   with the ECN mark ignored by the TCP originator.) s
5 588 M
(        ---------------------------------------------------------------) s
5 577 M
(           TCP Node A             Router                  TCP Node B) s
5 566 M
(           \(initiator\)                                   \(responder\)) s
5 555 M
(           ----------             ------                  ----------) s
5 533 M
(           ECN-setup SYN packet --->) s
5 522 M
(                                           ECN-setup SYN packet --->) s
5 500 M
(                                         <--- ECN-setup SYN/ACK, ECT) s
5 489 M
(                              <--- Sets CE on SYN/ACK) s
5 478 M
(           <--- ECN-setup SYN/ACK, CE) s
5 456 M
(           Data/ACK, No ECN-Echo --->) s
5 445 M
(                                                      Data/ACK --->) s
5 434 M
(                                     <--- Data \(up to four packets\)) s
5 423 M
(        ---------------------------------------------------------------) s
5 401 M
(           Figure 4: SYN exchange with the SYN/ACK packet marked,) s
5 390 M
(             but with the ECN mark ignored by the TCP initiator.) s
5 368 M
(   Thus, to be explicit, when a TCP connection includes an initiator) s
5 357 M
(   that supports ECN but *does not* support ECN-Capability for SYN/ACK) s
5 346 M
(   packets, in combination with a responder that *does* support ECN-) s
5 335 M
(   Capability for SYN/ACK packets, it is possible that the ECN-Capable) s
5 324 M
(   SYN/ACK packets will be marked rather than dropped in the network,) s
5 313 M
(   and that the responder will not learn about the ECN mark on the) s
5 302 M
(   SYN/ACK packet.  This would not be a problem if most packets from the) s
5 291 M
(   responder supporting ECN for SYN/ACK packets were in long-lived TCP) s
5 280 M
(   connections, but it would be more problematic if most of the packets) s
5 269 M
(   were from TCP connections consisting of four data packets, and the) s
5 258 M
(   TCP responder for these connections was ready to send its data) s
5 247 M
(   packets immediately after the SYN/ACK exchange.  Of course, with) s
5 236 M
(   *severe* congestion, the SYN/ACK packets would likely be dropped) s
5 225 M
(   rather than ECN-marked at the congested router, preventing the TCP) s
5 214 M
(   responder from adding to the congestion by sending its initial window) s
5 203 M
(   of four data packets.) s
5 181 M
(   It is also possible that in some older TCP implementation, the) s
5 170 M
(   initiator would ignore arriving SYN/ACK packets that had the ECT or) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 28]) s
_R
S
%%Page: (29) 29
%%BeginPageSetup
_S
24 24 translate
/pagenum 29 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   CE codepoint set.  This would result in a delay in connection set-up) s
5 676 M
(   for that TCP connection, with the initiator re-sending the SYN packet) s
5 665 M
(   after a retransmit timeout.  We are not aware of any TCP) s
5 654 M
(   implementations with this behavior.) s
5 632 M
(   One possibility for coping with problems of backwards compatibility) s
5 621 M
(   would be for TCP initiators to use a TCP flag that means "I) s
5 610 M
(   understand ECN-Capable SYN/ACK packets".  If this document were to) s
5 599 M
(   standardize the use of such an "ECN-SYN" flag, then the TCP responder) s
5 588 M
(   would only send a SYN/ACK packet as ECN-capable if the incoming SYN) s
5 577 M
(   packet had the "ECN-SYN" flag set.  An ECN-SYN flag would prevent the) s
5 566 M
(   backwards compatibility problems described in the paragraphs above.) s
5 544 M
(   One drawback to the use of an ECN-SYN flag is that it would use one) s
5 533 M
(   of the four remaining reserved bits in the TCP header, for a) s
5 522 M
(   transient backwards compatibility problem.  This drawback is limited) s
5 511 M
(   by the fact that the "ECN-SYN" flag would be defined only for use) s
5 500 M
(   with ECN-setup SYN packets;  that bit in the TCP header could be) s
5 489 M
(   defined to have other uses for other kinds of TCP packets.) s
5 467 M
(   Factors in deciding not to use an ECN-SYN flag include the following:) s
5 445 M
(   \(1\) The limited installed base: At the time that this document was) s
5 434 M
(   written, the TCP implementations in Microsoft Vista and Mac OS X) s
5 423 M
(   included ECN, but ECN was not enabled by default [SBT07].  Thus,) s
5 412 M
(   there was not a large deployed base of ECN-Capable TCP) s
5 401 M
(   implementations.  This limits the scope of any backwards) s
5 390 M
(   compatibility problems.) s
5 368 M
(   \(2\) Limits to the scope of the problem: The backwards compatibility) s
5 357 M
(   problem would not be serious enough to cause congestion collapse;) s
5 346 M
(   with severe congestion, the buffer at the congested router will) s
5 335 M
(   overflow, and the congested router will drop rather than ECN-mark) s
5 324 M
(   arriving SYN packets.  Some active queue management mechanisms might) s
5 313 M
(   switch from packet-marking to packet-dropping in times of high) s
5 302 M
(   congestion before buffer overflow, as recommended in Section 19.1 of) s
5 291 M
(   RFC 3168.  This helps to prevent congestion collapse problems with) s
5 280 M
(   the use of ECN.) s
5 258 M
(   \(3\) Detection of and response to backwards-compatibility problems: A) s
5 247 M
(   TCP responder such as a web server can't differentiate between a) s
5 236 M
(   SYN/ACK packet that is not ECN-marked in the network, and a SYN/ACK) s
5 225 M
(   packet that is ECN-marked, but where the ECN mark is ignored by the) s
5 214 M
(   TCP initiator.  However, a TCP responder *can* detect if a SYN/ACK) s
5 203 M
(   packet is sent as ECN-capable and not reported as ECN-marked, but) s
5 192 M
(   data packets are dropped or marked from the initial window of data.) s
5 181 M
(   We will call this scenario "initial-window-congestion".  If a web) s
5 170 M
(   server frequently experienced initial-window congestion \(without) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 29]) s
_R
S
%%Page: (30) 30
%%BeginPageSetup
_S
24 24 translate
/pagenum 30 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   SYN/ACK congestion\), then the web server *might* be experiencing) s
5 676 M
(   backwards compatibility problems with ECN-Capable SYN/ACK packets,) s
5 665 M
(   and could respond by not sending SYN/ACK packets as ECN-Capable.) s
5 632 M
(Normative References) s
5 610 M
(   [RFC 2119] S. Bradner, Key words for use in RFCs to Indicate) s
5 599 M
(   Requirement Levels, RFC 2119, March 1997.) s
5 577 M
(   [RFC3168] K.K. Ramakrishnan, S. Floyd, and D. Black, The Addition of) s
5 566 M
(   Explicit Congestion Notification \(ECN\) to IP, RFC 3168, Proposed) s
5 555 M
(   Standard, September 2001.) s
5 533 M
(Informative References) s
5 511 M
(   [ECN+] A. Kuzmanovic, The Power of Explicit Congestion Notification,) s
5 500 M
(   SIGCOMM 2005.) s
5 478 M
(   [ECN-SYN] ECN-SYN web page with simulation scripts, URL) s
5 467 M
(   "http://www.icir.org/floyd/ecn-syn".) s
5 445 M
(   [F07] S. Floyd, "[BEHAVE] Response of firewalls and middleboxes to) s
5 434 M
(   TCP SYN packets that are ECN-Capable?", August 2, 2007, email sent to) s
5 423 M
(   the BEHAVE mailing list, URL "http://www1.ietf.org/mail-) s
5 412 M
(   archive/web/behave/current/msg02644.html".) s
5 390 M
(   [Kelson00] Dax Kelson, note sent to the Linux kernel mailing list,) s
5 379 M
(   September 10, 2000.) s
5 357 M
(   [L08] A. Landley, "Re: [tcpm] I-D Action:draft-ietf-tcpm-) s
5 346 M
(   ecnsyn-06.txt", Email to the tcpm mailing list, August 24, 2008.) s
5 324 M
(   [MAF05] A. Medina, M. Allman, and S. Floyd.  Measuring the Evolution) s
5 313 M
(   of Transport Protocols in the Internet, ACM CCR, April 2005.) s
5 291 M
(   [PI] C. Hollot, V. Misra, W. Gong, and D. Towsley, On Designing) s
5 280 M
(   Improved Controllers for AQM Routers Supporting TCP Flows, April) s
5 269 M
(   1998.) s
5 247 M
(   [RED] Floyd, S., and Jacobson, V.  Random Early Detection gateways) s
5 236 M
(   for Congestion Avoidance .  IEEE/ACM Transactions on Networking, V.1) s
5 225 M
(   N.4, August 1993.) s
5 203 M
(   [REM] S. Athuraliya, V. H. Li, S. H. Low and Q. Yin, REM: Active) s
5 192 M
(   Queue Management, IEEE Network, May 2001.) s
5 170 M
(   [RFC2309] B. Braden et al., Recommendations on Queue Management and) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 30]) s
_R
S
%%Page: (31) 31
%%BeginPageSetup
_S
24 24 translate
/pagenum 31 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   Congestion Avoidance in the Internet, RFC 2309, April 1998.) s
5 665 M
(   [RFC2581] M. Allman, V. Paxson, and W. Stevens, TCP Congestion) s
5 654 M
(   Control, RFC 2581, April 1999.) s
5 632 M
(   [RFC2988] V. Paxson and M. Allman, Computing TCP's Retransmission) s
5 621 M
(   Timer, RFC 2988, November 2000.) s
5 599 M
(   [RFC3042] M. Allman, H. Balakrishnan, and S. Floyd, Enhancing TCP's) s
5 588 M
(   Loss Recovery Using Limited Transmit, RFC 3042, Proposed Standard,) s
5 577 M
(   January 2001.) s
5 555 M
(   [RFC3360] S. Floyd, Inappropriate TCP Resets Considered Harmful, RFC) s
5 544 M
(   3360, August 2002.) s
5 522 M
(   [RFC3390] M. Allman, S. Floyd, and C. Partridge, Increasing TCP's) s
5 511 M
(   Initial Window, RFC 3390, October 2002.) s
5 489 M
(   [RFC4987] W. Eddy, TCP SYN Flooding Attacks and Common Mitigations,) s
5 478 M
(   RFC 4987, August 2007.) s
5 456 M
(   [SCJO01] F. Smith, F. Campos, K. Jeffay, and D. Ott, What TCP/IP) s
5 445 M
(   Protocol Headers Can Tell us about the Web, SIGMETRICS, June 2001.) s
5 423 M
(   [SYN-COOK]   Dan J. Bernstein, SYN cookies, 1997, see also) s
5 412 M
(   <http://cr.yp.to/syncookies.html>) s
5 390 M
(   [SBT07] M. Sridharan, D. Bansal, and D. Thaler, Implementation Report) s
5 379 M
(   on Experiences with Various TCP RFCs, Presentation in the TSVAREA,) s
5 368 M
(   IETF 68, March 2007.  URL) s
5 357 M
(   "http://www3.ietf.org/proceedings/07mar/slides/tsvarea-3/sld6.htm".) s
5 335 M
(   [Tools] S. Floyd and E. Kohler, Tools for the Evaluation of) s
5 324 M
(   Simulation and Testbed Scenarios, Internet-draft draft-irtf-tmrg-) s
5 313 M
(   tools-05, work in progress, February 2008.) s
5 291 M
(IANA Considerations) s
5 269 M
(   There are no IANA considerations regarding this document.) s
5 236 M
(Authors' Addresses) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 31]) s
_R
S
%%Page: (32) 32
%%BeginPageSetup
_S
24 24 translate
/pagenum 32 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   Aleksandar Kuzmanovic) s
5 676 M
(   Phone: +1 \(847\) 467-5519) s
5 665 M
(   Northwestern University) s
5 654 M
(   Email: akuzma at northwestern.edu) s
5 643 M
(   URL: http://cs.northwestern.edu/~a) s
5 621 M
(   Amit Mondal) s
5 610 M
(   Northwestern University) s
5 599 M
(   Email: a-mondal at northwestern.edu) s
5 577 M
(   Sally Floyd) s
5 566 M
(   Phone: +1 \(510\) 666-2989) s
5 555 M
(   ICIR \(ICSI Center for Internet Research\)) s
5 544 M
(   Email: floyd@icir.org) s
5 533 M
(   URL: http://www.icir.org/floyd/) s
5 511 M
(   K. K. Ramakrishnan) s
5 500 M
(   Phone: +1 \(973\) 360-8764) s
5 489 M
(   AT&T Labs Research) s
5 478 M
(   Email: kkrama at research.att.com) s
5 467 M
(   URL: http://www.research.att.com/info/kkrama) s
5 434 M
(Full Copyright Statement) s
5 412 M
(   Copyright \(C\) The IETF Trust \(2008\).) s
5 390 M
(   This document is subject to the rights, licenses and restrictions) s
5 379 M
(   contained in BCP 78, and except as set forth therein, the authors) s
5 368 M
(   retain all their rights.) s
5 346 M
(   This document and the information contained herein are provided on an) s
5 335 M
(   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS) s
5 324 M
(   OR IS SPONSORED BY \(IF ANY\), THE INTERNET SOCIETY, THE IETF TRUST AND) s
5 313 M
(   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS) s
5 302 M
(   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF) s
5 291 M
(   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED) s
5 280 M
(   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.) s
5 258 M
(Intellectual Property) s
5 236 M
(   The IETF takes no position regarding the validity or scope of any) s
5 225 M
(   Intellectual Property Rights or other rights that might be claimed to) s
5 214 M
(   pertain to the implementation or use of the technology described in) s
5 203 M
(   this document or the extent to which any license under such rights) s
5 192 M
(   might or might not be available; nor does it represent that it has) s
5 181 M
(   made any independent effort to identify any such rights.  Information) s
5 170 M
(   on the procedures with respect to rights in RFC documents can be) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 32]) s
_R
S
%%Page: (33) 33
%%BeginPageSetup
_S
24 24 translate
/pagenum 33 def
/fname (draft-ietf-tcpm-ecnsyn-07.txt) def
/fdir () def
/ftail (draft-ietf-tcpm-ecnsyn-07.txt) def
/user_header_p false def
%%EndPageSetup
5 720 M
(INTERNET-DRAFT           ECN and SYN/ACK Packets           November 2008) s
5 687 M
(   found in BCP 78 and BCP 79.) s
5 665 M
(   Copies of IPR disclosures made to the IETF Secretariat and any) s
5 654 M
(   assurances of licenses to be made available, or the result of an) s
5 643 M
(   attempt made to obtain a general license or permission for the use of) s
5 632 M
(   such proprietary rights by implementers or users of this) s
5 621 M
(   specification can be obtained from the IETF on-line IPR repository at) s
5 610 M
(   http://www.ietf.org/ipr.) s
5 588 M
(   The IETF invites any interested party to bring to its attention any) s
5 577 M
(   copyrights, patents or patent applications, or other proprietary) s
5 566 M
(   rights that may cover technology that may be required to implement) s
5 555 M
(   this standard.  Please address the information to the IETF at ietf-) s
5 544 M
(   ipr@ietf.org.) s
5 126 M
(Floyd et al.               Expires: 3 May 2009                 [Page 33]) s
_R
S
%%Trailer
%%Pages: 33
%%DocumentNeededResources: font Courier-Bold Courier 
%%EOF

PAFTECH AB 2003-20262026-04-23 05:27:48