本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「デバイスはどうやって通信キャリアを選択するの? 〜PLMN Selectionを読み解く」を再編集したものです。
目次
3GPP TS 23.122 とは?PLMN とは?
日本の PLMN の取り決め
ソラコムの PLMN-ID
PLMN Selection とは?
PLMN Selection の概要
素早くネットワーク接続するための仕組み(ステップ2)
ホームと 協業 とローミング(ステップ3)
それ以降のステップ
ソラコムのサブスクリプションコンテナとは?
FAQ
まとめ
こんにちは。ソリューションアーキテクト の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について説明されていたので引用します。
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-300MB と planX2 で使っている 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 | 意味 |
---|---|---|
RPLMN | Registered PLMN | 登録された PLMN、すなわち一度でも接続が成功したことのある PLMN を1つだけ保持します。 |
EPLMN | Equivalent PLMN | RPLMN と同等に扱うことのできる PLMN。RPLMNと同等のサービスを受けられるPLMNが含まれます。接続時にキャリアから配布されます。 |
HPLMN | Home PLMN | 自身の PLMN。SIM カードを発行した事業者で IMSI から識別が可能です。 |
EHPLMN | Equivalent HPLMN | HPLMN と同等に扱うことのできる PLMN。SIM へ記載されています。 |
UPLMN | User controlled PLMN | ユーザー自身で設定可能な 優先PLMNリスト。モジュールによってはATコマンドで編集が可能です。優先順に複数設定される場合もあります。 |
OPLMN | Operator controlled PLMN | キャリア側で設定可能な 優先PLMNリスト。OTA で設定可能で SIM で保持されます。優先順に複数設定される場合もあります。 |
Other PLMN | Other PLMN | 電波品質などで決定されるそれ以外の PLMN。 |
FPLMN | Forbidden PLMN | キャリアから接続を拒否された(or 接続資格がない) PLMN。SIMに保持され、モジュールによってはATコマンドで編集が可能です。 |
VPLMN | Visited PLMN | HPLMN または EHPLMN のどちらにも含まれない 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)
投稿 デバイスはどうやって通信キャリアを選択するの? 〜PLMN Selectionを読み解く は SORACOM公式ブログ に最初に表示されました。
この連載の記事
-
第478回
デジタル
コープさっぽろが、クラウド型カメラ「ソラカメ」を全店舗で導入、現場主導の改善を実現、サーバールームの異常な温度上昇を通知する新規掲載レシピ takuyaのほぼ週刊ソラコム 11/16-11/29 -
第476回
デジタル
WebRTCとMedia over QUIC Transportの性能比較 -
第475回
デジタル
SORACOM Lagoon 3 の [Math] 機能で、複数データを組み合わせた通知の手順 -
第474回
デジタル
SORACOM Flux の AI アクションに Amazon Bedrock – Anthropic Claude 3.5 Haiku を追加、Teltonika RUT240 の価格を改訂 takuyaのほぼ週刊ソラコム 11/02-11/15 -
第473回
デジタル
IoTセキュリティの基本知識と実践をご紹介 ― 10/31開催:SORACOMユーザー向けオンラインセミナー開催レポート -
第472回
デジタル
SORACOM Flux に追加された Incoming Webhook をつかってインタラクティブな Flux アプリを作る -
第471回
デジタル
サーバールームの異常な温度上昇を通知する新規掲載レシピのご紹介 -
第470回
デジタル
Virtual Private Gateway (VPG) Type-F2 が正式リリースになりました! -
第469回
デジタル
暗号化非対応のTCPクライアントでもNapterまでの通信を暗号化する方法 -
第468回
デジタル
SORACOM Beam や SORACOM Flux の開発・デバッグに使える HTTP モックサーバーを素早く作る方法