4G EPS 中建立 eNB 与 MME 之间的 S1 连接
目录
文章目录
前文列表
《4G EPS 中的小区搜索》
《4G EPS 中的 PLMN 选择》
《4G EPS 中的小区选择》
《4G EPS 中的随机接入》
《4G EPS 中建立 UE 与 eNB 之间的 RRC 连接》
S1 连接
NOTE:这里的 S1 连接我们特指 S1-C 上的连接。
eNB 和 MME 发送 S1AP 消息之前需建立 eNB 和 MME 之间的 S1 连接。S1 连接分为两个层面:
eNB 的 S1 连接(Non-UE-associated S1-connection):是 eNB 和 MME 的 S1AP 实体之间的连接。eNB 入网时会主动和 MME 建立 S1 连接(eNB 会配置并接入指定 MME S1-C 接口的 IP/Port),这个 S1 连接和 UE 无关,即使 eNB 空载也依然存在。
UE 的 S1 连接(UE-associated logical S1-connection):是和 UE 关联的逻辑连接。由于 eNB 和 MME 不止为一个 UE 服务,eNB 和 MME 通过为每个 UE 建立不同的 S1 连接(逻辑连接)来进行区分,并发送对应的 S1AP 消息,eNB 的 S1 连接是 UE 的 S1 连接的基础。
eNB 的 S1 连接
eNB 的 S1 连接建立是 eNB 入网的一部分。eNB 通过静态配置或查询 Local DNS 方式获得 MME 的 SCTP Endpoint 的 IP/Port,主动向 MME 请求建立 SCTP 偶联(SCTP Association):eNB 向 MME 发送 S1 SETUP REQUEST,MME 向 eNB 发送 S1 SETUP RESPONSE,双方交换配置(比如 eNB 的 eNB ID 和 TAI、MME 的 GUMMEI 和 RMC),eNB 的 S1 连接建立完成。
在 MME POOL 组网场景中,eNB 会与 POOL 中的各个 MME 分别建立 S1 连接。过程中,MME 会下发各自的 GUMMEI(MME 全局标识)和 RMC(Relative MME Capacity)到 eNB 保存,以确定后续如何选择 MME,继而路由 NAS 消息(NNSF,NAS Node Select Function)。

NOTE:eNB 的 S1 连接仅在 eNB 入网时涉及,所以后文中如无特殊说明,S1 连接均为 UE 的 S1 连接。
UE 的 S1 连接
当 UE 和 MME 之间有 NAS 消息交互时,eNB 和 MME 之间必须首先建立 UE 的 S1 连接。UE 的 S1 连接总是由 eNB 发起创建的:
- 当某个 UE 入网,eNB 从 RRC 消息的 NAS PDU 中接收到第一条上行 NAS 消息后(e.g. UE ATTACH REQUEST),立即为 UE 分配 eNB UE S1AP ID,并包含在 eNB 发送到 MME 的 S1AP 消息 INITIAL UE MESSAGE 中。
- 随后 MME 应为 UE 分配 MME UE S1AP ID,并包含在 MME 发送到 eNB 的 S1AP 消息 DOWNLINK NAS TRANSPORT(携带 ESM INFORMATION REQUEST 或 AUTHENTICATE REQUEST 等 NAS 消息)中。
eNB UE S1AP ID 和 MME UE S1AP ID 组成了一对 UE S1AP ID Pair,这些信息会包含在 UE Context 内并保存在 eNB 和 MME 中,用于识别 S1AP 消息关联的 UE。如果 eNB 或 MME 发现 S1AP 消息包含的 UE S1AP ID Pair 和 UE Context 中保存的不同,就会发送 ERROR INDICATION,原因可能为 “ID 无法识别”、“ID 已分配过” 或 “ID 对前后不一致”。
注:以下结果在 UE 入网过程中抓 s1ap 协议可得。

