注网流程分析
手机注网主要包括“驻扎”与“注册”两个过程:在“驻扎”过程中,手机侧NAS层过程(“PLMN选择”)与AS层过程(“小区选择”)互相配合,从而成功驻扎到运营商网络的某个suitable小区,完成注网流程中的第一步;成功驻扎suitable小区后,手机侧向网络发起“位置注册”过程,当该过程成功后手机即可正常使用网络所提供的服务。下图摘自3GPP TS 36.304,概要描述了“PLMN选择”、“小区选择”以及“位置注册”3个过程间的关系。
1. PLMN选择
“PLMN选择”过程综合考虑当前SIM卡状态、网络选择模式、PLMN驻扎/注册结果等因素,选择最优PLMN并请求AS层驻扎到所选定PLMN的suitable小区,从而完成UE注网的第一步。
自动选网模式:PLMN选择的优先级为:RPLMN->HPLMN->UPLMN->OPLMN->high signal PLMN->weak signal PLMN
手动选网模式:手机必须注册用户选择的PLMN。
如果在手动模式下无RPLMN或者注册失败,那么会一直呆在limited service状态,直到用户再次手动选择;
如果注册失败,手机会选择任意一个Acceptable Cell,只能拨打紧急电话;
如果PLMN支持多个RAT,应该用preferred RAT去尝试注册这个PLMN;
详细的选网规则可以参考3GPP协议23.122.
2. 小区选择
“小区选择”过程属于AS层的功能,主要包括“初始小区选择”和“小区重选”。“初始小区选择”过程按照“PLMN选择”过程的要求,驻扎到指定PLMN的suitable小区;“小区重选”过程则根据当前网络环境以及小区重选参数的设定,在到达重选阈值时执行小区重选,从而使得UE总是驻扎在best小区。
3. 位置注册
UE驻扎到PLMN的suitable小区后,仅能够获取拨打紧急电话等受限服务,只有成功完成“位置注册”过程,UE才能获取网络运营商所提供的各种服务。对于GSM/WCDMA网络,位置更新包括:Location Area Update(LAU)、Attach(PS域only)、Routing Area Update(RAU);而对于LTE,位置更新则包括:Attach以及Tracking Area Update(TAU)。
Log 分析:
过滤REG模块的log:QXDM->message packet->UMTS->NAS->REG
刚开机的时候sim卡初始化未完成之前,手机会先camp到任意一个Acceptable Cell获取limited service.
log流程如下:
17:33:22.143 reg_state.c 06970 ds1=REG= CM_SERVICE_REQ
//发起请求
17:33:22.144 reg_state.c 01806 ds1=REG= CM_SERVICE_REQ - LIMITED w/ type 2
//请求获取limited service
17:33:22.144 reg_send.c 01506 ds1=REG= MMR_REG_REQ PLMN(0-0) RAT(TDSCDMA)
//请求获取TDS的服务
17:33:22.147 reg_sim.c 06033 ds1=REG= SIM not available yet - returning reg_sim_ens_flag as 0
//sim卡不可用
17:33:23.285 reg_send.c 00375 ds1=REG= CM_CAMPED_IND
//底层通知camped到小区
17:33:23.287 reg_state.c 07923 ds1=REG= LIMITED_SERVICE on VPLMN(460-0)
//获取到limited service
17:33:23.287 reg_send.c 00649 ds1=REG= CM_SERVICE_CNF
Sim卡初始化完成后的注网过程
手动选网:
17:33:26.095 reg_state.c 06991 ds1=REG= CM_SIM_AVAILABLE_REQ mode_pref:-1, session_type:0 nv_index:0
17:33:26.107 reg_send.c 00767 ds1=REG= CM_SIM_AVAILABLE_CNF
//SIM卡可用
17:33:26.156 reg_state.c 06955 ds1=REG= CM_NETWORK_LIST_REQ
//搜索可用网络
17:33:53.413 reg_mode.c 04379 ds1=REG= Available PLMN Manual list (length = 5)
17:33:53.413 reg_mode.c 01331 ds1=REG= PLMN ID SVC LIST SIGNAL
17:33:53.413 reg_mode.c 01336 ds1=REG= # MCC-MNC F RAT DOMAIN CAT Q RSSI
17:33:53.413 reg_mode.c 01499 0 460- 00 LTE PS_ONLY HPLMN H 101
17:33:53.413 reg_mode.c 01504 1 460- 00 TDS NONE HPLMN L 121
17:33:53.413 reg_mode.c 01509 2 460- 00 GSM CS_PS HPLMN H 58
17:33:53.413 reg_mode.c 01514 3 460- 01 F GSM CS_PS OTHER L 85
17:33:53.413 reg_mode.c 01519 4 460- 20 GSM CS_PS OTHER L 87
//底层上报可用的网络
17:33:53.414 reg_send.c 00522 ds1=REG= CM_NETWORK_LIST_CNF
//搜网完成
17:33:53.418 reg_state.c 06970 ds1=REG= CM_SERVICE_REQ
17:33:53.418 reg_state.c 02805 ds1=REG= CM_SERVICE_REQ - MANUAL type=0
17:33:53.419 reg_send.c 01510 ds1=REG= MMR_REG_REQ PLMN(460-0) RAT(LTE)
//请求注册LTE网络
发起注册流程
注册流程需要过滤出MM模块的log,如下图
17:33:53.904 msg_lib_encode_emm.c 01273 ds1Encoding Attach request
17:33:53.904 msg_lib_encode_esm.c 00550 ds1MSG_LIB: completed encoding PDN_CONNECTIVITY_REQ
//发起attach请求,attach msg中包含有PDN的信息,同时会激活PDN
17:33:54.302 emm_security.c 01057 ds1=EMM= Received AUTHENTICATION REQUEST message
//收到网络侧的鉴权请求
17:33:54.635 emm_security.c 01476 ds1=EMM= Sending AUTHENTICATION RESPONSE message
//鉴权完成
17:33:55.003 emm_esm_handler.c 00616 ds1=EMM= Sending ATTACH_COMPLETE
//注册完成
17:33:55.006 emm_reg_handler.c 02911 ds1=EMM= sent MMR_REG_CNF
17:33:55.010 reg_state.c 07938 ds1=REG= CS_PS_SERVICE on HPLMN(460-0)
//获取到CS PS的服务
17:33:55.010 reg_send.c 00649 ds1=REG= CM_SERVICE_CNF
//注网流程完成
自动选网:
12:43:48.706 reg_send.c 01606 ds1=REG= MMR_SIM_AVAILABLE_REQ
12:43:48.712 reg_send.c 00767 ds1=REG= CM_SIM_AVAILABLE_CNF
//SIM卡可用
12:43:48.713 reg_state_inactive.c 00437 ds1=REG= REG_STATE_INACTIVE
12:43:50.014 reg_state.c 06970 ds1=REG= CM_SERVICE_REQ
12:43:50.014 reg_state.c 01474 ds1=REG= Rat priority list num_items = 2
12:43:50.014 reg_state.c 01479 ds1=REG= sys_mode = 11 bst_rat_acq_required = 1
12:43:50.014 reg_state.c 01479 ds1=REG= sys_mode = 3 bst_rat_acq_required = 1
//自动选网按照优先级先选TDS然后GSM
12:43:50.015 reg_state.c 02389 ds1=REG= CM_SERVICE_REQ - AUTOMATIC type=2
12:43:50.018 reg_send.c 01506 ds1=REG= MMR_REG_REQ PLMN(460-0) RAT(TDSCDMA)
//先尝试注册TDS网络
12:43:56.403 reg_send.c 00375 ds1=REG= CM_CAMPED_IND
//Camped成功
12:43:56.404 mmplmnsel.c 01968 ds1=MM= Same Lai-LU not required, though possible IMSI attach
//由于当前的位置区没变,不需要做位置区更新
12:43:56.408 reg_state.c 07930 ds1=REG= CS_SERVICE on HPLMN(460-0)
//获取到CS域服务
12:43:56.409 gmmmsg.c 03131 ds1=MM= Sending ATTACH REQUEST message
//获取PS域的服务
12:43:57.014 mmutils.c 02283 ds1=MM= MM sent LOCATION_UPDATING_REQUEST to RRC
12:43:58.130 mmmain.c 00263 ds1=MM= MM Received LOCATION_UPDATING_ACCEPT
//PS域注册完成
MSG NAS REG/High/Error/Fatal 12:43:58.132 reg_state.c 07938 ds1=REG= CS_PS_SERVICE on HPLMN(460-0)
//获取到CS PS的服务
通过radio log察看当前手机的服务状态:
搜索关键字:VOICE_REGISTRATION_STATE
该关键字过滤出来的是CS域的服务状态
09-30 10:00:59: D/RILJ ( 1282): [3789]< VOICE_REGISTRATION_STATE {1, 423c, 000053d1, 16, null, null, null, 0, null, null, null, null, null, 0, null} [SUB1]
09-30 10:00:59: D/RILJ ( 1282): [3793]< VOICE_REGISTRATION_STATE {1, 423c, 000053d1, 16, null, null, null, 0, null, null, null, null, null, 0, null} [SUB1]
搜索关键字:DATA_REGISTRATION_STATE
该关键字过滤出来的是PS域的服务状态
09-30 10:00:59: D/RILJ ( 1282): [3788]< DATA_REGISTRATION_STATE {2, null, null, null, 0, 20, null, null, null, null, null} [SUB1]
09-30 10:00:59: D/RILJ ( 1282): [3792]< DATA_REGISTRATION_STATE {2, null, null, null, 0, 20, null, null, null, null, null} [SUB1]
下面分析下各个参数的含义:
{2, null, null, null, 0, 20, null, null, null, null, null}
第一个参数:指注册状态
* 0 - Not registered, MT is not currently searching a new operator to register
* 1 - Registered, home network
* 2 - Not registered, but MT is currently searching a new operator to register
* 3 - Registration denied
* 4 - Unknown
* 5 - Registered, roaming
* 10 - Same as 0, but indicates that emergency calls are enabled.
* 12 - Same as 2, but indicates that emergency calls are enabled.
* 13 - Same as 3, but indicates that emergency calls are enabled.
* 14 - Same as 4, but indicates that emergency calls are enabled.
第二个参数:LAC(location area code)位置区码
第三个参数:CID(Cell Identity)小区标示
第四个参数:radio tech
RADIO_TECH_UNKNOWN = 0,
RADIO_TECH_GPRS = 1,
RADIO_TECH_EDGE = 2,
RADIO_TECH_UMTS = 3,
RADIO_TECH_IS95A = 4,
RADIO_TECH_IS95B = 5,
RADIO_TECH_1xRTT = 6,
RADIO_TECH_EVDO_0 = 7,
RADIO_TECH_EVDO_A = 8,
RADIO_TECH_HSDPA = 9,
RADIO_TECH_HSUPA = 10,
RADIO_TECH_HSPA = 11,
RADIO_TECH_EVDO_B = 12,
RADIO_TECH_EHRPD = 13,
RADIO_TECH_LTE = 14,
RADIO_TECH_HSPAP = 15, // HSPA+
RADIO_TECH_GSM = 16, // Only supports voice
RADIO_TECH_TD_SCDMA = 17,
RADIO_TECH_IWLAN = 18
第五个参数:base id 基站的ID
第六个参数:base latitude 基站的纬度
第七个参数:base longitude基站的经度
其他的参数不常用就不再列出。
附件列表
您所在的用户组无法下载或查看附件
Java-Android手机千人开发交流QQ群:38088312,PHP开发千人高级交流QQ群:50194090,欢迎加入学习!本站为
非赢利站点,挖掘网络资源,分享个人兴趣,如有侵犯您的版权,请联系我们,我们会第一时间删除内容或添加转载出处,敬请谅解!
如果您认为本词条还有待完善,请 编辑



