投稿日

デバイスはどうやって通信キャリアを選択するの? 〜PLMN Selectionを読み解く

こんにちは。ソリューションアーキテクト の dai です。

SORACOM IoT SIMのサブスクリプションの1つ「planX1」 が、2022年7月に NTT ドコモ 回線にも追加で対応したことに伴い、お客様より 1 枚で複数のキャリアにつながる「マルチキャリア対応の SIM」について多く問い合わせをいただいております。

特にいただくのが「現在接続しているキャリアへの通信が上手くいかなくなった際に、通信キャリアを切り替えられないか?」というものです。その手段は「マルチキャリアに対応する SIM のキャリア切り替えの実装例」でご紹介しており、参考になったというお声をいただいています。

また、通信に対するご興味が高まっている事もあり、以下のようなお問い合わせもいただいております。

  • 複数のキャリアから、一番電波の強いキャリアを選ぶことはできないの?
  • 電波が弱い等の理由から、特定のキャリアへの接続を止めたい!
  • 久しぶりに電源を入れたら、ネットワーク接続までに数分かかるのはナゼ?

そこでこのブログでは、LTEや5Gといった通信仕様の検討・作成を行う標準化プロジェクトである「3GPP」が公開している技術ドキュメント “3GPP TS 23.122” を読み解きながら「デバイスがどのような手続きでネットワークに接続するか」について理解を深めて、上述の疑問への回答をご紹介します。

この記事は技術解説に始まり、後半で具体的な切り替えの挙動を紹介しています。そのため先に結論を知りたい方は、本ブログ後半の「FAQ」の項目をご覧ください。

3GPP TS 23.122 とは?

先ほど紹介したご質問には「通信条件の良い状態を得たい」といった共通点があります。しかし、電波は環境の影響を受けて絶えず状況が変化しており、例えば雨などの湿度によって、あるいは基地局との間の遮蔽物(人や電波を通しにくい素材) によって強度が変わったりします。

利用する通信キャリアの選択は、デバイス(例えばスマートフォン)内で行われます。実はこの選択については、遵守すべき仕様として標準化されたドキュメントがあります。それが「3GPP TS 23.122 “Non-Access-Stratum (NAS) functions related to Mobile Station (MS) in idle mode”」です。

このドキュメントには「まだどこのキャリアへも接続されていない状態のデバイスが保持すべき、プロトコル・スタックの機能」の仕様が規定されています。

PLMN とは?

3GPP TS 23.122の読み解きにあたって、1つ覚えておきたい単語が「PLMN (Public Land Mobile Network)」です。この定義は 3GPP TS 22.011 “Service accessibility”  にあります。

PLMN の定義は、他の専門用語や技術知識が求められることから、少々わかりづらい面があることは否めません。そこで、まず最初の理解として「PLMN=通信キャリアが提供するモバイルネットワークの識別番号」という理解から進めれば、このブログでの解説はお読みいただけると思います。

PLMNは、たとえば通信キャリア会社や利用周波数帯、そして国・地域で番号が異なります。そのため1つの国に複数の PLMN が存在していることがほとんどです。

日本の PLMN の取り決め

PLMN は世界的に決められている番号です。日本の PLMN はどのように定義されているのでしょうか。総務省のサイトに掲載されている「IMSI ( International Mobile Subscriber Identity)」という番号の説明の中に、PLMN について説明されていたので引用します。

https://www.soumu.go.jp/main_content/000592370.pdf

IMSI の番号体系は、電気通信の標準化団体「ITU-T」の “勧告 E.212” で定義されています。内訳はMCC(国コード)+MNC(事業者コード)+MSIN(加入者コード) の3つの要素です。この資料の注意書きを見ると「MMC+MNCを組み合わせた5〜6桁の番号が PLMN-ID (PLMN の ID番号)」となっています。

PLMN-ID の割り当て状況は、総務省の「電気通信番号指定状況: IMSI」でご覧いただけます。日本の MCCは 440 と 441 であるため、最初の三桁はこの番号で始まるようになっているわけです。

ソラコムの PLMN-ID

ソラコムも 441200 というPLMN-IDを割り当てていただいています。この番号は こちらのユーザーサイト へ記載がありますが、plan-K2 K2-300MBplanX2 で使っている PLMN-ID です。

