Endpoint IDs
What is an Endpoint ID (aka What was a tuple?)
An endpoint ID is the thing that we route on in DTN, with a syntax conforming to RFC3986, the URI Syntax. A URI consists of a scheme and a scheme-specific part, which we refer to as a ssp.
Examples
- ip4:10.0.0.3
- host:dtnrg.org
- mote:42
Schemes and Routing
A bundle addressed to an endpoint ID with a particular scheme can be forwarded according to a scheme-specific specification, or to another endpoint ID entirely.
If you fail to send a bundle (i.e. make forward progress), due to lack of route (perhaps due an unrecognized scheme, and lack of default route), a report can be sent to indicate the routing failure.
Q: Are routers required to hold on to bundles for which it doesn't understand?
A: This falls under a policy decision - the router has the option to send an error message to the effect that the bundle has been discarded due to a policy restriction
Bundle Endpoints
- a 'bundle endpoint ID' identifies a "bundle endpoint".
- a single 'bundle endpoint' is a set of (zero or more) bundle nodes
- a 'bundle node' is an instantiation of the bundle protocol.
- a 'bundle node' is a member of zero or more endpoints
- a bundle node may implement the service specification and expose an API to clients
- when marking an outgoing bundle's source, a node MAY choose the id of any endpoint of which it is a member, or leave the source unspecified
Nodes, Agents, and Bears, Oh My
There is no such thing as a bundle agent or a bundle router. Both of these terms have been subsumed by the term 'bundle node'.