LTERLC学习报告.docx

上传人:b****8 文档编号:27885668 上传时间:2023-07-06 格式:DOCX 页数:16 大小:20.92KB
下载 相关 举报
LTERLC学习报告.docx_第1页
第1页 / 共16页
LTERLC学习报告.docx_第2页
第2页 / 共16页
LTERLC学习报告.docx_第3页
第3页 / 共16页
LTERLC学习报告.docx_第4页
第4页 / 共16页
LTERLC学习报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

LTERLC学习报告.docx

《LTERLC学习报告.docx》由会员分享,可在线阅读,更多相关《LTERLC学习报告.docx(16页珍藏版)》请在冰豆网上搜索。

LTERLC学习报告.docx

LTERLC学习报告

1.RLC架构

RLC实体从/向上层(RRCforCCCH,PDCPotherwise)接收/发送RLCSDUs,向/从底

层发送/接收与对等RLC实体间的RLCPDUs。

RLCPDU包括RLC数据PDU和控制PDU两类。

如果一个RLC实体从与上层间的一个独立的SAP中接收到RLCSDUs后,RLC将其

转化为RLC数据PDUs,然后通过一个独立的逻辑信道递交给底层。

如果一个RLC实体从底层某个独立的逻辑信道上接收到RLC数据PDUs,然后将其转

化为RLCSDUs,并通过与上层间某个独立的SAP递交给上层。

如果一个RLC实体向/从底层发送/接收到RLC控制PDUs,则通过的通道发送/接收RLC

数据PDU相同。

RLC实体可以以下列三种模式实现数据的传输:

TM(透明模式),UM(非确认模式)

或者AM(确认模式)。

根据这三类传输模式,RLC实体可以分为TMRLC实体,UMRLC实体或者AMRLC实体。

图1RLC子层模型

对于所有RLC实体(包括TM、UM、AMRLC实体):

1)支持字节对齐的可变尺寸的RLCSDUs

2)只有当底层(MAC)通知可以发送,RLC才会组成RLCPDUs递交给底层

1.1TMRLC实体

TMRLC实体用于发送/接收逻辑信道BCCH,DL/ULCCCH和PCCH上的RLCPDUs。

图2双TM实体模型

TM实体发送/接收TM模式的RLC数据PDU:

TMDPDU

TMRLC发送实体:

当一个发送TMRLC实体将RLCSDUs组成TMDPDUs时,不会分段也不会级联,且不会在TMDPDUs中包含任何的RLC头。

TMRLC接收实体:

当一个TMRLC接收实体收到TMDPDUs,将其(即RLCSDUs)递交给上层

1.2UMRLC实体

UMRLC实体用于发送/接收逻辑信道DL/ULDTCH上的RLCPDUs。

图3双UM实体模型

UM实体发送/接收UM模式的RLC数据PDU:

UMDPDU

UMRLC发送实体:

UMRLC实体将RLCSDUs形成UMDPDUs时,需要:

1)分段和/或级联RLCSDUs,这样UMDPDUs就可以和某个发送时机内底层指示的RLCPDU(s)大小相匹配了

2)需要在UMDPDU里包含相关的RLC头

UMRLC接收实体:

当UMRLC接收实体收到UMDPDUs后,将:

1)检查UMDPDUs是否重复接收,如果重复则丢弃

2)如果接收是乱序的,则需要重排序

3)在底层检测UMDPDUs是否丢失,避免额外的重排序时延

4)将重排序过的UMDPDUs重组为RLCSDUs(不包括已经检测到丢失的)

5)丢弃接收到的无法重组为一个RLCSDU(由于某些相关的UMDPDU丢失)的

6)UMDPDUs

RLC重建的时,UMRLC接收实体将:

7)将乱序接收到的UMDPDUs重组后递交给上层

8)丢弃剩余的无法重组为RLCSDUs的UMDPDUs

9)初始化相关的状态变量,停止相关的定时器

1.3AMRLC实体

AMRLC实体用于发送/接收逻辑信道DL/ULDCCHorDL/ULDTCH上的RLCPDUs。

图4一个AMRLC实体模型

AMRLC实体发送/接收RLC数据PDU:

AMDPDU;AMDPDU分段

AMRLC实体发送/接收RLC控制PDU:

STATUSPDU

发送侧:

