Re: [tcpm] TCP Long Options - Why not as payload in SYNs?

"Sergio Freire" <etfreire@ua.pt> Mon, 14 July 2008 22:45 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 36CE728C314; Mon, 14 Jul 2008 15:45:36 -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 B68CF28C127 for <tcpm@core3.amsl.com>; Mon, 14 Jul 2008 15:45:34 -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 O-Bc1l0tUzcw for <tcpm@core3.amsl.com>; Mon, 14 Jul 2008 15:45:33 -0700 (PDT)
Received: from cgpmail.ua.pt (frontend-2.servers.ua.pt [193.136.173.3]) by core3.amsl.com (Postfix) with ESMTP id 044353A6B0B for <tcpm@ietf.org>; Mon, 14 Jul 2008 15:45:31 -0700 (PDT)
Received: from [85.241.154.174] (account etfreire@ua.pt HELO portsfreire) by frontend-2.cgpmail.ua.pt (CommuniGate Pro SMTP 5.1.13) with ESMTPSA id 151993370; Mon, 14 Jul 2008 23:45:53 +0100
From: Sergio Freire <etfreire@ua.pt>
To: 'Joe Touch' <touch@ISI.EDU>
References: <20080714121424.GA31382@ikr.uni-stuttgart.de> <396556a20807140648lb5f923x478665473667d807@mail.gmail.com> <487B6A79.2040608@isi.edu> <487B6EB1.6040308@isi.edu>
In-Reply-To:
Date: Mon, 14 Jul 2008 23:45:50 +0100
Message-ID: <003c01c8e603$5db60740$192215c0$@pt>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcjlxXUzdE6E+wMmQZCQzvcUsc3D1wAPWbbAAAAamsA=
Content-Language: pt
Cc: andre.zuquete@ua.pt, tcpm@ietf.org
Subject: Re: [tcpm] TCP Long Options - Why not as payload in SYNs?
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="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org

Hi Joe et all,
Yes, I think it would be a great idea to write an I-D concerning the use of
TCP options in the payload.. what is the deadline?
Sergio


-----Original Message-----
From: Joe Touch [mailto:touch@ISI.EDU] 
Sent: segunda-feira, 14 de Julho de 2008 16:20
To: Joe Touch
Cc: andre.zuquete@ua.pt; tcpm@ietf.org; Sérgio Freire
Subject: Re: [tcpm] TCP Long Options - Why not as payload in SYNs?

PS - if there's interest in this, we could pull together an I-D in time for
Dublin, but it won't (didn't) make the individual deadline...

Joe

Joe Touch wrote:
> Adam Langley wrote:
>> On Mon, Jul 14, 2008 at 5:14 AM, Michael Scharf 
>> <michael.scharf@ikr.uni-stuttgart.de> wrote:
>>> Even though RFC 793 explicitly allows payload in SYN segments, there 
>>> are TCP stacks that just seem to ignore it. Couldn't this offer an 
>>> opportunity to transport long TCP options in the payload of SYN 
>>> segments, instead of expanding the header option space?
> 
> See Usenix 2008, "A TCP-layer Name Service for TCP Ports"
> http://www.usenix.org/events/usenix08/tech/full_papers/freire/freire_h
> tml/index.html
> 
> 
> The authors, Sergio and Andre (cc'd), therein combine options in the 
> SYN payload with other mechanisms in a port-names solution. I have 
> spoken with them about cleanly separating the idea of data as payload 
> option space (i.e., removing other features that are distinct, e.g., 
> use of port 0, changing ports after the SYN, etc.), and basically we came
up with:
> 
>     set a conventional option that says where the
>     payload option ends, within the SYN segment
>     (typically the end of that segment)
> 
>     wait for an ACK indicating that option is set
>     (could be set in advance), indicating the
>     options will be processed correctly
>         NB - the option is set in advance when
>         a sender speaks the option but has no
>         long options to send, or has long options
>         to send and is doing so. EITHER WAY
>         the option MUST occur, or the handshake
>         will fail.
> 
>     if the ACK does not confirm the ability to
>     process options in the data, then RST the
>     connection and retry without data options
> 
> Note that this works only for the SYN segment, and it isn't clear how 
> it might interoperate with SYN cookies. It also ALWAYS consumes option 
> space, and MUST occur in the existing options.
> 
> ...
>> And that suggests that it's not just those OSes which ignore SYNs 
>> with payloads - it's also those which reject the packet completely.
> 
> AFAICT, ACKing the SYN and not the data is compliant, but rejecting 
> the SYN entirely doesn't appear to be - it should be called a bug, IMO.
> 
> Joe
> 


_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www.ietf.org/mailman/listinfo/tcpm