【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的异同࿱…...
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应用时࿰…...
如何通过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…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...
