5G无线接入网和接口协议

**部分笔记**

4.3无线协议架构

NR无线协议分为两个平面:用户面和控制面。

用户面(UP):协议栈及用户数据采用的协议

控制面(Control Plane,CP)协议栈即系统的控制信令传输采用的协议簇。

虚线标注的是信令数据的流向。一个UE在发起业务之前,首先要和核心网AMF建立信令连接,因此控制面的信令流程总是要先于用户面的数据流程。UE经过认证、授权和加密等非接入层信令处理后,通过RRC信令和gNB建立无线信令连接;信令数据经过PDCP封装、RLC封装,经过MAC层、PHY层处理后,通过Uu空中接口发送到gNB;gNB经过和一个UE相同的逆向处理过程后,发给NGAP;封装成SCTP信令后,通过NG-C接口发给AMF;AMF物理层接收到数据后,经过SCTP的解封装、NGAP解封装,转换为5G的非接入层信令被AMF处理。

什么是AMF??

在5G网络中,AMF代表的是Authentication Management Function(认证管理功能)。AMF是5G核心网络中的一个重要组成部分,负责处理用户设备的认证、安全策略和密钥管理等功能。

什么是UPF下沉???

UPF下沉指的是用户面平面(User Plane Function)的下沉。在5G网络中,为了更好地支持边缘计算和提供低延迟的服务,可以将部分用户面功能下沉到接近用户或设备的边缘位置。

这种下沉可以通过在边缘位置部署用户面功能来实现,以便更快地处理数据并降低数据传输的延迟。这种方式有助于改善对于实时应用和服务的支持,例如增强型移动宽带、车联网和工业自动化等场景。

UPF的下沉使得数据能够更加直接地从用户设备到达网络中的服务点,而无需经过远程的核心网络节点。这种架构可以显著减少数据传输的延迟,并且更好地支持需要快速响应的应用和服务。

SCTP和NGAP是什么???

SCTP(Stream Control Transmission Protocol)是一种面向消息的传输控制协议,通常用于在IP网络上提供可靠的、有序的数据传输。SCTP具有多条流的特性,可以同时处理多个消息流,适用于需要高可靠性和传输顺序保证的应用场景,比如电话信令和传感器数据传输等。

NGAP(Next Generation Application Protocol)是指5G核心网中的下一代应用层协议。它主要用于EPC(Evolved Packet Core)到5G核心网之间的通信,支持新的5G服务和功能。NGAP承载着控制面的信令消息,用于支持不同的5G核心网功能,包括移动性管理、会话管理以及用户面和控制面分离等。

用户面协议架构

SDAP PDCP RLC MAC PHY分别是什么?

· SDAP层:(Service Data Adaptation Protocol),服务数据适配协议层;因为5G沿用4G网络的无线承载的概念,但是相比于4G网络而言,5G网络更加精细化业务

· PDCP层:(Packet Data Convergence Protocol),分组数据汇聚协议层;

· RLC层:(Radio Link Control),无线链路控制层;

· MAC层:(Medium Access Control),介质访问控制层;

· PHY层:(Physical),物理层。

控制面协议栈

NR控制面协议几乎与LTE协议栈一模一样,从上到下依次为:

· NAS层:Non-Access Stratum,非接入层;

· RRC层:Radio Resource Control,无线资源控制层;

· PDCP层:Packet Data Convergence Protocol,分组数据汇聚协议层;

· RLC层:Radio Link Control,无线链路控制层;

· MAC层:Medium Access Control,介质访问控制层;

· PHY层:Physical,物理层。

UE所有的协议栈都位于UE内,而在网络侧,NAS层不位于基站gNB上,而是在核心网的AMF实体上。控制面协议栈不包含SDAP层

4.4无线接入架构中的几个典型的流程

流程说明如下:

(1) UE向源gNB-DU发送测量报告消息。

(2) 源gNB-DU向gNB-CU发送上行链路RRC传输消息以传达所接收的测量报告。

(3) gNB-CU向目标gNB-DU发送UE上下文建立请求消息以创建UE上下文并设置一个或多个承载。

