【5G RAN】5G gNB间的N2/NGAP切换(handover)那点事儿

news2025/1/12 22:58:41

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G/6G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解



5G gNB间的N2/NGAP切换(handover)那点事儿

在这里插入图片描述

       移动性(也就是切换)在任何电信时代都是一个重要的特性,5G时代也是如此。切换过程与传统网络相同,即UE向源小区报告相邻小区PCI和信号强度的测量报告,源小区决定启动向最佳目标小区的切换过程,最后由目标小区完成切换过程。

       在LTE中,我们有不同类型的同系统(即LTE到LTE)切换,比如基于X2接口的切换、基于S1接口的切换、异频间切换、同频扇区间切换。同样3GPP规范也定义了5G下的同系统(即5G NR到5G NR)切换,如基于Xn接口的切换、基于N2\NGAP接口的切换、同频和异频切换。

       在这篇文章中,我们将讨论gNB间的N2\NGAP切换,当UE从一个gNB移动到另一个gNB时,不会重定位AMF和UPF


N2切换流程

在这里插入图片描述
       上图描述了移动场景,其中UEs位于gNB#1下的PCI为22的小区,随后它开始向gNB#2下的PCI为21的小区移动。在整个切换过程中,主要通过N2接口传递信令,这些信令使用的是NGAP协议。

N2切换流程图

       下图展示了5G gNB间的N2/NGAP切换流程。为了避免流程的复杂性,我们将gNB-DU、gNB-CUCP和gNB-CUCP视为一个单一实体,即gNB,不包含内部DU、CUCP和CUUP信令。

在这里插入图片描述

  • 步骤#0:UE在RRC_CONNECTED中,在源gNB发送和接收上行链路和下行链路数据,并向目标端gNB移动;

  • 步骤#1-MeasurementReport:终端向源gNB发送测量报告消息,包括服务小区和邻小区的信号强度;
    在这里插入图片描述

  • 步骤#1.1:源gNB根据测量报告和小区负载等信息,综合考虑UE的移动限制和无线能力,决定切换UE到其它gNB,并选择目标gNB发起切换;

  • 步骤#2-Handover Required:基于源gNB的切换决定会触发一个N2切换,其向AMF发送N2切换请求信令。该信令包括UE RAN-NGAP-ID、AMF-NGAP-ID、Target gNB ID、切换类型、切换原因以及将要切换的PDU会话信息;
    在这里插入图片描述

  • 步骤#3-HandoverRequest:AMF接收到切换请求后,识别目标gNB并发送切换请求,请求内容包括UE安全上下文、UE能力、PDU会话信息、SourceToTarget-TransparentContainer、GUAMI等;
    在这里插入图片描述

  • 步骤#4-HandoverRequestAcknowledge:在接收到AMF的切换请求后,目标gNB根据可用资源的数量,来决定是否接纳UE。如果目标gNB能够接纳所有PDU会话中的各个数据bearers,它会使用HandoverRequestAcknowledge回复AMF。HandoverRequestAcknowledge消息包括UE-NGAP-IDs、已接纳的PDU会话列表和TargetToSource-TransparentContainer;
    在这里插入图片描述

  • 步骤#5-HandoverCommand:AMF向源gNB发送切换命令。此消息包括步骤#4中收到的信息。源gNB现在可以在步骤#6中向终端发送切换命令。在接收到切换命令后,终端将离开源小区,并开始连接到目标小区;
    在这里插入图片描述

  • 步骤#6-RRCReconfiguration:源gNB通过向UE发送RRCReconfiguration消息来触发切换,该消息包含了接入目标小区所需的信息(至少是目标小区ID、新的C-RNTI和所选安全算法的目标gNB安全算法标识符);

  • 步骤#7-UplinkRANStatusTransfer:向空口发送了切换命令之后,源gNB会向AMF发送UplinkRanStatusTransfer消息,消息中包括了RAN和AMF的UE-NGAP-IDs、RANStatusTransfer-TransparentContainer。RANStatusTransfer-TransparentContainer包含源gNB上终端所有的PDCP DRBs的SN信息;
    在这里插入图片描述

  • 步骤#8-DownlinkRANStatusTransfer:AMF收到UplinkRanStatusTransfer消息后,会给目标gNB发送DownlinkRanStatusTransfer消息;
    在这里插入图片描述

  • 步骤#9-目标小区上发起RACH:在目标gNB上执行RACH,将步骤#6中收到的信息作为rach-ConfigDedicated的一部分;

  • 步骤#10-RRCReconfigurationComplete:终端成功连接到目标小区后,通过向目标gNB发送RRCReconfigurationComplete消息完成切换过程。UE开始发送上行数据到目标gNB;

  • 步骤#11-HandoverNotify:目标gNB向AMF发送切换通知消息,认为切换成功。该消息包括RAN和AMF的UE-NGAP-IDs,此参数可以用于识别UE上下文,以及UE位置信息(用来确定当前那个TAC在位此终端服务);
    在这里插入图片描述

  • 步骤#12-UEContextReleaseCommand:AMF向源gNB发送UEContextReleaseCommand消息,通知gNB释放与该UE相关的资源。AMF会在此消息中包含用于识别终端上下文的UE-NGAP-IDs和用于确定终端是否切换成功cause参数;
    在这里插入图片描述

  • 步骤#13-UEContextReleaseComplete:源gNB在成功删除终端上下文以及释放所有与终端相关的资源后,发送UEContextReleaseComplete消息。
    在这里插入图片描述

