第5章 无线电链路控制子层

RLC是LTETM NB-IoT协议栈中的重要子层。它负责将控制和数据平面PDU可靠且有保证地传输到接收器侧。 RLC子层提供以下功能[25]:

与另一个对等体可靠地传输RLC PDU。

通过ARQ进行流量控制和错误处理。

RLC SDU的分段或级联。

对接收的RLC PDU进行重组,重新排序或重复检测。

5.1 RLC架构

类似于PDCP子层架构,每个信令或数据无线电承载具有单个RLC实体并与之相关联。发送器和接收器在它们中的每一个处都具有对等RLC实体,其正在交换RLC PDU。 RLC PDU的有效载荷通常是分别从PDCP或RRC子层传递或传递到PDCP或RRC子层的PDCP或RRC PDU。每个RLC实体都有自己的状态变量,与其他实体无关。

图5.1:UE的RLC架构。

RLC实体可以是三种模式之一:Transparent Mode(TM),UnacknowledgmentMode(UM)或Acknowledgment Mode(AM)。 TM的RLC实体是单向实体,这意味着该实体仅用于一个方向,即发送(即,UL)或接收(即,DL)。 RLC模式,未确认模式(UM),仅用于接收多播流量。 RLC UM用于SC-MCCH和SC-MTCH流量。 AM模式的RLC实体是双向的,这意味着RLC实体用于发送和接收。 RRC子层将每个RLC实体配置为发送TM,接收TM,接收UM或AM。 RRC还将每个RLC实体与其信令或无线电承载相关联。

图5.1说明了TM,UM和AM的RLC架构。 TM用于SRB0和SRB1bis,而AM用于SRB1和DRB。 UM仅用于DRB。

5.2 RRC配置参数

RRC将配置参数发送到RLC以配置用于SRB或DRB的RLC实体,如表5.1所示。如第3.7.7节所述,在RRC连接建立过程期间,RRC从eNodeB接收RLC配置参数。

5.3 RLC实体

5.3.1透明模式

图5.2说明了使用TM的RLC实体的体系结构。从RRC子层接收的RRC PDU被排队以在传输缓冲器中传输,直到MAC子层指示用于传输的上行链路机会。传输机会的大小必须能够容纳缓冲区中排队的RLC SDU。

表5.1 RLC子层的RRC配置参数

参数

含义

logical-ChannelIdentity

[3 10]

表示用于DRB的UL和DL的逻辑信道标识

t-PollRetransmit

ms250,ms500,ms1000,ms2000,ms3000,ms4000,ms6000,ms10000,ms15000,ms25000,ms40000,ms60000,ms90000,ms120000,ms180000

指示周期性时间间隔(以毫秒为单位),其中RLC发送器轮询接收器以发送RLC状态PDU

maxRetxThreshold

t1, t2, t3, t4, t6, t8, t16, t32

表示RLC SDU重传的最大数量

enableStatus- ReportSN-Gap

True

如果启用,则表示RLC在检测到接收RLC PDU失败时要发送RLC STATUS PDU

t-Reordering

ms0,ms5,ms10,ms15,ms20,ms25,ms30,ms35,ms40,ms45,ms50,ms55,ms60,ms65,ms70,ms75,ms80,ms85,ms90,ms95,ms100,ms110,ms120,ms130,ms140,ms150,ms160,ms170,ms180,ms190,ms200,ms1600

指示触发缓冲RLC PDU重新排序并将其传送到PDCP的时间(以毫秒为单位)

图5.2:TM的RLC实体。

TM不向SDU附加RLC报头,并且RLC PDU被发送到MAC子层,与从RRC子层接收的相同。 RLC SDU可以是可变大小的,并且从不分段或连接。当发送RLC PDU时,将其从发送缓冲器中移除。

在接收侧,如果从MAC子层接收到RLC PDU,则将其原样转发到RRC子层而不进行任何RLC处理。接收对等体不会确认此模式下的RLC SDU。

SRB0和SRB1bis映射到RLC TM实体。 RLC TM实体在DL或UL CCCH(SRB0),DL或UL DCCH(SRB1bis),DL PCCH或DL BCCH上交换下行链路和上行链路业务。

5.3.2未确认模式

图5.3:UM的RLC实体。

图5.3说明了UM的RLC实体的体系结构。 RLC UM仅由UE用于在SC-MCCH和SC-MTCH上接收多播流量。多播流量总是从eNodeB流向UE,因此,UE总是充当接收器而不充当RLC UM发送器。

UE在该模式下接收的RLC PDU可以包含三个SDU中的一个:单个RLC SDU,级联RLC SDU或RLC SDU的一个段。

