Subject: Re: [Stackevo] What is an endpoint, and why is this an interesting question?

From: Brian Trammell (IETF) <[email-masked]>
Date: Fri, 12 May 2017 10:32:53 +0200

Hi, all,

Thank you all for your answers to the endpoint question! Catching up on the other thread, collating answers and trying to see if anything falls out:

An endpoint is...

- a logical entity connected to an IP network which is the initial sender or final recipient of a transport-layer packet, bound to some logical identity (service/service-agent or user-agent); and/or

- a logical identity (service/service-agent and/or user-agent) or set of identities associated with a single party, engaged in a specific two-to-N party intent to communicate; and/or

- a set of components bound together through a single identity, through which those components are controlled; and/or

- the closest element to the actor in a use case; and/or

- where application state lives -- for lower layer protocols, the Internet is generally in service to applications, so to hand data to an application is to hand it to an endpoint; and/or

- the point at which the header for a layer is added or removed; and/or

- the element which sends and receives communications in a particular exchange; and/or;

- the initiator of network communications, or the intended target for such initiations; and/or;

- a participant in a semantic dialog...

Let me try to mix this up into the parts of a union-definition of endpointiness:

An endpoint is a necessarily-stateful interface between "the network" (for some definition of "the network") and the entity the network provides communication on behalf of (a user, an application, a device, a service, etc.) This entity is associated with some identity (which may be cryptographically verifiable) and some intent to communicate with some other endpoint(s).

Or to stretch a metaphor to its breaking point, the endpoints are the feet of the elephants in this layered diagram of the Internet (from my pechakucha in Seoul):

I'm not quite sure what this definition can tell us, but I'd like to stare at it a bit...

(Thoughts? Should I have more coffee before I write stuff down?)

Thanks, cheers,

Brian

> On 28 Mar 2017, at 09:52, Brian Trammell (IETF) <[email-masked]> wrote:
> 
> Good morning, Stackevo,
> 
> I have two answers to my first question: one which attempts to take a strict IP-network-centric view (which is in turn informed by my continued and ever more steadfast belief that the stack is missing a layer), and one from a hopefully broader perspective. I think I believe both at once, a superposition made possible by caffeination -- one of the *disadvantages* of remote participation is while I can shift my own schedule to Central Daylight, I have so far been unsuccessful in convincing Callista, or more importantly for scheduling purposes her daycare, to do so... *yawn*...
> 
> I also tried not to look at others' answers; I'll reply to those in other threads.
> 
> (1) An endpoint in the IP architecture is a logical entity connected to an IP network which is the initial sender or final recipient of a transport-layer packet, bound to some logical identity (service/service-agent or user-agent).
> 
> In the (pre-virtualization-containerization) UNIX model of distributed computing, and endpoint is bound to a single process. I say "initial/final" here because I regard the lack of encryption on transport layer headers to be a historical accident, and the participation of non-endpoints at this layer to be an exploit of that accident. In this view, there's nothing architecturally special about tunnel endpoints their application just happens to be packet-encapsulation as opposed to encapsulation of other less ethereal things, like pictures of cats. Same with gateways, nothing special about them either: they're just IP endpoints which happen to be back-to-backed with other non-IP endpoints -- the end-to-endness happens above the layer where "the Internet architecture" should care.
> 
> I like this definition because it is nicely self-contained, but I'm not sure it has much predictive power in helping us see how IP will be evolved by fitness functions beyond those which are strictly technical and network-centered. Hence:
> 
> (2) An endpoint is a logical identity (service/service-agent and/or user-agent) or set of identities associated with a single party, engaged in a specific two-to-N party intent to communicate.
> 
> Here, it's the identity (which we presume is authenticated, whether through a third-party certificate or via good old TOFU -- we explicitly don't inherit the accident of non-authenticatible peers here) and the intent which are important. This is a little rough... I'm not quite sure how tunnels fit into this view, but application layer gateways are either treated as endpoints or as forwarding devices based on (1) whether they represent the intent to communicate, or that intent is delegated to devices behind them and (2) whether the devices behind them have separable identities (which in the IoT space, is usually the result of a business model question).
> 
> Why is this question interesting? In the small, it's obviously interesting to me if I can write that many words about it while basically still asleep. In the large, because I think the spaces between the multiple answers will help us reason about how the demands on the Internet by the applications using it are shaping the architecture.
> 
> Cheers,
> 
> Brian
> _______________________________________________
> Stackevo mailing list
> [email-masked]
> https://www.iab.org/mailman/listinfo/stackevo