プレイ中に90002エラーが出るようになった。
対策したのでそのメモ。
環境
・Nuro光
・有線接続
・Windows10によりプレイ
現象
FF14のみ落ちる。
前提
https://arrstatus.com/で自分のDCのサーバーの状態およびIPアドレスを確認する。
コマンドプロンプトを開き、
ping 124.150.157.157 ← IPアドレスは適宜変更する
tracert 124.150.157.157 ← 同上
を確認し、遅延が発生していないか確認する。
自分の環境では問題なし。
やったこと
1, 通信機器の再起動 ⇒ 効果なし
2, 通信機器のファームウェア更新 ⇒ 効果なし
3, Windowsのファイアウォール確認 ⇒ FF14は解放済み
4, ルータのポート開放 ⇒ UPnPにより問題なし
5, プロバイダのセキュリティサービス ⇒ 未加入
6, スタートアップの常駐を外した上でFF14の再インストール ⇒ 面倒なのでパス
7, Realtek PCIe GbE Family Controllerのドライバ更新 ⇒ 効果なし
8, Realtek PCIe GbE Family Controllerのプロパティ設定 ⇒ 効果あり
8の内容
デバイスマネージャ>ネットワークアダプタ> Realtek PCIe GbE Family Controller
プロパティ>詳細設定
・フローコントロール ⇒ 「無効」
・省電力型イーサネット ⇒ 「無効」
フローコントロールとは、ある通信機器の通信が厳しくなった時に相手の通信機器にSTOP命令を出し通信を待ってもらう機能のようです。
このSTOP命令により接続が一時的に中断され切断された可能性が考えられます。
フローコントロールを無効にすると、通信パケットの損失が発生しやすくなるデメリットがあるようです。そのため再送が必要になるのかもしれません。
(チラ見程度の調べなので、あくまでイメージです。)
省電力型イーサネットを無効にすると、スリープ時にも通信ができる状態になるようです。
おまじないです。
以上
追記
再発しました。
考えられる理由
https://jp.finalfantasyxiv.com/lodestone/character/19519249/blog/3935544/どうやらハートビート(KeepAlive?)が切断されるらしい。
Wiresharkを利用
どうやら相手先のIPアドレスは、GAIA鯖のIPアドレスは124.150.157.39でした。
フィルタ ip.addr == 124.150.157.39
画像は90002エラーで落ちた瞬間のWiresharkのログ。
RSTの表示が出ていましたので、鯖から切断されているのがわかります。
KeepAliveは関係なさそうですね。
あとは切断される理由がわかれば・・・。
追記
https://www.reddit.com/r/ffxiv/comments/b386am/90002_error_every_2_hrs_on_5_mins/追記
・QoSパケットスケジューラーをオフにする ⇒ 効果不明
解説: 常に通信できるように通信帯域を使い切らないようにする機能。
それをオフにするということは常に全力で通信しようとするため、
内部で渋滞を引き起こして逆に遅くなるとも言える。
・受信ウィンドウ自動チューニングレベルの変更 ⇒ 効果不明
解説: 通信をより効率的に行うように調整してくれる。
コマンドプロンプトに、
netsh interface tcp set global autotuninglevel=restricted
とする。
・SNPの無効化 ⇒ 効果不明
コマンドプロンプトに
netsh int tcp set global rss=disabled (CPUの分散を無効化する)
netsh int tcp set global netdma=disabled (CPUを経由せずメモリへ送る機能を無効化する)
netsh int tcp set global chimney=disabled (ネットワークのチップではなくCPUに処理させる)
と入力する。
追記
再発。
ルータのuPnPを見直し。
F660Aというルータです。
広報の周期(分) 30分 ⇒ 5分に変更
生存時間(ホップ数) 4のまま維持
追記
安定しました。
以上