Re: [tcpm] Faster application handshakes with SYN/ACK payloads
Joe Touch <touch@ISI.EDU> Sun, 21 September 2008 16:30 UTC
Return-Path: <tcpm-bounces@ietf.org>
X-Original-To: tcpm-archive@megatron.ietf.org
Delivered-To: ietfarch-tcpm-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 99E033A6B35; Sun, 21 Sep 2008 09:30:51 -0700 (PDT)
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 25B893A6B16 for <tcpm@core3.amsl.com>; Sun, 21 Sep 2008 09:30:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.874
X-Spam-Level:
X-Spam-Status: No, score=-1.874 tagged_above=-999 required=5 tests=[AWL=0.125, BAYES_00=-2.599, J_CHICKENPOX_34=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BCYk5DLIe57C for <tcpm@core3.amsl.com>; Sun, 21 Sep 2008 09:30:48 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id A06E93A69E1 for <tcpm@ietf.org>; Sun, 21 Sep 2008 09:30:48 -0700 (PDT)
Received: from [192.168.1.45] (pool-71-106-119-240.lsanca.dsl-w.verizon.net [71.106.119.240]) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id m8LGUeTw028986 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 21 Sep 2008 09:30:42 -0700 (PDT)
Message-ID: <48D676AF.5030509@isi.edu>
Date: Sun, 21 Sep 2008 09:30:39 -0700
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
MIME-Version: 1.0
To: Stefanos Harhalakis <v13@v13.gr>
References: <396556a20807311252j67b1ab26mf6511dbdae780fdd@mail.gmail.com> <48D5E708.4000006@isi.edu> <48D5EBCF.7060401@isi.edu> <200809211244.30186.v13@v13.gr>
In-Reply-To: <200809211244.30186.v13@v13.gr>
X-Enigmail-Version: 0.95.7
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: Adam Langley <agl@imperialviolet.org>, tcpm@ietf.org
Subject: Re: [tcpm] Faster application handshakes with SYN/ACK payloads
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/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>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stefanos Harhalakis wrote: > On Sunday 21 September 2008, Joe Touch wrote: >>> Stefanos Harhalakis wrote: >>>> Add a generic 'user data' option for SYN fields that would carry user >>>> data. >> There are two reasons for doing this: >> >> 1- to send an out-of-band signal >> >> 2- to send a signal that the server acts on before the >> handshake completes >> >> #2 violates TCP semantics, so the SYN-ACK cannot have application data >> that depends on the SYN's user data option (which is the desired result >> here). The signal can't be acted on at the application layer until the >> handshake completes. >> >> #1 changes TCP semantics as well, since TCP does not have an out-of-band >> signal path, and this would add that. However, because it cannot be >> acted on until after the handshake completes, it cannot modify >> application behavior that isn't required to wait until the handshake >> finishes - i.e., apps that can write to the socket before the handshake >> completes (e.g., to write data available to a SYN-ACK) would never >> change because of this signal. The utility of this feature depends on >> application behavior, which cannot be known, and thus cannot be relied >> upon. > > What I proposed is what you describe in #1. It is different from the > SA-with-data proposal and thus it hasn't to do anything with #2. As I said in > the original mail, it has to do with what Adam said: > > "If HTTP sent a banner, like SMTP servers, then my life would be a lot > easier! The banner could advertise all the extensions supported. > However, without SYNACK payloads, this banner would cost another round > trip." HTTP does send a banner of that type; the issue is that you want #2 above - if you don't act on the banner info until after the TWHS, you "waste" an RTT waiting for the connection to be established before the server can reply. That's a **design feature** and requirement of TCP, not a "waste". > and more specifically with the first sentence. Supposing that (a hypothetical) > HTTP/1.3 would support an optional banner, such an option would allow the > server side to send it without braking backwards compatibility: > > Client --> SYN+DATA --> Server > Client <-- SYNACK+? <-- Server > Client --> ACK --> Server > Client <-- BANNER <-- Server The server can start sending data before the TWHS completes (let's call the above "sequence 1" and the below "sequence 2"): Client --> SYN+DATA --> Server Client <-- SYNACK+? <-- Server Client <-- BANNER <-- Server Client --> ACK --> Server In sequence 1, the banner can depend on the SYN+DATA data. In BOTH sequences, however, the SYNACK+? "?" **cannot** depend on the SYN+DATA data. > Without changing current behavior (It is not required that data be sent with > the SYNACK option). > > Also, this is not exactly "data" as there is space for a very small amount of > information (some bits). Considering the possibilities of this, it can be > used in many situations such as: > * HTTP or other protocols that use a well-known-port, to negotiate different > behavior without introducing a new port number (SSL over port 80?). > * Cryptographic applications > * Anything that someone out there can think of. 8 bits (or a little more) of > information can be used for many things. > > Wrong? > > p.s: I can write a draft if this would clarify things. I think you're exploring the space of the discussion that has already been had on this list... Joe -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEUEARECAAYFAkjWdq8ACgkQE5f5cImnZrttuwCY3gRvZM7rIEWn3Afu9O4aKEss MgCdHhBYcwQPli47R7YfewyAKNoVPPo= =xJ3F -----END PGP SIGNATURE----- _______________________________________________ tcpm mailing list tcpm@ietf.org https://www.ietf.org/mailman/listinfo/tcpm
- [tcpm] Faster application handshakes with SYN/ACK… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Lloyd Wood
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Michael Scharf
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- [tcpm] Faster application handshakes with SYN/ACK… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Murali Bashyam
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Matt Mathis
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Anantha Ramaiah (ananth)
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Stefanos Harhalakis
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Stefanos Harhalakis
- Re: [tcpm] Faster application handshakes with SYN… Adam Langley
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch
- Re: [tcpm] Faster application handshakes with SYN… Stefanos Harhalakis
- Re: [tcpm] Faster application handshakes with SYN… Stefanos Harhalakis
- Re: [tcpm] Faster application handshakes with SYN… Joe Touch