Subject: [nbs] Some comments on draft-ubillos-name-based-sockets-03

From: Georg Wittenburg <[email-masked]>
Date: Mon, 21 Mar 2011 17:06:00 +0100

Hi all!

I'm interested in name-based sockets as a way to support distributed services 
in ad hoc networks (see http://cst.mi.fu-berlin.de/projects/SPi/ for details).

After carefully reading draft-ubillos-name-based-sockets-03 [ubillos-03], 
draft-xu-name-shim6-00 [xu-00], Christian Vogt's "Simplifying Internet 
Applications Development With A Name-Based Sockets Interface" 
[vogt_simplifying], and parts of the mailing list archives, here are some 
high-level comments on the current draft. I apologize if some of these issues 
have been raised and discussed previously.

In Sec. 3.2 of [ubillos-03] (or somewhere nearby), it would be helpful to put 
the approach taken with NBS in the general context of work done by the LISP 
working group (chartered "to decouple locators and identifiers [...]"). It 
should be pointed out in how far the NBS approach is complimentary to this 
work.

The "complete feature set" mentioned in Secs. 3.5 and 4. should be defined 
somewhere (possibly in Sec. 3.1).

Sec. 4. of [ubillos-03] does not (yet?) cover the method for DNS name 
verification as proposed in [vogt_simplifying, Sec. "Initial Name 
Notification"]. If this methods -- which relies on a DNS lookup -- is to be 
included in the draft, then clarification is needed how to handle the initial 
data packets while the lookup is in progress. Passing them to the application 
opens a window for attack; delaying them until the lookup completes introduces 
delays in connection setup.

More generally, Sec. 3.4 states that "the responding host does not need to do 
any reverse-DNS resolution (explained below)." Hence, the packets exchanged as 
part of the NBS connection setup would be the only source for the name-to-
address mapping at the responding host. If this mapping is not externally 
verified, then it should be made clear somewhere (possibly in Sec. 6) that 
implementations must not use this information outside of the context of the 
current connection.

A motivation should be given why Secs. 4.2 and 4.3 are within the scope of the 
document. Service naming and transport selection has per se nothing to do with 
host identification.

In Sec. 5., the proposed API differs significantly from the BSD/POSIX socket 
interface. Functions such as socket(), bind(), and connect() are absent while 
the signatures of other functions differ from the standard.

Finally, [xu-00] proposes in Sec. 4.1.2 to "internally represent the name as a 
128-bit MD5-hash and use this MD5-hash as the [identifier]". If a 128-bit 
identifier is regarded as advantageous with regard to compatibility, e.g., with 
IPv6 and/or the work of the LISP WG, then one should think about whether or 
not to include this in [ubillos-03]. This may, however, have side-effects on 
the connection setup process.

I hope this is helpful. Maybe we get a chance to discuss these points in more 
detail at IETF80.

Regards,

	Georg

-- 
Dr. Georg Wittenburg
Postdoctoral Researcher
INRIA / École Polytechnique, HIPERCOM Team
Laboratoire d'Informatique de l'École Polytechnique (LIX)
Route de Saclay, 91128 Palaiseau (CEDEX)
Phone: +33-(0)1-69334126, Fax: +33-(0)1-69334044
http://www.lix.polytechnique.fr/~wittenburg/