Re: sockets APIs extensions for Host Identity Protocol

Chris Newman <Chris.Newman@Sun.COM> Fri, 11 May 2007 23:59 UTC

Return-path: <discuss-bounces@apps.ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1Hmf1K-00025E-9m; Fri, 11 May 2007 19:59:34 -0400
Received: from discuss by megatron.ietf.org with local (Exim 4.43) id 1Hmf1I-000253-Ti for discuss-confirm+ok@megatron.ietf.org; Fri, 11 May 2007 19:59:32 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1Hmf1I-00024v-KC for discuss@apps.ietf.org; Fri, 11 May 2007 19:59:32 -0400
Received: from brmea-mail-1.sun.com ([192.18.98.31]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Hmf1H-0003IX-1l for discuss@apps.ietf.org; Fri, 11 May 2007 19:59:32 -0400
Received: from fe-amer-02.sun.com ([192.18.108.176]) by brmea-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id l4BNxU4p010475 for <discuss@apps.ietf.org>; Fri, 11 May 2007 23:59:30 GMT
Received: from conversion-daemon.mail-amer.sun.com by mail-amer.sun.com (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) id <0JHW00901I51EQ00@mail-amer.sun.com> (original mail from Chris.Newman@Sun.COM) for discuss@apps.ietf.org; Fri, 11 May 2007 17:59:30 -0600 (MDT)
Received: from [10.1.110.5] by mail-amer.sun.com (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPSA id <0JHW0081OIN4NV00@mail-amer.sun.com>; Fri, 11 May 2007 17:59:30 -0600 (MDT)
Date: Fri, 11 May 2007 16:59:31 -0700
From: Chris Newman <Chris.Newman@Sun.COM>
Subject: Re: sockets APIs extensions for Host Identity Protocol
In-reply-to: <200705111642.MAA19058@Sparkle.Rodents.Montreal.QC.CA>
To: der Mouse <mouse@Rodents.Montreal.QC.CA>, discuss@apps.ietf.org
Message-id: <5F2A1D00CBD4D0FCFF766616@[10.1.110.5]>
MIME-version: 1.0
X-Mailer: Mulberry/3.1.6 (Mac OS X)
Content-type: text/plain; format=flowed; charset=us-ascii
Content-transfer-encoding: 7BIT
Content-disposition: inline
References: <Pine.SOL.4.64.0705041801060.14418@kekkonen.cs.hut.fi> <20070507082737.GB21759@nic.fr> <46413DD7.8020702@cs.utk.edu> <20070509121703.GA21070@nic.fr> <4641CA52.70504@cs.utk.edu> <Pine.LNX.4.64.0705091449360.26169@hermes-1.csi.cam.ac.uk> <4641D94C.9070304@cs.utk.edu> <Pine.SOL.4.64.0705102013550.10049@kekkonen.cs.hut.fi> <46436B10.5090706@cs.utk.edu> <Pine.SOL.4.64.0705102159020.10049@kekkonen.cs.hut.fi> <4643F873.3000501@cs.utk.edu> <Pine.SOL.4.64.0705110851440.24038@kekkonen.cs.hut.fi> <46442588.7020405@cs.utk.edu> <200705111314.JAA17866@Sparkle.Rodents.Montreal.QC.CA> <4644830D.7050302@cs.utk.edu> <200705111642.MAA19058@Sparkle.Rodents.Montreal.QC.CA>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: e5ba305d0e64821bf3d8bc5d3bb07228
Cc:
X-BeenThere: discuss@apps.ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: general discussion of application-layer protocols <discuss.apps.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/discuss>, <mailto:discuss-request@apps.ietf.org?subject=unsubscribe>
List-Post: <mailto:discuss@apps.ietf.org>
List-Help: <mailto:discuss-request@apps.ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/discuss>, <mailto:discuss-request@apps.ietf.org?subject=subscribe>
Errors-To: discuss-bounces@apps.ietf.org

der Mouse wrote on 5/11/07 12:02 -0400:
>> - getaddrinfo encourages use of string constants to specify ports,
>>    rather than numeric constants, which is wrong -
>
> No, this is very right.  The notion that "ports" are small integers is
> a *horribly* IP-centric notion.  DECnet, for example, uses short
> strings (8-char? 12-char? I don't know the limit) which do *not* have
> to map into numbers - I think X over DECnet, for example, uses "port"
> strings like "X$0" and "X$1".

Making an IETF-defined API more complex in order to accommodate non-IETF 
technology seems to go against the primary purpose of an IETF-defined API (to 
ease deployment of IETF protocols).

>> - it has no way to be used asynchronously other than to put each call
>>    to getaddrinfo in a separate thread,
>
> Neither does gethostbyname().  And, without a lot of callback or AIO
> scaffolding - or threading - it *can't*.

The sockets API, on the other hand, provides a convenient socket option and 
socket fd/handle suitable for asynchronous use.  Even though the only universal 
API to wait for async socket activity has a terrible design, the simple concept 
of an fd/handle for a socket has allowed operating systems to independently 
develop different asynchronous scaffolding (e.g., poll, /dev/poll, 
port_associate, kqueue, CFNetwork, etc).  So it's possible to design an 
asynchronous-friendly API (like sockets) without limiting the scaffolding and 
with minimal impact on synchronous users.

                - Chris