问题已开启
(普通问题)
请问RLC层怎么区分data PDU还是control PDU?
提问者: aoshicanglong 提问时间: 2012-05-27
• 联通FDD LTE中的RLC PDU重传率考核为0.6%,请问如何优化 2016-05-19
• FailedtoopenCaptureIPAgentcONTROL/DATasocketport 2015-12-13
• 谁帮忙解释一下,WCDMA中RLC的log中 PDU问题,谢谢了 2015-08-19
• 关于wcdma下RLCackPDU的疑问 2015-07-07
• LTE中,RLC层接收端将接收到的RLCPDU重组并排序,生成RLCSDU,然后用()方式将RLCSDU转发到上层 2015-05-23
• RLC_AM_DATA_IND 和 RLC_AM_DATA_CNF 的区别是什么? 2013-07-23
• RLC status PDU是承载在SRB上吗 2012-10-15
• AM DATa PDU的Length Indicator为什么不能设置成‘1111100’? 2012-05-27
• FailedtoopenCaptureIPAgentcONTROL/DATasocketport 2015-12-13
• 谁帮忙解释一下,WCDMA中RLC的log中 PDU问题,谢谢了 2015-08-19
• 关于wcdma下RLCackPDU的疑问 2015-07-07
• LTE中,RLC层接收端将接收到的RLCPDU重组并排序,生成RLCSDU,然后用()方式将RLCSDU转发到上层 2015-05-23
• RLC_AM_DATA_IND 和 RLC_AM_DATA_CNF 的区别是什么? 2013-07-23
• RLC status PDU是承载在SRB上吗 2012-10-15
• AM DATa PDU的Length Indicator为什么不能设置成‘1111100’? 2012-05-27
问题答案
( 1 )
RLC层AM实体模型及ARQ基本类型
RLC的AM实体有一个发送端和一个接收端,发送端在收到来自 的 ( 服务数据单元)后,PDCP RLC SDU RLC将其存储在发送缓冲内,在收到来自MAC层的发送时机(ul grant)后,根据其提供的大小对RLC SDU进行分段和/或级联,然后添加RLC头成为RLC PDU(RLC协议数据[2]单元) 。所有RLC PDU在发送前都要交给重传缓冲进行保存,在收到STATUS PDU后再对重传缓冲中的PDU进行重传或移除的操作。接收端在收到来自对等端的PDU后,先判断是控制PDU还是数据PDU,若是控制PDU则交给RLC控制模块,它用来判断发送端哪些PDU需要重传,若是数据PDU则送给接收缓冲,在重排序后移除RLC头,再重新组装成RLC SDU。
ARQ方式有3种基本类型:SAW重传、退N步(GBN)重传和选择重传(SR)。SAW重传是指发端发送每个分组后都要等待收端的回执,收到NACK就重传,收到ACK后则准备发送下一个分组。GBN重传可持续发送多个分组,发端发送第一个分组后不必等待回执,经过网络延迟后回执到达发端,若收端反馈的是NACK,则发端重传该分组及其后在延迟期间发送的分组。SR重传中发端按固定顺序发送分组,它只重传收到NACK所对应的分组。在3种重传方式中,SR重传的效率是最高的,但由于需要保证[4][5]分组的传送顺序,收发两端必须开较大的缓冲区 。目前的LTE标准采用的是SR重传方式,这样使得数据传输效率更高。
3 ARQ的工作原理
3.1 重传机制
AM实体发送端在收到状态报告后,对其中NACK对应的PDU和PDU segment进行重传。具体实现过程如图2所示:
如果低层在特定发送时机(ul grant)所指示的RLC PDU(s)的总大小与要重传的AMD PDU完全适合,就直接把这个AMD PDU传到低层, P字段除外(因为这个字段要根据目前的具体情况进行设置)。否则,就对这个AMD PDU进行分段,使得新形成的AMD PDU段与低层在特定发送时机所指示的RLC PDU(s)的总大小适合,把这个新形成的AMD PDU段传到低层。对于一个AMD PDU段的重传,根据它是否适合低层在特定发送时机指示的RLC PDU的总大小,如果不适合,就会根据低层指示的PDU的大小进行分段,使分段后的AMD PDU 段适合低层指示的大小。如果适合就直接在AM RLC实体的发送侧进行数据域映射、添AMD PDU 段头等操作。
3.2 轮询机制
为了保证RLC PDU的正确传送,ARQ过程引入了轮询机制,这是为了使发送端能从接收端收到回执(STATUSPDU)
。每组装一个新的AMD PDU,AM RLC实体的发送端将:
(1) 计数器PDU_WITHOUT_POLL的值都会加1。
(2) 把需要传送的AMD PDU的Data field元素的每个字节都映射到这个新的形成的RLC data PDU的Data ield,每映射一个字节,计数器BYTE_WITHOUT_POLL的值都会加1。在以下条件下AMD PDU的P field置1,即向对等端请求获取一个STATUS PDU:
①PDU_WITHOUT_POLL>=pollPDU.
②BYTE_WITHOUT_POLL>=pollByte.
③在发送完一个RLC data PDU后,发送缓存和重传缓存都为空。
④在发送完一个RLC data PDU后,没有新的RLC data PDU可以传送(由于发送窗口停止移动)。在一个RLC data PDU的P field置1后,重置计数器PDU_WITHOUT_POLL和BYTE_WITHOUT_POLL为0。在发送完一个P field置1的RLC data PDU到低层后,AM实体发送端将POLL_SN设为此时VT(S)-1的值,并判断定时器t-PollRetransmit是否在运行,若未运行则开启此定时器,已运行则重启此定时器。在收到一个STATUS PDU后,若该PDU含有对POLL_SN的ACK或NACK,则停止并重置t-PollRetransmit。
3.3 状态报告的触发
触发状态报告的条件有:
①从低层收到1个P field为1的RLC data PDU,该PDU的SN落在接收窗口外或该PDU的所有字节之前已经接收过。则丢弃该PDU并触发一个状态报告。
②从低层收到1个P field为1,SN=x的RLC data PDU, 若x<VR(MS)或x>=VR(MR),则触发一个状态报告。如果VR(MS)<= x<VR(MR),则继续接收其他PDU直至x<VR(MS)或x>=VR(MR)。
③t_reordering超时,则更新VR(MS),然后触发一个状态报告。当一个状态报告被触发,若t-StatusProhibit没有运行,则在MAC指示的第一个传输时机构造一个STATUS PDU并传给MAC。若t-StatusProhibit在运行,则在它超时后MAC指示的第一个传输时机构造一个STATUS PDU并传给MAC,即使在t-StatusProhibit运行期间状态报告被触发多次,也只传送一个STATUS PDU。
D/C(1 bit):0表示为控制PDU,1表示为数据PDU。STATUS PDU属于控制PDU。CPT(3 bits):CPT字段用于指示RLC control PDU的类型,000表示为STATUS PDU,其余值为保留值。ACK_SN(10 bits):STATUS PDU是对ACK_SN之前的PDU进行确认。E1(1 bit):1表示有一个{ NACK_SN、E1、E2}在其后,0表示没有。NACK_SN(10 bits): ACK_SN字段用于指示在AM
RLC实体的接收侧检测到丢失的AMD PDU(或其一部分)的SN。E2(1 bit): 1表示有一个{ Sostart、SOend }在其后,0表示没有。SOstart(15 bits): SOstart 用于指示SN = NACK_SN的AMD PDU 片段的第一个字节在源AMD PDU的Data eld中对应的置.SOend(15 bits): SOend用于指示SN = NACK_SN的AMD PDU 片段的最后一个字节在源AMD PDU的Data eld中对应的位置。STATUS PDU的格式可以看出:RLC的控制模块可以很清晰地解出NACK所对应的PDU或PDU段,然后控[1]制重传缓冲使其正确重传错的PDU 。.4 发送窗口和接收窗口的管理AM模式中的发送窗口和接收窗口大小都为512,为RLC PDU序号总数(0-1023)的一半。从发送窗口可以清晰地看出哪些PDU还未收到ACK,发送窗口塞满后将不会发送新的数据,实现了流量控制,发送窗口区间为[VT(A),VT(MS))。接收窗口用来决定是否需要发送STATUS PDU以及哪些收到的数据PDU需要重组及上传,接收窗口区为[VR(R),VR(MR) )。
如图4所示,AM实体发送端已发送了序号为0,
1,2的PDU,此时只有序号为0的PDU收到了来自对等端的ACK,所以VT(A)=1,VT(S)=3,VT(MS)=VT(A)+512=513。若序号为1或2的PDU收到了NACK,则会执行重传操作。若VT(S)一直增大且VT(MS)不变,则当VT(S)=VT(MS)时窗口出现堵塞,只有VT(MS)再出现变化时才会再发送新的PDU。
如图5所示,AM实体接收端收到序号为0,1,3的PDU,所以VR(R)=VR(MS)=2,VR(MR)=VR (R)+512=514。序号为0,1的PDU落在了窗口外,所以若能重组成RLC SDU则需上传。由于在收到序号为2的PDU之前收到了序号为3的PDU,所以出现了断点,触发了t_reordering的开启,VR(X)=VR(H)=4,若t_reordering超时则将此消息传递给RLC控制模块,由RLC控制模块生成STATUS PDU,然后加头并由发送端发送。
RLC的AM实体有一个发送端和一个接收端,发送端在收到来自 的 ( 服务数据单元)后,PDCP RLC SDU RLC将其存储在发送缓冲内,在收到来自MAC层的发送时机(ul grant)后,根据其提供的大小对RLC SDU进行分段和/或级联,然后添加RLC头成为RLC PDU(RLC协议数据[2]单元) 。所有RLC PDU在发送前都要交给重传缓冲进行保存,在收到STATUS PDU后再对重传缓冲中的PDU进行重传或移除的操作。接收端在收到来自对等端的PDU后,先判断是控制PDU还是数据PDU,若是控制PDU则交给RLC控制模块,它用来判断发送端哪些PDU需要重传,若是数据PDU则送给接收缓冲,在重排序后移除RLC头,再重新组装成RLC SDU。
ARQ方式有3种基本类型:SAW重传、退N步(GBN)重传和选择重传(SR)。SAW重传是指发端发送每个分组后都要等待收端的回执,收到NACK就重传,收到ACK后则准备发送下一个分组。GBN重传可持续发送多个分组,发端发送第一个分组后不必等待回执,经过网络延迟后回执到达发端,若收端反馈的是NACK,则发端重传该分组及其后在延迟期间发送的分组。SR重传中发端按固定顺序发送分组,它只重传收到NACK所对应的分组。在3种重传方式中,SR重传的效率是最高的,但由于需要保证[4][5]分组的传送顺序,收发两端必须开较大的缓冲区 。目前的LTE标准采用的是SR重传方式,这样使得数据传输效率更高。
3 ARQ的工作原理
3.1 重传机制
AM实体发送端在收到状态报告后,对其中NACK对应的PDU和PDU segment进行重传。具体实现过程如图2所示:
如果低层在特定发送时机(ul grant)所指示的RLC PDU(s)的总大小与要重传的AMD PDU完全适合,就直接把这个AMD PDU传到低层, P字段除外(因为这个字段要根据目前的具体情况进行设置)。否则,就对这个AMD PDU进行分段,使得新形成的AMD PDU段与低层在特定发送时机所指示的RLC PDU(s)的总大小适合,把这个新形成的AMD PDU段传到低层。对于一个AMD PDU段的重传,根据它是否适合低层在特定发送时机指示的RLC PDU的总大小,如果不适合,就会根据低层指示的PDU的大小进行分段,使分段后的AMD PDU 段适合低层指示的大小。如果适合就直接在AM RLC实体的发送侧进行数据域映射、添AMD PDU 段头等操作。
3.2 轮询机制
为了保证RLC PDU的正确传送,ARQ过程引入了轮询机制,这是为了使发送端能从接收端收到回执(STATUSPDU)
。每组装一个新的AMD PDU,AM RLC实体的发送端将:
(1) 计数器PDU_WITHOUT_POLL的值都会加1。
(2) 把需要传送的AMD PDU的Data field元素的每个字节都映射到这个新的形成的RLC data PDU的Data ield,每映射一个字节,计数器BYTE_WITHOUT_POLL的值都会加1。在以下条件下AMD PDU的P field置1,即向对等端请求获取一个STATUS PDU:
①PDU_WITHOUT_POLL>=pollPDU.
②BYTE_WITHOUT_POLL>=pollByte.
③在发送完一个RLC data PDU后,发送缓存和重传缓存都为空。
④在发送完一个RLC data PDU后,没有新的RLC data PDU可以传送(由于发送窗口停止移动)。在一个RLC data PDU的P field置1后,重置计数器PDU_WITHOUT_POLL和BYTE_WITHOUT_POLL为0。在发送完一个P field置1的RLC data PDU到低层后,AM实体发送端将POLL_SN设为此时VT(S)-1的值,并判断定时器t-PollRetransmit是否在运行,若未运行则开启此定时器,已运行则重启此定时器。在收到一个STATUS PDU后,若该PDU含有对POLL_SN的ACK或NACK,则停止并重置t-PollRetransmit。
3.3 状态报告的触发
触发状态报告的条件有:
①从低层收到1个P field为1的RLC data PDU,该PDU的SN落在接收窗口外或该PDU的所有字节之前已经接收过。则丢弃该PDU并触发一个状态报告。
②从低层收到1个P field为1,SN=x的RLC data PDU, 若x<VR(MS)或x>=VR(MR),则触发一个状态报告。如果VR(MS)<= x<VR(MR),则继续接收其他PDU直至x<VR(MS)或x>=VR(MR)。
③t_reordering超时,则更新VR(MS),然后触发一个状态报告。当一个状态报告被触发,若t-StatusProhibit没有运行,则在MAC指示的第一个传输时机构造一个STATUS PDU并传给MAC。若t-StatusProhibit在运行,则在它超时后MAC指示的第一个传输时机构造一个STATUS PDU并传给MAC,即使在t-StatusProhibit运行期间状态报告被触发多次,也只传送一个STATUS PDU。
D/C(1 bit):0表示为控制PDU,1表示为数据PDU。STATUS PDU属于控制PDU。CPT(3 bits):CPT字段用于指示RLC control PDU的类型,000表示为STATUS PDU,其余值为保留值。ACK_SN(10 bits):STATUS PDU是对ACK_SN之前的PDU进行确认。E1(1 bit):1表示有一个{ NACK_SN、E1、E2}在其后,0表示没有。NACK_SN(10 bits): ACK_SN字段用于指示在AM
RLC实体的接收侧检测到丢失的AMD PDU(或其一部分)的SN。E2(1 bit): 1表示有一个{ Sostart、SOend }在其后,0表示没有。SOstart(15 bits): SOstart 用于指示SN = NACK_SN的AMD PDU 片段的第一个字节在源AMD PDU的Data eld中对应的置.SOend(15 bits): SOend用于指示SN = NACK_SN的AMD PDU 片段的最后一个字节在源AMD PDU的Data eld中对应的位置。STATUS PDU的格式可以看出:RLC的控制模块可以很清晰地解出NACK所对应的PDU或PDU段,然后控[1]制重传缓冲使其正确重传错的PDU 。.4 发送窗口和接收窗口的管理AM模式中的发送窗口和接收窗口大小都为512,为RLC PDU序号总数(0-1023)的一半。从发送窗口可以清晰地看出哪些PDU还未收到ACK,发送窗口塞满后将不会发送新的数据,实现了流量控制,发送窗口区间为[VT(A),VT(MS))。接收窗口用来决定是否需要发送STATUS PDU以及哪些收到的数据PDU需要重组及上传,接收窗口区为[VR(R),VR(MR) )。
如图4所示,AM实体发送端已发送了序号为0,
1,2的PDU,此时只有序号为0的PDU收到了来自对等端的ACK,所以VT(A)=1,VT(S)=3,VT(MS)=VT(A)+512=513。若序号为1或2的PDU收到了NACK,则会执行重传操作。若VT(S)一直增大且VT(MS)不变,则当VT(S)=VT(MS)时窗口出现堵塞,只有VT(MS)再出现变化时才会再发送新的PDU。
如图5所示,AM实体接收端收到序号为0,1,3的PDU,所以VR(R)=VR(MS)=2,VR(MR)=VR (R)+512=514。序号为0,1的PDU落在了窗口外,所以若能重组成RLC SDU则需上传。由于在收到序号为2的PDU之前收到了序号为3的PDU,所以出现了断点,触发了t_reordering的开启,VR(X)=VR(H)=4,若t_reordering超时则将此消息传递给RLC控制模块,由RLC控制模块生成STATUS PDU,然后加头并由发送端发送。
回答者:
xhy1331
回答时间:2012-05-29 10:30
4 3
联系我们 - 问通信专家 | Powered by MSCBSC 移动通信网 © 2006 - |