Re: [tcpinc] TCP's treatment of data in SYN packets
Yuchung Cheng <ycheng@google.com> Tue, 26 July 2016 17:18 UTC
Return-Path: <ycheng@google.com>
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 86E8B12D846 for <tcpinc@ietfa.amsl.com>; Tue, 26 Jul 2016 10:18:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.988
X-Spam-Level:
X-Spam-Status: No, score=-3.988 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-1.287, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 4wMVc4fgYKzj for <tcpinc@ietfa.amsl.com>; Tue, 26 Jul 2016 10:18:47 -0700 (PDT)
Received: from mail-io0-x22a.google.com (mail-io0-x22a.google.com [IPv6:2607:f8b0:4001:c06::22a]) (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 C433D12D836 for <tcpinc@ietf.org>; Tue, 26 Jul 2016 10:18:41 -0700 (PDT)
Received: by mail-io0-x22a.google.com with SMTP id 38so31662691iol.0 for <tcpinc@ietf.org>; Tue, 26 Jul 2016 10:18:41 -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-transfer-encoding; bh=P7orV8w2sme7JJ2rhxIy2aDtp5pT3S0V5nDaEvMid8U=; b=mR3DjeidOSRcatZj0tCMItE6cK4cwNKyQAPyp+auqbeW/fGGgmNQzmKEcKOV7Wcepm cg3WpjbzZ4kwMfkmuBLGM1rPIYuAHjARYCu6/ML82hW/Me70McfB1vm61/Eik4Ioqxr4 XYmLnXpWDsi9tMnl0F2GXuGWF74eVTPUgohENuGKY/CZdzNUaSfwLWMIQXwHdacyWeo4 dVOfNhDhrN7Pu/nqTWUWm/ZvSJ3sjBxLouPNXs9yHuFQcNL+1j6vE9PVw39BX2BNXiSq LOl2sePvjzYa26QAOHGjPDZ5LhGaIVt0WnE8z0ZzztT7TMj1fTM5G2BllM6w0RDnelPV ckfQ==
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:content-transfer-encoding; bh=P7orV8w2sme7JJ2rhxIy2aDtp5pT3S0V5nDaEvMid8U=; b=W/rHXV1owRhwEmax9f0JONpElglrEyYg7S1WsjvaBpGZOTqIvSCWkQbbvrcS2E2SIX SEWezyhrBIFaA6zmimxUmF3vUXcaZjvNjp0gs9qGI09HkhMaGXm4IAIOEwmuInZFggSZ VfcMvD9XE29MdnlTLSmccKWxAmrcQv1CYSG8OSGmjr3kxqBTyNn74Vi1rjaA81YzvFkz jDj0BrnQ6K9uSwvLR+n+8m6Xa7bQnrNSU034J5yG2vvGcM7A72Uc9uYW5TC5jIa0IPfA Q8oBwdSG7C/trqOSvYjMwQARhSvVCaaGtp0iAoO3JshZ/8Vep3qY1k/4M7P3UxGdtO77 GB2Q==
X-Gm-Message-State: AEkoousqN8kQwnnjK2MO5SFB4hX9eCAFX1I75ePdVf5A0QGV1flqaVhzBvieMp6Sz5oC5V4wgPKBL1A+08xL0hQ4
X-Received: by 10.107.59.7 with SMTP id i7mr28581027ioa.190.1469553520854; Tue, 26 Jul 2016 10:18:40 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.64.244.103 with HTTP; Tue, 26 Jul 2016 10:18:00 -0700 (PDT)
In-Reply-To: <CAJU8_nU1WzQNFFUn_2o1cACutB01iyQ_hC29PHoutr8TRDKGnA@mail.gmail.com>
References: <CAJU8_nU1WzQNFFUn_2o1cACutB01iyQ_hC29PHoutr8TRDKGnA@mail.gmail.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Tue, 26 Jul 2016 10:18:00 -0700
Message-ID: <CAK6E8=d3psZBS1yX56fRQ-SP7qCN_vem5tNB8O42zPyo0TKj7Q@mail.gmail.com>
To: Kyle Rose <krose@krose.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpinc/qnuazEHd6BTHhrDkvabDBkymqxI>
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 17:18:49 -0000
On Sun, Jul 24, 2016 at 4:45 PM, Kyle Rose <krose@krose.org> wrote: > > In the absence of a TFO cookie, what is the behavior of TCP in the presence of data in the SYN packet? The ability of ENO to send early data on session resumption to servers that potentially don't understand ENO depends on the servers throwing this data away so it can be replaced in the following ACK. > > RFC 4987 section 3.5 (https://tools.ietf.org/html/rfc4987#section-3.5) states that: > > q( If data accompanies the SYN segment, then this data is not > acknowledged or stored by the receiver, and will require > retransmission. ) > > 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. 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. > > I guess I'm interested in both normative and observed behavior. I'm happy to inquire elsewhere if someone has a suggestion. (tcpm?) > > Kyle > > > _______________________________________________ > Tcpinc mailing list > Tcpinc@ietf.org > https://www.ietf.org/mailman/listinfo/tcpinc
- Re: [tcpinc] TCP's treatment of data in SYN packe… Black, David
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Black, David
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Black, David
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Black, David
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Derek Fawcus
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Jeremy Harris
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] [tcpm] TCP's treatment of data in SY… Derek Fawcus
- [tcpinc] TCP's treatment of data in SYN packets Kyle Rose
- Re: [tcpinc] [tcpm] TCP's treatment of data in SY… Joe Touch
- Re: [tcpinc] [tcpm] TCP's treatment of data in SY… Gavin McCullagh
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Jeremy Harris
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Derek Fawcus
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Jeremy Harris
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Wesley Eddy
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Joe Touch
- Re: [tcpinc] TCP's treatment of data in SYN packe… Derek Fawcus
- Re: [tcpinc] TCP's treatment of data in SYN packe… David Mazieres
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Kyle Rose
- Re: [tcpinc] TCP's treatment of data in SYN packe… Yuchung Cheng