RLC协议简单理解2-RLC窗口的维护

RLC窗口的维护

 RLC窗口是指的RLC协议层在处理数据时,需要维护的一个最大的处理数据范围。在此范围之外的数据,处理模块不需要理会。窗口的维护依赖于一系列变量,来确定这个窗口有多大,窗口的边界怎么确定?窗口边界值如何变化,也就是窗口的滑动。

发送变量及发送窗口

发送窗口的维护,非常依赖于接收端的ACK,通过ACK来推动发送窗口的移动。

TX_Next_Ack

该状态变量指示的是等待ACK的first AMD PDU的SN。该变量的初始值为0;当接收到SN等于TX_Next_Ack的AMD PDU的ACK指示时更新;此变量为传输窗口的下边界,也就是小于此变量的数据全部已经回复ACK

AM_Window_Size

AM窗口的大小,取决于RLC SN号所占的bit数和对数据传输快慢及系统实现的综合考虑。当使用12位SN时AM_Window_Size = 2048,当使用18位SN时AM_Window_Size = 131072。此大小是协议确定。

TX_NEXT

该状态变量指示的是分配给下一个新产生的包含RLC SDU报文的SN。该变量的初始值为0。在此变量之前的报文都曾经发送且进行过编号,只是不一定成功送达。当包含分片场景时,当AMD PDU包含RLC SDU的最后一个segment时更新TX_Next=TX_Next+1。因为同一个报文的不同分片,其SN号是一致的。

如下场景为例:上层来包2和3被打包成报文2,而6号报文则被分片为两个分片发送。2号之前的报文都已经接收到ACK,所以发送窗口的下边界是3,窗口长度是5,所以窗口的上边界是8。大于等于8的报文在窗口之外,无法进行发送。6号及之前的报文都进行了发送,则下一个需要发送的报文TX_NEXT是7。

接收变量及接收窗口

接收窗口的维护与发送窗口不同,因为接收端要负责ACK的答复,所以引入t-reassembly定时器,用于主动触发ACK的答复。如果报文一直顺序接收,原则上可以不答复状态报告,发送端一直发,接收端一直收不会出现问题。所以状态报告的触发的是基于乱序接收或者丢包而设计的。

 RX_Next

该变量指向已经正确收到的SN+1,即接收端期望收到的下一个最小的SN。此变量之前的报文,接收端都已经全部成功接收。

RX_Next_Highest

该变量指向所有已经收到的RLC SDU中的最大SN+1。

 RX_Next_Status_Trigger

状态变量保持在触发t重组的RLC SDU的SN之后的SN的值。当发现乱

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值