当发送侧将RLCSDUs转换为AMDPDUs时,需要:

分段和/或级联RLCSDUs,这样AMDPDUs就可以和底层指示的RLCPDU(s)总大小相匹配

发送侧支持RLC数据PDUs的重传(ARQ):

1)如果重传的RLC数据PDU和某个发送时机内底层指示的总大小不匹配,则将RLC数据PDU重分段为AMDPDUsegments

2)重分段的格式不受限制

在发送AMDPDUs或者重AMDPDUsegments时都需要在RLC数据PDU里添加相关的RLC头

接收侧:

收到RLC数据PDUs后,将

1)检测接收到的RLC数据PDUs是否重复,如果重复则丢弃

2)如果接收到的数据包乱序,则重排序

3)底层检测是否有丢失的RLC数据PDUs,如果有则请求对等RLC实体进行重传

4)将乱序的RLC数据PDUs重组为RLCSDUs,并将其按序递交给上层

当RLC重建时,接收侧的AMRLC实体将:

1)将乱序的RLC数据PDUs重组为RLCSDUs,并将其按序递交给上层

2)丢弃剩余的无法重组为RLCSDUs的RLC数据PDUs

3)初始化相关的状态变量,停止相关定时器

2.RLC提供的服务

提供给上层(即RRC或者PDCP)的服务:

1)TM数据传输

2)UM数据传输

3)AM数据传输,包括指示上层发送成功

期望底层提供的服务:

1)数据传输

2)发送时机通知,以及在该发送时机内能够发送的RLCPDU(s)的总大小

3.RLC实体的功能

1)上层PDUs传输

2)AM数据传输时,通过ARQ进行错误检查

3)UM和AM数据传输时,进行级联、分段和重组

4)AM数据传输时,重组RLC数据PDUs

5)UM和AM数据传输时,对RLC数据PDUs进行重排序

6)UM和AM数据传输时,重复检查

7)UM和AM数据传输时,RLCSDU丢弃

8)RLC重建

9)协议错误检查和恢复

4.可以进行发送的数据

1)还没有包含在一个RLC数据PDU内的RLCSDUs或者分段

2)pending住待重传的AM模式RLCdataPDUs,orportions

如果需要发送一个STATUSPDU,且statusprohibittimer没有运行或者已经超时,则UE将在下个发送时机内估算STATUSPDU的大小,并认为是一个可以发送的数据。

5.数据传输流程

TM数据传输

发送操作

当发送一个新TMDPDU给底层时,RLCTM发送实体将不做任何修改把该RLCSDU发送给底层;

接收操作

从底层接收到一个新的TMDPDU时,TMRLC接收实体也将不做任何修改把该PDU递交给上层。

UM数据传输

UMRLC实体相关变量

发送实体

1)VT(US)

下次将要生成的UMDPDU的SN。

初始值为0,当UMRLC实体发送了一个SN=VT(US)的UMDPDU后该参数被更新

接收实体

1)VR(UR):

UM接收状态变量

被考虑重排序的UMDPDU中最早的一个SN,初始值为0

2)VR(UX):

UMt-Reordering状态变量

触发t-Reordering的UMDPDU之后的UMDPDU的SN

3)VR(UH):

UM最高已接收的状态变量

在所有已经接收的UMDPDUs中SN最高的UMDPDU之后的UMDPDU的SN,该值为重排序窗口的最高边界。

初始值为0

4)UM_Window_Size

定义了可以被接收的SNs

ThisconstantisusedbythereceivingUMRLCentitytodefineSNsofthoseUMDPDUsthatcanbereceivedwithoutcausinganadvancementofthereceivingwindow.UM_Window_Size=16whena5bitSNisconfiguredandUM_Window_Size=512whena10bitSNisconfigured.

发送操作

当发送一个新的UMDPDU给底层时,UMRLC发送实体把该UMDPDU的SN置为VT(US),然后把VT(US)加1

接收操作

UMRLC接收实体将根据状态变量VR(UH)维护一个重排序窗:

1)如果(VR(UH)–UM_Window_Size)<=SN

则该SN将落入重排序窗

2)否则SN落入窗口外

当UMRLC接收实体从底层接收到一个UMDPDU后,

1)要么丢弃接收到的PDU,要么将它放在接收缓存里

