Valve GameNetworkingSockets P2P 接続の問題

GameNetworkingSockets における P2P 接続の失敗

Valve の GameNetworkingSockets は、重大なピア・ツー・ピア (P2P) 接続の失敗に直面しており、接続が高レイテンシのリレーサーバーへフォールバックすることを余儀なくされています。当初はイスラエルやその他の中東諸国に影響を与える地域的な問題として報告されていましたが、コミュニティによるさらなる調査により、問題はより広範囲に及んでいる可能性があることが示唆されています。

技術的な根本原因と症状

この失敗の主な症状は、直接的な P2P リンクを確立できないことです。この失敗は、具体的に Session Traversal Utilities for NAT (STUN) プロセスに関連しています。STUN が失敗すると、システムは直接接続に必要なパブリック IP とポートを特定できなくなり、その結果、リレーサーバーへのフォールバックが発生し、プレイヤーのレイテンシが大幅に増加します。

コミュニティによって特定された回避策

ユーザーは、少なくとも3つのゲームにおいて、steamwebrtc.dll ファイルを手動で置き換えることで一時的な修正方法を特定しました。そのプロセスは以下の通りです:

  1. 古いバージョンの steamwebrtc.dll ライブラリを入手する。
  2. この古い DLL をゲームの ./binaries フォルダに直接コピーする。

この回避策は、3月頃の Steam アップデートによって、WebRTC ベースのネットワークコンポーネントにデグレ(退行)が導入された可能性を示唆しています。

コミュニティによる分析と理論

Hacker News や GitHub でのユーザー間の議論では、この停止に関する原因についていくつかの理論が明らかにされています:

インフラストラクチャと地域的なブロック

一部のユーザーは、この問題が Valve のコード内のバグではなく、外部のネットワーク干渉の結果であるという仮説を立てています。一つの理論では、STUN は暗号化されていないため、暗号化された WebRTC トラフィックと比較して、ブロックされたり DDoS 反射/増幅攻撃に悪用されたりする可能性が高く、特定の地域における ISP レベルまたは国家レベルのブロックにつながっている可能性があると示唆されています。

ソフトウェアのデグレ

他のユーザーは、問題の発生時期に注目し、それが 3 月の Steam アップデートと一致していることを指摘しています。古い DLL に戻すことで一部のユーザーの機能が回復するという事実は、Valve のネットワークスタック内のソフトウェアのデグレという理論を強く支持しています。

サードパーティ製タイトルへの影響

この問題が、Valve のネットワークインフラに依存している注目度の高いタイトルに影響を与えている可能性があるという推測があります。例えば、一部のユーザーは、Street Fighter 6 が数ヶ月前に P2P からリレー接続に切り替わったように見えたと指摘しており、これはこれらの広範な GameNetworkingSockets の問題の副作用であった可能性があります。

調査結果の要約

| 側面 | 詳細 | | :--- | :--- | | | コアの問題 | 直接的な P2P リンクを妨げる STUN の失敗 | | 結果 | 高レイテンシのリレーサーバーへのフォールバック | | 疑われるトリガー | 3月の Steam アップデート | | 回避策 | steamwebrtc.dll を古いバージョンで手動で置き換える | | 影響を受ける地域 | 当初はイスラエル/中東、潜在的には全世界 |

Sources