One purpose of defining a layered naming architecture is to provide
dynamic bindings between entities at different levels. With
dynamic bindings, names of entities become location independent.
Furthermore, different types of mobility, such as for nodes and
services, become possible without resorting to add-on mechanisms.
Indirection and delegation mechanisms [1] can additionally
support advanced mobility schemes, such as moving networks,
and explicitly control middleboxes. Indirection means that
the name of an entity does not bind “down” within the same node,
but sideways to another location where an intermediary takes care
of forwarding the communication to the entity’s actual location. A
simple application of this mechanism enables servers to operate
behind a NAT without explicit configuration.