2)如果该PDU放入接收缓存,则需要更新状态变量,重组并将RLCSDUs递交给上层,如果需要的话开启/停止t-Reordering

当t-Reordering超时后,则UMRLC接收实体将更新状态变量,重组并递交RLCSDUs给上层,需要的话开启t-Reordering

具体:

当UMRLC接收实体从底层接收到一个SN=x的UMDPDU,则

1)如果VR(UR)

如果(VR(UH)–UM_Window_Size)<=x

则丢弃接收到的UMDPDU

2)否则,把接收到的UMDPDU放在接收缓存里

如果一个SN=x的UMDPDU被放在了接收缓存里,则UMRLC接收实体将:

1.如果x落在重排序窗外:

1)更新VR(UH)为x+1

2)将SN落在重排序窗口外的UMDPDUs重组为RLCSDUs,去掉RLC头,并按照RLCSN升序把重组成的RLCSDUs递交给上层

3)如果VR(UR)落在重排序窗口外,则将VR(UR)设置为(VR(UH)–UM_Window_Size)

2.如果接收缓存中包含SN=VR(UR)的UMDPDU,则

1)将VR(UR)更新为SN>currentVR(UR)(还没有接收到的)第一个UMDPDU的SN

2)将SN

3.如果t-Reordering正在运行,则

1)如果VR(UX)<=VR(UR)或

2)如果VR(UX)落到重排序窗口外,且VR(UX)不等于VR(UH),则停止并复位t-Reordering

4.如果t-Reordering没有运行,则

如果ifVR(UH)>VR(UR),开启startt-Reordering;将VR(UH)设置为VR(UX)

t-Reordering超时后的处理

1)更新VR(UR)为SN>=VR(UX)(还没有被接收)的第一个UMDPDU的SN

2)将SN

3)如果VR(UH)>VR(UR):

开启t-Reordering

把VR(UH)设置为VR(UX)

AM数据传输

相关参数

发送侧

1)VT(A):

确认状态变量

下一个需要被正确确认的AMDPDU的SN,作为发送窗口的最低边界。

初始值为0,当收到一个SN=VT(A)的AMDPDU的正确确认后更新该参数

2)VT(MS):

最大发送状态参数

该参数值等于VT(A)+AM_Window_Size,为发送窗口的最高边界

3)VT(S):

发送状态参数

分配给下一个将要生成的AMDPDU的SN,初始值为0,只要发送了一个SN=VT(S)的AMDPDU后,该值便会更新

4)POLL_SN:

轮询发送状态变量

该变量值等于最近一次发送的P位置1的RLC数据PDU的SN,初始值为0

接收侧

1)VR(R):

接收状态变量

变量值为最后一个顺序接收到的AMDPDU的下一个PDU的SN,作为接收窗口的最低边界。

初始值为0,当收到SN=VR(R)的AMDPDU时,该值更新

2)VR(MR):

最大可接收状态变量

等于VR(R)+AM_Window_Size,接收窗外第一个PDU的SN,作为接收窗的最高边界

3)VR(X):

t-Reordering状态变量

等于触发t-Reordering的RLC数据PDU的下一个PDU的SN

4)VR(MS):

最大STATUS发送状态变量

当需要构造一个STATUSPDU的时候,该值等于可以被“ACK_SN”指示的SN的最大值

5)VR(H):

最高接收状态变量

已经接收到的RLC数据PDUs中的SN最高值,初始值为0

6)POLL_SN:

轮询发送状态参数

等于最近一次发送的P位指示为1的RLC数据PDU时的VT(S)-1,初始值为0

发送操作

AMRLC实体优先发送RLC控制PDUs,其次才是RLC数据PDUs;优先发送重传RLC数据PDUs,其次才是新的AMDPDUs。

AMRLC实体的发送侧根据状态变量VT(A)和VT(MS)维护一个发送窗口:

-如果VT(A)<=SN

-否则,落在窗口外

发送侧不会把落在发送窗外的RLC数据PDU递交给底层

当把一个新的AMDPDU递交给底层后,发送侧将把VT(S)设置为该PDU的SN,然后把VT(S)加1

AMRLC发送侧可以获得对等AMRLC实体对某个RLC数据PDU的正确确认,即收到STATUSPDU

当收到对SN=VT(A)的AMDPDU的确认后,发送侧将:

