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

"Scheffenegger, Richard" <rs@netapp.com> Sat, 01 June 2013 13:57 UTC

Return-Path: <rs@netapp.com>
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 1654021F9A99 for <tcpm@ietfa.amsl.com>; Sat, 1 Jun 2013 06:57:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 SLgXY66OPlIh for <tcpm@ietfa.amsl.com>; Sat, 1 Jun 2013 06:57:41 -0700 (PDT)
Received: from mx12.netapp.com (mx12.netapp.com [216.240.18.77]) by ietfa.amsl.com (Postfix) with ESMTP id 31A8621F99A9 for <tcpm@ietf.org>; Sat, 1 Jun 2013 06:57:39 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.87,783,1363158000"; d="scan'208";a="60371315"
Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx12-out.netapp.com with ESMTP; 01 Jun 2013 06:57:39 -0700
Received: from vmwexceht04-prd.hq.netapp.com (vmwexceht04-prd.hq.netapp.com [10.106.77.34]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id r51Dvdkn007682; Sat, 1 Jun 2013 06:57:39 -0700 (PDT)
Received: from SACEXCMBX02-PRD.hq.netapp.com ([169.254.1.61]) by vmwexceht04-prd.hq.netapp.com ([10.106.77.34]) with mapi id 14.03.0123.003; Sat, 1 Jun 2013 06:57:39 -0700
From: "Scheffenegger, Richard" <rs@netapp.com>
To: Tim Shepard <shep@alum.mit.edu>, Joe Touch <touch@isi.edu>
Thread-Topic: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt
Thread-Index: AQHOXi9RxpOgcpwlv0GGPZ5muXL+75kg4PzA
Date: Sat, 01 Jun 2013 13:57:37 +0000
Message-ID: <012C3117EDDB3C4781FD802A8C27DD4F24BBF87A@SACEXCMBX02-PRD.hq.netapp.com>
References: Your message of Fri, 31 May 2013 10:24:59 -0700. <51A8DCEB.2090401@isi.edu> <E1UiUMS-00074F-00@www.xplot.org>
In-Reply-To: <E1UiUMS-00074F-00@www.xplot.org>
Accept-Language: de-AT, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.104.60.115]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: Fernando Gont <fgont@si6networks.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>
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: Sat, 01 Jun 2013 13:57:45 -0000

Hi Tim,

I agree with your reasoning, and think that IF Tsopt was established, under the current semantics, subsequent segments without Tsopt MUST not be accepted.

Sending an ACK for the last in-sequence segment MAY be allowed (but a receiver should not keep sending such an ACK excessively - if it would, and the reason for the non-TSopt segments is a path change where TSopt is being stripped, it could result in a permanent exchange of data/ack, without any forward progress... Although the sender would continuously shrink the cwnd, and limit the wasted bandwidth.)

Olivier remarked, that sometimes a sender might push out the TSopt in favor of other options (MPTCP, SACK). While I believe that even then a segment should not be accepted, if it lacks TSopt, I was wondering if there is any benefit to be had, to allow a fully in-sequence packet to be accepted then (shinking the acceptance window basically to one particular sequence number).

OTOH, the point of SACK is that it being sent during reorder / loss events, so a rule like above wouldn't be all that helpful really...

Does anyone know why Linux does accept non TSopt segments at any time?


In any case, the only proper way for PAWS would be to not accept non-TSopt segments after TSopt has been negotiated.

Regards,


Richard Scheffenegger

> -----Original Message-----
> From: tcpm-bounces@ietf.org [mailto:tcpm-bounces@ietf.org] On Behalf Of
> Tim Shepard
> Sent: Freitag, 31. Mai 2013 20:48
> To: Joe Touch
> Cc: Fernando Gont; tcpm@ietf.org Extensions
> Subject: Re: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt
> 
> 
> 
> If a TCP connection has succesfully negotiated timestamp option on, and a
> segment shows up with no timestamp option, I can think of only two reasons
> for this:
> 
> 	1.   The other TCP is buggy in some way.  (Or maybe *this*
>              TCP implementation is buggy in some way and corrupted
> 	     the TCB block variable that remembers whether we've got
> 	     timestamp options on or off.  In any case, there is a
> 	     bug.)
> 
> 	2.   The segment that arrived is from some old TCP connection,
> 	     probably to or from some previous user of a reused IP
> 	     address.
> 
> 	     (The MSL is a pure myth.  There's no way to guarantee any
> 	     upper bound for how long some packet may be delayed in
> 	     transit.  15+ years ago I did a trivially easy
> 	     demonstration that delayed several ping packets for over
> 	     an hour (over lunch), with no Internet routers involved,
> 	     on a LAN using hardware that was in widespread use at the
> 	     time.  E.g. Someone trips over a cable which slightly
> 	     dislodges it, then hours or days later, someone later
> 	     notices and pushes it back in.)
> 
> 
> So, you can either accept the packet (A) or drop the packet (B).
> 
>     1. (A)     hmm... other end is buggy, *maybe* accepting the packet
> 	       would be the right thing.
> 
>     1. (B)     other end is buggy, dropping the packet *might* cause a
> 	       TCP connection to get stuck that otherwise would not
> 	       have gotten stuck.  (Hard to say... the other end is buggy!)
> 
> 
>     2. (A)     data corruption (if the packet is otherwise acceptable)
> 
>     2. (B)     clearly the right thing to do.
> 
> 
> With no reliable way to distinguish case 1 from case 2 at the receiver, my
> gut is to prefer option B and live with the possible downside of  the  1.
> (B)  situation.
> 
> 
> I also think letting the connection get stuck in the 1. (B) situation has
> an upside... it might draw attention to the bug and cause the bug to get
> fixed.
> 
> ... as long as there is no ambiguity on which of the two TCP
> implementations is buggy.  (If we have this problem, then we have a much
> bigger problem.)
> 
> 
> 			-Tim Shepard
> 			 shep@alum.mit.edu
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm