Re: [tcpm] SYN/ACK Payloads, draft 01
"Caitlin Bestler" <Caitlin.Bestler@neterion.com> Thu, 14 August 2008 15:27 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 D88383A6ACF; Thu, 14 Aug 2008 08:27:56 -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 211743A6ACF for <tcpm@core3.amsl.com>; Thu, 14 Aug 2008 08:27:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 Lwt0e4C7il6J for <tcpm@core3.amsl.com>; Thu, 14 Aug 2008 08:27:54 -0700 (PDT)
Received: from owa.neterion.com (mx.neterion.com [72.1.205.142]) by core3.amsl.com (Postfix) with ESMTP id 1930C3A6886 for <tcpm@ietf.org>; Thu, 14 Aug 2008 08:27:53 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Thu, 14 Aug 2008 11:27:13 -0400
Message-ID: <78C9135A3D2ECE4B8162EBDCE82CAD77040E3E2E@nekter>
In-Reply-To: <396556a20808121155h4e3c551aqcf5260d551bcdd4a@mail.gmail.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [tcpm] SYN/ACK Payloads, draft 01
Thread-Index: Acj8rS3J837JTcOLQU2FA/aoetRZkgBcliAw
References: <396556a20808111035s2b974233o1e9d3671e82e3350@mail.gmail.com><000001c8fbfe$0dba0960$292e1c20$@pt><396556a20808111617n622aceabn62db0d55b25ae712@mail.gmail.com><000301c8fc81$8e02d470$aa087d50$@pt><396556a20808120914k6d087534o5c34dfd51dd7d1c5@mail.gmail.com><000b01c8fc9f$4d9f3c20$e8ddb460$@pt> <396556a20808121155h4e3c551aqcf5260d551bcdd4a@mail.gmail.com>
From: Caitlin Bestler <Caitlin.Bestler@neterion.com>
To: Adam Langley <agl@imperialviolet.org>, tcpm@ietf.org
Subject: Re: [tcpm] SYN/ACK Payloads, draft 01
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
There are several separable issues here. Each needs to be considered on its own to determine if they should be addressed by TCPM. 1) The sockets API forces applications to supply the necessary content for the first application message only after connection establishment has been signaled to the application layer. This typically results in an unneeded round-trip between the application domain and the TCP stack domain, which under most conventional Operating Systems is relatively expensive. This is true. In addition to the problem cited, virtually all client applications could supply the first request message in the same call/request to initiate the connection. But optimizing the local TCP stack interface can be done by any TCP stack developer. It is a local interface. No IETF permission is required. 2) There are applications which would benefit from having optional application payload during connection setup. Such optional application payload is optionally provided by the client, and optionally provided to the server if the server requests it. This allows a "free upgrade" to the upper layer protocol, because *both* sender and receiver must be aware of the enhanced transport capability. If either is unaware, the protocol functions in compatibility mode based on the pre-existing definition of the TCP Stream. While this is an application layer problem that any application could have solved on its own, there is some merit in providing this as a generic transport capability precisely because it enables support of existing clients and servers. This is especially relevant when the client obtains the server contact info through a URL whose format and distribution is already fixed (meaning that the URL cannot effectively be used to tell the client which way to attempt the connection). As the draft points out, the goal of the optional data is typically to expedite latency, therefore trial and error probing for capabilities would undermine the intended benefit. The two strongest counter-arguments against supporting such an option are 1) it's new, all new TCP features should be viewed with suspicion and avoided unless their benefits are strong, and 2) Designing a feature that deliberately throws away some of the TCP payload stream seems contrary to the whole concept of a reliable transport. 3) The presence of this optional payload should be signaled through TCP options. If this is going to be done, this is the only way to do it. The existing definition of TCP payloads encompasses all possible byte streams. Therefore the alternate semantics must come from outside of the TCP payload stream itself. For ULPs driven by URLs (HTTP, SMTP, etc.) the TCP options are the only solution. 4) The size of the optional payload is what fits in the SYN ACK response. I have a major problem with this. Having an option to indicate that the TCP payload stream will start with a special header that documents its own length would make a lot more sense to me. The key problem here is that if the active side is not capable of delivering SYN-ACK payload it will just not ACK that portion. There is no guarantee that the resulting retransmit will be segmented the same way. _______________________________________________ tcpm mailing list tcpm@ietf.org https://www.ietf.org/mailman/listinfo/tcpm
- Re: [tcpm] SYN/ACK Payloads, draft 01 Sergio Freire
- [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Sergio Freire
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Sergio Freire
- Re: [tcpm] SYN/ACK Payloads, draft 01 Lars Eggert
- Re: [tcpm] SYN/ACK Payloads, draft 01 Sergio Freire
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Sergio Freire
- Re: [tcpm] SYN/ACK Payloads, draft 01 Eric Rescorla
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Eric Rescorla
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Eric Rescorla
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Eric Rescorla
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Caitlin Bestler
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Caitlin Bestler
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Michael Tüxen
- Re: [tcpm] SYN/ACK Payloads, draft 01 Caitlin Bestler
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Eric Rescorla
- Re: [tcpm] SYN/ACK Payloads, draft 01 Michael Tüxen
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Caitlin Bestler
- Re: [tcpm] SYN/ACK Payloads, draft 01 Adam Langley
- Re: [tcpm] SYN/ACK Payloads, draft 01 Anantha Ramaiah (ananth)
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch
- Re: [tcpm] SYN/ACK Payloads, draft 01 Joe Touch