Every function is a service.
Every service is discoverable.
The 5G Core is not boxes wired point-to-point — it's a mesh of stateless Network Functions that expose REST APIs on a shared service bus and find each other through the NRF. That software-defined shape is exactly what lets the core stay on the ground while the gNB — and even the UPF — ride the satellite.
Point-to-point is out. A service bus is in.
In the EPC, every interface was a bespoke protocol — S1, S5, S8, S11… In 5G, every NF speaks the same web-native stack and registers itself so any other NF can discover and call it. No hard-wiring, so functions can be added, scaled or relocated independently.
HTTP/2 + JSON
Every service is a REST/JSON API over HTTP/2, defined in OpenAPI 3.0. One transport for the whole control plane.
TLS 1.3 + OAuth 2.0
SBI is mutually authenticated with TLS; producers authorize consumers with OAuth 2.0 access tokens issued by the NRF.
Register & discover
Each NF publishes its profile to the NRF; consumers query the NRF to find a producer — dynamic, not configured.
Stateless NFs
Compute is separated from state (UDSF/UDR), so any instance can serve any request and you can scale horizontally.
From EPC boxes to 5GC services.
The 4G EPC was four monoliths speaking a dozen bespoke protocols — Diameter here, GTP-C there. 5GC re-cuts the same responsibilities along two clean lines — control vs user plane (CUPS) and compute vs state — then puts every control-plane function behind one web API. The study that chose the stack, TR 29.891, picked HTTP/2 + JSON over Diameter for a simple reason: the entire cloud ecosystem already speaks it.
| EPC (4G) | 5GC | What actually changed |
|---|---|---|
| MME | AMF + session part → SMF | Mobility/NAS split from session management; S1-MME becomes N2 (NGAP) |
| SGW-C · PGW-C | SMF | GTP-C (S5/S11) signalling becomes Nsmf SBI + PFCP on N4 |
| SGW-U · PGW-U | UPF | CUPS (started Rel-14) completed: one programmable forwarding engine |
| HSS | UDM + UDR + AUSF | Monolith split into stateless front-end, storage layer and authentication server |
| PCRF | PCF | Diameter Gx/Rx becomes Npcf REST; adds UE policy — URSP |
| SCEF | NEF | Capability exposure goes REST-native, backed by the UDR |
| — no equivalent — | NRF · NSSF · NWDAF · SCP · SEPP | Discovery, slicing, analytics, service routing and roaming security are new |
Why HTTP/2 won — TR 29.891
Binary framing + stream multiplexing ends app-layer head-of-line blocking: one TLS connection per NF pair carries thousands of parallel transactions. HPACK compresses the repetitive headers, and OpenAPI 3.0 contracts generate client & server code for free.
GTP-U survives
The one EPC protocol that crosses over: N3 and N9 still run GTP-U over UDP/IP, because per-packet tunnel switching in hardware beats any HTTP reframing. Only the control of those tunnels moved — to PFCP on N4.
Two clean cuts
CUPS: control and user plane scale independently — the UPF can fly on a satellite, the SMF never needs to. Compute vs state: NF instances stay stateless; context lives in UDR/UDSF, so any instance can pick up any UE.
Reading the releases — Rel-15 defined SBA + all core NFs; Rel-16 added the SCP, NF Sets and eSBA hardening; Rel-17 brought the first NTN support (and satellite-backhaul awareness in the core); Rel-18 network-verified UE location; Rel-19 regenerative payloads — gNB and UPF on the satellite.
The whole 5G Core — click any function.
The full service-based architecture of TS 23.501: the control-plane NFs hang off the shared SBI bus up top, while the AMF and SMF bridge down to the reference-point world of UE, gNB, UPF and Data Network. Click any block — a rich panel opens with its role, service operations, interfaces and NTN relevance. Drag nodes to explore; zoom with the controls.
The supporting cast every real core runs.
Eight more functions that never make the marketing slide but exist in every production 5GC — and each one has a satellite angle.
SCP — Service Comm. Proxy
Rel-16. Routes SBI requests, does delegated discovery (Models C/D), load-balances, retries, and throttles using piggybacked 3gpp-Sbi-Oci/Lci. Has no services of its own — it transparently proxies everyone else's. NTN: hides ground↔onboard NF path changes from consumers.TS 23.501 (Rel-16) · TS 29.500
SEPP — Security Edge Proxy
Sits at the PLMN border: every inter-PLMN SBI message crosses cSEPP ↔ pSEPP over N32. NTN: when the satellite operator is a separate VPLMN, all roaming signalling flows through the SEPPs.TS 33.501 §13.2 · TS 29.573
CHF — Charging Function
Converged online + offline charging. The SMF reports usage and requests quota via Nchf_ConvergedCharging Create/Update/Release. NTN: differentiated satellite tariffs and per-slice quota for the NTN S-NSSAI.TS 32.290 · TS 32.291
LMF — Location Mgmt Function
Computes UE position: Nlmf_Location_DetermineLocation, NRPPa toward NG-RAN, LPP toward the UE. NTN: the anchor of network-verified UE location (Rel-18) — proving which country a satellite UE is in without trusting its GNSS report.TS 23.273
UDSF — Unstructured Data Storage
Any NF parks opaque, vendor-specific state here (Nudsf) — the mechanism that makes instances truly stateless. NTN: constellation-scale resilience — a re-homed session picks its context up instantly.TS 23.501 · TS 29.598
BSF — Binding Support Function
Records which PCF holds each PDU session (Nbsf_Management), so an AF or NEF request lands on the right policy instance. NTN: keeps policy continuity when satellite sessions re-anchor.TS 29.521
5G-EIR — Equipment Identity
The AMF checks the PEI (IMEI) against block-lists via N5g-eir_EquipmentIdentityCheck_Get. NTN: stolen-device blocking works identically over the satellite — the check is a ground-side SBI call.TS 23.501 · TS 23.502
N3IWF — Non-3GPP Interworking
Terminates IKEv2/IPsec from UEs on untrusted non-3GPP access and presents standard N2/N3 to the core. NTN: a plain satellite broadband pipe can carry full 5GC access this way — 5G service over satellite without NR-NTN radio.TS 23.501 §4.2.8
The SBI wire format — what actually crosses the bus.
"REST over HTTP/2" is the slogan. Here is the engineering: how a service URI is built, which HTTP method does what, the 3GPP custom headers, and the exact JSON an NF sends the NRF to come alive.
#Anatomy of a service URI
Versioning (TS 29.501) — only the major version appears in the URI; the full apiFullVersion lives in the NF profile. Optional capabilities are negotiated per-request via the supportedFeatures attribute — a bitmask both sides intersect.
#HTTP methods → 5GC semantics
| Method | 5GC use | Real example |
|---|---|---|
| GET | Read a resource / query with filters | GET /nnrf-disc/v1/nf-instances?target-nf-type=SMF |
| PUT | Create or fully replace, client picks the ID | PUT /nnrf-nfm/v1/nf-instances/{nfInstanceId} — NFRegister |
| PATCH | Partial update (JSON Patch / Merge Patch) | NRF heart-beat: PATCH refreshing nfStatus + load |
| POST | Create child resource · custom operations · notifications | POST …/ue-contexts/{id}/n1-n2-messages — Namf_Communication |
| DELETE | Release a resource | NFDeregister · SM-context release |
#Two interaction patterns
Consumer calls a producer resource and blocks on the answer. Errors come back as application/problem+json — a ProblemDetails object whose 3GPP cause string (e.g. DNN_NOT_SUPPORTED) is what you grep in traces.
- One HTTP/2 stream per transaction
- Idempotency via PUT + client-chosen IDs
- Status codes carry 3GPP meaning (403 + cause)
Consumer POSTs a subscription containing a callbackUri; when the event fires, the producer turns HTTP client and POSTs the notification to that URI — roles reverse. The 3gpp-Sbi-Callback header tells proxies what it is.
- Powers every EventExposure service
- Callbacks must traverse SCP/SEPP correctly
- Subscriptions expire — renew or they vanish
#The 3GPP custom headers (TS 29.500 §5.2.3)
| Header | What it does |
|---|---|
3gpp-Sbi-Message-Priority | Per-message priority (0–31) so overloaded NFs shed low-priority work first |
3gpp-Sbi-Target-apiRoot | Tells the SCP which producer the request is really for (indirect communication) |
3gpp-Sbi-Binding / Routing-Binding | Binding indications — keep related requests on the same NF (service) instance or set |
3gpp-Sbi-Producer-Id | Which producer instance actually served the request via the SCP |
3gpp-Sbi-Callback | Marks a notification callback so proxies route it as such |
3gpp-Sbi-Oci · 3gpp-Sbi-Lci | Overload / Load Control Information piggybacked on normal responses — the core's back-pressure |
#Birth of an NF — the NRF lifecycle, on the wire
This is the JSON that makes an SMF discoverable. Register with PUT, prove liveness with a heart-beat PATCH every heartBeatTimer seconds (the NRF grants the value in its 201 response), miss it and the NRF marks you SUSPENDED — you drop out of discovery results until you recover.
{
"nfInstanceId": "8f2b0a76-3f4d-4e21-9a01-c4fe6e9d2b11",
"nfType": "SMF",
"nfStatus": "REGISTERED", // REGISTERED | SUSPENDED | UNDISCOVERABLE
"heartBeatTimer": 60,
"plmnList": [{ "mcc": "999", "mnc": "01" }],
"sNssais": [{ "sst": 1, "sd": "0A1B2C" }], // which slices I serve
"fqdn": "smf1.5gc.mnc001.mcc999.3gppnetwork.org",
"ipv4Addresses": ["10.60.0.11"],
"priority": 1, "capacity": 100, "load": 12,
"locality": "ground-dc-east", // NTN: gateway-site affinity lives here
"nfServices": [{
"serviceInstanceId": "nsmf-pdusession-1",
"serviceName": "nsmf-pdusession",
"versions": [{ "apiVersionInUri": "v1", "apiFullVersion": "1.0.3" }],
"scheme": "https",
"ipEndPoints": [{ "ipv4Address": "10.60.0.11", "port": 8443 }],
"allowedNfTypes": ["AMF"]
}]
}
GET /nnrf-disc/v1/nf-instances?target-nf-type=SMF&requester-nf-type=AMF &snssais=[{"sst":1,"sd":"0A1B2C"}]&dnn=internet Authorization: Bearer eyJhbGciOiJFUzI1NiIs… // OAuth2 token issued by the NRF itself 200 OK → { "nfInstances": [ …matching profiles, ranked by priority/capacity/load… ] }
Zero-trust between functions.
SBA assumes the core network is a hostile place. Three mechanisms stack up inside the PLMN — and a fourth guards the border when signalling roams.
Mutual TLS on every hop
TLS protects every SBI connection unless the operator provides equivalent network security by other means (TS 33.501 §13.1). Both sides present certificates — no anonymous callers on the bus.
OAuth 2.0 per service pair
The NRF is the authorization server: client-credentials grant, JWT access token signed by the NRF. Claims: iss (NRF) · sub (consumer instance) · aud (producer) · scope (service names) · exp. The producer just verifies the signature.
CCA — prove who's asking
Rel-16 Client Credentials Assertion: the consumer signs its own identity assertion so the NRF/producer can verify which NF instance is really calling — stops a compromised box impersonating an AMF (TS 33.501 §13.3.8).
#Roaming — the SEPP and N32
Inter-PLMN signalling never flows NF-to-NF. Each operator's SEPP terminates the border: N32-c (TLS) negotiates the relationship, then N32-f carries the messages — over TLS, or over PRINS when an IPX in the middle must read or modify specific IEs under cryptographic control. NTN angle: a satellite operator running its own PLMN is exactly this — every Nudm/Nausf call from the satellite core to your home core crosses the SEPPs.
And the subscriber? — the SUPI never crosses the air in clear. The UE sends a SUCI, ECIES-encrypted with the home network's public key; only the UDM/SIDF can de-conceal it. Works identically over a satellite link — privacy is end-to-end to the home core (TS 33.501 Annex C).
Communication models A–D — and staying alive at scale.
TS 23.501 Annex E defines four ways a consumer reaches a producer, along two axes: direct vs indirect (is an SCP in the path?) and who performs NRF discovery.
Producers are locally configured; no discovery at all. Consumer → Producer.
- Lab cores, tiny private 5G, fixed topologies
- Zero discovery latency, zero flexibility
Consumer queries the NRF, picks a producer itself, calls it directly.
- Consumer → NRF → Consumer → Producer
- Fewest hops; every NF carries routing logic
Consumer still talks to the NRF, but sends the request through the SCP with 3gpp-Sbi-Target-apiRoot; the SCP may reselect within the target set.
- Central retries, canary rollout, overload control
- Producer topology partially hidden
Consumer sends only discovery factors (NF type, S-NSSAI, DNN…); the SCP queries the NRF and routes. Consumers are thinnest.
- Consumer → SCP (→ NRF) → Producer
- The service-mesh model most large cores deploy
#NF Sets — how the core survives losing an instance
Rel-16 formalized resilience: interchangeable NF instances form an NF Set (equivalent services, shared access to context); services within an instance form NF Service Sets. A consumer's binding indication (3gpp-Sbi-Binding) says "keep my transactions on this instance/set" — and when an instance dies, the consumer or SCP reselects inside the set and the new instance picks the context up from the UDSF/UDR. The UE never notices (TS 23.501 §5.21.3).
GUAMI = PLMN + those 24 bits (TS 23.003 §2.10). It's embedded in the 5G-GUTI, which is how a gNB routes a returning UE straight back to the right AMF — or, if that AMF is gone, to any member of its Set. For an NTN constellation this is the mechanism that lets mobility survive a gateway failover without re-registration.
Two call flows you must know cold.
Everything above becomes concrete here. Step through Registration and PDU Session Establishment message by message — every SBI operation named exactly as in TS 23.502. Then flip the orbit toggle: each message that crosses the satellite air path gets priced with TR 38.821 one-way delays, and the counter shows what the whole procedure costs on LEO vs GEO.
How the pricing works — first-order model: each NAS/RRC message crossing the service(+feeder) path costs one one-way trip ≈ RTT/2. TR 38.821 transparent-payload RTTs: LEO-600 = 25.77 ms · GEO = 541.46 ms. Ground-side SBI hops are counted as ≈0 by comparison. Registration makes 9 air crossings — ≈ 2.4 s of pure propagation on GEO before the UE is even registered. That, in one number, is why NTN system design obsesses over signalling reduction.
QoS: flows, 5QIs — and the orbit reality check.
5G QoS is flow-based: the finest unit is the QoS flow, tagged by a QFI that rides the GTP-U extension header on N3. A 5QI is just a pointer into a standardized table of characteristics — resource type, priority, Packet Delay Budget, Packet Error Rate, averaging window, burst volume. The PDB is where satellite physics collides with the spec.
GBR vs non-GBR vs delay-critical
GBR flows get admission control + a guaranteed rate (GFBR/MFBR). Non-GBR is best-effort within its 5QI class. Delay-critical GBR (5QI 82-85) adds the MDBV burst limit — miss the PDB and the packet counts as lost.
ARP — who survives congestion
Allocation & Retention Priority (1-15) decides admission, pre-emption capability and vulnerability — orthogonal to the 5QI. A satellite cell in overload drops ARP-15 flows first, regardless of their 5QI.
Reflective QoS — RQA
The UE mirrors downlink QoS to uplink without any signalling: it observes the QFI+RQI marking on DL packets and derives the UL rule itself. Over NTN this saves precious signalling round-trips.
#The standardized 5QI table vs the orbits
Select an orbit: each 5QI's PDB (TS 23.501 Table 5.7.4-1) is checked against the one-way air delay (≈ RTT/2, TR 38.821 transparent payload). This is the first-order feasibility check every NTN service designer runs.
| 5QI | Type | Priority | PDB | PER | Example service | This orbit |
|---|---|---|---|---|---|---|
| 1 | GBR | 20 | 100 ms | 10⁻² | Conversational voice | |
| 2 | GBR | 40 | 150 ms | 10⁻³ | Conversational video | |
| 3 | GBR | 30 | 50 ms | 10⁻³ | Real-time gaming · V2X | |
| 4 | GBR | 50 | 300 ms | 10⁻⁶ | Non-conversational video | |
| 65 | GBR | 7 | 75 ms | 10⁻² | Mission-critical PTT voice | |
| 5 | non-GBR | 10 | 100 ms | 10⁻⁶ | IMS signalling | |
| 6 | non-GBR | 60 | 300 ms | 10⁻⁶ | Buffered streaming · TCP | |
| 7 | non-GBR | 70 | 100 ms | 10⁻³ | Voice, video, interactive gaming | |
| 9 | non-GBR | 90 | 300 ms | 10⁻⁶ | Default bearer · internet | |
| 82 | DC-GBR | 19 | 10 ms | 10⁻⁴ | Discrete automation | |
| 84 | DC-GBR | 24 | 30 ms | 10⁻⁵ | Intelligent transport systems | |
| 85 | DC-GBR | 21 | 5 ms | 10⁻⁵ | Electricity distribution — HV |
Read the GEO column and you understand NTN service strategy instantly — voice (100 ms PDB) cannot meet spec over transparent GEO (270.7 ms one-way); buffered video and default internet (300 ms) barely fit; anything delay-critical is terrestrial-only. This is why GEO sells broadband + IoT, while conversational services need LEO — or a regenerative payload that removes the feeder leg.
One core, many logical networks.
A network slice is identified by an S-NSSAI = SST + SD. The NSSF selects the slice(s) and the AMF Set for each UE, so a dedicated satellite slice can run beside terrestrial eMBB / URLLC on the very same core.
| SST | Standardised slice | Where it fits |
|---|---|---|
| 1 | eMBB — enhanced Mobile Broadband | Direct-to-device broadband gap-fill over NTN (partial) |
| 2 | URLLC — ultra-reliable low-latency | Terrestrial only — the 1 ms budget can't survive satellite RTT |
| 3 | mMTC / MIoT — massive IoT | The strong NTN fit — delay-tolerant, store-and-forward (IoT-NTN) |
| 4 | V2X — vehicle-to-everything | Automotive; NTN as coverage backstop |
| 5 | HMTC — high-perf. machine-type Rel-17 | Industrial automation |
TN ↔ NTN slice continuity — a dedicated S-NSSAI can be provisioned for satellite access, and the URSP rules the PCF pushes to the UE steer each application between the terrestrial and non-terrestrial slice as coverage changes. Bit layout & SST values: TS 23.003 §28.4, TS 23.501 §5.15.2.
The NTN SBA architecture — end to end.
Now assemble everything into one picture: UE → service link → satellite → feeder link → gateway → gNB → N2/N3 → the SBA bus → N6 → internet. Because SBA decouples every function, you lift only the latency-sensitive pieces into space — the gNB (regenerative, Rel-19) and optionally the UPF — while the control plane and data repositories stay on the ground. Trace the two planes below, then flip payload types in the interactive explorer.
#The TR 38.821 architecture options
① Transparent
Satellite = bent-pipe RF relay. gNB + full core on the ground. Every user packet crosses the feeder twice. The Rel-17 normative baseline — what Sateliot and the first NR-NTN services fly.
Rel-17 · normative
② Regenerative — full gNB
The gNB rides the satellite: Uu terminates in space, the feeder carries NG (N2/N3) as transport. Better link budget, enables ISL routing between satellites.
Rel-19 work item
③ Regenerative — gNB-DU
Only the DU flies; the CU stays grounded and F1 crosses the feeder. Splits the timing-critical L1/L2 from the RRC anchor — studied in TR 38.821 as the intermediate option.
TR 38.821 · study
④ gNB + UPF onboard
Add CUPS: the UPF flies too. Local breakout + store-and-forward — user traffic need not touch the feeder at all; only N2 signalling (and N4 heartbeats) do.
Rel-19 · IoT S&F
#What each hop means for the SBA
| NTN reality | SBA consequence |
|---|---|
| Transparent payload | SBI never touches space. N2/N3 ride the feeder as plain transport — the core doesn't even know there's a satellite (until QoS asks). |
| Onboard gNB | NGAP (N2) now crosses the feeder: NGAP timers & retransmissions must tolerate the RTT; AMF sees one gNB whose transport latency varies with orbit position. |
| Onboard UPF | N4/PFCP crosses the feeder — heartbeat and session timers need satellite-grade settings; the SMF selects the onboard UPF by DNAI/locality from the NRF profile. |
| Feeder-link switchover | Gateway change re-homes NG transport. NF Sets + binding indications (§Models) are what make this survivable without mass re-registration. |
| Moving cells (LEO) | Earth-fixed vs earth-moving tracking areas; Rel-17 lets one cell broadcast multiple TACs. The AMF's registration-area logic absorbs the sweep. |
| Discontinuous coverage | Sparse constellations = scheduled contact windows. NEF exposes coverage windows to AFs; extended NAS timers (T3512) and IoT-NTN store-and-forward (Rel-19) bridge the gaps. |
| Satellite backhaul | Rel-17 dynamic CN PDB: the SMF/PCF learn the backhaul category (GEO/MEO/LEO) and adjust the CN portion of the packet delay budget accordingly. |
#Fly it yourself — payload explorer
| Function | Where it lives | Why |
|---|---|---|
| gNB | can go onboard | Regenerative payload runs the full gNB on the satellite (Rel-19) — the radio must be at the edge |
| UPF | can go onboard | CUPS lets the user plane sit onboard or at the gateway for local breakout & store-and-forward |
| AMF · SMF | stays on ground | Signalling is RTT-tolerant; keeps mobility & session control centralised across the constellation |
| AUSF · UDM · UDR | stays on ground | Credentials & the subscriber system-of-record — the security anchor stays in the trusted core |
| NRF · NSSF · PCF · NEF · NWDAF | stays on ground | Registry, slice selection, policy, exposure & analytics — orchestration for the whole network |
Sources & specifications
- TS 23.501 — 5G System architecture · §4.2 SBA, §5.7 QoS, §5.15 slicing, §5.21 NF Sets, §6.2 NFs, Annex E models A–D
- TS 23.502 — procedures · §4.2.2.2.2 Registration, §4.3.2.2.1 PDU Session Establishment
- TS 23.503 — policy & charging control framework (PCF, URSP)
- TS 29.500 — SBI technical realization: HTTP/2, custom headers, OCI/LCI
- TS 29.501 — API design principles: URIs, versioning, supportedFeatures
- TS 29.510 — NRF services: NFProfile, NFManagement, NFDiscovery, AccessToken
- TS 29.244 — PFCP on N4 (PDR / FAR / QER / URR)
- TS 29.573 — N32 & PRINS between SEPPs
- TS 33.501 — 5G security: §13.1 TLS, §13.2 SEPP, §13.3.8 CCA, §13.4.1 OAuth2, Annex C SUCI
- TS 32.290 / 32.291 — CHF converged charging
- TS 23.273 — LMF & 5G location services
- TS 23.288 — NWDAF analytics architecture
- TS 23.003 — identifiers: §2.10 GUAMI, §28.4 S-NSSAI
- TR 29.891 — the study that chose HTTP/2 + JSON
- TR 38.821 — NTN architecture options, RTT budgets, onboard gNB / UPF
- TS 24.501 — NAS: registration, T3512, 5G-GUTI
Prove it — twelve questions, spec-cited.
Question order and answer order reshuffle on every load. Each answer explains itself with the exact clause.
Dive into each part of the core.
This page is the whole-core overview. Each concept below opens its own animated deep-dive.
Service-Based Architecture ›
HTTP/2 + REST/JSON, the SBI bus, NRF registration & NF discovery.
Key NFs & NTN relevance ›
AMF · SMF · UPF · AUSF · UDM · NRF · PCF · NSSF · NEF — one line each on the satellite question.
UPF placement ›
Central, edge and (Rel-19) onboard — the one NF that can ride the satellite.
Network slicing ›
S-NSSAI · SST · SD for TN/NTN slice continuity.