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-2026 | 2026-04-23 05:27:48 |