NR协议学习——RLC

目录

1.SDU与PDU

2.PDU分类

3.PDU格式及参数说明

a>TMD PDU

b>UMD PDU

 c> AMD PDU

d>STATUS PDU


在协议学习过程中,我习惯先学习协议数据单元,格式及参数章节。本次记录第一次学习内容。

1.SDU与PDU

SDU指的是提交给上层或者从上层接收到的服务数据单元,SDU为字节对齐的bit流。

PDU值的是发送给下层或者从下层接收到的协议数据单元,是SDU经过RLC处理后得到。

2.PDU分类

data PDU和control PDU,可以在RLC头里通过D/C 字段区分

data PDU根据RLC实体可以分为以下3种格式:

TMD PDU:用于TM模式下的RLC实体

UMD PDU:用于UM模式下的RLC实体

AMD PDU:用于AM模式下的RLC实体

control PDU目前协议中列出一种状态报告PDU:

STATUS PDU,接收方用于通知发送方已收到的data PDU和确认丢失的data PDU

3.PDU格式及参数说明

对各种PDU的格式做简单的介绍及参数说明,包含图片全部来自于38.322协议。

a>TMD PDU

不包含RLC头,只包含数据,且不接受数据分段,我理解其等同于SDU

b>UMD PDU

UMD PDU包含两部分内容,UMD PDU头(字节对齐)和数据内容,结合SDU为字节对齐的数据单元,可以看出UMD PDU整体同样是字节对齐的。UMD PDU格式整体可以分为2种,完整包格式和分段包格式,(UM模式下支持6bits的SN长度和12bits的SN长度)。

分段包:UM模式下数据部分可以分段,但是不需要应答,分段时使用的数据结构如下图所示,包含SI,SN,或者SO(SI指示不为第一分段时使用),以6bitsSN为例,

图中SN字段,全称为Sequence Number,因为UM模式下只有分段包需要携带SN号,所以只有分段的SDU 的SN号加1(协议描述,For RLC UM,the sequence number is incremented by one for every segmented RLC SDU),即RLC UMD PDU 中的SN号一致,除了第一分段PDU外,还需要SO指示中间段位于SDU的哪个位置。

SO字段,全程为Segment offset,占用16bits,用于指示分段包在原SDU中的字节位置,即该SDU分段的第一个字节在原SDU中的位置,原SDU的第一个字节值为全0。

图中SI字段,全称为Segmentation Info, 用于指示RLC PDU中包含的是一个完整的SDU还是分段的SDU,占据2bits,有4种含义:

00:数据域,即图中Data部分,包含SDU的全部字节;

01:数据域包含SDU的第一个分段;

10:数据域包含SDU的最后一个分段;

11:数据域包含的是SDU的中间段(既不是第一个又不是最后一个分段)。

完整包格式,当SDU不需要分段时,PDU头只需携带SI字段,SI指示为00,如下图所示

 c> AMD PDU

AMD PDU头为字节对齐格式,与UMD PDU不同的是,AMD PDU即使不分段,也需要携带SN值,因为AM模式下,需要等待应答。AMD PDU头内容包括D/C指示位,P指示位,SI指示,SN指示,或者SO(当有分段,且分段不为第一段时),以12bitsSN为例,

图中 D/C字段,全称Data/Control,因为AM模式下有数据单元和控制单元,所以占用1bit用于区分;

P字段,全称Polling bit,用于指示AM实体的发送方是否需要接收方上报状态报告,占用1bit,

0, 状态报告不需要;

1,状态报告需要;

SI字段与UM一致;

SN字段,AM模式下,每个SDU的SN号加1 ,与UM不同,不需要判断是否需要分组;

SO字段与UM一致。

d>STATUS PDU

STATUS PDU 由两部分组成,STATUS PDU payload和RLC控制头;

RLC控制头包括一个D/C指示位,一个CPT指示位。

CPT字段,全称control PDU Type,用于指示RLC控制PDU的类型,目前只有一个有效取值000,表示为STATUS PDU,其他取值为保留取值。

STATUS PDU payload包括以下内容:

ACK_SN:必填项,指示了下一个没有接收到的且没有报告丢失的SDU的SN号;发送端接收到STATUS PDU,可以认为在SN = ACK_SN以前的所有SDU 接收端已经接收到或认为丢失的。

E1:必填项,扩展位指示(Extension bit 1),指示后面有没有一组NACK_SN,E1,E2,E3;

0:没有,则payload结束; 1:有,继续。

NACK_SN:可选项,由E1指示,表示接收方已确认丢失的RLC SDU 或 SDU分段的SN号;

E2: 可选项,由E1指示,与NACK_SN为一组,表示本NACK_SN后有没有一组SOstart和SOend,

0,没有;1,有。

SOstart:可选项,由E2指示,表示SN = NACK_SN的RLC SDU 的第一个字节在原SDU中的位置;

SOend:可选项,由E2和E3共同指示,

E3 为0时,SOend表示SN= NACK_SN 的RLC SDU的最后一个字节在原SDU中的位置,全1为特殊值,表示到RLC SDU的最后一个字节全部丢失。

E3为1时,SOend表示SN = NACK_SN + NACK range - 1的最后一个字节在原SDU中的位置,全1 仍表示特殊值。

E3:可选项,由E1指示,标识后面有没有NACK range;

NACK range:可选项,由E3指示,表示连续丢失的RLC SDU数,包含NACK_SN。

 

本次学习结束,欢迎指正!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值