您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > RLC层AM模式下的传输控制以及ARQ的实现
RLC层AM模式下的传输控制以及ARQ的实现过程雒逸珩2011-12-20※RLC层位于MAC层之上,为用户和控制数据提供分段和重传业务。每个RLC实体由RRC配置,并且根据业务类型有三种模式:透明模式(TM)、非确认模式(UM)、确认模式(AM)。※对于透明模式和非确认模式,RLC实体是单向的,各自拥有一个发送实体和一个接收实体,独立地完成数据的发送和接收;而对于确认模式,RLC实体是双向的。虽然仅有一个实体,但却被划分为接收侧和发送侧来完成数据的发送接收的功能。RLC层下三种传输模式比较传输模式额外开销可靠性时延出错处理应用TM模式不添加控制外协议开销允许一定的数据损失要求较小的时延递交或者直接丢弃并向高层报告实时业务(如实时语音业务)UM模式添加控制外协议开销允许一定的数据损失要求较小的时延递交或者直接丢弃并向高层报告实时业务(小区广播和IP电话)AM模式添加控制外协议开销要求较高的传输质量增加了时延但不超过150ms通知发送方的RLC重传此PDU非实时业务(和电子邮件下载)radiointerfacelowerlayerstransmittingTMRLCentitytransmittingUMRLCentityAMRLCentityreceivingTMRLCentityreceivingUMRLCentityreceivingTMRLCentityreceivingUMRLCentityAMRLCentitytransmittingTMRLCentitytransmittingUMRLCentitylowerlayersupperlayerupperlayereNBUESAPbetweenupperlayerslogicalchannellogicalchannelSAPbetweenupperlayersRLC层结构图AMDPDU格式1、每个AMDPDU中都包含一个AMDPDU头,AMDPDU头分为固定部分和扩展部分;2、固定部分存在于每个AMDPDU中,扩展部分只有需要时才存在;3、当AMDPDU中仅包含一个RLCSDU或RLCSDU分段时,AMDPDU头只包含固定部分;4、当AMDPDU中包含多余一个RLCSDU时,AMDPDU将包含扩展部分,以指示数据域的长度。D/CRFPFIESNSDU(1)子头…SDU(N)子头RLCSDU(1)…RLCSDU(N)E(=1)LIE(=0)LIAMDPDU头固定部分AMDPDU头扩展部分(需要时存在)AMDPDU头数据部分字段名称长度(bit)含义SN10AMDPDU序号D/C10:控制PDU1:数据PDURF1指示此RLCPDU是AMDPDU还是其分段0:AMDPDU1:AMDPDU分段P1状态报告请求指示0:不请求对方发送状态报告1:请求对方发送状态报告FI2分段指示E(固定部分)10:AMDPDU头不包含扩展部分1:AMDPDU头包含扩展部分E(扩展部分)10:这是最后一个子头1:此子头后面还存在子头LI11此子头对应的RLCSDU在数据域中的长度,单位为ByteSO15指示AMDPDU分段在原AMDPDU中的字节开始位置AMDPDU头字段含义※在确认模式下,发送侧AMRLC实体在收到对方的反馈知道某个AMDPDU未被正确接收时,需要对该AMDPDU进行重传;※但重传时的空中接口条件可能已经发生变化,比如重传时MAC子层指示的传输块TB大小已经不能容纳原始的PDU,这时需要对该AMDPDU重分段,因此,确认模式下传输的数据单元比非确认模式增加了一种AMDPDU格式,如图D/CRFPFIESNESOSDU(1)子头…SDU(N)子头RLCSDU(1)…RLCSDU(N)E(=1)LIE(=0)LIAMDPDU头固定部分AMDPDU头扩展部分(需要时存在)AMDPDU头数据部分AMDPDU分段格式※ACK_SN和E1是RLC控制头之后固定包含的字段,随后的字段都是在需要时添加的;※ACK_SN和E1字段后,可不包含或包含一个/多个一个(NACK_SN,E1,E2)组,每个(NACK_SN,E1,E2)组内还可能包含一个(Sostart,SOSend)对。D/CCPTACK_SNE1(=1)NACK_SNE1(=1)E2(=1)SOstartSOendNACK_SNE1(=0)E2(=0)RLC控制头一个(NACK_SN,E1,E2)分段位置一个(NACK_SN,E1,E2)STATUSPDU格式字段名称长度(bit)含义D/C10:控制PDU1:数据PDUCPT3RLC控制PDU类型指示,目前此字段值总为0表示为ARQ状态报告ACK_SN10已经正确接收的AMDPDU的最大序号加1,即接收窗口中所有序号小于ACK_SN的AMDPDU都已被正确接收NACK_SN10指示此SN对应的AMDPDU未被正确接收E110:后面无组1:后面还有组E210:此后无和1:此后有和SOstart15指示丢失的AMDPDU分段在原AMDPDU中的开始字节位置SOend15指示丢失的AMDPDU分段在原AMDPDU中的结束字节位置STATUSPDU字段含义TransmissionbufferSegmentation&ConcatenationAddRLCheaderRetransmissionbufferRLCcontrolRoutingReceptionbuffer&HARQreorderingSDUreassemblyDCCH/DTCHDCCH/DTCHAM-SAPRemoveRLCheaderRLCAM实体传输模型0123456701234567VT(A)VT(A)VT(S)VT(S)VT(MS)VT(MS)0123456701234567VT(A)VT(A)VT(S)VT(S)VT(MS)VT(MS)AM模式发送窗口控制开始发送窗口不为空是重传缓冲区有AMDPDU或AMDPDU分段?否需要对AMDPDU或AMDPDU分段再分段?否是生成AMDPDU分段生成AMDPDU发送缓冲区和重传缓冲区都为空VT(S)VT(A)+512生成新的AMDPDU将AMDPDU的SN字段设为VT(S)VT(S)=VT(S)+1否结束PDU_WITHOUT_POLL=PDU_WITHOUT_POLL+1BYTE_WITHOUT_POLL=BYTE_WITHOUT_POLL+AMDPDU数据域长度PDU_WITHOUT_POLL==Poll_PDU?是否是AABYTE_WITHOUT_POLL==Poll_Byte?是否AMDPDU发送流程图或将AMDPDU的P字段设为1PDU_WITHOUT_POLL=0BYTE_WITHOUT_POLL=0POLL_SN=VT(S)-1否结束T_Poll_restransmit定时器未启动是启动T_Poll_restransmit定时器重启T_Poll_restransmit定时器A接上图A接口AMDPDU发送流程图AM模式接收窗口控制0123456701234567VR(H)VR(R)VR(MR)VR(MS)VR(MS)VR(H)VR(R)VR(MR)0123456701234567VR(R)VR(MR)VR(MS)VR(H)VR(H)VR(MS)VR(R)VR(MR)AM模式ARQ控制01234567891011121314151617启动T_ReorderingVR(R)VR(MS)VR(X)VR(MR)VR(H)01234567891011121314151617T_Reordering定时器未超时VR(R)VR(MS)VR(X)VR(MR)VR(H)VR(MS)VR(H)01234567891011121314151617T_Reordering定时器未超时VR(R)VR(X)VR(MR)01234567891011121314151617T_Reordering定时器未超时VR(R)VR(MS)VR(X)VR(MR)VR(H)丢弃AMDPDU是SN位于接收窗口内?是是重复的PDU或分段?否是VR(MS)已完整接收?序号为SN的AMDPDU或AMDPDU分段到达结束否SN==VR(MS)?更新VR(MS)为下一个尚未被完整接收的AMDPDU的SNSN==VR(R)?VR(R)已完整接收?更新VR(R)为下一个未完整接收的AMDPDU的SNVR(MR)=VR(R)+512处理并按序提交被移出接收窗口之外的AMDPDU将AMDPDU放入接收缓存区是是是否SN=VR(H)?VR(H)=SN+1T_reordering已启动?VR(X)==VR(R)或VR(X)位于接收窗口之外?停止并重置T_reorderingVR(X)=null启动T_reorderingVR(X)=VR(H)是否是是否是VR(H)VR(R)?否否否否否AMDPDU接收流程图否设SN=VR(R)SN=SN+1ACK_SN=VR(MS)是结束接收过SN对应的AMDPDU分段?是在状态报告中添加一个(NACK_SN,SOstart,SOend)集合,NACK_SN=SNSN=SN+1开始SN对应的AMDPDU已完整接收?SN=VR(MS)?在状态报告中添加一个NACK_SN,使其值等于SN状态报告已达到限制长度?将ACK_SN设为下一个尚未完整接收的SN否否否是是状态报告生成流程图谢谢观赏请指正
本文标题:RLC层AM模式下的传输控制以及ARQ的实现
链接地址:https://www.777doc.com/doc-3332512 .html