当前位置: 首页 > news >正文

【3GPP】【核心网】【4G】4G手机接入过程,手机附着过程(超详细)

1. 4G手机接入过程,手机附着过程

附着(Attach):

终端在PLMN中注册,从而建立自己的档案,即终端上下文

进行附着的三种情况:

①终端开机后的附着,初始附着

②终端从覆盖盲区返回到覆盖区

③终端之前没有SIM卡,后来插入SIM卡需要进行附着

附着完成的三个任务:

①终端在PLMN中注册,并驻留到小区

②在MME中建立终端上下文

③为终端建立默认承载

附着的过程:

初始附着流程:

请求附着:

附着请求为Attach Request,是一种NAS信令,由RRC Connection Setup Complete消息来承载(是RRC建立连接的最后一条消息)

获得终端ID:

信令流程:

鉴权:

获得终端相关的鉴权四元组后,MME启动终端鉴权流程;

对于附着过程,鉴权是必须的

NAS:

鉴权成功后,进行NAS加密

接受附着:

MME在确认用户是合法用户后,为用户在eNB中创建相应的终端上下文,并开始建立默认承载

附着消息会在加密完成后,由基站转发给终端

建立默认承载:

Activate Default EPS Bearer Context Request消息,用于建立默认承载

完成附着:

MME收到Attach Complete消息后,表明附着流程结束,默认承载建立完成

1.1 初始附着完整流程

①终端开机接入小区的系统信息,决定开始PLMN注册,进行附着

②、③、④、⑤终端发起竞争性随机接入过程

⑥终端在SRB1上发出初始附着请求

⑦传递到MME

⑧、⑨MME获取终端ID的过程(可选过程)

⑩、⑪终端鉴权过程

⑫、⑬MME启动NAS加密过程

⑭MME接受附着并开始在eNB中建立终端上下文的过程

⑮、⑯eNB启动AS加密过程

⑰、⑱、⑲MME获得终端能力的过程(可选过程)

⑳eNB接受附着,建立SRB2并将默认承载信息发给终端

终端向eNB反馈SRB2和RB已经建立的信息

eNB向MME反馈终端的上下文已经建立的信息

终端向MME反馈附着的已经完成和默认承载已经建立的信息

Step1:处于RRC_IDLE的UE进行Attach过程,首先发起随机接入过程,即Msg1消息;

Step2:eNB检测到Msg1消息后,向UE发送随机接入响应消息,即Msg2消息;

Step3:UE收到随机接入响应后,根据Msg2的TA调整上行发送时机,向eNB发送RRC Connection Request消息;

Step4:eNB向UE发送RRC Connection Setup消息,包含建立SRB1承载信息和无线资源配置信息;

Step5:UE完成SRB1承载和无线资源配置,向eNB发送RRC Connection Setup Complete消息,包含NAS层Attach Request消息;

Step6:eNB选择MME,向MME发送Initial UE Message消息,包含NAS层Attach Request消息;

Step7:MME向eNB发送Initial Context Setup Request消息,请求建立默认承载,包含NAS层Attach Accept、Activate Default EPS Bearer Context Request消息;

Step8:eNB接收到Initial Context Setup Request消息,如果不包含UE能力信息,则eNB向UE发送UE Capability Enquiry消息,查询UE能力;

Step9:UE向eNB发送UE Capability Information,报告UE的能力信息;

Step10:eNB向MME发送UE Capability Information Indication消息,更新MME的UE能力信息;

Step11:eNB根据Initial Context Setup Request消息中UE支持的安全信息,向UE发送Security Mode Command消息,进行安全激活;

Step12:UE向eNB发送Security Mode Complete消息,表示安全激活完成;

Step13:eNB根据Initial Context Setup Request消息中的ERAB建立信息,向UE发送RRC Connection Reconfiguration消息进行UE资源重配,包括重配SRB1和无线资源配置,建立SRB2、DRB(包括默认承载)等;

Step14:UE向eNB发送RRC Connection Reconfiguration Complete消息,表示资源配置完成;

Step15:eNB向MME发送Initial Context Setup Response响应消息,表明UE上下文建立完成;

Step16:UE向eNB发送UL Information Transfer消息,包含NAS层Attach Complete、Activate Default EPS Bearer Context Accept消息;

Step17:eNB向MME发送上行直传UL NAS Transport消息,包含NAS层Attach Complete、Activate Default EPS Bearer Context Accept消息;

