Skip to content

GSM & 3G Networks — From 2G to UMTS Evolution Guide

DodaTech Updated 2026-06-24 6 min read

In this tutorial, you'll learn about GSM & 3G Networks. We cover key concepts, practical examples, and best practices.

GSM (Global System for Mobile Communications) was the first digital cellular standard, introducing SIM cards, SMS, and international roaming — evolving from 2G circuit-switched voice through GPRS/EDGE to 3G UMTS with WCDMA mobile broadband.

What You'll Learn

  • GSM network architecture: BSS, NSS, and OSS domains
  • How 2G voice calls and SMS are routed
  • GPRS/EDGE packet data evolution
  • UMTS (3G) with WCDMA and the RNC-based architecture

Why GSM Matters

GSM is the most successful mobile standard in history, with over 8 billion subscriptions at its peak. It introduced the SIM (Subscriber Identity Module) — the first removable identity module that let users switch phones while keeping their number. GSM also proved that international roaming was commercially viable, laying the foundation for every mobile generation that followed.

Durga Antivirus Pro applies GSM-style mutual authentication between enterprise agents, using SIM-like challenge-response handshakes for device identity verification.

Learning Path

flowchart LR
  A[Telecom Basics] --> B[GSM/2G Architecture
You are here] B --> C[GPRS & EDGE] C --> D[3G UMTS] D --> E[4G LTE] E --> F[5G Networks] style B fill:#f90,color:#fff

GSM Network Architecture

GSM divides the network into three subsystems:

flowchart TD
  subgraph BSS[Base Station Subsystem]
    MS[Mobile Station] --> BTS[BTS - Base Transceiver Station]
    BTS --> BSC[BSC - Base Station Controller]
  end
  subgraph NSS[Network and Switching Subsystem]
    BSC --> MSC[MSC - Mobile Switching Center]
    MSC --> HLR[HLR - Home Location Register]
    MSC --> VLR[VLR - Visitor Location Register]
    MSC --> EIR[EIR - Equipment Identity Register]
    MSC --> AuC[AuC - Authentication Center]
  end
  subgraph OSS[Operations Support]
    MSC --> PSTN[PSTN / Other Networks]
  end

Base Station Subsystem (BSS)

  • BTS (Base Transceiver Station): The radio tower and transceivers that communicate with mobile devices over the Um (air) interface
  • BSC (Base Station Controller): Manages multiple BTSs, allocates radio channels, handles handovers between BTSs
  • MS (Mobile Station): The phone and SIM card combination

Network and Switching Subsystem (NSS)

Component Role
MSC Mobile Switching Center — core switch for call routing, mobility management
HLR Home Location Register — permanent subscriber database with IMSI, MSISDN, subscribed services
VLR Visitor Location Register — temporary cache for roaming subscribers
AuC Authentication Center — stores Ki keys for SIM authentication
EIR Equipment Identity Register — IMEI white/grey/black lists

How a GSM Call Works

MS[BTS] -> BSC -> MSC -> HLR/VLR lookup -> MSC -> PSTN or other MSC -> BSC -> BTS -> MS
  1. Mobile initiates channel request on RACH
  2. BTS forwards to BSC, which assigns SDCCH (standalone dedicated control channel)
  3. MSC receives call setup message with called number
  4. MSC queries HLR for subscriber data and routing info
  5. MSC reserves a traffic channel (TCH) and connects the call
  6. Voice travels over TCH at 13 kbps (full-rate) or 6.5 kbps (half-rate)

SMS in GSM

SMS uses the signaling channel rather than traffic channels, allowing messages to be sent even during a voice call:

class SMSDeliverySimulator:
    def __init__(self):
        self.smsc = "SMSC-001"
        self.sgsn = None

    def send_sms(self, sender, recipient, message):
        print(f"[{self.smsc}] Route SM from {sender} to {recipient}")
        hlr_query = self.query_hlr(recipient)
        if hlr_query["status"] == "active":
            msc = hlr_query["serving_msc"]
            print(f"[{self.smsc}] Forward SM to {msc} via MAP mt_forwardSM")
            print(f"[{msc}] Page {recipient} on SDCCH")
            print(f"[{msc}] SM delivered: '{message}'")
            return "delivered"
        return "failed"

    def query_hlr(self, msisdn):
        return {"status": "active", "serving_msc": "MSC-42", "vlr": "VLR-17"}

