ミリシタと回線速度
みなさんミリシタ3周年イベントお疲れ様でした。
普段のイベントと違ってアイドル別にランキングが設定されていたり、お祭り感があったりで多くの人が走るミリシタ周年イベントですが、私も走って総合3位にランクインすることができました。
めっちゃうれしい
イベント終了後には多くの人が周年を完走した感想(激うまギャグ)をブログやTwitterに投稿していたので、なるほどなぁといろいろ読みました。みなさんのイベントに対する熱意であったり考え方を知ることができてとても有意義でした。
そこで私も「来年以降周年イベント走りたいけど回線環境はどんなもん揃えたらいいの?」って人の手助けになればと、あくまで素人の考えですがブログを書こうと思います。
- イベランにおいて回線速度はあまり気にしなくて良い
- 周年イベランの事前準備について
- チケ貯め→SV叩きで発生する通信
- ツアーで発生する通信
- イベラン外で発生する通信
- まとめ
- おまけ1(セルラが目に見えて遅い理由)
- おまけ2(端末性能差)
イベランにおいて回線速度はあまり気にしなくて良い
これがこの記事で私が伝えたいことです。
もちろん速ければ速いに越したことはないですが、必要以上に回線速度を重要視しているツイートやブログを最近多く見るような気がします。
リフレッシュタイムがあり上位を狙うならフル稼働が当たり前という周年イベントの特性上、勝ち抜くにはライバルより速くポイントを稼ぐ必要があります。お金を使って手っ取り早く時速を上げる方法として、高性能な端末を買って処理速度を上げる、高速な回線を契約して通信速度を上げる、の2つの方法が思い浮かびます。
でもそんなことは誰でも思いつくわけで、上位陣はほぼ全員iPad Proを持っています。しかし回線については住んでいる地域や家の構造の制約があったり、引き込み工事をする必要があったりとiPadほど簡単に入手できるものでは無く、さらに同じ回線を契約していても人によって回線速度は違うため、上位陣横並びの環境にはなっていません。
だからこそ「差が付くとしたら回線差だ!」と考える人が多いのだと思います。
確かに自動化ツール等を使って理論値を追い求めるなら回線速度は最重要かもしれません。でも人間の連打間隔は速くて70 msとかだと思いますし、人が操作する前提で現実的に考えると回線速度は2桁Mbpsあれば十分戦えるというのが私の考えです。
実際に私はJCOMのVDSLという回線カースト最下層の人間ですが、おすすめ2:02の日には10,710何回か入れましたし周年で時速負けしてると感じたことはありませんでした。
周年イベランの事前準備について
多くの人がまとめているのであまり書くことは無いですが、一応周年イベの総合ランキングで上位を狙うために私が最低限必要だと思うものを書いておきます。
通常イベはエアプですが稼働が物を言う世界だと思うのでiPad Proやアダプタは必要無いかもしれません。あくまで周年イベの話です。
回線速度は重要じゃないと言っておきながら光回線としているのは、ある程度のPing値と安定性は必要だからです。流石にADSLとかセルラはキツいと思います。なお、今回は光回線を前提とした議論であり、フェージング等の影響が大きくTCPエラーが多発するセルラは対象としていないので注意です。
スタミナ上限ですがカンストは難しいと思うので、自分が納得できるとこまで上げておけばいいと思います。私は230で妥協しました。流石に来年はカンスト勢多そうですが。
チケ貯め→SV叩きで発生する通信
お仕事でチケ貯め→SV叩きの動きをする場合に発生するサーバとの通信をみてみます。
注:イベント期間外のデータなのでトリガー/pt加算処理が行われていません
本来はAppleやINCA Internet等との通信も発生しますが、簡単のためミリシタのゲームサーバと通信を行っているパケットのみを対象とします。
パッとみてお仕事をしてる時間とSVを叩いてる時間が分かると思います。また、お仕事前後で行う通信よりもSV前後で行う通信の方がより多くのパケットをやりとりしていることが分かります。
ちなみにSV開始後20秒ほどの時点でやりとりされているパケットはTCPコネクションをactive closeするためのもので、これ以降SV中はサーバと一切通信を行わず、SV終了時に3way handshakeを経て再びサーバとのコネクションを確立しています。
パケット数をみても実際に通信しているデータ量がよくわからないのでByte/secでみてみます。
多少のブレはありますがおおよその値として
- お仕事前に行う通信・・・1,500 Bytes/sec
- お仕事後に行う通信・・・5,000 Bytes/sec
- ライブ前に行う通信・・・26,000 Bytes/sec
- ライブ後に行う通信・・・16,000 Bytes/sec
であることが分かります。
ツアーで発生する通信
参考にツアーイベントにおける通信量もみてみます。
お仕事とライブの前後にトリガー/pt加算処理やイベントトップページへの遷移等が挟まるため、通信量が増加しています。
おおよその値として
- お仕事前に行う通信・・・10,000 Bytes/sec
- お仕事後に行う通信・・・10,000 Bytes/sec
- ライブ前に行う通信・・・28,000 Bytes/sec
- ライブ後に行う通信・・・18,000 Bytes/sec
であることが分かります。
つまり、単純に考えるとミリシタのイベラン中に必要な伝送速度は高々0.3 Mbpsとなります。
イベラン外で発生する通信
追加データあり(ミリシタでの表記は1 MB)の場合の日付更新ログイン時における通信量をみてみます。
瞬間的にですがおおよそ5,000,000 Byte/sec、つまり40 Mbps程出ています。
楽曲データ一括ダウンロード時の通信量もみてみます。
おおよそ6,000,000 Byte/sec、つまり50 Mbps程は出ています。
日付更新はイベラン中に挟むこともあると思いますが、瞬間的なものなのであまり神経質になる必要はないと思います。まあ2桁後半Mbps出る回線だと安心できます。
まとめ
ミリシタのイベラン中に発生する通信量はかなり少ないことが確認できました。一応出来る限りバリデーションはとっています。
イベラン中は回線速度に2倍の差があったとしても数msの差しか生まれません。これは人間の連打間隔のオーダに及びませんし、スタミナ上限の差による余計な石割り動作、サビ残、タップミスで簡単にひっくり返ります。
また、それなら有線接続する必要ないのではと思われる方がいるかもしれませんが、無線接続はPing値で不利になる上に不安定なのでやめた方が良いです。
Ping値は小さければ小さいほど良いです。数msの差では影響ないですが、Ping値が100 ms近くもあると明確に不利になります。全く同じ連打速度であっても相手よりPing値が50 ms大きいとお仕事一回するごとに0.2秒以上離されます。個人的には15 ms前後あれば十分だと思います。
解析してみるとどのような条件でどこの通信量が増えるのか分かったりして面白いので興味ある人は是非やってみてください。
おまけ1(セルラが目に見えて遅い理由)
この記事を読んで「ミリシタのイベランに回線速度差は関係ないって言ってるけどセルラでやると目に見えてConnecting長いんだが?」って言う人がいると思うので、簡単に書いておきます。
例としてツアーイベントにおけるお仕事10回→イベ曲の流れで通信量をみてみます。上図がセルラ(RSRQ: –13 dB)、下図が光回線で、青棒がミリシタサーバとの総通信量、赤棒がTCPエラーにより再送処理したパケットの通信量です。
伝送速度については必要な時にはセルラでも光回線に遜色ない値が出ることが分かります。しかし、TCPエラーによる無駄なパケット再送が多くコマ切れな通信が多いため、お仕事チャンスが多かった光回線よりもイベ曲終了までの時間が長くなっています。広義の回線が遅い状態です。
セルラでTCPエラーが多発するのは、基地局と端末間の伝搬路の劣悪さが大きな原因であると考えられます。光回線でのTTLが118、セルラでのTTLが123なのにこの差ですからね。
またセルラでコマ切れな通信が比較的多くなっている原因としてはTCPエラーの多さ、Ping値の大きさの他に、Ethernetがベースバンド伝送であることに対してセルラはブロードバンド伝送で下りリンクにOFDMAを採用しており、ユーザが使える帯域幅と時間がRB単位で制限されてしまうためだと考えられます。ちなみにWi-Fiとして多くの人が使っているであろうIEEE 802.11acももちろんブロードバンド伝送でOFDMを用いています。セルラよりは広い帯域幅を使えますが、CSMA/CAによるバックオフがフレームごとに挟まります。
おまけ2(端末性能差)
ライブ前TCPコネクションの最後のACKから、ライブ後TCPコネクションの3way handshakeまでの時間を調べたら連打や通信環境に依存しない端末性能差が分かるのではと思って適当に調べてみました。
普通のライブでやるのは面倒だったので2D設定のリハーサルでやりました。
試行回数が少なすぎて信頼性はないですが思ったよりもiPhone 11 Proが速くてびっくりしました。
ライブ一回分の処理のみの結果なので小さな差しかついていませんが、お仕事では頻繁に処理挟みますしイベント期間全体でみると大きな差になります。