Re: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt

Pasi Sarolahti <pasi.sarolahti@iki.fi> Mon, 27 May 2013 10:19 UTC

Return-Path: <pasi.sarolahti@iki.fi>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D5FFA21F90FD for <tcpm@ietfa.amsl.com>; Mon, 27 May 2013 03:19:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level:
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mXZDFruY9aAG for <tcpm@ietfa.amsl.com>; Mon, 27 May 2013 03:19:40 -0700 (PDT)
Received: from jenni1.inet.fi (mta-out.inet.fi [195.156.147.13]) by ietfa.amsl.com (Postfix) with ESMTP id B6A3D21F8A68 for <tcpm@ietf.org>; Mon, 27 May 2013 03:19:39 -0700 (PDT)
Received: from pc114.tct.hut.fi (130.233.154.114) by jenni1.inet.fi (8.5.140.03) (authenticated as saropa-1) id 5163EC56030AF9E5; Mon, 27 May 2013 13:19:19 +0300
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
From: Pasi Sarolahti <pasi.sarolahti@iki.fi>
In-Reply-To: <26034_1369382276_519F1D83_26034_1735_1_519F1D68.604@uclouvain.be>
Date: Mon, 27 May 2013 13:19:25 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <E220F4B0-EE27-431C-BCBE-0A0C01C8B0EF@iki.fi>
References: <20130518155753.17946.96581.idtracker@ietfa.amsl.com> <CAK6E8=d_LTZgnGAncdWDAi+7ebd3Lo5aevPeGG0=KSbBMeBhcg@mail.gmail.com> <519A8322.6030405@isi.edu> <26034_1369382276_519F1D83_26034_1735_1_519F1D68.604@uclouvain.be>
To: <Olivier.Bonaventure@uclouvain.be>
X-Mailer: Apple Mail (2.1503)
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Joe Touch <touch@isi.edu>
Subject: Re: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 May 2013 10:19:45 -0000

On May 24, 2013, at 10:57 AM, Olivier Bonaventure <Olivier.Bonaventure@uclouvain.be> wrote:

> Joe, Yuchung,
> 
>> I suggest clarifying this as:
>> 
>>    Once TSopt has been successfully negotiated (sent and received)
>>    during the <SYN>, <SYN,ACK> exchange, TSopt MUST be sent in every
>>    non-<RST> segment for the duration of the connection, and SHOULD be
>>    sent in a <RST> segment (see Section 4.2 for details).
> 
> I fail to see the rationale for forcing a TCP connection to always send the TSopt in every segment. The timestamp aids to estimate the rtt and provides PAWS for long connections. Given the size of the TCP option space, we should not force the utilisation of the TSopt in all segments. Consider a TCP implementation that supports SACK, RFC1323 and TCP-AO or Multipath TCP. When this implementation sends an ACK segment that contains a SACK, is it better to encode a long SACK block or to use option space to encode a timestamp ? I'd vote for providing a timestamp from time to time and reporting accurate SACK blocks.

Always including TSopt seems to represent the rough consensus of the WG, even if it might not be a uniform agreement. This was discussed quite extensively some time ago. (Though judging rough consensus from Emails is difficult... we'd need some sort of electronic hum tool :-)

About your question: if you believe Multipath TCP is going to be useful for you, then it might be a reasonable choice to just disable timestamps entirely to make room for MPTCP and SACK, assuming the current work-in-progress spec. What do current MPTCP implementations do about this, by the way?

However...

> > If a non-
> >     <RST> segment is received without a TSopt, a TCP MUST drop the
> >     segment
> >     and MAY also send an <ACK> for the last in-sequence segment.
> >     A TCP MUST NOT abort a TCP connection because any segment lacks
> >     an expected TSopt.
> 
> Dropping segments that do not contain the TSopt is excessive. There are on the Internet middleboxes that coalesce or split segments. While doing that, they may remove options. Dropping a segment because it does not contain the TSopt which is only informative appears overkill to me. Dropping a segment that does not contain the negotiated TCP-AO option makes sens, but not for the TSopt.

MUST drop all (non-RST) segments without timestamp seems indeed excessive, and not very liberal in what you are accepting [RFC793]. Why is this needed? I don't see why "MUST be sent" on the sending side should imply "MUST drop" on the receiving side.

In the worst case this might discourage enabling timestamps at all, if an implementation wants to be safe against middleboxes as described.

- Pasi