【5G NAS】NR 终端侧PDU建立过程以及数据包的过滤和映射

news2024/11/23 21:30:30

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

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


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

文章目录

  • NR 终端侧PDU建立过程以及数据包的过滤和映射
  • 一、终端发送PDU SESSION ESTABLISHMENT REQUEST消息
    • 1.1 关键参数准备
    • 1.2 构建UL NAS TRANSPORT消息并发送
  • 二、网络接受终端的PDU SESSION ESTABLISHMENT REQUEST
    • 2.1 PDU SESSION ESTABLISHMENT ACCEPT中的关键参数
  • 三、终端可以建立的最大PDU session数量
  • 四、APP数据的转发



NR 终端侧PDU建立过程以及数据包的过滤和映射

在这里插入图片描述
在这里插入图片描述

一、终端发送PDU SESSION ESTABLISHMENT REQUEST消息

我们知道5G中终端的SM消息需要封装到MM消息中发送,也就是所谓的piggyback。所以终端需要首先构建SM的消息,然后构建用于piggyback的MM消息。

1.1 关键参数准备

       终端为了建立PDU session,需要发送 PDU SESSION ESTABLISHMENT REQUEST 消息,这需要终端:

  • 分配一个当前未被使用的PDU session ID
  • 分配一个当前未被使用的PTI,用于标识当前的PDU会话建立流程;
  • DN-specific identity,当终端接入外部网络时,用于验证和鉴权;
  • SSC mode,可选的值包括“SSC mode 1”、“SSC mode 2”、“SSC mode 3”;
    • 如果PDU session type为“IPv4”、“IPv6”、“IPv4v6”,那么可选的SSC mode可以是“SSC mode 1”、“SSC mode 2”、“SSC mode 3”;
    • 如果PDU session type为“Ethernet”、“Unstructured”,那么可选的SSC mode可以是“SSC mode 1”、“SSC mode 2”;
    • 如果是将一个已经建立的PDU从EPC切换到5GC,则可选的SSC mode可以是“SSC mode 1”;
  • PDU session type,可选的值包括“IPv4”、“IPv6”、“IPv4v6”、“Ethernet”、“Unstructured”;
  • RQoS参数,表示终端是否支持反向QoS映射;
  • 最大packet filters,告诉核心网此PDU session所支持的最大包过滤器数量;
    • 如果PDU session是新建立的,且PDU session type是“IPv4”、“IPv6”、“IPv4v6”、“Ethernet”,那么最多支持16个packet filter;
    • 如果是EPC中一个已经建立的PDU session且类型为“IPv4”、“IPv6”、“IPv4v6”、“Non-IP”,向5GC转换,则最多支持16个packet filter;
  • 最大完整性保护数据速率
  • MH6-PDU,向核心网指示是否支持多归属IPv6功能;
  • always-on pdu,向核心网指示此PDU是否是“永久在线PDU”;

1.2 构建UL NAS TRANSPORT消息并发送

       1.1中描述了PDU SESSION ESTABLISHMENT REQUEST消息中的参数。然后终端将使用UL NAS TRANSPORT消息发送,UL NAS TRANSPORT中的参数如下:

  • PDU SESSION ESTABLISHMENT REQUEST消息;
  • 对应创建、切换或转换的PDU session ID;
  • 设置请求类型,可选的包括“初始请求”、“存在的PDU session”、“初始紧急请求”、“存在的紧急PDU session”;
  • 选择S-NSSAI,如果PDU session的请求类型为:
    • 初始请求,并且终端决定根据USRP(其中包含了一个或多个S-NSSAI)或者本地策略来建立一个新的PDU session;
      • 如果是非漫游场景,则S-NSSAI参数可以从匹配的USRP、默认的USRP或者终端本地配置的S-NSSAI中选择,但其必须属于allowed S-NSSAI;
      • 如果是漫游场景:
        1. 则S-NSSAI参数可以从匹配的USRP、默认的USRP或者终端本地配置的S-NSSAI中选择,但其必须属于mapped S-NSSAI
        2. 与1中选择的S-NSSAI相关联的且属于allowed S-NSSAI的S-NSSAI;
    • 存在的PDU session,则S-NSSAI参数是与这个已经存在的PDU session相关联的S-NSSAI。如果是漫游场景,则其也必须是一个mapped S-NSSAI;
  • 设置DNN,如果初始请求的类型是“初始请求”或者“存在的PDU session”,则使用指定的DNN而不使用默认DNN;
  • 当终端收到一条PDU SESSION MODIFICATION COMMAND消息且cause值为“#39 reactivation requested”时,会包含当前已经建立的PDU session的old PDU session ID;

