人気の「スプラトゥーン3」を通して、最新の通信技術の基本を学んでしまおうというこの特集。今回は実際にスプラトゥーン3のパケットをWiresharkでキャプチャーして、UDPの通信やNAT越えの仕組みを見ていきます。
なお記載内容については、実際の通信をキャプチャーした結果に基づいた筆者の考察や推測によるものであり、任天堂の公式見解ではないことを記しておきます。
任天堂が開発した汎用ゲームプラットフォーム「NPLN」
スプラトゥーン3では、「NPLN」という、任天堂がスクラッチから開発をした任天堂プラットフォーム向け汎用ゲームサーバーが使われ始めました。従来のプラットフォームである「NEX」はニンテンドー3DS/Wii Uからの世代で使われてきて、NPLNはそこでのノウハウを基に2021年から「Google Cloud Platform(GCP)」で稼働しているようです。オンライン対戦のマッチメイクの改善、安定性の向上が期待されます。
今回の検証で驚いたのは、スプラトゥーン3ではNintendo SwitchのNAT判定がDの環境でもプレーできます。つまりスプラトゥーン2ではプレーできなかったSymmetric NATの環境でもオンラインバトルが可能になったというわけです。スプラトゥーン3ではリレーを使っているようなことをネットで知り、実測してみたところ本当にリレーをしていたのです。これには本当に驚いて「凄い」の一言でした。
それでは早速、スプラトゥーン3のパケットをキャプチャーしていきましょう。検証を行った環境は以下の通りです。
・Nintendo Switch:有線LAN接続
・キャプチャーソフト:Wireshark
・上流ルーター:Raspberry Pi 4、Ubuntu 20.04
・スプラトゥーン3:Ver.1.2.0
Nintendo SwitchはUSBーEthernet変換アダプターを使い、有線LANで上流のギガビット対応LANスイッチに接続します。LANスイッチのポートミラー機能を使って、横付けしたWindowsパソコンにパケットをコピーし、そのパソコン上で動くWiresharkでNintendo Switchのパケットをすべてキャプチャーします。そして上流のRaspberry Pi 4をルーター化してNATの設定を変更し、オンラインバトル時のパケットの動きを観察していきます。