好的,在深入剖析了5G物理层的波形、帧结构、上下行核心信道和关键程序之后,我们将把目光聚焦于第二层(Layer 2)的核心——MAC(媒体接入控制)子层。如果说物理层是网络的“肌肉和骨骼”,负责执行具体的传输动作,那么MAC层就是网络的“小脑和神经末梢”,负责精细地协调和控制这些动作。
深度解析 3GPP TS 38.300:6.2 MAC Sublayer (MAC子层)
本文技术原理深度参考了3GPP TS 38.300 V18.5.0 (2025-03) Release 18规范中,关于“6.2 MAC Sublayer”的核心章节,旨在为读者全面解构5G MAC子层的核心服务与功能、逻辑信道的分类与映射,以及HARQ机制的运作原理。
前言:“空中交通”的首席调度员
让我们回到我们的主角小明的日常。他正在使用5G手机,同时进行着三件事:与家人进行VoNR高清语音通话,后台下载着一部高清电影,并且他的手机还在周期性地向网络上报信道质量(CSI)信息。这三类截然不同的“信息流”——低时延的语音、大带宽的视频、短小精悍的信令——在他的手机内部汇聚,最终都需要通过同一个物理信道(PUSCH)发送出去。
是谁来决定在下一个千分之一秒,是先发送一小段语音数据包,还是发送一大块电影数据,亦或是优先插播一条紧急的信令?这个复杂而又至关重要的“交通调度”决策,正是由MAC子层来完成的。
导师老王将MAC层比作“空中交通的首席调度员”。它坐镇于RLC层和物理层之间,承上启下,负责将上层各种类型的逻辑数据流,高效、有序地复用到下层的物理传输资源上。38.300的6.2节,就是这位“首席调度员”的“工作手册”。
今天,我们将深入这位调度员的工作台,看看他是如何通过一系列精妙的工具——逻辑信道、HARQ、优先级处理——来指挥繁忙的空中交通的。
1. MAC的“工作清单”:服务与功能 (6.2.1)
规范6.2.1节首先以清单的形式,罗列了MAC子层的核心职责。我们可以将其归纳为三大类:数据通路、控制与调度、可靠性保障。
The main services and functions of the MAC sublayer include:
1.1 数据通路功能:复用/解复用
这是MAC最基本的功能,即数据的“打包”与“拆包”。
- Mapping between logical channels and transport channels;
- Multiplexing/demultiplexing of MAC SDUs belonging to one or different logical channels into/from transport blocks (TB) delivered to/from the physical layer…
-
映射(Mapping):MAC层建立了逻辑信道和传输信道之间的桥梁。它将来自不同逻辑信道的数据,映射到合适的传输信道上(如DL/UL-SCH)。
-
复用(Multiplexing):在上行链路,当gNB为UE分配了一块PUSCH资源后,UE的MAC层会像一个熟练的打包工,根据各个逻辑信道的优先级和可用数据量,从一个或多个逻辑信道中抽取RLC PDU(现在称为MAC SDU),为它们添加MAC子头部(指明其来源逻辑信道和长度),然后将它们“打包”成一个传输块(Transport Block, TB),交给物理层。
-
解复用(Demultiplexing):在下行链路,UE的MAC层接收到物理层递交的TB后,会根据其中的MAC子头部,执行“拆包”动作,将数据准确地分发回给对应的RLC实体。
1.2 控制与调度功能:优先级处理
当多种业务同时需要发送时,谁先走?这是MAC调度需要解决的核心问题。
- Scheduling information reporting;
- Priority handling between UEs by means of dynamic scheduling;
- Priority handling between logical channels of one UE by means of logical channel prioritisation;
-
调度信息上报:UE的MAC层负责生成并上报BSR(缓冲区状态报告)和PHR(功率余量报告),这是gNB调度器进行上行资源分配的“耳目”。
-
UE间优先级处理:在gNB侧,MAC调度器根据各个UE的业务优先级、信道质量、公平性等因素,动态地在不同UE之间分配资源。这是UE间的调度。
-
逻辑信道间优先级处理:在UE侧,当一次上行授权(UL Grant)到来时,UE的MAC层需要根据RRC配置的逻辑信道优先级(LCP)规则,来决定先填充哪个逻辑信道的数据。例如,承载VoNR语音的DRB的优先级,通常远高于承载文件下载的DRB。这是UE内的调度决策。
1.3 可靠性保障:HARQ
- Error correction through HARQ (one HARQ entity per cell in case of CA);
MAC层是**HARQ(混合自动重传请求)**机制的大本营。它为每一次TB的传输管理一个HARQ进程,负责处理来自物理层的ACK/NACK反馈,并决定是发送新数据还是重传旧数据。在载波聚合(CA)场景下,每个成员载波(Cell)都拥有自己独立的一套HARQ实体,它们并行工作,互不干扰。
2. 数据的“出身”:逻辑信道 (6.2.2 Logical Channels)
为了实现精细化的优先级处理,MAC层首先需要知道每个数据包的“出身”,即它属于哪种类型的信息。这个“出身证明”,就是逻辑信道(Logical Channel)。
Different kinds of data transfer services as offered by MAC. Each logical channel type is defined by what type of information is transferred. Logical channels are classified into two groups: Control Channels and Traffic Channels.
逻辑信道根据传输内容的类型,被分为两大类:
2.1 控制信道 (Control Channels)
这类信道只用于传输控制面的信息。
-
BCCH (Broadcast Control Channel):广播控制信道,下行单向。用于广播系统信息(MIB, SIBs)。是网络对所有UE的“公开喊话”。
-
PCCH (Paging Control Channel):寻呼控制信道,下行单向。用于寻呼处于IDLE/INACTIVE状态的UE。是网络对特定UE的“点名呼叫”。
-
CCCH (Common Control Channel):公共控制信道,双向。用于UE在RRC连接建立过程中的初始信令交互(如
RRCSetupRequest)。这是UE与网络之间的“初次问候”。 -
DCCH (Dedicated Control Channel):专用控制信道,双向。用于UE与网络在RRC_CONNECTED状态下的信令交互(如切换命令、配置更新)。这是UE与网络之间的“私密对话”。
2.2 业务信道 (Traffic Channels)
这类信道只用于传输用户面的信息。
- DTCH (Dedicated Traffic Channel):专用业务信道,双向。用于传输一个UE的用户数据,如小明的视频、语音、网页等。这是承载所有用户业务的“大动脉”。
3. 从“内容”到“通道”的映射 (6.2.3 Mapping to Transport Channels)
定义了数据的“出身”(逻辑信道)后,MAC层就需要根据它们的“出身”和“投递要求”,将它们映射到我们在5.5节学过的传输信道上。
In Downlink, the following connections between logical channels and transport channels exist:
-
下行映射:
-
BCCH → BCH (用于承载MIB) 或 DL-SCH (用于承载SIBs)
-
PCCH → PCH
-
CCCH, DCCH, DTCH → DL-SCH
-
In Uplink, the following connections between logical channels and transport channels exist:
-
上行映射:
- CCCH, DCCH, DTCH → UL-SCH
可以发现,共享信道(DL/UL-SCH)是绝对的主力,承载了除了MIB和寻呼之外的几乎所有下行信息,以及所有的上行业务和信令。而BCH和PCH则像是为特殊广播任务开辟的“专用通道”。
4. 快速纠错专家:HARQ机制 (6.2.4 HARQ)
HARQ是MAC层保障数据可靠、低时延传输的“王牌”功能。
The HARQ functionality ensures delivery between peer entities at Layer 1. A single HARQ process supports one TB when the physical layer is not configured for downlink/uplink spatial multiplexing, and when the physical layer is configured for downlink/uplink spatial multiplexing, a single HARQ process supports one or multiple TBs.
-
HARQ实体:MAC层为每个激活的小区维护一个HARQ实体。
-
HARQ进程:每个HARQ实体内部,包含多个并行的HARQ进程(例如,NR中通常有8个或16个)。每个进程都是一个独立的“停等协议(Stop-and-Wait)”实例。
-
工作流程:
-
调度器为HARQ进程#N分配一次传输机会。
-
MAC层将一个TB交给物理层,在进程#N下进行发送。
-
发送后,进程#N进入等待ACK/NACK的状态。此时,调度器可以立即使用另一个空闲的HARQ进程(如进程#N+1)来发送下一个新的TB,而无需等待进程#N的反馈。
-
当进程#N收到反馈后:
-
如果收到ACK,进程#N被释放,可以用于下一次新数据传输。
-
如果收到NACK,MAC层会指示物理层在下一次调度机会中,为进程#N安排一次重传。
-
-
通过这种多进程并行的停等机制,HARQ在等待单个数据包反馈的同时,信道并不会被闲置,从而极大地提升了链路的吞吐率。
- MIMO与HARQ:当配置了MIMO多流传输时,一个HARQ进程可以关联一个或两个码字(Transport Block),这取决于传输层数。
总结:承上启下的“神经中枢”
通过对6.2节的深入学习,我们清晰地看到了MAC层作为协议栈“神经中枢”的关键作用。它上承RLC层交付的、带有不同“出身”(逻辑信道)的数据,下启物理层强大的传输能力(传输信道)。
-
分类与映射是基础:通过逻辑信道对信息进行分类,并将其映射到具有不同传输特性的传输信道,MAC层实现了对多样化业务的差异化处理。
-
优先级调度是核心:无论是UE间的动态调度(gNB侧),还是逻辑信道间的优先级排序(UE侧),都是MAC层实现QoS保障和资源高效利用的核心手段。
-
HARQ是可靠性的基石:通过多进程并行的HARQ机制,MAC层在物理层之上构建了一道快速、高效的可靠性屏障。
MAC子层的工作,就像一场精妙的“俄罗斯方块”游戏:来自上层的各种形状(不同逻辑信道的数据)的“方块”不断掉落,MAC调度员需要根据规则(优先级、QoS),快速地将它们旋转、拼接(复用),严丝合缝地填入由物理层提供的有限空间(传输块)中,以达到最高的“得分”(吞吐率和资源利用率)。
在下一篇文章中,我们将继续向上层探索,进入6.3节RLC子层和6.4节PDCP子层,看看数据在被MAC层“调度”之前,是如何被进行“分段重组”、“加密保护”和“头压缩”的。
FAQ
Q1:逻辑信道、传输信道和物理信道,能否用一个简单的比喻来区分它们?
A1:当然可以。想象一个邮局的运作流程:
-
逻辑信道就像是信件的类型:平信、挂号信、紧急公文、广告传单。它们的“内容性质”不同。
-
传输信道就像是邮局提供的运输服务:普通邮政(可能丢,尽力而为)、EMS特快专递(有追踪,保证送达)、同城广播投递(发给全城人)。它们的“服务特性”不同。
-
物理信道就像是具体的运输工具:绿皮邮政车、高铁、飞机。它们是承载信件的“物理实体”。
MAC层的工作,就是根据信件类型(逻辑信道),选择合适的运输服务(传输信道)。物理层的工作,就是把选择了EMS服务的信件,装上飞机(物理信道)送走。
Q2:在上行链路中,当gNB给UE一个UL Grant时,UE是如何决定先传哪个业务的数据的?
A2:这是由**逻辑信道优先级(Logical Channel Prioritization, LCP)**机制决定的。gNB会通过RRC信令,为UE的每一个逻辑信道(DRB/SRB)配置一个优先级(1-16,数值越小,优先级越高)、一个PBR(优先比特速率)和一个BSD(桶大小持续时间)。当UL Grant到来时,UE的MAC层会:
-
首先,按照从高到低的优先级,为每个逻辑信道分配资源,直到满足其PBR(优先比特速率)。
-
如果还有剩余的UL Grant资源,再按照从高到低的优先级,将剩余资源分配给所有还有数据待传的逻辑信道。
通过这个机制,gNB可以确保,即使在一个UL Grant内,高优先级的业务(如VoNR语音)也总是比低优先级的业务(如文件下载)得到优先的传输机会。
Q3:HARQ和RLC ARQ都负责重传,为什么MAC层的HARQ要设计得那么快?
A3:因为它们处理的错误类型和目标不同。MAC层的HARQ主要处理的是由无线信道快速衰落、瞬时干扰等物理层因素造成的传输错误。这些错误是随机的、时变的,发生频率很高。因此,需要一个非常快速的反馈和重传闭环(毫秒级)来迅速纠正它们,否则链路吞吐率会急剧下降。而RLC层的ARQ处理的是HARQ“搞不定”的、更顽固的丢包,例如,一个数据包经过多次HARQ重传后仍然失败,或者HARQ反馈信息本身在上传时丢失了。RLC ARQ的时间尺度更长(几十到上百毫秒),它不追求极致的速度,而是作为最终的可靠性保障,确保上层应用数据的完整性。
Q4:为什么载波聚合时,每个小区都有独立的HARQ实体?
A4:这是为了简化设计和实现并行处理。每个成员载波(小区)的无线信道条件是独立变化的,它们的调度决策也是(在MAC层)相对独立的。为每个小区设置独立的HARQ实体,意味着每个小区的HARQ进程、时序和反馈都只与本小区相关,互不影响。UE可以同时在PCell上运行一套HARQ进程,在SCell1上运行另一套,在SCell2上运行第三套… 它们并行工作,就像多个CPU核心在同时处理不同的任务。这种设计大大简化了多载波下的HARQ状态管理,并使得总的HARQ处理能力可以随着载波数量的增加而线性扩展。
Q5:MAC头部是做什么用的?它会带来很大的开销吗?
A5:MAC头部的主要作用是解复用。在一个传输块(TB)中,可能包含了来自多个不同逻辑信道的数据段。MAC头部就像一个“目录”,它位于TB的起始位置,通过一系列的“MAC子头部”来指明:“接下来的100字节来自逻辑信道3,再接下来的50字节来自逻辑信道5…”。接收端的MAC层通过解析这个“目录”,就能准确地将数据分发给正确的RLC实体。MAC头部的开销经过精心设计,是可变的。对于只包含一个逻辑信道数据的简单TB,头部可能只有1-2个字节;对于复用了多个逻辑信道的复杂TB,头部会稍大一些。但相比TB本身承载的数据量,这个开销通常是很小的。