跬步网 - 5G知识分享平台, 5G论坛

 找回密码
 立即注册
搜索
热搜: 金辉5G NR LTE
查看: 38639|回复: 18

[5G_NR] RLC之AM模式简介

[复制链接]

198

主题

1637

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
78852
发表于 2020-1-11 22:14:58 | 显示全部楼层 |阅读模式
AM模式简介
5 A/ I5 h: P+ Y8 }! E+ C
    AM模式是Acknowledged Mode的简称,即“确认模式”。顾名思义,对使用AM模式的RLC实体而言,发送端在发送完数据后,需要等待对端的确认信息。接收端在收到数据后,需要给对端发送其是否正确收到数据的确认信息。发送端在收到确认信息后,需要重新发送确认信息中指示接收失败的数据。

& U4 y% S5 u9 w$ z6 c' G
    AM模式通过错误检测和重传,提供了一种可靠的传输服务。AM模式主要用于对错误敏感(error-sensitive)、允许一定延时(delay-tolerant)且可靠性要求较高的非实时性(non-realtime)业务。大多数的交互式或后台运行类业务属于这一范畴,如网页浏览、e-mail和文件下载等。在控制面,除使用TM模式的那些RRC消息外,其它RRC消息均使用AM模式,以利用AM模式的确认和重传机制来保证传输的可靠性。

7 y- J1 S. a! l* F& u/ r
    AM模式既支持用户面的数据传输,也支持控制面的数据传输。AM模式支持通过逻辑信道DL/UL DCCH或DL/UL DTCH来接收/发送RLC PDU。除SRB0外的其它SRB,固定使用AM模式。对于DRB,可以使用UM或AM模式。
: O' p2 R+ B  c
    在gNB或UE侧,一个AM实体既包含接收侧,又包含发送侧,即能够同时收发数据。AM实体提供了双向的数据传输服务。这主要是因为发送的数据需要被确认,因此有双向的数据传输需求。

) E( a& x* C6 u# N
    AM实体发送/接收2种类型的PDU:
  • RLC data PDU:也称为AMD PDU,该PDU可能包含一个完整的RLC SDU,也可能包含一个RLC SDU分段。(NR中不存在AMD PDU segment)
  • RLC control PDU:即STATUS PDU。
      f1 T7 S/ c8 G% L% w" z
: S+ @  }6 ]5 d! Z! p0 y5 |8 a

1 E4 @- z9 @# z$ g( ?3 `; U
图1:AM实体模型
$ @& b" `: F! r1 ]" i) G
    图1(对应38.322的Figure 4.2.1.3.1-1)是AM实体的功能模型。可以看出:

