开源协议栈 rlc rrc_NR 双激活协议栈(DAPS)切换
协议定义:DAPS(DualActive Protocol Stack)切换可定义为在接收到RRC消息(切换命令)进行切换后,保持源gNB连接,直到成功随机接入目标gNB后释放源小区的切换过程。
DAPS切换特性:
•UE在接收到HO请求后继续在源小区发送/接收;
•UE同时从源小区和目标小区接收用户数据;
•完成RACH程序后,UE可以向目标小区进行上行用户数据传输;
•DAPS通过在建立目标小区无线链路的同时保持源小区无线链路(包括数据流),减少了切换过程中接近0毫秒的中断;
•可通过接口Xn和N2进行DAPS切换;
•DAPS切换可用于RLC-AM或RLC-UM承载;
我们为什么需要DAPS切换呢?
在传统的4G LTE网络和5G NR直到R15,UE通常在与目标小区建立连接之前从源小区释放连接(硬切换)。因此,上下行传输在UE开始与目标小区通信之前在源小区完成,从而导致UE和基站之间的通信中断几十毫秒。这种中断对于使用5G的URLCC用例/应用程序非常致命。因此协议提出了一种解决方案来解决这个问题,作为R16的一部分,称为双活动协议栈(DAPS),其中UE与源小区连接以保持对用户数据的收发,直到它能够在目标小区中发送和接收用户数据。这对UE端提出了新的要求,即在切换过程中,短时间内同时在源小区和目标小区收发数据。类似于软切换。
![](/assets/blank.gif)
如上图所示,为了支持DAHO,UE必须保持双栈处于活动状态。一个用于目标小区的用户平面协议栈,包含PHY、MAC和RLC层,同时保持层2用户平面协议栈处于活动状态,以便在源小区中传输和接收用户数据。
UE同时从源小区和目标小区接收用户数据,PDCP层被重新配置为源和目标用户平面协议栈的一个公共PDCP实体。为了确保用户数据的顺序传送,在整个切换过程中都保持PDCP序列号(SN)的连续性。因此,在单个PDCP实体中提供了一个通用的(用于源和目标)重新排序和复制功能。根据下行链路/上行链路数据包的来源/目的地,需要在公共PDCP实体中分别处理加密/解密和报头压缩/解压缩。
DAPS切换流程:
DAPS切换流程如下图所示。在Xn和N2接口上都可以进行DAPS切换。这里我们考虑了基于Xn接口的HO。
![](/assets/blank.gif)
- 源gNB配置UE测量程序,UE根据策略配置然后上报Measurement Report。源gNB根据测量报告和RRM信息决定UE切换
- 源gNB向目标gNB发出一条HandoverRequest 消息,传递一个透明的RRC容器,其中包含在目标侧准备切换所需的信息。
- 目标gNB准备切换并向源gNB发送HANDOVERREQUEST ACKNOWLEDGE,源gNB包括一个透明容器,作为RRC消息发送到UE以执行切换。目标gNB还指示是否接受DAPS切换
- 源gNB通过向UE发送RRCReconfiguration消息来触发Uu口切换
- 对于配置有DAP的DRB,源gNB发送EARLY STATUS TRANSFER
- UE与目标小区同步,通过向目标gNB发送RRC Reconfiguration Complete消息来完成RRC切换过程
- 目标gNB向源gNB发送HANDOVERSUCCESS消息,通知UE已成功访问目标小区
- 源gNB根据EARLY STATUS TRANSFER,向配置有DAPS的DRB发送SN STATUSTRANSFER消息
DAPS 切换的承载处理
DAPS切换可用于RLC-AM或RLC-UM承载。对于配置了DAPS的DRB,还应用了以下原则。
下行:
- 在HO准备期间,始终建立一个转发通道;
- 源gNB负责分配下行链路PDCP SN,直到SN分配被切换到目标gNB和数据转发。也就是说,源gNB在接收到HANDOVER SUCCESS 消息并将 SN STATUS TRANSFER消息发送到目标gNB之前,不会停止向下行链路分组数据分配PDCP SN;
- 当源gNB分配下行链路PDCP sn时,它开始调度源无线链路上的下行链路数据,并开始将下行链路PDCP sdu连同分配的PDCP sn一起转发到目标gNB;
- 对于安全同步,对于转发的下行链路sdu,使用源gNB分配的PDCP SN维护HFN。源gNB发送EARLYSTATUS TRANSFER消息来传送DL COUNT值,指示源gNB转发给目标gNB的第一个PDCPSDU的PDCP SN和HFN
- 在序列号分配切换给目标gNB后,一直维护HFN和PDCP序列号。SN STATUS TRANSFER消息指示要分配给尚未具有PDCP序列号的分组数据的下一个DL PDCP SN,即使对于RLC-UM也是如此;
- 在切换执行期间,源GNB和目标GNB分别执行ROHC头压缩、加密和添加PDCP头;
- 在切换执行期间,UE继续接收来自源gNB和目标gNB的下行链路数据,直到通过来自目标gNB的显式释放命令来释放源gNB连接
- 在切换执行期间,UE-DAPS-PDCP维护与每个gNB相关联的单独的安全性和ROHC报头解压缩,同时保持通用的重排序功能、重复检测、丢弃功能以及PDCP sdu按顺序传送到上层。配置了daps的RLC-AM和UM-drb都支持PDCP-SN连续性。
上行:
- UE向源gNB发送UL数据,直到成功完成对目标gNB的随机访问过程。然后UE将其UL数据传输切换到目标gNB。
- 即使在交换其UL数据传输之后,UE继续向源gNB发送UL L1 CSI反馈、HARQ反馈、L2RLC反馈、ROHC反馈、HARQ数据重传和RLC数据重传。
- 在切换执行期间,UE维护单独的安全上下文和ROHC头压缩上下文,用于向源和目标gNB的上行链路传输。UE维护公共ULPDCP SN分配。配置了daps的RLC-AM和UM-drb都支持PDCP-SN连续性。
- 在切换执行期间,源gNB和目标gNB维护自己的安全性和ROHC头解压缩上下文来处理从UE接收的UL数据。
- 建立转发通道是可选的。
- HFN和PDCP SN保留在目标gNB中。SN STATUS TRANSFER 消息指示目标应开始向5GC发送的第一个丢失的UL COUNT ,即使对于RLC-UM也是如此。
当接收到DAPS切换命令消息时,UE暂停源小区srb,停止向源小区发送和接收任何RRC控制平面信令,并为目标小区建立srb。在DAPS切换执行成功后,UE在接收到来自目标小区的源小区释放指示时,释放源小区SRB配置。当DAPS切换到目标小区失败并且如果源小区链路可用,则UE恢复到源小区配置并激活源小区srb以进行控制平面信令。
开源协议栈 rlc rrc_NR 双激活协议栈(DAPS)切换相关推荐
- DAPS~5G NR双激活协议栈
目录 DAPS的切换特性: 为什么需要DAPS切换? DAPS切换呼叫流程: DAPS切换中承载处理(38.300): 下行链路: 上行链路: 3GPP在TS38.300 R16(Stage2)中定义 ...
- 5G NR双激活协议栈(DAPS)~导入
名词解释 3GPP在TS38.300 R16(Stage2)中定义了支持"双激活协议栈(DAPS-Dual Active Protocol Stack)"切换. 在双激活协议栈切换 ...
- ubuntu20.0.4切换清华源_NR 双激活协议栈(DAPS)切换
协议定义: DAPS(Dual Active Protocol Stack)切换可定义为在接收到RRC消息(切换命令)进行切换后,保持源gNB连接,直到成功随机接入目标gNB后释放源小区的切换过程. ...
- R16 5G NR双活动协议栈(DAPS)
3GPP在TS38.300 R16(Stage2)中定义了支持"双活协议栈(DAPS-Dual Active Protocol Stack)"切换:在双活协议栈切换中终端在接收到含 ...
- Linux用户态协议栈好处,关于用户态协议栈的思考
一直以来我一直以为操作系统内核是高大上的东西,但是实际上用户态的应用才是! 上周的一次技术交流中,一家网络加速卡厂商声称他们的协议栈是用户态的协议栈,用来提高性能,我对其产品直接就泄了气,然而会后,我 ...
- 网络分层 之 五层因特网协议栈和七层因特网协议栈
网络层次可划分为五层因特网协议栈和七层因特网协议栈. [1] 五层 因特网协议栈共有五层:应用层.传输层.网络层.链路层和物理层.不同于OSI七层模型这也是实际使用中使用的分层方式. (1)应用层 支 ...
- Python量化交易实战-38使用开源项目回测双均线策略
B站配套视频教程观看 使用PyAlgoTrade回测双均线策略 双均线策略:长短周期均线,通过金叉,死叉的方式买入卖出股票,获取收益的策略. 回顾上节课代码的部分,上节课完成了可视化代码的部分, 主要 ...
- Delphi 使用双缓冲解决图片切换时的闪烁问题 good
Delphi 使用双缓冲解决图片切换时的闪烁问题 good 参考文章: (1)Delphi 使用双缓冲解决图片切换时的闪烁问题 good (2)https://www.cnblogs.com/find ...
- ventura 双系统win之间切换蓝牙设备自动连接教程
ventura 双系统win之间切换蓝牙设备自动连接教程 见论坛有小伙伴在咨询ventura跟win双系统切换蓝牙鼠标无法自动连接上的问题,现在说说具体怎么设置才能实现双系统互换自动连接的教 ...
最新文章
- java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告
- mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
- oracle11g导出表时会发现少表,空表导不出解决方案。
- web前端网页设计作业_网页前端设计快速入门技巧
- 解决jquery的scrollTop()置顶的浏览器兼容
- 【javascript权威指南】类型转换
- linux以预置密码进行验证拒绝访问,Linux重置MySQL密码
- 构造函数必须是public吗_谈谈 constructor 的private和public
- Reboot运维开发Python-03
- 【通信】基于matlab量子密钥分发密钥率仿真【含Matlab源码 1662期】
- 2014年物联网Internet of Things应用简介
- SpringBoot实现微信授权登录、二维码登录
- JT/T 808-2013 道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范
- 50个最新TypeScript面试题合集 – TypeScript开发教程
- PPT制作毛玻璃效果
- 第二章 Caché JSON 创建和修改动态实体
- 台式机外接显示器后没有声音
- 企业微信推送消息延迟_微信接收消息总是延迟?没有提醒,这3个功能赶紧设置一下...
- 数字孪生核电站促进界面监测的应用实践
- Excel2010分成两个或者多个独立窗口