在某些情况下,切换完成后,终端需要重新发起注册流程,例如,如果切换导致终端移动到不同的注册区域(Registration Area)。


总结

  • 5G N2切换类似于4G中的S1切换;
  • N2切换不要求源和目标gNB之间有可用的Xn接口;
  • 两个具有Xn接口的gNB仍然进行N2切换,主要是因为配置不允许执行Xn切换;
  • 这种类型的切换适用于同一个AMF内迁移或不同AMF间迁移,即源和目标gNB可以连接到同一个AMF或不同的AMF;
  • N2切换分为同频切换和异频切换;
  • 源gNB和目标gNB可以连接两个不同的UPFs;
  • 如果源gNB和目标gNB属于不同的跟踪区域(TAC),则在成功切换后需要发起新的注册过程;
  • N2/NGAP切换比Xn切换需要更多的时间;
  • N2切换支持直接数据转发(Direct Data Forwarding)间接数据转发(Indirect Data Forwading)


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@Import注解详解

Import这个注解非常重要,而且在springboot项目当中随处可见,就拿springboot启动类来说,我们经常会遇到一些Enable相关的注解,例如开启异步EnableAsync、开启缓存支持EnableCaching、开启定时任务EnableScheduling等等… 目录一、I…

Oracle通过DBLINK访问达梦数据库

环境需求 需要安装配置以下相关软件: 1、Oracle Gateways 2、ODBC数据源(gateway机器) 3、达梦数据库软件(gateway机器) 安装配置 Windows环境 安装达梦数据库软件 安装步骤省略,可以参考DM 数据库…

【嵌入式Linux开发一路清障-连载02】Ubuntu22.04安装Shutter进行截图和标注

Ubuntu22.04安装Shutter进行截图和标注障碍 05-Ubuntu22.04中不会给截图做标注,写Bolg举步维艰命令行方式安装Shuttershutter中的常用命令为截取活动窗口设置快捷键安装gnome-web-photo截取长图--失败--未完待续小结下节预告障碍 05-Ubuntu22…

一起来部署项目-采购一台云服务器

前言 不会运维的程序员不是一个好程序员,你是这样认为吗?不,不重要,关键是很多小企业是让后端程序员去干运维的,省钱~~~o(╥﹏╥)o。特别是在YQ严重的当下,所以为了提高自己的竞争力,从今天起&…

万字爽文一篇带你掌握Java8新特性