UL NAS TRANSPORT发送之后,会启动T3580定时器。

如果终端中没有任何匹配的URSP规则,而且终端本地配置信息、默认URSP中也没有任何S-NSSAI,则终端在PDU session建立消息中将不会提供S-NSSAI。


二、网络接受终端的PDU SESSION ESTABLISHMENT REQUEST

       当SMF收到PDU SESSION ESTABLISHMENT REQUEST消息,会检查是否可以建立与终端请求的DN之间的连接,这中间可能会包含一些鉴权过程。当SMF确认可以与DN建立连接,则会向终端回复PDU SESSION ESTABLISHMENT ACCEPT

2.1 PDU SESSION ESTABLISHMENT ACCEPT中的关键参数

  • authorized QoS flow descriptions IE,这个字段不是必选的,如果满足下面条件中的一个,则需要构建:

    • authorized QoS rules IE中至少包含一个GBR QoS flow;
    • 分配的QFI与其QoS flow的5QI中的QFI不一致;
    • 此QoS flow可以被映射到EPS bearer;
  • 如果此PDU session支持与EPS的交互,则还会构建Mapped EPS bearer contexts IE,并记录每个QoS flow与mapped EPS bearer context之间的映射关系;

  • SSC mode IE,如果:

    • PDU SESSION ESTABLISHMENT REQUEST中没有包含SSC mode,则会根据DN的签约信息、对应SMF的配置信息来选择一个默认的SSC mode;
    • PDU SESSION ESTABLISHMENT REQUEST中包含了SSC mode,则会根据PDU session type、用户签约信息、以及SMF配置信息从上报的SSC mode中选择一个;

    译文:如果该PDU会话为紧急PDU会话,SMF需要将PDU session ESTABLISHMENT ACCEPT消息中的Selected SSC mode IE设置为“SSC mode 1”。如果PDU会话为“Ethernet”或“Unstructured”PDU会话类型的非紧急PDU会话,SMF应将“Selected SSC mode IE”设置为“SSC mode 1”或“SSC mode 2”。如果PDU会话为“IPv4”、“IPv6”或“IPv4v6”PDU会话类型的非紧急PDU会话,SMF将选中的SSC模式IE设置为“SSC mode 1”、“SSC mode 2”或“SSC mode 3”。

  • S-NSSAI IE,选择PDU SESSION ESTABLISHMENT REQUEST中上报的S-NSSAI或者mapped S-NSSAI(漫游场景下);

  • PDU session type IE,如果PDU SESSION ESTABLISHMENT REQUEST消息中包含了一个设置为:

    • “IPv4v6”的PDU session type IE, SMF将选择“IPv4”、“IPv6”或“IPv4v6”作为该PDU会话所选择的PDU session type IE。如果签约信息、SMF配置或两者都被限制为仅支持IPv4或仅支持IPv6的请求DNN,则SMF应在PDU SESSION ESTABLISHMENT ACCEPT消息的5GSM causeIE中分别包含5GSM原因值 #50“PDU session type IPv4 only allowed”或#51“PDU session type IPv6 only allowed”;
    • 如果选择的PDU会话类型为“IPv4”,SMF将在PDU SESSION ESTABLISHMENT ACCEPT消息中包含PDU address IE,并将PDU address IE设置为在PDU会话中分配给UE的IPv4地址;
    • 如果选择的PDU会话类型为“IPv6”,SMF将在PDU SESSION ESTABLISHMENT ACCEPT消息中包含PDU address IE,并将PDU address IE设置为在PDU会话中分配给UE的IPv6链路本地地址的接口标识(低64bit);
    • 如果选择的PDU会话类型为“IPv4v6”,SMF将在PDU SESSION ESTABLISHMENT ACCEPT消息中包含PDU address IE,并将PDU address IE设置为IPv4地址和IPv6链路本地地址的接口标识,在PDU会话中分配给UE;
  • 对于非紧急的PDU session,还会包含一个DNN IE;

  • Session-AMBR;

  • 如果终端上报支持RQoS,则SMF认为这个PDU中的所有QoS flow都能够支持RQoS,并可能配置一个RQ timer IE。如果SMF将RQ timer设置为“deactivated”或者0,则表示并不启动RQoS功能;

  • Always-on PDU session requested IE

注意,如果终端没有配置支持的最大packet filters,则网络默认为16个。如果配置了“最大完整性保护数据速率”,则在PDU session的整个生命周期中是不允许再修改的。

当终端收到PDU SESSION ESTABLISHMENT ACCEPT消息后,终端会停止T3580定时器,并释放PTI,此时终端认为PDU session已经建立成功。终端会存储“authorized QoS rules”,以及PDU SESSION ESTABLISHMENT ACCEPT消息中接收到的“Session-AMBR”和“authorized QoS flow descriptions”。

