Re: [tae] New draft: announcing the supported transports via DNS

Caitlin Bestler <cait@asomi.com> Fri, 18 September 2009 00:30 UTC

Return-Path: <cait@asomi.com>
X-Original-To: tae@core3.amsl.com
Delivered-To: tae@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A75F93A6B2E for <tae@core3.amsl.com>; Thu, 17 Sep 2009 17:30:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.432
X-Spam-Level:
X-Spam-Status: No, score=-2.432 tagged_above=-999 required=5 tests=[AWL=-0.167, BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334]
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 LbgFBVfXdBFV for <tae@core3.amsl.com>; Thu, 17 Sep 2009 17:30:51 -0700 (PDT)
Received: from mail2.sea5.speakeasy.net (mail2.sea5.speakeasy.net [69.17.117.4]) by core3.amsl.com (Postfix) with ESMTP id CC9743A6A2A for <tae@ietf.org>; Thu, 17 Sep 2009 17:30:48 -0700 (PDT)
Received: (qmail 7800 invoked from network); 18 Sep 2009 00:31:41 -0000
Received: from imac.asomi.com (cait@asomi.com@[66.92.48.27]) (envelope-sender <cait@asomi.com>) by mail2.sea5.speakeasy.net (qmail-ldap-1.03) with AES128-SHA encrypted SMTP for <ayourtch@cisco.com>; 18 Sep 2009 00:31:41 -0000
Mime-Version: 1.0 (Apple Message framework v1075.2)
Content-Type: text/plain; charset="us-ascii"; format="flowed"; delsp="yes"
From: Caitlin Bestler <cait@asomi.com>
In-Reply-To: <Pine.LNX.4.64.0909180057060.5479@zippy.stdio.be>
Date: Thu, 17 Sep 2009 17:31:41 -0700
Content-Transfer-Encoding: 7bit
Message-Id: <77F0974F-62CD-411C-96D3-C29E6D872DEA@asomi.com>
References: <Pine.LNX.4.64.0909180057060.5479@zippy.stdio.be>
To: ayourtch@cisco.com
X-Mailer: Apple Mail (2.1075.2)
Cc: tae@ietf.org
Subject: Re: [tae] New draft: announcing the supported transports via DNS
X-BeenThere: tae@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Transport Architecture Evolution <tae.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tae>, <mailto:tae-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tae>
List-Post: <mailto:tae@ietf.org>
List-Help: <mailto:tae-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tae>, <mailto:tae-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Sep 2009 00:30:52 -0000

On Sep 17, 2009, at 3:57 PM, Andrew Yourtchenko wrote:

> Hello all,
>
> following the discussions at IETF75 on http://tools.ietf.org/html/draft-wing-http-new-tech-00 
> , we have posted the an initial version of a "companion" draft that  
> we think should help addressing some of the concerns:
>
> http://www.ietf.org/id/draft-yourtchenko-tran-announce-dns-00.txt
>
> Abstract:
> While TCP has enjoyed many enhancements over the decades, it is
> useful to allow applications to use transports beyond just UDP and
> TCP and to use TCP in new ways.  It is inefficient to naively probe
> the server using the new protocol.  This document proposes a new DNS
> resource record which provides an efficient way to query which
> protocols are supported by a server.
>
> The comments are very much welcome.
>

This looks like a solid starting point for a DNS-based solution.

The main problem I see is that the comma separated mechanism is  
probably insufficient to deal with the combination of
encryption protocols, transport protocols and special adaptations  
(RDMA, SCTP Partial Reliability, etc.) Something more
along the lines of a unique Java class name might be needed, with  
simple reserved names for the obvious: tcp, udp, sctp, ...

But more fundamentally I think there needs to be a discussion on the  
merits of various fundamental approaches. There
are at least three that I can think of:

* Extending a service discovery protocol, such as SLP.
* Extending DNS.
* One step protocol negotiation, presumably by identifying a new TCP  
option.


Some observations on using a Service Directory vs. DNS

It is indeed a service that is being looked up. Just because a host  
has SCTP does not meet that ULP X running
on that host knows how to use SCTP. Therefore these  entries are  
service specific. This can lead to an explosion
in DNS entries, especially if you have a multi-homed SCTP server that  
offers many traditional mini-serivces (echo,
time, etc.). If the DNS approach is used, allowing some form of  
wildcarding may be useful.

On the other hand, application developers seem to be hopelessly  
addicted to DNS.

The DNS approach will be challenged to deal with a service that is  
provided by a cluster of servers, especially
if some of the transports are only available on a portion of the  
servers.



The problem with any directory based solution is that it only works  
for registered services with names.
It does not encompass services that are advertised by other means  
where the application obtains the
IP address of the server by application specific means.

A one step protocol negotiation works for any client/server pair, and  
adds at most one extra step to
connection/association setup. It would work as follows:

1) client sends a lowest-common-denominator TCP-SYN with an option  
indicating the desire to
     use a set of alternate enhanced transports.
2a) If the server does not understand the option, it is not include in  
the SYN-ACK and a generic
        TCP connection is established.
2b) If the enhanced transport is still a TCP connection, the server  
responds with an option indicating
        the enchancements accepted.
2c) If the alternate transport selected is not TCP,  and the client  
indicated that it could receive requests
        on the alternate protocol, the server will initiate the  
alternate transport connection/association.
2d) If the alternate transport selected is not TCP, but the client  
must initiate, the TCP SYN ACK indicates
        where the connection/association should be established.


















                      344344e\\\
\\]]0000000000000