スマートフォンの画面に「衛星と接続中」と表示されたまま、特に何も操作していないのに4分ごとに「裏側で何かが起きている」状態 — これがLEO(低軌道)コンステレーションを使う通信端末の日常です。たとえばStarlinkの利用者は気づかないうちに、平均しておよそ数分に1回、別の衛星に通信を引き継いでいます。1回でも引き継ぎに失敗すれば、ビデオ会議の音声が途切れ、ゲームのフレームが落ち、IoTデバイスの計測データがロストします。これがハンドオーバ(handover)と呼ばれる、移動通信の中心テーマです。
GEO(静止)衛星では衛星そのものが地上から見て止まって見えるため、ハンドオーバはほとんど問題になりませんでした。ところがStarlinkやOneWebに代表されるLEOメガコンステレーションでは、衛星が秒速7.5km以上で空を駆け抜けます。これは旅客機がほぼ動かないように見えてしまうほどの猛スピードで、ユーザの真上に1機の衛星がとどまっていられるのはわずか数分です。そのため、ユーザリンクの設計はもはや「1機の衛星と何を話すか」ではなく、「常に複数の衛星の間でリレーをどう繋ぐか」の問題になります。
ハンドオーバを理解すると、以下のような場面で技術的な判断ができるようになります。
- メガコンステレーション設計: 高度・傾斜角・最低仰角・ビーム数といったパラメータが、ユーザあたりのハンドオーバ頻度や制御プレーン負荷にどう跳ね返るかを見積もれる
- 5G/6G NTN規格: 3GPP Rel-17以降のNTN仕様で議論されている「衛星モビリティ」「コンテキスト転送」「Tracking Area更新」といった用語の意味が、物理現象と直結して理解できる
- 車載や航空機向け衛星端末: 移動するユーザに対してハンドオーバ予測(HO prediction)をどう実装するか、軌道暦(ephemeris)の利用法まで議論できる
本記事の内容
- LEOで衛星が「足が速すぎる」とはどういうことか — 直感的整理
- 円軌道衛星の可視時間 $T_{\text{vis}}$ を地球幾何から導く
- 仰角 $\epsilon$、地心角 $\gamma$、スラント距離 $d$ の関係式
- ハンドオーバの3階層(ビーム内・ビーム間・衛星間)の分類
- Make-before-break と Hard handover の使い分け
- ハンドオーバトリガの基準(仰角・C/N・残り可視時間・フットプリント外縁)
- ベアラ/コンテキスト転送と3GPP NTNでの扱い
- ハンドオーバレートの見積もりと制御プレーン負荷
- 6G NTNとマルチコネクティビティの方向性
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- 衛星通信の基礎 — GEOからLEOコンステレーションまで
- LEOコンステレーション通信 — Starlinkに代表される低軌道衛星群の通信技術
- 衛星回線設計 — リンクバジェットの計算と設計マージン
- 低軌道(LEO)の特徴と軌道設計
- ドップラー効果を詳しく — 相対速度と周波数シフトの定量化
加えて、ケプラー軌道の基礎(円軌道速度、軌道周期)と、dB計算、C/N比の意味に馴染みがあるとスムーズです。
なぜLEOではハンドオーバが頻発するか(直感)
地上の携帯電話を思い出してください。歩きスマホをしていてもセルが切り替わるのは、せいぜい大きな道路を渡るタイミングや電車に乗ったときくらいです。基地局の高さは数十mで、サービスエリアの半径は数百m〜数kmあります。ユーザが時速4kmで歩くなら、1つのセルにとどまる時間は十数分から数十分にもなります。
これがLEOになると話が逆転します。動いているのは基地局そのものです。Starlinkの第1世代衛星は高度約550kmを秒速7.6km、すなわち時速約27,000kmで飛んでいます。地上のユーザが完全に静止していても、頭上を通り過ぎる衛星から見れば、ユーザは秒間7.6kmの猛スピードで真下を流れているように映ります。
直感的に「LEO衛星が真上から地平線まで動く時間」を素朴に見積もってみます。地球半径は約6,371kmなので、半径6,921kmの円軌道を周回するStarlink衛星の軌道周期は約95分です。1周のうち、地球側半周の45分強を地表に対して滑空していることになります。しかし1ユーザが見上げて使えるのは、その軌道のうち自分の「視野の窓」を通過する時間に限られます。高度550kmの場合、最低仰角25°(Starlinkユーザリンクの典型値)で確保される時間は、計算してみるとおよそ4分程度です。
つまり、1人のユーザは原理的に「平均4分に1回、別の衛星にリレーする必要がある」という制約を抱えていることになります。これは地上のセルラーシステムでは新幹線で長大トンネルを抜けるときくらいでしか起こらないペースのハンドオーバを、何もせず机に座っているだけで延々と繰り返すことを意味します。
この「足の速さ」がそのままハンドオーバ設計の難しさに直結します。具体的には次の3点です。
- ハンドオーバが頻発する: 大量のユーザが同時に数分おきに切り替えを起こすため、制御プレーン(シグナリング)の負荷が地上セルラーと桁違いに大きくなる
- 予測可能だが余裕は少ない: 衛星の軌道は既知なので「いつ切り替えが起きるか」は事前に計算できる。しかし可視時間そのものが短いため、切り替えタイミングのミスは即座に通信切断を招く
- 同時に複数のハンドオーバ階層が起きる: ビーム間、衛星間、さらに上層のゲートウェイ局やコアネットワークの再接続が、別々のタイムスケールで重なって起こる
直感がついたところで、まずは「1機の衛星がユーザの視野にとどまる時間」を幾何から導いてみましょう。これがハンドオーバ設計の最も基本的な定量量となります。
LEO衛星の可視時間(幾何的導出)
衛星・地球中心・ユーザの三角形
地球を半径 $R_E$ の真球と仮定し、高度 $h$ の円軌道を周回する衛星を考えます。地球の中心を $O$、ユーザの位置を $U$、衛星の位置を $S$ とすると、三角形 $OUS$ の3辺は次のように決まります。
- $OU = R_E$(ユーザは地表上)
- $OS = R_E + h$(衛星は地表からの高度 $h$ の円軌道上)
- $US = d$(スラント距離:ユーザから衛星までの直線距離)
そして角度として次の2つを導入します。
- 仰角 $\epsilon$: ユーザの真上方向(天頂方向)から衛星を見上げる方向との角度ではなく、地平線から衛星を見上げる角度として通信工学では定義します。すなわち $\epsilon = 0$ が地平線、$\epsilon = 90°$ が天頂です
- 地心角 $\gamma$: 地球中心から見て、ユーザと衛星の位置がなす角度。$\gamma$ が大きいほど衛星はユーザから遠ざかります
これら $\epsilon$ と $\gamma$、そして $h$、$R_E$ の間には、平面三角形の正弦定理から美しい関係式が得られます。
仰角と地心角の関係
三角形 $OUS$ において、頂点 $U$ における内角は「ユーザから見て地球中心方向と衛星方向のなす角」です。地球中心方向はユーザの足元方向、すなわち天底方向ですから、頂点 $U$ の内角は $90° + \epsilon$ になります(天底から天頂までが180°で、衛星は天頂から地平線に向かって $90° – \epsilon$ の位置にあるため)。
頂点 $O$ の内角は $\gamma$、頂点 $S$ の内角は残りの $90° – \epsilon – \gamma$ です。三角形 $OUS$ に正弦定理を適用すると、
$$ \frac{OS}{\sin(\angle U)} = \frac{OU}{\sin(\angle S)} $$
すなわち、
$$ \frac{R_E + h}{\sin(90° + \epsilon)} = \frac{R_E}{\sin(90° – \epsilon – \gamma)} $$
ここで $\sin(90° + \epsilon) = \cos\epsilon$、$\sin(90° – \epsilon – \gamma) = \cos(\epsilon + \gamma)$ を使うと、次の関係式に整理できます。
$$ \frac{R_E + h}{\cos\epsilon} = \frac{R_E}{\cos(\epsilon + \gamma)} $$
これを $\cos(\epsilon + \gamma)$ について解くと、
$$ \cos(\epsilon + \gamma) = \frac{R_E}{R_E + h}\cos\epsilon $$
となります。さらに $\gamma$ について解けば、地心角の表式が得られます。
$$ \gamma = \arccos\!\left(\frac{R_E}{R_E + h}\cos\epsilon\right) – \epsilon $$
この式は本記事で最も基本的な道具になるので、少し丁寧に意味を確認しておきます。$\epsilon \to 90°$(衛星がユーザの真上)では $\cos\epsilon = 0$ となり、$\arccos(0) = 90°$、引き算で $\gamma = 0$。すなわち「衛星がユーザの真上にあるとき、地心角はゼロ」という妥当な結果になります。一方 $\epsilon \to 0°$(衛星が地平線)では $\cos\epsilon = 1$、$\arccos[R_E/(R_E+h)]$ は衛星が地表からの接線方向にあるときの地心角に一致し、これは衛星から地球を「見下ろせる」最大の角度(地球見込み角の半角の補角)に対応します。
最低仰角と「視野の窓」の幾何
ユーザリンクには通常、最低仰角 $\epsilon_{\min}$ が設定されます。Starlinkでは25°、OneWebは40°近くと言われ、3GPP NTNのドキュメントでは10°〜30°が議論されます。最低仰角を設けるのは、低仰角になると次の問題が一気に悪化するからです。
- スラント距離の増大: 自由空間損失(FSPL)が増え、リンクバジェットが悪化する
- 大気/降雨減衰の増大: 経路長が長くなり、特にKa帯で減衰量が跳ね上がる
- マルチパスや見通し外(NLoS): 建物・樹木による遮蔽の可能性が高まる
- 干渉: 同じ周波数の他衛星や地上局からの干渉に弱くなる
最低仰角 $\epsilon_{\min}$ を与えると、対応する最大地心角 $\gamma_{\max}$ が次のように決まります。
$$ \gamma_{\max} = \arccos\!\left(\frac{R_E}{R_E + h}\cos\epsilon_{\min}\right) – \epsilon_{\min} $$
これは「ユーザがこの衛星と話せるための、地表上の許容角度範囲」を表します。すなわち衛星の地表投影点(サブサテライトポイント)がユーザから地心角 $\gamma_{\max}$ 以内にある間、ユーザは仰角 $\epsilon_{\min}$ 以上で衛星を見上げられるわけです。
可視時間 $T_{\text{vis}}$ の導出
衛星は地球中心まわりに角速度 $\omega_{\text{sat}}$ で回り、地球自身も角速度 $\omega_E = 2\pi/86\,164\,\text{s} \approx 7.29\times10^{-5}\,\text{rad/s}$ で自転しています。ユーザは地球とともに動くので、衛星とユーザの相対的な角速度が可視時間を決めます。
衛星の角速度は、円軌道の運動方程式から、
$$ \omega_{\text{sat}} = \sqrt{\frac{\mu_E}{(R_E + h)^3}} $$
ここで $\mu_E = GM_E \approx 3.986\times10^{14}\,\text{m}^3/\text{s}^2$ は地球の重力定数です。簡単のため、衛星の軌道面が赤道に対して傾いていて、ユーザの直上をほぼ通過するケースを考えます。すると相対角速度は近似的に、
$$ \omega_{\text{rel}} \approx \omega_{\text{sat}} – \omega_E \cos i $$
と書けます。$i$ は軌道傾斜角で、極軌道($i = 90°$)なら地球自転の寄与はほぼゼロ、赤道軌道($i = 0$)なら最大限引かれます。Starlink第1シェル($i = 53°$)では $\omega_E \cos 53° \approx 4.4\times10^{-5}$ rad/sと、$\omega_{\text{sat}} \approx 1.1\times10^{-3}$ rad/sに比べて約4%の補正であり、無視できないが支配項ではありません。
衛星のサブサテライトポイントがユーザの「視野の窓」(地心角 $\pm\gamma_{\max}$ の範囲)を横切る時間が、可視時間 $T_{\text{vis}}$ です。最も簡単なのは、衛星がユーザの真上を通過する場合(中心通過、$\gamma_{\min} = 0$)で、このときの可視時間は次のように書けます。
$$ T_{\text{vis}}^{(\text{max})} = \frac{2\gamma_{\max}}{\omega_{\text{rel}}} $$
これはユーザの視野窓の角幅 $2\gamma_{\max}$ を、相対角速度 $\omega_{\text{rel}}$ で割っただけのシンプルな関係です。
一方、衛星がユーザの真上ではなく、地心角の最小値 $\gamma_{\min}$(横ずれ角度)で通過する場合は、視野窓の弦長を考える必要があります。地心角 $\gamma$ の球面三角法を使うと、衛星の軌道経路が視野窓と交わる角幅 $2\Delta$ は、
$$ \cos\gamma_{\max} = \cos\gamma_{\min} \cos\Delta $$
から、
$$ \Delta = \arccos\!\left(\frac{\cos\gamma_{\max}}{\cos\gamma_{\min}}\right) $$
と求まります。よってオフセット通過のときの可視時間は、
$$ T_{\text{vis}}(\gamma_{\min}) = \frac{2}{\omega_{\text{rel}}}\arccos\!\left(\frac{\cos\gamma_{\max}}{\cos\gamma_{\min}}\right) $$
となります。$\gamma_{\min} = 0$ で $\Delta = \gamma_{\max}$ に戻り、最大可視時間 $T_{\text{vis}}^{(\text{max})} = 2\gamma_{\max}/\omega_{\text{rel}}$ を回復します。逆に $\gamma_{\min} \to \gamma_{\max}$ では $\Delta \to 0$、すなわち視野窓の端をかすめる通過は可視時間がゼロに漸近します。
典型値:Starlinkの場合
具体的な数値を入れてみましょう。$R_E = 6378$ km、$h = 550$ km、$\epsilon_{\min} = 25°$ とすると、
$$ \cos(\epsilon_{\min} + \gamma_{\max}) = \frac{R_E}{R_E + h}\cos\epsilon_{\min} = \frac{6378}{6928}\cos 25° \approx 0.834 $$
なので $\epsilon_{\min} + \gamma_{\max} \approx 33.5°$、すなわち $\gamma_{\max} \approx 8.5°$。これをラジアンに直すと約0.148 radです。
衛星の角速度は、
$$ \omega_{\text{sat}} = \sqrt{\frac{3.986\times10^{14}}{(6.928\times10^{6})^3}} \approx 1.094\times10^{-3}\;\text{rad/s} $$
軌道周期は $2\pi/\omega_{\text{sat}} \approx 5740$ s $\approx 95.7$ 分で、これはLEOの教科書値と一致します。傾斜角の補正を簡単のために無視すると、最大可視時間は次の通りです。
$$ T_{\text{vis}}^{(\text{max})} = \frac{2 \times 0.148}{1.094\times10^{-3}} \approx 271\;\text{s} \approx 4.5\;\text{分} $$
地球自転を考慮しても、Starlinkユーザリンクでの典型的な1パスはおよそ4分ということが幾何的に出てきました。これは「ユーザが机に座っているだけで、約4分に1回、新しい衛星にリレーしなければならない」というハンドオーバ設計上の最も重要な数値です。仰角閾値を緩めて10°にすれば $\gamma_{\max}$ は大きくなり、$T_{\text{vis}}$ は7分前後まで伸びますが、その代わり低仰角の悪条件リンクで通信することになります。
参考までに同じ計算をOneWeb($h = 1200$ km、$\epsilon_{\min} = 40°$)でやると $\gamma_{\max} \approx 9°$、$\omega_{\text{sat}} \approx 9.6\times10^{-4}$ rad/sで、$T_{\text{vis}} \approx 330$ s $\approx 5.5$ 分。高度が高い分だけ衛星はゆっくり動くが、最低仰角を厳しくしたため可視時間は思ったほど大きく伸びません。
可視時間の幾何が分かったところで、次は「ハンドオーバとひとくちに言っても、実は階層がある」という話に進みます。
ハンドオーバの分類(ビーム内/ビーム間/衛星間)
ハンドオーバを「通信中の経路を切り替える操作」と一語で呼んでしまうと、設計の議論ができなくなります。LEOコンステレーションでは、実際には3階層(より細かくは4階層)のハンドオーバが入れ子に発生しており、それぞれタイムスケールと制御主体が異なります。
階層1: ビーム内ハンドオーバ(無し、または狭い意味の追尾)
1つのスポットビームの内側で起きる「追尾」は、厳密にはハンドオーバではありません。アンテナのフェーズドアレイがビームをユーザ方向に向け続けるための電子的な操作で、ベースバンド側の接続は同じビーム・同じ衛星のままです。
しかし、フェーズドアレイ衛星では1つの大きな「セル」がさらに細かいサブビームに分かれている場合があり、ユーザ移動や衛星の動きに応じてサブビーム単位で割当を変えることがあります。この「サブビーム内切替」を広義のビーム内ハンドオーバと呼ぶ文献もあります。タイムスケールは数秒〜数十秒、ベアラ(無線無関係の論理コネクション)は維持されるためユーザには透過です。
階層2: ビーム間ハンドオーバ(同一衛星内)
LEO衛星は1機あたり多数(Starlink V2では数十〜100超)のスポットビームを地表に投影しています。地表に対して衛星が動いていく以上、1つのビームのフットプリント(地表での投影)はどんどん移動していき、ユーザは隣のビームに移ります。これがビーム間ハンドオーバで、同一衛星内で起きるため、通常は無線レイヤ(PHY/MAC)の切り替えで完結します。
衛星のオンボード制御から見れば、ビーム間ハンドオーバはきわめて高頻度です。仮にビーム1個あたりの地上フットプリントを直径50km、衛星のサブサテライトポイント速度を地表で約7km/sとすれば、フットプリントが自分の幅だけ動くのに必要な時間は約7秒。実際にはユーザがフットプリントの中央付近を通るとは限らず、ビームの形状・配置・重なりにも依存しますが、数秒〜数十秒に1回のオーダーでビーム間ハンドオーバが発生していることになります。
ただしビーム間ハンドオーバは衛星オンボードでスケジューリングできるため、地上ネットワークや3GPPコアにはほぼ可視化されません。SDNコントローラやAOCS(衛星姿勢制御)と同期させて事前計画されるのが普通です。
階層3: 衛星間ハンドオーバ(衛星交代)
ユーザの「視野の窓」から1機の衛星が抜けて、別の衛星に切り替わるのが衛星間ハンドオーバです。本記事の中心テーマで、先ほどの可視時間 $T_{\text{vis}}$ で支配されます。
衛星間ハンドオーバはビーム間と違って、衛星オンボードだけで閉じることができません。次の衛星はまだユーザの視野に入っていないか、入ったばかりです。すなわち、新旧の衛星間でユーザの認証・暗号鍵・QoSコンテキストといった状態を引き継ぐ必要があります。
3GPP NTN(Rel-17以降)の枠組みでは、衛星をRAN(無線アクセスネットワーク)の一部とみなし、地上のgNBに相当する機能を「衛星gNB」または「衛星リレー+地上gNB」として配置します。衛星間ハンドオーバは概念的には地上のセル間ハンドオーバ(Xnハンドオーバ)と同じ手続きで処理できますが、伝搬遅延が片道数msあるため、シグナリングのタイミング設計が厳しいという違いがあります。
階層4: ゲートウェイ/フィーダリンクのハンドオーバ
衛星から地上のゲートウェイ局(フィーダリンク)への接続も、衛星が動く以上は地上ゲートウェイを乗り換えていきます。これをフィーダリンクハンドオーバまたはゲートウェイハンドオーバと呼びます。ユーザリンクから見ると、自分の通信パケットがゲートウェイAから出ていくか、ゲートウェイBから出ていくかが切り替わる現象です。
ISL(衛星間光リンク)を持つコンステレーション(Starlink V2、Iridium NEXT、計画中のLightspeed)では、ゲートウェイハンドオーバの一部はISL経由のルーティング変更で吸収できます。ISLを持たないシステムでは、サブサテライトポイントがゲートウェイ局の上空可視範囲を抜けると、強制的に別のゲートウェイへ切り替える必要があり、ここに大きな制約が生まれます。
まとめ:階層と頻度
おおまかに整理すると次の表のようになります。
| 階層 | 主体 | タイムスケール | ユーザ可視性 | 主な技術課題 |
|---|---|---|---|---|
| ビーム内追尾 | 衛星PHY | 数秒以下 | 透過 | フェーズドアレイ制御 |
| ビーム間HO | 衛星MAC | 数秒〜数十秒 | ほぼ透過 | スケジューリング |
| 衛星間HO | 地上コア+衛星 | 数分(≈$T_{\text{vis}}$) | プロトコルで対応 | コンテキスト転送、シグナリング |
| ゲートウェイHO | 地上ネットワーク | 数分〜十数分 | ルーティング変更 | ISL/地上回線設計 |
階層を理解したら、次は具体的に「衛星間ハンドオーバを どう 切り替えるか」、その物理的な切替戦略を見ていきます。
Make-before-break と Hard handover
衛星間ハンドオーバの実行戦略は、移動通信の歴史で長く議論されてきた2つの方式に大別されます。日本の地上携帯網ではかつてPDC(2G)が後者、3G以降が前者中心という歴史をたどっており、衛星でも基本構造は同じです。
Make-before-break(MBB / ソフトハンドオーバ)
「接続を切る前に、新しい接続を確立する」方式です。MBBの本質は次の3ステップにあります。
- 準備フェーズ: 新しい衛星(ターゲット衛星)への接続を、現在の衛星(ソース衛星)との接続を維持したまま並行に確立する
- 二重接続フェーズ: 一定時間、両方の衛星から同じパケットを受信できる状態を保つ。アップリンクは選択的に、ダウンリンクは両方を合成(CDMAならソフトコンバイニング)または高品質側を選択
- 解放フェーズ: 旧衛星からの信号品質が一定以下になったら、その接続のみを解放する
MBBの最大の利点はシームレス性です。理論的にはパケット損失ゼロでハンドオーバを完了できるため、リアルタイム通信(VoLTE、ビデオ会議)と相性がよい方式です。Starlinkのユーザ端末はフェーズドアレイなので、ビームを2方向に同時に向けることができ、MBBに近いハンドオーバが行えると考えられます。
欠点はコストの大きさです。準備フェーズの間は2機ぶんの無線リソース(周波数・電力・タイムスロット)を確保しなければならず、ネットワーク容量を圧迫します。また、ターゲット衛星との同期確立に時間がかかるため、可視時間が短いLEOでは「もう旧衛星が地平線に沈むのに、まだ準備が終わらない」という間に合わない問題が起こり得ます。
Hard handover(HHO / ブレイクビフォアメイク)
「接続を一度切ってから、新しい接続を確立する」方式です。プロトコル的に単純で、無線リソースを並行確保する必要がないため、コストは小さくなります。地上の5G NR Standalone(Xnハンドオーバ)も基本的にHHOです。
HHOの問題は、切替の瞬間に必ず短い断(gap)が生じることです。地上携帯ではこのギャップが数十ms〜数百msに収まるため実害がほとんどありませんが、LEOでは衛星方向のアンテナ向きを物理的に切り替える時間や、衛星-地上の往復シグナリング遅延が積み重なります。フェーズドアレイ端末を持たない低コスト端末(DTHパラボラ風の機械追尾端末)では、ハンドオーバ時に数百ms〜1秒程度のギャップが発生することが珍しくありません。
条件付きハンドオーバ(CHO: Conditional Handover)
3GPP Rel-16で導入され、NTNでさらに重要性が増している中間方式が条件付きハンドオーバ(CHO)です。CHOでは、ハンドオーバの実行命令そのものをあらかじめ端末に渡しておき、端末側で条件(仰角閾値、C/N、タイマー)が満たされたタイミングで自律的に切替を実行します。
CHOがLEOで効く理由は明確です。衛星の軌道は決定論的に予測できるため、「いつ、どの衛星に切り替えるか」を事前にスケジュールできます。シグナリングの往復が不要になり、衛星と地上の伝搬遅延の影響を受けにくくなります。実装上はCHO命令に複数の候補衛星と条件を入れておき、端末は「最初に条件を満たした候補」に切り替えます。
どれを使うべきか
LEOでの選択は、端末の能力とユースケースで分かれます。フェーズドアレイ端末(Starlinkユーザターミナル等)であれば、MBBに近い動作が低コストで実現でき、これが標準となりつつあります。一方、機械式追尾の低コスト端末や、IoT向けの単一アンテナ端末では、CHO + HHOの組合せが現実的です。
切替方式が決まったとして、次の問いは「何を見て 切り替えるか」、すなわちハンドオーバのトリガ基準です。
ハンドオーバトリガ基準
ハンドオーバの実行を決めるトリガには、大きく4つの種類があります。地上セルラーで主に使われるC/N基準だけでなく、LEOでは衛星軌道の決定論性を活かしたユニークな基準が組み合わさります。
トリガ1: 仰角閾値(Elevation-based)
最も直感的でLEOらしいトリガです。現在使っている衛星の仰角 $\epsilon_{\text{src}}$ が事前に決めた閾値 $\epsilon_{\text{HO}}$(多くの場合 $\epsilon_{\min}$ よりわずかに上)を下回ったら、ハンドオーバを開始します。
利点は予測可能性です。衛星の軌道暦を知っていれば、ハンドオーバが起きる時刻を秒単位で事前計算できるため、リソース予約やコンテキスト転送を計画的に行えます。Starlinkのような大規模システムでは、地上のSDNコントローラがコンステレーション全体のハンドオーバスケジュールを統合的に管理していると考えられます。
欠点は、無線品質を直接見ていないため、想定外の劣化(局所的な大雨、干渉)には反応できないことです。実際にはこの仰角基準を主軸に、後述のC/N基準を併用するのが一般的です。
トリガ2: C/N または RSRP(信号品質)
地上セルラーで主役を張ってきた、受信信号品質に基づくトリガです。衛星 $i$ からの受信信号のC/N(または5G NRでのRSRP: Reference Signal Received Power)を $\Gamma_i$ とし、
$$ \Gamma_{\text{tgt}} > \Gamma_{\text{src}} + \Delta_{\text{HO}} $$
を一定時間(Time-to-Trigger, TTT)以上満たしたら、ターゲット衛星 $\text{tgt}$ にハンドオーバします。$\Delta_{\text{HO}}$(ヒステリシスマージン、典型値2〜5 dB)はピンポンハンドオーバ(行ったり来たり)を防ぐためのバッファです。
C/N基準は無線品質を直接反映できる強みがありますが、LEOでは「衛星が落ちかかっているから品質が悪い」という情報は仰角からほぼ完全に予測できるため、純粋なC/N基準は冗長になりがちです。実装上は仰角基準の補助、または異常検知(突然のC/N急落)として用いられます。
トリガ3: 残り可視時間(Time-to-Loss-of-Service)
衛星ごとに「あと何秒で視野から消えるか」(残り可視時間 $\tau_{\text{rem}}$)を計算し、$\tau_{\text{rem}}$ が一定閾値(たとえば30秒)を切ったらハンドオーバを開始する方式です。
これは仰角閾値とほぼ等価な情報ですが、$\tau_{\text{rem}}$ を直接持つことで、ハンドオーバ準備に必要な時間(コンテキスト転送、ターゲット衛星との同期、TAC更新など)を確実に確保できる利点があります。LEOで $T_{\text{vis}} \approx 240$ s、ハンドオーバ手順に30 s必要なら、$\tau_{\text{rem}} = 30$ sでトリガをかければ通信が途切れません。
トリガ4: ビームフットプリント外縁
サブサテライトポイントの地表移動を計算し、ユーザがビームフットプリントの外縁に近づいたらハンドオーバする方式です。ビーム間ハンドオーバの主な基準でもあります。
衛星間ハンドオーバの場合は「ユーザがどの衛星のサービスエリアにいるか」をビーム単位で管理し、隣接衛星のビームに移った段階で切り替える、というSDN的な発想です。Starlinkはこれに近い管理をしていると報告されています。
複合トリガと実装の現実
実運用では、上記4つの基準を AND/OR で組み合わせた複合トリガ が使われます。代表的なロジックは次のような順序です。
- 仰角基準 $\epsilon_{\text{src}} < \epsilon_{\text{HO}}$ または 残り可視時間 $\tau_{\text{rem}} < \tau_{\text{HO}}$ を「主トリガ」とする
- 主トリガが立ったら、軌道予測から候補衛星リスト(複数)を生成し、CHO命令として端末に配布
- 端末はCHO条件(C/Nしきい値や仰角到達)を見ながら、最初に条件を満たした候補に切り替え
- 通信中に局所的なC/N急落が起きた場合は緊急の追加ハンドオーバを上位レイヤから命令
このフローのポイントは、軌道の決定論性を最大限に使う一方、無線品質の異常には別のメカニズムで対処するという二重構造になっていることです。
トリガが決まったとして、次は「ハンドオーバが失敗した場合に何が起こるか」を整理しておきましょう。失敗時の影響を理解しないと、設計マージンの取り方を決められません。
ハンドオーバ失敗とその影響
ハンドオーバが完璧に動けば、ユーザは何も気づきません。しかし現実にはハンドオーバ失敗(HOF: Handover Failure)が一定の確率で発生し、それぞれが異なる症状を引き起こします。
失敗パターン1: Too late HO(手遅れ)
ハンドオーバ命令が遅すぎて、ソース衛星との接続が先に切れてしまうケース。LEOで最も典型的な失敗で、可視時間が短いがゆえに「ぎりぎりまで粘る設計」をしてしまうと起きます。発生すると通信断(RLF: Radio Link Failure)となり、端末はランダムアクセスからやり直しに入り、数秒〜十数秒の中断が生じます。
失敗パターン2: Too early HO(早すぎる)
逆に、ターゲット衛星との接続を試みたものの、まだ仰角や信号強度が十分でなく接続に失敗するケース。準備フェーズで失敗するため通信は継続しますが、ハンドオーバが空振りに終わり、再試行のためのシグナリングコストが余計にかかります。
失敗パターン3: HO to wrong cell(誤り)
ハンドオーバ自体は成功したが、ターゲット衛星のC/Nが思ったほどよくなく、すぐにまたハンドオーバが必要になるケース。ピンポンハンドオーバの一種で、ヒステリシスマージン $\Delta_{\text{HO}}$ の設計不良で生じます。
失敗の上位影響
これらの失敗は、ユーザ体験だけでなくネットワーク全体の負荷にも跳ね返ります。失敗のたびにシグナリングが追加発生し、制御プレーン(gNBやAMF)のCPU負荷が上がります。ハンドオーバ失敗率を $p_f$、ユーザ数を $N$、平均ハンドオーバ間隔を $T_{\text{HO}}$ とすると、システム全体の失敗イベント発生率は、
$$ R_f = \frac{N \cdot p_f}{T_{\text{HO}}} $$
仮に $N = 10^6$ ユーザ、$p_f = 10^{-3}$、$T_{\text{HO}} = 240$ sなら、$R_f \approx 4.2$ 回/秒。これは地上のセル単位の処理能力に比べれば小さく見えますが、衛星gNBのオンボード処理能力が地上比でかなり制限されることを思い出すと、決して無視できない数字です。
失敗とその影響を理解したところで、ようやくシステム全体の負荷の話に進めます。「1ユーザあたり数分に1回」が「コンステレーション全体で何回起きるのか」を見積もりましょう。
ハンドオーバレートの見積もり
LEOコンステレーションのハンドオーバ設計で最も重要な量の1つが、ハンドオーバレート(1ユーザあたり、または1秒あたりのハンドオーバ回数)です。これがそのまま制御プレーンの負荷を決めます。
1ユーザあたりの平均ハンドオーバ間隔
ユーザは平均してパス通過のたびに1回ハンドオーバするので、1ユーザあたりの平均ハンドオーバ間隔 $T_{\text{HO}}$ は、
$$ T_{\text{HO}} \approx \langle T_{\text{vis}} \rangle $$
すなわち平均可視時間にほぼ等しくなります。Starlink第1シェル($h = 550$ km、$\epsilon_{\min} = 25°$)での平均可視時間は、衛星がランダムにユーザの視野窓を横切ると仮定して、
$$ \langle T_{\text{vis}} \rangle = \frac{2}{\omega_{\text{rel}}}\frac{\int_{0}^{\gamma_{\max}}\arccos(\cos\gamma_{\max}/\cos\gamma_{\min})\,\cos\gamma_{\min}\,d\gamma_{\min}}{\sin\gamma_{\max}} $$
のような式で、視野窓内で衛星が通る経路の分布(オフセット角の分布)を考慮して平均を取ったものです。実用的にはこの積分を解析的に解くより、$\langle T_{\text{vis}} \rangle \approx (\pi/4) T_{\text{vis}}^{(\text{max})}$ のような近似($\sin$ 加重平均から出てくる)を使うことが多く、Starlinkの場合は $\langle T_{\text{vis}} \rangle \approx 200$ s、すなわち約3.5分に1回のハンドオーバという見積もりが得られます。
コンステレーション全体のハンドオーバレート
総ユーザ数 $N$ がコンステレーションに同時接続している場合、1秒あたりに発生するハンドオーバ件数 $R_{\text{HO}}$ は、
$$ R_{\text{HO}} = \frac{N}{\langle T_{\text{HO}} \rangle} $$
Starlinkが世界中で500万ユーザ規模だと仮定すると、$N = 5\times10^6$、$\langle T_{\text{HO}} \rangle = 200$ s なので、
$$ R_{\text{HO}} \approx \frac{5\times10^6}{200} = 2.5\times10^4 \;\text{回/秒} $$
すなわち世界全体で1秒間に2.5万件のハンドオーバが発生していることになります。地上携帯網と比べても桁違いに大きく、なおかつ「ユーザは静止しているのにこの頻度」という点で異質です。
衛星gNBに対する負荷
これを衛星側から見ると、1機の衛星が同時にカバーするユーザ数 $N_{\text{sat}}$ に比例して、1機あたりのハンドオーバ処理レートは、
$$ R_{\text{HO}}^{(\text{sat})} = \frac{N_{\text{sat}}}{\langle T_{\text{HO}} \rangle} $$
Starlinkで1機あたり数千〜数万ユーザを収容すると言われており、 $N_{\text{sat}} = 10^4$、$T_{\text{HO}} = 200$ s なら $R_{\text{HO}}^{(\text{sat})} \approx 50$ 回/秒。地上の基地局では1回のセルあたりせいぜい数回/秒のオーダーなので、衛星gNBには地上比10倍超のシグナリング処理性能が要求されることになります。
これはオンボード処理(衛星に積めるFPGA/SoCの処理能力)に対する厳しい制約となり、Starlinkが衛星間でハンドオーバを「ISL経由のルーティング変更だけで吸収する」設計に強い動機を持つ理由でもあります。
軽い可視化:可視時間とハンドオーバレート
ここまで導いた式が、高度と最低仰角でどう変わるかを軽く可視化しておきます。
import numpy as np
import matplotlib.pyplot as plt
# 物理定数
R_E = 6378.0e3 # 地球半径 [m]
mu_E = 3.986e14 # 地球重力定数 [m^3/s^2]
def visibility_time_max(h, eps_min_deg):
"""中心通過時の最大可視時間 [s](自転は無視)"""
eps = np.deg2rad(eps_min_deg)
gamma_max = np.arccos(R_E / (R_E + h) * np.cos(eps)) - eps
omega = np.sqrt(mu_E / (R_E + h)**3)
return 2 * gamma_max / omega
altitudes = np.linspace(400e3, 1500e3, 100) # 高度 400-1500 km
elev_list = [10, 25, 40] # 最低仰角の3パターン
plt.figure(figsize=(8, 5))
for eps in elev_list:
Tvis = visibility_time_max(altitudes, eps)
plt.plot(altitudes / 1e3, Tvis / 60.0,
label=f'epsilon_min = {eps} deg', linewidth=2)
# 代表点
plt.scatter([550], [visibility_time_max(550e3, 25) / 60.0],
color='red', s=80, zorder=5, label='Starlink (550km, 25 deg)')
plt.scatter([1200], [visibility_time_max(1200e3, 40) / 60.0],
color='blue', s=80, zorder=5, label='OneWeb (1200km, 40 deg)')
plt.xlabel('Altitude h [km]')
plt.ylabel('Max visibility time T_vis [min]')
plt.title('Max visibility time vs altitude (central pass)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
このグラフから2点が読み取れます。第一に、可視時間は高度に対してほぼ線形に伸びることです。これは $\gamma_{\max}$ が高度に対して開きながら、衛星の角速度 $\omega_{\text{sat}}$ が高度の-1.5乗で減ることの組合せで、結果として高度を上げるほどパスが長くなります。第二に、最低仰角を厳しくすると可視時間が大きく短くなることです。$\epsilon_{\min}$ を25°から40°に上げると、同じ高度でも可視時間は半分近くになり、ハンドオーバ頻度が倍近く跳ね上がります。Starlinkが25°を選び、OneWebが40°(より高度を上げて補う)を選んだ理由は、この曲線の上で別々のスイートスポットを取ったと解釈できます。
ハンドオーバの量的把握ができたところで、次は「ベアラとコンテキストの引き継ぎ」、すなわち3GPP NTNでハンドオーバがどう扱われているかに踏み込みます。
ベアラ・コンテキストの引き継ぎと3GPP NTN
ハンドオーバは無線レイヤだけの話ではありません。1人のユーザが「同じセッションを続けている」と感じるためには、ユーザ識別、暗号鍵、QoSフロー、IPアドレスといったコンテキストが新衛星でも継承されなければなりません。
3GPP NTNのアーキテクチャ要点
3GPP Rel-17で標準化されたNTN(Non-Terrestrial Network)では、衛星の役割を2つに分けています。
- 透過ペイロード(Transparent payload): 衛星は単なる無線リレーで、gNBは地上に置く。衛星はRF信号を周波数変換して再送するだけ
- 再生ペイロード(Regenerative payload): 衛星上にgNB(の一部または全部)を搭載し、衛星自身がベースバンド処理とプロトコル処理を行う
ハンドオーバの観点では、透過ペイロードでは衛星交代は「同じ地上gNBに対して別の経路で接続するだけ」になり、Layer 2/3のハンドオーバではなくRRC接続再構成として扱える可能性があります。一方、再生ペイロードでは衛星 = gNBなので、衛星交代がそのままXnハンドオーバ(gNB間ハンドオーバ)に対応します。
Tracking Area更新と位置管理
地上セルラーでは、端末が一定範囲のセル群(Tracking Area, TA)から出ると位置登録(TAU)を行います。LEO NTNでは衛星が動くので、Tracking Areaの定義そのものを再考する必要があります。3GPPでは大きく次の2方式が議論されました。
- 衛星固定TA: TAは衛星ビームに紐づく。衛星が動くとTAも一緒に動くため、ユーザは静止していてもTAUが頻発する
- 地上固定TA: TAは地表のグリッドに固定。どの衛星が上空にいてもTAは同じ。サーチエリアの管理は地上側
LEOでは地上固定TAが標準になりつつあります。ユーザの地理的位置(GNSSで取得)を端末が報告し、衛星はそれを地上のAMFに転送する仕組みです。これによりTAUの頻発を防げます。
コンテキスト転送のタイミング
ハンドオーバ時のコンテキスト転送はXnインタフェース(gNB間直結リンク)または5G CoreのAMF経由で行われます。LEOでは次の3つの転送遅延が積み重なります。
- ソース衛星 → 地上gNB/コア: 片道数ms
- ソースgNB → ターゲットgNB: 地上ネットワーク経由、典型的に10〜50ms
- ターゲットgNB → ターゲット衛星 → ユーザ: 再度片道数ms
合計で20〜80msのコンテキスト転送遅延となり、これに加えてターゲット衛星とのランダムアクセス手順(PRACH、RAR、Msg3/4)が必要です。CHOによる事前準備が効くのは、まさにこの転送遅延を可視時間の途中に隠せるからです。
IPアドレスとモビリティ管理
通信中にユーザのIPアドレスが変わってしまうと、トランスポート層(TCP)の接続が切れます。LEO NTNでは衛星が変わってもIPアドレスを維持するために、地上のUPF(User Plane Function)がアンカーポイントになります。すなわち、ユーザのトラフィックは常に同じUPFを経由し、UPFから先で適切な衛星にルーティングされる構造です。
これはLEO特有ではなく、地上の5Gと同じ仕組みですが、衛星交代が頻発するためUPF再配置の戦略がより重要になります。UPFがユーザから遠すぎると遅延が増え、近すぎると衛星交代のたびにUPF切替も発生してしまうトレードオフがあります。
ハンドオーバを支えるネットワークアーキテクチャまで見たところで、最後に「これから何が起きるか」、6G NTNとマルチコネクティビティの方向性を整理しておきましょう。
6G NTNへの発展
3GPPの議論はすでにRel-18/19を経てRel-20、そして6Gの議論に移っています。ハンドオーバに関する6Gの方向性は、おおまかに次の3つにまとめられます。
方向性1: マルチコネクティビティ(Dual/Multi-Connectivity)
ハンドオーバを「衛星を切り替える」操作と捉えるのではなく、常に複数の衛星と並行接続し、リソースを動的に切り替える方向です。地上5GのDC(Dual Connectivity)を衛星に拡張したもので、Starlinkのフェーズドアレイ端末はすでにこれに近い能力を持っています。
マルチコネクティビティが定常状態になれば、ハンドオーバは「ソース衛星のリソース割当をゼロにする」だけになり、シームレス性が原理的に保証されます。代償はリソースの並行確保(地上のDCと同じ問題)ですが、衛星の余剰容量が大きい時間帯(昼間の海洋上空など)では十分に許容できると考えられます。
方向性2: 機械学習によるハンドオーバ予測と最適化
ハンドオーバのタイミング・候補選択を機械学習で最適化する研究が活発です。軌道は決定論的に予測できる一方、ユーザの移動・無線品質・干渉・トラフィック需要は確率的で、これらを組み合わせて最適化する問題は古典的なアルゴリズムでは扱いきれません。
たとえば、ユーザが車載端末なら次の30秒の位置を予測し、その先にあるビーム群への切替計画を組み立てる、といった用途で深層強化学習やグラフニューラルネットワークが用いられます。本ブログでも関連トピックを継続的に取り上げています。
方向性3: コンステレーション間ハンドオーバ
将来的にStarlink、OneWeb、Amazon Kuiperなどが共存する世界では、ユーザが異なるオペレータのコンステレーション間を行き来する可能性があります。これはローミングの拡張で、技術的にはコンステレーション間のXnインタフェース(または同等のもの)と、認証・課金の連携が課題となります。
地上携帯網がローミングを当然のように扱うのと同じ水準まで、衛星コンステレーション間のシームレスなハンドオーバを実現できるかどうかが、6G NTNの最終的な完成度を決めると言ってよいでしょう。
まとめ
本記事では、LEOメガコンステレーションにおけるハンドオーバを、幾何・分類・制御・プロトコルの4つの側面から解説しました。
- 可視時間の幾何: 三角形 $OUS$ の正弦定理から $\cos(\epsilon + \gamma) = R_E\cos\epsilon/(R_E + h)$ が導かれ、ここから最大地心角 $\gamma_{\max}$、可視時間 $T_{\text{vis}} = (2/\omega_{\text{rel}})\arccos(\cos\gamma_{\max}/\cos\gamma_{\min})$ が得られる
- 典型値: Starlink(550 km、25°)で約4分、OneWeb(1200 km、40°)で約5.5分。ユーザは数分に1回ハンドオーバする
- 階層: ビーム内追尾、ビーム間HO、衛星間HO、ゲートウェイHOの4階層が異なるタイムスケールで入れ子に発生する
- 方式: Make-before-break(シームレスだがリソース二重確保)、Hard handover(軽量だが瞬断あり)、Conditional Handover(軌道予測を活用、LEOで標準的)
- トリガ: 仰角閾値、C/N、残り可視時間、ビームフットプリントの複合判定。軌道の決定論性を最大限に使う
- 失敗パターン: Too late HO、Too early HO、ピンポンHOがあり、それぞれ通信断やシグナリング負荷増を招く
- レート見積もり: 1ユーザ約200秒に1回、世界全体で秒間数万件。地上携帯網と桁違いの制御プレーン負荷
- 3GPP NTN: 地上固定Tracking Area、CHOによる事前準備、UPFアンカーが鍵。透過/再生ペイロードでハンドオーバの実体が変わる
- 6Gの方向性: マルチコネクティビティの常態化、ML/RLによる予測最適化、コンステレーション間ハンドオーバ
LEOコンステレーションのハンドオーバは、軌道力学・通信工学・モビリティ管理・分散システムの交差点に位置する話題で、単一の教科書では完結しません。本記事の幾何的導出を起点に、リンクバジェット、ドップラー補償、衛星間光リンクなどの隣接トピックを組み合わせることで、メガコンステレーションの全体像が見えてきます。
次のステップとして、以下の記事も参考にしてください。