PLMN Selection とは?

PLMN Selectionとは、 “SIM を搭載するデバイスが、複数の PLMN の中から接続する PLMN を選択するフロー” のことです。

PLMN Selection には Auto モードと Manual モードがあります。この記事では一般的に使われる Auto モードについて解説します。

ここまで読み進めてこられた方には少し想像がついておられるかもしれませんが、SIM がマルチキャリアに対応しているということは、複数の通信キャリア、すなわち複数の PLMN に対応している SIM であることを表します。

「複数の PLMN に対応している SIM であること」と、ソラコムが提供している  “サブスクリプションコンテナ” とは異なります。サブスクリプションコンテナについては後述します。

実は SIM およびデバイスでは、用途に応じて様々な種類の PLMN の一覧を保持しています。 3GPP TS 23.122 の「4.4.3 PLMN selection 」で記載のある PLMN について一気に紹介します。

名称full name意味
RPLMNRegistered PLMN登録された PLMN、すなわち一度でも接続が成功したことのある PLMN を1つだけ保持します。
EPLMNEquivalent PLMNRPLMN と同等に扱うことのできる PLMN。RPLMNと同等のサービスを受けられるPLMNが含まれます。接続時にキャリアから配布されます。
HPLMNHome PLMN自身の PLMN。SIM カードを発行した事業者で IMSI から識別が可能です。
EHPLMNEquivalent HPLMNHPLMN と同等に扱うことのできる PLMN。SIM へ記載されています。
UPLMNUser controlled PLMNユーザー自身で設定可能な 優先PLMNリスト。モジュールによってはATコマンドで編集が可能です。優先順に複数設定される場合もあります。
OPLMNOperator controlled PLMNキャリア側で設定可能な 優先PLMNリスト。OTA で設定可能で SIM で保持されます。優先順に複数設定される場合もあります。
Other PLMNOther PLMN電波品質などで決定されるそれ以外の PLMN。
FPLMNForbidden PLMNキャリアから接続を拒否された(or 接続資格がない) PLMN。SIMに保持され、モジュールによってはATコマンドで編集が可能です。
VPLMNVisited PLMNHPLMN または EHPLMN のどちらにも含まれない PLMN。ローミング時などに使われます。
PLMN Selection で使われる PLMN の一覧

デバイスや通信キャリアは、これらの PLMN のリストを予め準備しており、それを使ってどのキャリアへ接続するかを決めているのですね。リストは、記載順に優先されますが、デバイスによってサポートされていない PLMN の場合(例えば、通信モジュールが 4G をサポートしていない等)には、リストは無視されます。

PLMN Selection の概要

それでは以下に PLMN Selection の概要を示します。基本的に左から順に優先度が高くなっています。また、 Equivalent PLMN と Equivalent HPLMN は、それぞれ同等と位置づけられている Registered PLMN と Home PLMN に並列で配置されている点もポイントです。

こちらはあくまで説明のために簡略化した概要図です。3GPP TS 23.122 Figure 2a へは状態遷移図でより細かく記載されていますので、詳細が知りたい方はそちらを参照ください。

デバイスは、電源が入った時、またはキャリアのカバレッジを失った時に、以下のステップで PLMN Selection を行います。ただし、選択された PLMN が Forbidden PLMN に含まれる場合や選択された PLMN への接続ができなかった場合には、次へスキップします。

  • ステップ1: 基地局から報知情報を受信
  • ステップ2: RPLMN もしくは EPLMN を照合
  • ステップ3: EHPLMN or HPLMN と照合
  • ステップ4: UPLMN と照合
  • ステップ5: OPLMN と照合
  • ステップ6: Other PLMN を照合

まず初めに、デバイスは自身の置かれているエリアの基地局から発信されている「報知情報」を受信します(ステップ1)。この報知情報には PLMN が入っています。次に、ステップ2〜6 のリストと報知情報とを照合し、最終的に接続する PLMN を決定します。ここでは、特にポイントとなる ステップ2 と ステップ3 について以下に詳述します。

素早くネットワーク接続するための仕組み(ステップ2)

PLMN Selection は時間のかかる処理です。その理由は照合リストの多さにあります。

