4. NB-IoT协议栈与终端协议分层
NB-IoT终端从“上电驻网”到“把一条上行数据发出去”,并不是单一模块在工作,而是六层协议各司其职、逐层封装与逐层解封装的过程。理解协议栈的关键,不是背下六个缩写,而是搞清楚三件事:每一层在终端里负责什么、数据在层与层之间以什么形态传递、控制面信令与用户面数据分别走哪条路径。本节围绕这三点展开,并给出可直接对照的层间数据流关系。
一、终端协议栈的分层定位
NB-IoT终端协议栈自下而上分为物理层(PHY)、媒体接入控制层(MAC)、无线链路控制层(RLC)、分组数据汇聚协议层(PDCP)、无线资源控制层(RRC)和非接入层(NAS)。前五层属于接入层(AS),由基站(eNB)与终端对等交互;NAS属于非接入层,终端与核心网MME对等交互,基站只做透传。这是理解整个协议栈最重要的一条分界线。
从功能划分看:PHY负责把比特映射到NB-IoT的物理信道并完成调制解调、编码解码、同步与测量;MAC负责逻辑信道到传输信道的映射、调度请求、随机接入过程、HARQ重传与DRX;RLC负责分段与重组、ARQ重传,保证按序交付;PDCP负责头压缩、加密与完整性保护、按序递交;RRC负责连接建立与释放、无线承载配置、测量控制、系统消息读取;NAS负责附着、鉴权、EPS承载管理、TAU与PDN连接等与核心网相关的会话管理。
二、控制面与用户面的两条数据流
NB-IoT终端的数据流分为控制面和用户面。控制面承载RRC信令与NAS信令,路径为:NAS → RRC → PDCP → RLC → MAC → PHY,对端在基站侧逐层解封装后,NAS消息被透传给MME。用户面承载业务数据,路径为:应用数据 → IP → PDCP → RLC → MAC → PHY,对端在基站侧解到PDCP后经S1-U送往SGW/PGW。两条路径在PDCP以下共用同一套底层承载,区别在于PDCP之上是RRC还是IP。
以一次典型的上行数据发送为例:终端应用产生一个UDP包,先经IP层封装,进入PDCP后完成头压缩与加密,形成PDCP PDU;RLC根据MAC指示的传输块大小对PDCP PDU做分段,加上RLC头;MAC把RLC PDU复用进传输块,按调度授权选择MCS与重复次数,交给PHY;PHY完成CRC添加、信道编码、速率匹配、加扰、调制,映射到NPUSCH上发送。接收侧则完全反向:PHY解调译码 → MAC HARQ合并 → RLC重组与ARQ → PDCP解密解压缩 → IP层还原。整个过程体现了“逐层加头、逐层去头”的封装思想。
三、各层在终端中的关键动作与参数
PHY层在NB-IoT中承担了最重的“适配”工作。终端需要完成小区搜索与同步,读取NPSS/NSSS获得时频偏,再解NPBCH获取MIB,随后在锚点载波上读取SIB1-NB。上行使用SC-FDMA,子载波间隔分为15 kHz和3.75 kHz两种,前者用于常规覆盖,后者用于扩展覆盖。以15 kHz、单音(1 tone)为例,NPUSCH的传输块较小,一次调度可能只承载几十比特,因此RLC分段与MAC复用必须严格匹配调度授权。
MAC层在终端侧的核心动作包括:随机接入过程(发送NPRACH前导)、调度请求、HARQ进程管理、逻辑信道优先级处理以及DRX配置。NB-IoT的HARQ采用异步自适应方式,上行重传由DCI中的NDI指示新数据或重传。MAC还负责把RRC信令、NAS信令和用户数据映射到不同的逻辑信道,再复用到UL-SCH传输信道。
RLC层在NB-IoT中通常配置为UM(非确认模式)或AM(确认模式)。对于控制面信令,多采用AM以保证可靠交付;对于时延敏感或允许丢包的业务,可采用UM。RLC PDU的大小由MAC在每个TTI给出的传输块大小决定,因此RLC必须支持动态分段。PDCP层则负责对用户面数据做ROHC头压缩,对控制面做完整性保护,加密算法由RRC在安全激活后配置,常见为128-NEA1/128-NEA2。
RRC层是终端与基站之间的“控制中枢”。它负责广播系统消息的读取、RRC连接建立(含竞争解决)、无线承载配置、测量配置与上报、连接释放。NB-IoT为省电引入了RRC空闲态下的eDRX和PSM,RRC连接态下则通过DRX和C-DRX降低监听开销。NAS层位于RRC之上,终端通过NAS消息完成附着请求、鉴权响应、安全模式命令、PDN连接建立、TAU等流程,这些消息被封装在RRC消息中透传,基站不解析其内容。
四、一次上行发送的层间协作示例
假设终端已建立RRC连接并激活安全,应用要发送一个20字节的CoAP报文。IP层封装后约48字节,PDCP压缩UDP/IP头后可能降到约30字节,加上PDCP头形成PDCP PDU。MAC根据当前调度授权给出传输块大小为72比特(示例值),RLC据此把PDCP PDU分成两段,分别加上RLC头。MAC把两段RLC PDU复用进一个传输块,选择MCS并指示重复次数,交给PHY。PHY完成CRC、Turbo编码、速率匹配、加扰和π/2-BPSK调制,映射到NPUSCH发送。基站收到后逐层解封装,若CRC校验失败,MAC触发HARQ重传;若RLC AM检测到丢失,则触发ARQ重传。终端通过监听NPDCCH获取重传授权,完成整个闭环。
五、分层带来的工程意义
理解协议分层,对终端开发与部署有直接价值。做功耗优化时,要关注MAC的DRX/eDRX与RRC的PSM配置;做吞吐优化时,要关注RLC分段效率、PDCP头压缩比与MAC调度授权大小;做覆盖增强时,要关注PHY的重复次数与MAC的HARQ合并策略;做信令排障时,要区分是RRC连接问题还是NAS附着问题。每一层的参数调整都会影响上下层的行为,因此协议栈不是孤立的知识点,而是终端行为分析的坐标系。
| 协议层 | 终端侧主要功能 | 典型观察点 |
|---|---|---|
| PHY | 同步、编解码、调制、测量 | RSRP、SNR、重复次数 |
| MAC | 调度、HARQ、随机接入、DRX | HARQ重传次数、TA |
| RLC | 分段重组、ARQ | ARQ重传、分段数 |
| PDCP | 头压缩、加密、完整性 | 压缩比、安全激活状态 |
| RRC | 连接管理、承载配置、测量 | RRC状态、测量报告 |
| NAS | 附着、鉴权、承载、TAU | EPS承载、TAU周期 |
把六层协议放在一条数据流上看,终端的行为就变得可解释:每一次发送都是自上而下的封装,每一次接收都是自下而上的解封装;控制面与用户面在PDCP处分叉,在PHY处汇合。掌握这条主线,后续的功耗、覆盖、吞吐与排障分析才有统一的落点。