「通信エラー」は、どの層の話か——ゲームプランナーのためのネットワーク入門①
教科書のネットワークを、ゲームの言葉へ
編者のうみちゃんは、プランナーになる前の2000年前後、数年間にわたり書籍編集者として、第二種情報処理技術者試験と基本情報技術者試験の教科書を複数編纂していた。第二種が基本情報技術者試験へ改称されたのは2001年である。[1]
それから時代が進んだ今も、IPA(Information-technology Promotion Agency、情報処理推進機構)の「基本情報技術者試験(レベル2)シラバス Ver.9.2」には、中分類「ネットワーク」がある。通信の方式や決まり、運用管理までを扱う分野だ。[2] 本シリーズは、こうした試験の知識をゲームの現場の言葉に置き換える試みである。
親記事の「家庭用ゲーム機のネット対戦――物理的遅延の構造と遅延を隠す技術」では、遅延と、それを隠して遊びを成立させる技術を扱った。本シリーズは、その第4章「ネットワーク通信の基礎」を掘り下げる。
第1回で持ち帰ってほしいのは、 「通信エラー」は症状の名前であり、まず、どの層で起きているかを切り分ける という考え方だ。原因の候補を整理できれば、誰に何を調べてもらうか、プレイヤーに何を案内するかが変わる。
同じエラー文に、違う原因が隠れている
対戦へ入ろうとして、「通信エラーが発生しました」と表示されたとする。この一文だけからは、何が起きたかは分からない。
電波が届かなかったのかもしれない。ケーブルが抜けていたり、ルーターが不調だったりする可能性もある。家庭の外の回線、アドレス変換の仕組み、ゲームのサーバーに原因がある場合も、画面には同じ文言が出せてしまう。
ここで必要なのが 切り分け である。どこまでは動いており、どこから失敗しているかを調べ、原因の候補を絞る作業だ。IPAのシラバスでも、ネットワーク管理の「障害管理」に「障害の切分け」「障害原因の特定」が挙げられている。[2]
たとえば、「このゲームのログインだけが失敗する」のか、「同じ機器からインターネットを使う機能がすべて失敗する」のかで、調べ始める場所は異なる。別の機能が動いたと分かっても、確かめられたのはその機能が使う経路までだ。まずは、失敗する範囲を言葉にすることが出発点になる。
通信を5段に分ける
通信の役割を段ごとに整理する考え方を、階層モデルという。下の層がデータを運ぶ土台を提供し、上の層がそれを使って、より具体的なやり取りを実現する。
代表的なのが、OSI(Open Systems Interconnection)基本参照モデルである。下から物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層の7層に分ける。IPAのシラバスにも登場する。[2]
一方、インターネットで使う通信の決まりの集まりが、TCP/IP(Transmission Control Protocol / Internet Protocol)である。その階層は、リンク層、インターネット層、トランスポート層、アプリケーション層の4層で説明される。インターネットの技術仕様を記したRFC 1122も、この構成を示している。[3]
本シリーズでは、ゲームの話につなげやすい 5段の地図 を使う。TCP/IPのリンク層に当たる範囲を物理層とデータリンク層に分け、OSIの上位3層に相当する役割はアプリケーション層にまとめる。両モデルは役割を対応させるための地図として使う。
| 層とモデルの対応 | ゲームでの例・受け持つ役割 | 扱う回 |
|---|---|---|
| 物理層(OSI第1層/TCP/IPのリンク層に相当する範囲) | ケーブルや電波で信号を運ぶ。近くのゲーム機同士のローカル通信でも、電波が届くことが土台になる | 第2回:物理層とローカル通信/第5回:セルラーの電波 |
| データリンク層(OSI第2層/TCP/IPのリンク層に相当する範囲) | Wi-FiやEthernetによる、同じネットワーク内での受け渡し。ゲーム機と家庭の無線接続機器などをつなぐ | 第2回:Wi-Fi Direct、Ethernet/第5回:移動時の接続 |
| ネットワーク層(OSI第3層/TCP/IPのインターネット層) | IPで宛先を扱い、ルーターがネットワーク間を中継する。家庭と外部のアドレスを変換するNATも、ここを起点に考える | 第3回:IP・NAT・ポート |
| トランスポート層(OSI第4層/TCP/IPのトランスポート層) | TCPやUDPで、機器上の通信先へデータを渡す。ポート番号で通信の窓口を区別する | 第3回:ポート/第4回:TCPとUDP |
| アプリケーション層(OSI第5〜7層に相当する役割/TCP/IPのアプリケーション層) | HTTPによるサーバーとの要求・応答、DNSによる名前からアドレスへの対応付け、ゲーム独自の通信 | 第6回:スマホゲームのHTTP通信 |
IP(Internet Protocol)は、ネットワークをまたいでデータを届けるための決まりであり、IPアドレスはその宛先などを示す住所に当たる。NAT(Network Address Translation)はアドレスを変換する仕組みだ。TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、アプリケーション間でデータを運ぶための通信方式である。
HTTP(Hypertext Transfer Protocol)は要求と応答をやり取りする決まり、DNS(Domain Name System)は名前とIPアドレスなどを対応付ける仕組みである。今は、それぞれがどの段の仕事かをつかめればよい。
表の分類には、話を整理するための簡略化がある。Wi-Fiや、有線接続で使うEthernetの規格は、物理層とデータリンク層の両方に関わる。ローカル通信も用途の呼び名であり、物理層だけで成立するわけではない。また、家庭で使うNATはポート番号の変換を伴う場合もあるため、第3回では隣り合う層をまとめて扱う。
下が使えなければ、その土台に依存する上も使えない
この地図で覚える基本は、 必要な下の層が使えなくなると、その上の通信も成立しない ことである。使っているケーブルが抜けて経路が失われれば、そのケーブルを通るログイン要求も届かない。
逆に、ログイン処理のあるサーバーだけが不調でも、Wi-Fi接続まで失敗するとは限らない。「上の層で失敗した」という結果だけでは、下の層の故障を断定できないのだ。
ここでいう「使えない」は、その通信が必要とする経路や機能が失われている状態を指す。少し電波が弱いだけで、すべてが必ず止まるという意味ではない。別の経路へ切り替わって通信が続く場合もある。切り分けでは、対象の機器、相手、時刻、通信方式をそろえて考える必要がある。
ゲーム機の接続テストを、層の地図で読む
家庭用ゲーム機の接続テストは、ゲーム本編を起動する前に、通信の土台を調べる手掛かりになる。Nintendo Switchでは、接続テストの結果からNATタイプを確認でき、通信速度も表示される。[4][5]
これを層の地図で読むと、「機器がネットワークにつながるか」「IPアドレスを使って外部へ通信できるか」「相手と接続する際の制限はあるか」「データをどの程度の速さで運べるか」と、下の土台から条件を積み上げて考えられる。これは切り分けのための読み方であり、画面の表示順や内部の検査順と層が一対一に対応するという意味ではない。速度は複数の層の状態が重なった結果でもある。
任天堂の日本語サポートは、エラーコード「2306-0532」「2306-0533」について、インターネットには接続できていても、自宅または通信相手のネットワーク環境で「NAT越え」がうまくできていない可能性があると案内している。[6] NAT越えとは、NATのある環境で相手との通信を成立させるための処理だ。
さらに米州の公式サポートは、制限の強いNATタイプでは一部のオンライン機能が使えない場合があり、 自分と相手の両方のNATタイプが接続に影響する と説明している。[7] 「インターネットにはつながるのに、この相手と対戦できない」という状況を整理するうえで、大切な視点である。
接続テストの成功は、個々のゲームのログインや対戦がすべて成功する保証にはならない。それでも、どこまでは通信できたかが分かれば、次に調べる範囲は狭まる。
スマホでは、移動と切り替えが加わる
スマートフォンには、Wi-Fiに加えて、携帯電話の基地局を通じて通信するセルラーがある。4G(4th Generation、第4世代移動通信システム)で使われるLTE(Long Term Evolution)や、5G(5th Generation、第5世代移動通信システム)が身近な例だ。
Wi-Fiからセルラーへ切り替わることもあれば、移動中に接続先の基地局を切り替えることもある。後者をハンドオーバーと呼ぶ。IPAのシラバスにも、LTE、5G、ハンドオーバーが用語として挙げられている。[2]
スマホでは、先ほどの5段に 「通信中に接続先や経路が変わる」という観点 がもう一つ加わる。正式な第6の層が増えるわけではない。プレイ開始時には通信できても、その状態が続くとは限らないことを、仕様や画面設計で考える必要がある。詳しくは第5回で扱う。
プランナーは、案内と復帰の仕様に使う
層の地図は、エラー文やリトライの画面を考えるときに役立つ。リトライとは、失敗した操作をもう一度試すことである。まず、プレイヤーが動かせる条件と、運営・開発が直すべき条件を分ける。
- 電波や家庭内の接続が疑われるとき:プレイヤーには、電波のよい場所への移動や、公式の案内に沿ったルーターの再起動などを提示する。任天堂のNAT関連サポートでも、ネットワーク機器の再起動が対処に挙げられている。[7]
- 運営側のサーバー障害が分かっているとき:運営が障害と復旧状況を告知し、プレイヤーには時間を置くことを案内する。家庭のルーターを操作させても、運営側の故障は直らない。
- 一時的な失敗から戻すとき:開発側が、再送する条件、待つ時間、再試行の上限、途中の画面状態を設計する。プレイヤーが再試行ボタンを押す場合も、裏側で何を繰り返すかは仕様になる。
「時間を置く」という同じ案内でも、待つ理由と、次に試す条件が伝われば判断しやすくなる。原因が分からない段階では、電波やサーバーのどちらかに決めつける文言を避け、分かっている状態と次の行動を示したい。
開発やサポートへの相談も具体的にできる。たとえば、「接続テストは成功する。ゲームのログインはできる。特定の相手との対戦開始だけが失敗する。発生時刻とエラーコードはこれだ」と伝える。ネットワーク担当には相手との接続条件を、サーバー担当には同時刻の記録を、クライアント担当には画面に至る処理を調べてもらう手掛かりになる。担当の分け方は組織によるが、観測した事実は共通の材料になる。
再送には、最初の操作がすでにサーバーで実行済みだった場合も考える必要がある。繰り返しても同じ効果に収める性質を 冪等性(べきとうせい) といい、二重購入などを防ぐ設計は「『受け取る』を一度だけにする――ゲームプランナーのための連打と通信再試行の話」で扱っている。
次回から、地図の各段を歩く
以降は、この5段をゲームの場面に結び付けて見ていく。
- 第2回:物理層とローカル通信。ケーブルや電波を出発点に、機器同士を直接つなぐWi-Fi DirectやEthernetを扱う。中心は物理層とデータリンク層である。
- 第3回:IP・NAT・ポート。ネットワーク層を起点に、宛先とアドレス変換、トランスポート層の窓口となるポートを整理する。
- 第4回:TCPとUDP。トランスポート層で、通信の性質とゲームが必要とする条件を考える。
- 第5回:セルラー(4G・5G)。物理層やデータリンク層の無線接続から、移動や回線切り替えが上の通信へ及ぼす影響までを扱う。
- 第6回:スマホゲームのHTTP通信。アプリケーション層の要求と応答を、ゲームの操作や画面の状態へつなげる。
- 番外候補:データ量と通信時間。特定の1層に閉じず、運ぶ量と待つ時間の関係を考える。
通信エラーに出会ったら、「どこまでは動いているか」を一つずつ確かめる。その材料を層の地図に置くことで、次に誰へ何を頼み、プレイヤーへ何を伝えるかを考えられるようになる。
References
1. IPA「情報処理技術者試験 新試験制度の手引 ―高度IT人材への道標―」 — IPA、2007年12月25日。別紙1「情報処理技術者試験制度の変遷」(55/102ページ)を参照。
2. IPA「基本情報技術者試験(レベル2)シラバス Ver.9.2」 — IPA、2026年1月8日掲載。中分類「ネットワーク」の各項目と「モバイルシステム」を参照。
3. R. Braden編「Requirements for Internet Hosts — Communication Layers(RFC 1122)」 — RFC Editor、1989年10月。§1.1.3「Internet Protocol Suite」を参照。
4. 任天堂「【Switch 2 / Switch】NATタイプの確認方法」 — 任天堂サポート、日付記載なし(2026年11月1日参照)。
5. Nintendo「Troubleshooting Slow Download and Upload Speeds on Nintendo Switch」 — Nintendo Support(米州)、日付記載なし(2026年11月1日参照)。接続テストの結果項目を参照。
6. 任天堂「【Switch】エラーコード『2306-0532』『2306-0533』が表示されました。どうしたらいいですか?」 — 任天堂サポート、日付記載なし(2026年11月1日参照)。
7. Nintendo「NAT Related Troubleshooting on Nintendo Switch 2 and Nintendo Switch」 — Nintendo Support(米州)、日付記載なし(2026年11月1日参照)。双方のNATタイプの影響と、機器の再起動に関する案内を参照。
この文書は、Perplexity、Claude、ChatGPT の3つのAIの支援を受けて著述されたものです。引用画像を除き、MIT License にて提供されています。