How is the UMTS Core Network split into circuit-switched and packet-switched domains?
The core network has two parallel domains: circuit-switched (CS) for voice calls via MSC/GMSC, and packet-switched (PS) for data via SGSN/GGSN — both share the HLR for subscriber data.

* UMTS core: circuit-switched vs packet-switched., CC0, via Wikimedia Commons. *
Circuit-switched domain (voice):
- MSC/VLR — switches voice calls, stores temporary visitor data
- GMSC (Gateway MSC) — connects to external telephone networks (PSTN/ISDN)
- Used for: traditional voice calls, SMS
- Path:
UE → UTRAN → MSC → GMSC → PSTN
Packet-switched domain (data):
- SGSN (Serving GPRS Support Node) — routes data packets, manages mobility for data sessions
- GGSN (Gateway GPRS Support Node) — gateway to external IP networks (internet)
- Used for: web browsing, email, app data, streaming
- Path:
UE → UTRAN → SGSN → GGSN → Internet
Shared components:
- HLR — the master subscriber database, shared by both domains
- Contains all subscriber info: identity, services, tariff, current location
- Signaling systems — coordinate between all network elements
Why two domains? In 3G, voice still used traditional circuit switching (a dedicated channel for the call duration) because it guaranteed quality. Data used packet switching (shared resources, best-effort) because it's more efficient for bursty traffic. This split was eliminated in 4G/LTE, where everything became packet-switched (VoLTE = Voice over LTE).
Go deeper:
3G UMTS Network Architecture (Electronics Notes) — details each core element separately: the CS domain (MSC/VLR, GMSC) vs the PS domain (SGSN, GGSN) and the HLR/EIR/AUC both domains share.