【普通切换】【DC-based handover】【DAPS】协议栈分析

移动网络切换

        移动通信中切换是保证终端业务的基本流程,而切换时延是终端(UE)不能与任何基站交互(传递)用户面数据包的最短时间。

        在5G(NR)网络中当终端(UE)接收到切换命令时,将断开与源小区的连接向目标小区发起随机接入过程。在此期间终端(UE)的数据传输中断时间至少长达5ms。

图片

                                         图1. Rel-15切换前和切换后协议栈

        图1是切换过程中终端(UE)与网络侧之间的协议栈示意图,其中UE只与一个小区保持连接及其对应的协议栈。

双连接切换

        为了缩短中断时间,在5G标准制定中针对切换有一种候选方案,它是基于双连接的切换(DC-based handover );在基于双连接的切换(见图2)中,终端(UE)先将目标小区添加为主辅小区(PSCell),然后交换PSCell和PCell的角色。最后将转为PSCell的源小区释放。

图片

图2.DC切换前、中和后终端协议栈

        在双连接切换中断时间可以接近0ms,且通过在切换期间保持两个小区之间的连接来提高切换的可靠性。但需要引入一个新的角色转换程序,流程过于复杂该方案最终没被标准采用。

DAPS(双活协议栈)切换

        在R16版本中引入了一种新的切换增强流程(基于双活协议栈的-DAPS切换)。DAPS切换核心思想是:当终端(UE)收到切换命令后,与源小区保持数据传输的同时,发起对目标小区的随机接入,从而实现下行数据中断时间接近0ms。

        DAPS切换协议栈架构比较简单,主要包括建立目标侧的协议栈,在接入目标小区时保持源小区的协议栈,在切换完成时释放源小区的协议栈。

        完整DAPS切换的流程类似于传统切换的流程;DAPS切换可以按DRB进行配置(即网络可以配置一些业务中断时间要求高的DRB进行DAPS切换),对于未配置DAPS切换的DRB,执行切换的过程与传统切换相同。

图片

        图3.DAPS切换之前、期间和之后的协议栈

DAPS切换限制

        鉴于终端(UE)能力限制,R16的DAPS切换不能同时支持DC和载波聚合(CA)。在DAPS切换期间UE只保持与源小区的PCell和目标小区的PCell的连接。因此源小区在发送切换请求之前需释放SCG和所有的SCell。

        目标基站接收到切换请求后,确定目标小区配置并根据接收到源小区配置和UE能力生成切换命令。然后向源小区发送DAPS切换命令通过源小区透传给UE。UE收到切换命令后开始执行DAPS切换。

        对于配置了DAPS的DRB,UE会建立与目标小区对应的协议栈,具体包括:

  • 根据切换命令配置,将源侧普通PDCP实体重新配置为DAPS PDCP实体。

  • 建立目标侧RLC实体和相应逻辑信道。

  • 在目标端创建 MAC 实体。

DAPS切换中SRB和DRB处理

        在DAPS切换中SRB的处理与DRB不同。UE收到切换命令后会根据配置信息在目标侧建立SRB的协议栈。由于UE只有一个RRC状态,UE会暂停源小区的SRB,将RRC信令处理切换到目标小区。对于没有DAPS的DRB,协议栈的处理与传统切换相同。

        完成上述步骤后UE开始向目标小区发起随机接入过程,以获得与目标小区的上行同步。

        如前所述,DAPS切换的基本思想是同时维护源小区和目标小区的协议栈。UE在向目标小区发起随机接入过程的同时保持与源小区的连接。UE和源小区之间的数据传输也在此期间保持。

DAPS切换失败处理

        如果DAPS切换失败并且源小区没有发生无线链路故障,则UE可以回退到与源小区的连接,以避免由于切换失败而导致的RRC连接重建过程。在此时间点协议栈处理包括:

  • 对于SRB,UE将恢复源小区暂停的SRB,向网络侧报告DAPS切换失败,并释放目标侧SRB对应的PDCP实体、RLC实体和对应的逻辑信道。

  • 对于配置了DAPS的DRB,UE会将DAPS的PDCP实体重新配置为普通的PDCP实体,并释放目标侧的RLC实体和对应的逻辑信道等。

  • 对于未配置DAPS的DRB,UE将回退到接收切换命令之前的源小区配置,包括:SDAP配置、PDCP和RLC状态变量、安全配置以及存储在PDCP和 RLC层缓冲区中的数据。

  • 同时,UE释放所有目标侧配置。

