The Complete
5G Architecture.
One network, drawn three ways — the Service-Based view, the Reference-Point view, and the Roaming view. Built line-for-line from TS 23.501 figures 4.2.3-1, 4.2.3-2, 4.2.4-1 and 4.2.4-3. Thirty minutes of narrated, fully-animated, spec-verbatim teaching — with English subtitles.
The Complete 5G Architecture — SBA, Reference Points & Roaming
The player screen is a live animation stage — 50+ scenes fire exactly as the narration reaches them. Karaoke subtitles in English, two subtitle modes, and fullscreen.
One core, three drawings — explore each
Exactly the figures from the standard. Click any function for its role and services. In the roaming view, flip between Local Breakout and Home-Routed and watch the user-plane path change.
The architecture, at spec depth
5G is the first mobile core defined as service-based. TS 23.501 draws the very same network two ways — a service-based representation and a reference-point representation — and is explicit that the two drawings are one architecture. The interactive views above are the pictures; this is the machinery behind them, taken verbatim from the specification.
1 · Two representations, one architecture
TS 23.501 §4.2.1 defines exactly two ways to draw the 5G Core control plane — and they describe the same system:
- Service-based representation (Fig 4.2.3-1) — "network functions (e.g. AMF) within the Control Plane enable other authorized network functions to access their services." Everyone hangs off one horizontal bus; it "also includes point-to-point reference points where necessary."
- Reference-point representation (Fig 4.2.3-2) — "shows the interaction… described by point-to-point reference point (e.g. N11) between any two network functions (e.g. AMF and SMF)."
So N11 is not a cable and not a protocol — it is a name for a relationship: "the AMF consuming Nsmf and the SMF consuming Namf." Service-based interfaces are listed in §4.2.6; reference points in §4.2.7 — both are in the filterable tables below.
2 · Why service-based? The design goals
The move from 4G's monolithic MME / S-GW / P-GW to 5G's NF mesh buys three properties, and the spec pins the key one down word-for-word:
- Modularity — the core is decomposed into small NFs (AMF, SMF, UPF, AUSF, UDM…), each independently deployable and version-able.
- Reuse — a service written once (e.g.
Nudm_SDM) is consumed by many NFs; procedures in TS 23.502 are literally built by invoking a sequence of NF services. - Compute–storage separation — NFs are kept stateless: structured context lives in the UDR (Nudr) and unstructured context in the UDSF (Nudsf), so any instance can pick up any transaction and the layer scales and self-heals like cloud microservices.
3 · NF · NF Service · NF Service Operation — the three-level hierarchy
The specification is precise about granularity §7.2.1:
- A Network Function offers one or more NF Services.
- "Each NF service shall be accessible by means of an interface. An interface may consist of one or several operations."
That maps straight onto the naming you see everywhere:
- SBI =
N+ function name →Namf,Nsmf,Nudm,Nnrf… §4.2.6 - NF Service =
<SBI>_<ServiceName>→ e.g.Namf_Communication. - Operation = service + operation → e.g.
Namf_Communication_N1N2MessageTransfer.
Read a call flow and you are reading a stack of these: a procedure such as PDU-Session Establishment is just a choreography of Nsmf_PDUSession_CreateSMContext, Npcf_SMPolicyControl_Create, Nudm_SDM_Get, N4… TS 23.502
4 · The two interaction mechanisms — Request-Response & Subscribe-Notify
Regardless of transport, every SBI exchange is one of exactly two patterns §7.1.2:
- Request-Response — one-to-one. Consumer
NF_Aasks producerNF_Bto "perform an action or provide information or both"; one response is expected within a timeframe. To fulfil it,NF_Bmay itself consume other NFs' services. - Subscribe-Notify —
NF_Asubscribes;NF_Bnotifies every interested subscriber when the event fires. The subscription must carry a notification endpoint = a Notification Target Address + Notification Correlation ID (typically a callback URL).NF_Amay even subscribe on behalf of NF_C, pointing notifications at a third NF.
Subscription itself comes in three flavours:
- Explicit — a separate subscribe request/response.
- Implicit — the subscription rides inside another operation of the same service.
- Default notification endpoint — registered once with the NRF at NF registration (§4.17.1 of TS 23.502), so producers already know where to push.
A Binding Indication (→ Routing Binding Indication for indirect comms) lets a consumer pin subsequent requests to a suitable producer instance/set — vital when an NF is a stateful set. §6.3.1.0
5 · Direct vs Indirect communication & the SCP
An NF pair can talk directly, or indirectly through a Service Communication Proxy (SCP) — and the choice is per-message, driven by local configuration ("An NF may not use SCP for all its communication"). §4.2.1 · §7.1.1
- Direct — the consumer discovers the producer by local config or via the NRF, then connects straight to it.
- Indirect — the consumer sends via an SCP. It may still discover the producer itself, or delegate discovery/selection to the SCP, which then uses the parameters the consumer supplied. The SCP routes on the Routing Binding Indication when present.
Combining the two axes gives the four communication models of Annex E:
- Model A — Direct, no NRF discovery (local config only).
- Model B — Direct with NRF discovery.
- Model C — Indirect, consumer does discovery, SCP forwards.
- Model D — Indirect with delegated discovery — the consumer just hands intent to the SCP. §6.3.1 · Annex E
6 · Register → discover → authorize (the NRF life-cycle)
The NRF is the repository that makes the mesh find itself, across three §7.1 procedures:
- Registration §7.1.5 — every NF tells the NRF the services it supports: on first start (
register), on activation/de-activation after a scaling event (update), andde-registeron graceful shutdown; if an NF crashes, an authorised OA&M entity de-registers it. Registration "includes capacity and configuration information at time of instantiation." - Discovery §7.1.3 · §6.3.1 — a consumer (or SCP) asks the NRF for instances providing the wanted service, filtered by
target-nf-type,snssais,dnn… - Authorization §7.1.4 — two steps: (1) may I discover it? — per-NF granularity, enforced by the NRF; (2) may I consume it for this UE / subscription / roaming case? — request-type granularity, embedded in the producer's own service logic.
On the wire that authorization is OAuth2: the NRF is the authorization server, issuing signed access tokens (grant_type=client_credentials, scoped to a service) that the producer verifies before serving. TS 33.501 §13
7 · How an SBI actually works on the wire — HTTP/2 · JSON · TLS
Every control-plane call is a REST request over the stack fixed in TS 29.500 §5.1, Fig 5.1-1:
- HTTP/2 (IETF RFC 9113) is mandatory — multiplexed streams over one TCP connection.
- JSON is the application-layer serialization; the APIs are described in OpenAPI 3.0.
- TLS — "all 3GPP NFs shall support TLS, and TLS shall be used within a PLMN if network security is not provided by other means." §5.1 · TS 33.501
Resources are addressed by a structured URI TS 29.501:
{apiRoot}/{apiName}/{apiVersion}/{resource}
e.g. …/namf-comm/v1/ue-contexts/{id}/n1-n2-messages
3GPP layers its own routing/priority metadata on top as custom headers:
8 · Reference points: names for relationships, and where real wires survive
Because the control plane shall only use SBIs, its reference points (N8, N11, N12, N15…) are all the same HTTP/2 bus under different names — a reference point is a named relationship, realised as two NFs consuming each other's services.
The user plane is the exception: it does not run HTTP, so it keeps genuine point-to-point interfaces — which is exactly why the UPF never appears on the SBI bus:
- N1 — NAS (5GMM / 5GSM), UE ↔ AMF (logical, tunnelled in N2).
- N2 — NGAP over SCTP, (R)AN ↔ AMF.
- N3 / N9 — GTP-U over UDP, user data to the gNB / between UPFs.
- N4 — PFCP over UDP:8805, SMF ↔ UPF.
- N6 — plain IP, UPF ↔ Data Network.
The N1–N114 table below now carries the exact transport each reference point runs, so you can tell a "name on the bus" from a real wire at a glance.
9 · Roaming — two operators, one border (SEPP · N32 · IPUPS)
Roaming stitches a VPLMN (visited) to an HPLMN (home). Every inter-operator control message crosses two SEPPs over N32 §4.2.4 · TS 33.501 §13, and N32 is really two connections:
🤝 N32-c — control
The SEPP-to-SEPP handshake: capability negotiation, cipher-suite & protection-policy exchange, and key agreement. Set up once, then used to manage the security context.
📨 N32-f — forwarding
The protected carriage of the actual roaming signalling — secured end-to-end with TLS, or with PRINS (application-layer JWE) when IPX intermediaries must read / modify selected IEs.
On the user plane, home-routed traffic crosses the border on N9, guarded by IPUPS (Inter-PLMN User Plane Security) — the SEPP's user-plane counterpart. Supporting cross-PLMN control rides the bus through the SEPPs too: N27 (vNRF ↔ hNRF discovery), N31 (vNSSF ↔ hNSSF slice mapping), N24 (vPCF ↔ hPCF policy), N16 (V-SMF ↔ H-SMF). Where the user plane exits — visited vs home — is the LBO-vs-Home-Routed decision detailed below.
Service-Based Architecture — the whole 5GC control plane as producers/consumers on a bus.
Network Function — a deployable unit (AMF, SMF…) offering one or more services.
A self-contained, reusable capability, independently managed (§7.2.1).
One action within a service's interface (e.g. …_CreateSMContext).
Service-Based Interface — N+function (Namf, Nsmf…), HTTP/2 + JSON.
A named relationship between two NFs (N11 = AMF↔SMF), realised on the bus.
NF Repository Function — register, discover, and OAuth2-authorize NFs.
The record an NF registers at the NRF: type, services, S-NSSAIs, capacity, load.
Service Communication Proxy — the routing tier for Indirect Communication.
NF-to-NF straight, or via an SCP — chosen by local configuration.
Hint that pins subsequent requests to a suitable producer instance/set.
Notification Target Address + Correlation ID — where a Notify is delivered.
The deployment-specific base of every SBI URI (TS 29.501).
Signed access token the NRF issues; the producer verifies it (TS 33.501 §13).
Security Edge Protection Proxy — the control-plane border gateway between PLMNs.
SEPP handshake vs protected forwarding of roaming signalling.
PRotocol for N32 INterconnect Security — JWE protection allowing IPX mediation.
Inter-PLMN User Plane Security — the N9 user-plane border guard.
Compute with no local state; context externalised to UDR / UDSF.
Visited vs Home operator networks in a roaming scenario.
Every interface, verbatim from TS 23.501
The complete reference-point list (§4.2.7) and service-based interface list (§4.2.6). Filter to find any N-number or N-name in seconds.
Local Breakout vs Home-Routed
The single choice that shapes every roaming design. Same phone, same tap — two completely different data paths.
🌏 Local Breakout (LBO) — Fig 4.2.4-1
- Data exits: in the visited country, at the V-PLMN UPF → N6 → internet
- User plane: (R)AN → N3 → V-UPF → N6 → DN. No cross-border data.
- SMF: one, in the visited network
- Policy: visited PCF, using roaming-agreement config (no access to home policy)
- Best for: low latency to local servers, efficient paths
- Trade-off: home operator has less control & visibility
🏠 Home-Routed (HR) — Fig 4.2.4-3
- Data exits: back in the home country, at the H-PLMN UPF → N6 → internet
- User plane: (R)AN → N3 → V-UPF → N9 → H-UPF → N6 → DN
- SMF: two — V-SMF and H-SMF, joined by N16
- Policy & charging: home operator, full control
- Best for: IMS voice, lawful intercept, tight charging
- Border guard: IPUPS UPF may sit on the N9 boundary
Trace fingerprints: one SMF + local N6 = LBO. Two SMFs + N16 + cross-border N9 = Home-Routed. Control between operators always rides N32 through the SEPPs.
TS 23.501 V19.6.0 §4.2.4 Fig 4.2.4-1 / -3 / -4 / -6Architecture mastery check
Questions and answers reshuffle every load. 70%+ to consider Lesson 1.2 done.