Re: [nbs] NBS and TCP connection identification

RJ Atkinson <> Wed, 13 October 2010 12:29 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9D40E3A6AF3 for <>; Wed, 13 Oct 2010 05:29:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 2CmgdiQsJP+y for <>; Wed, 13 Oct 2010 05:29:36 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id EDA8E3A6AC8 for <>; Wed, 13 Oct 2010 05:29:30 -0700 (PDT)
Received: by gxk20 with SMTP id 20so2233104gxk.31 for <>; Wed, 13 Oct 2010 05:30:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:received:received:from:content-type :content-transfer-encoding:subject:date:message-id:to:mime-version :x-mailer; bh=vBXoiksu62Sn2jtGCbjLMEBr57Vt8ve1sSOQzXuHoSc=; b=sHWd/FQhuQFMSszCRjyjQm1J8WJR96VWwZJiJxd9JtPJEDQljlH7xBUa4hKwQWUW/V N+miBInq/TfheI+jvKBI3+OCFKxx6i86WHk+ngu8BfW2s5aDsl/7OXSaHBFTGFwn/Dcg Ea8YF25G/1eF5topGOZK8IZuB1A03jPKT68sc=
DomainKey-Signature: a=rsa-sha1; c=nofws;; s=gamma; h=from:content-type:content-transfer-encoding:subject:date:message-id :to:mime-version:x-mailer; b=EvvR4pw5kZ9XNFPQpShDkMfOlu0V4cf4l1NyhmGvB4R+nh1NOpS4h+119mu5Wp3+dd dQ+Bscaa4VxXWlNKS4ep4TzaWaOVieHKPRyRTeQ5mPXhVGlKorrEBmSnxOPSfhNHMhd1 LqGn35Zop7h5QOTsUzMQiReFpajYjZzNP12GM=
Received: by with SMTP id h32mr4766038anp.105.1286973045900; Wed, 13 Oct 2010 05:30:45 -0700 (PDT)
Received: from [] ( []) by with ESMTPS id g29sm12313515anh.16.2010. (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 13 Oct 2010 05:30:45 -0700 (PDT)
From: RJ Atkinson <>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Date: Wed, 13 Oct 2010 08:30:42 -0400
Message-Id: <>
To: <>
Mime-Version: 1.0 (Apple Message framework v1081)
X-Mailer: Apple Mail (2.1081)
Subject: Re: [nbs] NBS and TCP connection identification
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Name based sockets discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 13 Oct 2010 12:29:44 -0000

On 5th October, David Harrington wrote:
> If consensus is that this is the goal, then the BOF
> should have participation from OS vendors indicating
> an interest in taking on this burden. 

I agree that would be highly desirable.

It is at least conceivable to me that the proposed new 
C/C++ API could be implemented as a library, containing 
calls to existing POSIX APIs [e.g. getservbyname(), 
gethostbyname(), and existing Sockets APIs] internally 
within the library.

Such a library implementation likely would have visibly
worse performance than just calling the POSIX functions 
directly, for example due to the function call overhead, 
but the library might be helpful in making the API more 
widely available on diverse OS platforms.

My main concern is application portability, not only across
operating systems, but also across a range of Internet 
networking protocols underneath.

> The BOF will also need to explain why this work belongs in IETF,
> rather than in other SDOs.

1) C/C++ API work

C/C++ networking interfaces have been standardised by 
IEEE POSIX.  So it seems clear that IEEE POSIX is the 
appropriate SDO for networking interface standardisation.  

That said, the IETF does have a history of creating
non-standard Informational RFCs proposing networking 

Examples of this practice include:

In my mind, any API document produced in this area should 
follow that model, and also should be offered as a contribution 

(I'm unclear how active the IEEE POSIX effort is these days,
but certainly IEEE has a very active Standards activity.)	

I think 3 aspects of the proposed API work are important 
enough that they should be explicitly required by any WG Charter:

A) The API should support use of names for all objects in the API,
   as various folks (e.g. Dave Thaler) have already suggested.
   [This means that raw "magic numbers", IP addresses, and odd
   "Sockaddr" structures are all best avoided.]

B) The API should be so generic that it can be used without any 
   special hooks or extensions over the wide gamut of networking
   protocols.  For example, an application written to this API 
   ought to run without modification equally well over IPv4, IPv6, 
   SHIM6, HIP, and ILNP.  The choice of networking protocol(s)
   to use also ought to be left to the underlying OS, not signalled
   by the application.

C) A corollary to (B) is that the name-based API should be totally 
   decoupled from any proposed set of protocol extensions.  If the
   API requires those extensions or assumes the availability of
   those extensions, then the protocol-independence is lost --
   and protocol-independence is the biggest potential value-add here.

2) Java API work

  There is no IETF value-add with respect to Java.  Java already
  has standardised name-oriented and nicely abstracted APIs for 
  networking.  So no work on Java appears to be needed.

  In any event, other clearly active activities cover Java APIs,
  so proposals for Java extensions should be taken there.

> Christian's paper proposed changes to protocols,
> such as transport protocol handshakes.
> The BOF should explain in detail how the changes proposed
> would happen only on hosts, not on routers, switches, etc.

For protocols that have existing active IETF WGs, then it 
seems to me that proposal to change those protocols ought 
to be undertaken within those WGs.

For example, any proposal to change/enhance TCP ought 
to be handled within the existing IETF TCPM WG.