陈老老老板说明:新的专栏,本专栏专门讲Java8新特性,把平时遇到的问题与Java8的写法进行总结,需要注意的地方都标红了,一起加油。本文是介绍Java8新特性与常用方法(此篇只做大体介绍了解,之后会把…

Java8中LocalDate详解Date线程不安全的原因

LocalDate 分类分工 java.time.LocalDate ->只对年月日做出处理 java.time.LocalTime ->只对时分秒纳秒做出处理 java.time.LocalDateTime ->同时可以处理年月日和时分秒优点 除了使用起来更加简单和灵活,主要是传统的时期处理类Date、Calendar不是多线…

刷爆leetcode第十二期 0026 数组中数字出现的次数

编号0026 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 题目示例如下 这里其实是一道我一个月之前做的题目 在学弟的博客里刚好看…

【数据结构与算法】Java实现七大排序算法汇总

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【数据结构与算法】 ✈️✈️本篇内容: Java实现七大排序算法汇总! 🚀🚀由于本篇博客涉及代码较多,博主把代码都提…

刷爆leetcode第十一期 0023~0025

刷爆leetcode第十一期 编号0023 相同的树编号0024 对称二叉树编号0025 另一个树的子树编号0023 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是…

多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行

多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行前言书接上文接口测试键盘指令发布指令转换与发布修改 rotors_simulator 的控制接口节点测试前言 RotorS 是一个MAV gazebo 仿真系统。 提供了几种多旋翼仿真模型,例如 AscTec HummingbirdAsc…

PHP反序列化

序列化与反序列化 序列化 反序列是指把对象转换为字符串的过程&#xff0c;便于在内存、文件、数据库中保存、传输&#xff0c;PHP中使用serialize函数进行序列化。 <?phpclass Person{public $name"php";protected $id;private $age;}$a new Person();$a_se…

全排列笔记

14天阅读挑战赛 全排列 题目 给定一个 没有重复 数字的序列&#xff0c;返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解答 方法一&#xff1a;回溯 思路 从高中的数学知识我们可以知道 从[1,2,3…

如何在Linux上优雅地写代码-Linux生存指南

初入Linux&#xff0c;发现老是要面对一个命令行&#xff0c;大黑框&#xff0c;看不懂各种手册&#xff0c;写代码也是用vi/vim&#xff0c;难受的捉急。其实Linux下的各种工具&#xff0c;强大得超出你的想象&#xff0c;如果你初入Linux&#xff0c;那么你急需阅读这篇文章&…

操作系统的主要功能

目录 一. 处理机管理功能 1.1 进程控制 1.2 进程同步 1.3 进程通信 1.4 进程调度 二. 存储器管理功能 2.1 内存分配 2.2 内存保护 2.3 地址映射 2.4 内存扩充 三. 设备管理功能 3.1 缓冲管理 3.2 设备分配 3.3 设备处理 3.4 设备独立性和虚拟设备 四…

关于Python爬虫兼职,这里有一条高效路径

前言 昨天&#xff0c;一位00后前来报喜&#xff0c;也表达感谢。 他说&#xff0c;当初刚毕业啥也不会也找不到工作&#xff0c;最后听了我的&#xff0c;边学爬虫边做兼职项目&#xff0c;积极主动求职投简历&#xff0c;既可以兼职获得收益&#xff0c;也能积累项目经验谋求…

Linux:以K、M、G查看文件大小;

简介&#xff1a;灵活多变的查看文件的大小 历史攻略&#xff1a; Linux&#xff1a;sudo免密 python&#xff1a;执行dos命令、Linux命令 案例源码&#xff1a; # 以适当方式显示文件大小&#xff1a; ls -lh# 以byte显示文件大小&#xff1a; ls -l# 以M显示文件大小&am…

NR PUSCH(五) DMRS

微信同步更新欢迎关注同名modem协议笔记 PUSCH DMRS和PDSCH DMRS内容基本一样&#xff0c;但也有不同的地方&#xff0c;例如PUSCH 可能需要Transform precoding&#xff0c;port 对应0~11(DMRS configured type2)等等。先简单看看Transformprecoding的相关内容&#xff0c;Tr…

Excel数据分析实战之开宗明义: Excel与数据分析实战

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结…

军用大数据 - Spark机器学习

文章目录第1关&#xff1a;Iris 分类任务描述相关知识1&#xff1a;观察数据集2&#xff1a;RFormula 特征提取3&#xff1a;pandas 的 concat 函数编程要求代码实现————————————————————————————————————————第2关&#xff1a;图片识…

网络原理 --- 传输层Ⅲ TCP协议中的滑动窗口,流量控制和拥塞控制

文章目录网络原理传输层TCP协议4.滑动窗口5.流量控制6.拥塞控制总结网络原理 介绍TCP/IP协议中每一层里面的核心内容~ 应用层传输层网络层数据链路层物理层 传输层TCP协议 4.滑动窗口 TCP能够保证可靠传输,但是失去了效率! 但是TCP希望能够在保证可靠性的前提下,尽可能地提…