DAPS切换成功处理

        当UE成功接入目标小区后,UE会将上行数据传输从源小区侧切换到目标小区侧。由于此时网络侧的上行锚点在源小区侧,将目标小区接收到的数据转发到源小区会带来额外的X2接口传输延迟,用于同时上行传输的方法。商定采用单上行数据传输的方案。

        另一方面维持“对源小区的有限上行传输”。UE成功完成随机接入过程后,会立即切换到target发送包含未确认PDCP SDU的数据包,同时UE会在源端继续上行HARQ和ARQ重传。如果源小区与UE保持下行数据传输,这些下行数据对应的HARQ反馈、CSI反馈、ARQ反馈、ROHC反馈也会继续上报给源小区。

        在UE成功接入目标小区后,在释放源小区之前UE同时保持与源小区和目标小区的连接。将保持源端和目标端的无线电链路监控。如果此时目标小区的无线链路发生故障,UE将触发RRC连接重建过程。相反如果源小区的无线链路发生故障,则UE不会触发RRC连接重建过程,而是暂停源侧的所有DRB,并释放与源小区的连接。

        当目标小区指示UE释放源小区时,UE会释放与源小区的连接,停止与源小区的上行数据传输和下行数据接收,包括重置MAC实体和释放MAC配置,物理通道配置和安全密钥配置。对于SRB,UE会释放其对应的PDCP实体、RLC实体以及对应的逻辑信道配置。对于配置了DAPS的DRB,UE会在源侧释放 RLC实体和对应的逻辑信道,并将DAPS PDCP实体重新配置为普通的PDCP 实体。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/670137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解linux文件系统与日志分析12

一、inode和block 文件是存储在硬盘上,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。 inode:存储元信息(文件的属性--权限、创建者、创建日期等等) block:块 连续的八个扇区组成一个块&#xf…

rpmbuild多进程批量编译脚本

脚本用法 使用手册 bash spec.sh --help Please ensure the directory ~/rpmbuild exists, And the script can execute in any directory.Usage: bash spec.sh [OPTION]... [*.spec]... [OPTION]...or: bash spec.sh [*.spec]... [OPTION]... [*.spec]... rpmbuild all sp…

【原型模式】详解

一.概念 原型模式是一种创建型设计模式,它的主要思想是通过复制现有对象来创建新对象,而不是通过实例化一个类来创建。在原型模式中,我们称被复制的对象为原型(Prototype),新创建的对象为克隆体&#xff0…

【OpenHarmony】TypeScript 语法 ③ ( 条件语句 | if else 语句 | switch case 语句 )

文章目录 一、条件语句1、if else 语句2、switch case 语句 参考文档 : <HarmonyOS第一课>ArkTS开发语言介绍 一、条件语句 1、if else 语句 TypeScript 中的 if 语句 / if else 语句 用法 , 与 JavaScript 语言中的 if 语句 / if else 语句 语法 基本相同 ; if else 语…

.gitignore 文件

一.什么是 .gitignore 文件 在任何当前工作的 Git 仓库中&#xff0c;每个文件都是这样的&#xff1a; 追踪的&#xff08;tracked&#xff09;- 这些是 Git 所知道的所有文件或目录。这些是新添加&#xff08;用 git add 添加&#xff09;和提交&#xff08;用 git commit 提…

Ubuntu 20.04安装CMake 3.22.6版本

Ubuntu 20.04通过apt安装的cmake版本是3.16.3&#xff0c;默认安装到/usr/bin/cmake路径。 $ cmake Command cmake not found, but can be installed with:sudo snap install cmake # version 3.29.3, or sudo apt install cmake # version 3.16.3-1ubuntu1.20.04.1See sna…

