2021/12/16のロドストのお知らせで、2002エラーの原因として不具合が存在していたことがユーザーからの検証レポート・報告によって判明した旨が記載されていました。
この検証レポートがRedditに掲載されていたので紹介します。


Lodestoneお知らせ > 混雑への対応について(12月16日時点) より

■■ログイン待機中に発生している2002エラーについて■■

 ログイン待機中に発生する2002エラーについて、回線不調による切断以外に、不具合が発生していることが確認されました。本不具合は旧FFXIVの頃に作成されたログインに関するプログラムの一部で、プレイヤーの皆さんからのご報告、検証レポートにて原因を特定することができました。開発チームで特定に至れなかったことをお詫びするとともに、詳細なご報告を多数いただいたことに感謝いたします。


Wiresharkを使った2002エラー検証

Googleドキュメント - Error 2002: Investigation using Wireshark


主な内容:

スクエニの主張と異なり、エラー2002はインターネット接続の問題ではありません。もちろん回線状況が悪ければ問題は悪化しますが、ネットワークが完璧でもピーク時には定期的にエラー2002に遭遇することになります。

まとめとして、ログイン待機中にゲームクライアントは15分ごとに接続を一旦終了し、あたかも「ゲーム開始」ボタンを押した時のようにサーバーへの再接続を強制的に(目に見えない形で)行っています。このとき、ログインサーバーがたまたま列に入れさせないという判断をすると、エラー2002が表示され、クライアントを終了しなければならなくなります。たとえ自宅のネットワーク環境が完璧であっても、エラー2002はランダムに発生し、これを防ぐことはできません。


ネットワークのログ/トレース用ツールWiresharkによる検証

通常のログイン待機時 30秒間の通信ログ:
wireshark0
5~10秒ごとに小さいパケットの送受信を行っている。30秒に1回程度、赤線部分の662byte固定のパケットがサーバーから送信されてくる。このタイミングで待機人数の順番表示が更新される。


15分に1回:
wireshark1
15分に1回必ず、ローカルマシン(ゲームクライアント側)から自主的に通信を終了するFINパケットがログインサーバーに送信され、その後すぐに新しい接続を開始するSYNパケットが送信される。サーバーは新しい接続を受理し、認証データやログイン待機情報を含むと思われる比較的大きいパケット(赤線部分)を送信している。


エラー2002が発生した際の例:
wireshark2

同様にローカルマシンがFINパケットを送信した後SYNパケットを送信し、ログインサーバーは両方とも受理する。パケットロスや通信エラーはなく、全ての通信は正常に行われている。しかし、サーバーは通常の「待機列へようこそ」の大きいパケットを送信する代わりに、FINパケットを送信している。
これは新たな接続が受理されてからわずか1秒未満で行われる。サーバーがFINパケットを送信した後には、ゲームクライアントからは一切の通信を行おうとせず、復帰する方法はない。なお、クライアントはここからエラー2002のメッセージを表示するまでに10秒程度かかる。


つまりどういうこと?

ログイン待機列に入ろうとした際に表示されるエラー2002と、待機列の途中で発生するエラー2002には機能上の違いはありません。いずれもログインサーバーが新しい接続を拒否した際に表示されるエラーであり、自宅のネットワーク状況とは関係ありません。全ての送信パケットは正常に受理されています。サーバーにキックされているのです。

なぜキックされるのか、それはわかりません。不具合か、負荷軽減のための意図的なものか、サーバーが接続を切断する理由は様々です。理由が何であれ、それは回線状況によるものではなく、ログインサーバーが意図的に新しい接続を切断しているためです。

最も簡単な修正は、単純にクライアントが健全な接続を15分ごとに終了させないようにすることです。これをやらない理由がありません!

----------

2021/12/22追記:
パッチ6.01で15分ごとの再接続ガチャが行われないよう修正されました。
2002エラーは最初の接続時に人数オーバーしているか、待機列の途中ではネットワーク状況に問題にある場合にしか発生しなくなります。