终端也会对配置的“authorized QoS rules”、“authorized QoS flow descriptions”进行语义和句法错误检查,详细过程可以参考TS24501-6.4.1.3

如果终端请求的PDU session type是“IPv4v6”,但是:

  • 网络配置的PDU session type为“IPv4”,且没有包含5GSM错误消息 #50 “PDU session type IPv4 only allowed”;
  • 网络配置的PDU session type为“IPv6”,且没有包含5GSM错误消息 #51 “PDU session type IPv6 only allowed”;

这种情况下,UE随后可以使用PDU SESSION ESTABLISHMENT REQUEST消息请求其它IP版本的另一个PDU session到相同的DNN和相同的S-NSSAI。

如果终端请求的PDU session type是“IPv4v6”,但是:

  • 网络配置的PDU session type为“IPv4”,且包含5GSM错误消息 #50 “PDU session type IPv4 only allowed”;
  • 网络配置的PDU session type为“IPv6”,且包含5GSM错误消息 #51 “PDU session type IPv6 only allowed”;

这种情况下,UE将不会再使用PDU SESSION ESTABLISHMENT REQUEST消息请求其它IP版本的另一个PDU session到相同的DNN和相同的S-NSSAI,除非:
  • 终端注册到了一个新的PLMN,且不在等效PLMN list中;
  • 用于访问这个DNN和S-NSSAI的PDU type发生了改变;
  • 终端关机;
  • USIM卡移除;

三、终端可以建立的最大PDU session数量

       一个终端可以在一个PLMN中建立的最大PDU会话数受以下最小值的限制:

  • 协议允许的最大PDU session ID(3GPP TS 24.007-11.2.3.1b中规定);
  • 对应PLMN的最大PDU session数;
  • UE实现特定的最大PDU session数;

四、APP数据的转发

       当PDU session建立成功之后,终端的APP可以发送数据了,那么数据是如何从APP映射到对应的QoS Flow上的呢?当然是通过对应的QoS rules,检测DL/UL的数据包,根据匹配到的QoS rule查找数据要映射到哪个QoS Folw上,也就是哪个QFI上。
       协议没有规定在哪里执行APP数据包的过滤过程,我认为可以在AP侧实现,例如,通过AT Command查询网络配置给终端的QoS rules,然后实施过滤,最后将匹配的QFI和数据包一起发送给SDAP,如果没有匹配到任何QoS rules,则根据协议规定终端应该丢弃数据包。

       关于QoS rules和数据包过滤的内容,我会单独再写一篇博文介绍,敬请期待。

+CGTFTRDP:Used to show the network assigned QoS rules for a 5GS QoS flow


网络拒绝终端的PDU session建立请求过程,我们先不在本篇博文中介绍。大家感兴趣可以参考TS24501-6.4.1.4。



在这里插入图片描述

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

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

相关文章

对数据去趋势

对数据去趋势 测量的信号可能显示数据中非固有的整体模式。这些趋势有时会妨碍数据分析,因此必须进行去趋势。 以具有不同趋势的两种心电图 (ECG) 信号为例。ECG 信号对电源干扰等扰动很敏感。加载信号并绘制它们。 load(ecgSignals.mat) t (1:length(ecgl));su…

LaTeX+Overleaf 论文速通教程

一、文本/排版二、章节和段落三、数学公式四、插入图片五、插入表格六、参考文献与交叉引用不使用BibTeX使用BibTeX(推荐)七、交叉引用label和refOverleaf开发界面 latex命令:\命令[可选参数]{必选参数} Latex项目组成: .tex:正文 .bib&…

如何对数据库进行优化

数据库是什么? 简单来说数据库就是将数据按照一定顺序存储到磁盘上的一个软件,我们平时写的sql语句,就是用数据库软件能识别的语言,对数据进行增删改查。其实数据本质上是不存在表里,而是存在磁盘上,所谓的…

掌握亚马逊,沃尔玛,东南亚平台的测评要点,测评事半功倍

测评其实最重要的两个点就是自己的资源和成号率 资源包括;商家资源,中介资源,礼品卡资源,还有买卖账号的渠道,ip资源 成号率这个直接影响的就是你个人投入成本的多,成号率越高,你的成本越低,但…

【Java版oj】day36Rational Arithmetic、Pre-Post

目录 一、Rational Arithmetic (1)原题再现 (2)问题分析 (3)完整代码 二、Pre-Post (1)原题再现 (2)问题分析 (3)完整代码 一、…

十七、小程序报错 真机调试预览失效 Error: Illegal Buffer

