移动状态下流程
日志
统一语言
移动性流程
- 终端从一个小区移动到另外一个小区, 终端需要将业务连续转移到新的小区
- 终端在不同网络间(2G/3G/4G)移动的过程, 也会发生移动性流程
切换
在连接状态下, 终端和eNodeB之间有RRC连接, 可以进行信令传送. 在eNodeB判断终端状态满足切换条件, 终端可能需要切换. eNodeB主动要求终端上报测量报告. 在信令连接上, 终端将自己测量到的邻区信号情况上报给eNodeB, eNodeB决定将终端切换到哪一个新的eNodeB. eNodeB发起切换流程, 通过网络侧的交互过程先在目标eNodeB为终端建立相关信令和数据承载. 信令连接建立完毕后, eNodeB只是终端切换, 将终端移交到目标网络.终端如果从广播信道中监测到当前TA List或者RAI与保存在SIM卡中的TAL/RAI不同, 触发更新流程(TAU/RAU)
- 盲切: 终端不支持测量, eNodeB不知道从终端角度看来哪个eNodeB信号更好, 那么eNodeB就根据盲切策略指定一个目标eNodeB, 发起切换.
- 重定位: 终端不支持切换, 就不会有上述切换的过程, eNodeB在放手的过程(RRC释放)给终端推荐一个目标小区的频点, 避免终端在频点选择上耗费时间
重选
在空闲状态下, 终端像收听收音机一样接收网络广播信息, 对当前小区信号以及邻区信号机型测量(并不通知网络). 当终端测量到更好信号质量的小区, 满足重选条件时, 终端会尝试注册到新的小区. 重选过程, 终端有与网络脱离的时间(秒级). 重选到新的小区后, 如果终端从广播信道中监测到的当前TA List或者RAI与保存在SIM卡中的TAL/RAI不同, 就会触发相关更新流程和这RAU.
位置标识
无线网络采用蜂窝式覆盖, 由很多微小单元组成, 每个小区都有一个CI(Cell ID)标识
- 在连接状态下, 网络对终端位置的识别精确到小区级
- 空闲状态下, 将终端精切到小区从技术上可以实现
- 网络终端需要频繁处理终端小区更新信令
- 终端需要占用无线资源发送小区更新消息
- 终端频繁发送消息耗电量
更新位置消息的方式:
为此提出了位置区的概念, 位置区由多个小区构成.终端在空闲情况下发生小区切换并不通知网络, 终端达到新的小区后, 如果检测到当前小区的位置区与上次的位置区不同, 终端再次发起位置更新流程, 通知网络更新自己的位置区信息(当前的位置区标识通过无线空口广播信道中的系统消息下发)
那要如何定位到终端呢?
当终端有呼叫到达时, 网络在位置区范围内进行寻呼, 技能保证终端业务的接续能力, 又能避免大量空闲态用户小区更新带来的信令, 所以位置区是一个寻呼单位
2G/3G位置更新
- 在2G/3G的PS网络中, LAI后增加两位构成RAI, 因此一个LAI被划分成多个RAI, RAI是在空闲状态下PS的寻呼终端的范围
4G位置更新
- 在 LTE EPC网络中, 引入了TAI=MCC+MNC+TAC
- 和TAI/RAI通过无线广播信道系统消息广播给终端不同, TA List是配置在MME上, 并通过Attach Accept/TAU Accept下发给终端
- EPC网络寻呼处于空闲状态的终端时, 对整个TA List进行寻呼(缺点是SCTP和寻呼数量非常耗费资源)
- 当终端移出TA List时, 进行位置更新
TAU流程
终端处在ECM-IDLE状态时, 终端在MME上保持一个跟踪区列表粒度的注册状态, MME只知晓终端在哪个跟踪区列表内, 并不能掌握终端处在哪个小区. 在终端处于ECM-IDLE状态时, 网络如果需要给终端发送数据, MME会在TAL范围内内寻呼终端, 触发终端重新建立信令连接和数据面承载
在ECM-IDLE状态下:
- 网络侧保留S-GW和P-GW之间的S5/S8接口的承载资源, S11信令接口
- MME上保留S-GW侧的GTP IP和TEID(用户面), UE所在的TA List和其他上下文(用于寻呼)
- HSS上保存UE所在的MME的ID信息
当UE移动到另外一个TAL时, 为了让MME了解UE的位置, UE需要通过跟踪区更新流程更新上述信息
位置更新也主要发生以下事件:
- 完成SGW和PGW之间S5/S8接口的承载资源更新(如果SGW发生改变)
- 把保留在先前MME上的用户相关信息(如SGW侧的GTP IP和TEID, UE所在的TA List和其他上下文)转移到新的MME上
- 更新HSS上保存的MME的ID信息(如果MME改变)
1. UE触发TAU请求
UE(通过重选或者重定向等流程)进入新的跟踪区, 检测到(通过广播信道监测)当前跟踪区不在之前从网络获取的的TA List, 发起TAU流程
2. 获取上下文
- MME从eNodeB收到TAU REQ消息
- MME根据GUTI信息构造MME FQDN送往DNS查询MME主机名
- new MME向old MME发送Context Request消息, 请求用户上下文信息
- old MME返回上下文信息包括
- 用户的IMSI
- MME ID
- MM上下文
- EPS承载上下文
- S-GW信令面地址和TEID/PGW FQDN信息
3. 安全流程
过程如附着流程
4. 位置更新
MME发起位置更新流程, 将新的MME ID注册到HSS
5. 承载切换
切换流程如下, 恢复到ECM-IDLE状态:
- MME 根据TAI FADN获取TAI的SGW列表, 再根据PGW FQDN选择SGW
- MME->SGW(Create Session Request)
- SGW->PGW(Modify Bearer Request)
- PGW->SGW(Modify Bearer Response)
- SGW->MME(Create Session Response)
6. UE接受TAU响应
- MME将TAU accept发送给终端(包含TA List)
- 如果同时携带新分配到的GUTI信息, UE需要给MME返回TAU Complete响应
- TAU Accept小子携带一个终端的T3412定时器, 用户UE周期周期性进行TAU, 避免隐式分离
Service Request流程
ECM-IDLE状态下信令连接状态
TAU流程, UE只存在部分的承载. 即 在ECM-IDLE状态下, 网络只为终端保持部分用户面承载和信令面连接
- 信令面, 保持终端(上下文)的S11/S5接口的GTPC连接
- 用户面, 保留终端(上下文)的S5接口的GTP-U连接
转移到ECM-CONNECTED状态
从ECM-IDLE状态迁移到ECM-CONNECTED状态时, 使用 服务请求(Service Request)流程 建立UE到PGW的端到端信令连接和用户面承载
- 当终端处于ECM-IDLE状态下时, 终端主动发送上行数据, 终端可以主动发起Service Request流程, 是终端自身应用层业务触发
- 当终端处在ECM-IDLE状态下时, 网络主动发送下行数据, 网络侧通过 寻呼(Paging)流程 通知终端发起Service Request流程(Service Request流程只能由终端发起)
- 总结
- Service Request消息是终端处在ECM-IDLE状态下, 终端 发起建立端到端信令连接和用户面承载的流程
- 下行数据通过S5承载从PGW->SGW
- SGW通过
Downlink Data Notification
通知MME
- MME返回
Downlink Data Notification Ack
, 并且向用户所在TA List内的全部eNodeB发送寻呼消息(MME内用户标识M-TMSI/TA List/UE Identify Index Value)
- UE和eNodebB之间的空口建立信令面的RRC连接, 在RRC Connection Setup Complete中将Service Request消息放在NAS层发送给eNodeB
- eNodeB将Service Request NAS消息封装在Iinitial UE Message中发给MME(创建S1接口信令连接, 那eNodeB如何知道id-MME-UE-s1ap-ID)
- MME和终端之间进行安全流程
- MME->eNodeB(S1-AP Initial Context Setup Request), 通告SGW S1接口的IP地址和TEID, 同时传递无线侧承载建立所需的QoS消息(创建了S1-U接口上行隧道, 同时在无线侧为UE创建无线承载)
- eNodeB->MME(Initial Context Setup Response), 向MME通告自己的S1接口IP地址和TEID
- MME->SGW(Modify Bearer Request), SGW将eNodeB S1接口IP和TEID保存在UE的上下文中(创建S1-U下行隧道)
- 最后终端进入ECM-CONNECTED状态
Handover 流程
eNodeB知道自己周围有哪些小区(在统一MME规划管和理下, 这样就知道是选择 X2接口切换
还是 S1接口切换
)
- eNodeB在RRC连接建立的同时下发测量控制信息(上报门限)
- 切换是由网络侧的eNod eB发起的
- 两种切换除切换控制消息路径不同外, UE切换到目标eNodeB后, 源eNodeB侧剩余未转发成功的用户数据面转发通道也不同
- LTE网络切换过程保持PGW不变, eNodeB改变, MME和SGW可能改变
基于X2接口的切换
当eNodeB之间存在 X2接口 (eNodeB配置, 或通过MME/OMC学习), 并且切换过程 MME无需改变 (目标eNodeB和源eNodeB在一个MME下)时, eNodeB可以通过X2接口发起切换
切换前 ECM-CONNECTED状态下 用户面承载 包括:
- UE到源eNodeB的无线承载
- 源eNodeB到源SGW的S1-U承载
- 源SGW到PGW的S5/S8承载
- 终端测量当前小区及邻区的信号强度, 上报给eNodeB
- eNodeB根据信号强度决定发起切换
- old eNodeB->new eNodeB(
Handover Request消息
), 信息包括:
- 目标小区ID(告诉它我要接入你那里)
- 源SGW的用户面GTP地址和TEID( 创建了S-GW上行S1-U隧道 )
- 建立无线承载必须的信元(UE-AMBR, 安全能力, KeNB)
- 目标eNodeB->源eNodeB(
Handover Ack
)
- 创建无线承载相关ID(为创建无线承载准备)
- 创建X2转发通道的本端TEID
- 源eNodeB->UE(
Handover Command
), UE释放当前连接, 接入目标eNodeB(到目前为止, 上行链路还是连通, 但下行链路不是连通的, 源SGW无到目标eNodeB的TEID)
- 终端切换完后, 源eNodeB通过X2接口将未送达数据传递给目标eNodeB
- 目标eNodeB->MME(
path Switch Request 消息
)核心网侧路径切换
- 目标eNodeB的GTP地址和TEID
- 目标TAI信息, 用于构建TAC FADN, 到DNS解析SGW列表, 根据PGW FQDN, "合一优选, 拓扑优先"选择SGW
- 如果SGW改变, MME->目标SGW(create->session), 否则源SGW发起
Modify Session流程
(??)
- 目标S-GW->PGW(Modify Bearer Request), 目标SGW的GTP地址和TEID, 创建下行S5接口隧道
- PGW->目标SGW(Modify Bearer Response), PGW的GTP地址和TEID, 创建上行S5接口隧道
- 目标SGW->MME(Create Session Response), 到目前为止是不是所有承载都建立成功??待验证
- 删除源eNodeB资源和源SGW Session资源
- 进行位置更新(新的TAU是否在TAL中), 可能只是部分TAU流程
X2接口切换抓包验证
试验目的:将一个UE从基站A移动到基站B, 查看切换过程的码流
切换流程
# 本文使用aricent公司的SCTP协议, 配置两个基站和10个UE资源
sudo ./sim_enodeb -H 3.3.0.1 -r 7.7.7.7 -a 1 -i br1 -n 2 -u 5
# 命令帮助:
start <enb id 1> <enb id 2>: start enb from id1 to id2
start <enb id> : close and restart the sctp connection, send
the s1-setup to MME
start 0 1
# 命令帮助:
r U: start ALL UEs for all the registered enodeBs
r U <enb_id>: start ALL UEs within the enodeB
r U <enb id 1> <enb id 2>: start ALL UEs from enb_id1 to enb_id2
r u <enb id>: start one UE within the enodeB
r u <enb id 1> <enb id 2>: start one UE from enb_id1 to enb_id2
r u 0
- 将UE[0]从eNodeB Id 0移动到eNodeB Id 1
# 只有X2切换才会发送, PathSwitch Request, 一下命令用于X2接口切换
# p s(path switch)
p s <enb id1> <enb id2>: move one active-ue from enodeb id1 to enodeb
id2, send path switch request to mme
p r <enb id1> <rmt ip> <enb id2>: move one active-ue from enodeb id1 to REMOTE
enodeb id2, send path switch request to mme
# 移动一个UE
p s 0 1
UE从eNodeB Id 0 移动到了eNodeB Id 1
错误提示:
旧的ENB为确保清理干净,多删了一次UE, 重复删除时就会有这个提示
基于S1接口的切换
当无法执行X2切换时, 执行S1切换, 网元改变的消息都包含Relocation字样, 新老eNodeB之间的数据通过SGW完成. S1切换经过SGW转发为完成的数据
- 源eNodeB->MME(HO Required, 不是Request), 包括
目标TAC
- 源MME根据目标TAC构造TAC FQDN, 解析获得目标MME地址
- 源MME->目标MME
- PGW地址(一直不知道是干啥用的)
- 承载QOS
- S-GW FQDN(供目标MME选择SGW)
- 目标TAC信息(通知目标eNodeB建立承载)