Valve GameNetworkingSockets P2P 連線問題
GameNetworkingSockets 中的 P2P 連線失敗
Valve 的 GameNetworkingSockets 正經歷嚴重的 Peer-to-Peer (P2P) 連線失敗,迫使連線必須回退到高延遲的轉發伺服器 (relay servers)。雖然最初報告為影響以色列和其他中東國家的區域性問題,但社群的進一步調查顯示,該問題可能更為廣泛。
技術根本原因與症狀
此失敗的主要症狀是無法建立直接的 P2P 連結。此失敗特別與 Session Traversal Utilities for NAT (STUN) 程序有關。當 STUN 失敗時,系統無法確定直接連線所需的公用 IP 和連接埠,導致回退到轉發伺服器,這會顯著增加玩家的延遲。
社群發現的權宜做法
使用者已透過手動替換 steamwebrtc.dll 檔案,為至少三款遊戲找到了臨時解決方案。該程序包括:
- 取得舊版本的
steamwebrtc.dll函式庫。 - 將此舊版 DLL 直接複製到遊戲的
./binaries資料夾中。
此權宜做法顯示,在三月左右的 Steam 更新中可能引入了回歸 (regression) 問題,破壞了基於 WebRTC 的網路組件。
社群分析與理論
Hacker News 和 GitHub 上的使用者討論揭露了幾種關於此次停機原因的理論:
基礎設施與區域性封鎖
有些使用者假設,此問題並非 Valve 代碼中的錯誤,而是外部網路干擾的結果。有一種理論認為,STUN 因為未加密,比起加密的 WebRTC 流量,更容易受到封鎖或被用於 DDoS 反射/放大攻擊,這可能導致特定區域的 ISP 層級或國家層級的封鎖。
軟體回歸
其他使用者指出問題發生的時間點,並注意到它與三月的 Steam 更新一致。事實上,將 DLL 回退到舊版本可以為部分使用者恢復功能,這強力支持了 Valve 網路堆疊中存在軟體回歸的理論。
對第三方遊戲的影響
有推測認為此問題可能影響了依賴 Valve 網路基礎設施的高知名度作品。例如,有些使用者注意到 Street Fighter 6 在幾個月前似乎從 P2P 切換到了轉發連線,這可能是這些更廣泛的 GameNetworkingSockets 問題的副作用。
調查結果摘要
| Aspect | Detail |
|---|---|
| 核心問題 | STUN 失敗導致無法建立直接 P2P 連結 |
| 結果 | 回退到高延遲的轉發伺服器 |
| 疑似觸發因素 | 三月的 Steam 更新 |
| 權宜做法 | 手動將 steamwebrtc.dll 替換為舊版本 |
| 受影響區域 | 最初為以色列/中東;可能遍及全球 |