当接收到RLC PDU时,接收器检测它是否是重复的,重新排序它们,重新组装所接收的RLC PDU并将它们传送到PDCP子层。 RLC接收器不发送ACK / NACK,也不需要从发送器重新发送丢失的RLC PDU(在多播流量中,传输的数据包不会被重新传输,也不会被确认

由接收者。)。 RLC UM实体在SC-MCCH和SC-MTCH上接收下行链路业务。

5.3.3确认模式

图5.4说明了AM的RLC实体的体系结构。该模式中的RLC PDU可以是四个SDU之一:单个RLC SDU,级联RLC SDU,RLC SDU的一段或RLC SDU段的一段。

如果从PDCP子层接收到RLC SDU,则它在传输缓冲器中排队,直到从MAC子层接收到传输机会。传输机会可以是任何大小。也就是说,如果传输机会小于排队的RLC SDU,则RLC SDU被分段并且RLC PDU段被发送到MAC子层。如果传输机会大到足以容纳一个或多个RLC SDU,则单个RLC SDU或连接在一起的多个RLC SDU在单个RLC PDU中传输。

除了RLC SDU或RLC SDU段之外,传输机会必须具有足够大的尺寸以容纳RLC报头。无论RLC SDU还是RLC SDU段被发送到MAC子层,RLC头部都被添加到RLC SDU。

发射器确实支持ARQ。发送到MAC子层的RLC PDU不被移除,而是从传输队列移动到重传队列。如果要重传该RLC PDU,则将其从重传队列中拉出,并按原样重传或根据MAC子层指示的传输机会大小进行分段。可以进一步分割RLC SDU或RLC SDU分段,或者可以根据上行链路传输机会的大小进一步级联多个RLC SDU。

RLC AM实体在DL或UL DCCH(SRB1),DL或UL DTCH(DRB)上交换下行链路和上行链路业务。

图5.4:AM的RLC实体。

在接收器侧,当接收到RLC PDU时,接收器检测它是否是重复的,重新排序它们,重新组装所接收的RLC PDU并将它们传送到PDCP子层。如果接收器检测到丢失的RLC PDU,则它可以发送称为RLC STATUS PDU的特殊控制RLC PDU,其对那些丢失的RLC PDU进行NACK,并轮询发送器以重新发送它们。

5.4 RLC PDU格式

RLC PDU是可变大小的PDU,由多个八位字节组成。传输队列或重传队列包含RLC SDU,并且如果上行链路传输机会可用于传输RLC SDU,则将RLC报头添加到SDU以形成RLC PDU。用于TM,UM和AM的RLC PDU的详细描述将在下面的部分中进行。

5.5 RLC传输和接收

5.5.1 RLC TM

图5.5:RLC TM发送器侧。

来自RRC子层的PDCP PDU以RLC SDU的形式排队到TM的RLC实体中的传输(Tx)队列中。 RLC SDU通常是信令RRC PDU。当RLC实体接收到可以完全容纳排队的RLC SDU的上行链路传输机会的MAC指示时,RLC实体可以在单个RLC PDU中发送单个RLC SDU。没有添加RLC PDU报头,并且RLC PDU被传递到MAC子层以进行传输。图5.5总结了TM发送侧处理。图5.6显示了用于TM的RLC PDU,其中RLC PDU不具有RLC报头且仅具有有效载荷。

图5.6:TM的RLC PDU格式。

5.5.2 RLC UM

