Re: [tcpm] ECN+SYN
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tcpm] ECN+SYN



On Thursday 21 February 2008, Sally Floyd wrote:
> In summary, I would be *strongly* opposed to any proposal
> for TCP SYN packets to be sent as ECN-capable.

Hello Sally and thank you for your detailed and explanatory reply!

(I'm replying to the whole mail as a whole)

  After carefully reading your mail a couple of times, re-examining 
draft-ietf-tcpm-ecnsyn-05.txt and having in mind RFC3168, I still believe 
that the draft should be modified a bit regarding the SYN+ECT case. For the 
rest of the mail I'm using the term ECT when referring to flags in IP packets 
and ECN when referring to TCP flags.

  First of all, partially in contrast with RFC3168, the draft indirectly 
suggests that ECT should be used in SYN/ACK packets as:
a) an improvement for detecting congestion a little bit earlier and starting 
with a reduced window size (smaller initial window) (p.8, bottom)
b) a method of QoS that will result in less SYN/ACK looses when operating on 
an ECN enabled network (p.5, bottom (2)) (p.7, top).

Point (a) has to do with ECN(+ECT) and (b) has to do with ECT. 

  Also, the draft:
a) Proposes ECT for SYN/ACK segments
b) Forbids ECT for SYN segments

  I argue that the exact same reasons specified in point (b) (regarding QoS) 
apply to SYN segments too. In fact, if you imagine an ECN enabled Internet 
that uses RED everywhere then the only dropped segments of a TCP session 
because of congestion may be the SYNs (!!). Also consider that loosing the 
first SYN of a session MAY result in a ECN-less connection (RFC3168 
6.1.1.1) - which increases its importance.

  I suggest that the draft:
a) Do not forbid ECT for SYN segments
b) Propose the usage of ECT for SYN segments

  Since on an ECN enabled Internet that uses AQM everywhere the ECN bits in IP 
will (most probably) also work as a kind of QoS, we should not consider ECT 
only as a congestion indication method. We should have in mind the effects of 
not using ECT which will result in poorer performance. I totally agree that 
most probably we will not benefit from congestion indication in SYN segments 
and I understand that RFC3168 explicitly says that "an ECT codepoint MUST NOT 
be set in a packet unless the loss of that packet in the network would be 
detected by the end nodes and interpreted as an indication of congestion" 
(RFC3168 5.2) but on the other hand, SYN and SYN/ACK segments are not exactly 
data (for normal operations) and (I believe that) they are only a very small 
fraction of the whole internet traffic (either as packet count or byte 
count).

  So, it may be wise and harmless to also propose in this draft that "when a 
host sends a SYN segment it MAY set the ECT codepoint to prevent intermediate 
routers from dropping it instead of marking it"

  Regarding security considerations: I fail to see why ECT+SYN may be a 
threat. Of course a malicious user may use it to prevent intermediate routers 
from dropping those packets but trying to prevent this:
a) Is not what we're doing everywhere else
b) Is like disallowing fast and reliable internet connections to prevent 
malicious users from performing SYN flooding.

  Hope that this clarifies my thoughts... and that they are not (totally) 
wrong :-)

Best regards,
Harhalakis Stefanos
_______________________________________________
tcpm mailing list
tcpm at ietf.org
http://www.ietf.org/mailman/listinfo/tcpm



Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.