機内インターネット接続のRTTが遅い理由について考察してみる。
航空機のWiFiサービスでインターネット接続する場合は、RTTが0.8秒(800ms)以上の、割と遅めの値が出ます。
有線のインターネット接続では光回線なら数ミリ秒、ADSLでも40ms程度ですし、モバイル回線の場合でも300ms前後です。だからこれは相当遅い部類に入ります。たとえば ssh みたいにインタラクティブな作業を行う場合は別ウィンドウでエディタを立ち上げてそちらに一旦入力したものをコピペするなどの工夫が必要です。キーボードから都度入力していたのではエコーバックが遅すぎてストレスがたまります。また RemoteDesktop接続等で使うことを考えたらアカンレベルです。
しかし帯域幅は案外あります。speedtest.netで計測してみると、ダウンロード速度は 8Mbps くらい出ます。これはADSL回線程度の実効速度ですよね。だから RTT は遅いけど、通信が始まったら案外悪くない程度の速度でデータ通信できます。
では、航空機内WiFiからのインターネット接続は、なぜRTTがこんなに遅いのでしょうか。
遅い要因のうち、計算からすぐに導き出せるのは「静止起動上の衛星との通信にかかる時間だけでも約0.5秒が必要」であること。静止軌道は地上からおよそ3万6千kmほど上空にありますから、航空機から衛星を経由して地上施設に届くまでに7万2千kmの距離をかけて電波の送信が行われます。そして、その通信に対する返答も同じ経路をたどるのですから、さらにその倍の距離が必要です。つまり、機内からサーバへの通信に対して、サーバから機内への返答が来る処理で1回のやりとりが完了するのですから、合計で14万4千kmの距離を電波が飛んでいるわけです。
そして光や電磁波の速度は秒速30万kmなので、これらの数値で電波の移動時間を計算すれば約480msの時間が掛かることが導かれます。
次の要因は「機内WiFiを提供する会社の地上施設が日本国内には無いので、日本国内のサーバまでのRTTが200ms程度かかる」ことです。これを機内から実測するのは難しいので、代わりに日本国内のノードから機内WiFiの地上施設までのRTTを計測してみることにします。
このためには「機内WiFiの地上施設のIPアドレス」を知る必要がありますが、これは「機内WiFiを利用中のクライアントから確認くんにアクセスしてIPアドレスを調べる」という方法を使います。
ここまでのネタが揃ったら日本国内のノードから traceroute してみればOKです。で、実際にやってみると以下のように210ms前後の値が出ています。途中は省略してますが、このケースでは 17 hop 以降は表示不能でした。IPアドレスは概ね合致するところまで追えているので、まあこれでもOKでしょう。
$ traceroute 12.130.xxx.xxx traceroute to 12.130.xxx.xxx (12.130.xxx.xxx), 30 hops max, 38 byte packets (中略) 17 12.130.115.249 (12.130.115.249) 209.279 ms 219.409 ms 12.130.115.245 (12.130.115.245) 210.035 18 * * *
以上のような要因から、理想的な状態で通信が行われていたとしても、機内WiFiで日本国内のノードとのRTTが0.7秒(700ms)以下となることは多分ムリです。