-设置VT(A)为,满足VT(A)<=SN<=VT(S)中,且没有收到正确确认的PDU中最小的SN

-如果一个发送实体发送和某个发送RLCSDU相关的所有AMDPDUs都已经被正确确认了,则RLC需要指示给上层该RLCSDU发送成功

接收操作

接收侧将根据状态变量VR(R)和VR(MR)维护一个接收窗:

-当VR(R)<=SN

-否则落到窗口外

当从底层收到一个RLC数据PDU后,AMRLC实体的接收侧将:

-丢弃该PDU或者把它放在接收缓存中

-如果放入接收缓存中,则

-更新状态变量,重组并递交RLCSDUs给上层,需要的话开启/停止t-Reordering

t-Reordering超时后,AMRLC实体的接收侧将更新状态变量,需要的话开启t-Reordering

收到底层SN=x,且包含字节分段y到z的数据后

如果x在接收窗外,或者SN=x的AMDPDU的字节分段y到z已经接收过,

则丢弃接收到的RLC数据PDU

否则,将接收到的PDU放入接收缓存;如果某些字节分段之前接收过,则丢弃重复的字节

分段

当SN=x的RLC数据PDU被放入了接收缓存,则AMRLC实体的接收侧将:

-如果SN=VR(MS)的AMDPDU的所有字节分段都已经被接收到了,则

将VR(MS)更新为SN>currentVR(MS)(没有接收完所有分段)的AMDPDU中的第一个PDU的SN

-如果x=VR(R)

-如果SN=VR(R)的所有分段都已经接收到则

-更新VR(R)为没有接收到所有分段(SN>currentVR(R))的第一个AMDPDU的SN

-将VR(MR)更新为VR(R)+AM_Window_Size

-重组落在接收窗外的AMDPDU的任意分段以及SN=VR(R)的按序分段,取掉RLC头,按序将重组后的且之前没有递交过的RLCSDUs递交给上层

-如果x>=VR(H)

更新VR(H)为x+1

-如果t-Reordering正在运行

如果VR(X)=VR(R)或者VR(X)落在接收窗外,则停止并复位t-Reordering

-如果t-Reordering不在运行(包括因上述原因而被停止)

如果VR(H)>VR(R)

开启t-Reordering

设置VR(X)为VR(H)

当t-Reordering超时后,AMRLC实体的接收侧将

-将VR(MS)更新为SN>currentVR(MS)(没有接收完所有分段)的AMDPDU中的第一个PDU的SN

-如果VR(H)>VR(MS)

-停止t-Reordering

-设置VR(X)为VR(H)

6.ARQ过程

该过程仅用于AM模式

重传

AMRLC实体的发送侧可能收到对等AMRLC实体发送的非确认包(STATUSPDU),错误确认一个AMDPDU或者一个AMDPDU的一部分

当收到一个非确认包后,如果相关PDU的SN在VT(A)<=SN

-如果某个AMDPDU第一次被认为需要重传,则将该PDU相关的RETX_COUNT设置为0

-否则,如果没有正在pending的重传,则增加RETX_COUNT

-如果RETX_COUNT=maxRetxThreshold,则指示上层已经达到最大重传次数

当需要重传一个AMDPDU时,如果该AMDPDU可以在底层指示的总的大小条件下发送,则将该PDU的P位置1,并递交给底层;如果超过了底层指示的大小,则需要分段,形成一个新的AMDPDU分段,并将新分段递交给底层

如果需要重传AMDPDU的一个部分,则如果需要的话分段该部分,并将新分段递交给底层

如果形成了一个新分段,则需要将原始AMDPDU的数据域映射到新分段的数据域;设置新分段的头;设置P位

轮询

AMRLC实体可以轮询它的对等实体,以触发对等实体发送状态报告

6.2.1发送AMDPDU或者AMDPDU分段

当重组了一个新的AMDPDU后,AMRLC实体的发送侧将:

-将PDU_WITHOUT_POLL加1

-当有映射到RLC数据PDU数据域的字节时,将BYTE_WITHOUT_POLL增加相应的byte数

-如果PDU_WITHOUT_POLL>=pollPDU或者BYTE_WITHOUT_POLL>=pollByte

则在RLC数据PDU里包含一个poll

