在每個人的手機上,必然都顯示著運營商的名稱,用誰的SIM卡給誰交錢,就顯示誰的名稱,國內一般就是移動,電信和聯通這三家。
如果漫遊到海外的話,一般顯示國外運營商的名稱。
那麼問題來了,手機又怎麼區分各個運營商的網路呢?這些網路的名稱,又是怎樣顯示到手機上的呢?
這一切都要從PLMN說起。
1. 什麼是PLMN?PLMN的全稱是Public Land Mobile Network,也就是公共陸地行動網路,說人話就是由基站,核心網等裝置組成的,能讓手機打電話,上網的網路。
我們經常說的2G,3G,4G,5G等,都屬於公共陸地行動網路,並使用PLMN編號來標識這個網路到底屬於哪個國家,哪個運營商。
PLMN ID由移動國家碼(MCC,Mobile Country Code)和行動網路碼(MNC,Mobile Network Code)這兩部分組成。
一組MCC+MNC就唯一標識了一張網路。移動國家碼由三位數字組成,中國的移動國家碼是460;行動網路碼為兩位數字,從00開始,不同運營商可能擁有多個網路碼。
舉例來說,中國移動的行動網路碼有00和02,中國聯通是01,中國電信是03。如果我們看到46001這五位數字,就知道這表示中國聯通的網路了。
下圖是中國各大運營商的行動網路碼。
手機要識別哪家的網路,最關鍵的就是識別PLMN。因此要提供服務,每個小區都必須不斷地廣播PLMN號,讓手機接入正確的無線網路,再連線到對應的核心網和提供服務。
想象一下,如果聯通使用者試圖接入電信的網路,如果沒有漫遊的話,唯一的結果就是鑑權不透過,被判定為非法使用者,拒絕接入。
手機根據自身的情況,又把PLMN分成了下面的幾類。
HPLMN:歸屬PLMN。為終端使用者歸屬的PLMN。也就是說,手機SIM卡上的IMSI號中包含的MCC和MNC與HPLMN上的MCC和MNC是一致的。
對於某一使用者來說,其歸屬的PLMN只有一個。
EPLMN:等效PLMN。為與手機當前所選擇的PLMN處於同等地位的PLMN。
比如,移動有多個行動網路碼,也就是多個PLMN ID,但這些都是由移動提供服務的,因此它們是等效PLMN。
VPLMN:訪問PLMN。為使用者訪問的PLMN。其PLMN和存在SIM卡中的IMSI的MCC,MNC是不完全相同的。
比如,使用者漫遊到了其他國家,手機接入了國外的運營商,這個運營商的PLMN就叫做訪問VPLMN。
3. 運營商名稱怎樣顯示?PLMN ID是一串數字,雖然能標識運營商,但對使用者來說卻不太友好。假設手機上顯示的是46001,恐怕沒幾個人知道是什麼意思。
因此,手機上顯示的都是中國移動,中國聯通,中國電信這樣的運營商的名稱,不但簡單明瞭,也是品牌宣傳的手段:看我大移動,訊號剛剛的!
但是,有時候運營商的名稱,和實際網路提供商的名稱並不一致。
這種情況常見於虛擬運營商,它們通常只有核心網,接入網和承載網都是租用移動,聯通,電信等三大運營商的。
或者,中國廣電和中國移動共建共享,廣電一開始並沒有網路,透過漫遊的方式來共享移動的2G和4G,這就出現了提供服務的運營商是廣電,但網路卻是移動的問題。
由於移動的網路,當然只廣播移動的PLMN,廣電使用者接入之後,手機上到底該怎麼顯示?
這就有必要引入另外一個概念:SPN。它的全稱是Service Provider Name,也就是服務提供商名稱。
而PLMN標識的網路,則叫做PNN。它的全稱是PLMN Network Name,也就是PLMN網路名稱。
對於傳統的運營商來說,網路是他們自己的,服務也是自己提供的,因此SPN和PNN是相同的。
一般來說,SPN,PNN這些資訊都儲存在手機的SIM卡中,根據接入網路的PLMN及一些規則來決定手機上的運營商名稱顯示。
此外,手機在入網時,核心網也可能給手機下發網路的名稱,但優先順序比SIM卡中存放的SPN和PNN要低。
預設規則是:手機在接入HPLMN時,顯示SPN;在接入VPLMN時,顯示PNN。
但SIM卡內的一個檔案中,有兩個位元可以對上述的顯示規則進行修正:
位元1:當手機接入的PLMN是HPLMN時,若該位元取值為0,則不需要顯示PNN;若該位元取值為1,則還需要顯示PNN。
位元2:當手機接入的PLMN是VPLMN時,若該位元取值為0,則還需要顯示SPN;若該位元取值為1,則不需要顯示SPN。
不管是實體運營商,還是虛擬運營商,或者在國內,國際漫遊場景下,都可以透過上述的規則,顯示正確的運營商名稱。