The Cellular Concept: Handoffs

Wahome
5 min readMar 9, 2023

--

Consider that you are seated in a moving vehicle or train and are on a phone call exchanging pleasantries with your significant other or mate. The call lasts the duration of your uneventful journey to your chosen destination and has been so uninterrupted and seamless, and the conversation so enjoyable, that you may not have realised that you have traversed numerous “cells” — you know from the “cell” in cellphone — during that time.

Mobile Network Cells

Mobile network operators divide up geographic areas into “cells” whose radius can vary from tens of meters in building, hundreds of meters in a city, and tens of kilometres in the country. The shape of a cell depends on the environmental conditions such as type of building, mountains, weather conditions, load, etc. Generally, it is hexagon shape but not an exact hexagon. Each cell has a tower — the tall metallic structures usually painted red and white — in it. Thus, if you are travelling across 50 kms, you have probably traversed about 10 to 25 cells. If during this duration your call has not “dropped”, it means that your cellphone has been seamlessly bounced from one tower to another, without you noticing. Fascinating!

Handoff

Mobility is the most important feature of a wireless cellular communication system. Usually, continuous service is achieved by supporting handoff (or handover) from one cell to another. Handoff is the process of changing the channel (frequency, time slot, spreading code, or a combination of them) associated with the current connection while a call is in progress. It is often initiated either by crossing a cell boundary or by a deterioration in quality of the signal in the current channel.

Handoff is divided into two broad categories — hard and soft handoffs. They are also characterized by “break before make” and “make before break.”

Hard Handoff

A “hard” handoff is when a connection with one tower must break before establishing a new one with another tower — a “break before make” connection. It can be further divided into two different types — intra- and inter- cell handoffs.

In the 2G FDMA (Frequency Division Multiple Access) and TDMA (Time Division Multiple Access) systems where different frequency ranges are used in adjacent channels to minimise channel interference, the majority of handoffs are intra-frequency hard handoffs.

Soft Handoff

A “soft” handoff is when the new connection is made, there is a bit of overlap with the two towers, before the old connection is dropped — a “make before break” connection. It can also be divided into two different types — multiway soft and softer handoffs.

The 2G CDMA (Code Division Multiple Access) and 3G W-CDMA (Wideband Code Division Multiple Access) systems uses soft handoffs where a cell phone is simultaneously connected to two or more cells (or cell sectors) during a call. If the sectors are from the same physical cell site (a sectorised site), it is referred to as softer handoff.

Soft handoffs are a little more complicated because both existing and new resources are used during the handoff process. Poorly designed handoff schemes tend to generate very heavy signalling traffic and, thereby, a dramatic decrease in quality of service (QoS).

Android Radio Interface Layer (RIL)

While the network does most of the heavy lifting during a handoff or handover, there is a bit of work to be done by the OS in your phone depending on the type of handoff that is going to happen.

Android’s Radio Interface Layer (RIL) provides an abstraction layer between Android telephony services (android.telephony) and radio hardware. The RIL is radio agnostic, and includes support for Global System for Mobile communication (GSM)-based radios.

The RIL in the context of Android’s Telephony system architecture.

Solid elements represent Android blocks and dashed elements represent partner-specific blocks.

The RIL consists of two primary components:

  • RIL Daemon: The RIL daemon initializes the Vendor RIL, processes all communication from Android telephony services, and dispatches calls to the Vendor RIL as solicited commands.
  • Vendor RIL: The radio-specific Vendor RIL of ril.h that processes all communication with radio hardware and dispatches calls to the RIL Daemon (rild) through unsolicited commands. Vendor RIL must define a RIL_Init function that provides a handle to the functions which will process all radio requests. RIL_Init will be called by the Android RIL Daemon at boot time to initialize the RIL and should return a RIL_RadioFunctions structure containing the handles to the radio functions:
RIL_RadioFunctions *RIL_Init (RIL_Env* env, int argc, char **argv);
type structure {
int RIL_version;
RIL_RequestFunc onRequest;
RIL_RadioStateRequest onStateRequest;
RIL_Supports supports;
RIL_Cancel onCancel;
RIL_GetVersion getVersion;
}
RIL_RadioFunctions;
Handoff code from the Google’s reference RIL

The engineering involved in achieving mobility, arguably the most important feature of a wireless cellular communication system, is rather fascinating considering that it requires the ability to handle millions of complex handoffs every second. For better perspective, we can juxtapose this with the pride and joy of web services which is the edge load balancer being able to handle many millions of connections.

--

--

No responses yet