# Mobility-Multihoming Duality
## 3 Identifier Locator Network Protocol (ILNP)
### Mobility and Multihoming: A Naming Problem with a Naming Solution  
In this subsection, we will discuss the abstract model for our approach first to establish the principle of operation. We can see both the mobility and multihoming functionality as naming problems, with a common, naming-based solution. Consider a node with name \(N_{A}\) that is at a network with name \(L_{1}\). It has an _Identifier Locator Vector_ (IL-V) \(\langle N_{A},L_{1}\rangle\).  
* For **mobility**,we allow dynamic bindings between a node name, \(N_{A}\), and a network name, \(L_{1}\). This allows a node to'move' from one network to another by changing the binding between values. For example, a node with name \(N_{A}\) bound to a network with the name \(L_{1}\) can'move' to a network with name \(L_{2}\) by changing its IL-V from \(\langle N_{A},L_{1}\rangle\) to \(\langle N_{A},L_{2}\rangle\)
* For **multihoming**, we allow dynamic bindings with a 1:_many_ relationship between a node name and a network name. This allows a node to have a PoA to multiple networks at the same time. A node with name \(N_{A}\) can be bound to four network names--\(L_{1}\), \(L_{2}\), \(L_{3}\), and \(L_{4}\)--making it multihomed using multiple IL-Vs with the same node name, e.g., the set \[\langle N_{A},L_{1}\rangle,\langle N_{A},L_{2}\rangle,\langle N_{A},L_{3} \rangle,\langle N_{A},L_{4}\rangle\] A short-hand notation for this is \[\langle N_{A},L_{1}|L_{2}|L_{3}|L_{4}\rangle\] In both cases, the logical requirement is to allow _dynamic name bindings_. In this way, bindings between node names and network names can be changed to show new connectivity, whether that is because of movement or because of multihoming. In practical terms, node names and network names are also bound to objects in the network stack to enable protocol operation. So, for ILNP, we have the following:
* At the transport layer, a communication end point binds to an NID value, identifying a node with a name. This binding should remain fixed for the duration of a communication session to enable end-to-end integrity for a communication flow.
* The NID value has a dynamic binding with one or more L64 values, 'connecting' a node to one or more networks. The NID-L64 binding(s) (IL-Vs) can change at any time to reflect changing network connectivity.
* The L64 value will have a (dynamic or fixed) binding to a physical interface on a host so that the network name is bound to a real network for transmission. The last point above might not be obvious from our discussion so far, but it should be clear when we discuss the practical implementation of ILNP in the next subsection. If we compare these names and bindings to an IPv6, we have the following:
* At the transport layer, a communication end point binds to a full IP address.
* The full IP address is also bound to a physical interface. Effectively, the IPv6 bindings tie a transport layer communication end point (and therefore a transport communication flow) to a physical interface and so to a single-network PoA. This is a basic property of the IP addressing architecture. The various uses of multiple addresses and/or proxies and/or tunnelling and/or address mappings are mechanisms
used in the approaches other than ILNP to circumvent this fundamental constraint (as summarised in Table 1).  
This is not the case for ILNP: the dynamicity of the NID-L64 bindings(s) allows a transport communication flow to'move', or to be 'connected' to multiple networks.