Subject: Re: [tcpm] ECN and synCookie

From: Krishna Khanal <[email-masked]>
Date: Mon, 2 Dec 2013 16:08:04 +0530

Thanks Richard for the details and these link to the drafts.

On Thu, Nov 28, 2013 at 4:11 PM, Scheffenegger, Richard <[email-masked]>wrote:

>  Hi Krishna,
>
>
>
> as the exact way how a Syn-Cookie is formed is an arbitrary choice by the
> server doing this, I don’t see that this couldn’t be achieved. Also, it
> doesn’t need any standards action.
>
>
>
>
>
> Changing the Semantics of the TCP ECN handshake however, would change the
> semantics; I’m one of the co-authors of the AccECN drafts, where a
> different signaling is to be defined. The point you make has not yet
> brought forward as a requirement to be included in
> http://tools.ietf.org/html/draft-ietf-tcpm-accecn-reqs-04. But as we have
> not yet settled on any specific encoding to go with these requirements,
> something along the lines below could probably be easily added.
>
>
>
> For example, what you ask would probably be easy to implement both with
> http://tools.ietf.org/html/draft-kuehlewind-tcpm-accurate-ecn-02 and
> http://tools.ietf.org/html/draft-kuehlewind-tcpm-accurate-ecn-option-01 .
>
>
>
> You may also look into the work here
> http://tools.ietf.org/html/draft-kuehlewind-tcpm-ecn-fallback-01 to see
> how it could interact.
>
>
>
>
>
> As a side note, even within RFC3168, your (active open) client would have
> two (non-standard) options to convey the use of ECN again back to the
> (passive open) server. One would be to set the ECT(0) or ECT(1) codepoint
> in the ACK – though RFC1368 doesn’t allow that on pure ACKs; the other one
> would be to signal CWR in the pure ACK. However, as both approaches are not
> specific (and the use of ECT on pure ACKs may have other implications for
> the network), you cann’t rely on the server to react properly.
>
>
>
> Of course, any data segment from the client to the server would
> legitimately contain ECT(0), ECT(1) or CE, and the server could “late”
> enable ECN support after receiving such a segment, if the session was set
> up using Syn-Cookies. Up to that point (the first ECN-marked segment from
> the client), the server could send regular, non-ECN segments, and I think
> such a session would be fully compliant – just not make use of ECN until
> the first indication of ECN from the client…
>
>
>
>
>
> Best regards,
>
>
>
> Richard Scheffenegger
>
>
>
> *From:* tcpm [mailto:[email-masked]] *On Behalf Of *Krishna Khanal
> *Sent:* Donnerstag, 28. November 2013 06:28
> *To:* [email-masked]
> *Subject:* [tcpm] ECN and synCookie
>
>
>
>
>
> A server with synCookie support generally replies the important options
> received on SYN from
>
> client on its SYN+ACK packet to client after encoding it in its ISS. Since
> the number of options
>
> exchanged in SYN are growing, there are some alternate ways to remember
> this, like echoing
>
> the options in timestamp so that it can be offloaded from ISS.
>
>
>
> One of the option exchanged in handshake is ECN. When a server receives a
> SYN with ECE+CWR
>
> set, it replies with ECE. if server has synCookie enabled, it must
> remember this on ISS as well.
>
>
>
> What about echoing back the ECE option on final ack? If client receives
> SYN+ACK with ECE, it can
>
> set ECE on final ack and send it to server.
>
>
>
> With this, there are two advantages:
>
> 1. no need to encode the ECN capability on syncookie
>
> 2. if the path is asymmetric (though path can change anytime), client can
> inform server about it,
>
> if the ECE is not set on final ack, server can ignore ECN even if its
> enabled.
>
>
>
> Were there any discussions in the past on this? Does this make any sense?
>
>
>
> Regards,
>
> Krishna
>
>
>
>
>

---

From: Joe Touch <[email-masked]>
Date: Mon, 02 Dec 2013 10:50:23 -0800

On 11/27/2013 9:27 PM, Krishna Khanal wrote:
>
> One of the option exchanged in handshake is ECN. When a server receives
> a SYN with ECE+CWR
> 2. if the path is asymmetric (though path can change anytime), client
> can inform server about it,

We've talked at various times on this list about the potential to start 
options in mid-stream, i.e., after then SYN exchange. The big problem is 
that the three-way handshake ensures agreement only during the initial 
SYN exchange. Doing that afterwards has a lot of problems - how to 
handle retransmission, packets sent until the state is coordinated, etc.

Joe