(4) 目标gNB-DU利用UE上下文建立响应消息来响应gNB-CU。

(5) gNB-CU向源gNB-DU发送UE上下文修改请求消息,包括生成的RRCConnection Reconfiguration(RRC连接重配)消息,并指示停止UE的数据传输。源gNB-DU还发送下行链路数据传递状态帧(消息)以向gNB-CU通知UE未成功传输的下行链路数据。

(6) 源gNB-DU将接收到的RRCConnectionReconfiguration消息转发给UE。

(7) 源gNB-DU利用UE上下文修改响应消息来响应gNB-CU。

(8) 在目标gNB-DU处执行随机接入过程。目标gNB-DU发送下行链路数据传递状态帧(消息)以通知gNB-CU。那些未在源gNB-DU中成功发送的PDCP PDU的下行链路分组数据从gNB-CU发送到目标gNB-DU;在接收下行链路数据传递状态之前或之后,开始向目标gNB-DU发送DL用户数据取决于gNB-CU实现。

(9) UE利用RRCConnectionReconfigurationComplete(RRC连接重配完成)消息来响应目标gNB-DU。

(10) 目标gNB-DU向gNB-CU发送上行链路RRC传输消息以传达所接收的RRCConnectionReconfigurationComplete消息。下行链路分组被发送到UE。此外,从UE发送上行链路分组并通过目标gNB-DU转发到gNB-CU。

(11) gNB-CU向源gNB-DU发送UE上下文释放命令消息。

(12) 源NB-DU释放UE上下文并且用UE上下文释放完成消息来响应gNB-CU。

3.在F1-U上设置承载上下文流程

由于gNB引入了F1接口,因此gNB业务的基础是通过F1-U接口在gNB-CU-UP中建立承载上下文,这样就可以在gNB-CU-UP和gNB-DU之间发起上下行数据传送的过程,如图所示。

流程说明如下:

(1) 在gB-CU-CP中触发承载上下文设置(例如,在来自MeNB(LTE基站为锚定基站或者主基站)的SgNB(gNB为辅基站)添加请求之后)。

(2) gNB-CU-CP发送包含用于S1-U或NG-U的UL TNL地址信息的承载上下文建立请求消息,并且如果需要,发送用于X2-U或Xn-U的DL或UL TNL地址信息以在gNB-CU-UP中建立承载上下文。对于NG-RAN,gNB-CU-CP决定流到DRB的映射,并将生成的SDAP和PDCP 配置发送到NB-CU-UP。

(3) gNB-CU-UP以Bearer Context Setup Response (承载上下文建立响应)消息响应,该消息包含F1-U的UL TNL地址信息,以及S1-U或NG-U的DL TNL地址信息,如果需要,还包含DL或TNL地址信息。

(4) 为在gNB-DU中设置一个或多个承载,执行F1 UE上下文设置过程。

(5) gNB-CU-CP发送包含用于F1-U和PDCP状态的DL TNL地址信息的Bearer Context Modification Request(承载上下文修改请求)消息。

(6) gNB-CU-UP以Bearer Context Modification Response(承载上下文修改响应)消息响应。

4.gNB-CU-CP发起的承载上下文释放流程

当gNB结束业务时,需要释放gNB-CU-CP发起的gNB-CU-UP中的承载上下文,以结束gNB-CU-UP和gNB-DU之间上下行数据传送的过程,如图所示。

流程说明如下:

(1) 在gNB-CU-CP中触发承载上下文释放(例如在来自MeNB的SgNB释放请求之后)。

(2) gNB-CU-CP向gNB-CU-UP 发送Bearer Context Modification Request(承载上下文修改请求)消息。

(3) gNB-CU-UP以承载PDCPUL/DL状态的承载上下文修改响应进行响应。

