Re: [tcpm] Re: draft-ietf-tcpm-ecnsyn-03.txt backwards compatibility

Mark Allman <> Fri, 04 January 2008 14:01 UTC

Return-path: <>
Received: from [] ( by with esmtp (Exim 4.43) id 1JAn6v-0005G3-FQ; Fri, 04 Jan 2008 09:01:21 -0500
Received: from tcpm by with local (Exim 4.43) id 1JAn6t-0005Fw-Qb for; Fri, 04 Jan 2008 09:01:19 -0500
Received: from [] ( by with esmtp (Exim 4.43) id 1JAn6t-0005Fo-Gw for; Fri, 04 Jan 2008 09:01:19 -0500
Received: from ([]) by with esmtp (Exim 4.43) id 1JAn6q-0002a8-Im for; Fri, 04 Jan 2008 09:01:19 -0500
Received: from ( []) by pork.ICSI.Berkeley.EDU ( with ESMTP id m04E1CvL028626; Fri, 4 Jan 2008 06:01:13 -0800
Received: from ( []) by (Postfix) with ESMTP id 3A88C13C4502; Fri, 4 Jan 2008 09:01:07 -0500 (EST)
Received: from (localhost []) by (Postfix) with ESMTP id B80A7328DFE; Fri, 4 Jan 2008 09:00:11 -0500 (EST)
To: Sally Floyd <>
From: Mark Allman <>
Subject: Re: [tcpm] Re: draft-ietf-tcpm-ecnsyn-03.txt backwards compatibility
In-Reply-To: <>
Organization: International Computer Science Institute (ICSI)
Song-of-the-Day: And We Danced
MIME-Version: 1.0
Date: Fri, 04 Jan 2008 09:00:11 -0500
Message-Id: <>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 6ffdee8af20de249c24731d8414917d3
Cc: Aleksandar Kuzmanovic <>, "K. K. Ramakrishnan" <>, Amit Mondal <>,
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
Content-Type: multipart/mixed; boundary="===============0034605731=="


Bob raised a point about a case where a CE mark can be masked in the
ECN-SYN scheme that is under WGLC.  Sally's summary is appended below.
It seems from the discussion in Vancouver and the silence on the list
that there is not much consensus to change the document's current state
(which is approach (1) below---i.e., do nothing).  If folks have a
different opinion on this question they need to speak up quite fast as
it seems this document is ready to forward.


(tcpm co-chair)

> To Bob and the working group:
> The discussion with Bob Briscoe concerns the following paragraph in
> the ECN/SYN draft:
> The discussion with Bob Briscoe concerns the following paragraph in
> Section 4 of the ECN/SYN draft:
>     Backwards compatibility:
>     In order for TCP node B to send a SYN/ACK packet as ECN-Capable, node
>     B must have received an ECN-setup SYN packet from node A.  However,
>     it is possible that node A supports ECN, but either ignores the CE
>     codepoint on received SYN/ACK packets, or ignores SYN/ACK packets
>     with the ECT or CE codepoint set.  If the TCP initiator ignores the
>     CE codepoint on received SYN/ACK packets, this would mean that the
>     TCP responder would not respond to this congestion indication.
>     However, this seems to us an acceptable cost to pay in the
>     incremental deployment of ECN-Capability for TCP's SYN/ACK packets.
>     It would mean that the responder would not reduce the initial
>     congestion window from two, three, or four segments down to one
>     segment, as it should.  However, the TCP end nodes would still
>     respond correctly to any subsequent CE indications on data packets
>     later on in the connection.  Thus, to be explicit, when a TCP
>     connection includes an initiator that supports ECN but *does not*
>     support ECN-Capability for SYN/ACK packets, in combination with a
>     responder that *does* support ECN-Capabililty for SYN/ACK packets, it
>     is quite possible that the ECN-Capable SYN/ACK packets will be marked
>     rather than dropped in the network, and that the responder will not
>     learn about the ECN mark on the SYN/ACK packet.
> There are three choices:
> (1) Leave it as it is, and accept it that sometimes, as a cost of
> incemental deployment, a SYN/ACK packet would be ECN-marked, and the
> originator, with an older TCP implementation (ECN-capable, but not
> understanding ECN-marked SYN/ACK packets), would ignore the ECN mark
> on the SYN/ACK packet.
> (I don't know what the Microsoft, Max OS X, and Linux ECN
> implementations
> do about ECN-marked SYN/ACK packets, but I would assume that they
> ignore the ECN marks on SYN/ACK packets...)
> (2) Use one of the four remaining TCP header flags.  On a SYN packet,
> the flag would mean ECN-SYN ("I want to use ECN, and I understand
> ECN-marked SYN/ACK packets").  On a packet other than a SYN packet,
> the TCP flag could be used for something else.  The responder already
> has to look at the TCP header flags to learn that the originator
> is ECN-capable, so looking at one more flag should not be a problem.
> (3) Use a two-byte ECN-SYN TCP option on SYN packets, meaning "I
> understand ECN-marked SYN/ACK packets."  There is at most 40 bytes
> for TCP options, and other options that might be carried by SYN
> packets include Sack Permitted (2 bytes), MSS (4 bytes), Window
> Scale (3 bytes), Timestamp (10 bytes).
> The downside of (1) is that during congestion, SYN-ACK packets
> could be ECN-marked rather than dropped, and the TCP response
> might never find out about the ECN-mark on the SYN-ACK packet.
> This could happen if the TCP originator uses an old ECN-Capable
> TCP implementation that doesn't response to ECN marks on
> incoming SYN/ACK packets, and the congested link has ECN enabled.
> The downside of (2) and (3) is that the TCP flag or TCP option
> would have to be used in perpetuity, long after all ECN-capable
> TCP implementations were updated to respond to incoming ECN-marked
> SYN/ACK packets.  This would be a drag for (3), but less of a drag
> for (2) - the cost of using one of the four remaining header flags
> might be an acceptable cost.
> So would the working group like us to use a TCP header flag for this,
> or not?
> This is scheduled for a 5-minute slot at TCMP on Tuesday, so we
> can discuss it then.
> - Sally
> _______________________________________________
> tcpm mailing list

tcpm mailing list