Re: [tcpm] TCP Four-Way Handshake

David Borman <dab@weston.borman.com> Fri, 17 October 2014 22:56 UTC

Return-Path: <dab@weston.borman.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 176461A6FB2 for <tcpm@ietfa.amsl.com>; Fri, 17 Oct 2014 15:56:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 7sKnN8m4GE-Q for <tcpm@ietfa.amsl.com>; Fri, 17 Oct 2014 15:56:42 -0700 (PDT)
Received: from frantic.weston.borman.com (frantic.weston.borman.com [70.57.156.33]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (112/168 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9D4141A1BC8 for <tcpm@ietf.org>; Fri, 17 Oct 2014 15:56:42 -0700 (PDT)
Received: from local-42.weston.borman.com (local-42.weston.borman.com [192.168.1.42]) by frantic.weston.borman.com (8.14.7/8.14.7) with ESMTP id s9HMufI0024773; Fri, 17 Oct 2014 17:56:41 -0500 (CDT)
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: David Borman <dab@weston.borman.com>
In-Reply-To: <54419853.7040705@isi.edu>
Date: Fri, 17 Oct 2014 17:56:40 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <08B20814-7C96-469F-AE0D-1B3E7C964322@weston.borman.com>
References: <F67E5C77-60CC-4617-A8C1-BF4263111CBF@weston.borman.com> <544047E3.8080900@isi.edu> <6A5AD7CB-EA2B-4FCD-B162-4D2929BC7B85@weston.borman.com> <544156C7.5040906@isi.edu> <21EB0FC2-EDF7-41CB-A0B5-A632FA78C7E9@weston.borman.com> <54419853.7040705@isi.edu>
To: Joe Touch <touch@isi.edu>
X-Mailer: Apple Mail (2.1990.1)
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/rpq1PXVbB07ysi9uei4hwudyxu4
Cc: "tcpm@ietf.org (tcpm@ietf.org)" <tcpm@ietf.org>
Subject: Re: [tcpm] TCP Four-Way Handshake
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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>
X-List-Received-Date: Fri, 17 Oct 2014 22:56:44 -0000

> On Oct 17, 2014, at 5:29 PM, Joe Touch <touch@isi.edu> wrote:
> 
> 
> 
> On 10/17/2014 11:43 AM, David Borman wrote:
>> All this really points out is that when there are incompatible options,
>> there should be a documented procedure for how to handle the case when
>> they are all negotiated. 
> 
> Currently:
> 	SYN indicates desired options
> 	SYN/ACK indicates subset of desired options
> 	ACK indicates final set negotiated
> 
> Right now, one side can easily avoid that by what it selects in its SYN.
> You're suggesting entirely different semantics for options that now need
> to be determined for all past and future options concurrently.
> 
> I don't think that's feasible.

You keep missing the point.  If an option isn’t both sent and received
in a packet with the SYN bit, it is not enabled.  So with the 3WHS it
doesn’t matter if there are additional options in the SYN-ACK, they will not be
enabled because they weren’t in the original SYN.  The fact that the SYN-ACK
is a subset of what was in the SYN *is only an optimization*.  The final ACK
has nothing to do with it, it’s only what is exchanged in the packets with
the SYN bit that matter.

Look at RFC1072, supported options were sent in any packet with the SYN
bit set, so the SYN-ACK would have WS even if the inbound SYN didn’t have
it.  I’m the one that pointed out because you had to both send and receive
the option to enable it, that sending the option in the SYN-ACK when it
wasn’t received in the SYN wasn’t useful, and that’s why RFC1323 added
that you only sent the options in the SYN-ACK if they were received in
the SYN.  But it was purely an optimization.  With the 3WHS, all TCP
implementations should ignore any options in the received SYN-ACK that
they didn’t send in the initial SYN.  If they don’t, they are broken.

With the 4WHS, the client has a second chance to enable additional options
with its SYN-ACK, provided they were received in the servers SYN-ACK.
		
	-David
> 
> Joe
> 
>