如果 RAN Paging Priority IE 包含在 DOWNLINK NAS TRANSPORT 中,则 NG-RAN node 可以使用它来确定对处于 RRC_INACTIVE 状态的 UE 进行寻呼的优先级。

NAS-PDU IE 中包含一个 AMF – UE 消息,该消息在 NG-RAN node 中直接传输,无需解析。

1.2 进一步理解Attach过程

Step1:在已经建立NAS信令连接基础上,UE通过向MME发送 ATTACH REQUEST 消息来发起attach规程;该消息中包含:IMSI或GUTI、last visited TAI、UE network capbility、PDN IP option、connect type等

Step2:如果UE最新连接的(新)MME与最后一次离开网络时连接的(旧)MME相比已经发生改变,新MME就会向旧MME发送一个ID请求来申请当前UE的IMSI,用于为当前UE重新分配GUTI。

Step3:如果新MME和旧MME都不能识别当前的UE,那么新MME会给UE发送一个ID请求,随后,UE应告诉新MME自己的IMSI。

Step4:如果当前网络中没有UE的安全上下文,那么MME会发起一个鉴权规程,UE和MME相互鉴权之后会在两侧产生相关的安全上下文。(漫游情况下,MME应从HSS获取UE的签约信息等内容)

Step5:鉴权结束后,MME可能发送移动设备标识检查请求到EIR(Equipment Identity Register)(MME的经营可能会检查EIR中的移动设备标识,至少在漫游时,MME应将移动设备标识传给HSS)。

Step6:如果MME中有激活的承载上下文(比如之前连接尝试失败时已经创建了承载),那么MME会发送消息到各个P-GW来删除这些无效的承载上下文。

Step7:由于位置已经变化(MME变化),新MME就发送一个位置更新请求到HSS(指明MME标识、IMSI和ME标识等)。

Step8:新MME向HSS发送位置更新请求后,旧的MME就可以删除其中保存的UE的位置信息以及相应的承载上下文。

Step9:HSS向新MME回送一个位置更新响应,来指明位置更新的状态。若HSS拒绝位置更新,那么MME就拒绝UE的attach请求。

Step10:位置更新完毕后,新MME就可以与PDN-GW之间建立默认承载,建立默认承载后P-GW就为UE创建了PDN地址、EPS承载标识、协议配置选项等,并将相关消息返回给MME,S-GW可以缓存一些来自P-GW的下行数据包。

Step11:MME接受attach及附着完成:MME通过eNB将APN、GUTI、PDN地址、TAI列表等信息反馈给UE,并请求UE建立无线承载;UE完成无线承载建立后向MME返回一个完成消息指明attach完成。

相关文章:

【3GPP】【核心网】【4G】4G手机接入过程,手机附着过程(超详细)

1. 4G手机接入过程,手机附着过程 附着(Attach): 终端在PLMN中注册,从而建立自己的档案,即终端上下文 进行附着的三种情况: ①终端开机后的附着,初始附着 ②终端从覆盖盲区返回到…...

【LeetCode-46.全排列】

题目详情: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: …...

【Web】浅聊Jackson序列化getter的利用——POJONode

目录 核心速览 原理分析 EXP TemplatesImpl利用 SignedObject利用 核心速览 writeValueAsString是jackson序列化自带的入口,在调用该方法的过程中将会通过遍历的方法将bean对象中的所有的属性的getter方法进行调用 下面介绍如下利用链: BadAttrib…...

osgEarth学习笔记2-第一个Osg QT程序

原文链接 上个帖子介绍了osgEarth开发环境的安装。本帖介绍我的第一个Osg QT程序。 下载 https://github.com/openscenegraph/osgQt 解压,建立build目录。 使用Cmake-GUI Configure 根据需要选择win32或者x64,这里我使用win32. 可以看到include和lib路…...

2024年发布jar到国外maven中央仓库最新教程

