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的值。当发现乱序出现时,启动定时器,要求在定时器时间内收到之前的报文,否则应该通知发送端,报文丢失了。如果定时器超时前,此报文之前的数据全部收到,则停止定时器。此为重组定时器的意义。

RX_Highest_Status

该状态变量保持SN的最高可能值,当需要构造STATUS PDU时,该值可由“ACK_SN”指示。 它最初设置为0。当重组定时器触发,设置RX_Highest_Status为触发重组定时器的SN,也就RX_Next_Status_Trigger。用于标识重组定时器超时,哪些报文需要填写状态报告,同时用于判断是否有新的报文丢失出现。

上图为例:RX_Next = 4RX_Next_Highest = 9如果接到到一个超过此范围的报文将丢弃,如果接收到一个重复的报文也将丢弃

第一步:1/2/3号报文已经成功接收且成功答复。RX_Next = 4;RX_Highest_Status = 4;RX_Next_Highest = 4;无乱序不需要启动重组定时器。

第二步:当接收到5号报文时,发现4号报文未收到,此时RX_Next = 4不变;RX_Next_Highest = 6更新;发现RX_Next_Highest > RX_Next + 1, 启动重组定时器RX_Next_Status_Trigger = 6; 希望重组定时器超时前6号之前的报文都能收到。并更新RX_Highest_Status = 6。下次状态报告触发填写[RX_Next, RX_Highest_Status)的报文接收情况。

第三步:重组定时器超时,还未收到4号报文,触发状态报告,告知发送端5号报文收到,4号报文丢失。同时因为依然RX_Next_Highest > RX_Next + 1,重启重组定时器。

第四步:收到7号报文,发现6号报文未收到。此时RX_Next = 4依然不变;RX_Next_Highest = 8更新;发现RX_Next_Highest > RX_Highest_Status + 1, 说明又有新的报文未收到。因为重组定时器还在启动中,再次无法重启重组定时器。

第五步:重组定时器超时前,接收到6号报文。但是4号报文依然没有收到。 RX_Next无法更新,导致RX_Next_Status_Trigger > RX_Next, 也就是依然有可能丢失的报文未收到,定时器无法停止。如果定时器超时,则触发状态报告,继续报告4号报文丢失,5/6/7号报文收到。设置RX_Next_Status_Trigger = 8; 希望重组定时器超时前8号之前的报文都能收到。RX_Highest_Status = 8也同步更新。下次状态报告触发填写[RX_Next, RX_Highest_Status)的报文接收情况。

第六步:如果重组定时器再次超时前,收到4号报文,则定时器停止。更新RX_Next = 8;RX_Highest_Status = 8;RX_Next_Highest = 8;

RLC协议简单理解2-RLC窗口的维护相关推荐

  1. RLC协议简单理解1-RLC报文格式

    RLC协议简介 RLC(Radio Link Control)在无线协议架构中属于数据面协议中的一部分,数据传输从基站到终端的过程中,一共要经历UDP/SCTP-->SDAP/RRC--> ...

  2. TR069协议简单理解

    TR069协议简单理解 tr069 协议代码逻辑整理总结: 1.协议初始化 1) log相关的初始化工作: 2) 读取配置文件,包括协议相关参数的初始化.是否第一次运行(为之后第一次inform做准备 ...

  3. HTTP协议与TCP协议简单理解--转自博客园--留着学习

    TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通 ...

  4. 互联网协议-简单理解和介绍

    概念:互联网实现过程中大家都需要遵循的准则,我们称之为协议. 前提概要: 我们知道当我们访问互联网是,是在浏览器的导航栏输入一个网址,http://www.baidu.com/ 而一个网址对应的是一个 ...

  5. HTTP 协议简单理解与总结

    前言: 前几天被问到一些http比较理论的东西,一时间被尬到了.于是在网上搜罗一遍,整理成一篇比较好的比较全但又不会太臃肿的文章. 一. HTTP协议的应用简单概况 HTTP协议的主要特点可概括如下: ...

  6. Http协议简单理解

    Http协议是一种面向对象的应用层协议,但是由于它的简便,快捷,几年的时间得到快速发展和完善. HTTP协议工作于C/S架构为上,主要包括请求和响应.浏览器作为HTTP客户端通过URL向HTTP服务端 ...

  7. SNMP协议简单理解

    基于SNMP的集中式管理,SNMP广泛用于TCP/IP网络的网络管理标准协议,提供了一 种通过运行网络管理软件的中心计算机,及NMS(Network Management Station)来 管理网元 ...

  8. RLC定时器简单整理

    RLC层一共包括三个定时器.在4G中,三个定时器分别为重排序定时器t-Reordering,polling重传定时器t-PollRetransmit,状态报告禁止定时器t-StatusProhibit ...

  9. 简单理解TCP/IP传输层协议TCP和UDP

    TCP/IP模型中的传输层主要负责端到端通信,和数据链路层类似,数据链路层负责点到点的通信.TCP/IP模型的传输层主要协议有TCP (Transmission Control Protocol,传输 ...

最新文章

  1. (zt)Web 2.0奔路进行时
  2. oracle dataguard
  3. Red Hat Linux、rhel 和 Fedora Core 以及 Centos 区别与联系
  4. MySQL使用正则表达式
  5. ubuntu 安装git
  6. 乱查征信,贷款不想要了吗?
  7. 关于epoll,select,poll的理解
  8. 好程序员技术文档HTML5开发中的javascript闭包
  9. mysql日志监控 zabbix_zabbix监控mysql哪些性能
  10. Oracle归档日志与非归档日志的切换及路径设置
  11. python assert_python assert使用说明
  12. java极光推送ios设置通知标题,iOS_极光推送的UNNotificationServiceExtension实现富文本...
  13. 富士康工业互联:生产口罩优先用于内部防疫 预计对经营业绩影响较小
  14. IDEA连接服务器执行python程序
  15. 大数据智能运维平台方案-2
  16. c语言 最大子段和,最大子段和 C语言源码
  17. Failed to fetch URl https://dl-ssl.google.com/android/repository/addo Android SDK更新以及ADT更新出现问题的解决办法
  18. 处理效应模型stata实例_『Stata』政策处理效应PSM模型基本命令汇总
  19. 三星6818核心板接口众多兼容三星4418开发板
  20. python基础篇:字符画生成~甜心教主

热门文章

  1. Xamarin Essentials教程数据传输DataTransfer
  2. 闪迪U3利用工具U3-Pwn
  3. 构建伪Update服务器工具isr-evilgrade
  4. oracle+rac+算法,Oracle RAC中的投票算法
  5. 10自带sftp服务器_一文讲透FTP和SFTP的区别
  6. requestmapping默认是get还是post_编写Spring MVC控制器的14个技巧,你今天get到了吗?...
  7. DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
  8. 未来,谁来为AI开源买单?科技圈顶级码农是这样看的 | CCF C³-04@百度
  9. 中国首次实现量子优越性!比谷歌突破更厉害,比最强超级计算机快一百万亿倍 | Science...
  10. 不用写代码就能做高端科学计算,Mathematica推出“人话”版软件