当前位置: 首页 > 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…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

<6>-MySQL表的增删查改

目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表&#xf…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...