In order to comprehend the Radio Resource Control (RRC) state machine, we should study the architecture of the third generation mobile cellular system, the Universal Mobile Telecommunications System (UMTS). The UMTS is composed by two subsystems, the UTRAN (Umts Terrestrial Radio Access Network) and CN (core network) :
We are more interested in the UTRAN part since it handles the connection between the user equipment (UE – e.g. mobile phone) and the core network. Its radio network controllers (RNC) control their respective antenna nodes. The RNC is responsible for the packet scheduling, radio resource control and handover control.
Unlike other wireless technologies like WIFI in which clients concurrently send packets and collisions occur (and backoff algorithms), in the UMTS there is a centralized entity that schedules resources to each client. In order to manage the UE access to radio resources, the UMTS introduces a radio resource control protocol (RRC) that attributes each UE a specific state machine (based on radio resource usage). This state machine is dependent on the 3G provider and can have different states and/or transitions. According to the reference paper – Characterizing Radio Resource Allocation for 3G Networks – the studied networks were composed by three states: IDLE, CELL_FACH and CELL_DCH.
In truth other states can actually be observed in some operators before going into a disconnected mode. For example the PCH states – URA_PCH and CELL_PCH – are states in which the user equipment has no transport channels allocated but has to monitor the cell/UTRAN it is currently connected to in order to send CELL_UPDATES to the RCN (just in case it actually changes). This update implies temporarily changing the state to a CELL_FACH in order to be able to send data. The change from CELL_PCH, in which the UE is known at a cell level, to URA_PCH, in which the user is known at UTRAN level, may be due to an increasing number of CELL_UPDATES (e.g. travelling fast). This is useful in order to speed up incoming connections since it might take around 0.9 seconds to establish it against the 2.5s delay if the UE is on the IDLE state.
Bellow is a diagram that represents the six most common states – CELL_DCH, CELL_FACH, CELL_PCH, URA_PCH, IDLE, DISCONNECT – and some of the possible transitions.
Not only the state machine might differ between network providers but they might also provide different functionalities such as fast dormancy. Fast dormancy allows the state machine to bypass the idle timeout after the device has finished transferring all the data. This is done by sending a Signaling Connection Release Indication (SCRI) message to the RNC, and the device ends up moving to the idle state.
There are lots of research papers describing techniques to accelerate traffic, save battery or resources on the network side. Some techniques include: re-ordering of sent packets to make better use of the transitions (smaller packets on CELL_FACH); batching in order to make a better use of the transfer window; and so on.
Hope this very short description was useful and elucidative. I will probably be writing a few more articles on the area since most of this topics are also new to me.