chatgpt之api的调用问题

1.调用api过程中&#xff0c;出现如下报错内容 先写一个测试样例 import openaiopenai.api_key "OPEN_AI_KEY" openai.api_base"OPEN_AI_BASE_URL" # 是否需要base根据自己所在地区和key情况进行completion openai.ChatCompletion.create(model"g…

【PingPong_注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

C++ | Leetcode C++题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPalindrome(string s) {int n s.size();int left 0, right n - 1;while (left < right) {while (left < right && !isalnum(s[left])) {left;}while (left < right && !isalnu…

【scikit-learn010】sklearn算法模型清单实战及经验总结(已更新)

1.一直以来想写下基于scikit-learn训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下scikit-learn框架模型算法包相关技术点及经验。 3.欢迎批评指正,欢迎互三,跪谢一键…

数学建模 —— 灰色系统(4)

目录 什么是灰色系统&#xff1f; 一、灰色关联分析 1.1 灰色关联分析模型 1.2 灰色关联因素和关联算子集 1.2.1 灰色关联因素 1.2.2 关联算子集 1.3 灰色关联公理与灰色关联度 1.3.1 灰色关联度 1.3.2 灰色关联度计算步骤 1.4 广义关联度 1.4.1 灰色绝对关联…

mysql表字段超过多少影响性能 mysql表多少效率会下降

一直有传言说&#xff0c;MySQL 表的数据只要超过 2000 万行&#xff0c;其性能就会下降。而本文作者用实验分析证明&#xff1a;至少在 2023 年&#xff0c;这已不再是 MySQL 表的有效软限制。 传言 互联网上有一则传言说&#xff0c;我们应该避免单个 MySQL 表中的数据超过 …

深入分析 Android Service (完)

文章目录 深入分析 Android Service (完)1. Service 的生命周期管理2. Service 的生命周期方法2.1 onCreate()2.2 onStartCommand(Intent intent, int flags, int startId)2.3 onBind(Intent intent)2.4 onUnbind(Intent intent)2.5 onRebind(Intent intent)2.6 onDestroy() 3.…

springboot 项目集成 knife4j

官方版本推荐 版本依赖 spring boot 2.3.12.RELEASE 和 knife4j 2.0.9 引入依赖 完整的pom.xml文件 <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter --> <dependency><groupId>com.github.xiaoymin</groupI…

JavaScript笔记二-JavaScript基础语法

1、标识符 命名规则 第一个字符必须是一个字母、下划线&#xff08; _ &#xff09;或一个美元符号&#xff08; $ &#xff09;。其它字符可以是字母、下划线、美元符号或数字。按照惯例&#xff0c;ECMAScript 标识符采用驼峰命名法。标识符不能是关键字和保留字符。 2、字…

CDN——内容分发网络

目录 为什么使用CDN CDN是如何工作的 类型 推模式&#xff08;Push&#xff09; 拉模式&#xff08;Pull&#xff09; 缺点 例子 内容分发网络&#xff08;CDN&#xff09;是一组在地理上广泛分布的服务器&#xff0c;它们一起工作以提供互联网内容的快速交付。通常静态…

以sqlilabs靶场为例,讲解SQL注入攻击原理【15-17关】

【less-15&#xff1a;布尔盲注】 单引号闭合 1. or (length(database())) -- 数字&#xff1a;判断数据库长度&#xff1b; 2. or (ascii(substr(database(),1,1))) -- 数字&#xff1a;获取组成数据库的字符&#xff1b; 3. or (ascii(substr((select table_nam…

机器学习学习

机器学习类型(按学习方式分):监督学习、半监督学习、无监督学习、强化学习; 通过已知标签训练集训练模型,使用模型及逆行预测、测试; 向量表示法,其中每一维对应一个特征(feature)或者称为属性,记为[x1,x2,...,xn] 特征值、特征、标签,共同完成训练集的数据填充,最…

STM32作业实现(二)串口控制led

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

基于Chan-Vese算法的图像边缘提取matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................ % 迭代更新水平集函数 err[]…