Seamless handoff is the process of taking an existing application flow, for example a VoIP call or a video stream, which was started on a given network interface and migrating it to a different network interface, without the user of this stream detecting an interruption. There are many triggers that can cause a flow migration to occur; with each trigger having unique characteristics, however all triggers occur because the first network is no longer able to provide the required network capacity to the application flow, and to ensure a maximal experience the CVG migrates the flow to a second interface which is able to satisfy the flow requirements.
When to Handoff?
There are many examples of events that trigger a seamless handover, the most straightforward the disappearance of a network, for example when a vehicles drives out of range of a Wi-Fi network. Other examples of triggers include detecting congestion on the first network, detecting an in-network failure on the first network (i.e. Wi-Fi is connected, but the AP is not connected to the Internet), detecting poor quality (i.e. high jitter, packet loss, etc.) on the first network, etc.
There are challenges in migrating a flow from a first to a second network without interrupting the flow, due to the fact that different networks have different characteristics, including IP address, latency, jitter, and packet loss. A further challenge is that some networks have a variable ‘warm-up’ time, which can introduce buffering while the network prepares itself for data transfer (3G is an example of such a network). Furthermore, network conditions change rapidly; as a vehicle travels between mobile network cells, as vehicles enter and leave Wi-Fi range, it is possible that a network may be useable for a very short period of time. The CVG takes all of these factors as inputs to optimally schedule a flow.
All network parameters being equal, the CVG will choose the lowest-cost network to schedule data over; typically this is Wi-Fi, however if multiple smartphones are connected via VehicleLink it possible to utilize the device with the largest amount of unused mobile data. The CVG, as it is scheduling each packet across a network, passively collects network metrics, such as packet loss, jitter, and latency. The CVG is also monitoring the signal strength, tower ID, and other out-of-band network information.
The CVG combines the passive network metrics, along with the network status information, calculates trend information and predicts when the network being used by a flow is likely to disappear. At this point the CVG begins duplicating packets across the first and second network (while de-duplicating the packets at the server) to minimize the impact of the first network degrading. This also has the effect of ‘priming’ the second network, to make sure that it is capable of passing the required packet flow. If the detected error on the first network is transient (such as congestion) the CVG will resume only using the first network when conditions improve; if the detected error is permanent (when the network goes away) traffic will be have been transparently migrated to the second link and duplication across the first will stop.
By monitoring both the network status (signal strength, tower information, etc.) and the network metrics (latency, packet loss, jitter) the CVG is able to process all of the available information and make the best determination of how to handle an active flow. When combined with the persistent IP address assigned to the tunnel, flows such as VoIP calls and real-time video streams are able to be migrated without dropping any packets, and without the user detecting any interruptions.