YoYO|点点滴滴学5G—一文掌握用户面数据组包原理
引言
本文主要讲述协议栈用户面组包的原理 , 重点包括MACPDU , RLCPDU和PDCPPDU的结构 , 希望读者通过阅读本篇文章 , 能掌握用户面数据包的结构 。 1.1整体架构
图1是数据包组包的整体架构图 , 当发送方要传输数据数据包传输给发送方时 , 先通过SDAP层加上SDAP头PDU投递到PDCP层 , 然后通过PDCP层加入PDCP头PDU投递到RLC层 , 最后由MAC层组包加入MACPDU头通过物理通道传输到接收方 。

文章图片
图11.2MACPDU

文章图片
图2
MACPDU(ProtocolDataUnit , 协议数据单元)是MAC层协议数据单元 , 在上行方向上 , 为了加快MAC层和物理层的处理效率 , 达到“随到随走”的效果 , 将MAC层MACSDU对应的sub-header放置在MACSDU的前面(即:MACsub-PDU和MACsub-header交织在一起) 。 而MACCE是放在整个MACPDU的后面 , 这是因为上行的很多MACCE(比如:BSR) , 只有在生成了MACsub-PDU之后 , 才会更加层2种的数据卷和其他条件来决定是否需要携带以及BSR的具体内容(如图2所示) 。
下行的MACPDU的特点是MACCE是在MACsub-PDU的前面 , 而MACsub-PDU和上行类似 , 也是把MACsub-Header和MACsub-PDU进行了交织 。 把MACCE放在MACPDU的前面是比较自然的处理(如图3所示) , 把MACCE放在MACPDU的前面是因为将这些MACCE分离后 , 马上就可以在MAC层进行协议处理 。

文章图片
图31.2.1MACsubHeader的类型与结构
MACsubHeader长度包含8bit和16bit(如图4所示),具体采用哪种长度的MACsubHeader由L3RRC层配置决定 。

文章图片
图4
LCID:sizeoftheLengthfield.0-8bits/1-16bit;
R:Reservedbit,seTheLogicalChannelID:MACSDU所属的逻辑信道实例38.321-6.2.1
L:TheLengthfieldindicatesthelengthofthecorrespondingMACSDUorvariable-sizedMACCEinbytes.ThesizeoftheLfieldisindicatedbytheFfield;
F:TheFormatfieldindicatesthetto0.1.2.2MAC实例应用
如图5所示:在下行数据传输中 , MAC层收到RLCPDU , 需要增加MACheader , 并且需要进行逻辑信道复用 , 可以理解为一个TransportBlock中 , 包含多个MACsubPDU 。

文章图片
图5
1.3RLCPDU
uRadioLinkControl位于MAC层和PCDP层之间 , 一个RLC实体对应一个UE的一个逻辑信道
【YoYO|点点滴滴学5G—一文掌握用户面数据组包原理】u三种传输模式:
uTM:TransparentMode透传
uUM:UnacknowledgedMode非确认传输
uAM:AcknowledgeMode确认传输
uRLCstatusPDU
因AM模式应用场景比较广泛 , 本文主要讲述AM模式下RLCPDU结构图(如图6所示) , 具有采用哪种长度的AMDPDU由L3RRC配置决定 。

文章图片
图6
D/C:0RLCcontrolPDU
1RLCdataPDU
P:Pollingbit1:请求对端发送一个STATUSreport
SN:12bitor18bit由L3配置1.3.1RLC实例应用
如图7所示:是以AMDPDUheader为例 , 在上一篇MAC实例的基础上 , 解析了RLC的herder

文章图片
图7
D/C为1 , 表示DATA
推荐阅读
- 一文读懂,书架箱和落地箱到底哪个好?
- 有史以来最大升级?一文看懂OriginOS带来的改变
- 超大杯来了!一文看懂OPPO Reno5 Pro+最大升级
- 简单一文教你制作多语言的Qlik Sense应用程序
- 一文看懂 为什么说鸿蒙与iOS、安卓不在一个赛道
- Python进阶教程,生成器、迭代器一文掌握
- 一文教你如何搭建http游戏服务器
- 国产高端芯片真的来了,英媒:芯片将一文不值
- 一文搞懂GO语言值类型与引用类型的区别
- 澳大利亚人:中国半导体若是自研成功,未来芯片将“一文不值”