2024年发布jar到国外maven中央仓库最新教程 文章目录 1.国外sonatype仓库的版本1.1老OSSHR账号注册说明1.2新账号注册说明 2.新账号注册(必选)3.新账号登录创建Namespace3.1创建Namespace的名字的格式要求(必选)3.2发布一个静态网站(可选&…...

在ubuntu22.04.4安装freeswitch1.10.10

一、环境 No LSB modules are available. Distributor ID:      Ubuntu Description:         Ubuntu 22.04.4 LTS Release:             22.04.4 Codename:            jammy 二、依赖 1、 工具包 apt install -y openssh-server …...

qt 置顶窗口崩溃无法退出解决,停止运行快捷键设置

有时置顶窗口调试崩溃需要快捷键进行关闭,如下设置即可 这样就可以通过全局快捷键退出了,避免置顶崩溃无法关闭程序的问题。...

HBCalculator 程序:通过 VMD 可计算分子动力学模拟中氢键密度和强度的一维和二维分布

分享一个通过 VMD 可计算分子动力学模拟中氢键密度和强度的一维和二维分布程序 HBCalculator。 感谢论文的原作者! 主要内容 “氢键是分子系统中关键的非共价相互作用,对生物、化学和能量相关过程产生重大影响;因此,描述氢键信息…...

鸿蒙-项目创建及了解

目录 项目创建 1.App普通项目创建 2.元服务创建 项目结构 .hvigor .idea AppScope entry EntryAbility.ts pages resources module.json5 ohosTest hvigorfile.ts build-profile.json5 oh_modules build-profile.json5 hvigorfile.ts 项目运行 项目创建 F…...

SQLiteC/C++接口详细介绍sqlite3_stmt类(九)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(六) 下一篇: 无 33、sqlite3_column_table_name 函数 sqlite3_column_table_name 用于返回结果集中指定列所属的表的名称。如果查询中列使…...

idea2023 运行多 springboot 实例

概要 1、修改idea运行多实例(本地测试负载) 你可能用到其他 1、改造项目缓存token 至redis 支持负载均衡部署 SpringSecurity6.0RedisJWTMP基于token认证功能开发(源码级剖析可用于实际生产项目)_springsecurity redis管理token…...

HarmonyOS系统开发ArkTS常用组件编程技巧

目录 样式复用 Styles方法 Extend方法 组件编程在使用过程中有很多技巧,在这里分享样式复用技巧和UI结构复用技巧。 样式复用 我们观察下面的代码,在代码中很多重复行的代码,如: Image 的 .width(30).height(30) 是重复的But…...

大数据开发(Hive面试真题-卷三)

大数据开发(Hive面试真题) 1、Hive的文件存储格式都有哪些?2、Hive的count的用法?3、Hive得union和unionall的区别?4、Hive的join操作原理,left join、right join、inner join、outer join的异同&#xff1…...

Oracle数据库SQL开发规范

Oracle数据库SQL开发规范是为了保证SQL代码的质量、可读性和性能而遵循的一系列准则和最佳实践。以下是一些常见的Oracle SQL开发规范要点: 1. 命名规范 使用有意义且一致的命名约定,例如表名采用TBL_MODULE_NAME,视图采用VW_MODULE_VIEW等…...

FreeRTOS 消息队列

1. 队列简介 1.1 队列的概念 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递) 类似全局变量?假设有一个全局变量a 0,现有两个任务都在写这个变量 a: 大家想象一下如果任务 1 运行一次&#…...

如何在Python中实现列表推导式?并给出一个例子

如何在Python中实现列表推导式?并给出一个例子 Python的列表推导式(List Comprehension)是一种强大且简洁的创建列表的方法。它允许我们在一行代码中完成循环和条件判断,从而生成所需的列表。列表推导式不仅提高了代码的可读性&a…...

Flask中的Blueprints:模块化和组织大型Web应用【第142篇—Web应用】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Flask中的Blueprints:模块化和组织大型Web应用 在构建大型Web应用时&#xff0…...

如何通过idea搭建一个SpringBoot的Web项目(最基础版)

通过idea搭建一个SpringBoot的Web项目 文章目录 通过idea搭建一个SpringBoot的Web项目一、打开idea,找到 create new project二、创建方式三、配置项目依赖四、新建项目模块五、总结 一、打开idea,找到 create new project 方式1 方式2 二、创建方式 新…...

Python和FastAPI语义分析和文本图像

要点 使用FastAPI开发RESTful API,创建端点,自定义响应,结构化多路由。Pydantic数据验证库数据建模,创建依赖项注入。开发数据库和对象关系映射,SQLAlchemy,Tortoise ORM,MongoDB。建立权限和安…...

centos系统ssh7.4升级9.6

编译安装 OpenSSL 下载 OpenSSL 源代码: wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz这个命令从 OpenSSL 的官方网站下载指定版本(1.1.1w)的源代码压缩包。 解压源代码: tar zxvf openssl-1.1.1w.tar.gz使用 tar…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

管理学院权限管理系统开发总结

文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...