端末はどのようにしてハンドオーバーしたり掴むバンドを決めたりしているのか
普段我々が使っている、スマホ・タブレットなどの端末がどのようにハンドオーバー(C2K系はハンドオフというようですね)して、どのように掴むバンド(周波数)を決めているのかというお話です。
なお、
- LTEで通信してる前提で話を進めます
- 地域によって傾向が異なります。今回は都内周辺で取得したデータを元に話を進めています。
- この手の設定は時々刻々と変わるものなので注意
- 正直自信がない部分もあるので間違っていたら指摘していただけると助かります。
LTEにおける通信状態のおさらい
本題に入る前に、LTEでは2つの通信状態(RRC State)があることを確認したいと思います。
- Idle
通信していない状態。通信を始めると後述のConnectedに切り替わります。
- Connected
通信中の状態。通信が終了してもすぐにはIdleにならず、数十秒後にIdleに切り替わります(秒数はキャリア側の設定による)
そして、Idle時とConnected時ではシーケンスが異なります。
ざっくりいうと、Idle時は端末主導、Connected時は基地局主導でセルを遷移していきます。
Idle時のシーケンス
Idle時は端末が基地局側から事前に受信した報知情報をもとにセルを移動していきます。
報知情報にはどのバンドを優先的に掴めばよいかが書いてあり、この優先度は1(低)~7(高)の7段階で定められています。
優先度が同じ場合、RSRP(電波強度)を見てバンドを遷移します。
各キャリアごとの特徴
- au
Band41とBand11の優先度が高いです。
- Softbank
場所によるんでしょうけど、以前はBand41優先でしたが最近はB1/3にも程々に逃がそうとしているように見えます。
- ドコモ
Idle時に一度Band1,19を掴んでしまうと、「”Connected状態になり”、”Band1または19の電波状態がある程度悪くなり”、”Band3,21の電波状態がある程度よくならない限り”」Band3/21を掴みません。
Band3/21の方が速いからBand3/21エリアにいる時は必ずBand3/21を掴んでると思ってる方もいるかもしれませんが、そんなことはないです。
これに関してはConnected時のシーケンスの欄末尾でも再度軽く触れます。
Connnected時のシーケンス
とても複雑です(笑 とても複雑なのでよくあるパターンを取り上げて紹介します。
まず、端末は通信し始めるとIdle時に掴んでいたバンドをそのまま掴みます。
同時に端末は基地局から“RRC Connection Reconfiguration”というものを受信します。
RRC Connection Reconfigurationはハンドオーバーにおいていろいろなことに用いられますが、ここで端末が受信するRRC Connection Reconfigurationには
1.「どの程度電波状況が悪くなったら」
2.「同周波数で今のセルよりもRSRP/RSRQが○dB良いセルが他にあったら」
受信品質を基地局に報告するかが書かれており、この条件を満たすと端末は劣化した受信品質を基地局に報告します。
例)今掴んでいるセルのRSRPが-118dBmより悪くなったら受信品質を報告する、RSRQが-13dbより悪くなったら~
端末は受信品質を測定した後、結果をレポートにまとめて基地局側に送信します。
このレポートを“Measurement Report”(以下:MR)といいます。
MRを受信した基地局は端末にRRC Connection Reconfigurationを再度送信します。
先ほどMRを送信する条件を2つ挙げましたが、2の場合は同周波数の他セルに遷移してハンドオーバー終了です。
1の場合、RRC Connection Reconfigurationの受信と同時に端末は”Measurement Gap”という制御を起動し、今掴んでいるセルの受信品質に加えて、他バンド(他周波数)や異RAT(LTEを掴んでいるときは3G)の受信品質を測定します。
この測定データを再度端末はMRとして基地局側に送信しますが、このシーケンスの間に受信品質が良くなった場合は良くなった場合は(受信品質をMRとして基地局に送信→RRC Connection Reconfigurationを端末に送信して)Measurement Gapを停止し、受信品質がさらに悪くなった場合や他バンドの受信品質が今掴んでいるセルよりもある程度いい場合、基地局はMRに基づいて再度端末にRRC Connection Reconfigurationを送信して遷移先周波数やRAT(3Gに落とすか)を指定します。
端末はこの指定された遷移先にハンドオーバーを行い、同期確立に成功した場合、ハンドオーバー完了。
失敗した場合は再接続を行います。
「他バンドの受信品質が今掴んでいるセルよりもある程度いい場合」について例を挙げると、
例)Band1を掴んでいて「Band3の方がBand1よりRSRQが-3dBいい時」
といったかんじです。
先ほど、Idle時のシーケンスの説明で「ドコモはBand1,19を一度掴むとそう簡単にはBand3/21を掴まない」旨をざっくりと書きましたが、その理由は「一度Band1,19を掴んでしまうとこの緑字のステップまで到達しないとBand3/21を掴まないから」です。
ドコモからしてみたらあくまでもメインバンドはBand1/19で、Band3/21は安定しているときだけ掴ませたいのでしょう。
Connected時シーケンスに関する補足
- キャリアアグリゲーションするかしないかも上記と似たシーケンスによって受信品質を測定したうえで判断されます。そのため、CA対応エリアにいるからと言って必ずしもCAするとは限りません。中には受信品質を測定せずにCAするキャリアもあるようですが。
- 高速移動中は低い周波数を掴みやすいように補正が入ります。これに関しては解説済みなのでそちらをご覧ください。
- au, SoftbankはConnected時に一度FDD-LTEを掴むと、Idleにならない限りTDD-LTE(WiMAX2+やAXGP)を掴みません。FDD→TDDのハンドオーバー(PS/Active/Optimized Handover)ができないからです。
- さらに言うと、au, SoftbankはConnected時に一度3Gを掴むと、Idleにならない限りLTEを掴みません。理由は同様にハンドオーバーできないから。(3GはIdle/Connectedという言い方はしないんだけどね)
まとめ
自分も以前は、「ドコモはBand3が優先で~」なんてことを言ってましたが、どのバンドを掴むかの決め方はそう簡単なものではないということだけでもわかっていただけたら幸いです。
Band3(150Mbps)対応エリアにいるからといって必ずしもみんながBand3掴んでたらBand3が死んでBand1/19がガラガラになりますからね(笑
それと、「どのようにしてハンドオーバー失敗を減らすか」「RRC Connection Reconfigurationの中身をどうすることで各バンドにトラヒックを分散させるか」などは各キャリアともとても苦労しているところです。
そのためこの辺のシーケンスはユーザーに見せたくないらしく、それがSevicemodeを塞ぐといったことに繋がっているわけですね。