sim = SMSDeliverySimulator()
result = sim.send_sms("+1-555-1111", "+1-555-2222", "Hello from GSM!")
print(f"Delivery: {result}")

Expected output:

[SMSC-001] Route SM from +1-555-1111 to +1-555-2222
[SMSC-001] Forward SM to MSC-42 via MAP mt_forwardSM
[MSC-42] Page +1-555-2222 on SDCCH
[MSC-42] SM delivered: 'Hello from GSM!'
Delivery: delivered

GPRS: The Packet Data Revolution

GPRS (General Packet Radio Service) was the first step toward mobile data, adding packet-switched capability to GSM:

flowchart LR
  MS --> BTS[BTS + PCU]
  BTS --> SGSN[SGSN - Serving GPRS Support Node]
  SGSN --> GGSN[GGSN - Gateway GPRS Support Node]
  GGSN --> DN[Internet / Data Network]
  SGSN --> HLR
  • SGSN: Tracks mobile location, manages PDP contexts, handles authentication for data sessions
  • GGSN: Gateway to external packet networks, allocates IP addresses, acts as the anchor point for external PDNs

EDGE: Enhanced Data Rates

EDGE (Enhanced Data Rates for GSM Evolution) introduced 8PSK modulation, tripling GPRS data rates to 384 kbps. It required only a software upgrade to BTS hardware.

UMTS (3G) Architecture

3G UMTS (Universal Mobile Telecommunications System) replaced GSM's TDMA air interface with WCDMA (Wideband Code Division Multiple Access):

flowchart LR
  UE[User Equipment] --> NodeB
  NodeB --> RNC[RNC - Radio Network Controller]
  RNC --> SGSN
  RNC --> MSC
  SGSN --> GGSN
  GGSN --> DN[External Networks]
  MSC --> PSTN[PSTN]
3G Component Equivalent in GSM What Changed
NodeB BTS WCDMA radio, no transceiver per channel
RNC BSC Soft handover, lub/lur interfaces
MSC (3G) MSC Added lu-CS interface to RNC
SGSN (3G) SGSN Added lu-PS interface to RNC

Common Errors

1. Treating GSM as Obsolete

GSM bands (900/1800 MHz) are being refarmed for LTE and 5G, but GSM remains the global fallback for emergency calls and IoT LPWA in many regions.

2. Confusing IMSI and MSISDN

IMSI is the subscriber identifier stored on the SIM (used for authentication). MSISDN is the phone number. They are different — one SIM can have multiple MSISDNs.

3. Forgetting the AuC in Authentication

GSM authentication is one-way — the network authenticates the SIM, but the phone doesn't authenticate the network. This enables IMSI catchers (fake base stations).

Practice Questions

  1. What are the three GSM subsystems? BSS (Base Station Subsystem), NSS (Network and Switching Subsystem), OSS (Operations Support Subsystem).

  2. How does SMS differ from a voice call in GSM? SMS uses signaling channels (SDCCH/SACCH) rather than traffic channels (TCH), allowing SMS delivery during active calls.

  3. What was the key innovation of GPRS? Packet-switched data over GSM — always-on connectivity, charging by data volume instead of airtime.

  4. What is the main architectural difference between GSM and UMTS? UMTS replaced TDMA with WCDMA and introduced the RNC for centralized radio resource management and soft handover.

Challenge: Design a roaming call flow where a subscriber on a 3G network in France receives a call from a GSM user in the US. Trace every SS7 MAP message between VLR, HLR, MSC, GMSC, and the voice circuit.

FAQ

Is GSM still active in 2026?

Yes, GSM remains active for low-cost IoT (NB-IoT via refarmed spectrum), emergency calling (E911), and rural coverage. Many carriers maintain GSM until 2030+.

What frequency bands does GSM use?

Primary bands: 850/900 MHz (low), 1800/1900 MHz (high). GSM uses 200 kHz channel spacing with TDMA — 8 timeslots per carrier.

What is the difference between 2G and 3G authentication?

GSM uses one-way authentication (network verifies phone). 3G UMTS introduced mutual authentication, preventing fake base station attacks.

Can a GSM phone work on 3G?

GSM-only phones (no UMTS radio) cannot connect to 3G. Most 3G phones are backwards-compatible with GSM for fallback.


Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-24.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro