5G PDU SESSION流程介绍和详解
wptr33 2024-12-12 15:22 20 浏览
引言
5G网络以数据包的形式将终端(UE)和外部网络之间发送和接收的数据进行传送,通常把这些用户的数据包叫做PDU(Packet Data Unit,其中PDU 包含是IP的、Ethernet、和非结构化三种类型,PDU session建立过程是由UE侧发起的,目的是在UE和DN之间建立一条新的PDU session,即终端和外部网络之间的数据通道
与4G网络相比,在4G EPC网络模式下,终端在attach注册的过程中会建立至少一条默认承载default bear且默认承载一直存在,而5G则不需要这样,当终端在5GC发起注册register流程时,无需建立默认承载,只有当5G UE有业务需求时,才通过主动发起PDU session请求流程建立数据通道,那如果当核心网有业务需求时,会通过下发paging消息通知终端,终端通过触发Service request流程建立数据通道。
图1表示UE和5GC SMF之间PDN session建立,以下会分别对这几个流程进行介绍
终端发起PDN Session Establishment request,建立会话请求
UE请求建立PDU会话,这条消息包含在NAS消息中的N1 SM container。PDU Session Establishment Request主要内容有:PDU Session ID、Requested PDU Session Type、Request SSC mode。AMF是不解析N1 SM container的内容的,但AMF也会获知一些在NAS中有关SM的信息,如:S-NSSAI(s)、PDU Session ID、Request Type以及DNN。详细信元介绍可参考3gpp 24501协议 table 8.3.1.1.1,以下针对关键信元进行说明。
PDU Session ID:其中“PDU Session ID”标识申请建立的PDU会话的ID,此ID对每个终端来说是唯一的,编号范围仅限此UE
PTI(Procedure transaction identity): 对于每一条session来说PTI是唯一的
PDU Session Type:5G支持三种类型的PDN session包括IP或者以太网或者非结构化三种类型。其中IP类型会话包含IPV4,IPV6和IPV4V6
SSC Mode(SSCmode1,SSCmode2和SSC mode3):5GS支持有三种不同的session and service continuity (SSC) modes;一个PDU会话的SSC模式在该PDU会话的整个生命周期内不会改变,也就是说一条PDU连接在起建立时设置为SSC mode-X,那么这条PDU会话的模式是不能修改的,直至其被去激活都是SSC mode-X
SM PDU DN Request Container : This include Authorization information to access DN,包含安全认证相关的信息
DNN:Data Network Name,类似于LTE中的APN. 代表UE想要接入的data service name
Maximum number of supported packet filters:当PDN session type为IP会话时,终端将携带这条消息,通知网络终端支持大于16 packet filters
Always-on PDU session requested:如果终端建立一条永久在线的PDU session ,将携带此信元
Table 8.3.1.1.1: PDU SESSION ESTABLISHMENT REQUEST message content
UE-requested PDU session establishment procedure accepted by the network,网络激活PDN SESSION
当网络接受终端发起的会话请求流程,将发送一条PDU SESSION Establishment accept消息发给给终端,终端收到后建立PDN session上下文。
QoS flow descriptions IE:
QoS流是PDU会话中最精细的QoS区分粒度,这就是说两个PDU会话的区别就在于它们的QoS流不一样(具体一般就是QoS流的TFT参数不同);在5G系统中一个QoS流ID(QFI)用于标识一条QoS流;一个QoS流是“GBR”还是“Non-GBR”取决于它的QoS配置;一个QoS流的QoS配置包含的QoS参数如下:
(1)每条QoS流的QoS配置都会包含的QoS参数:5QI、ARP每条Non-GBR QoS流的QoS配置可能还会包含参数:反射Qos属性(RQA)
(2)每条GBR QoS流的QoS配置还会包含参数:保证流比特率(GFBR)、最大流比特率(MFBR)
(3)每条GBR QoS流的QoS配置可能还会包含:指示控制、最大丢包率
对于IP类型或ethenet类型的PDU会话,默认QoS规则是在PDU会话中唯一的一个包过滤集可以包含允许所有UL的包过滤器的QoS规则,协议上这句话说得非常拗口,可以用类比路由表的方式去理解,就是默认QoS就可配成和默认路由一样,一个数据包所有路由都不满足时,就从默认路由走。默认QoS规则是可以配置为允许通过所有上行包,不是必须配置为允许通过所有上行包。
Session AMBR:最大允许比特率的Session AMBR(Aggregate Maximum Bitrate,聚合最大比特率)和表示一个UE的最大允许比特率的UE AMBR如何在DC时进行分配与计算
PDU address:当创建一条PDU SESSION且session type为IP类型的路由,网络侧会给终端分配一个IP地址
selected SSC mode IE:当UE发送的PDN session establishment request消息中包含 SSC mode,或者SMF配置中包含默认的SSC mode,则携带此消息信元
相关推荐
- 台积电提出SRAM存内计算新方法,能效比可达89TOPS/W
-
芯东西(公众号:aichip001)编译|高歌编辑|云鹏芯东西3月16日消息,近期,台积电的研究人员在ISSCC2021会议上公布了一种改良的SRAM存储器阵列,该SRAM阵列采用22nm工...
- Golang中如何判断两个slice是否相等?
-
在Golang中,要判断两个slice是否相等是不能直接使用==运算符的(==只能说明两个slice是否指向同一个底层数组)。如果两个slice的底层数组相同,但长度或容量不同...
- JS入门基础知识(js基础知识总结笔记)
-
JS对象操作对象增删改查创建对象letobj={}新增属性obj.a=1修改属性obj.a='a'...
- 趣谈JS二进制:File、Blob、FileReader、ArrayBuffer、Base64
-
大家好,我是Echa。好久没跟粉丝们细聊JavaScript那点事了。做一名全栈工程师,JS基础还是要打牢,这样的话不管底层业务逻辑以及第三方框架怎么变化,都离不开基础。本文文章属于基础篇,阅读有点...
- 告别 substr() 和 substring()?更可靠的 JavaScript 字符串截取方法
-
JavaScript提供了三个主要的字符串截取方法:...
- golang第九天,切片(slice)介绍(golang 切片作为参数)
-
什么是切片golang切片是对数组的抽象。go的数组长度不可改变,在特定场景中这样的集合就不太适用,go中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追...
- Go语言零到一:数组(go struct数组)
-
引言...
- 你说你熟悉Slice,这道slice题你能答对吗?
-
每当你花费大量时间使用某种特定工具时,深入了解它并了解如何高效地使用它是很值得的。...
- Python 3.14七大新特性总结:从t-string模板到GIL并发优化
-
Python3.14已进入测试阶段,根据PEP745发布计划,该版本已停止引入新功能,也就是说新特征就应该已经固定下来了。所以本文基于当前最新的beta2版本,深入分析了Python3.14中...
- Python 幕后:Python导入import的工作原理
-
更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)Python最容易被误解的方面其中之一是import。...
- Python元类实现自动化编程的正确姿势
-
元类是Python中用于创建类的类。通过元类机制,开发者可在运行时动态创建和修改类,为框架开发、设计模式实现和高级架构设计提供核心支持。在Python语言的高级特性中,元类占据着独特而重要的地位。作...
- Python字符串详解与示例(python字符串类型及操作)
-
艾瑞巴蒂字符串的干货来了,字符串是程序中最常见的数据类型之一,用来表示数据文本,下面就来介绍下字符串的特性,操作和方法,和一些示例来吧道友:1.字符串的创建在python中字符串可以永单引号(...
- 恕我直言!你对Python里的import一无所知
-
文章来源:https://mp.weixin.qq.com/s/4WAOU_Lzy651IE-2zZSFfQ原文作者:写代码的明哥...
- Python基础:字符串操作(python字符串的用法)
-
字符串是Python中最常用的数据类型之一,用于表示文本数据。我们将学习如何对字符串进行常见的操作,包括创建、访问、修改和处理字符串。通过掌握这些技巧,您将能够更好地处理和操作文本数据。让我们开始吧!...
- Python 中 字符串处理的高效方法,不允许你还不知道
-
以下是Python中字符串处理的高效方法...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
git 执行pull错误如何撤销 git pull fail
-
面试官:git pull是哪两个指令的组合?
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
-
- 台积电提出SRAM存内计算新方法,能效比可达89TOPS/W
- Golang中如何判断两个slice是否相等?
- JS入门基础知识(js基础知识总结笔记)
- 趣谈JS二进制:File、Blob、FileReader、ArrayBuffer、Base64
- 告别 substr() 和 substring()?更可靠的 JavaScript 字符串截取方法
- golang第九天,切片(slice)介绍(golang 切片作为参数)
- Go语言零到一:数组(go struct数组)
- 你说你熟悉Slice,这道slice题你能答对吗?
- Python 3.14七大新特性总结:从t-string模板到GIL并发优化
- Python 幕后:Python导入import的工作原理
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)