さきほどの総務省のリストを見ると多数のキャリアが登録されていることがわかりますが、それはステップ1の報知情報として、それだけ多くの電波が飛んでいる可能性があることを表しています。その中から各 PLMN を識別し、自身の PLMN と照合して、接続を試し・・・というのを毎回カバレッジを失うたびに行うのは大変なため、素早くネットワークに接続するため「キャッシュ」の様な仕組みとしてRegistered PLMN(RPLMN) と Equivalent PLMN(EPLMN) があります。

RPLMN は先に記載したとおり、一度でも接続が成功した PLMN を記憶しておく領域です。また、接続が成功すると、キャリアからは RPLMN と同等に扱うことのできる EPLMN が配布されます。これらのリストは、真っ先に ステップ2 でチェックの対象とされ、ステップ1の報知情報と照合できたら以後の手順をスキップすることができます。

ただ、この仕組みは、予想と異なる動作となる場合があります。

例えば、複数のキャリアに接続可能なSIMを使っている場合、環境の変化によって電波環境が弱まったら「最も電波の強いキャリアに接続して欲しい」と考えがちですがそうはなりません。RPLMN や EPLMN がすでに登録されていると、真っ先にそちらのキャリアへ接続しに行くため、そのような期待動作とはならないのです。そこからさらに電波環境が悪化し、 RPLMN や EPLMN への接続も失敗してしまった場合にはようやく、 ステップ3 以降の手順が行われて別のキャリアに接続される可能性が出てきます。

この仕様は、要するに電波環境は様々な要因によって変わる可能性があるため、より接続できる可能性の高い(接続に成功したことのある)RPLMN や EPLMN へ初めに接続するよう規定しているのです。

ずっと圏内ならずっと同じキャリアになる?
この規定は一見うまくいきそうですが、日本のように1つのキャリアで国土の殆どをカバーしている場合には、圏外になることは少なく、ずっと同じキャリアに居続けてしまう可能性もあります。例えば、RPLMN / EPLMN が空の状態で意図していないキャリア(ローミングだと高額になるキャリア等)に運悪く最初に接続できてしまった場合、そのキャリアの圏外へ移動できない限り、以後の接続もすべてそちらに接続してしまうリスクがあります。
3GPP TS 23.122 ではこれを回避するため、RPLMN / EPLMN があったとしても「 EHPLMN / HPLMN が接続可能ならそちらを優先してもよい」といった例外の振る舞いも、キャリアオプションとして提供できると規定されています。 

ホームと 協業 とローミング(ステップ3)

ステップ2 で PLMN が決まらなければ、ステップ3 に進みます。

ここでは、Equivalent HPLMN(EHPLMN) と Home PLMN(HPLMN) との照合を行います。HPLMN は その名の通り SIM のホームとなる PLMN 事業者、すなわち SIM 発行事業者の PLMN が1つだけ記載されています。一方で、EHPLMN は少し特殊な PLMN リストで、HPLMN と同等に扱える PLMN が記載されています。

キャリアによっては自社の基地局の整備が進んでいないエリアにおいて、他社の設備を借りてカバレッジを確保する場合があります。そのような場合にも EHPLMN が使われ、協業しているキャリアの PLMN が EHPLMN として登録されることもあります。

そしてもう1つ、PLMN Selection の概要 の図には、Visited PLMN(VPLMN) が登場していません。この VPLMNは、ローミング先の PLMN を表します。IMSI から取得した HPLMN が キャリアから配布された EHPLMN へ含まれていない場合、デバイスはローミング先のエリアに滞在していることを認識します。

そして、デバイスの設定で “ローミングが無効” となっている場合は、VPLMN での接続を行いません。デバイスでの「ローミングの有効化/無効化」という設定は、この挙動を制御するスイッチなんですね。

3GPP TS 23.122 ではローミング先での PLMN Selection について規定もありますが、このブログの範疇を超えるため割愛しています。

それ以降のステップ

ステップ4の User Controlled PLMN (UPLMN) は、利用者が個別に特定の PLMN へ優先してつなぎたい場合などに使われます。

ステップ5の Operator Controlled PLMN(OPLMN) は、国際ローミング時の接続先指定といった「キャリアが制御する PLMN へ繋がせたい場合」に使われます。

ステップ6の Other PLMN は、どの PLMNリストへも該当しない場合に最終的に使われます。

