Subject: [Int-area] Name based sockets

From: Javier Ubillos <[email-masked]>
Date: Mon, 26 Jul 2010 19:47:08 +0200

Name Based Sockets
Draft: http://www.ietf.org/id/draft-ubillos-name-based-sockets-01.txt
Presentation:
http://www.sics.se/~jav/ietf78/namebasedsockets-IETF78-apps.pdf

Consider it a real "request for comments", because I do want comments.

Please note, that we inpractice presented two distinct things.
A. Name based sockets.
B. An improvement to shim6 (which is only possible using names)

I'll try to briefly address some of the questions I remmember:

* There are already solutions for all these problems
Yes, they are, and we want to help to deploy all those cool things.

* We should not require changes to applications
I'm not convinced, however, there are already several solutions that do
do this with surrogate/pseudo IPs.
Actually, nothing says that we couldn't do both.
Name based sockets is just an API to pre-existing cool solutions.

* What is a name?
My spontaneous answer is that a name is eiter just a session identifier,
or that it both that and an identifier for a particular ... something.

That's all I remmember offhand...

// Javier

---

From: "Laganier, Julien" <[email-masked]>
Date: Wed, 28 Jul 2010 03:48:11 -0700

Javier,

Javier Ubillos wrote:
> * There are already solutions for all these problems Yes, they are, and
> we want to help to deploy all those cool things.
> 
> * We should not require changes to applications I'm not convinced,
> however, there are already several solutions that do do this with
> surrogate/pseudo IPs.

My comment was that domain names are actually just that, domain names. Sometimes they're used to name hosts, sometimes to name interfaces of hosts, sometimes to name groups of hosts, etc.

Your proposal seems to assume that a domain name names a host, period.

I was wondering then how to reconcile your proposal with the varied use of domain names by different applications. For example, would the introduction of name based socket break existing usages? Or would it be OK as name based sockets are only used between consenting hosts and applications?

--julien

---

From: Javier Ubillos <[email-masked]>
Date: Wed, 28 Jul 2010 17:16:47 +0200

On Wed, 2010-07-28 at 03:48 -0700, Laganier, Julien wrote:
> My comment was that domain names are actually just that, domain names.
> Sometimes they're used to name hosts, sometimes to name interfaces of
> hosts, sometimes to name groups of hosts, etc.
> 
> I was wondering then how to reconcile your proposal with the varied
> use of domain names by different applications. For example, would the
> introduction of name based socket break existing usages? Or would it
> be OK as name based sockets are only used between consenting hosts and
> applications?
> 
> --julien 

I have simplified quite a bit when it comes to that bit.
We are in discussions about this right now.

The trivial approach is to say exactly as you state.
"Name = host; and this is acknowledged by consenting hosts".

However, a (domain)name _could_ have more meanings.

E.g. the "name" of a service, located on one of many hosts behind the
same domainname (load balancing through DNS).
So the potential problem is, if we do multiple lookups, would we get the
same IP.
The answer is "it dosent matter" and "it does matter" :)
For name based sockets, it wouldn't matter, because we only do the
resolution once anyway, so there is no second resolution that might
conflict.
For the enhancements we've done to shim6 when fitting it under the name
based umbrella, and in general for these features adapted to name based
sockets, the answer is that we need to nail this down and make a
recommendation/standard.

Another option, that was mentioned in apps-discuss is to have it even
more finegrained, addressing a particular service.
One way wold to do some magic with PTR records, and another is by using
URIs.
I don't think URIs are the way to go at a socket level, but perhaps name
based sockets could/should deal with the domain part.
http://[name based sockets]/path/to/thing

Again.
The "consenting parties" still holds.
Name based sockets as such does not do multiple lookups, it does a
(domain)name -> ip resolution once and works with that. So that part
wouldn't change anything.

I hope that I managed to provide the answer to your question somewhere
above here :)

// Javier