The 5G Radio
Access Network
How to read this book. Each chapter opens with what you should be able to do by the end of it, then builds the idea from the problem it solves — not from the acronym. Diagrams carry the structure; the prose carries the why. Deep-dive boxes go below the surface; Pitfall boxes flag the misconceptions that catch engineers and interviewers; Key takeaways compress each section to what you must retain. A note on sources: 3GPP separates a TR (Technical Report — study, may not be normative) from a TS (Technical Specification — the binding standard). Where a number or behaviour is cited, the governing TS is named.
What is a Radio Access Network?
Before any box has a name, there is a problem: how do you give millions of moving devices a reliable connection over a shared, hostile, finite slice of radio spectrum? The RAN is the answer to that question — and everything in 5G follows from it.
- Explain the four-block decomposition of any mobile network and why the RAN/Core boundary exists.
- Describe the radio problem — interference, fading, mobility, scarcity — that the RAN is engineered to defeat.
- Define cell, sector, frequency reuse and handover, and distinguish the handover families.
- Trace the base station from NodeB to gNodeB and name what changed in each generation.
1.1 · The mobile network as four blocks
Every cellular system ever built — AMPS, GSM, UMTS, LTE, NR — decomposes into the same four functional blocks in series: the
Notice where the wireless link sits. The device speaks to the RAN, and only to the RAN, across the air interface called Uu. From the base station inward, every link is fibre or structured cable. This single fact shapes the entire design: the air is the scarce, unreliable, shared resource, so the cleverest engineering in the whole system is concentrated at the radio edge. The core, by contrast, is essentially a very specialised set of routers and databases running in a data centre.
The boundary is also a standards boundary. 3GPP specifies the RAN and the core as separate work areas with separate, well-defined interfaces between them. In 5G that interface is NG (LTE called it S1). Because the interface is open and standardised, an operator can in principle place a vendor-A radio in front of a vendor-B core. The same logic, pushed harder, becomes the O-RAN movement we meet in Chapter 2.
- Four blocks: UE → RAN → Core → DN, a separation of concerns, not a wiring diagram.
- The RAN owns the radio problem; the core owns identity, mobility and routing.
- Only Uu is wireless — so the hardest engineering lives at the radio edge.
1.2 · The radio problem — why the RAN is hard
To understand why the RAN is structured the way it is, you have to feel the problem it is solving. The radio channel is hostile in four distinct ways, and almost every feature in the stack exists to beat one of them.
1.2.1 · It is shared
Unlike a fibre, where each user gets a dedicated strand, the air is a single broadcast medium. Every transmission is potentially heard by — and interferes with — every receiver in range. If two devices transmit on the same frequency at the same time and place, their signals collide and both are lost. The RAN must therefore schedule access: decide who transmits, when, on what frequency, at what power, so that allocations never overlap. This is why the MAC scheduler (Chapter 4) is the single most important real-time function in the network — it is the traffic controller for a medium everyone wants at once.
1.2.2 · It is finite
Usable spectrum is a regulated, auctioned, scarce resource. An operator might hold 100 MHz at 3.5 GHz and pay billions for it — and that bandwidth is fixed. So the entire game is
1.2.3 · It fades
A radio wave reaches the receiver by many paths — direct, reflected off buildings, diffracted around edges. These copies arrive with different delays and phases and add up constructively or destructively, so the received power can swing by tens of decibels over the distance of a few centimetres or a few milliseconds. Worse, the cancellation is
1.2.4 · It moves
The device is mobile, and motion attacks the link three ways at once. Its serving cell weakens as it travels while neighbours strengthen, forcing a handover decision. Its Doppler shift changes — motion toward or away from the gNB shifts the received frequency by ±fD, which the receiver must track. And its propagation delay drifts as the distance changes, so the uplink arrival time slips — corrected continuously by
Older systems fought multipath with complex equalisers. 5G NR, like LTE, instead uses OFDM: it divides the wideband channel into many narrow subcarriers, each so narrow that the frequency-selective channel (§1.2.3) looks flat across it. A hard-to-equalise wideband channel becomes a parallel set of easy, flat per-subcarrier channels, each correctable with a single complex multiply. The price is sensitivity to frequency offset and a high peak-to-average power ratio, which is why the uplink can optionally use DFT-spread-OFDM. We return to numerology and the waveform in §4.6.
- The channel is shared, finite, fading and mobile — four problems, not one.
- Shared → the scheduler; finite → spectral efficiency (modulation/coding/MIMO under Shannon); fading → OFDM + link adaptation + HARQ; mobile → measurement, handover, Doppler tracking, timing advance.
- Almost every feature in the stack exists to beat one of these four.
1.3 · Cells, sectors, reuse and handover
The cellular idea is to defeat scarcity by reusing the same spectrum in space. Rather than one giant transmitter covering a city, the area is tiled with many small coverage zones —
A real site rarely radiates a single omnidirectional cell. Instead it is
Because cells overlap, a moving device is constantly choosing. The network configures it to measure the serving cell and its neighbours (using their reference signals — in NR, the SSB), and to report when a configured condition is met. The canonical condition is Event A3: "a neighbour has become better than my serving cell by an offset, for longer than a time-to-trigger." When that fires, the network executes a
| Handover type | What moves | Notes |
|---|---|---|
| Intra-gNB (intra-DU) | Cell within one DU | Lightest; no core signalling |
| Intra-gNB inter-DU | Cell across DUs of one CU | F1 reconfiguration, PDCP anchored in CU |
| Xn handover | Between gNBs directly | Source→target over Xn, core path switched after |
| NG handover | Between gNBs via core | Used when no Xn exists; AMF relays |
"5G handover is soft like 3G." It is not. WCDMA used soft handover (the UE talks to several cells at once via the same waveform). NR uses hard handover at the cell level; the seamlessness comes from PDCP buffering and, optionally, dual connectivity — not from soft combining across cells.
1.4 · The base station through the generations
The base station is renamed every generation, but the rename always hides a structural shift. In 3G the radio was a
| Gen | Radio node | Core | Defining radio trait |
|---|---|---|---|
| 3G UMTS | NodeB (+ RNC) | PS/CS core | WCDMA, soft handover |
| 4G LTE | eNodeB | EPC | OFDMA, 15 kHz SCS, flat all-IP |
| 5G NR | gNodeB (CU/DU/RU) | 5G Core | Scalable numerology, beams, slicing |
Architecture & the gNodeB
The headline of 5G is not a faster modem. It is an architecture: the base station is taken apart into cooperating units, and the core is rebuilt as software services. This chapter is about the radio half of that revolution — the disaggregated gNodeB.
- Argue why the industry disaggregated the base station — the technical and commercial drivers.
- Assign every protocol layer to the CU, DU or RU and justify the placement.
- Explain the functional-split trade-off and why 3GPP chose Option 2 and O-RAN chose 7-2x.
- Read the fronthaul/midhaul/backhaul timing budget and the F1/E1/Xn/NG interface map.
- Compare NSA and SA, place the MR-DC option family, and explain EN-DC.
- Describe beam-based coverage and the D-RAN→C-RAN→Cloud-RAN→O-RAN spectrum.
2.1 · Why disaggregate at all?
An LTE eNodeB is a single, sealed box at the cell site holding the entire radio stack. It works, so why break it apart? The answer is a stack of pressures that all point the same way. Centralisation gains: if you pull the baseband of many sites into one location, those basebands can cooperate — coordinate interference, share processing pools, perform joint reception — in ways physically separated boxes cannot. Deployment economics: compute is cheaper and easier to cool, secure and upgrade in an edge data centre than in a thousand roadside cabinets. Transport flexibility: different operators have different fibre realities, so the standard must allow the radio to sit close to the antenna while the heavier processing sits wherever fibre and latency allow. And vendor diversity: if the split points are open interfaces, an operator can mix a radio unit from one supplier with a baseband from another — breaking the historic single-vendor lock on each site. This last pressure is the engine behind O-RAN.
Disaggregation is the enabler for running RAN functions as virtualised software on general-purpose servers (vRAN/Cloud-RAN). The CU is the easiest to virtualise — it handles packets at human timescales. The DU is harder, because the MAC scheduler and PHY operate on a hard sub-millisecond cadence and increasingly need hardware acceleration (in-line or look-aside) for the LDPC/FFT workload. The RU stays purpose-built hardware because it is, fundamentally, radio. So "Cloud-RAN" in practice means a cloud CU, a partly-accelerated DU, and a hardware RU.
2.2 · One box becomes three — CU, DU, RU
2.2.1 · The principle — split by timescale
The gNodeB is split into three logical units. The split is not arbitrary; it follows the natural timescales of the protocol stack. Layers that work at packet timescales and benefit from centralisation go up into the
2.2.2 · The CU — and its CU-CP / CU-UP split
The CU (Central Unit) hosts RRC, SDAP and PDCP — the layers that deal in radio bearers, security and packet ordering, all of which tolerate a few milliseconds of transport latency and gain from being centralised across many cells. The CU is itself split again, along the control/user line, into two further units. The RRC and the signalling part of PDCP — and terminates N2 (NGAP) up to the AMF. The SDAP and the data part of PDCP — and terminates N3 (GTP-U) up to the UPF. The two are joined by the E1 interface (E1AP, control-plane only): the CU-CP configures the CU-UP over E1, telling it which bearers to set up and how. Below the CU, the F1 interface itself splits to match — F1-C from the CU-CP and F1-U from the CU-UP, both reaching the DU.
Why bother splitting the CU? Because control and user planes scale differently. Signalling load (registrations, handovers) and traffic load (throughput) rarely move together, so separating them lets an operator scale CU-UP instances for capacity independently of CU-CP instances for signalling. It also lets the CU-UP be pushed closer to the edge — even co-located with a local UPF for local breakout / MEC, cutting the round-trip for low-latency apps — while the CU-CP stays central where coordination is easiest.
2.2.3 · The DU — and the 1 : N : M topology
The DU (Distributed Unit) hosts RLC, MAC and the
2.2.4 · The RU
The RU (Radio Unit) holds the
2.2.5 · Where each unit lives
Putting it together, each unit has a characteristic set of layers, a place in the network, a latency budget to the radio, and a hardware style. In O-RAN terminology the three become the O-CU (itself O-CU-CP + O-CU-UP), O-DU and O-RU, and both the O-CU and O-DU can expose an E2 interface to the Near-RT RIC for programmable control.
| Unit | Layers | Sits | Latency to radio | Hardware | O-RAN |
|---|---|---|---|---|---|
| CU | RRC, SDAP, PDCP | Edge / regional DC | ~ milliseconds (midhaul) | COTS server (vRAN) | O-CU-CP / O-CU-UP |
| DU | RLC, MAC, High-PHY | Cell site or C-RAN hub | ~ 100 µs (fronthaul) | Server + accelerator | O-DU |
| RU | Low-PHY, RF | At the antenna | — (is the radio) | Purpose-built | O-RU |
- Split by timescale: packet-time → CU, slot-time → DU, radio → RU. Closer to the air ⇒ tighter deadline ⇒ closer to the antenna.
- CU = RRC/SDAP/PDCP; splits into CU-CP (N2, RRC/PDCP-C) + CU-UP (N3, SDAP/PDCP-U) over control-only E1; F1 → F1-C + F1-U.
- DU = RLC/MAC/High-PHY at the site; topology is 1 CU : N DU : M cell.
- RU = Low-PHY + RF at the antenna — the boundary that stays purpose-built hardware.
- O-RAN names: O-CU(-CP/-UP), O-DU, O-RU; O-CU/O-DU can speak
E2to the Near-RT RIC.
2.3 · Functional splits — the central trade-off
2.3.1 · The eight candidate split points
Where exactly should you cut the stack? 3GPP's study (TR 38.801) catalogued eight candidate split points, numbered from Option 1 (the highest, just below RRC) down to Option 8 (between PHY and RF). Each option is a different bargain between two opposing forces. Split high (e.g. Option 2, between PDCP and RLC) and the interface carries ordinary packets — modest, bursty bandwidth, relaxed latency, cheap transport — but you lose the chance to coordinate the lower layers across sites. Split low (e.g. Option 7 or 8, inside or below the PHY) and you can centralise almost everything and do tight inter-cell coordination — but the interface must now carry a torrent of near-raw signal samples at constant multi-gigabit rates with microsecond timing. There is no free lunch; the split point is the trade-off.
| Split | Cut point | Interface bandwidth | Latency budget | Coordination gain |
|---|---|---|---|---|
| Opt 2 | PDCP / RLC | ≈ user rate (bursty) | milliseconds | low — packets only |
| Opt 6 | MAC / PHY | moderate, bursty | ~hundreds of µs | medium |
| Opt 7-2x | inside PHY | ~10× the user rate, constant | ~100 µs | high — joint PHY |
| Opt 8 | PHY / RF (CPRI) | ~100× the user rate, constant | tens of µs | maximal — but unaffordable |
2.3.2 · The two cuts the industry chose
The industry settled on two cuts, not one. 3GPP standardised the higher-layer split, Option 2 (PDCP/RLC) as the CU↔DU boundary, carried by the F1 interface. It is packet-friendly and bandwidth-light, making it deployable over almost any transport. Separately, the O-RAN Alliance standardised a lower-layer split, 7-2x, inside the physical layer, as the DU↔RU fronthaul boundary, carried by
"The functional split" is ambiguous — there are two. Option 2 is the 3GPP CU/DU split (PDCP/RLC) and produces F1. 7-2x is the O-RAN DU/RU fronthaul split (inside PHY) and produces eCPRI fronthaul. Different standards bodies, different layers, different interfaces.
2.3.3 · Inside 7-2x — Category A vs B, and why centralise at all
The 7-2x split itself has two flavours, defined by O-RAN by where the precoding (beamforming weight application) happens. In
Why centralise the lower layers at all, given the fronthaul pain? Because a centralised baseband can do things separate boxes cannot. When many cells' DUs sit in one pool, they can perform
- Eight candidate splits (TR 38.801); higher = cheaper transport, less coordination; lower = huge constant-rate fronthaul, full centralisation.
- 5G uses two cuts: Option 2 (PDCP/RLC → F1, packet-friendly) and O-RAN 7-2x (inside PHY → eCPRI fronthaul, open multi-vendor).
- 7-2x has Category A (precode in DU) and Category B (precode in RU — less fronthaul, smarter RU).
- Centralisation buys CoMP, interference coordination and compute pooling — the reason to suffer the fronthaul.
2.4 · Transport tiers and the tyranny of fronthaul
2.4.1 · Three tiers, three budgets
Disaggregation creates three transport segments, and they could not be more different in their demands. The decisive constraint is the fronthaul.
Fronthaul exists because the High-PHY (DU) and Low-PHY (RU) are two halves of one tightly-coupled physical layer that must stay frame-synchronous. Midhaul (F1, Option 2) carries ordinary packets at millisecond latency, and backhaul (NG) is relaxed at tens of milliseconds. Get the fronthaul timing wrong and the cell simply does not work; get the backhaul slightly slow and you only lose a little throughput.
2.4.2 · The fronthaul bandwidth problem — CPRI vs eCPRI
The reason the fronthaul split point matters so much is bandwidth. The old
| CPRI (Option 8) | eCPRI (7-2x) | |
|---|---|---|
| What's carried | Raw I/Q antenna samples | Frequency-domain symbols / layers |
| Bandwidth scales with | antenna elements (constant) | layers / users (lower) |
| Transport | Dedicated, constant-bit-rate | Packetised over Ethernet |
| Massive-MIMO friendly | No — firehose | Yes — ~10× less |
| Multi-vendor | Effectively no | Yes (open spec) |
2.4.3 · Synchronisation — the timing budget
Fronthaul's hardest demand is not bandwidth but timing. For TDD to work, every RU must agree on where the uplink/downlink boundary is to within a fraction of a microsecond; for beamforming and MIMO across antennas to combine correctly, their phases must align. So the network distributes precise
2.4.4 · The interfaces
| Interface | Connects | Control protocol | User-plane |
|---|---|---|---|
F1 | CU ↔ DU | F1AP / SCTP | GTP-U (F1-U) |
E1 | CU-CP ↔ CU-UP | E1AP / SCTP | — (control only) |
Xn | gNB ↔ gNB | XnAP / SCTP | GTP-U (Xn-U) |
NG | gNB ↔ 5GC | NGAP / SCTP (N2) | GTP-U (N3) |
Uu | UE ↔ gNB | RRC | SDAP/PDCP…PHY |
2.5 · Deployment — NSA, SA and the option family
2.5.1 · Why there is an option family
Standardising a new radio and a new core at once is risky and slow, so 3GPP defined a family of
2.5.2 · NSA and SA
NSA (Non-Standalone), Option 3x was the industry's fast on-ramp. It reuses the existing LTE eNodeB and EPC, and bolts a 5G gNodeB on as a secondary node. The LTE eNodeB is the
SA (Standalone), Option 2 is the destination. The gNodeB connects directly to the 5G Core with no LTE in the path. Only SA unlocks the full 5G feature set — network slicing, URLLC, the service-based architecture, RRC_INACTIVE.
2.5.3 · The MR-DC family
EN-DC is one member of a broader family,
| Config | Master | Secondary | Core | Option |
|---|---|---|---|---|
| EN-DC | LTE eNB | NR gNB | EPC | 3 (NSA) |
| NGEN-DC | LTE ng-eNB | NR gNB | 5GC | 7 |
| NE-DC | NR gNB | LTE ng-eNB | 5GC | 4 |
| NR-DC | NR gNB | NR gNB | 5GC | (NR-NR) |
Only EN-DC uses the EPC; the other three are 5GC-anchored, which is why they appear later in most networks' migrations. NR-DC is special — both legs are NR, used to combine, say, an FR1 coverage layer with an FR2 capacity layer.
2.5.4 · Option 3 variants and bearer types
Within NSA Option 3, the sub-variant says where the user-plane bearer splits — and that placement decides which node bears the traffic-steering load. The bearer can split at the LTE eNB's PDCP (Option 3, but that demands an upgraded eNB), or the two legs can be entirely separate bearers to the EPC (Option 3a), or — most commonly — the bearer splits at the gNB's PDCP (Option 3x), letting the new 5G node anchor the split and offloading the legacy eNB. This is exactly the MCG/SCG/split-bearer model of dual connectivity:
2.5.5 · The migration path
Put together, the options describe a journey from 4G to full 5G. Most operators began at Option 1 (LTE on the EPC), bolted on 5G capacity via Option 3x (NSA, still EPC-anchored), and are now moving to Option 2 (SA, on the 5G Core) — with Options 4 and 7 as 5GC-anchored dual-connectivity steps along the way.
- NSA 3x: LTE master + EPC for control, NR secondary for capacity, joined by EN-DC. Fast, but no slicing/URLLC/SBA.
- SA 2: pure NR + 5G core — the only path to the full feature set.
- MR-DC family: EN-DC (EPC), NGEN-DC/NE-DC/NR-DC (5GC). Bearer types: MCG, SCG, split.
- Option 3 sub-variants (3/3a/3x) differ by where the split bearer is anchored; 3x anchors at the gNB.
- Migration: 1 → 3x → 2, with 4/7 as 5GC-anchored dual-connectivity steps.
2.6 · Beam-based coverage and massive MIMO
2.6.1 · Why beams — the link-budget problem
LTE cells broadcast their control and reference signals widely, like a floodlight. 5G NR, especially at higher frequencies, cannot afford to — radio path loss rises steeply with frequency, so a millimetre-wave signal spread evenly over a sector would simply not reach the cell edge. The fix is to stop spreading energy and start aiming it. A
2.6.2 · How a phased array steers a beam
The steering is pure wave physics, no moving parts. The array's elements are spaced about half a wavelength apart (d ≈ λ/2) and each is fed a copy of the same signal but with a progressively increasing Δφ across the elements, the network tilts the combined wavefront — and hence the main lobe — to any angle θ, given by Δφ = (2π·d/λ)·sin θ. More elements make the lobe both stronger (more gain) and narrower (sharper aim, less interference leaking elsewhere). This is
2.6.3 · Where the beamforming happens — analog, digital, hybrid
Phases can be applied at three different points in the chain, and the choice is the central cost/capability trade of the radio. In
2.6.4 · SU-MIMO, MU-MIMO and spatial multiplexing
Beamforming and MIMO are two uses of the same array.
2.6.5 · Beam management — P1, P2, P3 and recovery
A beam is useless if it points at where the user was. So the gNodeB and UE continuously pair and refine their beams through three procedures.
2.6.6 · FR1 versus FR2
Everything above is dialled differently in the two frequency ranges.
| FR1 (< 7.125 GHz) | FR2 (mmWave 24–71 GHz) | |
|---|---|---|
| Propagation | Good, wide cells | Poor, blockage-prone, short range |
| Array | 32T/64T, larger elements | Hundreds of tiny elements |
| Beamforming | Digital / hybrid | Analog / hybrid |
| Beam management | Helpful | Essential, frequent |
| Typical SCS | 15 / 30 kHz | 120 kHz |
Disaggregation gives a spectrum of physical deployments. D-RAN (Distributed RAN) keeps all units at the site — the traditional model. C-RAN (Centralised RAN) pulls basebands (DUs/CUs) into a hub serving many remote radios. Cloud-RAN runs those centralised functions as virtualised software on commodity servers. O-RAN adds open, standardised interfaces (notably the 7-2x fronthaul and the E2/A1 interfaces to the RIC) so the units can be multi-vendor and programmable. The
- Beams trade floodlight for spotlight: an N-element array gives ~N× gain (recovers path loss) and spatial reuse (capacity).
- Steering is a phase gradient across λ/2-spaced elements; more elements ⇒ more gain, narrower beam.
- Beamforming flavours: analog (1 beam, cheap), digital (many beams, costly), hybrid (FR2 default).
- MU-MIMO serves many users on one resource via separable beams — needs accurate channel (SRS/CSI).
- Beam management: P1 (SSB sweep) → P2 (gNB beam, CSI-RS) → P3 (UE beam); TCI states signal the beam; failure recovery is fast and RACH-based.
- FR2 depends on beamforming to survive; FR1 uses it to add capacity.
The Complete Architecture
Now we connect the disaggregated radio to the service-based core and watch a single connection come alive — registration, a session, a packet — through every function and reference point that makes 5G work end to end.
- Name the NG-RAN node types and the three directions every node connects in.
- Explain why the core became service-based, and how NFs discover and call each other.
- State the role of each network function and the reference point that carries it.
- Walk the registration and PDU-session-establishment flows at a block level.
- Describe the 5G QoS model — flows, QFI, 5QI — and how network slicing works.
3.1 · NG-RAN and its three directions
The radio access network in 5G is the
Up to the core, over the NG interface — and here is a subtlety that defines 5G: NG forks into two streams that go to different core functions. The control stream N2 (carrying NGAP signalling) terminates at the N3 (carrying GTP-U tunnelled data) terminates at the Uu. And sideways to neighbour NG-RAN nodes over Xn, used for handovers and dual connectivity without troubling the core.
3.2 · The 5G Core and the Service-Based Architecture
3.2.1 · From fixed boxes to software services
The LTE core (EPC) was a set of dedicated network elements wired together with fixed, point-to-point, protocol-specific interfaces (S11, S5/S8, S6a, each with its own protocol). Adding a feature often meant touching several of those rigid interfaces. The 5G core throws that model out and adopts a Namf, Nsmf, Nudm…) rather than after a pair of boxes.
N2 reaches the AMF; N4 lets the SMF program the UPF.This design buys three things that the EPC could not offer. Elasticity: each NF is a microservice that can be scaled out independently — spin up more AMF instances under signalling load without touching the user plane. Modularity: a new capability is a new service consumer, not a new rigid interface. Discovery without configuration: NFs do not need to be statically wired to each other. Instead every NF registers its
Only the N4 reference point using PFCP, the one place where a control function reaches down and configures the user plane. This is again CUPS — the SMF decides, the UPF forwards.
| NF | Role | Key reference / interface |
|---|---|---|
| AMF | Registration, connection & mobility management; terminates NAS-MM; the single point of contact for the RAN | N1 (UE), N2 (RAN) |
| SMF | PDU session lifecycle, IP address allocation, UPF selection & control, QoS & charging rules | N4 (UPF), SBI |
| UPF | Packet forwarding/routing, QoS enforcement, usage reporting, the PDU-session anchor | N3, N6, N9 |
| AUSF | Authentication server — runs 5G-AKA / EAP-AKA′ with the UE | SBI |
| UDM / UDR | Subscription data, key material & the data repository behind it | SBI |
| PCF | Policy & charging control — produces QoS and usage rules | SBI |
| NSSF | Network Slice Selection — chooses the slice instance for a UE | SBI |
| NRF | NF registration & discovery — the registry of the whole bus | SBI |
| NEF | Exposes selected core capabilities securely to outside applications | SBI / API |
3.2.2 · The service model — request/response and subscribe/notify
NFs do not just "call each other" loosely; they expose Nudm_SDM for subscriber data management, Namf_Communication, Nsmf_PDUSession). Two interaction patterns cover everything. In
3.2.3 · Discovery and security — the NRF handshake
Because nothing is statically wired, every interaction begins with discovery, and the
3.2.4 · Direct vs indirect communication — the SCP
Making every consumer discover, select, load-balance and retry against producers itself is a lot of duplicated logic. So 5G adds the
3.2.5 · Stateless NFs and the UDSF
The deepest cloud-native idea is to separate compute from state. NFs are designed to be N4 with PFCP, the one place a control function reaches down into the user plane (CUPS: the SMF decides, the UPF forwards).
- Control NFs expose versioned REST services on a shared bus (HTTP/2 + JSON), interacting by request-response and subscribe-notify.
- The NRF is registry and OAuth2 authority: register → discover → token → call over mutual TLS; SEPP guards roaming SBI.
- The SCP provides indirect communication (the core's service mesh); discovery/routing need not live in every NF.
- Stateless NFs + UDSF separate compute from state → elastic, self-healing, cloud-native. Only the UPF stays stateful on the data path.
3.3 · A connection coming alive — the two flows
The architecture is easiest to remember as two procedures. Registration attaches the device to the network; PDU session establishment opens its data pipe. Almost everything else is a variation on these.
Registration (attach)
The device sends a NAS Registration Request up over N1, relayed by the gNodeB into N2 to a chosen
PDU session establishment
To get data flowing, the device sends a NAS PDU Session Establishment Request, which the AMF routes to an appropriate N4 with the forwarding and QoS rules. The SMF returns, via the AMF, the information the gNodeB needs to set up the radio side; the gNodeB establishes the N3 GTP-U tunnel to the UPF. Now the path is complete: app → UE → (Uu, DRB) → gNB → (N3 tunnel) → UPF → (N6) → data network. The QoS flows that ride inside this session are what SDAP maps onto DRBs in Chapter 4.
- Registration = identify, authenticate, secure, locate. No data path yet.
- PDU session = IP, UPF, N4 rules, DRB + N3 tunnel. Now data flows.
- The AMF is the RAN's only core contact; the SMF/UPF pair owns the data path.
3.4 · Transport and the 5G QoS model
Two protocol towers carry everything across the interfaces. Signalling — NGAP, XnAP, F1AP, E1AP — rides
5G's quality-of-service model is finer-grained than LTE's. LTE's unit was the
3.5 · Network slicing
3.5.1 · What a slice actually is
Slicing is the feature that most justifies the whole service-based redesign. A
3.5.2 · Naming a slice — the S-NSSAI
A slice is identified by an
3.5.3 · Choosing a slice — selection at registration
Slice selection happens as the device registers. The UE includes a
3.5.4 · The NSSAI vocabulary
The word NSSAI appears with many qualifiers, and confusing them is a classic stumble. Each names a different list of slices at a different point in the lifecycle:
| Term | What it is · where it lives |
|---|---|
| Configured NSSAI | Slices provisioned in the UE for a PLMN (its starting knowledge) |
| Requested NSSAI | What the UE asks for at registration (from its Configured set) |
| Subscribed S-NSSAIs | What the subscription permits (in the UDM); one or more marked default |
| Allowed NSSAI | What the network grants for this registration area (from AMF/NSSF) |
| Rejected NSSAI | Requested slices that were refused (with a cause) |
| Default S-NSSAI | Used when the UE requests none, or none requested is allowed |
3.5.5 · Isolation — from soft to hard
"Isolated" is a dial, not a switch. How strongly two slices are separated is an engineering and commercial choice, traded against cost, and it can differ per domain. At the soft end, slices share everything and are merely prioritised differently. Tighten it and the RAN scheduler reserves PRBs per slice (RRM policy) so one slice's load cannot steal another's airtime. Tighter still, each slice gets a dedicated UPF (separate user-plane, separate breakout, even at the edge). Tighter again, dedicated control-plane NFs (its own SMF, PCF). At the hard end, a slice runs on physically separate infrastructure for a regulator or a critical-service tenant. The further right you go, the stronger the guarantee and the higher the cost — and note that the AMF and the network-wide NFs (NSSF, NRF) stay shared regardless; isolation lives mostly in the RAN scheduler and the SMF/UPF tier.
Finally, why is slicing an SA-only capability? Because everything above — the S-NSSAI in NAS signalling, NSSF-based selection, slice-aware NRF discovery, per-slice SMF/UPF — lives in the 5G Core's service-based machinery. NSA Option 3x runs on the EPC, which has none of it; so the migration to Standalone is, among other things, the migration that unlocks slicing.
No. A QoS flow (the QFI/5QI of Chapter 4) prioritises traffic within one network — it is a treatment applied to packets on a shared set of functions. A slice is a distinct logical network: potentially its own SMF, its own UPF, its own policies, its own administrative tenant and SLA, spanning RAN, transport and core. You can — and do — run several QoS flows inside a single slice. Slicing is an architecture dimension; QoS is a treatment dimension. They are orthogonal: a URLLC slice still uses 5QI values for its flows; a single eMBB slice still carries GBR and non-GBR flows. Conflating them is the most common slicing error.
- A slice is a logically-isolated end-to-end network (RAN + transport + core) over shared infrastructure.
- Named by S-NSSAI = SST (8b, what kind) + optional SD (24b, which instance); up to 8 per UE = an NSSAI.
- Selection: Requested → Allowed NSSAI via AMF + NSSF + UDM; per-slice SMF/UPF found by slice-aware NRF discovery. The AMF is shared, not per-slice.
- Isolation is a spectrum (shared → reserved PRBs → dedicated UPF → dedicated CP → separate infra), traded against cost.
- Slicing is SA-only; and a slice is not a QoS class — QoS flows run inside a slice.
The Protocol Stack
An IP packet enters at the top and a radio waveform leaves at the bottom. Six layers do the work — SDAP, PDCP, RLC, MAC, PHY, with RRC orchestrating all of them. This chapter takes each layer down to the bit field.
- Trace a packet down the stack and say exactly what each layer adds.
- Explain SDAP's QoS-flow-to-DRB mapping and reflective QoS.
- Describe PDCP security (the key hierarchy, ciphering, integrity, COUNT) and reordering/duplication.
- Distinguish the RLC modes and the AM ARQ mechanism.
- Explain the MAC scheduler, HARQ, LCP, BSR/SR, RACH and DRX.
- Lay out the NR physical layer — numerology, frame structure, channels, coding.
- Enumerate the RRC states and the procedures that move between them.
4.1 · The stack as a pipeline
The protocol stack is best understood as a pipeline where each layer adds exactly one capability and hands the result down. On transmit you read it top to bottom; on receive the same layers undo their work bottom to top. The user plane runs SDAP → PDCP → RLC → MAC → PHY; the control plane runs RRC → PDCP → RLC → MAC → PHY (RRC sits where SDAP would, since control signalling has no QoS flows to map). And spanning the side of the whole stack is
4.2 · SDAP — the QoS bridge
⚙ TS 37.324SDAP is new in NR and exists for one reason: to bridge the 5G core's fine-grained QoS-flow model (Chapter 3) onto the radio's bearer model. There is exactly one SDAP entity per PDU session, sitting at the very top of the user-plane stack. Its job is to take each downlink packet, recognise which
SDAP looks deceptively small — one octet of header, one job. But it is the precise seam where the core network's QoS world meets the radio's bearer world, and getting that seam right is what lets 5G honour a latency or reliability promise end to end. The rest of this section takes SDAP apart completely: the mapping hierarchy it lives in, its entity model, every function, the exact bit layout of its headers, its two PDU types, the downlink and uplink procedures, and the reflective-QoS machinery that makes it clever.
4.2.1 · Where SDAP sits — the three-stage QoS mapping
A user packet does not jump straight onto the air. It descends through three successive mappings, and SDAP owns the middle one. First, in the device's
Two boundaries are worth fixing in memory. The flow→DRB mapping is N:1 and dynamic — several flows can share a DRB and a flow can be re-pointed to a different DRB on the fly. The DRB→logical-channel mapping is 1:1 and static for the life of the bearer. So all the QoS flexibility on the radio side is concentrated in SDAP; everything below it is fixed plumbing.
4.2.2 · The entity model — one SDAP per PDU session
SDAP's structure follows the PDU session. When the device establishes a PDU session (§3.3), exactly one SDAP entity is created for it, and that entity owns all of the session's QoS flows and all of the DRBs those flows are mapped to. A device with three PDU sessions therefore has three independent SDAP entities, each with its own configuration and its own default DRB. Within one SDAP entity, the same logic runs in two directions: a transmitting half for the uplink (add header, choose DRB) and a receiving half for the downlink (read header, perform reflective updates).
4.2.3 · The functions SDAP performs
TS 37.324 gives SDAP a short, sharp function list. There are only four, and every one is about the flow↔DRB relationship:
- Mapping QoS flows to DRBs — the core function, in both directions, using stored mapping rules.
- Marking QFI in both uplink and downlink packets (when the header is configured), so the receiver and the core can identify the flow.
- Reflective QoS-flow-to-DRB mapping for the uplink — updating the UL mapping from observed downlink packets (the
RDI mechanism). - Reflective QoS at the NAS level — flagging packets (the
RQI mechanism) so the UE's NAS can derive the uplink QoS rule (the packet-filter→QFI association) without explicit signalling.
Notice what SDAP does not do. It performs no ciphering, no integrity protection, no segmentation, no reordering, no retransmission. Those belong to PDCP and below. SDAP is purely a classifier and a marker — which is exactly why it can be so thin.
4.2.4 · The SDAP header, bit by bit
The header is a single octet, and whether it is present is configured per DRB and per direction by RRC (sdap-HeaderUL, sdap-HeaderDL). The downlink and uplink formats differ because they carry different control bits.
R = reserved (0).- Downlink Data PDU. Bit 8 =
RDI (Reflective DRB-mapping Indication), bit 7 =RQI (Reflective QoS Indication), bits 6–1 = QFI. There is no D/C bit downlink — a downlink SDAP PDU is always data. - Uplink Data PDU. Bit 8 =
D/C set to 1 (this is a Data PDU), bit 7 =R(reserved), bits 6–1 = QFI. The UE marks its own uplink packets with the flow's QFI so the gNodeB and UPF preserve the QoS class. - Uplink Control PDU (end-marker). Bit 8 =
D/C set to 0 (Control), bit 7 =R, bits 6–1 = the QFI being remapped. It has no data payload — the header is the whole PDU.
Because the QFI is six bits, valid values run 0–63. The header, when present, is prepended to the SDAP SDU (the IP packet) to form the SDAP Data PDU, which is then handed to PDCP as a PDCP SDU. Critically, PDCP ciphers and integrity-protects the SDAP header along with the data — SDAP performs no security of its own, so its QFI marking is protected by the layer below it.
4.2.5 · Two PDU types — data and the end-marker
SDAP defines just two kinds of PDU. The Data PDU carries a user packet, optionally prefixed by the header above. The Control PDU has exactly one use: it is the
4.2.6 · Downlink operation, step by step
A downlink SDAP PDU arrives from PDCP. If the DRB is configured with a DL header, SDAP reads the octet and acts on it in order:
- Extract the QFI, RDI and RQI bits.
- If RDI = 1, update the stored uplink QoS-flow-to-DRB mapping for this QFI so that future uplink packets of this flow use the DRB this packet arrived on (AS-level reflective mapping — §4.2.8).
- If RQI = 1, notify the upper layer (NAS) so it can derive or update the uplink QoS rule — the packet-filter→QFI association (NAS-level reflective QoS — §4.2.8).
- Strip the header and deliver the SDAP SDU (the IP packet) up to the application.
If the DRB has no DL header configured, SDAP simply delivers the SDU — there is no QFI to read, and reflective QoS is therefore not available on that DRB.
4.2.7 · Uplink operation and the default DRB
In the uplink the device starts from a packet that NAS has already bound to a QoS flow (it knows the QFI). SDAP must choose a DRB for it:
- Look up the flow's stored QoS-flow-to-DRB mapping rule. This rule may have been configured explicitly by RRC, or learned reflectively from a downlink RDI.
- If a rule exists, use that DRB. If no rule exists, map the flow to the
default DRB — the per-session fallback that guarantees every flow has somewhere to go. - If the DRB chosen differs from the one this flow used previously, send an end-marker control PDU on the old DRB (§4.2.5).
- If the new DRB has an UL header configured, prepend the header (D/C = 1, QFI) to mark the packet; otherwise submit the raw SDU.
- Submit the resulting SDAP Data PDU to the DRB's PDCP entity.
The default DRB is not a luxury — it is the safety net that makes reflective QoS workable. A brand-new uplink flow with no configured rule and no reflective mapping yet still has a guaranteed home: the default DRB. Without it, a flow could arrive with nowhere to be sent. Each PDU session has exactly one.
4.2.8 · Reflective QoS — RDI versus RQI
Reflective QoS is SDAP's cleverest trick, and the single most-confused part of the layer. The idea is to avoid signalling uplink QoS configuration explicitly: instead, the network marks downlink packets, and the device mirrors that treatment in its uplink. But there are two different reflective mechanisms operating at two different layers, and they are easy to conflate.
| Bit | Layer | What the UE mirrors |
|---|---|---|
| RDI | Access Stratum (SDAP) | The QoS-flow → DRB mapping. "Send uplink packets of this QFI on the DRB I just sent you a downlink packet on." |
| RQI | Non-Access Stratum (NAS) | The packet-filter → QoS-flow rule. "Derive an uplink QoS rule so packets like this get this QFI." |
So a single downlink packet can carry both: RQI teaches the UE's NAS which flow a kind of packet belongs to, and RDI teaches the UE's SDAP which DRB that flow should ride. Together they let the network stand up a fully-specified uplink QoS treatment for a brand-new application flow without sending a single explicit reconfiguration — invaluable for dynamic, bursty, app-driven traffic where pre-provisioning every rule would be hopeless.
"RDI and RQI are the same reflective bit." They are not. RDI is access-stratum and updates flow→DRB inside SDAP; RQI is non-access-stratum and tells NAS to build a packet-filter→QFI rule. Different bit, different layer, different thing being mirrored.
4.2.9 · Configuration — the SDAP-Config IE
RRC configures SDAP through the SDAP-Config information element, carried inside the DRB configuration in an RRCReconfiguration. Its fields define exactly the behaviour described above:
| SDAP-Config field | Meaning |
|---|---|
pdu-Session | The PDU session this SDAP entity / DRB belongs to |
sdap-HeaderDL | present / absent — is the downlink SDAP header used on this DRB? |
sdap-HeaderUL | present / absent — is the uplink SDAP header used on this DRB? |
defaultDRB | true if this is the session's default DRB (at most one) |
mappedQoS-FlowsToAdd | List of QFIs whose UL mapping rule points to this DRB |
mappedQoS-FlowsToRelease | List of QFIs whose mapping to this DRB is removed |
A subtlety the fields expose: header presence is set per direction. It is entirely legal — and common — to run a DRB with the UL header present (so the UE marks QFI for the gNodeB) but the DL header absent, or vice versa, depending on whether reflective QoS is wanted in that direction. And because defaultDRB is a single boolean across the session's DRBs, the network must ensure exactly one carries it.
4.2.10 · A worked example, end to end
Tie it together with a concrete sequence. A device has a PDU session with a default DRB (DRB 1) and a second DRB (DRB 2) configured for a GBR video flow.
- A new video-call flow starts. The core marks its downlink packets with QFI 7, RQI = 1 (teach NAS the rule) and RDI = 1 (map this flow to DRB 2), sending them down DRB 2.
- The UE's SDAP reads the header: RQI makes NAS derive the uplink QoS rule for "video-call packets → QFI 7"; RDI makes SDAP store "QFI 7 → DRB 2" for the uplink.
- The application's uplink video packets are now classified by NAS as QFI 7. SDAP looks up its rule, finds DRB 2, and — because this flow previously had no DRB (or used the default) — sends an end-marker on the old DRB, then starts sending the flow on DRB 2 with an UL header (D/C = 1, QFI = 7).
- The gNodeB, seeing the QFI marking, applies the GBR scheduling treatment; the UPF, reading the same QFI, enforces the flow's policy toward the data network.
- A background upload, never explicitly configured, simply rides the default DRB 1 — no rule, no marking needed beyond the default.
That single sequence exercises every SDAP function: mapping, marking, both reflective mechanisms, the default DRB and the end-marker. It is, in miniature, the whole layer.
- One SDAP entity per PDU session; it maps QoS flows to DRBs (N:1, dynamic) and marks QFI.
- Header is one octet, configured per DRB and per direction; DL carries RDI+RQI, UL carries a D/C bit.
- Two PDUs: Data and the headers-only end-marker Control PDU (sent on the old DRB when a flow moves).
- RDI = AS reflective (flow→DRB, in SDAP); RQI = NAS reflective (filter→flow). Different layers.
- The default DRB (one per session) is the guaranteed home for any unmapped flow.
- SDAP does no security — PDCP ciphers and integrity-protects the SDAP header with the data.
4.3 · PDCP — security and ordering
⚙ TS 38.323⚙ TS 33.501 (security)PDCP serves both planes — signalling radio bearers and data radio bearers — and it is where the radio's security lives. On transmit it runs a fixed three-stage chain: optional
Every cipher and integrity operation is keyed by a 32-bit counter,
The key hierarchy
The keys that feed PDCP are the leaves of a tree rooted in the subscriber's permanent secret. Authentication (§3.3) derives an anchor; from it the network derives, level by level, the NAS keys (in the AMF) and the access-stratum key
That intro is the skyline. The rest of this section walks every floor of PDCP: where the entity lives, the exact PDU format, how the sequence number and COUNT really work, header compression, the full security architecture (keys, ciphering inputs, integrity), the ordering machinery and its state variables, duplicate detection and discard, duplication and split bearers, and what happens to all of it at a handover.
4.3.1 · One PDCP entity per radio bearer
Where SDAP has one entity per PDU session, PDCP has one entity per radio bearer — one per SRB, one per DRB. That granularity matters because security and ordering are per-bearer concepts: each bearer has its own keys context, its own sequence-number space, its own reordering window. PDCP serves both planes: on a
| Aspect | SRB (control) | DRB (user) |
|---|---|---|
| Carries | RRC / NAS signalling | SDAP SDUs (user IP) |
| Ciphering | Yes | Yes |
| Integrity | Mandatory | Optional (per DRB, new in 5G) |
| Header compression | No | ROHC (optional) |
| SN length | 12 bits | 12 or 18 bits |
4.3.2 · The PDCP Data PDU format
A PDCP Data PDU is a header (the sequence number, plus a D/C bit on DRBs), the payload, and — when integrity is on — a trailing 32-bit MAC-I. The SN length is RRC-configured as 12 or 18 bits: 12 keeps the header tiny for low-rate bearers, while 18 gives a far larger sequence space (and hence a larger reordering window) needed by high-throughput bearers where many PDUs can be in flight at once. Get the window too small for the data rate and the SN can wrap before old PDUs clear — the classic cause of stalls.
PDCP also defines Control PDUs, distinguished by the D/C bit = 0 on DRBs. There are two: the
4.3.3 · Sequence number, HFN and COUNT
The visible
COUNT must never repeat for a given (key, bearer, direction). Reuse the same COUNT and you reuse the same keystream — XOR two ciphertexts and the keystream cancels, exposing the plaintext. This single rule is why a fresh KgNB is derived at every handover and why the SN size must match the bearer's data rate.
4.3.4 · Header compression (ROHC)
For user-plane DRBs only, PDCP can run
4.3.5 · The security architecture — keys
PDCP is where the radio's confidentiality and integrity live, and its keys are the leaves of the tree in the key-hierarchy diagram above (TS 33.501). After authentication, the network derives an anchor key, from which it derives the NAS keys (held in the AMF) and the access-stratum key
4.3.6 · Ciphering — how the keystream is built
Ciphering is a stream cipher: the algorithm generates a
The algorithm family is named
4.3.7 · Integrity — proving the message was not altered
Integrity protection answers a different question from ciphering: not "can an eavesdropper read this?" but "did anyone tamper with this in flight?" The transmitter computes a 32-bit
4.3.8 · The processing order — and why it is fixed
The order of operations is not arbitrary; it is what makes the receiver able to undo them. On transmit: assign the SN, ROHC-compress (DRB), integrity-protect to produce the MAC-I, then cipher (the data and, on DRBs, the MAC-I), then prepend the header. On receive the reverse: read the SN, decipher, verify the MAC-I, ROHC-decompress, then hand to reordering. The chain is shown in the transmit-chain diagram above. The reason integrity comes before ciphering on transmit is so the MAC-I covers the compressed-but-unciphered payload and is then itself enciphered — the receiver must decipher before it can check integrity, and that ordering also means a tampered ciphertext is caught at the integrity step rather than silently decompressing into nonsense.
4.3.9 · In-order delivery and reordering
Here is the headline NR change: reordering moved from RLC (LTE) up to PDCP (NR). Lower layers — especially with HARQ retransmissions, multiple carriers, or dual connectivity — can deliver PDUs out of order. PDCP restores order using the SN and a
t-Reordering bounds the wait so one lost PDU can never stall the bearer forever.RX_DELIV— the SN of the oldest PDU not yet delivered to upper layers (the lower edge of the window).RX_NEXT— the SN of the next PDU expected to arrive (the upper edge).RX_REORD— the SN that, once reached, will stop the reordering timer.t-Reordering— the timer that bounds how long PDCP waits for a missing PDU before delivering what it has and moving on.
This is the mechanism behind the interview answer "PDCP reorders in NR." It is also why in-order delivery is now bearer-wide and survives RLC reordering being removed.
4.3.10 · Duplicate detection and SDU discard
Two housekeeping functions keep the buffer honest. Duplicate detection uses the COUNT to drop any PDU already received — essential because retransmissions (HARQ, RLC ARQ, or PDCP duplication) can deliver the same PDU twice. SDU discard uses the
4.3.11 · PDCP duplication for ultra-reliability
For URLLC, one transmission path may not be reliable enough.
4.3.12 · Split bearers and PDU routing
In Dual Connectivity a single DRB can be a ul-DataSplitThreshold, then spreads across both legs to use the aggregate capacity. This is how DC delivers throughput aggregation (as opposed to duplication, which spends the same legs on reliability). Routing and duplication are the two things PDCP does because it is the single anchor point above multiple RLC legs.
4.3.13 · Re-establishment and data recovery at handover
At a handover the radio below PDCP is torn down and rebuilt, but the user's data must survive the seam. PDCP
4.3.14 · Configuration — the PDCP-Config IE
RRC drives all of the above through the PDCP-Config IE inside the radio-bearer configuration:
| PDCP-Config field | Controls |
|---|---|
pdcp-SN-SizeUL / -DL | 12 or 18-bit sequence number, per direction |
headerCompression | ROHC on/off and which profiles |
integrityProtection | Enable UP integrity on this DRB (SRBs always on) |
discardTimer | How long an SDU may wait before being dropped |
t-Reordering | The reordering wait bound (§4.3.9) |
pdcp-Duplication | Configure (and seed activation of) PDU duplication |
moreThanOneRLC / ul-DataSplitThreshold | Split-bearer routing parameters (§4.3.12) |
- One PDCP entity per radio bearer; serves both planes; integrity mandatory on SRBs, optional per DRB (new in 5G).
- Security keys to four leaves (RRC enc/int, UP enc/int) from KgNB; ciphering XORs a keystream built from key+COUNT+bearer+direction.
- COUNT = HFN ‖ SN must never repeat — the reason for key refresh at handover and careful SN sizing.
- TX order: SN → ROHC → integrity → cipher; RX reverses it. ROHC is DRB-only.
- Reordering moved to PDCP in NR, bounded by
t-Reorderingwith RX_DELIV/RX_NEXT/RX_REORD. - Duplication = reliability over parallel legs (MAC-CE toggled); split bearer = throughput over both legs.
- Handover survival is PDCP re-establishment + data recovery, guided by a status report.
4.4 · RLC — modes and ARQ
⚙ TS 38.322RLC turns the PDCP stream into something the MAC can carry over a fluctuating channel, in one of three
RLC is the quiet middle layer, but it carries the burden of turning PDCP's clean numbered stream into something that survives a fluctuating, lossy channel — and doing so in three flavours of effort. The rest of this section takes RLC apart: its entity model, the PDU formats of each mode, how segmentation and reassembly actually work, the complete AM ARQ loop (polling, status, partial NACK, the retransmission counter), the STATUS PDU on the wire, the two-tier relationship with HARQ, and the configuration that ties it together.
4.4.1 · The entity model — and what RLC no longer does
RLC sits below PDCP and above MAC, and there is one
4.4.2 · The three modes, and where each is used
RRC picks a mode per bearer based on what that traffic needs.
| Mode | SN size | Segments? | ARQ? | Typical channels / use |
|---|---|---|---|---|
| TM | none | no | no | BCCH, PCCH, CCCH (broadcast/paging) |
| UM | 6 or 12 bits | yes | no | DTCH — voice, streaming video |
| AM | 12 or 18 bits | yes | yes | all SRBs; reliable DTCH (TCP, files) |
4.4.3 · PDU formats
The header a PDU carries is exactly as heavy as its mode demands. A SI (Segmentation Info) field and, only when segmented, an SN and a segment offset — so an unsegmented UM packet pays almost no header tax. An D/C bit (data vs control), a P (poll) bit, the 2-bit SI, the SN, and a 16-bit SO for non-first segments.
4.4.4 · Segmentation and the SI field
When an RLC SDU is larger than the transmission opportunity MAC offers, RLC 00 a complete (unsegmented) SDU, 01 the first segment, 11 a middle segment, 10 the last segment. The 16-bit
4.4.5 · Reassembly and t-Reassembly
The receiver collects segments by SN and SO and rebuilds each SDU. Because a segment can be lost, it cannot wait forever — the RX_Next (lowest SN awaiting completion), RX_Highest_Status and RX_Next_Highest — that define the receive window and what the next STATUS report will say.
4.4.6 · The AM ARQ loop in full
AM reliability is a conversation between the transmitter's TX side and the receiver's RX side, and it has three moving parts: polling, status reporting, and retransmission.
Polling. The transmitter does not want a status report after every PDU (wasteful) nor too rarely (slow recovery). So it polls by setting the P bit when a trigger fires: after pollPDU PDUs, after pollByte bytes, when the buffer empties, or on a retransmission. Having polled, it starts t-PollRetransmit; if no status comes back before it expires, the transmitter re-polls (retransmitting the last PDU with the poll bit) so a lost poll cannot deadlock the loop.
Status reporting. On receiving a poll (or detecting a gap), the RX side builds a STATUS PDU. To avoid flooding the uplink with reports, t-StatusProhibit enforces a minimum gap between consecutive STATUS PDUs. The report names an ACK_SN — everything below it is received except the SNs explicitly listed — plus NACK_SN entries for the gaps, each optionally carrying an SO range (a partial NACK) so only the missing bytes of a half-received SDU are requested, or a NACK range to compactly report a run of consecutive missing SDUs.
Retransmission. The transmitter resends exactly what was NACKed — whole SDUs or just the SO-bounded byte ranges — and crucially it may re-segment on retransmission if the new grant is smaller than the original. Each retransmitted RLC SDU carries a RETX_COUNT; when it reaches maxRetxThreshold, RLC gives up and indicates the failure to RRC, which declares a
RETX_COUNT = maxRetxThreshold ⇒ RLF.4.4.7 · The STATUS PDU on the wire
The STATUS PDU is an AM control PDU (D/C = 0). It opens with a control-PDU-type field, then the ACK_SN, then a chain of NACK entries each flagged by extension bits: E1 says "another NACK_SN follows," E2 says "an SO start/end pair follows" (this NACK is partial — only those bytes), and E3 says "a NACK range follows" (this NACK covers a run of consecutive SNs). This compact encoding lets one STATUS PDU acknowledge everything up to ACK_SN and precisely describe every hole below it — whole SDUs, byte ranges, or runs — in as few bits as possible.
4.4.8 · Two tiers — RLC ARQ over HARQ
RLC ARQ does not work alone; it sits on top of MAC's HARQ (§4.5) as the second tier of a two-tier error-recovery scheme. HARQ is the fast inner loop — sub-millisecond, soft-combining, handling the common case of a marginal decode. But HARQ has a small residual error rate (a NACK can be misread as an ACK, roughly 1-in-1000), and over millions of blocks that leaves occasional gaps. RLC ARQ is the slower outer loop that mops those up: its status-report timescale is milliseconds, not microseconds, but it is reliable. The division of labour is deliberate — let HARQ catch ~99.9% cheaply and quickly, and let ARQ guarantee the last fraction without burdening every transmission.
4.4.9 · Configuration — RLC-Config
RRC configures the mode and all the AM timers/counters through RLC-Config (inside the RLC-BearerConfig):
| Field | Controls |
|---|---|
mode (am / um / tm) | Which RLC mode this bearer uses |
sn-FieldLength | SN size (UM 6/12, AM 12/18 bits) |
t-Reassembly | Wait bound for missing segments before declaring loss |
t-PollRetransmit | Re-poll if no STATUS arrives (AM) |
pollPDU / pollByte | Poll triggers by PDU count / byte count (AM) |
t-StatusProhibit | Minimum gap between STATUS PDUs (AM RX) |
maxRetxThreshold | Retransmissions before declaring failure → RLF (AM) |
- Three modes by effort: TM (nothing), UM (number + segment), AM (+ ARQ). SRBs always AM.
- NR RLC no longer concatenates (moved to MAC) and no longer reorders (moved to PDCP) — enabling pre-built, pipelined PDUs.
- Segmentation uses SI (first/middle/last/complete) + SO (byte offset); all segments share one SN;
t-Reassemblybounds the wait. - AM ARQ = poll (P bit, pollPDU/Byte, t-PollRetransmit) → STATUS (ACK_SN + NACK_SN with SO/NACK-range, t-StatusProhibit) → targeted retransmit (re-segmentable).
maxRetxThresholdreached ⇒ RLC tells RRC ⇒ Radio Link Failure.- RLC ARQ is the reliable second tier above fast HARQ.
4.5 · MAC — the heartbeat of the RAN
⚙ TS 38.3214.5.1 · The scheduler's job
If one layer is the heart of the radio, it is MAC, because MAC contains the
4.5.2 · What MAC bridges — logical, transport, physical channels
MAC sits between two different worlds and translates between them. Above it, RLC speaks in
4.5.3 · The transport block, HARQ and multiplexing
MAC's output is the
4.5.4 · HARQ — the fast retransmission loop
4.5.5 · Random access — getting the first foothold
A device with nothing scheduled cannot simply transmit; the uplink is a managed resource. It bootstraps with
The 4-step procedure above is for contention-based access from idle. NR also defines contention-free RACH (the network pre-assigns a dedicated preamble, e.g. for handover, so there is no contention to resolve) and the Rel-16 2-step procedure, where MsgA bundles the preamble and a small payload together and MsgB returns both the response and the contention resolution — halving the round-trips, which matters for latency-critical access and for the long propagation delays of non-terrestrial networks.
4.5.6 · Feeding the scheduler — SR, BSR, PHR and MAC CEs
The scheduler can only allocate well if it knows what each device needs, so MAC carries a stream of reports up to it. The uplink ask is a three-step escalation: a
| MAC CE | Direction | Purpose |
|---|---|---|
| BSR | UL | Buffered data per logical channel group → grant sizing |
| PHR | UL | Remaining transmit power headroom → MCS bound |
| Timing Advance Command | DL | Adjust UL transmit timing as the UE moves |
| DRX Command | DL | Force the UE into sleep immediately |
| SCell Activation/Deactivation | DL | Turn aggregated carriers on/off (CA) |
| Duplication Activation | DL | Toggle PDCP duplication (§4.3.11) |
| C-RNTI | UL | Identify the UE during contention resolution |
4.5.7 · Logical Channel Prioritisation — filling the grant fairly
A grant is a fixed number of bytes, and the device usually has several logical channels with data waiting.
4.5.8 · DRX — letting a connected device sleep
A device that monitored the PDCCH every slot would never sleep and its battery would drain in hours.
4.5.9 · Scheduling strategies and link adaptation
The scheduler's policy is a vendor secret, but its inputs and dials are standard. It chooses per slot using each device's reported
4.5.10 · Bandwidth parts and key timers
Finally, MAC operates within a
- MAC maps logical → transport → physical channels and contains the scheduler, the RAN's real-time core; its output is the transport block, signalled by DCI.
- HARQ = fast, soft-combining, up to 16 asynchronous processes (DCI carries process ID + NDI); RLC ARQ is the reliable backstop.
- Uplink access: RACH (4-step / 2-step / contention-free) → SR → BSR; power bounded by PHR. Control rides as MAC CEs.
- LCP shares a grant by priority with a PBR fairness floor; DRX trades battery against latency via onDuration + inactivity/retransmission timers.
- Link adaptation maps CQI → MCS; scheduling can be dynamic, semi-persistent (DL) or configured-grant (UL). One active BWP per direction.
4.6 · PHY — numerology, frames and channels
⚙ TS 38.211⚙ TS 38.212⚙ TS 38.2144.6.1 · The OFDM waveform and numerology
The physical layer turns the transport block into a waveform on the antenna. Its biggest break from LTE is
NR's waveform is cyclic-prefix OFDM (CP-OFDM) in both directions — the CP absorbs multipath delay spread so each subcarrier stays orthogonal. OFDM's weakness is a high peak-to-average power ratio (PAPR), which strains the device's power amplifier at the cell edge. So the uplink can optionally fall back to DFT-spread-OFDM (the LTE-style single-carrier waveform), trading a little spectral flexibility for a lower PAPR and thus more usable transmit power and range. The network picks per-UE per-channel.
4.6.2 · The resource grid — RB, RE and bandwidth parts
In frequency, the basic block is the
A device does not necessarily use the whole carrier. It operates within a
4.6.3 · Physical channels and reference signals
The PHY exposes a set of
| Channel / signal | Dir | Carries |
|---|---|---|
| PBCH | DL | MIB — minimum info for initial access (inside the SSB) |
| PDCCH | DL | DCI — scheduling grants/assignments (in a CORESET) |
| PDSCH | DL | User data, SIBs, paging |
| PUCCH | UL | UCI — SR, HARQ ACK/NACK, CSI reports |
| PUSCH | UL | User data and larger UCI |
| PRACH | UL | Random-access preambles |
| DM-RS / CSI-RS / SRS / PT-RS | both | Demodulation / channel & beam measurement / UL sounding / phase tracking |
There is no PHICH as in LTE — asynchronous HARQ made the dedicated ACK channel unnecessary (HARQ feedback rides PUCCH/PDCCH instead).
4.6.4 · Channel coding and link adaptation
Two more PHY essentials. Link adaptation: the device measures the downlink and reports a
4.6.5 · Initial access and the SSB
Before any of the above can happen, a device must find the cell — with no prior timing, no frequency lock, no knowledge the cell exists. The
4.6.6 · From transport block to waveform — the transmit chain
The PHY's processing of a transport block is a fixed pipeline, and each stage has a purpose. A
4.6.7 · MIMO, layers and beamforming
NR's capacity comes from the spatial domain.
4.6.8 · CSI feedback — closing the loop
For the scheduler to adapt, it must know the channel, and the device tells it through
NR supports mini-slots — transmissions of 2, 4 or 7 symbols instead of a full 14-symbol slot — so a URLLC packet need not wait for a slot boundary; it can start mid-slot and even pre-empt an ongoing eMBB transmission (signalled by a pre-emption indication). Most NR deployments are TDD: uplink and downlink share one band and are separated in time by a configurable slot/symbol pattern, and a slot's 14 symbols can be flexibly marked downlink, uplink or "flexible." This symbol-level agility, impossible in LTE's rigid 1 ms TTI, is how NR drives user-plane latency toward the 1 ms target while still serving bulk traffic efficiently.
- Flexible numerology (SCS = 15·2μ kHz) trades latency/robustness against CP overhead; CP-OFDM everywhere, optional DFT-s-OFDM uplink for PAPR.
- Grid = RB (12 subcarriers) × 14-symbol slot of REs; one active BWP per direction; FR1 vs FR2.
- Channels: PBCH/PDCCH/PDSCH down, PUCCH/PUSCH/PRACH up; DM-RS/CSI-RS/SRS/PT-RS around them; no PHICH.
- Initial access via the SSB (PSS+SSS+PBCH/MIB), swept one per beam; then SIB1.
- TX pipeline: CRC→LDPC→rate-match→scramble→QAM→layer/precode→RE map→iFFT+CP. LDPC for data, Polar for control.
- Capacity from MIMO layers + beamforming (analog/digital/hybrid, P1/P2/P3, TCI); the loop closes with CSI (CQI/PMI/RI) + SRS.
4.7 · RRC — the controller and its states
⚙ TS 38.331RRC is the control-plane brain of the access stratum. It carries no user data; it configures everything else — broadcasting system information, setting up and tearing down radio bearers, configuring measurements and triggering mobility, and activating security. Its life is organised around three
The procedures that move between states and configure the stack are the everyday vocabulary of the RAN engineer:
| Procedure | Messages / trigger | Purpose |
|---|---|---|
| Connection setup | RRCSetupRequest → RRCSetup → RRCSetupComplete | IDLE → CONNECTED on SRBs |
| Reconfiguration | RRCReconfiguration (+ Complete) | Bearers, measConfig, handover sync — the workhorse |
| Security activation | SecurityModeCommand → Complete | Switch on AS ciphering + integrity (from K_gNB) |
| Resume | RRCResumeRequest (carries I-RNTI) | INACTIVE → CONNECTED in ms |
| Release | RRCRelease (± suspendConfig) | To IDLE, or to INACTIVE if suspended |
| System information | MIB (PBCH) + SIB1… (PDSCH) | Broadcast cell access & config |
Mobility deserves a closing word, because it ties the whole stack together. RRC configures the device with a
- RRC configures the whole stack and owns the three states; INACTIVE is the 5G addition for fast, low-power resume.
- RRCReconfiguration is the workhorse; security is switched on by SecurityModeCommand.
- Mobility = measurement config → event (A3 the classic) → report → handover.