报错 电脑端微信开发者工具运行成功而真机调试预览失效 报错 MiniProgramError Illegal Buffer 报错 {errno: 600001, errMsg: “request:fail -200:net::ERR_CERT_COMMON_NAME_INVALID”} 前言:手头有个去年的微信小程序项目 年底甲方不在使用 所以停掉了服务器、…

互联网医院系统构建:探索开源云平台与互联网医院平台源码的融合

互联网医院系统作为一种新型医疗服务模式,将传统的医院门诊转化为在线咨询、远程会诊等形式,帮助患者更加方便地获得专业医疗服务。 在实现互联网医院系统的建设过程中,选择合适的云平台和医院平台源码是至关重要的。 首先,开源…

LVM逻辑卷管理

目录一、LVM简介1、逻辑卷管理磁盘的优点2、缺陷3、LVM概述图二、LVM的使用1、创建逻辑卷2、使用逻辑卷3、删除逻辑卷4、LVM扩容5、LVM缩容三、Snapshot(快照功能)1、LVM-snapshot简介2、利用snapshot做备份(LV快照)四、LVM数据迁…

整型在内存中的存储

在计算机底层,所有数据最终都会被表示为二进制形式。整型也不例外。本文将介绍在C语言中如何定义和操作整型变量,并解释整型在内存中的存储方式。 整型变量的定义和使用 在C语言中,可以用int关键字来定义一个整数型变量。例如: …

ChatGPT们接踵而至,AI会彻底改变我们的工作方式吗?

2023年开年,AI成为了舞台上聚光灯下的主角,AI 浪潮不仅让我们对人工智能的能力有了一次全新的理解,而且所有人的工作和生活都将受到不同程度的影响。 ChatGPT、Notion AI、New Bing、GPT-4、MidJourney v5、office copilot、Adobe Firefly、…

解决方案:炼丹师养成计划 Pytorch如何进行断点续训——DFGAN断点续训实操

我们在训练模型的时候经常会出现各种问题导致训练中断,比方说断电、系统中断、内存溢出、断连、硬件故障、地震火灾等之类的导致电脑系统关闭,从而将模型训练中断。 所以在实际运行当中,我们经常需要每100轮epoch或者每50轮epoch要保存训练好…

Python实现哈里斯鹰优化算法(HHO)优化卷积神经网络分类模型(CNN分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全…

DAY 43 Apache的配置与应用

虚拟Web主机 概述 虚拟web主机指的是在同一台服务器中运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为"虚拟"web主机。通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本…

TensorFlow 决策森林详细介绍和使用说明

使用TensorFlow训练、调优、评估、解释和部署基于树的模型的完整教程 两年前TensorFlow (TF)团队开源了一个库来训练基于树的模型,称为TensorFlow决策森林(TFDF)。经过了2年的测试,他们在上个月终于宣布这个包已经准备好发布了,也就是说我们…

在android项目上集成libyuv库以及使用linyuv库完成camera的缩放,旋转,翻转,裁剪操作

目录 一、下拉google官方的libyuv库代码 二、在android项目中集成libyuv库 1.环境配置 2.拷贝libyuv源码文件 ​编辑3.配置cmake libyuv相关的链接编译等 三、使用libyuv库 1.libyuv库完成camera的旋转 2.libyuv库实现翻转 3.libyuv库实现缩放 4.libyuv库实现裁剪 一…

为什么重视安全的公司都在用SSL安全证书?

我们今天来讲一讲为什么重视安全的公司都在用SSL证书 SSL证书是什么? SSL安全证书是由权威认证机构颁发的,是CA机构将公钥和相关信息写入一个文件,CA机构用他们的私钥对我们的公钥和相关信息进行签名后,将签名信息也写入这个文件…

对于数据库而言,其锁范围可以分为全局锁 、表级锁、 行级锁

一、全局锁 全局锁就是对整个数据库实例加锁。 MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新…

DOM(1)

DOM(文档对象模型):处理可扩展标记语言(HTML或XML)的标准编程接口,可以改变网页的内容、结构和样式。DOM树: …

ubuntu18 网络问题

在/etc/netplan/*.yaml配置文件中: renderer的值可以是networkd,或者是NetworkManager 它俩的其中一个区别为: networkd在图像界面,networking setting中不显示网卡配置。 版权简介: 从Ubuntu 18.04.2版本开始&…

腾讯云4核8G轻量服务器12M支持多少访客同时在线?并发数怎么算?

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线?通用型-4核8G-180G-2000G,2000GB月流量,系统盘为180GB SSD盘,12M公网带宽,下载速度峰值为1536KB/s,即1.5M/秒,假设网站内页平均大小为60KB…