4 `- k' y; O, M0 U9 p    AM实体在发送端主要做以下几件事:$ A+ Q. f* `/ L" S2 e
  • AM实体在收到来自上层(PDCP层)的RLC SDU后,会立即为每一个RLC SDU生成一个RLC头部,并缓存在传输buffer(transmission buffer)中。
  • 当MAC层通知AM实体发送RLC PDU时,由MAC层指定的所有RLC PDU的总大小通常不能保证所有的RLC SDU都能完整的发送出去,所以在发送端需要对最后一个传输的RLC SDU进行分段并重新生成RLC头部,以便参与这次传输的所有RLC PDU的总大小匹配MAC层指定的大小。
  • 最后为参与这次传输的所有RLC SDU或RLC SDU分段添加RLC头部,以生成RLC PDU。
  • AM实体的发送端支持RLC SDU或RLC SDU分段的重传(ARQ):发给MAC层的RLC PDU同时会放在重传buffer(retransmission buffer)中,以便支持可能存在的重传。如果收到了对应整个RLC SDU的ACK,则对应的RLC PDU将从重传buffer中删除;如果收到了对应整个或部分RLC SDU的NACK,则会重传整个或部分SDU。
  • 如果在一次传输机会中,MAC层指定的所有RLC PDU的总大小无法保证需要重传的RLC SDU或RLC SDU分段(包括RLC头部)完整地发送出去,则需要对RLC SDU进行分段,或对RLC SDU分段进行重分段。重分段的次数是没有限制的。每个分段将以一个独立的AMD PDU进行传输(但属于同一RLC SDU的不同分段的SN都相同,等于原始RLC SDU的SN值),并重新生成头部以指示新的AMD PDU是如何生成的(不同分段会在不同的传输机会里传输)。+ {$ e% F% A; s1 b
$ ^: r2 _2 B* A( j2 ^" L
    AM实体在接收端主要做以下几件事:
  • 判断收到的AMD PDU是否是重复包(duplication)。如果是的话,丢弃该重复包。
  • 检测MAC层是否丢失了ADM PDU。如果丢失了,请求对端的AM实体重传该PDU对应的RLC SDU。
  • 基于接收到的AMD PDU的重组出RLC SDU。只要生成了一个完整的RLC SDU,就立即递送给PDCP层。
    $ n! n8 p6 ^! Z

. G$ q' z  Y/ b+ e7 v
    可以看出,AM接收端是不会对RLC SDU进行重排序的,因此送往PDCP层的数据可能是乱序的。除了重传、重复包检测和协议错误检测外,AM模式与UM模式提供了类似的RLC层功能,如分段/重组以及重组SDU等等。
% S# M( b6 p7 B) F" u, Q' ^& L3 E

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

19

帖子

136

积分

注册会员

Rank: 2

积分
136
发表于 2020-8-26 17:41:17 | 显示全部楼层
老师,为什么UM模式下没有RLC SDU重分段一说,UM模式下重传一定能够分配需要重传的资源吗,还是不够的话直接丢弃了?
回复

使用道具 举报

198

主题

1637

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
78852
 楼主| 发表于 2020-8-26 22:57:38 | 显示全部楼层
tbb19880830 发表于 2020-8-26 17:41
; Y2 S' T' g/ f- B+ f老师,为什么UM模式下没有RLC SDU重分段一说,UM模式下重传一定能够分配需要重传的资源吗,还是不够的话直接丢 ...

  R- |# r% H; @" }" T# W2 BUM模式没有重传,没有确认机制,根本不知道接收端是否收到,因此不会对RLC SDU进行重新分段。一个RLC SDU(或分段)发出去就结束了,而不会对分段进行重分。
回复

使用道具 举报

0

主题

2

帖子

56

积分

VIP会员

Rank: 10Rank: 10Rank: 10

积分
56
发表于 2020-10-29 14:14:42 | 显示全部楼层
既然收端RLC是乱序递交给收端PDCP,那收端RLC怎么判断哪些报文丢失?
回复

使用道具 举报

198

主题

1637

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
78852
 楼主| 发表于 2020-10-29 16:11:12 | 显示全部楼层
sidecityboy 发表于 2020-10-29 14:14
- E" z1 q* Y0 K1 p. b. S/ d9 Z既然收端RLC是乱序递交给收端PDCP,那收端RLC怎么判断哪些报文丢失?
  G, h- s- U# G0 }% E
基本还是基于RLC层的SN来判断。
, @# }( V& o3 x4 @
8 F, |/ M: f5 |3 R1、由于UM模式下只有RLC SDU的分段会有一个对应的SN,因此UM模式下只能判断一个RLC SDU的分段是否丢失了。其无法判断一个完整的RLC SDU是否丢失了,这交由PDCP来判断。0 ^* P+ o, N) G- E- @8 \  n

, k* C( F! g* N$ R2、AM模式是基于SN来判断某个RLC SDU是否丢失了的,丢失了的RLC SDU会要求对端重传。

点评

RLC层有重排序定时器吗? 就是RLC接收端怎么这个报文是乱序了还是丢包了  详情 回复 发表于 2020-11-6 12:00
回复

使用道具 举报

0

主题

2

帖子

56

积分

VIP会员

Rank: 10Rank: 10Rank: 10

积分
56
发表于 2020-11-6 12:00:49 | 显示全部楼层
本帖最后由 sidecityboy 于 2020-11-6 12:01 编辑   n- W0 D! N  }7 e) Q
jinhui.wen 发表于 2020-10-29 16:11
% \0 h( d2 N, H. L5 W基本还是基于RLC层的SN来判断。6 Q% p: o; e$ L2 C

4 a; L8 Y" |8 M- |! a2 g/ x; v, |) U1、由于UM模式下只有RLC SDU的分段会有一个对应的SN,因此UM模式下只能 ...
$ Y* b8 k- H3 x2 N" {
RLC层有重排序定时器吗? 就是RLC接收端怎么判定这个报文算乱序了还是算丢包了,还是只要收到SN不连续的情况,立马判定这个包丢了,不会去等超时后再判断它丢包了
$ \7 R6 d- c+ t/ k
回复

使用道具 举报

198

主题

1637

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
78852
 楼主| 发表于 2020-11-8 20:11:48 | 显示全部楼层
sidecityboy 发表于 2020-11-6 12:002 t  ^  R1 v. W: G8 K& z
RLC层有重排序定时器吗? 就是RLC接收端怎么判定这个报文算乱序了还是算丢包了,还是只要收到SN不连续的情 ...

1 J3 x( _# Y6 qNR中,RLC层不再有重排序定时器了。RLC接收端不关心报文是否乱序了,收到一个完整的RLC SDU就往PDCP层送。
' p, O5 j" l- y$ X4 w7 x/ \1 w# |& [: _- y# b/ Y/ I
UM模式不知道报文是否丢失了,其只知道某个特定RLC SDU的分段是否丢失了。1 i6 P2 i( W4 z8 N
4 m/ n2 f  E' R4 P* W
AM模式是知道报文是否丢失了的,这个是基于SN来判断的。并基于t-Reassembly定时器来确定RLC SDU是否丢失了。
9 s& t! u' `1 d) J4 R  ~0 Z1 z# N' @- w' U% g% i
t-Reassembly超时,说明 “至少有一个SN < RX_Next_Status_Trigger的RLC SDU在该t-Reassembly指定的时间范围内没有被成功接收到”,此时接收端认为那些还未成功接收的RLC SDU已经丢失了,会要求发送端重传这些RLC SDU。
/ q9 |4 F( u# K+ o( e4 G# Z& K; u5 p! j* E
回复

使用道具 举报

0

主题

12

帖子

244

积分

VIP会员

Rank: 10Rank: 10Rank: 10

积分
244
发表于 2020-12-2 08:05:02 | 显示全部楼层
温老师,请问一下,在AM实体发送端所作的事情中,RLC的头部在一接收到PDCP的发送包时就生成了,并放到了buffer中,为何在第三步“最后为参与这次传输的所有RLC SDU生成RLC头部”,这样不就进行了两次生成RLC头部了吗?就没有了“一接收到PDCP包,马上生成RLC头部”带来的降低时延的效果了吗?
回复

使用道具 举报

198

主题

1637

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
78852
 楼主| 发表于 2020-12-2 09:05:37 | 显示全部楼层
leroywang 发表于 2020-12-2 08:05
9 U9 R  v+ N/ F# P% p温老师,请问一下,在AM实体发送端所作的事情中,RLC的头部在一接收到PDCP的发送包时就生成了,并放到了buf ...

5 G9 z' I" s0 S% ^- B# R你的理解是对的。确实是一收到PDCP包就生成了RLC头部。但这个RLC头部可能由于分段等原因而重新生成。
5 K+ o5 ]8 E- y. U( B) H$ y0 l
另外,一开始生成的RLC头部并不一定立即添加到RLC SDU(或分段)的开头处,可能在最后确定了最终的RLC头部后才添加到RLC SDU(或分段)的开头处。

点评

谢谢老师!  详情 回复 发表于 2021-1-21 09:00
回复

使用道具 举报

0

主题

12

帖子

244

积分

VIP会员

Rank: 10Rank: 10Rank: 10

积分
244
发表于 2021-1-21 09:00:57 | 显示全部楼层
jinhui.wen 发表于 2020-12-2 09:05# [9 Q5 |; W5 S6 ~, d4 b' O
你的理解是对的。确实是一收到PDCP包就生成了RLC头部。但这个RLC头部可能由于分段等原因而重新生成。+ V5 L9 R. }% v! J

1 G5 g# e8 U0 h; d- q) {  m# ~另 ...
. T) h% U: T6 ]
谢谢老师!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|苏公网安备 32010402000881号|跬步网 ( 苏ICP备20002541号 )

快速回复 返回顶部 返回列表