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

Yuchung Cheng <ycheng@google.com> Sat, 01 June 2013 16:54 UTC

Return-Path: <ycheng@google.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 0B31A21F9B94 for <tcpm@ietfa.amsl.com>; Sat, 1 Jun 2013 09:54:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.977
X-Spam-Level:
X-Spam-Status: No, score=-2.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1]
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 g-UZCExIPAXt for <tcpm@ietfa.amsl.com>; Sat, 1 Jun 2013 09:54:38 -0700 (PDT)
Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by ietfa.amsl.com (Postfix) with ESMTP id 4A9B921F9B81 for <tcpm@ietf.org>; Sat, 1 Jun 2013 09:54:38 -0700 (PDT)
Received: by mail-lb0-f182.google.com with SMTP id q15so361020lbi.27 for <tcpm@ietf.org>; Sat, 01 Jun 2013 09:54:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=thzKC7fcs6IYCn26YbS8drpHUXvmLUEUs+CkNfTweic=; b=UAMhjmH3ANW57MoRxZiyWHrKvayKcoRFemZji5eUyj9W8r/pTaoO+eOPomwJGOpcZS BsPMux67X3u6e0KDxPWW0iPvE78tn616E8J9NxGvGJIsAnNSbQObHRwovNzPjg942sOh +cuBrKrzNsNY2+mZ7zztO+kulC1VcziCZcwG/U6RnQMwR4OJLaFfoMMB+N4FrhWei7+7 P0ZN1tSFboubFhryzWtr7zW02niFOkzeS690kJPZtqIHnEFTh6M0B3K1YbD54xb80t3B 1NbpGqPfG5sErwjJtuzo7XATBrX247zXLH81XjnpoiFtbKZefs0n7MvByukP4GNm8fjv G6Aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=thzKC7fcs6IYCn26YbS8drpHUXvmLUEUs+CkNfTweic=; b=DhGYgnk85JXYX4CsiaymWx48PQmwL1qDHte/LimRJmPVIP/kkynv9+CYt/kAPUnwW3 ZcS3CLUw+GmrPMh1Bv+F+XMHxjKE79LcGwLTlrvLntPc4rSLVf0FaHtLPpBF79DYM9jb ZTBvR2/FAGPYPmdQ0602BdiTRXDhdhL1PEGm7lw1sjOyMLf9+9ohqtXrEp5HaFfYHuzV HtluOjv2dyH8O1cA9iAVHh00diMi85oANK8s3/TjIoO36dDskPZ0guQU7cagYAQfwIJJ YFjrq7CsGDlMXjZl4qhJFvGsUqXd6QyFD9klJKNqJB99U/Y02EftIyqXQcuicGLuON/J DGTA==
X-Received: by 10.152.115.134 with SMTP id jo6mr8017321lab.9.1370105677115; Sat, 01 Jun 2013 09:54:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.112.80.227 with HTTP; Sat, 1 Jun 2013 09:54:17 -0700 (PDT)
In-Reply-To: <012C3117EDDB3C4781FD802A8C27DD4F24BBF87A@SACEXCMBX02-PRD.hq.netapp.com>
References: <51A8DCEB.2090401@isi.edu> <E1UiUMS-00074F-00@www.xplot.org> <012C3117EDDB3C4781FD802A8C27DD4F24BBF87A@SACEXCMBX02-PRD.hq.netapp.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Sat, 01 Jun 2013 09:54:17 -0700
Message-ID: <CAK6E8=fEOTXiapceg+QX0Q7x37-DHHDAhZ7drfoXP6CzCrxbDQ@mail.gmail.com>
To: "Scheffenegger, Richard" <rs@netapp.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQl6ISFfO6kFM/XHk3Ra/6jNNGERGRy7mT7kDuUFuBKtyHKiipkpAJ2XciHJC4/ieY+9/1uIYzaLQio4tM8zXyxmF6nQB3OLF1u+1coMgLzWjiHOjPJzVjoxskMGHNmOsnkDJuPOHtZWfWIEw2umcPjUszdjwIQcmqnvyNziwxxAgKG6o78hCECvFHxiiTbZUCi1sWCi
Cc: Fernando Gont <fgont@si6networks.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Tim Shepard <shep@alum.mit.edu>, 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: Sat, 01 Jun 2013 16:54:43 -0000

On Sat, Jun 1, 2013 at 6:57 AM, Scheffenegger, Richard <rs@netapp.com> wrote:
> 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?

quoting Olivier
"""
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.
"""

Real implementations need to handle things that purists don't like.

>
>
> 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
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm