Re: [tcpinc] TCP's treatment of data in SYN packets

Kyle Rose <krose@krose.org> Tue, 26 July 2016 22:11 UTC

Return-Path: <krose@krose.org>
X-Original-To: tcpinc@ietfa.amsl.com
Delivered-To: tcpinc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F184E12DA34 for <tcpinc@ietfa.amsl.com>; Tue, 26 Jul 2016 15:11:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=krose.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xewDECahantG for <tcpinc@ietfa.amsl.com>; Tue, 26 Jul 2016 15:11:05 -0700 (PDT)
Received: from mail-qt0-x231.google.com (mail-qt0-x231.google.com [IPv6:2607:f8b0:400d:c0d::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4543312DAE0 for <tcpinc@ietf.org>; Tue, 26 Jul 2016 15:10:45 -0700 (PDT)
Received: by mail-qt0-x231.google.com with SMTP id x25so19903723qtx.2 for <tcpinc@ietf.org>; Tue, 26 Jul 2016 15:10:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=krose.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=DFDpxYjoIf8Uh4aycO8vlGHi9uHEKErJ0OiLyZdmzkw=; b=C+yzW1oGLv4mo1OPOVTs2EBTd8dRjMF5eY1ZEcteFEKzzm7zGnkUFK/Ln64dlRVizr Gaa4y/Y8Vx8G7xQu2X9pbMU7/Y+0qcHPEnH1HOgAfIeS0xR7LUscEjk2SZlxzQb5+JVQ YykgkdWx8YhvbvZ/quawsK7Jot5wOC92vtHyU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=DFDpxYjoIf8Uh4aycO8vlGHi9uHEKErJ0OiLyZdmzkw=; b=m2vSBCl8ByUhWtndHrXwT3srd5s4ITu9c9oKw1YmqZvmv7LxgZV9osCiNzIdRZWxWR wPYCR2iq3zqc6fHvBIy8ljsM9SeD6eX1WB22EXN4stES3FVFp/z4n3mH5WtCD/oio0Bz NRIy+hwRbdJ/WAnhvx4NQxTqo1lENZXjZnngZIVS3VucGJVzeUrjvppPIdqznQMsUKMW SajgCjCYHpk+ky583Gdqw4itxG8DVRUUkZNhuZ08lVriGB374QRcpp0chb8Rpf8g0f0s mCYvLdaz+9ZR5kBv3+kCpnA9q35oB62/jbvvilIXS3k6UA3qgDSwlLs0gf9/UP0g3UvN I/qA==
X-Gm-Message-State: AEkoousJD9pwtFQcVVyZeCaR/Oyn072d0UkFi4rly3s8msXw+tE9xf1WxDiUuIqR9Zf4XWl/XSYJB6KWzoWvVQ==
X-Received: by 10.237.46.166 with SMTP id k35mr43768947qtd.93.1469571044503; Tue, 26 Jul 2016 15:10:44 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.55.94.70 with HTTP; Tue, 26 Jul 2016 15:10:43 -0700 (PDT)
X-Originating-IP: [72.246.0.14]
In-Reply-To: <CAK6E8=d3psZBS1yX56fRQ-SP7qCN_vem5tNB8O42zPyo0TKj7Q@mail.gmail.com>
References: <CAJU8_nU1WzQNFFUn_2o1cACutB01iyQ_hC29PHoutr8TRDKGnA@mail.gmail.com> <CAK6E8=d3psZBS1yX56fRQ-SP7qCN_vem5tNB8O42zPyo0TKj7Q@mail.gmail.com>
From: Kyle Rose <krose@krose.org>
Date: Tue, 26 Jul 2016 18:10:43 -0400
Message-ID: <CAJU8_nWMBbqLLsYQ3GhqRk8YkptqjCF40h_R7HNSOrqHwLbgxQ@mail.gmail.com>
To: Yuchung Cheng <ycheng@google.com>
Content-Type: multipart/alternative; boundary="94eb2c08ca7c148b8c0538912ca5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/jZinxUgYbSyYhEMUHUOxDBzm8bc>
Cc: Praveen Balasubramanian <pravb@microsoft.com>, tcpinc <tcpinc@ietf.org>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, "Mirja Kuehlewind (IETF)" <ietf@kuehlewind.net>, Christoph Paasch <cpaasch@apple.com>
Subject: Re: [tcpinc] TCP's treatment of data in SYN packets
X-BeenThere: tcpinc@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussion list for adding encryption to TCP." <tcpinc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpinc/>
List-Post: <mailto:tcpinc@ietf.org>
List-Help: <mailto:tcpinc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpinc>, <mailto:tcpinc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jul 2016 22:11:08 -0000

> > But I have read elsewhere that the server might queue it up and wait for
> the 3WHS to complete (though if it is conformant, it will ACK only a single
> byte for the SYN and have the blob retransmitted by the client anyway).
>
> We did some tests with this when during TFO development. AFAIK Linux,
> *BSD/iOS, Windows all return a SYN that acks only the ISN but not the
> data. None of them queues the data hence the active side needs to
> retransmit the data. But my knowledge is 5 years old.
>

Which naturally makes me curious if this behavior has changed since TFO was
implemented. What sort of tools do/did you have to do this kind of probing?


> FWIW I and other TFO developers in other stacks (cc'd) have all found
> that some middle-boxes will crash or hang on receiving SYN-data
> (regardless of TFO cookie option or not). For instance, I found a bug
> in Linux netfliter that the conntrack module assumes SYN never carries
> data, so the internal sequence was only incremented by one on SYN-data
> packe, and led to rejecting every packet afterward. Others have found
> FW blocking the IP completely (see last meetings material by Praveen).
> We were talking about putting a TFO-bis on these issues.
>

This is really good information: thanks! I think if tcpinc decides to
pursue early data, we'll want to learn as much as possible from your
experience.

Kyle