UE处的RLC UM实体仅充当接收器而不充当发送器,因为其仅接收多播流量。 RLC UM PDU由5比特SN组成,其提供从0到31的SN空间,表示为[0 31]。当发射器耗尽SN空间(即,它到达SN#31)时,它再次将SN绕回到0。

对于RLC接收器,为了处理可以无序到达或者与先前接收的RLC PDU重复的RLC PDU,RLC采用滑动窗口协议。该滑动窗口被实现为RLC UM中的重新排序窗口方案。图5.7说明了重新排序窗口的概念。重新排序窗口具有表示SN范围的上边缘和下边缘。当接收到具有落在重新排序窗口之外的SN的新RLC PDU时,重新排序窗口滑动到新窗口。重新排序窗口充当窗口,其中存储落入窗口内的所有接收的RLC PDU,并且稍后被重新排序并按顺序递送到PDCP子层。

当RLC接收到具有SN #x的新RLC PDU时,检查其SN是否落入重排序窗口内或落在重排序窗口之外。如果它落在重新排序窗口之外,则RLC PDU被存储在接收(Rx)缓冲器中,并且重新排序窗口滑动到新位置,其中上边缘指向接收到的RLC PDU的SN之后的SN(即,上边缘)。是x + 1)。如果接收到的RLC PDU SN落在重排序窗口内并且之前已经接收过,则丢弃它;否则,它存储在接收(Rx)缓冲区中。

图5.7:重新排序窗口作为滑动窗口。

在将接收到的RLC PDU存储在接收(Rx)缓冲器中之后,RLC开始按照其SN的升序对存储在缓冲器中的RLC PDU重新排序,移除它们的RLC PDU报头,并将RLC SDU传送到PDCP子层。此外,RLC还可以启动定时器t-Reordering定时器,该定时器在到期时触发RLC PDU的重新排序并将它们传送到PDCP子层。

由于RLC UM用于接收多播流量,并且为了使其在NB-IoT设备中的实现简单,3GPPTM已选择将重排序窗口和t重新排序定时器的值都设置为零[15]。 RLC PDU的SN字段是5比特。由于重新排序窗口的值为零,这意味着上边缘和下边缘都具有相同的SN值,因此任何接收到的RLC PDU被认为落在重排序窗口之外并且将被存储在接收(Rx)缓冲器中。另外,由于t重新排序定时器具有零间隔,这意味着在接收(Rx)缓冲器中存储RLC PDU时,RLC可以按照其SN的升序开始重新排序缓冲的RLC PDU,剥离它们的RLC PDU。标头,并将它们传递给PDCP子层。 {RLC UM行为符合变种流量特性,其中数据包仅传输一次而未被确认。 }

RLC UM拥有多个状态变量。表5.2显示了RLC UM实体在接收器处使用的状态变量。 VR(UH)表示重新排序窗口的上边缘和下边缘,因为重新排序窗口的大小等于零。接收到RLC PDU后更新状态变量的流程图如图5.8所示。

图5.8:RLC UM接收器端。

图5.8说明了RLC UM接收器的行为。由于重新排序Window为零,因此任何接收到的具有SN = x的RLC PDU被存储到接收(Rx)缓冲器中。然后可以按以下顺序进行以下操作:

所有缓冲的RLC PDU被重新排序,从RLC报头条带化,并以RLC PDU SN的升序递送到PDCP子层。

如果x等于VR(UR),则VR(UR)被设置为尚未接收的RLC PDU的SN。具有SN <VR(UR)的所有缓冲的RLC PDU被重新排序,从RLC报头条带化,并被传送到PDCP子层。

表5.2 RLC UM状态变量

状态变量

用法

初始值

含义

UM Window_ Size

窗口大小

0

SC-MCCH,SC-MTCH为零

VR(UH)

最大接受

0

指示具有最高SN的RLC PDU的SN之后的SN的值

VR(UR)

接收

0

收到RLC PDU,它作为重新排序窗口的较高边缘

VR(UX)

t- Reordering

指示仍被考虑重新排序的最早RLC PDU的SN的值

图5.9:单个RLC SDU或RLC SDU段的RLC PDU(5位SN)。

图5.10:连接多个RLC SDU(5位SN)时用于UM的RLC PDU。

如果VR(UH)大于VR(UR),则VR(UX)设置为等于VR(UH),VR(UR)设置为SN> = VR(UX),以及所有缓冲的RLC PDU,具有SN <VR(UR),从RLC头部重新排序,条带化,并传送到PDCP子层。

图5.9和5.10显示了UM的RLC PDU格式。 RLC PDU字段如表5.5所示。

5.5.3 RLC UM发送器和接收器的示例

要通过示例阐明UM发送器和接收器操作,请考虑图5.11中的示例。在该示例中,RLC SN字段的长度为5位,并且重新排序窗口大小为零。

发送器已经发送了许多RLC PDU,其中SN递增。在接收器处,它最初的状态变量VR(UH),VR(UR)和VR(UX)都被设置为零。接收器仅接收具有SN#0,#1,#2,#5的RLC PDU,而具有SN#3和#4的那些RLC PDU通过空中丢失并且未在接收器处接收。

由于SN等于0,1,2,5的RLC PDU都落在重新排序窗口之外,因此它们都被接受并存储在接收(Rx)缓冲器中。每个接收到的RLC PDU都遵循图5.8中的算法。示出了在接收每个RLC PDU之后的状态变量的值。

在接收到具有SN#5的RLC PDU之后,状态变量被更新为VR(UH)= VR(UR)= 6,VR(UX)= 0.在接收到RLC PDU之后,将其重新排序并重新组装,从其RLC中剥离标题,并传递给PDCP子层。

5.5.4 RLC AM发送端

RLC AM实体为发送和接收操作维护许多状态变量,如表5.3所示。 RLC AM实体使用滑动窗口协议来管理流量控制,分段和重组以及有序传送。发射器和接收器都保持一个大小为AM窗口大小的窗口。

图5.11:RLC UM实体示例。

表5.3发送器的RLC AM状态变量

状态变量

用法

初始值

含义

AM Window_ Size

窗口大小

512, 32768

确定发送窗口大小[VT(A)VT(MS)[其中VT(MS)= VT(A)+ AM窗口大小

VT(A)

应答

0

要为其顺序接收肯定ACK的下一个RLC PDU的SN的值。 它用作传输窗口的下边缘

VT(MS)

最大发送

设置为VT(A)+ AM窗口大小,它用作传输窗口的较高边缘

VT(S)

发送

0

为下一个新生成的RLC PDU分配的SN的值

POLL SN

投票发送状态

0

在轮询比特设置为1的最新RLC数据PDU传输时保持VT(S)-1的值

发送器保持窗口大小AM窗口大小,其具有下边缘和上边缘分别等于VT(A)和VT(MS)(即,[VT(A)VT(MS)[)。当RLC从MAC子层接收到关于发送上行链路RLC PDU的上行机会的指示时,RLC按照以下严格的顺序调度RLC SDU以进行传输:

RLC控制PDU。

从ReTransmission(ReTx)队列重传RLC SDU。

从传输(Tx)队列传输RLC SDU。

图5.12:RLC AM发送器侧。

图5-12中的流程图说明了从Tx队列传输新的RLC SDU。来自PDCP子层的PDCP PDU被排队到RLC实体中的Tx队列中。当RLC实体接收针对上行链路传输机会的MAC指示并且取决于该上行链路传输机会的大小时,RLC实体可以传输单个RLC SDU,多个RLC SDU的级联或RLC SDU的片段。在所有情况下,RLC向包含RLC SDU的RLC PDU分配SN,其等于VT(S)并递增VT(S)。 VT(S)必须在[VT(A)VT(MS)[;否则,该RLC PDU未被调度用于传输。如果VT(S)变得等于VT(MS),则发送窗口变为停顿并且不能进一步发送RLC PDU。当要发送RLC PDU时,添加报头并将RLC PDU传递到MAC子层以进行传输。

发射器可以从接收器接收ARQ反馈。也就是说,发送器以称为RLC STATUS PDU的控制RLC PDU的形式接收用于其传输的ACK或NACK。接收RLC STATUS PDU时接收器行为的流程图如图5.13所示。如果接收器对其SN等于VT(A)的RLC PDU进行肯定确认,则发送器窗口[VT(A)VT(MS)[滑动到新值,其中VT(A)被设置为最小值尚未被确认的RLC PDU的SN。

图5.14说明了发射机滑动窗口的操作,[VT(A)VT(MS)[和状态变量VT(S)。在发送RLC PDU时,RLC PDU的SN被设置为等于VT(S)并且VT(S)被递增1。当接收到对于SN等于滑动窗口VT(A)的下边缘的RLC PDU的ACK时,滑动窗口仅滑动。

5.5.5 RLC AM重传侧

图5.13:收到RLC STATUS PDU时的RLC AM接收器行为。

图5.14:10位SN的RLC AM发送器滑动窗口。

当发送RLC PDU时,如果接收器请求重新发送该RLC PDU,则将其所有SDU移动到重发(ReTx)队列。如果SDU落在窗口[VT(A)VT(S)[中],则可以重传SDU。另外,每个SDU可以被重传有限次数,并且如果重传次数超过该限制,则SDU从ReTransmission(ReTx)队列中丢弃并且不再被发送。由上层(TCP或IP)来检测这种PDU丢失并再次请求重传TCP / IP分组。

RLC SDU重传的最大数量由状态变量maxRetxThreshold控制,该状态变量由RRC子层配置,如表5.1所示。图5.15说明了重传的流程图。

取决于上行链路传输机会大小,发射机可以按原样发送RLC PDU,或者它可以将其分段为多个RLC PDU段以适合上行链路传输机会的大小。

5.5.6 RLC AM发送侧用于轮询RLC STATUS PDU

发送侧可以轮询接收器,使得后者可以向发送器发送RLC STATUS PDU,关于哪个RLC PDU正被确认或NACK。如果满足以下任一条件,发送器可以轮询接收器:

如果在发送RLC PDU之后传输(Tx)或ReTransmission(ReTx)队列将变空。

如果在发送RLC PDU之后发送窗口将停止,并且不再可能进行RLC PDU发送。

如果满足上述任何条件,则发射器可以轮询接收器。发送器通过将RLC PDU报头中的P字段设置为1来轮询接收器,将状态变量POLL SN设置为等于VT(S)-1,并且启动t-PollRetransmit计时器。定时器t-pollRetransmit充当周期性时间间隔,如果到期,则发送器保持轮询接收器以发送RLC STATUS PDU。图5.16说明了发射机使用的轮询算法。

图5.15:重传时的RLC AM发射机。

在接收到包含用于具有SN = POLL SN的RLC PDU的ACK或NACK的RLC STATUS PDU时,停止t-PollRetransmit定时器。如果定时器到期,则发送器可以重新发送具有SN = VT(S)-1的RLC PDU或者未被确认的那些RLC PDU中的任何一个,并且将RLC PDU报头中的P字段设置为1。

图5.17 {5.19分别显示了封装单个RLC SDU,多个RLC SDU或RLC SDU段的RLC PDU格式。 SN字段的长度可以是10或16比特,如RRC子层所配置的。每个RLC PDU由RLC报头和有效载荷组成。有效载荷可以是单个RLC SDU,级联RLC SDU或一段RLC SDU。表5.5中解释并总结了标题字段。

图5.17显示了一个RLC PDU,它可用于单个RLC SDU或RLC SDU的一部分。如果用于RLC SDU的一段,则FI(成帧指示符)字段指示该段是在其RLC SDU的开头,中间还是其RLC SDU的末尾。 FI字段的含义和格式如表5.5所示。

图5.16:轮询时的RLC AM发送器。

图5.18显示了在同一RLC PDU中连接多个RLC SDU时的RLC PDU格式。 RLC头部具有扩展部分,因为有效载荷中包括多于一个RLC SDU(由多于一个有效载荷字段表示)。如果存在多个Payload字段,则除最后一个Payload字段外,每个Payload字段元素都会显示E和LI字段。

图5.17:单个RLC SDU或RLC SDU段的RLC PDU(10位SN)。

图5.18:多个RLC SDU的RLC PDU(10位SN)。

图5.19显示了存在单个RLC SDU段时的RLC PDU格式。 RLC有效载荷由RLC SDU段组成。如果要将单个RLC PDU段再次重新分段为多个段以进行重传,则也使用该格式。段偏移(SO)指示有效载荷与其原始RLC SDU的偏移。 SO连同RLC PDU的长度可用于明确地指示该段与原始RLC SDU的起始字节和结束字节偏移。

图5.19:单个RLC SDU段的RLC PDU(10位SN)。

图5.20显示了RLC STATUS PDU格式。它由RLC头和有效负载组成。有效载荷由一个且仅一个ACK SN字段和零个或多个NACK SN字段组成。 RLC STATUS PDU实现选择性重复ARQ方案。也就是说,RLC STATUS PDU指示接收器在ACK SN字段中尚未接收的第一个和最高SN。它还选择那些尚未接收并向发射机指示重复的RLC PDU

那些丢失的RLC PDU的传输具有在NACK SN字段中的SN。

NACK SN可用于NACKing RLC SDU段。在这种情况下,包括段开始偏移(SOstart)和段结束偏移(SOend)。图5.20显示了具有一个ACK SN和两个NACK SN的RLC STATUS PDU;每个NACK SN都有自己的一组SOstart和SOend。可以将填充添加到RLC PDU以使其保持八位字节对齐。

5.5.7 RLC AM接收方

接收器侧的RLC AM实体使用大小为AM窗口大小的接收窗口。接收到的具有SN的RLC PDU必须落入接收窗口[VR(R)VR(MR)[,存储在接收(Rx)缓冲器中,否则它被丢弃)。 AM窗口是用于处理接收的RLC PDU的滑动窗口协议,其可以是无序的或重复的。

表5.4显示了作为接收器的RLC AM实体使用的状态变量。 VR(R)和VR(MR)表示接收窗口的下边缘和上边缘。 t-重新排序计时器的值可以为零。

图5.20:RLC STATUS PDU(10位SN)。

间隔为零的t重新排序定时器意味着在接收(Rx)缓冲器中存储RLC PDU时,RLC可以开始重新组装缓冲的RLC PDU,按照它们的SN的升序重新排序它们,剥离RLC PDU报头,以及将它们传递给PDCP子层。

接收窗口和状态变量如图5.21所示。接收窗口可以滑动,指示要接收的SN的预期范围。 VR(MS)存储在接收器处仍然丢失的第一个和最高SN。 VR(MS)用于在RLC STATUS PDU中设置ACK SN字段。 VR(H)用于在接收到的最高SN之后保持SN。当发送RLC STATUS PDU时,VR(MS)被设置为大于VR(H)的第一个丢失的RLC PDU SN。如果接收的RLC PDU在窗口[VR(R)VR(MR)[中]具有其SN,则将其存储在接收(Rx)缓冲器中。接收到RLC PDU后更新状态变量的流程图如图5.22所示。在该图中,重要的是注意到在将接收的RLC PDU存储在接收(Rx)缓冲器中时,状态变量VR(H),VR(X),VR(MS)和接收窗口[VR(R) )VR(MR)[更新。

表5.4接收方的RLC AM状态变量

状态变量

用法

初始值

含义

AM Window_ Size

窗口大小

512, 32768

确定接收窗口大小[VR(R)VR(MR)[其中VR(MR)= VR(R)+ AM窗口大小

VR(R)

接收

0

在最后一个顺序完成接收RLC PDU之后的SN的值,并且它用作接收窗口的下边缘

VR(MR)

最大可接受的接收

0

设置为VR(R)+ AM窗口大小,它保存超出接收窗口的第一个AMD PDU的SN值,并作为接收窗口的较高边缘

VR(H)

最高收到

0

在接收的RLC数据PDU中具有最高SN的RLC PDU的SN之后的SN的值

VR(MS)

最大STATUS传输

0

当STATUS PDU需要从Rx发送到Tx时,保持SN的最高可能值,可由ACK SN指示

VR(X)

t-重新排序

0

在触发t重新排序的RLC数据PDU的SN之后保持SN的值

t-Reordering

计时器

0

定时器值在到期时触发对接收到的RLC PDU的重新排序并将它们传送到PDCP

图5.22解释了RLC AM接收器的行为。将之前未接收到的具有SN = x的接收的RLC PDU存储在接收(Rx)缓冲器中。在将RLC存储在接收(Rx)缓冲区中时,首先根据以下顺序更新状态变量:

如果x> VR(H),则将VR(H)更新为x + 1。

如果x = VR(MS),则将VR(MS)更新为第一RLC PDU的SN,其中SN> VR(MS)尚未被接收。如果它是一个段,这也适用于SN = x的接收RLC PDU。

图5.21:RLC AM接收窗口。

如果x = VR(R),则将VR(R)更新为第一个RLC PDU的SN,其中SN> VR(R)尚未接收,并将VR(MR)更新为VR(R)+ AM窗口大小。如果它是一个段,这也适用于SN = x的接收RLC PDU。如果更新VR(R),则将接收窗口滑动到新位置[VR(R)V(MR)[。

在状态变量已被更新之后,并且如果在接收窗口之外存在任何缓冲的RLC PDU,则RLC AM实体开始重新组装所有缓冲的RLC PDU,重新排序它们,剥离RLC报头,并将它们传送到PDCP子层。

5.5.8接收端的RLC STATUS PDU传输

接收侧将产生并发送RLC STATUS PDU到发送器以通知后者哪个RLC PDU被确认或NACK。如果满足以下任何条件,接收器将直接或在一段时间后将RLC STATUS PDU发送到发送器:

其报头中具有P字段的RLC PDU被设置为1并且它落在接收窗口之外。如果RLC PDU落入接收窗口,则RLC STATUS PDU传输被延迟,直到RLC PDU落在接收窗口之外。

检测到RLC PDU接收失败或者如果由MAC子层指示。这仅适用于启用enableStatusReportSN-Gap标志的情况,如表5.1所示。

图5.22:RLC AM接收器端。

在接收到RLC PDU之后,该RLC PDU在期望被接收的SN中产生间隙(即,指示丢失的RLC PDU)。如果VR(H)> VR(R),则会发生这种情况。

当接收器发送RLC STATUS PDU时,它包括ACK和零或更多NACK,如图5.20所示,对于尚未在接收窗口中接收的所有RLC PDU [VR(R)VR(女士)[。

5.5.9 RLC SDU丢弃

PDCP子层可以请求丢弃PDCP PDU或其RLC SDU。在这种情况下,如果SDU及其片段尚未发送到接收器,则RLC可以静默地丢弃该RLC SDU。

5.5.10 RLC AM发送器和接收器的示例

要通过示例阐明AM发送器和接收器操作,请考虑图5.23中的示例。在该示例中,RLC SN字段的长度为10位,AM窗口大小为512,这是SN空间的一半。发送器的接收窗口大小为512,其发送窗口[VT(A)VT(MS)[,设置为[0 512 [,并且VT(S)初始值为零)。

发送器从上层PDCP子层接收七个RLC SDU,将它们排队到传输(Tx)队列。发送器从MAC子分析器接收相等大小的上行链路传输机会,其中每个机会可以一次容纳单个RLC SDU(包括RLC报头)。为了发送七个RLC PDU,其中SN编号为0到6,发送器向每个发送的RLC PDU分配等于VT(S)的SN,递增VT(S),并将每个RLC PDU传递到MAC子层以便传输到收件人。由于VT(S)在每次传输后递增,因此其值最终变为等于7。

接收器的AM窗口大小为512,其接收窗口[VR(R)VR(MR)[,设置为[0 512 [。在接收器处,状态变量VR(R),VR(H),VR(MS)和VR(X)都具有零的初始值。 VR(MR)的初始值为VR(R)+ AM窗口大小= 512。

接收器仅接收具有SN#0,#2,#4,#5的RLC PDU,而具有SN#1,#3和#6的那些RLC PDU通过空中丢失并且未在接收器处接收。

由于SN等于0,2,4,5的RLC PDU都在接收窗口内,所以它们都被接受并存储在接收(Rx)缓冲器中。每个接收到的RLC PDU都遵循图5.22中的算法。在接收到具有SN#0的RLC PDU之后,V(R)已经滑动到值1.在完成接收具有SN#5的RLC PDU之后,更新状态变量,其中VR(H)= VR(X)= VR(MS) = 6,并且接收窗口[VR(R)VR(MR)[仍然是[1 513 [因为具有SN#1的RLC PDU仍然丢失]。由于具有SN#0的RLC PDU现在在接收窗口之外,因此RLC将其重新组合,重新排序,剥离其RLC报头,并将其传送到PDCP子层。

表5.5 UM和AM的RLC PDU标头字段

含义

D/C

0,1

指示RLC PDU是RLC数据PDU还是RLC控制PDU(例如,STATUS PDU)

RF

0,1

重组标志。指示RLC PDU是包含单个RLC SDU还是包含RLC SDU的一段

P

0,1

轮询位。如果设置,则表示发送器从接收器请求RLC STATUS PDU报告

FI

00, 01, 10, 11

Framinf信息指示RLC SDU是在RLC的开头,中间还是末尾分段 SDU:

00:段与RLC SDU完全相同

01:segment是RLC SDU的起始段

10:段是RLC SDU的中间段

11:segment是RLC SDU的结束段

E

0, 1

0:数据字段跟随RLC标题

1:一组E字段和LI字段跟随RLC头部

SN

[0 31], [0 1023], [0 65535]

序列号。表示相应RLC SDU的SN。对于UM,SN是5位。对于AM,SN是10位或16位。对于RLC SDU段,SN字段指示从其构造RLC SDU段的原始RLC SDU的SN。

LI

[0 2047], [0 32767]

RLC PDU中存在的相应有效载荷字段的字节长度。对于RLC UM,LI可以是11位,对于RLC AM,L1可以是15位

LSF

0,1

最后一段标志。指示这是否是RLC SDU的最后一段

SO

[0 32767], [0 65535]

段偏移。指示从原始RLC SDU的开头以字节为单位的偏移量。 SO可以是15位或16位

CPT

000, 0001

控制PDU类型指示RLC控制PDU的类型(RLC STATUS PDU或其他)

ACK SN

[0 1023], [0 65535]

下一个未接收的RLC PDU的SN,其未在STATUS PDU中报告为丢失

E1

0, 1

扩展位1.指示是否跟随一组NACK SN,E1和E2

E2

0, 1

扩展位2.指示一组SOstart,SOend是否跟随NACK SN

NACK SN

[0 1023], [0 65535]

指示RLC PDU的SN或在接收器处检测为丢失的RLC SDU的片段

SOstart

[0 32767], [0 65535]

具有SN = NACK SN的RLC SDU的片段的第一字节已经在接收器处被检测为丢失

SOend

[0 32767], [0 65535]

具有SN = NACK SN的RLC SDU的片段的最后一个字节已经在接收器处被检测为丢失

图5.23:RLC AM实体示例。

在接收到具有SN#2或#4的RLC PDU时,它触发接收器发送RLC STATUS PDU,因为接收到具有SN#2或#4的RLC PDU产生SN间隙,其中RLC PDU具有SN# 缺少1或#3。 当接收具有SN#2的RLC PDU时,接收器可以发送RLC STATUS PDU,其中ACK SN被设置为等于VR(MS)= 3并且一个NACK SN被设置为等于1.在接收具有SN#4的RLC PDU时, 接收器发送RLC STATUS PDU,其中ACK SN被设置为等于VR(MS)= 5并且两个NACK SN被设置为等于1和3。

如果接收器接收到具有SN#1,#3的RLC PDU,则接收窗口滑动到[6 518 [。 因此,具有SN#2,#4,#5的RLC PDU变得在接收窗口之外,并且RLC重新组装它们,重新排序它们,剥离它们的RLC报头,并将它们传送到PDCP子层。

5G LTE窄带物联网(NB-IoT)8相关推荐

  1. 5G LTE窄带物联网(NB-IoT) 4

    第1章  物联网 1.1简介 在过去的几十年中,无线通信系统和设备已经出现并发展图1.1显示了从1G技术到今天的4G系统的无线技术和网络的演变在20世纪80年代,无线网络始于以语音为中心的通信系统,例 ...

  2. 5G LTE窄带物联网(NB-IoT) 5

    第2章  4G和5G系统 2.1 LTE历史 4G蜂窝技术,即E-UTRA或LTETM [2],已于2008年在3GPPTM第8版中被引入,作为超出IMT-2000要求的宽带蜂窝技术[1]. 4G具有 ...

  3. 5G LTE窄带物联网(NB-IoT) 1

    前言    9 致谢    10 作者    10 第1章  物联网    15 1.1简介    15 1.1.1本书概要    16 1.1.2如何阅读本书    17 第2章  4G和5G系统  ...

  4. 5G LTE窄带物联网(NB-IoT) 6

    第3章 无线电资源控制子层 3.1无线电资源控制子层能力 LTETM NB-IoT UE包含比其他类型的UE(例如,传统LTE UE,中继节点,侧链UE或高功率UE)少得多的特征.这是为了使UE复杂度 ...

  5. 5G LTE窄带物联网(NB-IoT) 3

    缩略语表 1G第一代移动通信  2G第二代移动通信  3G第三代移动通信  3GPP第三代合作伙伴计划  4G第四代移动通信  5G第五代移动通信  ACK确认  AES高级加密标准  AM确认模式 ...

  6. 5G LTE窄带物联网(NB-IoT) 9

    第6章 媒体访问控制子层 MAC子层是直接与PHY子层接口的最低子层.因此,该子层几乎实时地执行其功能.该子层的功能如下[26]: 随机访问和争用解决程序. 将多个RLC PDU多路复用和解复用到单个 ...

  7. 5G LTE窄带物联网(NB-IoT)7

    第4章 分组数据汇聚协议子层 PDCP是一个薄的子层,用于控制平面和数据平面[23].其主要功能是为控制和数据平面PDU提供完整性和安全保护.特别是,PDCP提供以下功能: 为发送的PDCP SDU分 ...

  8. 工信部:推动窄带物联网、5G泛在信息基础设施

    据工信部网站17日消息,2016年11月16日,第十八届中国国际高新技术成果交易会在深圳开幕,工业和信息化部怀进鹏副部长出席高交会开幕式,并参观了"工业和信息化宽带中国专题展馆". ...

  9. 5G之前,千兆级LTE在铺路,LTE是物联网最理想的连接技术

    移动通信圈子里正热的话题,莫过于5G被提上日程.在国际无线标准化机构3GPP RAN1(无线物理层)87次会议的5G短码方案讨论中,华为力推的"Polar Code(极化码)"方案 ...

最新文章

  1. LabVIEW基础培训
  2. nginx安装路径,查找配置文件以及如何配置
  3. 查看imooc服务器文件
  4. 石家庄地铁查询PSP0级
  5. redis在linux搭建集群,Linux/Centos 7 redis4 集群搭建
  6. 判断一个无符号整数是不是2的n次幂的幂
  7. php的yii框架配置,php配置yii框架_PHP教程
  8. 【Qt点滴】UDP协议实例:简易广播实现
  9. 关于 springboot 的自动配置
  10. 那些被一行代码蒸发1个亿的智能合约,形式化验证了解一下? | 人物志
  11. mysql异常-SQLSTATE[HY000]: General error: 1436 Thread stack overrun
  12. 述职答辩提问环节一般可以问些什么_述职被高频问到的15问
  13. HYSBZ 4198 荷马史诗
  14. AH快递单打印查询软件V3.68
  15. 桌面微信协议分享小程序code
  16. PLC通讯实现-C#实现三菱PLC通讯(三)
  17. php微信短网址生成,如何把微信文章网址长连接(长网址)转换为短连接(短网址)...
  18. 插入U盘后 计算机未响应,电脑插入U盘后没有反应怎么办?
  19. python_练习2:输入a,b,c,d 4个整数,计算a+b-c*d的结果
  20. OCR文字识别软件如何操作?

热门文章

  1. 软件工程师的本手、妙手和俗手
  2. 神经网络传递函数的选择,神经网络的函数表达式
  3. 【程序人生】春满人间
  4. Python:爬山法/随机重启爬山法/允许侧移的爬山法解决八皇后问题
  5. 手把手教你用开源软件anki有效学习、长期记忆
  6. Cheat Engine 在mac最新系统无法安装的解决办法
  7. 【Golang】对接百度翻译API-golang版本sdk代码
  8. kettle6.0 连接oracle11g,Kettle表输出报关闭的连接问题的解决方法
  9. 计算机英语构词法,计算机专业英语的构词方法
  10. wstmart商城系统研究日志一