一、协议栈概述:基站协议栈到底是什么?

大家好,我是老张。做通信这行十几年了,每次带新人时,第一个问题总是:「基站协议栈到底是个啥?」

嗯,这个问题问得好。说白了,协议栈就是一套通信规则的总和。它规定了基站和手机之间怎么「说话」、怎么「听懂对方」。你想想看,手机和基站之间要传数据、要发信号、要协调资源,没有一套统一的规则,那不就乱套了吗?

我个人习惯把协议栈比作一个「翻译官团队」。从底层到顶层,每一层各司其职,把复杂的事情拆解成一个个小任务。我在项目中遇到过不少同事,一上来就扎进代码细节,结果越看越糊涂。其实,先搞懂分层架构,后面就顺了。

1.1 LTE/NR 协议栈的分层架构

先看一张经典的协议栈分层图。LTE 和 NR 都遵循 3GPP 规范,分层思路基本一致,只是 NR 在灵活性和性能上做了大幅增强。

层级 名称 主要功能 典型协议
L3 网络层 连接管理、移动性管理、承载控制 RRC, NAS
L2 数据链路层 调度、重传、复用、HARQ MAC, RLC, PDCP
L1 物理层 编码调制、OFDM、MIMO、射频处理 PHY

为什么会这样分?因为每一层只关心自己的事。L1 管「怎么发出去」,L2 管「怎么发得稳」,L3 管「发给谁、什么时候发」。这种解耦设计,让开发和维护都轻松很多。

L1 — 物理层

物理层是协议栈的「手脚」。它负责把二进制比特流变成电磁波发出去。LTE 用 OFDMA,NR 更进一步,支持更灵活的 numerology 和更大的带宽。我记得有一次调试 NR 的 PDSCH 解调,发现星座图总是偏的,查了半天原来是频偏估计的算法参数没配对。嗯,物理层的坑,往往藏在细节里。

核心要点: L1 是性能瓶颈所在。时延、吞吐量、覆盖,都跟物理层算法直接相关。

L2 — 数据链路层

L2 分三个子层:MAC、RLC、PDCP。我建议你按「调度→重传→加密」这个顺序去理解。

  • MAC 层:负责调度。谁在什么时候用多少资源,都是 MAC 说了算。NR 的 MAC 比 LTE 灵活得多,支持更细粒度的调度周期。
  • RLC 层:负责分段和重传。数据包太大?RLC 帮你切。丢了?RLC 帮你补。有三种模式:TM、UM、AM,项目中 AM 模式用得最多。
  • PDCP 层:负责加密、完整性保护和头压缩。说白了,就是让数据更安全、更省带宽。

我曾经在项目中遇到一个诡异的问题:VoLTE 通话时断时续。查了三天,最后发现是 RLC 层的重传定时器配得太短,导致频繁触发重传,反而把信道搞拥塞了。避坑指南:L2 的参数配置,一定要结合无线环境来调,不能照搬默认值。

L3 — 网络层

L3 主要是 RRC 层。它管的是「连接」本身。手机开机后怎么接入?小区切换怎么决策?这些都是 RRC 的事。

RRC 有三种状态:IDLE、INACTIVE、CONNECTED。NR 引入了 INACTIVE 状态,这是 LTE 没有的。好处是手机可以快速恢复连接,省电又省信令。我个人觉得,这是 NR 协议栈里最巧妙的设计之一。

小提示: 调试 RRC 信令时,多看看 ASN.1 编码。很多问题其实是编解码不一致导致的,跟逻辑无关。

1.2 协议栈在基站中的位置与作用

基站不是只有协议栈。它还有射频单元、基带处理、高层接口等等。协议栈处在中间层,往上对接核心网,往下驱动射频硬件。

你可以这样理解:

  • 往上:协议栈通过 S1(LTE)或 NG(NR)接口跟核心网通信。核心网发来的用户数据,协议栈要把它封装成空口能传的格式。
  • 往下:协议栈把处理好的数据交给基带芯片,基带芯片再控制射频单元发出去。

说白了,协议栈就是「翻译官」和「调度员」的结合体。它既要理解核心网的指令,又要指挥硬件干活。

注意: 协议栈的实时性要求极高。L1 的处理时延通常在毫秒级,L2 的调度周期也是毫秒级。写代码时,千万注意锁和内存分配的开销。我曾经见过一个项目,因为用了太多动态内存分配,导致调度抖动,整站掉线率飙升。

1.3 从 LTE 到 NR:协议栈的演进

NR 协议栈不是推倒重来的。它继承了 LTE 的很多设计,但做了几个关键改进:

  • 更灵活的 numerology:子载波间隔不再是固定的 15kHz,可以选 30、60、120kHz。这带来了更低的时延和更高的频谱效率。
  • 更细粒度的调度:NR 支持 mini-slot,调度粒度从 1ms 降到了 0.125ms。这对 URLLC 场景至关重要。
  • 更高效的节能机制:INACTIVE 状态、DRX 增强、BWP 技术,都是 NR 的亮点。

我记得刚做 NR 协议栈时,最不习惯的就是 numerology 的灵活性。LTE 里参数都是写死的,NR 里几乎每个参数都可以配。调试起来确实麻烦,但带来的性能提升也是实实在在的。

1.4 小结

协议栈是基站软件的「灵魂」。没有它,硬件再强也白搭。理解分层架构,是入门的第一步。后面我们会深入每一层的细节,包括代码实现、算法优化、调试技巧。

下一章,我们聊聊 L1 物理层的具体实现。到时候我会分享一些我在 NR 物理层调试中踩过的坑,保证让你少走弯路。

一句话总结: 协议栈就是基站的大脑,L1 是手脚,L2 是神经,L3 是决策中心。三者缺一不可。

公众号:蓝海资料掘金营,微信deep3321