Re: [tcpm] SYN/ACK Payloads, draft 01

"Adam Langley" <> Thu, 14 August 2008 20:03 UTC

Return-Path: <>
Received: from [] (localhost []) by (Postfix) with ESMTP id 312E03A6878; Thu, 14 Aug 2008 13:03:58 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 337503A686D for <>; Thu, 14 Aug 2008 13:03:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.506
X-Spam-Status: No, score=-1.506 tagged_above=-999 required=5 tests=[AWL=0.471, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Krpg3wXqNxIf for <>; Thu, 14 Aug 2008 13:03:55 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 1EDEC3A6878 for <>; Thu, 14 Aug 2008 13:03:51 -0700 (PDT)
Received: by with SMTP id b25so508230rvf.49 for <>; Thu, 14 Aug 2008 13:03:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references :x-google-sender-auth; bh=coeOcVVxbL+1aGVZxjf33xkZGoi/28rptCZm+Xxaeac=; b=A2KB3/BDrCo6pBnjtaekdIO2mEVVrLZdKcHguJytKBpZmMayfroY1rpkn4ADbEXlGa hit4Xdy4HUYQlGICRsHtsjAUCwu1hK2ASQkW5GOYzkIGEJEhMr1hESKjOtBsfjKEwl12 OA/HS80WWcIT3zPvVPfZVBKzthEtBbkxXAjLc=
DomainKey-Signature: a=rsa-sha1; c=nofws;; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=oHiJ1rvE84MZ3eMbO916srzkfoWYSsqnJx6ghmUbl0FPHmYjsjtPZi7P603EehqExm cx2eaq0zqb9RDOZT/vrrW3AsY/+K+gtV44JIBcfFdx912LV2dXYqMCCu/YgPFBMCxCcB 3uhnIKuSB1A+CtTy7QBm1YY+0KssJhe7YDhGQ=
Received: by with SMTP id l21mr995215rvj.9.1218744208927; Thu, 14 Aug 2008 13:03:28 -0700 (PDT)
Received: by with HTTP; Thu, 14 Aug 2008 13:03:28 -0700 (PDT)
Message-ID: <>
Date: Thu, 14 Aug 2008 13:03:28 -0700
From: Adam Langley <>
To: Joe Touch <>
In-Reply-To: <>
MIME-Version: 1.0
Content-Disposition: inline
References: <> <> <> <> <> <> <> <> <> <>
X-Google-Sender-Auth: 8453fde795b91652
Subject: Re: [tcpm] SYN/ACK Payloads, draft 01
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-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

On Thu, Aug 14, 2008 at 10:30 AM, Joe Touch <> wrote:
> OK. So why bother with an option at that point? Why does the user data
> need to be different if the option is present?
> If the user data were not different, then this all boils down to a
> change in the implementation of the API. The trouble is that you're
> expecting a TCP option to change the *content* of the data stream, and
> that seems bizarre to me.

Because for server-speaks-first application protocols there's no
problem. This is just for client-speaks-first protocols. For these
protocols, had common stacks been able to send data in the SYN/ACK
when they were being designed, then they might have ended up as
server-speaks-first protocols. But they didn't for latency reasons.

In order for them to take advantage of this they need to be able to
signal their compliance somehow. There is, indeed, a cleanliness
argument against such a option, but I'm arguing that it's worthwhile
for backward compatibility reasons.

> This is a big change - you're saying that if the payload fits, it goes
> in the SYN-ACK. If not, *none* of it is sent in the SYN-ACK? Why?

I'm saying that implementations have latitude here. If the passive
open end wishes to ignore the client's option it may. Equally, it may
echo it, but not include the data in the SYNACK if the MTU makes it
troublesome. In that case, it needs to send it in the next packet as
normal. Since the implementation has the best knowledge of what's
best, I didn't see any reason to constrain it.


Adam Langley
tcpm mailing list