(4) 执行F1 UE上下文修改过程以停止UE的数据传输。在停止UE调度时由gNB-DU实现(注意:仅当需要保留承载的PDCP状态,例如在承载类型改变时才执行步骤(2)~(4)。

(5) gNB-CU-CP可以在EN-DC操作中从MeNB接收UE Context Release(UE上下文释放)消息。

(6) 执行承载上下文释放过程。

(7) 执行F1-UE上下文释放过程以释放gNB-DU中的UE上下文。

(8) gNB-CU-UP释放承载上下文。

5.涉及gNB-CU-UP改变的gNB间切换流程

当UE从一个gNB移动到另外一个gNB下时,就会发生gNB间切换。这种情况下,gNB的CU和DU都发生了切换

流程说明如下:

(1) 源gNB-CU-CP向目标gNB-CU-CP发送Xn Handover Request(Xn口切换请求)消息。

(2) 目标gNB-CU-CP向目标gNB-CU-UP发送承载上下文建立请求消息。

(3) 目标gNB-CU-UP向目标gNB-CU-CP回复响应消息。

(4) 承载上下文设置过程。

(5) 目标gNB-QU-CP用Xn Handover Request Acknowledge(Xn口切换请求确认)消息来响应源 gNB-CU-CP。

(6) 执行F1 UE上下文修改过程以停止gNB-DU处的UL数据传输,并将切换命令发送到UE。

(7)-(8) 执行承载上下文修改过程(gNB-CU-CP发起),以使gNB-CU-CP能够检索UL/DL状态并交换承载的数据转发信息。

(9) 源gNB-CU-CP向目标gNB-CU-CP发送SN状态转移消息。

(10)-(11) 承载上下文修改过程。

(12) 从源gNB-CU-UP到目标gNB-CU-UP执行数据转发。

(13)-(15) 执行路径切换过程以将NG-U的DL TNL地址信息更新为核心网络。

(16) 目标gNB-CU-CP向源gNB-CU-CP发送UE上下文释放消息。

(17) 源gNB-CU-CP向源gNB-CU-UP发送承载上下文释放命令消息。

(18) 执行F1 UE上下文释放过程。

(19) 源gNB-CU-UP向源gNB-CU-CP发送承载上下文释放完成消息。

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

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

相关文章

宁波ISO22000认证:食品安全管理的国际标杆

🍎宁波ISO22000认证:🍉食品安全管理的国际标杆 随着全球化🌍的不断深入,食品安全问题👨‍👩‍👧越来越受到人们的👩‍👩‍👦‍👦关注…

Servlet Response的常用方法 缓存和乱码处理

前言 Servlet Response相关的信息,在service方法中使用的是HttpServletResponse,它继承自ServletResponse,扩展了Http协议相关的内容,下面简单记录一下它的基本用法。 一、response组成内容 以下是一个常见response响应的内容&…

Redis超好用可视化工具--RedisInsight工具安装

RedisInsight 保姆级安装 RedisInsight 是Redis官方出品的可视化redis管理工具,具有很强大的功能。接下来,让我们一起去完成这款炫酷工具的安装 1. RedisInsight 下载 RedisInsight 官方下载地址,https://redis.io/docs/connect/insight/ …

springboot在线学习做题答题统计系统-可视化分析系统

系统阐述的是使用可视化的学习系统的设计与实现,对于java、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 springboot框架和MySql数据库技术搭建系统的整体架构。…

CleanMyMac X2024专业免费的国产Mac笔记本清理软件

非常高兴有机会向大家介绍CleanMyMac X 2024这款专业的Mac清理软件。它以其强大的清理能力、系统优化效果、出色的用户体验以及高度的安全性,在Mac清理软件市场中独树一帜。 CleanMyMac X2024全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 一、主要…

挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题

前言 大概故事是这样的,PostgreSQL数据库,表结构: create table t1(a varchar);然后使用标准的Java jdbc去插入数据,其基本代码如下: import java.sql.*; public class PgDoubleTest {public static void main(Stri…

C语言TCP服务器模型 : select + 多线程与双循环单线程阻塞服务器的比较

观察到的实验现象: 启动三个客户端: 使用双循环阻塞服务器:只能accept后等待收发,同时只能与一个客户端建立连接,必须等已连接的客户端多次收发 明确断开后才能与下个客户端连接 使用IO多路复用select:可以同时接收所有的连接请求,并且连接状态一直是存活的,直到客户端关闭连…

53 v-bind 和 v-model 的实现和区别

前言 这个主要的来源是 偶尔的情况下 出现的问题 就比如是 el-select 中选择组件之后, 视图不回显, 然后 model 不更新等等 这个 其实就是 vue 中 视图 -> 模型 的数据同步, 我们通常意义上的处理一般是通过 模型 -> 数据 的数据同步, 比如 我们代码里面更新了 model.…

C#/.NET/.NET Core优秀项目和框架2024年3月简报

前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学…

变更控制、变更类型

目录 1、变更控制 2、变更类型 1、变更控制 在软件开发过程中会有许多变更,如代码、配置、SQL、基线、构建版本、发布版本等变更。对于变更都要有一个控制机制,以保证所以变更都是可控的、可跟踪的、可重现的。对变更进行控制的机构称为变更控制委员会…

爬虫(Web Crawler)介绍与应用

## 摘要 本文将介绍什么是爬虫(Web Crawler)以及其在信息抓取、数据分析等领域的应用。我们将深入探讨爬虫的工作原理、设计特点以及开发过程中需要考虑的关键问题。 ## 一、什么是爬虫 爬虫是一种自动化程序或脚本,用于从互联网上抓取信息…

[HackMyVM]靶场Pipy

难度:easy kali:192.168.56.104 靶机:192.168.56.141 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.141 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-31 20:10 CST Nmap scan report for 192.168.56.141 Host is up (0.00…

Vitepress部署到GitHub Pages,工作流

效果: 第一步: 部署 VitePress 站点 | VitePress 执行 npm run docs:build,npm run docs:preview,生成dist文件 第二步: 手动创建.gitignore文件: node_modules .DS_Store dist-ssr cache .cache .temp *…

Python100个库分享第5个—fuzzywuzzy

目录 专栏导读库介绍安装fuzz模块用法1:简单匹配(Ratio)fuzz模块用法2:推荐使用—非完全匹配(Partial Ratio)fuzz模块用法3:Token Sort Ratio)process模块extract提取多条数据extrac…

55 npm run serve 和 npm run build 的分包策略

前言 这里我们来看一下 vue 这边 打包的时候的一些 拆分包的一些策略 我们经常会使用到 npm run build 进行服务的打包 然后 打包出来的情况, 可能如下, 可以看到 chunk-vendors 是进行了包的拆分, 我们这里就是 来看一下 这里 npm run build 的时候的, 一个分包的策略 测试…

Verilog基础【一】

文章目录 1.1 第一个verilog设计1.2 Verilog 简介1.3 Verilog环境搭建1.4 Verilog 设计方法设计方法设计流程 2.1 Verilog 基础语法格式注释标识符与关键字 2.2 Verilog 数值表示数值种类整数数值表示方法实数表示方法十进制:科学计数法: 字符串表示方法…

ubuntu23.10配置RUST开发环境

系统版本: gcc版本 下载rustup安装脚本: curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh下载完成后会自动执行 选择默认安装选项 添加cargo安装目录到环境变量 vim ~/.bashrc 默认已添加 使用环境变量立即生效 source ~/.bashrc 执行rust开发环境,在终端输入…

使用Pilotfish扩展Sui执行能力

Pilotfish第一个多机智能合约执行引擎,使Sui网络的验证节点可以利用多台机器,并在负载增加时自动扩展以执行更多的交易。这一目标实现不会影响可靠性或功能完整性。 Pilotfish可以从内部执行机器的故障中恢复,并支持Sui的全面动态操作。其流…

表白墙项目(JAVA实现)

1、在html里 class使用. id使用# 2、记得引入响应依赖(举例lombok) 3、messageController package com.example.demo.demos.web; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; i…

Springboot集成knife4j (swagger)

1、添加依赖 在pom.xml 文件中添加 knife4j-spring-boot-starter 的依赖 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </depe…