Enabling applications to indicate their mobility service requirements (e.g., session continuity and/or IP address reachability) comprises the following steps:
The application indicates to the network stack (local to the mobile host) the desired mobility service.
The network stack assigns a source IP address based on an IP prefix with the desired services that was previously provided by the network. If such an IP prefix is not available, the network stack performs the additional steps below.
The network stack sends a request to the network for a new source IP prefix that is associated with the desired mobility service.
The network responds with the suitable allocated source IP prefix (or responds with a failure indication).
If the suitable source IP prefix was allocated, the network stack constructs a source IP address and provides it to the application.
This document specifies the new address types associated with mobility services and details the interaction between the applications and the network stack steps. It uses the socket interface as an example for an API between applications and the network stack. Other steps are outside the scope of this document.
Four types of IP addresses are defined with respect to mobility management:
Fixed IP address
A Fixed IP address is an address guaranteed to be valid for a very long time, regardless of whether it is being used in any packet to/from the mobile host, or whether or not the mobile host is connected to the network, or whether it moves from one point of attachment to another (with a different IP prefix) while it is connected.
Fixed IP addresses are required by applications that need both session continuity and IP address reachability.
Session-Lasting IP address
A Session-Lasting IP address is an address guaranteed to be valid for the lifetime of the socket(s) for which it was requested. It is guaranteed to be valid even after the mobile host has moved from one point of attachment to another (with a different IP prefix).
Session-Lasting IP addresses are required by applications that need session continuity but do not need IP address reachability.
Nonpersistent IP address
This type of IP address is not guaranteed to exist after a mobile host moves from one point of attachment to another; therefore, no session continuity nor IP address reachability are provided. The IP address is created from an IP prefix that is obtained from the serving IP gateway and is not maintained across gateway changes. In other words, the IP prefix may be released and replaced by a new one when the IP gateway changes due to the movement of the mobile host forcing the creation of a new source IP address with the updated allocated IP prefix.
Graceful-Replacement IP address
In some cases, the network cannot guarantee the validity of the provided IP prefix throughout the duration of the opened socket, but can provide a limited graceful period of time in which both the original IP prefix and a new one are valid. This enables the application some flexibility in the transition from the existing source IP address to the new one.
This gracefulness is still better than the nonpersistence type of address for applications that can handle a change in their source IP address but require that extra flexibility.
Applications running as servers at a published IP address require a Fixed IP address. Long-standing applications (e.g., an SSH session) may also require this type of address. Enterprise applications that connect to an enterprise network via virtual LAN require a Fixed IP address.
Applications with short-lived transient sessions (e.g., web browsers) can use Session-Lasting IP addresses.
Applications with very short sessions, such as DNS clients and instant messengers, can use Nonpersistent IP addresses. Even though they could very well use Fixed or Session-Lasting IP addresses, the transmission latency would be minimized when a Nonpersistent IP address is used.
Applications that can tolerate a short interruption in connectivity can use the Graceful-Replacement IP addresses, for example, a streaming client that has buffering capabilities.
IP address type selection is made on a per-socket granularity. Different parts of the same application may have different needs. For example, the control plane of an application may require a Fixed IP address in order to stay reachable, whereas the data plane of the same application may be satisfied with a Session-Lasting IP address.
At any point in time, a mobile host may have a combination of IP addresses configured. Zero or more Fixed, zero or more Session-Lasting, zero or more Nonpersistent, and zero or more Graceful-Replacement IP addresses may be configured by the IP stack of the host. The combination may be a result of the host policy, application demand, or a mix of the two.
When an application requires a specific type of IP address, and such an address is not already configured on the host, the IP stack SHALL
attempt to configure one. For example, a host may not always have a Session-Lasting IP address available. When an application requests one, the IP stack SHALL
make an attempt to configure one by issuing a request to the network. If the operation fails, the IP stack SHALL
fail the associated socket request and return an error. If successful, a Session-Lasting IP address is configured on the mobile host. If another socket requests a Session-Lasting IP address at a later time, the same IP address may be served to that socket as well. When the last socket using the same configured IP address is closed, the IP address may be released, or it may be kept for applications requiring a Session-Lasting IP address that may be launched in the future.
In some cases, it might be preferable for the mobile host to request a new Session-Lasting IP address for a new opening of an IP socket (even though one was already assigned to the mobile host by the network and might be in use in a different, already active IP socket). It is outside the scope of this specification to define criteria for choosing to use available addresses or choosing to request new ones. It supports both alternatives (and any combination).
It is outside the scope of this specification to define how the host requests a specific type of prefix and how the network indicates the type of prefix in its advertisement or in its reply to a request.
The following are matters of policy, which may be dictated by the host itself, the network operator, or the system architecture standard:
The initial set of IP addresses configured on the host at boot time
Permission to grant various types of IP addresses to a requesting application
Determination of a default address type when an application does not explicitly indicate whether it supports the required API or is a legacy application