NB-IoT’s end-to-end architecture spans four layers – IoT devices, Radio Access Network (eNodeB), Evolved Packet Core (MME, S-GW, P-GW, SCEF), and application servers – with CIoT optimizations enabling efficient small-data transmission through either the control plane (signaling piggyback) or user plane (traditional bearer) paths.
31.1 Learning Objectives
By the end of this chapter, you will be able to:
Analyze Network Components: Distinguish key elements in NB-IoT end-to-end architecture and explain their roles
Trace Data Flow: Apply knowledge of EPC components to explain the data path from device through EPC to application server
Evaluate Core Components: Assess the functions of MME, S-GW, P-GW, and SCEF and justify when each is involved
Design IoT Connectivity: Construct a device-to-cloud architecture using NB-IoT, selecting appropriate data paths for given payload sizes
NB-IoT eNodeB: The 4G LTE base station handling NB-IoT radio access; uses a 200 kHz channel within, adjacent to, or as a standalone channel relative to an LTE carrier.
In-band Deployment: NB-IoT operating within the guard band or resource blocks of an existing LTE carrier, sharing infrastructure without new spectrum.
Guard-band Deployment: NB-IoT using the unused guard band frequencies of an LTE carrier; avoids interference with LTE data but requires careful frequency coordination.
Standalone Deployment: NB-IoT operating on dedicated 200 kHz spectrum, possibly refarmed GSM channels; provides dedicated spectrum but requires separate deployment.
PSM (Power Saving Mode): NB-IoT power optimization where devices enter deep sleep for extended periods; wake time, active timer, and periodic TAU timer are negotiated with the network.
eDRX (Extended Discontinuous Reception): A less aggressive sleep mode than PSM where the device stays registered but reduces paging cycle frequency to save power while maintaining reachability.
31.3 NB-IoT End-to-End Architecture
NB-IoT leverages existing LTE infrastructure with IoT-specific optimizations. The architecture spans from constrained devices through cellular network to cloud applications.
Figure 31.1: NB-IoT End-to-End Network Architecture with EPC Components
31.4 Architecture Layers
31.4.1 Layer 1: IoT Devices (NB-IoT UE)
Device
Function
Interface
Smart Meter
Utility monitoring
Uu Interface, 180 kHz
Asset Tracker
Location tracking
PSM/eDRX
Parking Sensor
Occupancy detection
Coverage Extension
NB-IoT User Equipment (UE) devices are characterized by:
Low complexity: Single antenna, half-duplex operation
Power optimization: PSM (Power Saving Mode, sleep current ~5 µA) and eDRX (Extended Discontinuous Reception, wake intervals up to 2,621 seconds) support
Narrow bandwidth: 180 kHz radio
Extended coverage: Up to 164 dB MCL (+20 dB vs GPRS at 144 dB MCL)
31.4.2 Layer 2: Radio Access Network
Component
Function
Capacity
eNodeB (Base Station)
Radio access
180 kHz carrier per NB-IoT cell
The eNodeB provides:
NB-IoT carrier management: 180 kHz dedicated or shared
Coverage enhancement: Repetition coding (up to 2048 repetitions) for extended range
Power class support: Different TX power levels
Scheduling: Resource allocation for uplink/downlink
31.4.3 Layer 3: Evolved Packet Core (EPC)
The EPC is the heart of the NB-IoT network, providing:
Component
Abbreviation
Function
MME
Mobility Management Entity
Authentication, session management
S-GW
Serving Gateway
User plane routing
P-GW
PDN Gateway
Internet connectivity, APN
HSS
Home Subscriber Server
Subscriber database
SCEF
Service Capability Exposure Function
API exposure, non-IP data
31.4.4 Layer 4: Application Layer
Component
Function
Protocol
IoT Platform
Device management
REST/MQTT
Application Server
Business logic
Application-specific
31.5 EPC Components Deep Dive
31.5.1 Mobility Management Entity (MME)
The MME handles control plane functions:
Authentication: Validates device identity using USIM
TAU Handling: Tracks device location (Tracking Area Update)
For Beginners: What is the MME?
Think of the MME as a security guard and receptionist combined:
Security Guard: Checks your ID (authentication) when you enter
Receptionist: Keeps track of where you are (location tracking)
Concierge: Helps set up your connection (session management)
When your NB-IoT device first connects, the MME: 1. Asks “Who are you?” (authentication) 2. Sets up a secure connection (encryption) 3. Remembers where you are (tracking area) 4. Notifies you if someone wants to reach you (paging)
31.5.2 Serving Gateway (S-GW)
The S-GW handles user plane routing:
Packet forwarding: Routes data between device and P-GW
Buffering: Stores packets while device is sleeping
Mobility anchor: Maintains connection during handover
APN management: Access Point Name for different services
Policy enforcement: QoS and charging rules
Internet access: Gateway to public/private networks
31.5.4 Service Capability Exposure Function (SCEF)
The SCEF is NB-IoT-specific, optimizing IoT data delivery:
Non-IP data delivery (NIDD): Small data without IP overhead
API exposure: RESTful APIs for application servers
Device triggering: Wake sleeping devices
Group messaging: Efficient multicast
SCEF: The IoT Optimizer
The SCEF is what makes NB-IoT efficient for IoT applications:
Without SCEF (traditional path): Device → eNB → S-GW → P-GW → Internet → App Server - Requires full IP stack - Each packet has 40+ byte IP/TCP overhead - High latency for small payloads
With SCEF (optimized path): Device → eNB → MME → SCEF → App Server - Non-IP Data Delivery (NIDD) - Minimal overhead for small payloads - Direct API access for applications
31.6 Data Flow Paths
31.6.1 User Plane (Data) Flow
Device → eNodeB → S-GW → P-GW → Internet → Application Server
Used for IP-based data (MQTT, CoAP over UDP)
Full IP stack required on device
Supports larger payloads
31.6.2 Control Plane (Signaling) Flow
Device → eNodeB → MME → SCEF → Application Server
Used for small data (< 1600 bytes)
Minimal overhead (Non-IP Data Delivery)
Optimized for infrequent transmissions
31.6.3 Downlink Data Path
When application server sends data to device:
Device in connected mode: Direct delivery via S-GW
Device in idle mode: MME sends paging, device wakes, then delivery
Device in PSM: Data buffered at P-GW until TAU timer expires
Knowledge Check: Data Path Selection
31.7 Interface Specifications
31.7.1 Key Interfaces
Interface
Endpoints
Function
Uu
UE ↔︎ eNodeB
Air interface (radio)
S1-MME
eNodeB ↔︎ MME
Control plane signaling
S1-U
eNodeB ↔︎ S-GW
User plane data
S11
MME ↔︎ S-GW
Control for user plane
S5/S8
S-GW ↔︎ P-GW
User plane between gateways
T6a
SCEF ↔︎ MME
IoT optimization
Tsp
SCEF ↔︎ App Server
API exposure
Figure 31.2: NB-IoT Network Interfaces
31.8 CIoT Optimizations
NB-IoT includes Cellular IoT (CIoT) specific optimizations:
31.8.1 Control Plane CIoT EPS Optimization
Small data sent via signaling (no user plane setup)
Reduced latency for infrequent transmissions
Lower power consumption
31.8.2 User Plane CIoT EPS Optimization
Suspended user plane (fast resume)
Connection release assistance
Optimized for periodic reporting
31.8.3 Data over NAS (DoNAS)
Data piggybacked on NAS signaling
No dedicated bearer required
Ideal for <1600 byte payloads
Interactive: NB-IoT Data Path Energy Calculator
Estimate energy consumption per transmission for control plane (DoNAS) vs user plane (IP) paths based on payload size and data rate.
Show code
viewof dpPayload = Inputs.range([10,1600], {value:50,step:10,label:"Application payload (bytes)"})viewof dpDataRate = Inputs.range([16,250], {value:64,step:16,label:"Uplink data rate (kbps)"})viewof dpTxCurrent = Inputs.range([100,400], {value:220,step:10,label:"TX current (mA)"})
Show code
{// User plane overhead: CoAP(4) + DTLS(13) + UDP(8) + IPv6(40) + PDCP(2) + RLC(2) + MAC(3) + bearer setup(510)const upOverhead =4+13+8+40+2+2+3;const upBearerSetup =510;const upTotal = dpPayload + upOverhead + upBearerSetup;// Control plane overhead: NAS PDU(8) + RRC signaling(260 shared, no bearer)const cpNasOverhead =8;const cpRrc =260;const cpTotal = dpPayload + cpNasOverhead + cpRrc;const bitsPerByte =8;const kbpsToKBps =1/8;const tUp = (upTotal * bitsPerByte) / (dpDataRate *1000) *1000;// msconst tCp = (cpTotal * bitsPerByte) / (dpDataRate *1000) *1000;// msconst eUp = dpTxCurrent * tUp;// mAsconst eCp = dpTxCurrent * tCp;// mAsconst savings = ((eUp - eCp) / eUp *100);const color = (v, good, warn) => v < good ?"#16A085": v < warn ?"#E67E22":"#E74C3C";returnhtml`<div style="background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:16px;margin-top:8px;"> <div style="display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;"> <div style="padding:12px;background:#fff;border-radius:4px;border:2px solid #E67E22;"> <div style="font-weight:bold;color:#E67E22;margin-bottom:6px;">User Plane (IP Path)</div> <div style="font-size:0.85em;color:#7F8C8D;">Total bytes on air: ${upTotal}</div> <div style="font-size:0.85em;color:#7F8C8D;">(${dpPayload} payload + ${upOverhead} headers + ${upBearerSetup} bearer setup)</div> <div style="font-size:1.2em;font-weight:bold;color:#2C3E50;margin-top:4px;">${tUp.toFixed(1)} ms TX</div> <div style="font-size:1.1em;color:#E67E22;">${eUp.toFixed(1)} mAs</div> </div> <div style="padding:12px;background:#fff;border-radius:4px;border:2px solid #16A085;"> <div style="font-weight:bold;color:#16A085;margin-bottom:6px;">Control Plane (DoNAS)</div> <div style="font-size:0.85em;color:#7F8C8D;">Total bytes on air: ${cpTotal}</div> <div style="font-size:0.85em;color:#7F8C8D;">(${dpPayload} payload + ${cpNasOverhead} NAS + ${cpRrc} RRC signaling)</div> <div style="font-size:1.2em;font-weight:bold;color:#2C3E50;margin-top:4px;">${tCp.toFixed(1)} ms TX</div> <div style="font-size:1.1em;color:#16A085;">${eCp.toFixed(1)} mAs</div> </div> </div> <div style="padding:8px;background:#fff;border-radius:4px;border:1px solid #dee2e6;font-size:0.9em;"> Control plane saves <strong style="color:#16A085;">${savings.toFixed(0)}%</strong> energy vs user plane for this ${dpPayload}-byte payload.${dpPayload >1600?html`<span style="color:#E74C3C;"> Warning: payload exceeds 1600-byte NAS limit — user plane required for this size.</span>`:""} </div> </div>`;}
31.9 Knowledge Check
Interactive Quiz: Match Concepts
🏷️ Label the Diagram
💻 Code Challenge
📝 Order the Steps
:
31.10 Summary
Four-layer architecture spans devices, radio access, evolved packet core, and applications
EPC components (MME, S-GW, P-GW, SCEF) provide authentication, routing, and IoT optimization
SCEF enables Non-IP Data Delivery for efficient small payload transmission without IP overhead
Two data paths exist: user plane (IP-based, larger payloads) and control plane (optimized, small data <1600 bytes)
CIoT optimizations reduce power consumption and latency for IoT traffic patterns
Standard interfaces (S1, S5/S8, T6a) enable interoperability between network components
164 dB MCL (20 dB improvement over GPRS) achieved via repetition coding at the eNodeB
PSM sleep current of ~5 µA with TAU timers configurable from 2 seconds to 310 hours enables 10-15 year battery life
31.11 Concept Relationships
Understanding NB-IoT architecture requires connecting multiple concepts across the cellular IoT stack:
Foundational Concepts (Must understand first):
NB-IoT Fundamentals provides the core technology overview - MCL, PSM/eDRX, deployment modes. Architecture builds on these fundamentals by showing where each feature is implemented (PSM negotiated with MME, MCL achieved through repetition at eNodeB).
NB-IoT Deployment Modes explains in-band/guard-band/standalone spectrum allocation. Architecture chapter shows how each mode affects network elements (in-band shares eNodeB PRB resources, standalone requires dedicated carrier configuration).
Cellular IoT Fundamentals contextualizes NB-IoT within broader cellular ecosystem. Architecture maps NB-IoT-specific optimizations (SCEF, CIoT EPS) to standard LTE EPC components.
Architectural Dependencies:
Control plane vs user plane: Data flow paths (control plane = MME→SCEF for small data, user plane = S-GW→P-GW for IP) determine latency and overhead. Control plane optimized for <1600 byte payloads typical in IoT.
MME functions: Authentication, session management, paging, TAU handling all map to specific power-saving features (PSM coordinated with TAU timer, paging triggers PSM wake).
SCEF role: Non-IP Data Delivery (NIDD) bypasses full IP stack, reducing overhead from 72 bytes (IP/UDP/DTLS headers) to 8 bytes (NAS PDU). Example: 50-byte meter reading becomes 122 bytes (user plane) vs 58 bytes (control plane).
Related Network Concepts:
Cellular IoT Applications shows how architectural choices enable specific use cases (smart metering uses control plane, asset tracking uses user plane).
LTE-M Architecture provides comparison baseline - NB-IoT adds SCEF for optimization, LTE-M uses standard EPC with mobility support.
Key Insight: The four-layer architecture (device → RAN → EPC → application) is NOT a linear pipeline. Bi-directional control (e.g., P-GW buffering downlink during PSM, MME paging device when data arrives) requires understanding interactions between layers. The worked example (smart meter) demonstrates this - control plane path decision affects MME, S-GW bypassed, SCEF API accessed, all for a single 50-byte reading.
31.12 See Also
Deep Dives into Architecture Components:
NB-IoT Power and Channel - PSM/eDRX mechanisms implemented between device and MME. Sleep current (5 µA) vs active current (220 mA) drives 10-15 year battery life in worked example.
NB-IoT Security - USIM authentication at MME, encryption key establishment, lawful intercept at S-GW. Security architecture integrated into EPC.
Comparative Analysis:
LTE-M Comprehensive Review - LTE-M uses same EPC but without SCEF (no NIDD), includes connected-mode handover (vs NB-IoT idle reselection). Choose LTE-M when mobility required.
LoRaWAN Architecture - Star topology with gateway vs cellular infrastructure. LoRaWAN simpler (no EPC), NB-IoT offers carrier-grade reliability and QoS guarantees.
Protocol Integration:
MQTT Fundamentals - Application-layer protocol running over NB-IoT user plane (CoAP/MQTT → UDP → IPv6 → PDCP → RLC → MAC → PHY). SCEF T6a API provides alternative to MQTT broker.
CoAP Protocol - Lightweight alternative to MQTT for NB-IoT constrained bandwidth. 4-byte header vs MQTT’s variable headers, optimized for NB-IoT’s 1600-byte control plane limit.
Real-World Deployments:
Cellular IoT Case Studies - Vodafone Denmark smart metering (control plane, 200K devices, 12-year battery) validates architecture decisions from worked example.
NB-IoT vs LTE-M Comparison - Architecture differences drive technology selection (SCEF’s NIDD favors NB-IoT for stationary sensors, LTE-M’s handover favors mobile applications).
Hands-On Exploration:
Try the NB-IoT Power Calculator in Simulations Hub to see how control plane vs user plane affects battery life (control plane 50% energy savings demonstrated in worked example).
Watch Cellular IoT Architecture Explained video for animated walkthrough of data paths through EPC.
Advanced Topics:
Edge Computing Architectures - SCEF enables edge deployment (direct API to on-premise MEC platform), bypassing cloud round-trip latency.
5G IoT Integration - NB-IoT migrates to 5G core (SCEF → NEF, MME → AMF) while preserving architecture principles.
31.13 What’s Next
Continue with technology comparison and selection guidance: