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

"Anantha Ramaiah (ananth)" <ananth@cisco.com> Thu, 21 August 2008 21:09 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 4269A28C164; Thu, 21 Aug 2008 14:09:03 -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 38D4A3A6A57 for <tcpm@core3.amsl.com>; Thu, 21 Aug 2008 14:04:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 jctqfodAn+SC for <tcpm@core3.amsl.com>; Thu, 21 Aug 2008 14:04:04 -0700 (PDT)
Received: from sj-iport-4.cisco.com (sj-iport-4.cisco.com [171.68.10.86]) by core3.amsl.com (Postfix) with ESMTP id 0C07C3A698B for <tcpm@ietf.org>; Thu, 21 Aug 2008 14:04:04 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.32,247,1217808000"; d="scan'208";a="20516872"
Received: from sj-dkim-4.cisco.com ([171.71.179.196]) by sj-iport-4.cisco.com with ESMTP; 21 Aug 2008 21:03:42 +0000
Received: from sj-core-1.cisco.com (sj-core-1.cisco.com [171.71.177.237]) by sj-dkim-4.cisco.com (8.12.11/8.12.11) with ESMTP id m7LL3gGX022576; Thu, 21 Aug 2008 14:03:42 -0700
Received: from xbh-sjc-211.amer.cisco.com (xbh-sjc-211.cisco.com [171.70.151.144]) by sj-core-1.cisco.com (8.13.8/8.13.8) with ESMTP id m7LL3g1o006012; Thu, 21 Aug 2008 21:03:42 GMT
Received: from xmb-sjc-21c.amer.cisco.com ([171.70.151.176]) by xbh-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 21 Aug 2008 14:03:42 -0700
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Thu, 21 Aug 2008 14:02:28 -0700
Message-ID: <0C53DCFB700D144284A584F54711EC5805AA26E1@xmb-sjc-21c.amer.cisco.com>
In-Reply-To: <48A383F0.9030601@isi.edu>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [tcpm] SYN/ACK Payloads, draft 01
Thread-Index: Acj9qX/tARC5pKH6TVeTAHuBp5T/kQGIoGGQ
References: <396556a20808111035s2b974233o1e9d3671e82e3350@mail.gmail.com> <20080813172752.AA7A650846@romeo.rtfm.com> <396556a20808131047q781675a3if23d727ef5ae918f@mail.gmail.com> <20080813181630.A1E6750848@romeo.rtfm.com> <396556a20808131145y1be0fb4saeb7bbf74d078268@mail.gmail.com> <20080813195027.C4C5B50848@romeo.rtfm.com> <396556a20808131307r65a9f6a0oe4365be029620b2c@mail.gmail.com> <48A35CFA.4060709@isi.edu> <396556a20808131525i20dabf06w7a7a11e3468e541a@mail.gmail.com> <48A36104.6000000@isi.edu><396556a20808131605w2ccac3ceo21160401e4545c15@mail.gmail.com> <48A383F0.9030601@isi.edu>
From: "Anantha Ramaiah (ananth)" <ananth@cisco.com>
To: Joe Touch <touch@ISI.EDU>, Adam Langley <agl@imperialviolet.org>
X-OriginalArrivalTime: 21 Aug 2008 21:03:42.0053 (UTC) FILETIME=[642DA150:01C903D1]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=1460; t=1219352622; x=1220216622; c=relaxed/simple; s=sjdkim4002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=ananth@cisco.com; z=From:=20=22Anantha=20Ramaiah=20(ananth)=22=20<ananth@cisco .com> |Subject:=20RE=3A=20[tcpm]=20SYN/ACK=20Payloads,=20draft=20 01 |Sender:=20; bh=I4wil+4XagxPYDrr6YEnmkFA3+/iecCPfaFrQiVn7P0=; b=OJp9+c3pPer2E6NpFNy/GOEQeu9jc3RefzcPTgPvOZJ8ZBYB22Wt6+ds31 SAnUk6+k3HjvnVp3uRI//Arz8p0O6lsJ2AVXx0TRC+bmo2QpsJFCfcMOuSbn CViY2mZ8bf;
Authentication-Results: sj-dkim-4; header.From=ananth@cisco.com; dkim=pass ( sig from cisco.com/sjdkim4002 verified; );
Cc: 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

 
> |
> | int newsocket = accept(...)
> | getsockopt(newsocket, SOL_TCP, &tcpsa, ...) if (TCP_SADATA_REQ & 
> | tcpsa.tcpsa_flags) {
> |    // The first data from the socket is the client's 
> draft-agl handshake
> |    decode_tagged_data(newsocket);
> |    ...
> | } else {
> |    // No special case,
> |    continue_as_normal();
> | }
> 
> I'm wondering why an implementation in user space would 
> expect to find out anything about a TCP connection that 
> hadn't finished handshaking, i.e., the accept call above 

This has been done in some stacks today (like ours). The incoming SYN is
reported to the application and the application can suggest whether or
not to accept the connection. If the application gives a nod, proceed
with the 3 way handshake else send an RST. This is different from a 3
way handshake happening (which involves the TCB and the associated
baggage creation) and then informing the application and applications
can reject this connection during accept(). Applications wishing to use
this special property would set a socket option indicating the
notification of SYN when the listener is created.

The advantage is that you don't allocate the memory ahead of time if the
application isn't interested in accepting this connection. Other ways of
handling this is to have the application program the access control list
in TCP or below, so that an early discard can be made.

-Anantha

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