【3GPP】【核心网】【5G】5G核心网协议解析(四)(超详细)

news2024/11/15 19:32:13

1. 欢迎大家订阅和关注,精讲3GPP通信协议(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待!

目录

1. NGAP 按流程功能分类

1.1 接口管理过程

1.1.1 NG Setup

1.2.1 NAS消息传输过程 Transport of NAS Messages Procedures

1.2 UE上下文管理过程 (UE Context Management Procedures)

1.2.1 Initial Context Setup

1.2.2 INITIAL CONTEXT SETUP REQUEST

1.2.3 INITIAL CONTEXT SETUP RESPONSE

1.2.4 UE Context Release Request (NG-RAN node initiated)

1.2.5 UE Context Release (AMF initiated)

1.3 PDU会话管理过程

1.3.1 PDU Session Resource Setup

2. PFCP协议:SMF 与 UFP 之间

3. PFCP关联

3.1 PFCP Association Setup Request 消息

3.2 PFCP Association Setup Request body 参数

3.3 PFCP Association Setup Respense 消息

4. GTPv2协议

5. 信令消息

5.1 路径管理

5.2 隧道管理

6. HTTP2协议


1. NGAP 按流程功能分类

1.1 接口管理过程

1.1.1 NG Setup

用来交换 NG-RAN 节点和 AMF 在 NG-C 接口上正确互操作所需的应用程序数据,该程序应是 TNL 关联开始运行后触发的第一个 NGAP 程序。

 NG SETUP REQUEST

1.2.1 NAS消息传输过程 Transport of NAS Messages Procedures

Initial UE Message

由 NG-RAN -> AMF 的 INITIAL UE MESSAGE

1.2 UE上下文管理过程 (UE Context Management Procedures)

1.2.1 Initial Context Setup

在需要时在 NG-RAN 节点上建立必要的整体初始 UE 上下文,包括 PDU 会话上下文,安全密钥,移动性限制列表,UE 无线电能力和 UE 安全能力等。

1.2.2 INITIAL CONTEXT SETUP REQUEST

AMF --> NG-RAN

1.2.3 INITIAL CONTEXT SETUP RESPONSE

1.2.4 UE Context Release Request (NG-RAN node initiated)

控制与 UE 相关的逻辑 NG 连接的 NG-RAN 节点,通过向受影响的 AMF 发送 UE CONTEXT RELEASE REQUEST 消息来启动该过程。

1.2.5 UE Context Release (AMF initiated)

1.3 PDU会话管理过程

1.3.1 PDU Session Resource Setup

  1. 寻呼过程:

  2. UE移动性管理过程:

  3. UE无线能力管理过程:

  4. 位置报告过程

2. PFCP协议:SMF 与 UFP 之间

PFCP 消息用在 CP Function 和 UP Function 之间的 N4 接口,用于控制面与用户面的交互

PFCP 消息包含 PFCP 消息头,根据消息的类型可能包含后续的 IE

节点相关的 PFCP 消息头

 对于节点相关的消息,PFCP 消息头不包含 SEID 字段,但是会包含 the Sequence Number 字段,最后是 spare

会话相关的 PFCP 消息头

 

会话相关的消息的 PFCP 消息头必包含 SEID 设置为1,消息头长度为16,MP可能为0或1,MP为1时,最后一个字节的高4位为优先级。

如果 MP 设置为 1,第 16字节的 5-8 位指示了消息优先级

当 S=1,字节 5-12 代表了 SEID 字段

功能介绍:

控制平面功能元素(如SMF)通过建立、修改或删除PFCP会话来控制用户平面功能元素(如UPF)的报文处理和转发。

PFCP协议控制用户面数据包的转发。它是5G网络中控制面和用户面之间的协议之一,用于在不同网络节点之间传输用户面数据包的转发规则。PFCP协议的主要作用包括:

  1. 控制面和用户面之间的通信:PFCP协议在5G核心网中用于控制面和用户面之间的通信,允许核心网控制平面中的元素来配置和控制用户面中的元素。

  2. 用户面数据包的转发:PFCP协议用于控制用户面数据包的转发,包括定义数据包转发的规则和策略。

  3. 用户面会话管理:PFCP协议还支持用户面会话管理,允许核心网控制面中的元素来管理用户面中的会话状态和流量

PFCP协议的结构包括消息类型、消息头、消息体和TLV(Type-Length-Value)三个部分。其中,消息类型定义了消息的类型,消息头包含了消息的一些元数据信息,消息体则包含了具体的消息内容,TLV则用于传输消息体中的参数信息。

需要注意的是,PFCP协议是在GTP-U(GPRS Tunneling Protocol-User Plane)协议的基础上进行扩展和改进而来的,用于支持更高效和更灵活的用户面数据包转发和控制。

PFCP协议用于控制用户面数据包的转发,包括定义数据包转发的规则和策略。其消息交互过程一般分为如下几个步骤:

  1. 建立会话:在用户面数据流需要进行转发时,控制面中的元素需要向用户面中的元素发起会话建立请求。此时,控制面元素向用户面元素发送一个Session Establishment Request消息,该消息中包含了一些必要的参数信息,如Session ID等。

  2. 确认会话:当用户面元素收到Session Establishment Request消息后,会根据消息中包含的参数信息来确认会话是否可以建立。如果可以建立,则用户面元素向控制面元素发送一个Session Establishment Response消息,该消息中包含了一些必要的参数信息,如Session ID等。

  3. 配置规则:会话建立完成后,控制面元素可以向用户面元素发送PFCP消息来配置用户面数据流的转发规则。此时,控制面元素向用户面元素发送一个PFCP规则配置请求消息,该消息中包含了一些必要的参数信息,如规则ID、规则优先级、匹配规则等。

  4. 确认规则:当用户面元素收到PFCP规则配置请求消息后,会根据消息中包含的参数信息来确认规则是否可以配置。如果可以配置,则用户面元素向控制面元素发送一个PFCP规则配置响应消息,该消息中包含了一些必要的参数信息,如规则ID、结果状态等。

  5. 更新规则:在用户面数据流需要进行转发时,控制面元素可以向用户面元素发送PFCP消息来更新用户面数据流的转发规则。此时,控制面元素向用户面元素发送一个PFCP规则更新请求消息,该消息中包含了一些必要的参数信息,如规则ID、新的匹配规则等。

  6. 确认更新:当用户面元素收到PFCP规则更新请求消息后,会根据消息中包含的参数信息来确认更新是否可以进行。如果可以进行,则用户面元素向控制面元素发送一个PFCP规则更新响应消息,该消息中包含了一些必要的参数信息,如规则ID、结果状态等。

3. PFCP关联

在 UP 功能上建立 PFCP 会话之前,应在 CP 功能和 UP 功能之间建立 PFCP 关联。一个 CP 功能和 UP 功能将由唯一的 Node ID 标识,Node ID 将被设置位 FQDN 或者 IP 地址

3.1 PFCP Association Setup Request 消息

和 UP 建立 PFCP 连接

     - 提供 node 相关参数

     - 提供 UP 功能特性

     - 使用 Heartbeat 程序检查 UP 的响应

     - 可能建立 PFCP 会话

     - 如果 UP 已经指示优雅的关闭,避免尝试建立新的 PFCP 会话

3.2 PFCP Association Setup Request body 参数

- Node ID,发送方以为的标识符

- Recovery Time Stamp,当 CP 或 CP 已经启动的时间戳

- UP Function Features,指示 UP 功能支持的特性(UP 发送)

- CP Function Features,指示 CP 功能支持的特性(CP 发送)

- User Plane IP Resource Information,包含 IPv4 / IPv6,还有 TEID,用来在 UP 分配 GTP-U F-TEID(UP 发送)

3.3 PFCP Association Setup Respense 消息

当和 CP 建立 PFCP 关联

- 更新 CP 支持的特性

- 更新 CP load/overload 控制信息功能

- 可能更新 UP IP 可用资源给 CP

- 接收从 CP 发来的 PFCP 会话相关信息

- 使用 Heartbeat 程序检查 CP 的响应

- 当失败或不再服务区,指示 CP 优雅的关闭

交互流程:

AMF                                                                                              UPF

-----------------PFCP Association Setup Request----------------------->

-----------------PFCP Association Setup Response----------------->

-----------------PFCP Association Establishmeng Request-------->

-----------------PFCP Association Establishmeng Response-------->

-----------------PFCP Association Modification Request------------->

-----------------PFCP Association Modification Response----------->

4. GTPv2协议

GTP 可以提供移动性的功能。使用 GTP,网络的终端能够在网络中移动位置,各个端点集之间可以建立多个隧道,从而根据业务不同可以提供不同的 Qos,可以隐藏 IP,安全性更高。

- Version, 用来决定 GTP 协议的版本,该版本应该设置为 1

- Protocol Type(PT),这一位用作为协议标识符在 GTP(PT为1)还是 GTP'(PT为0)。GTP' 在 3GPP TS 32.295 中定义,并且它的头部的含义和 GTP 一样的

- Extension Header flag (E),这一位指示 Next Extension Header 域是否有意义。当设置为 0 时,Next Extension Header 不存在,如果存在也不被解释。当设置为 1 时,Next Extension Header 域要被解释

- Sequence number flag (S),这一位指示 Sequence number 域是否有意义。当设置为 0 时,Sequence number 要么不存在,如果村在也不被解释。当这设置为 1 时,Sequence number 域要被解释

- N-PDU Number flag (PN),指示 N-PDU Number 是否有意义。当设置为 0,N-PDU Number 不存在,或者存在不被解释,当设置 1,N-PDU Number 将被解释

- Message Type,定义了 GTP 的消息类型,包括 GTP-C 和 GTP-U

- Length,指示了 payload 的长度,以字节为单位

- Tunnel Endpoint Identifier (TEID),该字段明确标识接收 GTP-U 协议实体中的隧道终结点,GTP 隧道的接收端在本地分配发送方必须使用的 TEID 值。指示了 T-PDU 属于哪个隧道。

5. 信令消息

5.1 路径管理

Echo Request Msg:用来探测 GTP Path 和对端节点是否正常。发送间隔由 N3 计数器控制,建议值为 5 次。T3 为等待响应的时间,建议不低于 60 秒。若 T3 * N3 超时,则认为 GTP Path 失效。

Echo Response Msg:对 Echo Request 的响应。

Supported Extension Headers Notification:声明自己所支持的 GTP 扩展包头。

图片

5.2 隧道管理

Error Indication:当收到一个 G-PDU 但找不到对应的 EPS Bearer/PDU Session,并且 TEID 不是全是 0,则要给对端发 Error Indication。主要用途防止 DOS 攻击。

End Marker:用于表明该 GTP-U 隧道已收到最后一个 G-PDU,该隧道将不再接收后续的用户数据。如果来了,也被直接丢弃。

图片

6. HTTP2协议

HTTP/2消息是一个或者两个HEADERS帧(用于承载HTTP头)、零个或多个DATA帧(用于承载与资源有关的实际内容)和一个可选的终结HEADERS帧(承载HTTP尾部)的组合。

图片

图片

5G核心网络传输层统一采用HTTP/2协议,应用层携带不同的服务消息

用户面与控制面分离介绍:

  1. 控制面和用户面的分离,应当允许在不同的频率发送,例如控制面(C 面)在覆盖好的较低的频 段发送,而用户面(U 面)在较高的频率高速发送。

  2. 灵活性和可扩展性:控制面和用户面的分离使得网络的控制和数据传输可以独立进行,这样可以更好地实现网络功能的灵活性和可扩展性。通过将控制面与用户面分开,可以根据网络需求对两者进行独立的扩容或升级,而不会相互影响。

  3. 低延迟和高吞吐量:用户面处理的是大量的用户数据流量,对于实时性和高吞吐量的要求较高。将用户面与控制面分离可以专注于优化用户数据的传输,减少控制信令对用户数据传输的干扰,从而提供更低的延迟和更高的吞吐量。

  4. 网络切片支持:5G网络提供了网络切片(Network Slicing)的能力,可以根据不同的服务需求,将网络资源划分为多个逻辑上独立的网络实例。控制面和用户面的分离使得可以为每个网络切片分别配置和优化控制和数据传输的策略,实现不同切片之间的隔离和灵活管理。

  5. 网络安全性:控制面和用户面的分离可以提高网络的安全性。控制面负责处理身份验证、鉴权和授权等安全功能,而用户面则专注于传输用户数据。这种分离可以减少攻击者对控制面的直接访问,并降低网络安全威胁的风险。

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

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

相关文章

初入数据库

SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准。 DDL(Data Definition Language)数据定义语言 数据库 show databases;create database db01;use db01;select database(); 显示当前使用的数据库drop d…

盲人导航手机:科技之光点亮无碍出行新纪元

作为一名资深记者,我有幸见证了科技如何跨越障碍,赋予特殊群体更为自由、便捷的生活方式。今天,我想向您详细介绍一款专为盲人群体设计的导航应用,蝙蝠避障,它以盲人导航手机这一创新概念,让视障人士在出行…

03-JAVA设计模式-访问者模式

访问者模式 什么是访问者模式 访问者模式(Visitor Pattern)是软件设计模式中的一种行为模式,它用于将数据结构中的元素与操作这些元素的操作解耦。这种模式使得可以在不修改数据结构的情况下添加新的操作。 在访问者模式中,我们…

【FPGA】优化设计指南(二):性能指标

目录 设计可运行的最高频率输入到输出的时钟周期数资源利用率和功耗 设计可运行的最高频率 Fmax可通过时序报告计算得出。在Vivado中,可通过命令report_timing_summary生成时序报告.WNS越大越好. 输入到输出的时钟周期数 输入到输出的延迟通常用时钟周期个数来表…

制作github.io学术个人主页

制作如图的学术个人主页。About me - Xianwen Ling’s Blog 学术个人主页是一个学者展示个人学术成果和研究方向的重要工具。个人主页可以集中展示学者的研究论文、出版物、演讲和发布的项目等学术成果,这样其他人可以更方便地了解和评估学者的研究贡献。个人主页可…

STM32 串口打印乱码(Cubemx)

STM32 串口打印乱码(Cubemx) 时钟配置错误,CubeMX默认的外部晶振是25MHz,而板载的晶振为8MHzSTM32F407修改程序将外部25M晶振修改为8M(标准库、HAL库) 核心问题 芯片型号与晶振配置:使用的ST…

动态规划---斐波那契数列模型

目录 一、斐波那契数列的基本概念 二、动态规划在斐波那契数列中的应用与优势 三、实际案例:使用动态规划解决斐波那契数列问题 四、动态规划问题的做题步骤 五、例题 1、第N个泰波那契数---点击跳转题目 2、三步问题----点击跳转题目 3、最小花费爬楼梯---…

kafka启动报错(kafka.common.InconsistentClusterIdException)

文章目录 前言kafka启动报错(kafka.common.InconsistentClusterIdException)1. 查找日志2. 定位问题/解决 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不…

JVM支持的可配置参数查看和分类

JVM参数大致可以分为三类: 标注指令:-开头。 这些是所有的HotSpot都支持的参数。可以用java-help 打印出来。 非标准指令: -X开头。 这些指令通常是跟特定的HotSpot版本对应的。可以用java -X打印出来。 不稳定参数: -XX 开头。 这一类参数是跟特定HotSpot版本对应的&#x…

sql题目练习

cookie注入 解题思路和之前的整数型注入一样,只是比整数型注入多了一步,题目没有给输入框,提示“尝试找找cookie吧”cookie的中文翻译是曲奇,小甜饼的意思。cookie其实就是一些数据信息,类型为“小型文本文件”&#…

9、案例实战【处理百万级交易无压力】:JVM栈内存与永久代大小又该如何设置?

9.1、前文回顾 上一篇文章通过案例分析,向大家介绍了在准备上线新系统时,如何根据预估的业务量和访问量来推算系统每秒的并发量。接下来,我们将探讨如何根据这个并发量来估算每秒钟请求对内存空间的占用,进而得出整个系统运行期间的JVM内存运转模型。 在得到这个JVM内存运…

如何部署 wfs 分布式服务

说明: wfs是海量小文件存储系统。wfs1.x不直接支持分布式存储,但为了应对大规模部署和高可用需求,推荐采用如Nginx这样的负载均衡服务,通过合理的资源配置和定位策略,可以在逻辑上模拟出类似分布式的效果。也就是说&am…

浅谈免杀下的持久化

文章目录 前记注册表计划任务COM劫持后记reference 前记 实战中持久化的手段常用的就是加服务、添改注册表、加计划任务、劫持等,这里探索c/c下的维权免杀 注册表 用户级 \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run \HKEY_CURRENT_USER…

POJO,Entity,model,domain,view,DTO,VO,Param这些分别都是什么含义?怎样理解?

目录 1. 前言 2. POJO的含义 3. entity(实体) 4. model(模型) 5. domain(域) 6. view(视图) 7. DTO(数据传输对象) 8. VO(真正视图层) 9. Param(参数) 10. 总结 1. 前言 在日常开发的过程中,如果我们接手一个新的项目之后,通常会有各种各样的…

Java基础之JVM对象内存分配机制简介

一 对象内存分配 1.1 运行时数据区域 1.2 常见java应用启动JVM参数: -Xss:每个线程的栈大小(单位kb)-Xms:堆的初始大小,默认物理内存的1/64,示例:-Xms:4g -Xms:10m-Xmx:堆的最大可用大小,默认物…

vue cli3开发自己的插件发布到npm

具体流程如下: 1、创建一个vue项目 vue create project 2、编写组件 (1)新建一个plugins文件夹(可自行创建) (2)新建Button组件 (3)组件挂载,为组件提供 in…

Opencv | 边缘检测 轮廓信息

目录 一. 边缘检测1. 边缘的定义2. Sobel算子 边缘提取3. Scharr算子 边缘提取4. Laplacian算子 边缘提取5. Canny 边缘检测算法5.1 计算梯度的强度及方向5.2 非极大值抑制5.3 双阈值检测5.4 抑制孤立弱边缘 二. 轮廓信息1. 获取轮廓信息2. 画轮廓 一. 边缘检测 1. 边缘的定义…

css中新型的边框设置属性border-inline

一、概念与背景 border-inline 是 CSS Logical Properties and Values 模块中的一个属性,用于控制元素在流内(inline)方向上的边框。该模块旨在提供与书写模式(writing mode)无关的布局和样式描述方式,使得…

牛客NC216 逆波兰表达式求值【中等 栈 C++/Java/Go/PHP】

题目 题目链接:https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382 核心 栈 参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** param tokens strin…

JVM (Micrometer)监控SpringBoot(AWS EKS版)

问题 怎样使用JVM (Micrometer)面板&#xff0c;监控Spring&#xff1f;这里不涉及Prometheus和Grafana&#xff0c;重点介绍与Micrometer与Springboot&#xff0c;k8s怎样集成。 pom.xml 引入依赖&#xff0c;如下&#xff1a; <properties><micrometer.version&…