Re: [tcpm] Faster application handshakes with SYN/ACK payloads

Joe Touch <touch@ISI.EDU> Thu, 31 July 2008 23:03 UTC

Return-Path: <>
Received: from [] (localhost []) by (Postfix) with ESMTP id 173223A6A2D; Thu, 31 Jul 2008 16:03:40 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id DB7F73A6A2D for <>; Thu, 31 Jul 2008 16:03:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.498
X-Spam-Status: No, score=-2.498 tagged_above=-999 required=5 tests=[AWL=0.101, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cc-SGgMCgsea for <>; Thu, 31 Jul 2008 16:03:38 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id F17873A67A5 for <>; Thu, 31 Jul 2008 16:03:37 -0700 (PDT)
Received: from [] ([]) by (8.13.8/8.13.8) with ESMTP id m6VN3Rjh014819 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 31 Jul 2008 16:03:29 -0700 (PDT)
Message-ID: <>
Date: Thu, 31 Jul 2008 16:02:46 -0700
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird (Windows/20080708)
MIME-Version: 1.0
To: Adam Langley <>
References: <>
In-Reply-To: <>
X-Enigmail-Version: 0.95.6
X-ISI-4-43-8-MailScanner: Found to be clean
Subject: Re: [tcpm] Faster application handshakes with SYN/ACK payloads
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"

Hash: SHA1

Hi, Adam,

Adam Langley wrote:
| I posted this a while back and it gathered a little discussion:
| (implementation in [1])

A few observations:

- - TCP is already permitted to send data in the SYN-ACK
	prohibiting it when the SA-PP option is missing violates
	RFC1122 sec -- unknown options are silently ignored

	options that change TCP need to be explicitly acknowledged,
	and current (legacy) behavior should be assumed if not

- - TCP is already 'backward compatible' with sources that ignore SA
payload data; that data is just retransmitted
	you note that SA-PP alters the app level protocol;
	it appears to alter its timing, but AFAICT the
	effect would be otherwise invisible to an app

- - The rule "For a given SYN, if any resulting SYNACK frame has a payload
then all resulting frames MUST have a payload" appears to disable
persists and ACKs as would be needed for proper operation when data is
not available in one or more direction

- - AFAICT, it isn't sensible to retransmit a SYN with the same ISN, port,
etc. and different options. Since you do not explicitly acknowledge the
option, how do you know which SYN is being ACKd - the presence of SA
data isn't sufficient (e.g., legacy TCPs could do this)

- - the diagrams need to include some corner cases:
	- when KX is larger than the PMTU in fig 3 (or NList is
	larger than the PMTU in fig 2)
	(i.e., it seems like there is a missing MUST NOT on the length)
	- how do you handle simultaneous opens?

- - can you explain why you use a bit-field for the TCP option flag,
rather than just using a 2-byte option? (i.e., KIND, length)

- ---

Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla -

tcpm mailing list