LTERLC学习报告.docx
- 文档编号:27885668
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:16
- 大小:20.92KB
LTERLC学习报告.docx
《LTERLC学习报告.docx》由会员分享,可在线阅读,更多相关《LTERLC学习报告.docx(16页珍藏版)》请在冰豆网上搜索。
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 则触发状态报告 -否则,延迟触发时间,直到x 状态包在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 停止并复位所有定时器,将所有状态变量复位为初始值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LTERLC 学习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)