目录

前文列表

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)等过程

  1. 小区搜索:UE 开机后的第一件事情就是完成小区搜索,即完成与 eNB 的牵手。详见《4G EPS 中的小区搜索》。
  2. PLMN 选择:完成小区搜索、读取到了 SIB1 之后,就可以进行 PLMN 选择了,UE 选择一个 PLMN 进行驻留。详见《4G EPS 中的 PLMN 选择》。
  3. 小区选择:同样,在完成小区搜索、读取到了 SIB1 之后,就可以进行小区选择了。UE 从 SIB1 中得到参数,然后根据算法计算最佳小区,并且驻留。详见《4G EPS 中的小区选择》。
  4. 随机接入:当 UE 选择了驻留小区之后,必然要接入到蜂窝网络,完成用户信息的初步注册。由于 UE 的随机性、无线环境的复杂性决定了这种接入的发起以及采用的资源也具有随机性,故称之为随机接入。在完成随机接入之后 UE 才能进行上行传输。详见《4G EPS 中的随机接入》。
  5. 建立 UE 与 eNB 之间的 RRC 连接:RRC 连接作为上层 NAS 消息的载体。详见《4G EPS 中建立 UE 与 eNB 之间的 RRC 连接》。
  6. 建立 eNB 与 MME 之间的 S1 连接:S1 连接是 eNB 和 MME 之间发送 S1AP 消息的前提,S1AP 消息作为在 eNB 和 MME 之间传输 NAS 消息的载体。详见《4G EPS 中建立 eNB 与 MME 之间的 S1 连接》。
  7. 在完成了以上的准备之后,就可以建立 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 有两种报文

  1. 用于传送上层数据 T-PDU,以及由 GTP-U Header 和 T-PDU 构成 G-PDU;
  2. 用于 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 的建立过程

  1. MME 先分配 S11 MME GTP-C TEID(0x39f5e33c),并向 SGW 发送 CREATE SESSION REQUEST,同时也会携带着 MME 侧的 F-TEID。因为此时 SGW 尚未分配 TEID,所以报文头部 TEID 字段为全零(0x00000000);
  2. SGW 分配 S11 SGW GTP-C TEID(0xa7009160),向 MME 发送 CREATE SESSION RESPONSE,并携带着 SGW 侧的 F-TEID,报文头部 TEID 为 S11 MME GTP-C TEID(0x39f5e33c);
  3. 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的更多相关文章

  1. 关于eclipse中DDMS中Emulator Control选项卡为灰色不可用

    首先先感谢版主:http://blog.csdn.net/noname666/article/details/51670905#reply 方法一的出处:http://stackoverflow.co ...

  2. Sublime text 3 中Package Control 的安装与使用方法和解决Sublime Text 3不能正确显示中文的问题

    Sublime text 3 中Package Control 的安装与使用方法,英文好可以在这个网址看看, 下面简单的说明一下 : https://packagecontrol.io/install ...

  3. 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 ...

  4. 如何巧妙使用ZBrush中的Image Plane插件

    ZBrush®插件Image Plane提供了一种简单的方法加载图像到ZBrush中,以在添加纹理过程中进行使用,比如使用ZProject笔刷多边形着色,以及利用参考图建模等. ZBrush 中文版下 ...

  5. WPF中CAD control的XAML实现

    原文:WPF中CAD control的XAML实现     下面这个XAML文件是cad control里面最重要的一部分,使用Grid包含Viewport,Viewport中包括Camera和mod ...

  6. 3G 4G 5G中的网络安全问题——文献汇总

    Modeling and Analysis of RRC-Based Signalling Storms in 3G Networks 还是使用状态机模型来做恶意UE识别 https://san.ee ...

  7. PHP中output control

    Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie ...

  8. VC中Tab control的用法

    1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置I ...

  9. sublime 2中Package control安装和使用

    安装: 安装时,如果想查看安装进度,可打开console(View->Show Console) 安装Package control有两中方法: 方法1:通过代码安装 import urllib ...

  10. Sublime text 3 中Package Control 的安装与使用方法

    Package Control插件本身是一个为了方便管理插件的插件,在Sublime text 3中,Package Control 的安装方法一开始出来的方法是要先安装Git, 再输入代码来安装,原 ...

随机推荐

  1. #树状数组,离散#洛谷 3586 [POI2015]LOG

    题目 分析 考虑\(\geq s\)的部分最多取到\(s\), 设\(<s\)的总和为\(p\),个数为\(t\), 那么\(p+(n-t)*s\geq c*s\)就一定能取到 代码 #incl ...

  2. docker运行javaWeb服务,操作文件异常

    一.问题由来 部署一个测试服务在自己的服务器上面,然后运行其中的一个功能.然后报错,报错信息如下 二.问题分析 自己一开始也很疑惑,怎么会出现这个问题呢,自己明明把对应的文件放在对应的目录下面,并且已 ...

  3. 小师妹学JavaIO之:文件编码和字符集Unicode

    目录 简介 使用Properties读取文件 乱码初现 字符集和文件编码 解决Properties中的乱码 真.终极解决办法 总结 简介 小师妹一时兴起,使用了一项从来都没用过的新技能,没想却出现了一 ...

  4. 7. The Singular Value Decomposition(SVD)

    7.1 Singular values and Singular vectors The SVD separates any matrix into simple pieces. A is any m ...

  5. BI小白收藏|一文告诉你什么是商务智能

    近年来,商务智能(BI)已成为继企业资源计划之后企业信息化建设的热点领域,在国内发展迅速.利用商务智能可以为企业整合集成现有的业务数据,在深度挖掘分析的基础上为管理决策者提供决策辅助,提高科学决策水平 ...

  6. 2款Notepad++平替工具(实用、跨平台的文本编辑器)

    前言 今天大姚给大家分享2款Notepad++平替工具,实用.跨平台(支持Window/MacOS/Linux操作系统平台)的文本编辑器. NotepadNext NotepadNext是一个跨平台的 ...

  7. js 检查对象是否没有字段

    前言 我以前遇到的一个问题. var object={}; if(object=={}) { } 在这里我遇到了问题,一直是lese状态. 后来想想其实也是自己犯了一个很严重的问题,这两个不是同一个对 ...

  8. Kotlin 使用协程编写高效的并发程序

    概念: 轻量级的线程 协程允许我们在单线程模式下模拟多线程编程的效果,代码执行时的挂起与恢复完 全是由编程语言来控制的,和操作系统无关.这种特性使得高并发程序的运行效率得到了极大的提升. 依赖库: d ...

  9. 如何使用鞋厂ERP等企业管理软件提高企业运营整体效率?

    ERP把企业客户需求.市场规划.产品研发.内部制造等活动以及供应商的资源整合在一起,形成企业一个完整的产业链和供应链,通过企业多个环节的无缝链接和整体运作来提高企业运营整体效率: (1) . 对整个产 ...

  10. ping的常用方法

    ping的常用方法 ping +ip tcping +ip+端口号(例如 tcping 127.0.0.1 8080) telnet +ip+端口号 nc -nzv +ip+端口号(linux用)