5G NR - RLC协议阅读笔记5 - RLC AMD PDU接收过程
Overview
虽然AM RLC实体发送端涉及到重传/分段/重分段/Polling等复杂操作,但对我来说,接收端的处理更难以理解一点。一是接收端多一个状态变量,且状态变量值的维护更复杂,比如RX_Next_Status_Trigger跟定时器t-Reassembly相共相生,其值的更新在RLC SDU接收完整和不完整时(而不完整又分几种情形)也不同,RX_Highest_Status值的更新也受诸多因素(间接上也包括t-Reassembly的状态)的影响,并且这两个状态变量都包含“Status”字眼,初时总容易搞混,即使现在我每次试图去厘清这些状态变量的含义时,仍然会有一种莫名的恐惧,我觉得这种恐惧会一直伴随我的协议工程师生涯;二是状态报告生成条件的判断以及Status PDU那些字段的计算都非常复杂,虽然发送状态报告是发送端来执行,但发送之前的这些复杂处理依赖于接收到的PDU的情况以及当前接收端状态变量的值和定时器状态。
AM RLC实体接收的包是AMD PDU,来自于发送端RLC实体,中间会经过两端协议栈及空口:
【发送端 RLC->MAC->PHY】 =空口= 【PHY->MAC ->RLC 接收端】
那么对于接收端来说,其上一个环节就是本端的下层 – MAC, 协议讲RLC的接收操作也是从自MAC接收到AMD PDU开始。从接收到AMD PDU的那一刻起,就要开始做各种判断了 - 此时PDU还没有放到接收缓存(Reception Buffer)里。
AM RLC接收操作在协议5.2.3.2节,下面按照小节顺序详细解读协议内容。
(这一篇在最初的这篇和这篇的基础上做了一些小的改动及添加了一些文字描述)
5.2.3.2 Receive operations
5.2.3.2.1 - General
类似于发送端根据TX_Next_Ack维护一个发送窗口,接收端也会根据状态变量RX_Next来维护一个接收窗口:
- 如果RX_Next <= SN < RX_Next+ AM_Window_Size, 那么SN落在接收窗口内
- 否则SN落在窗口之外
5.3.2.3.2的讲解里有窗口滑动例子。
从下层接收到一个AMD PDU之后,接收端实体要么丢弃该PDU(比如SN落在接收窗口外),要么将其放到接收缓存里(具体细节在后面的5.2.3.2.2解析)。
如果收到的AMD PDU被放进了接收缓存,RLC实体更新各个状态变量、重组(reassembly) RLC SDU并将其发送到上层,同时根据需要启动或停止t-Reassembly(具体细节在后面5.2.3.2.3解析)。
如果t-Reassembly超时,RLC接收端实体将更新相应的状态变量并在有必要的情况下启动t-Reassembly.
5.2.3.2.2 RLC如何接收包 - 丢弃或放到缓存
5.2.3.2.3 RLC如何接收包 - 放入缓存后的包如何处理
1. AMD PDU放入缓存之后
2. 如果t-Reassembly正在运行
3. 如果t-Reassembly没有运行(包括因上图中的行为而导致的定时器停止):
5.2.3.2.4 t-Reassembly超时时如何处理
一个具体log例子
这份log恰好包含了分段和不分段的情形, UE接收到5个SDU,对应6个PDU:
- 第1个SDU的最后1个分段
- 中间3个SDU未分段
- 第5个SDU分成2段
因此正好把PDU结构各字段 - D/C(Data/Control),P(Polling Bit), SI(Segmentation Info), SO(Segment Offset) - 也包含了,可以对照这篇加深理解。
从图片右上角“RLC PDU按序收到过程”根据SN往下看:
References
[1] 3GPP TS38.322(RLC)
[2] 5G无线系统设计与国际标准(刘晓峰、孙韶辉、杜忠达、沈祖康、徐晓东、宋兴华)
[3] 5G New Radio In Bullets(Chris Johnson)
[4] 5G NR The Next Generation Wireless Access Technology(Erik Dahlman, Stefan Parkvall, Johan Sko¨ld)
[5] LTE - The UMTS Long Term Evolution FROM THEORY TO PRACTICE(2nd Edition Stefania Sesia ST-Ericsson, France; Issam Toufik ETSI, France; Matthew Baker Alcatel-Lucent, UK)
[6] 5G Technology 3GPP New Radio(Editted by Harri Holma and Antti Toskala Nokia Bell Labs Finland; Takehiro Nakamura 5G Laboratories NTT DOCOMO, Inc.Japan)
[7] 4G: LTE/LTE-Advanced for Mobile Broadband[Second Edition](Erik Dahlman Stefan Parkvall Johan Sko¨ld)
笔者在公众号“协议工程师笔记”定期发布5G/LTE/IMS...学习笔记, 敬请关注、订阅和分享,谢谢!
一起努力,蒸蒸日上
5G NR - RLC协议阅读笔记5 - RLC AMD PDU接收过程相关推荐
- 5G NR - RLC协议阅读笔记 - 从LTE到NR的变化
在讨论NR RLC相对于LTE做出的重大变化的How和Why之前,我们先来看下What. 通过对比LTE和NR协议,我们注意到UM和AM的处理流程图有三个重大改动,协议其余部分的区别都是围绕这几个改动 ...
- 5G - NR RLC协议阅读笔记4 - 三个重要定时器的理解
笔者在公众号"协议工程师笔记"定期发布5G/LTE/IMS...学习笔记, 敬请关注.订阅和分享,谢谢! 一起努力,蒸蒸日上
- 5G(7)---5G NR协议栈及功能2 - MAC RLC PDCP SDAP
5G NR协议栈及功能2 - MAC RLC PDCP SDAP 备注:本文所有图片均来自3GPP标准,包括3GPP TS 38.300 V15.0.0 (2017-12)和3GPP TS 38.20 ...
- 5G(3)---5G NR协议栈及功能2 - MAC RLC PDCP SDAP
备注:本文所有图片均来自3GPP标准,包括3GPP TS 38.300 V15.0.0 (2017-12)和3GPP TS 38.202 V15.0.0 (2017-12)等.本文主要介绍截止目前(2 ...
- 5G NR协议栈及功能2 - MAC RLC PDCP SDAP
备注:本文所有图片均来自3GPP标准,包括3GPP TS 38.300 V15.0.0 (2017-12)和3GPP TS 38.202 V15.0.0 (2017-12)等.本文主要介绍截止目前(2 ...
- 5G NR PDCP协议(二)
5G NR协议栈其他博文参考: https://blog.csdn.net/qq_41245381/article/details/105805643 5G NR PDCP协议(一)参考: https ...
- 5G NR PDCP协议(一)
5G NR协议栈其他博文参考: https://blog.csdn.net/qq_41245381/article/details/105805643 5G NR PDCP协议(二)参考: https ...
- 5G NR RRC协议总体介绍
1. 开机入网流程 UE入网过程包括几个子过程: 小区搜索与选择 UE开机选网,小区搜索并完成下行同步. 系统消息广播 UE读取广播信息,选择合适小区进行驻留. 随机接入 UE与gNB建立上行同步. ...
- nvme协议阅读笔记
作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 nvme官网 NVMe ...
- VITA 49.0协议阅读笔记
Vita Radio Transport (VRT) standard 定义了一个在射频收发机和信号处理装置之间的具有广泛应用的一个的传输层协议 ,用于提升射频和信号处理单元之间的协同性,其应用包括频 ...
最新文章
- 24CSS3中的动画
- 大赛归来的你们,依然青春少年
- vb.net 如何从文件中读取图像
- OpenCASCADE绘制测试线束:图形命令之VIS 查看器命令
- Angular CLI 全局 ng.cmd 文件内容分析
- [渝粤教育] 盐城工学院 水处理微生物学 参考 资料
- 【渝粤题库】国家开放大学2021春1283社会保障学(本)题目
- 前端学习(1165):扩展运算符01
- 飞秋 包括《java就业培训课程》
- myisam读取速度为什么比innodb快_为什么MySQL用B+树做索引
- DecimalFormat的用法
- STM32(7):中断方式让按键点亮LED
- 婚恋相亲交友短视频婚姻介绍所中介平台系统app公众号H5搭建源码
- 不积跬步,无以至千里 small tips
- CKEditor 4.12.1富文本编辑器的配置与使用(详细版)
- 玩游戏学编程,寓教于乐:12个学习编程的游戏化平台
- NI LabVIEW 2018 DAQmx定时属性节点 缺失部分属性的问题 解决方案
- 软件测试难吗?0基础可以学吗?上手时间快吗?如何从零开始学习软件测试?
- 阿里云Docker仓库操作
- 寻迹Arduino智能小车
热门文章
- 《ROS理论与实践》学习笔记(三)Launch文件与TF坐标变换
- vue.js 动态文字向上滚动广播中奖信息代码
- 透过海信、海尔年中财报:看家电行业“下半场”之变
- 关于二分查找你不知道的事!
- FPT Software的数字解决方案在2020年国际商务大奖(R)评选中名列前茅
- 《2012》职场危机意识启示录 解读职场中生存哲学
- noj 1081 组织集体活动
- 在一个规则没有被建立好的时代,那些活生生的牛人,就是仅存的有效教科书...
- 用AI加码,CES Asia 2018将如何成就珍贵稀缺的科技盛会?
- onclick传参的使用遇到XXX is not defined