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 了。