目录
文章目录
前文列表
《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)