EPC附着流程 日志
历史从未走远
早期编码 早期字符用莫尔斯码的点和横杆表示, 实际就是计算机用的二进制
信令 一些特殊符号, 表示一些特殊含义, 可以被看做信令, 类似于早期的密码字典, 没有对应字典, 这些字符毫无意义
报文压缩 为了提高通信效率, 用一些字母组合表达共同约定的含义, 称为报文压缩, 与信令的区别是: 信令表示的是控制信息, 而压缩的报文只是将一段长的字符用一段段的字符表示同样的意思, 两者本质一样
通信流程
一个完整的通信流程应该有完整的会话建立和释放过程, 如TCP的 三次握手和四次挥手
, SCTP的 四次握手和三次挥手
, 中间则是会话传输内容
EPC网络的协议
控制面终端和MME协议栈结构
RRC
无线资源控制(radio resource manager), UE到eNodeB之间的控制平面的信令连接
用户面端到端协议栈结构
Diameter
为什么会有状态
无线信道资源和终端电池电力 资源有限 -> 状态
从协议角度看, EMM和ECM是独立的 -> 状态时控制面板和用户面分离的重要一环
在MME侧, 讨论ECM状态, 必须是终端处于EMM-REGISTERED状态(EMM-DEREGISTERED讨论无意义)
MM(移动性管理) Mobility Management, 在4G中称为 EMM , 移动性流程包括所有追踪用户位置相关的流程, 还包括这些流程中的安全/标志分配流程, 描述UE在网络中的注册状态
如:
附着(attach)
切换(Handover-Handoff)
重选(TAU)
寻呼(Paging)
SM(会话管理) Session Management, 4G中称为 ESM , 与 用户面数据连接有关 的概念, 包括连接的创建/删除/修改等流程及相关概念.
用户面数据承载包括:
无线侧的用户面承载 eRAB(evolved-Radio Access Bearer)
资源
核心网 S1-U/S5&S8
承载
各网元上支持数据转发相关的上下文资源??(这一点比较模糊)
EMM状态
EMM-REGISTERED
终端通过Attach流程注册到网络, 终端的位置信息就被网络获知
EMM-DEREGISTERED
从网络注销
CM(连接管理)
ECM-IDLE
终端在REGISTERED状态下, 终端和核心网只有信令连接
ECM-CONNECTED
UE和MME有信令连接和用户面承载
终端和网络侧的MME之间的信令连接包括UE和eNodeB之间的 RRC连接 以及eNodeB和MME之间的S1接口连接( NAS信令连接 )
终端和网络侧的S-GW有用户面承载资源(无线侧的的Radio Bear和S1-U接口的GTPU承载资源)
终端侧的EMM和ECM状态转换
MME侧的EMM和ECM状态转换:
UTMS永远在线 always-on, 从端到端的角度看, 在UE注册到网络之后, 随时可利用网络中保存的路由信息与UE建立连接(不代表每段连接时刻存在, 比如空中接口)
PDP
Packet Date Protocol context, PDP上下文, 保存用户面进行隧道转发的所有信息,包括RNC/GGSN的用户面IP地址、隧道标识和QoS等.
EPS永远在线
默认承载 与一个新PDN第一个建立连接的EPS承载并且在此PDN连接生命周期内保持连接. UE附着到网络时会建立一个承载, 这个承载成为默认承载, 默认承载不是和附着对应, 而是和PDN对应的
将附着和PDP上下文激活过程合并, 并在UE附着过程中建立基础IP连接, 这个基础IP连接就是默认承载
默认承载在UE注册在网络的过程中始终存在, 即使空中接口的无线承载和S1接口承载都释放, 默认承载也保存在EPC中
UE在删除业务承载时, 只要不从网络注销, 始终有一条PDN连接以及这条PDN连接上的默认承载存在
默认承载只在UE从网络注销时才能删除
专有承载(不同QoS)
GBR(Guaranteed Bit Rate, 保证速率), 享有不低于保证速率的带宽
Non-GBR, 非保证带宽, 分配可能低于Non-GBR的带宽
默认承载QoS签约在HSS/PCRF中, 只能是Non-GBR
专有承载是网络侧识别到某种特殊业务时发起建立的承载
承载上下文
就是网元中保存用户的相关信息. 保存在网元上的这些动态信息, 可以使设备在yoghurt报文到达时识别是哪个用户的报文, 采用什么样的转发策略, 在对外转发时如何封装, 这样就可以保证某个用户数据报文端到端数据处理的一致性, 并能将用户报文转发给特定的用户
协议对附着流程的描述
1. S1接口信令连接的建立
终端无线侧随机接入空口
终端与eNodeB建立RRC控制面信令连接
Attach Request 消息在RRC连接时封装在 RRC Connection Setup Complete
消息中
在S1-MME接口Attach Request 消息被封装在 Initial UE Message
消息中
InitialUEMessage, attach request, PDN connectivity request
Id-eNB-UE-S1AP-ID 建立S1接口信令连接所需信息
ENB-UE-S1AP-ID: eNodeB分配的S1接口信令连接ID, 在一个eNobeB内唯一
id-NAS-PDU UE和MME交互的信息
非接入层业务信息, 封装了Attach Request信息
Id-TAI 用户当前所在的跟踪区
MME构建SGW FQDN向DNS服务器获取SGW列表
Id-EUTRAN-CGI 用户当前的小区
Id-RRC-Establishment-Cause(RRC建立的原因)
表明终端RRC建立是由初始信令/初始数据/其他原因触发
mo-Signalling
mo-Data
mt-Access
highPriorityAccess
emergency
id-downlinkNASTransport 完成S1信令连接 MME在收到这个消息后, 在随后的第一个下行NAS消息携带以下信息, 这样用户在S1接口的信令连接就完成了
MME-UE-S1AP-ID: MME分配给终端的S1接口信令连接ID
ENB-UE-S1AP-ID: eNodeB分配给终端的S1接口信令连接ID
SCTP连接 保证可靠传输
2. 获取用户身份标识
获取IMSI IMSI是用户的唯一标识, 可用于向HSS获取鉴权信息
在附着请求中, UE上报的标识可能是:
UE初次连接上报IMSI标识
上一次4G网络使用的native GUTI
上一次2G/3G网络使用的RAI/PTMSI标识映射成的GUTI
如果附带的是GUTI信息, 则:
向old MME请求, old MME返回IMSI信息
向UE请求, 三种情况:
带有的GUTI是本机分配的, 但无法找到对应IMSI信息
带有GUTI非本机分配, 但无法解析old MME地址
带有GUTI非本机分配, 但old MME侧IMSI信息已删除
使用GUTI的好处
尽可能在网络侧获得用户的IMSI标识(避免占用无线信道)
避免从空口传递IMSI(防止在空口被截获)
GUTI
MCC, Mobile Country Code, 移动国家码
MNC, Mobile Network Code, 移动网号
MMEI, MME 唯一标识符
MMEGI, MME Group Identifier, MME组标识
MMEC, MME Code, MME码
MTMSI, MME Temporary Mobile Subscribe Identify, MME内唯一用户标识
获取旧的MME通信地址
3. 鉴权流程和安全流程
MME向HSS发送Authenticatino Data Request消息(IMSI标识, MME希望获取的鉴权集数量信息)
Authentication Request(7)
Authentication Response(8)
只有HSS和手机USIM卡是在任何业务场景下均受归属运营商控制
USIM卡里面包含(IMSI, 鉴权加密算法, 密钥K值)
HSS的签约信息上, 会有相同的算法和密钥K
HSS鉴权输入变量:
RAND: HSS产生随机数
SQN: UE和HSS分别维护, 成功鉴权之后同步
LTE-K: 保存在HSS签约信息和USIM卡中的密钥
SN ID: PLMN ID(InitialUEmessage终端TAI信息中附带)
生成的鉴权集:
RAND
AUTN:
1)UE根据从MME发送的AUTN和RAND, 计算出SQN, 与自身存储 进行比较, 确保SQN大于 , 否则终端认为该组鉴权集较旧, UE发起重同步过程 指示网络侧重新进行鉴权
2)与利用KEY生成的 进行比较, 终端对网络进行鉴权
XRES: 期望应答, MME比较网络侧和UE生成的RES, 用于网络对终端进行鉴权
: 依此生成 / / / / , 进行数据加密和完整性加密, 一次鉴权过程可能存在多个鉴权集( Security Mode Command信息
)
MME和UE之间只传递 索引KSI, 避免 在空口传输
鉴权流程常见错误:
MAC Failure: MAC = f1K(SQN||RAND||AMF)
SYN Failure: UE根据 计算AUTS, 并传送给HSS, HSS获取 并且进行同步, 重新发送一组鉴权集
Diameter选路(MME之间的通信)
Diameter
IP时代的S6a接口选路, MME和HSS之间的应用程序通信协议
RADIUS
Remote Authentication Dial In User Service, 拨入用户远程认证服务, IETF将其升级为Diameter
DRA
负责Diameter协议中转的网元
MME不能和全部HSS互联, 在实际组网中, MME和负责Diameter转发的设备(DRA, Diameter Routing Agent)互联, 可能只存在少量本地HSS与MME直接对接
路由器完成IP层的转发, 不修改IP层地址信息
DRA将SCTP层及外层信息全部剥离并进行重新封装, 对Diameter进行少量修改
MME根据IMSI中包含的MNC和MCC构造FQDN寻址到用户归属的HSS
用户与HSS成功交互后, MME中的用户数据库中会保存该用户的HSS主机名, 这时可选择直接使用HOST进行寻址
IMSI结构
字段
说明
MCC
移动用户所属国家代号
MNC
用于识别移动用户所归属的移动通信网
MSIN
移动用户识别码,用以识别某一移动通信网中的移动用户, 共10位
5a Authentication/Security Attach Request消息未保证完整性或者完整性校验失败, 则必须进行鉴权
5b Identify Request/Response 获取加密的IMEI
ME Identity Check 向EIR发送(IMSI/ME Identity), 决定拒绝还是接受Attach
Ciphered Options Request/Response 如果Attach Request消息中包含Ciphered Options Transfer Flag, 则MME向UE请求 PCO/APN 等Ciphered Options
About the PCO (Ptorocol Configuration Options )
here is a answer that :http://lteuniversity.com/ask_the_expert/f/59/t/2422.aspx
The purpose of the Protocol Configuration Options (PCO) is to provide additional optional information about the destination network that the UE is connecting to. For example, when a UE connects to the Internet it will be given an IP address and it will be given a PCO that includes the default gateway IP address, the DNS server address, etc. All of these additional pieces of information are given in the PCO.
4. 位置更新流程(到这一步完成接入, 之后建立承载)
MME通过位置更新请求, 将用户当前所在的MME( 主机名/域名/IMSI/MMEID )注册到HSS, 方便HSS找到MME(位置取消/插入用户数据/删除用户数据/复位流程), 请求中附带标志位:
GPRS-Subscription-Data-Indicator
Skip-Subscriber-Data
Single-Registration-Indication
Initial-Attach-Indicator
Node-type-Indicator
HSS保存用户当前所在MME, 返回用户签约信息(APN/P-GW/ID/QoS)
Separation Indication, 置1, 指示HSS在独立内存分别存储MME/S4-SGSN号码, 且SGSN/MME需要重复再发一次位置更新
5. 承载的创造
1)基本概念 MME在EPC网络中处在信令控制的核心节点. EPC网络用户业务数据承载的创建就是MME作为核心节点, 控制UE/eNodeB/SGW/PGW各节点为用户创建承载的过程.
PDN Connection IPv4/IPv6代表的终端和APN代表的外部网络的一种关联, APN(Access Point Name)用来确定接入的网络对象是谁, PDN Connection同时包括QOS内容
EPS承载 用来识别UE到某个外部PDN连接采用相同QOS控制的数据流, EPS是PDN连接的一个子集
默认承载 是新建PDN连接首先创建的承载, 在PDN连续生命周期内一直存在, 默认承载被删除, PDN连接也将被释放
2)实验环境默认承载建立过程
选择MME MME根据attatch消息获取位置区标识TAI, 通过DNS解析获得服务该位置区的S-GW列表, 在本文的环境中没有配置DNS服务器, 故SGW的信息不会通过DNS查询, 而是将配置的信息固定在 mme.ini
配置中
[ sgw ]
ipv4 = 172.1 . 10.42
ipv6 = 2001 :: 172 : 1 : 1 : 82
tac_cnt = 1
tac1 = 0x008e
s5s8_sgw_cnt = 1
选择PGW MME根据APN确认默认承载将与哪个外部网络建立PDN连接, 通过DNS解析获得可连接该PDN的P-GW列表,
# 本环境PGW信息保存在 `mme.ini` 配置信息中
[ pgw ]
ipv4 = 172.1 . 10.43
ipv6 = 2001 :: 172 : 2 : 1 : 83
建立默认承载的APN可以是HSS的签约信息, 也可以是终端上报的APN; 无论哪种方式, 最初的attach Request消息中都不会携带APN, 如果终端想用自己希望的APN建立默认承载, 终端需要在Attach Request消息中在PDN Connection Request字段中携带 ESM Information Transfer Flag
字段, 后续MME会向终端请求APN
MME有三种方式获取APN(如何决定使用哪种方式??)
默认配置
HSS获取
从UE获取
MME比较DNS返回的S-GW列表和P-GW列表, 根据到S-GW和P-GW链路可用情况, 优先级和权重, S-GW和P-GW合一部署情况, 网络拓扑, 选择一对S-GW和P-GW发起默认承载建立流程
3) 端到端可达 使用APN确保选择正确的网关建立承载
4)移动可达性 通过隧道保证数据的可达性, 当切换网元时, 改变对应的目的GTP"地址+TEID", 保证数据路由到新的网元
5)质量保证 在承载创建过程中, 各个节点在创建承载上下文时会包含QoS上下文, 端到端QoS保持一致.
在GTP上行链路中, 数据目的IP和TEID填写的是上游网元分配的GTP IP+TEID组合
在GTP下行链路中, 数据目的IP和TEID填写的是下游网元分配的GTP IP+TEID组合
承载建立过程消息分解
MME->SGW (Create Session Request)
IMSI信息
MSISDN:Mobile Subscriber International ISDN/PSTN number, 手机号码
MSISDN
含义
CC
Country Code,含义为国家码,中国的国家码为86
NDC
National Destination Code,表示国内目的地码,也称网络(运营商)接入号. 中国移动网络接入号为134~139、150~152、188等,中国联通为130~132、185~186等,中国电信为133、153、180、189等
SN
Subscriber Number,客户号码, 客户唯一标识
MEI, 设备唯一标识符
TAI/ECGI
Serving Network, MCC + MNC
RAT 接入方式
APN信息:
# mme.ini, 默认APN
[ apn_netid ]
name = cmnet . cmri . com
FTEID-C(S11) 告诉 SGW 如何与 MME 通信(本地S11接口TEID + IP地址)
FTEID-C(S5/S8) 告诉 SGW 如何与 PGW 通信(IP地址)
0x00000000
表示未知, 后续SGW会返回一个值告诉MME
Bearer ID
QoS信息
SGW->PGW (Create Session Request) S-GW在接收到 Create Session Request 消息后, 需要在S5或S8接口向P-GW发送承载建立请求(本端S5/S8接口的地址和TEID)
对方 TEID 设置为 0
设置为 0.0.0.0
, 请求UE终端地址
- 通告SGW S5/S8使用的TEID+IP
PGW->SGW (Create Session Response) P-GW成功建立承载之后, 也会携带P-GW端S5/S8接口的地址和TEID, 分配给终端的地址, 最终协商的QoS信息
目的使用SGW端的TEID
给 UE 分配终端地址, 响应了请求
SGW->MME (Create Session Response)
FTEID-C(S11/S4)
SGW 将自己 S11 接口的 TEID 回复给 MME
FTEID-C(S5/S8)
SGW 将 PGW S5/S8 接口的 TEID 回复给 MME, 响应之前的请求
将IP告诉MME
GTP-U 携带 SGW/PGW分配的S1-U接口和S5/S8接口的GTP IP和TEID
MME->eNodeB (Initial Context Setup Request) MME通过 Initial Context Setup Request
消息将用户面S-GW设备设备为该用户分配的 GTP IP和TEID 通知给 eNodeB
S1接口连接信令消息
分配的IP
GUTI
DNS
DNS信息从何而来??
APN
TA List
show stat
查看UE状态可知, 当前UE接入了 enodeB global id = ff f1 10 0
, 查看 enb.ini
可知此基站管理 tac=0x1111
这个跟踪区
[ global_enodeB ]
supported_tac_num = 1
tac_incr = FALSE
tac0 = 0x1111
enb_id_start = 0
imsi_id_start = 0
cell_access_mode_flag = 0
ue_csg_id_0 = 0x01234567
enb_range_cnt = 0
enable_auto_logical_enb = 0
在查看 mme.ini
, 共配置了 0/1/2
三个
#config tacs in different talist id
# 0x1234 is in talist 1, 0x5676 and 0xabcd are in talist 2, 0x1111 and 0x2222 are in talist 0
[ talist ]
tac [ 12 ][ 66 ] = 1
tac [ 56 ][ 78 ] = 2
tac [ 11 ][ 67 ] = 0
tac [ 22 ][ 68 ] = 0
tac [ ab ][ cd ] = 2
tac [ 00 ][ 01 ] = 0
tac [ 00 ][ 02 ] = 0
tac [ 00 ][ 03 ] = 1
tac [ 00 ][ 04 ] = 1
tac [ 00 ][ 05 ] = 1
tac [ 00 ][ 06 ] = 2
tac [ 00 ][ 07 ] = 2
与UE获得TA List相符合
transportLayerAddress
将SGW用户面传输地址TEID+IP告诉eNodeB
GUMMEI
eNodeB->MME Initial Context Setup Response eNobeB通过 Initial Context Setup Response
向MME返回eNodeB分配的 GTP IP和TEID
transportLayerAddress
MME->SGW Modify Bearer Request eNodeB侧为终端分配的 GTP IP 和 TEID 会被 MME 通过 Modify Bearere Request消息通知 SGW, 用于 SGW 下行 GTP 用户消息的封装
GTP-U
MME将eNodeB分配给终端的TEID+IP通告给SGW
SGW->MME (Modify Bearer Response)
FQN