当重组了一个新的AMDPDU或者AMDPDU分段,则发送侧将:

-如果在发送了RLC数据PDU后,发送缓存和重传缓存就变空了(不包含已经发送出去正在等待确认的数据包),或者

-如果发送了RLC数据PDU后没有新的RLC数据PDU可以被发送(例如窗停止)

则在RLC数据PDU里包含一个poll

当在一个RLC数据PDU里包含一个poll时,发送侧将:

-将RLC数据PDU的P域置为1

-将PDU_WITHOUT_POLL设置为0

-将BYTE_WITHOUT_POLL设置为0

当把一个带P位的数据包递交给底层后,如果需要的话增加VT(S),发送侧将:

-设置POLL_SN为VT(S)–1

-如果t-PollRetransmit没有运行,则开启t-PollRetransmit

-否则,重新开启t-PollRetransmit

6.2.2收到状态报告

当RLCAM实体收到发送侧的一个状态报告后,如果状态报告中包含对SN等于POLL_SN的PDU的正确或者错误确认,则如果t-PollRetransmit正在运行,则停止t-PollRetransmit.

6.2.3t-PollRetransmit超时

t-PollRetransmit超时后,发送侧:

-如果在发送了RLC数据PDU后,发送缓存和重传缓存就变空了(不包含已经发送出去正在等待确认的数据包),或者

-如果发送了RLC数据PDU后没有新的RLC数据PDU可以被发送(例如窗停止)

则将SN=VT(S)–1的AMDPDU认为是重传

或者认为被重传的PDU没有被正确确认

-在这个PDU中包含一个poll,之后的处理同6.2.1

状态报告

为了对RLCPDUs或者其中的一部分进行正确或者错误确认,AMRLC实体将给它的对等AMRLC实体发送STATUSPDUs。

RRC配置是否使用状态禁止功能,触发状态报告:

-当从底层收到一个SN=x,且P位设置为1的数据PDU后,接收侧将:

-如果满足丢弃条件,则丢弃该数据PDU

-如果x=VR(MR)

则触发状态报告

-否则,延迟触发时间,直到x=VR(MR).

状态包在HARQ重排序后发送

当发现一个RLC数据PDU接收失败后,t-Reordering超时时,接收侧将触发状态报告

T_reordering超时后会触发VR(MS)更新、发送一个状态报告,当状态报告的发送要在VR(MS)更新之后

如果触发了状态报告,接收侧将:

-如果t-StatusProhibit没有在运行,在第一个收到底层指示发送时机时,构造一个STATUSPDU,并递交给底层

-否则,t-StatusProhibit超时后,当底层第一次指示发送时机时,构造一个STATUSPDU(即使在t-StatusProhibit运行期间已经触发过多次),并递交给底层

当一个STATUSPDU已经递交给底层后,接收侧将开启t-StatusProhibit

当构造了一个STATUSPDU时:

-对于VR(R)<=SN

对于没有接收到任意字节分段的AMDPDU,在STATUSPDU中包含一个设置为该PDUSN的NACK_SN

对于由连续字节分段组成,但是还没有接收到的PDU,在STATUSPDU中包含NACK_SN、SOstart、SOend

-将ACK_SN设置为下一个还没有收到的、且没有在状态包中被指示丢失的RLC数据PDU

7.SDU丢弃过程

当上层(PDCP)指示丢弃一个特殊的RLCSDU时,AMRLC发送实体或者UMRLC发送实体将丢弃指示的RLCSDU(如果该SDU中没有映射到已经接收到的PDU中的分段)

8.重建过程

RLC重建由RRC请求,该功能可以应用到AM、UM以及TMRLC实体

当RRC指示RLC实体需要进行重建时,RLC实体将:

如果是一个TMRLC发送实体,则丢弃所有的RLCSDUs

如果是一个UMRLC接收实体,则如果可以的话,将SN

如果是发送UMRLC实体,则丢弃所有RLCSDUs

如果是AM实体:

-在接收侧将SN

已经重组的且之前还没有递交的RLCSDUs,按照RLCSN的升序递交给上层

-接收侧丢弃剩余的AMDPDUs和字节分段

-发送侧丢弃所有的RLCSDUs和AMDPDUs

-丢弃所有的RLC控制PDUs

停止并复位所有定时器,将所有状态变量复位为初始值

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1