4G EPS 中的 Control Plane
目录
文章目录
前文列表
《4G EPS 第四代移动通信系统》
《4G EPS 的架构模型》
《4G EPS 的网络协议栈》
《4G EPS 的接口类型》
《4G EPS 中的 Bearer》
《4G EPS 中的 User Plane》
控制平面
在前文中我们提到,用户平面是传输业务数据(e.g. DNS Request、HTTP Request)的平面,简称 UP;而传送信令数据(e.g. E-RAB Setup Request、Create Bearer Request)的平面称为控制平面(Control Plane),简称 CP。
需要注意的是,对于某个特定用户而言,两者的本质都是一种逻辑数据通道。区别在于:在 UP 上,UE 关注的是端到端的 PDN Connection,以完成 UE 与 PDN 之间的数据传输,UE 也可以拥有多个不同的 PDN Connection。显然,UP 通道的创建(Add、Create、Activate 、Initialize、Establish)、修改(Modify、Update)和释放(Delete、Release、Deactivate)都依赖于 CP 的支撑,通过一系列信令流程(Signalling Procedure)来完成,例如 SGW、PGW 等 UP 通道路径节点的选择;而在 CP 上,UE 关注的是 “连接” 和 “移动”,即:ESM 和 EMM。CP 通道的创建是通过类似 “握手” 的过程来完成的,即网元之间的点到点连接。
以 MME 为中心,CP 可分为三个部分:
无线接入网络部分
- UE <=> (Uu) <=> eNB <=> (S1-C) <=> MME
核心网络部分
- MME <=> (S11-C) <=> SGW <=> (S5-C) <=> PGW
- PGW <=> (Gx) <=> PCRF
- MME <=> DNS
归属环境部分
- MME <=> (S6a) <=> HSS
归属环境部分
归属环境部分:MME => (S6a) => HSS
从归属环境部分的路径节点不难看出,其主要讨论的是 UE 的身份认证和签约数据的问题。MME 和 HSS 之间的接口称为 S6a 接口,顶层协议为 Diameter,关于 Diameter 介绍请浏览《EPS 中的 Diameter》。
无线接入网络部分
无线接入网络部分:UE <=> (Uu) <=> eNB <=> (S1-C) <=> MME
从上述路径节点可以看出,CP 的无线接入网络部分处理的是 UE 和 MME 之间的端到端通信事务,即 NAS(Non-Access Stratum,非接入层)层。MME 通过 NAS 消息来接收和响应 UE 的请求。例如:UE ATTACH REQUEST(UE 附着请求)、UE SERVICE REQUEST(UE 业务请求)和 PDN CONNECTIVITY REQUEST(PDN Connection 创建请求)都是 NAS 消息。如下图所示。
NOTE:UE 请求创建第一个 PDN Connection 时,PDN CONNECTIVITY REQUEST 被包含在 ATTACH REQUEST 中一同发送至 MME。但实际上 MME 并不关注 PDN CONNECTIVITY REQUEST 是单独发送的还是包含在 ATTACH REQUEST 中一同发送,都以相同方式来创建 PDN Connection,区别在于建立第一个 PDN Connection 的时候 MME 已经为 UE 选定了某个 SGW 作为本地移动锚点。那么,同一个 UE 后续新建的 PDN Connection 都会使用同一个 SGW。在前文中也提到过:UE 如果具有多个不同 APN 的 PDN Connection 时,PGW 可能不同,但 SGW 必定相同。而当 SGW 切换时,所有 PGW 都会连接到新的 SGW 上。
- E-UTRAN 空中接口协议栈中的控制平面协议部分
从上图可知,UE 与 MME 不直接相连,NAS 消息经过 eNB 的转发,而且 eNB 没有 NAS 协议实体,所以 eNB 不会对 NAS 消息进行处理,NAS 消息在 UE 和 eNB 之间通过 RRC(Radio Resource Control,无线资源控制层)消息携带,这种 “搭车” 的消息发送方式称为 Piggyback。
与 NAS 相对的,RRC 层及以下称为 AS(Access Stratum,接入层)层,处理的是空口接入事务。UE 与 eNB 连接 RRC 连接并发送 RRC 消息前需先经过小区搜索(Cell Search)、PLMN 选择、小区选择(Cell Selection)、随机接入(Radom Access)、RRC 连接建立(RRC Connection Setup)等过程:
- 小区搜索:UE 开机后的第一件事情就是完成小区搜索,即完成与 eNB 的牵手。详见《4G EPS 中的小区搜索》。
- PLMN 选择:完成小区搜索、读取到了 SIB1 之后,就可以进行 PLMN 选择了,UE 选择一个 PLMN 进行驻留。详见《4G EPS 中的 PLMN 选择》。
- 小区选择:同样,在完成小区搜索、读取到了 SIB1 之后,就可以进行小区选择了。UE 从 SIB1 中得到参数,然后根据算法计算最佳小区,并且驻留。详见《4G EPS 中的小区选择》。
- 随机接入:当 UE 选择了驻留小区之后,必然要接入到蜂窝网络,完成用户信息的初步注册。由于 UE 的随机性、无线环境的复杂性决定了这种接入的发起以及采用的资源也具有随机性,故称之为随机接入。在完成随机接入之后 UE 才能进行上行传输。详见《4G EPS 中的随机接入》。
- 建立 UE 与 eNB 之间的 RRC 连接:RRC 连接作为上层 NAS 消息的载体。详见《4G EPS 中建立 UE 与 eNB 之间的 RRC 连接》。
- 建立 eNB 与 MME 之间的 S1 连接:S1 连接是 eNB 和 MME 之间发送 S1AP 消息的前提,S1AP 消息作为在 eNB 和 MME 之间传输 NAS 消息的载体。详见《4G EPS 中建立 eNB 与 MME 之间的 S1 连接》。
- 在完成了以上的准备之后,就可以建立 UE 和 MME 之间的 NAS(非接入服务)信令连接了,作为 UE 和 MME 之间的信令传输层。详见《4G EPS 中建立 UE 和 MME 之间的 NAS(非接入服务)信令连接》。
核心网络
核心网络:
- MME <=> (S11-C) <=> SGW <=> (S5-C) <=> PGW
- PGW <=> (Gx) <=> PCRF
- MME <=> DNS
对于 CP 的核心网络部分我们主要关注 MME 和 PGW 之间的信令交互,以创建 PDN Connection 为例:在 CP 核心网络部分的逻辑设计中,PDN Connection 被定义为一个 SESSION。所以 PDN Connection 建立时,MME 向 PGW 发送的是 CREATE SESSION REQUEST,PGW 返回响应结果(e.g. PDN Type、PDN Address 和 QoS);PDN Connection 建立后,PGW 向 MME 发送的是 CREATE BEARER REQUEST,表示建立 EPS Bearer。
需要注意的是,MME 和 PGW 之间并不直连,两者的通信需要经过 SGW 的转发,MME 和 SGW 之间的控制面接口称为 S11-C,SGW 和 PGW 之间的控制面接口称为 S5-C。当组网存在多个 SGW 和 PGW 时,MME 会先查询 Local DNS,根据查询结果来选择到 SGW 和 PGW,并且 MME 应将选中 PGW 的 F-TEID(S5 PGW GTP-C F-TEID)告知 SGW,继而建立 SGW 和 PGW 之间的 GTPv2-C 隧道。MME 先向 SGW 发送 CREATE SESSION REQUEST,SGW 再向 PGW 发送 CREATE SESSION REQUEST。SGW 和 PGW 之间通过 IMSI + EBI(默认承载)组合来确定 UE 对应的 PDN Connection。
EPS CP 中的 GTP-C
CP 中的 GTP-C 和 UP 中的 GTP-U 非常相似,GTP(UDP/IP)Path、GTP Tunnel 和 TEID 等概念一致。为了在 S5 接口上进行区分,SGW 和 PGW 之间的在 GTP-C 和 GTP-U 通常会使用不同的 IP/Port,GTP-C 的监听端口为 UDP 2123,而 GTP-U 的监听端口为 UDP 2152。
与 UP 同理,在 CP 的 S11-C 和 S5-C 接口同样为不同的 UE 服务,MME、SGW、PGW 需要在与不同 UE 关联的 GTP-C Tunnel 上传送信令,并以 GTP-C TEID 进行识别。值得注意的是,针对同一个 UE,无论其具有多少个 PDN Connection 或 EPS Bearer,S11-C 和 S5-C 接口上都只有一个 GTP-C Tunnel,即 UE 和 GTP-C Tunnel 是一对一的关系,GTP-C Tunnel 只会在建立第一个 PDN Connection 的同时创建,一个 GTP-C Tunnel 上发送的消息可以管理多个不同的 PDN Connection。这一点与 UP 不同,UP 上的默认承载和专用承载都有各自的 GTP-U Tunnel(S1-U 和 S5-U 接口)。
NOTE:GTP-U 有两种报文
- 用于传送上层数据 T-PDU,以及由 GTP-U Header 和 T-PDU 构成 G-PDU;
- 用于 GTP Path 管理(e.g. ECHO REQUEST、ECHORESPONSE)或 GTP-U Tunnel 管理(e.g. ERROR INDICATION 和 ENDMARKER),即 Signalling Message(信令消息)。
而 GTP-C 因为不需要传送上层数据,所以只有 Signalling Message 一种报文,但种类要远多于 GTP-U。除了丰富的 Tunnel 管理消息之外,还有移动管理消息等等。
以 S11-C 接口为例,看看 GTP-C Tunnel 的建立过程:
- MME 先分配 S11 MME GTP-C TEID(0x39f5e33c),并向 SGW 发送 CREATE SESSION REQUEST,同时也会携带着 MME 侧的 F-TEID。因为此时 SGW 尚未分配 TEID,所以报文头部 TEID 字段为全零(0x00000000);
- SGW 分配 S11 SGW GTP-C TEID(0xa7009160),向 MME 发送 CREATE SESSION RESPONSE,并携带着 SGW 侧的 F-TEID,报文头部 TEID 为 S11 MME GTP-C TEID(0x39f5e33c);
- MME 再次向 SGW 发送 MODIFY BEARER REQUEST,此时 MME 已经知道 SGW 的 F-TEID,报文头部 TEID 为 S11 SGW GTP-C TEID(0xa7009160)。
NOTE:在 S11 接口建立 GTP-C Tunnel 之处,SGW 在接收 CREATE SESSION REQUEST 之前是没有 UE Context(内含 TEID)的,因而 TEID 是 0x00000000 也没关系,SGW 此时不会去匹配 UE Context。在 SGW 分配了自身的 TEID 并响应给 MME 后,SGW 才会根据 CREATE SESSION REQUEST(创建第二个以及上 PDN Connection)报文头部的 TEID 查找匹配的 UE Context。至于 MME,从 SGW 返回 CREATE SESSION RESPONSE 报文头部的 TEID 即可识别出对应的 UE。
UP 中的 GTP-U Tunnel 两端的 F-TEID 需要通过 CP 的信令流程来进行交换
例如:上图中 SGW 和 PGW 之间 GTP-U Tunnel 的 F-TEID 分别为蓝点和黄点,SGW 发送 G-PDU 的 F-TEID 为黄点,PGW 发送 G-PDU 的 F-TEID 为蓝点。在此之前,SGW 和 PGW 会通过 GTP-C 消息来交换 GTP-U 的 F-TEID,SGW 发送 GTP-C 消息的 F-TEID 为红点,携带 UP 的 F-TEID 为蓝点,PGW 发送 GTP-C 消息的 F-TEID 为绿点,携带 UP 的 F-TEID 为黄点。
再以 Dedicated Bearer 的建立为例:PGW 向 SGW 发送 CREATE BEARER REQUEST,消息头部的 F-TEID 为 S5 SGW GTP-C TEID,消息包含 S5 PGW GTP-U TEID;SGW 向 PGW 响应 CREATE BEARER RESPONSE,消息头部的 F-TEID 为 S5 PGW GTP-C TEID,消息包含 S5 SGW GTP-U TEID。简而言之,GTP-C 消息头部的 F-TEID 为 GTP-C 对端的 TEID,并且在消息中包含了本端的 GTP-U TEID。
PCRF 影响 PDN Connection 的创建
PGW 是否接受并执行 PDN Connection 创建请求,除了考虑 PGW 自身的配置外,还可能受控于 PCRF。PCRF 是用来控制 QoS 的网元,可以修改 EPS Bearer 的 QoS,还可以下发 PCC 策略触发 PGW 建立 Dedicated Bearer,因而 PCRF 也是实现 VoLTE 业务的必要网元(VoLTE 语音和视频分别通过 QCI=1 和 2 的 Dedicated Bearer 传送)。
概览 CP/UP 的全貌
黄色虚线 CP 部分,包括:
- Uu 接口的 RRC 连接
- S1-C 接口的 S1 连接
- S11-C 和 S5-C 接口的 GTP-C Tunnel
红色实线和蓝色实线为 UP 部分,包括:
- Uu 接口的 DRB
- S1-U 接口的 S1 Bearer(GTP-U Tunnel)
- S5-U 接口的 S5 Bearer(GTP-U Tunnel)
4G EPS 中的 Control Plane的更多相关文章
- 关于eclipse中DDMS中Emulator Control选项卡为灰色不可用
首先先感谢版主:http://blog.csdn.net/noname666/article/details/51670905#reply 方法一的出处:http://stackoverflow.co ...
- Sublime text 3 中Package Control 的安装与使用方法和解决Sublime Text 3不能正确显示中文的问题
Sublime text 3 中Package Control 的安装与使用方法,英文好可以在这个网址看看, 下面简单的说明一下 : https://packagecontrol.io/install ...
- kubeadm init 卡在 Created API client, waiting for the control plane to become ready
执行 kubeadm init 时出现卡在了 [apiclient] Created API client, waiting for the control plane to become ready ...
- 如何巧妙使用ZBrush中的Image Plane插件
ZBrush®插件Image Plane提供了一种简单的方法加载图像到ZBrush中,以在添加纹理过程中进行使用,比如使用ZProject笔刷多边形着色,以及利用参考图建模等. ZBrush 中文版下 ...
- WPF中CAD control的XAML实现
原文:WPF中CAD control的XAML实现 下面这个XAML文件是cad control里面最重要的一部分,使用Grid包含Viewport,Viewport中包括Camera和mod ...
- 3G 4G 5G中的网络安全问题——文献汇总
Modeling and Analysis of RRC-Based Signalling Storms in 3G Networks 还是使用状态机模型来做恶意UE识别 https://san.ee ...
- PHP中output control
Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie ...
- VC中Tab control的用法
1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置I ...
- sublime 2中Package control安装和使用
安装: 安装时,如果想查看安装进度,可打开console(View->Show Console) 安装Package control有两中方法: 方法1:通过代码安装 import urllib ...
- Sublime text 3 中Package Control 的安装与使用方法
Package Control插件本身是一个为了方便管理插件的插件,在Sublime text 3中,Package Control 的安装方法一开始出来的方法是要先安装Git, 再输入代码来安装,原 ...
随机推荐
- docker运行javaWeb服务,操作文件异常
一.问题由来 部署一个测试服务在自己的服务器上面,然后运行其中的一个功能.然后报错,报错信息如下 二.问题分析 自己一开始也很疑惑,怎么会出现这个问题呢,自己明明把对应的文件放在对应的目录下面,并且已 ...
- OpenHarmony 技术日直播回顾丨共建新技术,开拓新领域
4月25日,"共建新技术,开拓新领域"OpenAtom OpenHarmony(以下简称"OpenHarmony")技术日在深圳顺利召开.OpenHarmony ...
- Git 教程:解密 .gitignore 文件、合并分支、解决冲突、及 Git 帮助
Git 帮助 如果你忘记了命令或命令的选项,你可以使用 Git 帮助. 在命令行中,有几种不同的使用帮助命令的方式: git command -help - 查看特定命令的所有可用选项 git hel ...
- SQL JOIN 子句:合并多个表中相关行的完整指南
SQL JOIN JOIN子句用于基于它们之间的相关列合并来自两个或更多表的行. 让我们看一下"Orders"表的一部分选择: OrderID CustomerID OrderDa ...
- 一个库帮你快速实现EF Core数据仓储模式
前言 EF Core是我们.NET日常开发中比较常用的ORM框架,今天大姚要分享的内容是如何使用EF Core Generic Repository通用仓储库来快速实现EF Core数据仓储模式. E ...
- c# 托管和非托管资源-详解
前言 引用:带你复习c# 托管和非托管资源_C#教程_脚本之家 (jb51.net) c# 托管和非托管比较重要,因为这涉及到资源的释放. 现在只要在计算机上运行的,无论玩出什么花来,整个什么概念,逃 ...
- 成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用
遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理.化学和生物系统的基石.ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力.重点 ...
- 初探Mysql架构和InnoDB存储引擎
前言 mysql相信大家都不陌生了,分享之前我们先思考几个面试题: 1.undo log和redo log了解过吗?它们的作⽤分别是什么? 2.redo log是如何保证事务不丢失的? 3.mysql ...
- 浅析Golang map的实现原理
Golang中的map底层使用的数据结构是hash table,基本原理就和基础的散列表一致,重点是Golang在设计中采用了分桶(Bucket),每个桶里面支持多个key-value元素的这种思路, ...
- 通过ORPO技术微调 llama3大模型(Fine-tune Llama 3 with ORPO)
1f45bd1e8577af66a05f5e3fadb0b29 通过ORPO对llama进行微调 前言 ORPO是一种新颖的微调技术,它将传统的监督微调和偏好对齐阶段整合到一个过程中.这减少了训练所需 ...