OpenHarmony 3GPP協(xié)議開發(fā)深度剖析之搜網(wǎng)流程之PLMN選擇
??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
協(xié)議開發(fā)最大的法寶就是反復(fù)閱讀3GPP協(xié)議標(biāo)準(zhǔn),然后結(jié)合標(biāo)準(zhǔn)梳理信令流程,同時(shí)比對(duì)modem日志或者ap側(cè)日志,閱讀modem側(cè)源碼或者ap側(cè)源碼。本系列主題在操作系統(tǒng)OpenHarmony 側(cè)即ap側(cè),不涉及modem側(cè)代碼或者日志解讀,但是同樣要對(duì)3GPP協(xié)議標(biāo)準(zhǔn)弄明白。
何為搜網(wǎng)?
從消費(fèi)者角度來看,在手機(jī)設(shè)置-》移動(dòng)網(wǎng)絡(luò)設(shè)置中有一項(xiàng)網(wǎng)絡(luò)運(yùn)營商搜索選擇的功能設(shè)置,如下圖所示:
如上圖所示,可以選擇“自動(dòng)搜網(wǎng)”和“手動(dòng)搜網(wǎng)”兩種模式,通過搜索網(wǎng)絡(luò),可以把手機(jī)所在環(huán)境的網(wǎng)絡(luò)給搜索出來,然后選擇其中一個(gè)運(yùn)營商的網(wǎng)絡(luò)去進(jìn)行注冊(cè)。
搜網(wǎng),從技術(shù)原理角度看,就是UE(User Equipment的縮寫,可以簡(jiǎn)單理解為手機(jī))對(duì)所有的頻段進(jìn)行掃描,選擇合適的PLMN和小區(qū)之后進(jìn)行注冊(cè)。
搜網(wǎng)流程可以簡(jiǎn)單化為PLMN選擇-》小區(qū)選擇-》注冊(cè)網(wǎng)絡(luò),本節(jié)內(nèi)容將只講解PLMN選擇。
自動(dòng)搜網(wǎng)
UE根據(jù)事先設(shè)定好的PLMN優(yōu)先級(jí)準(zhǔn)則,自主完成PLMN的搜索和選擇,確定好了PLMN之后,會(huì)選擇該P(yáng)LMN內(nèi)信號(hào)最好的小區(qū)進(jìn)行注冊(cè)。絕大多數(shù)UE都是采用自動(dòng)搜網(wǎng)模式,手機(jī)開機(jī)之后也會(huì)進(jìn)行自動(dòng)搜網(wǎng)。
手動(dòng)搜網(wǎng)
UE對(duì)所有頻段進(jìn)行掃描,講所有滿足條件的所有PLMN以列表形式呈現(xiàn)給用戶,由用戶來進(jìn)行選擇。
MCC與MNC
MCC: Mobile Country Code,移動(dòng)國家碼,MCC的資源由國際電聯(lián)(ITU)統(tǒng)一分配和管理,唯一識(shí)別移動(dòng)用戶所屬的國家,共3位,中國為460。
MNC: Mobile Network Code,移動(dòng)網(wǎng)絡(luò)號(hào),用于識(shí)別移動(dòng)用戶所歸屬的移動(dòng)通信網(wǎng),2~3位數(shù)字組成。
中國MCC常用值如下:
IMSI
國際移動(dòng)用戶識(shí)別碼(英語:IMSI,International Mobile Subscriber Identity),是用于區(qū)分蜂窩網(wǎng)絡(luò)中不同用戶的、在所有蜂窩網(wǎng)絡(luò)中不重復(fù)的識(shí)別碼。手機(jī)將IMSI存儲(chǔ)于一個(gè)64比特的字段發(fā)送給網(wǎng)絡(luò)。IMSI一般存儲(chǔ)在SIM卡中。
IMSI由一串十進(jìn)制數(shù)字組成,最大長度為15位。實(shí)際使用的IMSI的長度絕大部分都是15位,短于15位的例子少見,例如,南非MTN有一些仍在網(wǎng)絡(luò)中使用的較舊的IMSI為14位數(shù)字。IMSI由MCC、MNC和移動(dòng)訂戶識(shí)別代碼(MSIN,Mobile subscription identification number)依次連接而成。MSIN的值由運(yùn)營商自行分配。
IMSI可以用來在歸屬位置寄存器(HLR,Home Location Register)或拜訪位置寄存器(VLR,Visitor Location Register)中查詢用戶的信息。為了避免被監(jiān)聽者識(shí)別并追蹤特定的用戶,大部分情形下手機(jī)和網(wǎng)絡(luò)之間的通信會(huì)使用隨機(jī)產(chǎn)生的臨時(shí)移動(dòng)用戶識(shí)別碼(TMSI,Temporary Mobile Subscriber Identity)代替IMSI。
PLMN簡(jiǎn)介
PLMN(Public Land Mobile Network,公共陸地移動(dòng)網(wǎng)絡(luò)),由政府批準(zhǔn)的經(jīng)營者,為公眾提供陸地移動(dòng)通信業(yè)務(wù)目的而建立和經(jīng)營的網(wǎng)絡(luò)。該網(wǎng)路必須與公眾交換電話網(wǎng)(PSTN)互連,形成整個(gè)地區(qū)或國家規(guī)模的通信網(wǎng)。PLMN = MCC + MNC,例如中國移動(dòng)的PLMN為46000,中國聯(lián)通的PLMN為46001。
PLMN分類
UE通常需要維護(hù)幾種不同類型的PLML列表,而每個(gè)列表中會(huì)有多個(gè)不同的PLMN。
- RPLMN(Registered PLMN 已登記PLMN):
已注冊(cè)PLMN。是UE在上次關(guān)機(jī)或脫網(wǎng)前注冊(cè)上的PLMN。在3GPP 2003年第TSG TP-21次會(huì)議上決定,將該參數(shù)從USIM卡上刪掉,而將其保存在UE的內(nèi)存中。
- EPLMN(Equivalent PLMN 等效PLMN):
即對(duì)等公用陸地移動(dòng)網(wǎng),是與用戶終端當(dāng)前所選擇的PLMN處于同等地位的PLMN,其優(yōu)先級(jí)相同。EPLMN主要解決共享網(wǎng)絡(luò)與原網(wǎng)絡(luò)的用戶駐留和漫游策略。運(yùn)營商可以配置對(duì)等的PLMN網(wǎng)絡(luò),這些網(wǎng)絡(luò)之間可以實(shí)現(xiàn)通信網(wǎng)絡(luò)資源共享。從業(yè)務(wù)的角度,它使得不同運(yùn)營商的網(wǎng)絡(luò)資源之間,或者同一運(yùn)營商定義的不同PLMN之間可以實(shí)現(xiàn)通信網(wǎng)絡(luò)資源共享。
運(yùn)營商在網(wǎng)絡(luò)側(cè)(MSCS中)配置EPLMN列表,在EPLMN列表中配置不同PLMN間的對(duì)等關(guān)系,使這些PLMN處于一個(gè)平等的網(wǎng)絡(luò)中,這樣,其歸屬的簽約用戶就可以在不同的EPLMN之間進(jìn)行駐留。一個(gè)EPLMN列表最多可配置5個(gè)EPLMN(3GPP R5及其以前的階段)或者15個(gè)EPLMN(3GPP R6及其以后的階段)。
有了EPLMN列表之后,MSCS將相關(guān)的EPLMN數(shù)據(jù)通過Location Updating Accept(位置更新接受)消息下發(fā)給移動(dòng)用戶,移動(dòng)用戶將MSCS下發(fā)的EPLMN列表加上當(dāng)前網(wǎng)絡(luò)的網(wǎng)絡(luò)號(hào)保存在SIM卡中,直到下次位置更新成功后刷新該列表。
EPLMN的作用是在跨PLMN漫游時(shí),UE優(yōu)先選擇簽約注冊(cè)網(wǎng)絡(luò)推薦的PLMN,保護(hù)本運(yùn)營商的利益。EPLMN功能使得UE在選擇PLMN時(shí)可以將不同的PLMN代碼認(rèn)為是彼此地位相等的,在位置更新(Location Update)、路由區(qū)更新(Routing Area Update)、跟蹤區(qū)更新(Tracking Area Update)、GPRS(General Packet Radio Service,通用無線分組業(yè)務(wù))附著(GPRS Attach)、LTE附著(LTE Attach)過程中,網(wǎng)絡(luò)側(cè)向UE發(fā)送EPLMN列表,UE會(huì)將此EPLMN列表和發(fā)送此列表的PLMN共同存儲(chǔ)在UE的“Equivalent PLMNs”表中。
比如在邊境地區(qū)網(wǎng)絡(luò)若配置了EPLMN,具體為本國/地區(qū)的運(yùn)營商將鄰近國家/地區(qū)運(yùn)營商網(wǎng)絡(luò)的PLMN標(biāo)識(shí)配置成本國/地區(qū)網(wǎng)絡(luò)的EPLMN,在該區(qū)域的UE可在空閑態(tài)從本國/地區(qū)網(wǎng)絡(luò)進(jìn)行小區(qū)重選到鄰近國家/地區(qū)網(wǎng)絡(luò),在連接態(tài)從本國/地區(qū)網(wǎng)絡(luò)進(jìn)行切換或重定向到鄰近國家/地區(qū)網(wǎng)絡(luò),不需要等到脫網(wǎng)后再通過網(wǎng)絡(luò)搜索和網(wǎng)絡(luò)選擇進(jìn)行登記,較大的節(jié)省了漫游注冊(cè)的時(shí)延。
- EHPLMN(Equivalent Home PLMN 等效歸屬PLMN):
USIM卡中引入EHPLMN文件,能夠配合終端徹底解決一網(wǎng)雙號(hào)甚至一網(wǎng)多號(hào)帶來的“終端周期搜網(wǎng) 、出現(xiàn)漫游標(biāo)識(shí)、耗電較快”等問題。其實(shí):EHPLMN和EPLMN就好比是中移動(dòng)的新建的158網(wǎng)絡(luò),而PLMN就好比是原來的135~139網(wǎng)絡(luò)。這是中移為解決一網(wǎng)多號(hào)問題而引入的概念,可以參考《對(duì)等網(wǎng)絡(luò)(EHPLMN)技術(shù)標(biāo)準(zhǔn)》。移動(dòng)用戶激增,移動(dòng)運(yùn)營商需要啟用新網(wǎng)號(hào)(MNC)與新號(hào)段MSISDN映射;運(yùn)營商重組并購也會(huì)導(dǎo)致一個(gè)運(yùn)營商擁有多個(gè)網(wǎng)號(hào)。但是網(wǎng)絡(luò)只能廣播一個(gè)網(wǎng)號(hào),這就導(dǎo)致網(wǎng)絡(luò)側(cè)廣播網(wǎng)號(hào)和終端側(cè)多個(gè)網(wǎng)號(hào)不能匹配,終端無法找到歸屬網(wǎng)絡(luò)(HPLMN)。例如,目前中移新增號(hào)段為158的PLMN為(MCC:460,MNC:02),而以前的135~139號(hào)段的PLMN為(MCC:460,MNC:00)。終端在進(jìn)行PLMN選擇時(shí),除了映射IMSI中的MCC+MNC外,還要進(jìn)行EHPLMN中MCC+MNC與網(wǎng)絡(luò)側(cè)進(jìn)行映射,直到有一個(gè)成功或均失敗。
- HPLMN(Home PLMN 歸屬PLMN):為終端用戶歸屬的PLMN。
也就是UE用戶開戶的PLMN,存儲(chǔ)在用戶USIM卡中,即USIM卡上的IMSI號(hào)中包含的MCC和MNC,對(duì)于某一用戶來說,其歸屬的PLMN只有一個(gè)。
- UPLMN(User Controlled PLMN ,用戶控制PLMN):
是終端在用戶手動(dòng)選網(wǎng)時(shí)選擇的PLMN,USIM卡會(huì)存儲(chǔ)下來。
- OPLMN(Operator Controlled PLMN 運(yùn)營商控制PLMN):
運(yùn)營商燒卡時(shí)將與該運(yùn)營商簽署了漫游協(xié)議的運(yùn)營商PLMN作為OPLMN寫入U(xiǎn)SIM卡,作為后面用戶選網(wǎng)的建議。
- VPLMN(Visited PLMN 訪問PLMN):
即拜訪PLMN。其PLMN和存在SIM卡中的IMSI的MCC,MNC是不完全相同的。UE在內(nèi)部會(huì)維護(hù)一個(gè)VPLMN列表,存儲(chǔ)拜訪地網(wǎng)絡(luò)下發(fā)的PLMN標(biāo)識(shí)信息。當(dāng)UE切換或者漫游的時(shí)候,需要登記到拜訪PLMN。VPLMN的MCC與HPLMN的MCC相同,而MNC不同,這時(shí)UE可以根據(jù)這種狀況通過周期性搜網(wǎng)的方式回到歸屬網(wǎng)絡(luò)。
- APLMN(approve PLMN可捕獲PLMN):
為UE能在其上找到至少一個(gè)小區(qū),并能讀出其PLMN標(biāo)識(shí)信息的PLMN。
- FPLMN(Forbidden PLMN禁用PLMN):
為被禁止訪問的PLMN,通常UE在嘗試接入某個(gè)PLMN被拒絕以后,會(huì)將其加到本列表中。
PLMN選擇優(yōu)先級(jí)
不同類型的PLMN其優(yōu)先級(jí)別不同,終端在進(jìn)行PLMN選擇時(shí)將按照以下順序依次進(jìn)行:
(1) RPLMN/EPLMN。
(2) EHPLMN。
(3) HPLMN。
(4) UPLMN。
(6) OPLMN。
(7) 其他PLMN。
想要梳理清楚PLMN的選擇流程,就需要閱讀3GPP協(xié)議文檔了。
在3GPP 23122中對(duì)開機(jī)或者小區(qū)重選時(shí)的PLMN選擇做出了如下說明,
即最先選擇RPLMN或者它的等效PLMN即EPLMN(如果可用的情況下)。
RPLMN或?qū)Φ萈LMN選擇失敗后按照如下順序選擇:
上述順序翻譯過來就是:
- HPLMN(如果EHPLMN列表不存在或?yàn)榭?或最高優(yōu)先級(jí)的EHPLMN(如果EHPLMN列表存在)。
- 在USIM/SIM卡數(shù)據(jù)中按照UPLMN優(yōu)先級(jí)順序選擇;(User Controlled PLMN Selector with Access Technology)。
- 在USIM/SIM卡數(shù)據(jù)中按照OPLMN優(yōu)先級(jí)順序選擇;(Operator Controlled PLMN Selector with Access Technology)。
- 以隨機(jī)順序接收高質(zhì)量信號(hào)的其他PLMN/接入技術(shù)組合。
- 當(dāng)信號(hào)強(qiáng)度不夠時(shí),根據(jù)接收信號(hào)強(qiáng)度遞減排序選擇其他所有PLMN。
- 符合災(zāi)難條件下的FPLMN。
OpenHarmony中相關(guān)源碼
OpenHarmony對(duì)應(yīng)搜網(wǎng)的相關(guān)核心代碼在 telephony_core_service/ services / network_search下。
而關(guān)于PLMN選擇的核心代碼在network_search_manager.cpp 文件中。
??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??