ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

5G无线接口架构全解析:从Uu口协议栈到排障实践

5G无线接口架构全解析:从Uu口协议栈到排障实践 1. 从Uu口说起:为什么无线接口架构是5G的“最后一公里”干通信这行久了,你会发现一个很有意思的现象:核心网侧、传输侧的问题,很多时候都能靠冗余和容错“扛”过去,但唯独无线接口——也就是手机和基站之间的那个空口,它的问题没法靠堆硬件解决。因为这片空间是共享的、是充满干扰的、是时刻变化的。5G时代动不动就提“千兆体验”“毫秒级时延”,这些指标最后都要落到无线接口架构上,它才是真正决定用户体感的“最后一公里”。我这两年带新人,最头疼的不是让他们背协议号,而是让他们理解“为什么无线接口要这么设计”。很多刚入行的朋友拿着一堆3GPP协议文档,上来就看RRC、PDCP、MAC层的各种流程,结果越看越懵,因为每层都有一堆定时器、计数器、状态机,根本不知道这些参数在什么场景下会起作用。这篇文章我就想换个路子,从无线接口架构的整体设计逻辑讲起,一层一层拆开来看,最后落到实操和排障上。不管你是刚接触5G的测试工程师、优化工程师,还是想搞明白基站侧到底发生了什么的技术爱好者,这篇文章都值得你花十分钟读一遍。2. 整体设计拆解:5G无线接口到底在解决什么问题2.1 无线接口的角色定位:不只是“传数据”那么简单我们常说的无线接口,在3GPP协议里正式编号叫Uu接口,位置在终端(UE)和基站(gNB)之间。很多人下意识觉得,这不就是个“空中网线”嘛,把数据从手机传到基站不就行了。如果你这么想,后面所有细节都会理解偏。无线接口真正要干的活,远比“传数据”复杂得多。它要解决四个层面的问题:第一,怎么把手机“接进”网络,也就是随机接入和连接建立;第二,怎么在高速移动下保持通信不中断,这涉及切换和重选;第三,怎么让有限的频谱资源同时服务成百上千个用户,这涉及调度和资源分配;第四,怎么应对无线环境本身的恶搞——干扰、衰落、遮挡,这涉及各种自适应机制。所以你看,Uu口本质上是一套完整的“通信管理系统”,数据传输只是它最基础的功能之一。2.2 协议栈分层的“逻辑之美”:每一层只操自己那份心5G无线接口的协议栈,严格遵循着分层设计思想。这种分层不是3GPP拍脑袋定的,而是从OSI七层模型一脉相承下来的。分层的核心理念就一句话:每一层只干自己那摊事,层与层之间通过标准化的服务访问点(SAP)通信。这样做的最大好处是,某层技术升级不会牵连其他层。比如RLC层的重传策略改了,MAC层完全不用动;PDCP层加密算法换了,RRC层不用跟着改。从底往上数,5G空口协议栈分为物理层(PHY)、MAC层、RLC层、PDCP层、SDAP层,再往上就是RRC层和非接入层(NAS)。其中PHY到RRC这几层都归属接入层(AS),它们协同完成“让数据在无线信道上可靠地传输”这个总目标。你把这套分层理解成一家快递公司:PHY层是运输卡车,负责在复杂路况下把包裹运到下一站;MAC层是分拣中心,决定哪个包裹上哪辆车;RLC层是质检员,发现包裹破损就要求重发;PDCP层是保密专员,把包裹内容加密、打上顺序号;SDAP层是业务分类员,给不同业务类型贴上优先级标签;最上面的RRC层则是整个公司的调度总监,管哪些用户能进来、用什么套餐进来、路径怎么规划。这套分层设计的精妙之处,在于它把无线通信中各种复杂的“冲突域”隔离了开来。物理层面对的是无线信道的不可靠性,MAC层面对的是多用户争抢资源的竞争性,RLC层面对的是丢包和乱序,PDCP层面对的是安全性和切换时的数据连续性。各层各司其职,组合在一起才构成了一个完整的、可靠的、安全的传输链路。2.3 控制面与用户面:两条腿走路,谁也离不开谁无线接口协议栈还有一个最关键的设计区分——控制面(CP)和用户面(UP)分离。控制面走的是“指挥命令”,负责连接管理、移动性管理、资源配置;用户面走的是“业务数据”,也就是你刷视频、传文件那些实际载荷。这条分离思路从LTE时代就确立了,5G把它进一步强化了。为什么要分离?道理很简单:指挥命令和数据运输的诉求完全不同。控制面消息要求低时延、高可靠,而且要能随时打断——比如网络发现手机信号质量变差,要立刻下发切换命令,这个命令不能排队等着跟视频数据一起走。用户面数据则更看重吞吐量,允许一定的时延抖动。两条腿各走各的,互不干扰,才能兼顾可靠性和效率。你在看协议栈图的时候,会看到控制面协议栈是RRC-PDCP-RLC-MAC-PHY,用户面协议栈是SDAP-PDCP-RLC-MAC-PHY,两者在PDCP层以下是共享的,往上才分开。这个设计我一直觉得是整个空口架构里最漂亮的一笔——共用底层的可靠传输机制,却在业务逻辑上完全解耦。3. 物理层:无线接口的“硬功夫”3.1 时频资源这块“棋盘”:从RE到RB再到BWP讲物理层,绕不开一个核心概念:时频资源。5G NR的物理层把时间和频率两个维度都做成了“格子”。时间上,一个无线帧是10ms,分成10个子帧,每个子帧1ms,再根据参数集(numerology)的不同,每个子帧分成不同数量的时隙(slot)。频率上,最小的单位是一个子载波(subcarrier),15kHz的子载波间隔是LTE时代的老传统,5G NR把它灵活化了,支持15kHz、30kHz、60kHz、120kHz、240kHz等好几种。最小资源单位叫资源单元(RE),就是一个时隙内的一个OFDM符号上一个子载波。把RE拼起来,以12个连续子载波为一个单位,时间上占一个时隙,这就构成了一个资源块(RB)。RB再往上组合,就有了带宽部分(BWP)的概念。BWP是5G引入的一个很重要的新特性,它允许在一个大的系统带宽里,给不同终端配置不同大小的可用频段。比如一个支持200MHz带宽的基站,可以给某个物联网终端只配一个20MHz的BWP,这样这个终端就不用一直监听整个200MHz频段,功耗大幅下降。这个设计在实际部署中非常实用,尤其对功耗敏感的终端类型。参数集选择这块,我想多说几句。子载波间隔越大,符号时间越短,时延越低,但同时覆盖范围会缩小,对同步精度的要求也更高。所以大带宽、低时延的场景通常首选60kHz或120kHz子载波间隔,而追求广覆盖的场景老老实实选15kHz或30kHz。这就是为什么5G的毫米波频段清一色用120kHz子载波间隔——毫米波本身覆盖就短,那就索性把时延优势发挥到极致。3.2 下行与上行物理信道:谁负责指挥,谁负责搬砖物理层的信道划分,是理解空口数据流向的地图。下行方向,有物理下行控制信道(PDCCH)、物理下行共享信道(PDSCH)和物理广播信道(PBCH)。PDCCH是“指挥官”,它携带下行控制信息(DCI),告诉终端“你的数据在哪个资源块上、用什么调制方式、HARQ进程号是多少”;PDSCH是“搬运工”,真正承载用户的下行业务数据;PBCH则负责广播主信息块(MIB),是终端开机后最先要解码的信道。上行方向,对应的是物理上行控制信道(PUCCH)、物理上行共享信道(PUSCH)和物理随机接入信道(PRACH)。PUCCH携带上行控制信息(UCI),包括ACK/NACK反馈、信道质量指示(CQI)、调度请求(SR);PUSCH承载用户的上行业务数据;PRACH则是终端发起随机接入时使用的信道,相当于终端“敲门”的通道。这里我特别想强调PDCCH的重要性。很多优化新手只看PDSCH的吞吐量,却忽略了PDCCH的容量和可靠性,但实际上PDCCH才是下行调度的“咽喉”。如果PDCCH漏检率高,终端根本不知道数据块在哪里,吞吐量自然上不去。在密集城区场景下,PDCCH容量受限导致的调度阻塞,是个非常常见却又容易被忽视的性能瓶颈。3.3 波束管理与CSI获取:毫米波时代的新必修课5G NR引入了一个LTE时代没有的大问题:波束管理。在传统的低频段,基站天线通常是全向或扇区化的,一个小区一个覆盖方向就完了。但到了毫米波频段,信号衰减极快,必须用大规模天线阵列形成窄波束,把能量集中打向特定方向,才能保证覆盖和速率。波束管理包含波束扫描、波束测量、波束上报和波束切换这几个环节。基站会周期性地下发同步信号块(SSB)波束,终端通过测量不同波束的参考信号接收功率(RSRP),上报最优波束的编号和信号质量,网络据此给终端配置相应的专用波束。这个过程看似简单,但在实际运行中,波束失效、波束切换延迟过大、波束上报不及时等问题,都是导致毫米波用户体验差的常见原因。信道状态信息(CSI)获取也是物理层的重头戏。终端周期性或事件触发地反馈信道质量指示(CQI)、预编码矩阵指示(PMI)和秩指示(RI),基站根据这些反馈选择合适的调制编码方案(MCS)和层数。这套反馈机制的质量,直接决定了下行调度的精准度。我见过不少案例,CSI反馈周期配置过长,导致基站还在用“过时”的信道信息做调度,结果MCS选择偏高,误码率飙升,吞吐量不升反降。4. 从MAC到RRC:协议栈上层的“精细活”4.1 MAC层:调度、复用与HARQ的配合艺术MAC层在协议栈里扮演的角色,可以用“调度中枢”四个字概括。它负责逻辑信道与传输信道之间的映射、复用与解复用,负责调度决策(动态调度、半静态调度、非竞争调度等),还负责HARQ重传的控制。其中HARQ机制是整个空口可靠性传输的基石,没有之一。HARQ的思路很简单:接收方收到数据后做CRC校验,对了回ACK,错了回NACK,发送方收到NACK就重传。5G NR的HARQ支持两种重传模式:一是增量冗余(IR),每次重传发送不同的冗余版本,接收方合并软信息,增益更大;二是追逐合并(CC),重传内容与首次发送完全一致,接收方直接做能量合并。实际系统中IR用得更多,因为频谱效率更高。HARQ进程数在NR里是可配置的,下行最多16个进程,上行最多16个,比LTE的8个进程翻了一倍,目的就是为了支撑更低的时延——进程数多了,等待重传的“停摆时间”就少了。我在实际配置中发现一个容易被忽略的点:harq-ack的反馈时延参数(比如dl-DataToUL-ACK)需要根据业务的时延预算仔细调。配得太短,终端来不及处理就要反馈,容易误报NACK,引发无谓重传;配得太长,反馈延迟大,又拖慢了整体时延。这里没有一刀切的答案,需要结合终端处理能力和业务场景反复测试。MAC层的复用和解复用,也是提高频谱效率的关键。多个逻辑信道的数据可以被打包在一个传输块里发送,接收端根据MAC子头里的逻辑信道ID,把数据拆开分发到对应的无线承载上。这个机制保证了不同优先级业务可以“拼车”传输——比如VoNR的话音数据可以和eMBB的流量数据同车发送,但话音数据会被安排在更优先的逻辑信道上。4.2 RLC层:三种模式对应的三种“人生态度”RLC层负责分段与重组、重传与重复检测,它定义了三种工作模式:透明模式(TM)、非确认模式(UM)、确认模式(AM)。这三种模式就像是三种人生态度:TM模式啥也不管,直接把上层数据透传过去,不做分段、不加头,连序号都不加,适用于对开销极其敏感的场景;UM模式加序号、做分段重组,但丢了不重传,适用于可以容忍少量丢包的实时业务,比如VoNR的话音,轻微丢包可以通过语音编解码的丢包补偿来掩盖;AM模式则又分段又重传,还带状态报告机制,确保数据不丢、不乱序,适用于对可靠性要求极高的业务,比如TCP承载的文件传输。三种模式的选取,直接关系到端到端的体验。我遇到过一个有意思的案例:某个高清视频会议业务,端到端时延经常抖动,查了一圈发现RLC承载配置的是AM模式,视频帧在RLC层频繁重传,导致到达时间的抖动完全不可控。后来把承载改成UM模式,虽然偶尔丢一两个包,但视频编解码器自己能扛住,端到端时延反而更稳定了。这就是模式选型的经典案例。RLC层的分段功能也同样不可小视。每个RLC PDU的大小要适配MAC层给的传输块大小,而传输块大小又取决于物理层实时的信道质量和调度授权。信道好时传输块大,RLC就不需要分那么多段;信道差时传输块小,RLC就得把一个大SDU切成好多段发送,接收端再按序号拼回去。这个过程看似简单,但RLC重分段(RLC re-segmentation)的实现是个很考验协议栈稳定性的环节,特别是在切换过程中,源基站已经把数据传给目标基站了,但部分分段还没发完,这时需要先做分段重组,再按新配置重新分段,很容易出乱序和重复包。4.3 PDCP层:加解密、头压缩和双连接的中转站PDCP层在LTE时代就已经确立了它“中转站”的地位,到5G NR,它的职责更重了。PDCP层负责IP数据包头的鲁棒头压缩(ROHC)、加密与完整性保护(用户面只做加密,控制面要加密加完整性保护)、序号管理,以及切换时的数据转发与重排序。加密这块,PDCP层使用加密算法(NEA)对用户面数据做加密,使用完整性保护算法(NIA)对控制面数据做完整性校验。密钥的管理和推导由更高层完成,PDCP层只负责拿密钥干活。这里我提一个实际操作的坑:在NSA(非独立组网)组网初期,终端在LTE和NR之间做承载切换,PDCP层的密钥更新时序如果没处理好,很容易出现加密失败,现象是终端在切换后突然掉线,信令面上能看到大量的“MAC-I failure”报错。排查这类问题时,别急着怀疑无线覆盖,先看看密钥上下文同步是否正常。头压缩ROHC是一个“小细节大收益”的功能。语音业务的一个IP报文里,IP/UDP/RTP头加起来可能有40到60字节,而话音净载荷往往才三四十字节,头占比超过一半。ROHC通过只在第一个包传完整头、后续包传增量头的方式,能把头部压缩到1到3个字节,这对VoNR这种小包高频率业务来说,频谱效率的提升非常可观。但ROHC也有副作用——它对乱序和丢包非常敏感,一旦上下文失步,需要发送IR(初始化刷新)包来重建上下文,这个过程会带来额外的时延和数据丢失。所以在高误码环境中,ROHC增益有时候会被上下文频繁重建抵消掉。4.4 SDAP层:5G新增的“业务分流导向牌”SDAP层是5G NR协议栈里新增的一个层,位置在PDCP层之上,专门负责QoS流(QoS Flow)到数据无线承载(DRB)的映射。5G核心网侧的QoS管理体系比LTE精细得多,一个PDU会话可以承载多个QoS流,每个QoS流有不同的优先级、时延预算和丢包率要求。SDAP层的作用,就是把业务数据按照QoS规则,引导到对应的DRB上。打个比方,SDAP层就像一个机场里的导向牌:出发层(PDU会话)里的旅客(QoS流)要去不同的登机口(DRB),导向牌负责按优先级和安检要求做引导。SDAP头里有一个重要的标记位——反射QoS指示(RQI),网络侧可以通过它来指示终端把某个上行QoS流直接映射到某个DRB,这样上行方向上就不需要网络侧逐包下发映射规则了,节省了信令开销。实操中我见过不少QoS映射配置出问题的案例:比如某个运营商的视频业务明明有专属的5QI承载,但数据却走了默认承载,导致视频卡顿。排查时第一步就看SDAP层的QoS流到DRB映射表,再用Wireshark或基站侧信令跟踪看上行方向的SDAP头里的QFI值是否正确,问题往往很快就能定位到是核心网下发的QoS规则出错,还是基站侧映射配置不对。4.5 RRC层:无线接口的“总指挥”RRC层,全称无线资源控制层,是整个空口协议栈的大脑和总指挥。它负责系统信息广播、连接建立与释放、测量配置与上报、切换控制、密钥管理等。终端和基站之间的RRC连接,是一切业务的前提。RRC层的主要状态有三种:RRC_IDLE(空闲)、RRC_INACTIVE(非活跃)和RRC_CONNECTED(连接态)。INACTIVE态是5G新增的,它介于IDLE和CONNECTED之间,保留了一部分上下文,可以快速恢复连接,适用于高频繁小数据传输的业务。RRC层的信令流程是日常优化和排障中接触最多的内容。比如随机接入过程中的RRC连接建立流程,RACH失败率、连接建立成功率都是最基础也是最关键的KPI。我分享一个排查思路:如果你的RRC连接建立成功率偏低,先别只盯着RRC层信令看,把PHY/MAC层的随机接入结果拉出来一起看。很多时候是PRACH的覆盖不够或者竞争冲突过多,导致MAC层随机接入就失败了,根本走不到RRC层信令交互那一步。要区分是“根本没接上”还是“接上了但失败”,这个判断能帮你省一半排查时间。测量配置和切换控制,也是RRC层的重要职责。5G引入了测量间隙(Measurement Gap)机制,终端在测量异频或异系统邻区时,需要暂停本小区的收发,这个Gap的配置直接影响测量准确性和业务连续性。Gap配得太短测量做不完,配得太长又影响吞吐量,这是优化工程师经常要反复调试的参数。NR里的切换流程基本沿用了LTE的“测量上报-切换决策-切换执行”三步走,但又引入了双激活协议栈(dual active protocol stack)的机制来缩短中断时延,让切换过程更加丝滑。5. 实操视角:从参数配置到排障实录5.1 一套常用的无线接口关键参数配置参考很多人学协议栈知识很兴奋,但一到实际配置就抓瞎,因为参数太多不知道从哪下手。这里我分享一套我自己日常优化中经常用到的基础参数配置思路,给大家做个参考。注意,这只是一个基准参考值,实际部署必须以设备厂商的配置规范为准,不同厂商之间参数名称和取值范围差异很大。物理层重点参数:子载波间隔常规场景选30kHz(兼顾覆盖和时延),热点场景选60kHz或120kHz;PDCCH聚合级别从1到8可选,普通城区建议从聚合级别4起步,覆盖边缘区域再上调;CSI反馈周期建议配置为10ms或20ms,兼顾反馈新鲜度和开销。MAC层重点参数:harq进程数下行16、上行16,这是默认值;调度策略选择比例公平(PF),不要在初期就上最大C/I调度,那会让边缘用户完全没吞吐量;harq-ack反馈时延建议先按20ms配置,再根据实际误码情况逐步调低。RLC层重点参数:VoNR业务承载用UM模式,数据业务承载用AM模式,RLC缓存区大小要根据业务模型配置——视频直播类业务缓存配大一些,交互类游戏业务缓存配小一些以减少排队时延。PDCP层重点参数:ROHC建议对VoNR业务开启,视频业务是否开启要看终端支持情况;discardTimer(丢弃定时器)的配置也很关键,对于时延敏感业务,PDCP丢弃定时器配短一点,超时的数据直接丢掉以防止无效传输。SDAP层重点参数:默认承载的QoS流映射建议把所有低优先级业务映射到一起,把高优先级业务映射到专门的DRB;QFI的分配规则要和核心网的PCRF/PCC策略对齐,不然会出现映射冲突。RRC层重点参数:连接态不活动定时器(inactivitytimer)的配置,决定了用户在业务结束后多久会掉到INACTIVE态或IDLE态。这个值配长了浪费基站资源,配短了用户频繁重建连接又增加信令开销。我一般建议视频类业务配10秒,普通浏览类业务配30秒,然后根据基站CPU负荷和信令指标做微调。提醒一点:任何参数配置改动之前,先做批量采集当前配置的基线快照。我见过太多同行改完参数发现效果不好,想回滚却发现没有留基线,最后只能对着几百个参数一个一个试探,那叫一个痛苦。5.2 抓包分析:如何从“蛛丝马迹”里定位无线接口故障空口的排障和核心网排障有一个本质区别:空口没有网线可以插,没法直接把Wireshark挂在终端和基站之间。所以真正做空口抓包分析,一般靠三种手段:一是终端侧日志,高通和海思平台都有专业的log抓取工具;二是基站侧信令跟踪,比如中兴和华为的网管系统都有完整的Uu口信令追踪能力;三是路测工具,通过扫频仪和测试手机配合,采集空口信令和RF数据。定位无线接口故障,我总结了一个“三层跳”的思路。第一跳,先看RF层:终端接收功率RSRP是否达标、信噪比SINR是否正常——如果RSRP极低,那大概率是覆盖问题,后面所有层的问题都不用查了。第二跳,再看MAC层:随机接入是否成功、上行同步是否正常、HARQ误码率是否高——如果MAC层的HARQ误码率长期超过10%,说明链路质量在物理层就已经很恶劣了。第三跳,最后才看RRC层和业务层:连接建立流程是否走通、RRC重配置是否失败、PDCP层的丢包率是否超标。举一个我实际处理过的案例。有一个站点投诉说用户5G上网经常断流,峰值速率正常但一会高一会低。我先看一眼基础指标,RSRP和SINR都很正常,MCS选择却频繁波动,而且MAC层的HARQ重传率高得离谱。这时候逻辑就清楚了:物理层信道质量没问题,但数据传输总出错,大概率是干扰问题——不是白噪声干扰,而是突发性的同频干扰。后来用扫频仪在周边一测,果然是附近一个新开的站点时钟同步出问题,产生了严重的下行同频干扰。这个案例说明,排障不是从协议栈最上层铺开去找,而是顺着数据流的方向逐层定位,先排除物理层再往上看,效率最高。5.3 常见问题速查:无线接口故障排查对照表我把日常工作中最常遇到的无线接口故障整理成了一个速查表,方便一线兄弟们参考。故障现象可能原因排查与解决建议RRC连接建立成功率低随机接入失败、PRACH覆盖不足、小区拥塞检查PRACH的RSRP门限,提升前导发射功率;查看随机接入冲突率是否过高PDSCH吞吐量低MCS选择过高、误码率高、PDCCH盲检漏检查看CSI反馈是否过期,调整CSI周期;检查邻区干扰,优化波束方向切换成功率低目标小区信号质量差、测量上报滞后、密钥更新失败检查测量Gap配置是否合理;核验目标小区和源小区的PDCP密钥上下文是否一致上行时延抖动大RLC UM/AM模式选错、HARQ反馈延迟配置过长检查承载模式是否符合业务类型;调小harq反馈时延终端耗电快BWP配置过大、PDCCH盲检次数过多为终端配置更小的BWP,合理配置CDRX周期SA组网下VoNR话音断续ROHC上下文失步、RLC层丢包、切换中断查看PDCP层的ROHC上下文重建频率;核验切换流程是否走完“双激活协议栈”这张表不能解决所有问题,但它能帮你把“无线接口故障”这个笼统的概念,拆解成一个个可以下手排查的具体方向。很多时候我们觉得问题复杂,只是因为还没有把问题拆分到位。6. 结尾:一点个人的真心话写到这里,无线接口架构的核心框架就已经讲得差不多了。作为一个天天跟这些协议层打交道的工程师,我最后想说的是:别被那一堆缩写词吓住,PHY、MAC、RLC、PDCP、SDAP、RRC,说到底就是一套“分而治之”的管理体系。我在实际工作中体会最深的一件事是,真正的高手从来不是把每一层协议都背得滚瓜烂熟,而是遇到问题时能快速判断“这个问题应该在哪一层找原因”。比如用户速率低,先分清是物理层资源不够,还是MAC层调度不公平,还是RLC层不断重传导致效率低下,还是应用层TCP限速。这种分层定位的能力,比死记硬背任何一条参数都管用。所以如果你正在学5G无线接口架构,我的建议是:先用两周时间把协议栈每一层的职责边界和主要信令流程画明白,再上手抓包分析,最后再自己去调几次参数、排几次故障,这个过程走完,你对无线接口的理解就算真正入门了。后面再遇到那些看起来纷繁复杂的KPI考核和对齐,你也能一眼看穿它们到底在考核哪一层、哪个环节。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进