The Layered Naming Architecture [1] borrows heavily from other
proposals, such as HIP, and puts the pieces together into a more or
less complete naming architecture. It defines four layers with
three levels of name resolution in between: user level descriptors,
service identifiers – used by applications to name services and
data objects, endpoint identifiers – used to name end systems and
finally IP addresses (or other locators) to name network locations.
One unique principle of this architecture is that names only bind
protocols to the relevant aspects of underlying structure. This facilitates
independent re-mapping at all levels. The resolution of
user level descriptors into service identifiers – persistent identifiers
of a service that do not change when the hosting node moves –
can be implemented in various ways. This architecture also supports
the concept of delegation, where a network entity can direct
resolutions of its name not only to its own location, but also to
chosen delegates. This is a powerful principle that naturally accommodates
intermediaries in the communication path without
violating protocol layering.