更多内容请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com协议发展的最大法宝就是反复阅读3GPP协议标准,然后结合标准梳理信令流程,同时对比modem日志或者ap端日志,阅读调制解调器端源代码或AP端源代码。本系列的话题都是在操作系统OpenHarmony即ap端,不涉及modem端的代码或日志解读,但也需要了解3GPP协议标准。什么是搜网?从消费者的角度来看,在手机设置->移动网络设置中有一个网络运营商搜索和选择的功能设置,如下图:如上图,可以选择“自动搜索网络”和“手动网络搜索”两种模式,通过搜索网络,可以搜索出手机所在环境的网络,然后选择其中一个运营商的网络进行注册。搜网,从技术原理上来说,就是UE(UserEquipment的缩写,可以简单理解为手机)扫描所有频段,选择合适的PLMN和小区,然后注册。寻网过程可以简化为PLMN选择-“小区选择-”注册网络,本节仅对PLMN选择进行说明。自动搜网UE根据预先设定的PLMN优先级标准,自主完成PLMN的搜索和选择。PLMN确定后,会选择PLMN中信号最好的小区进行注册。绝大多数UE使用的是自动搜网模式,手机开机后也会自动搜网。手动搜网UE扫描所有频段,将所有符合条件的PLMN以列表的形式呈现给用户,用户可以进行选择。MCC和MNCMCC:MobileCountryCode,移动国家代码,MCC资源由国际电信联盟(ITU)统一分配和管理,唯一标识一个移动用户所属的国家,共3位,中国460位。MNC:MobileNetworkCode,移动网络号,用于标识移动用户所属的移动通信网络,由2到3位数字组成。MCC在国内常用的取值如下:IMSI国际移动用户识别码(IMSI,InternationalMobileSubscriberIdentity)是蜂窝网络中用来区分不同用户的识别码,在所有蜂窝网络中都不重复。手机将IMSI存储在64位字段中并将其发送到网络。IMSI通常存储在SIM卡中。IMSI由一串十进制数字组成,最大长度为15位。实际使用的IMSI长度大多为15位,也很少有短于15位的例子。例如,南非的MTN有一些较旧的IMSI,这些14位数字仍在网络中使用。IMSI由MCC、MNC和移动用户标识号(MSIN,Mobilesubscriptionidentificationnumber)依次连接而成。MSIN的值由运营商自行分配。IMSI可用于查询归属位置寄存器(HLR,HomeLocationRegister)或访客位置寄存器(VLR,VisitorLocationRegister)中的用户信息。为了避免被窃听者识别和跟踪,在大多数情况下,手机与网络之间的通信会使用随机生成的临时移动用户身份(TMSI,TemporaryMobileSubscriberIdentity)来代替IMSI。PLMN简介PLMN(PublicLandMobileNetwork)是由政府批准的运营商建立并运营的向公众提供陆地移动通信服务的网络。该网络必须与公共交换电话网(PSTN)互连,形成覆盖整个地区或国家的通信网络。PLMN=MCC+MNC,比如移动的PLMN是46000,联通的PLMN是46001。.RPLMN(RegisteredPLMN注册PLMN):注册PLMN。UE在上次关机或下线前注册的PLMN。2003年3GPP的TSGTP-21会议决定将USIM卡中的该参数删除,保存在UE的内存中。EPLMN(EquivalentPLMNequivalentPLMN):对等公共陆地移动网络,是与用户终端当前选择的PLMN具有相同地位的PLMN,其优先级相同。EPLMN主要解决共享网络和原网络的用户驻留和漫游策略。运营商可以配置点对点的PLMN网络,这些网络可以共享通信网络资源。从业务的角度来看,它实现了不同运营商网络资源之间或者同一运营商定义的不同PLMN之间的通信网络资源共享。运营商在网络侧(MSCS中)配置EPLMN列表,配置EPLMN列表中不同PLMN之间的点对点关系,使这些PLMN处于一个平等的网络中。留在两者之间。一个EPLMN列表最多可以配置5个EPLMN(3GPPR5及之前)或15个EPLMN(3GPPR6及以后)。MSCS获得EPLMN列表后,通过位置更新接受(LocationUpdatingAccept)消息向移动用户发送相关EPLMN数据,移动用户将MSCS下发的EPLMN列表和当前网络的网络号保存在SIM卡。刷新列表,直到下一次成功的位置更新。EPLMN的作用是UE跨PLMN漫游时,优先选择签约注册网络推荐的PLMN,保护运营商的利益。EPLMN功能使UE在选择PLMN时可以认为不同的PLMN编码是等同的,UE可以进行LocationUpdate、RoutingAreaUpdate、TrackingAreaUpdate、GPRS(GeneralPacketRadioService(GPRSAttach)和LTEAttach(LTEAttach)过程,网络侧向UE发送EPLMN列表,UE会将EPLMN列表和发送该列表的PLMN保存在UE的“EquivalentPLMNs”表中。例如,如果配置了一个EPLMN在边境地区的网络中,该国家/地区的运营商将邻国/地区运营商网络的PLMN标识配置为该国家/地区网络的EPLMN,该地区网络向邻国/地区进行小区重选国家/地区网络,并在连接状态下从本国/地区网络切换或重定向到邻国/地区网络。大大节省了漫游注册的时间延迟。EHPLMN(EquivalentHomePLMNEquivalentPLMN):USIM卡引入EHPLMN文件,配合终端,彻底解决一网双号甚至一网多号带来的“终端搜网、漫游标志、耗电快”数字。等问题。其实:EHPLMN和EPLMN就像中国移动新建的158网络,PLMN就像原来的135-139网络。这是中国移动为了解决一网多号问题而推出的概念,大家可以参考《对等网络(EHPLMN)技术标准》。随着移动用户的激增,移动运营商需要实现新网号(MNC)与新号段MSISDN的映射;运营商重组和合并也将导致一个运营商拥有多个网络号码。但是网络只能广播一个网络号,导致网络侧广播的网络号与终端侧的多个网络号不匹配,终端无法找到归属网络(HPLMN)。例如,中国移动新增加号码段158的PLMN为(MCC:460,MNC:02),而135~139段之前的PLMN为(MCC:460,MNC:00)。终端在进行PLMN选择时,除了映射IMSI中的MCC+MNC外,还需要进行EHPLMN中的MCC+MNC与网络侧的映射,直到其中一个成功或都失败。HPLMN(HomePLMN):终端用户的归属PLMN。即UE用户开户的PLMN存储在用户的USIM卡中,即USIM卡上的IMSI号码中包含的MCC和MNC。对于某个用户,其所属的PLMN只有一个。UPLMN(UserControlledPLMN,用户控制的PLMN):是用户手动选网时终端选择的PLMN,USIM卡会存储。OPLMN(OperatorControlledPLMNOperatorControlledPLMN):当运营商烧卡时,会将与运营商签订漫游协议的运营商PLMN写入USIM卡中作为OPLMN,作为用户选择网络的建议之后。VPLMN(VisitedPLMNvisitsPLMN):访问PLMN。它的PLMN与SIM卡中存储的IMSI的MCC和MNC并不完全相同。UE内部维护一个VPLMN列表,用于存放拜访网络下发的PLMN标识信息。UE在切换或漫游时,需要向拜访的PLMN注册。VPLMN的MCC与HPLMN的MCC相同,但MNC不同。此时,UE可以根据这种情况周期性搜索网络,返回归属网络。APLMN(approvePLMNcancapturePLMN):UE在其上至少可以找到一个小区并读取其PLMN标识信息的PLMN。FPLMN(ForbiddenPLMN):禁止接入的PLMN。通常,UE在尝试接入某个PLMN被拒绝后,会将其添加到该列表中。PLMN选择优先级不同类型的PLMN有不同的优先级,终端会按如下顺序选择PLMN:(1)RPLMN/EPLMN。(2)EHPLMN。(3)高性能飞行网络。(4)上调。(6)OPLMN。(7)其他公共陆地移动网络。如果要梳理PLMN选择过程,需要阅读3GPP协议文档。在3GPP23122中,上电或小区重选时的PLMN选择是这样描述的,即首先选择RPLMN或其等价的PLMN,即EPLMN(ifavailable)。RPLMN或对端PLMN选择按以下顺序失败:上述顺序的翻译是:HPLMN(如果EHPLMN列表不存在或为空)或最高优先级EHPLMN(如果EHPLMN列表存在)。在USIM/SIM卡数据中,按照UPLMN的优先顺序进行选择;(具有接入技术的用户控制的PLMN选择器)。根据USIM/SIM卡数据中的OPLMN优先顺序选择;(具有接入技术的运营商控制的PLMN选择器)。以随机顺序接收高质量信号的其他PLMN/接入技术组合。当信号强度不够时,按照接收信号强度从大到小的顺序选择所有其他PLMN。在灾难条件下符合FPLMN。OpenHarmony中相关源码搜网对应的OpenHarmony相关核心代码在telephony_core_service/services/network_search下。PLMN选择的核心代码在network_search_manager.cpp文件中。更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com
