Subject: Re: Some Comments on ID/Loc Separation Proposals

From: Dave Crocker <[email-masked]>
Date: Thu, 27 Nov 2003 15:39:22 -0800

Folks,

draft-crocker-mast-analysis (which will be
draft-crocker-multiaddr-analysis in its next version) has a section
for defining some terms.  The section has been prompted by exactly the
kind of vagueness that the current thread is also trying to fix.

My primary interest is in having precise definitions that we all find
useful and use consistently. Some of the current versions of
definitions in the draft are:

   Endpoint

           refers to "the fundamental entity of and end-end
           communication" [EID]. It is an end-system that participates
           in an association. Endpoints are distinguished from
           intermediate, infrastructure nodes and from hosts.

   Identifier

           refers to a unique label for an endpoint. The label is used
           simply for distinguishing one endpoint from another.
           Because a locator is usually globally unique, it might be
           able to serve as an identifier. However this use will often
           suffer administrative and referential limitations as a
           global identifier for mobile endpoints. This is exemplified
           by the current problems experienced with the dual role of
           IP Addresses.

Suggestions for improving the text are eagerly sought.
           
As with others, I do not think it is useful to have ID refer to an
interface.  Stack, endpoint or process all seem more helpful.

Speaking of 'stack', what definition text would folks like.  The NSRG
paper introduces the construct nicely, but I'm not sure the text there
is what we should live with.

For that matter, what is the difference between endpoint and stack?

d/
--
 Dave Crocker <dcrocker-at-brandenburg-dot-com>
 Brandenburg InternetWorking <www.brandenburg.com>
 Sunnyvale, CA  USA <tel:+1.408.246.8253>

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Sun, 30 Nov 2003 12:35:11 +0100

>            intermediate, infrastructure nodes and from hosts.

An endpoint is an end-system but not a host: I think this isn't all 
that clear.

Personally, I prefer to talk about hosts, as this is a well-known 
concept. The fact that there is some ambiguity because hosts can be 
clustered and virtualized also isn't a huge surprise to most people, 
and can be spelled out for good measure.

If you want to stick to "endpoints" you should say whether an endpoint 
is host that may or may not be virtual, a transport protocol or a 
process. This has pretty serious consequences for the number of 
identifiers that is necessary and some other stuff as well. For 
instance, certain types of communication may be handled by more than a 
single processes. When identifiers are tied to processes this makes 
referral very complex.

>            refers to a unique label for an endpoint.

Hm, maybe this is just my English but to me it is unclear whether you 
mean the identifier <-> endpoint relationship is 1-to-1, 1-to-n or 
n-to-1, only that it isn't n-to-m.

I think "an identifier identifies a specific endpoint" is enough.

>            The label is used

This is too much text and largely not relevant for defining 
"identifier". The only additional remark that's necessary is that an 
identifier is independent of an endpoint's attachment to the network 
("location").

> interface.  Stack, endpoint or process all seem more helpful.

Absolutely. While multi6 is about site multihoming and not host 
multihoming, it would be a mistake only allow jumping locators when 
those locators are tied to the same interface.

"Endpoint" is usable, but "stack" isn't a very good word as it will 
probably confuse people who haven't followed what has happened in the 
NSRG and identifying processes is too granular and dynamic, IMO.

---

From: Eliot Lear <[email-masked]>
Date: Sun, 30 Nov 2003 09:42:44 -0800

Iljitsch van Beijnum wrote:

> clustered and virtualized also isn't a huge surprise to most people, and 
> can be spelled out for good measure.

Once so spelt out, an end point would would have been defined in all but 
word, so why not define it?  Personally I believe the term "host" has 
become ambiguous, and so itself is worthy of a good clarification, if 
not definition.

Eliot

---

From: Masataka Ohta <[email-masked]>
Date: Mon, 01 Dec 2003 08:30:23 +0900

Iljitsch;

> An endpoint is an end-system but not a host: I think this isn't all that 
> clear.

Why do you say "endpoint" only to confuse everything?

An entity at the Internetworking layer is the end system, which
is identified by an identifier at the Internetworking layer.

Just say "end systems".

In addition, layering allows various mapping of entities at
different layers, such as one to one, one to many, many to one,
many to many, none to many and so on that there is no point on
considering identifiers at other layers here.

For example, an application layer identifier of a mail address
may have no entity in the Internet, if the recipient is behind
NAT or UUCP gateway. Even a mail gateway, which is, though not
a mail recipient, an entity of the Internet, has many to many
mapping to mail domain through MX that there is no point using
identifiers at the Internetworking layer to identify an mail
address.

> can be spelled out for good measure.

"virtualize" means "as if it is real.

"virtualized host" means "muptiple entities behaving as if it is a
single host".

So, for the purpose of network protocol, treat it as a plain host.

All the rest is internal implementation details within a host.

There is no room of confusion.

							Masataka Ohta

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 1 Dec 2003 01:14:24 +0100

> So, for the purpose of network protocol, treat it as a plain host.

Right.

> All the rest is internal implementation details within a host.

Yes. This is more or less my point.

> There is no room of confusion.

There is always room for two things: desert and confusion.  ;-)