デバイス自身が保持する PLMN リストとの照合と選択、そして選択した PLMN への接続試験を繰り返す事で、接続先ネットワークを決めていくのが PLMN Selectionです。

ソラコムのサブスクリプションコンテナとは?

ここまでは planX1 のような単一の物理形状で複数の PLMN に接続可能なSIM、すなわち マルチキャリア対応SIMについてのお話でした。ソラコムではこれとは別に、サブスクリプションコンテナ もご提供しています。

さて、このサブスクリプションコンテナと、これまでご説明してきたマルチキャリア対応のSIM との違いは何でしょうか。上記サイトでは、plan01s や planX1 等が記載されていますが、この一つ一つがそれぞれマルチキャリア対応SIM にあたります。そして、サブスクリプションコンテナとは、複数のマルチキャリア対応SIMをサブスクリプションとして単一の SIM へ実装する仕組みのこととなります。

FAQ

それではこれまで読み解いてきた PLMN Selection の仕組みを元に、冒頭のお問い合わせに対する回答をしたいと思います。

Q. 複数のキャリアから単純に一番電波の強いものを選ぶことはできないの?

電波の強弱といった “PLMN以外の要素” でキャリアを選ぶ機会は、一度もネットワークに接続されていない( EPLMN / RPLMN の登録がない)場合に限ります。ただその際も、IMSI の事業者やそれと同等の事業者( HPLMN / EHPLMN )が優先されます。さらには、ユーザー定義やオペレーター定義の PLMN も持っていない条件で初めて、電波の強い方を選ぶことが可能です。

また、これは単一のマルチキャリア対応 SIM における振る舞いで、サブスクリプションコンテナの場合にはサブスクリプションを選ぶための仕組みも存在します。詳しくはこちらのサイトをご覧ください。

Q. 特定のキャリア(電波が弱い等)への接続を止めたい!

一見すると Forbidden PLMN (FPLMN) リストへ登録することで実現できそうですが、これまで見てきたとおり PLMN Selection では PLMN の選択に様々な手順があり、FPLMN を頻繁に参照します。また、3GPP TS 23.122 では、ネットワークへの接続時間を短縮するために FPLMN を活用する振る舞いも規定されています。そのため、容易に FPLMN リストを操作することは、著しく相互接続性を損なう可能性があります。

ただ、ユースケースによっては有効な場合もございますので、一度サポートサイトへお尋ねください。

Q. 久しぶりに電源を入れたら繋がるまでに数分かかるんですけど・・・

素早くネットワーク接続するための仕組み(ステップ2)に記載したとおり、RPLMN が保持されているとネットワーク接続を早めることが可能です。しかし、RPLMN へは、最後に接続していた周波数やセル情報、テンポラリなIDなど、PLMN 以外にも接続に必要な情報も含まれおり、長時間放置されているとこれらの情報が無効になっているケースがあります。そのため、RPLMN が保持されていたとしても、そこから一定時間が経過している場合には接続に失敗してしまい、PLMN Selection が再度行われて結果的に接続に時間がかかるケースがあります。

3GPP TS 23.122 の他にどんな仕様があるの?
まず3GPP TS 23.122 について、TS: Technical Specification は “技術仕様” を示しており、23 は カテゴリ名、122 は仕様書番号を示しています。そしてそれ以外にも実に様々な仕様が規定されており、すべての仕様書は過去のバージョンも含めて こちらのサイト よりダウンロードできます。なお、この blog は 執筆時点での最新版である V18.0.0 (2022-09) を元に書かれています。

標準化された仕様を守らないとどうなるの?
標準を逸脱した振る舞いをする製品は、「3GPP準拠」と謳えなくなったり、相互接続性が担保できなくなったりするため、お客様に選んで頂けなかったり、ネットワークへの接続を断られたりするリスクがあります。

まとめ

最後まで読んでいただきありがとうございました!少し難解な内容で長くなってしまいましたが、3GPP のルールやデバイスの挙動の理解に少しでもお役に立てればうれしいです!

その他、3GPP TS 23.122 では マニュアルモードでの PLMN Selection の方法や、ディザスター(災害)時の取り扱いについても規定されていますので、もしご興味があれば読んでみてください。

― ソラコム 渡邊(dai)