示图中 INITIAL UE MESSAGE 包含 eNB UE S1AP ID: 1546538,随后 DOWNLINK NAS TRANSPORT 包含 MME UE S1AP ID: 160563068,同时还包含之前的 eNB UE S1AP ID: 1546538,这样 eNB 就知道下行 S1AP 消息(携带 NAS 消息)对应的 UE 了;最后 UPLINK NAS TRANSPORT 同时了包含 eNB UE S1AP ID 和 MME UE S1AP ID,这样 MME 就知道上行 S1AP 消息(携带 NAS 消息)对应的 UE 了。
4G EPS 中建立 eNB 与 MME 之间的 S1 连接的更多相关文章
- MYSQL 中 MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不 ...
- Keil环境中建立带FreeRTOS的STM32L项目
本文是网上转载,版权所有. Keil环境中建立带FreeRTOS的STM32L项目 1.先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图: 其中heap_2.c按 ...
- Servlet中的GET和POST之间的区别
自己的感悟: get和post这是http协议的两种方法,另外还有head, delete等 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串.post的 ...
- 1.2 如何在visual studio 中建立C#程序
这一节简单介绍一下怎么在visual studio 2015中建立第一个C#程序,我使用的是2015版的visual studio,不同版本可能有一些差异,不过大体上是相同的,这些信息仅供新手参考,大 ...
- <Java中的继承和组合之间的联系和区别>
//Java中的继承和组合之间的联系和区别 //本例是继承 class Animal { private void beat() { System.out.println("心胀跳动...& ...
- jQuery中的bind() live() delegate()之间区别分析
jQuery中的bind() live() delegate()之间区别分析 首先,你得要了解我们的事件冒泡(事件传播)的概念,我先看一张图 1.bind方式 $('a').bind('click', ...
- Android 中建立一个OpenGL ES的开发环境
转自: http://wiki.eoe.cn/page/Building_an_OpenGL_ES_Environment.html 负责人:zhangql原文链接:http://docs.eoean ...
- Android中Bitmap, Drawable, Byte,ID之间的转化
Android中Bitmap, Drawable, Byte,ID之间的转化 1. Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArray ...
- Oracle中建立物化视图报错
Oracle中建立物化视图报错 今天在建立视图的时候,报了一个错:ORA-01723: zero-length columns are not allowed. 建视图的语句: create mate ...
- SQL Server中建立外键的方法
在SQL中建立外键约束,可以级联查询表中的数据,在C#代码生成器中,也能根据外键关系生成相应的外键表数据模型.外键也可防止删除有外键关系的记录,一定程度上保护了数据的安全性. 步骤: 1.要建立外键关 ...
随机推荐
- 本周二晚19:00战码先锋第5期直播丨深入理解OpenHarmony系统启动,轻松踏上设备软件开发之旅
OpenAtom OpenHarmony(以下简称"OpenHarmony")工作委员会首度发起「OpenHarmony开源贡献者计划」,旨在鼓励开发者参与OpenHarmony开 ...
- 全面的开发者文档和用户目标解析:API 文档指南和开发者旅程
开发者文档 开发者文档,也称为 API 文档,是一种专门针对软件开发人员的技术写作形式.这种类型的文档通常包括 API 的技术规范.代码注释.软件设计和架构以及软件开发中涉及的其他详细技术描述.开发者 ...
- Seaborn分布数据可视化---散点分布图
散点分布图 综合表示散点图和直方分布图. Jointplot() 绘制二变量或单变量的图形,底层是JointGrid(). sns.jointplot( x, y, data=None, kind=' ...
- C# 窗口停靠隐藏类
引用:https://www.cnblogs.com/lidj/archive/2012/07/06/2579923.html 最近修改了一下.可以更方便的用在各个窗体上了 代码也简洁很多.直接引用一 ...
- 深度剖析:Dubbo使用Nacos注册中心的坑
2020年笔者在做微服务部件升级时,Dubbo的注册中心从Zookeeper切换到Nacos碰到个问题,最近刷Github又有网友提到类似的问题,就在这篇文章里做个梳理和总结. 1.问题描述 前几年我 ...
- django项目部署到centos
服务器是使用的阿里云的centos 7.6 项目使用的是 Python3.9.5 + Django 3.2.4 目标:将django项目部署到centos上,centos + Python + dja ...
- js小demo-迫使页面总是单独显示,不能被嵌入到iframe中
有时候我们的网页会被别人内嵌别人的网页 iframe 中,我们只需要在页面中增加以下js就可以让我们的页面内容单独显示出来,不被嵌入到 iframe中 核心JS代码 <script> if ...
- jsPDF 添加 中文字体 分页打印 移除空白页
jsPDF2.5版本 默认不支持utf-8的字体 具体看官方的说明,默认是不支持中文的.要使用中文需要自己添加字体. 1 将字体转换为base64编码 然后引入.也可以直接引入二进制文件,但没试过这个 ...
- @EnableDiscoveryClient 注解如何实现服务注册与发现
@EnableDiscoveryClient 是如何实现服务注册的?我们首先需要了解 Spring-Cloud-Commons 这个模块,Spring-Cloud-Commons 是 Spring-C ...
- 使用树莓派远程控制灯继电器开关,dht11温湿度网页显示,树莓派物联网
前段时间使用esp8266搞了个智能家居,通过网页控制,但是没有办法实现远程控制,只能局域网控制,因为我没有平台,使用机制云等平台还需要开发app 使用chatgpt生成的main.py程序 from ...