Valve GameNetworkingSockets P2P 连接问题
GameNetworkingSockets 中的 P2P 连接故障
Valve 的 GameNetworkingSockets 正在经历严重的点对点 (P2P) 连接故障,迫使连接回退到高延迟的转发服务器 (relay servers)。虽然最初报告为影响以色列和其他中东国家的区域性问题,但社区的进一步调查表明,该问题可能更为广泛。
技术根本原因与症状
这种故障的主要症状是无法建立直接的 P2P 链路。该故障特别与 NAT 会话穿越实用程序 (STUN) 过程相关。当 STUN 失败时,系统无法确定直接连接所需的公网 IP 和端口,导致回退到转发服务器,从而显著增加了玩家的延迟。
社区发现的临时解决方案
用户已通过手动替换 steamwebrtc.dll 文件,为至少三款游戏找到了一个临时修复方法。该过程包括:
- 获取旧版本的
steamwebrtc.dll库。 - 将此旧版 DLL 直接复制到游戏的
./binaries文件夹中。
这一临时解决方案表明,在三月左右的一次 Steam 更新中可能引入了回归问题,从而破坏了基于 WebRTC 的网络组件。
社区分析与理论
Hacker News 和 GitHub 上的用户讨论揭示了关于此次故障原因的几种理论:
基础设施与区域性屏蔽
一些用户假设,该问题并非 Valve 代码中的 bug,而是外部网络干扰的结果。一种理论认为,由于 STUN 是未加密的,与加密的 WebRTC 流量相比,它更容易被屏蔽或被用于 DDoS 反射/放大攻击,这可能导致特定区域内的 ISP 级别或国家级别的屏蔽。
软件回归
其他用户指出,该问题的发生时间与三月的 Steam 更新一致。对于某些用户来说,回退到旧版 DLL 可以恢复功能这一事实,有力地支持了 Valve 网络栈内存在软件回归的理论。
对第三方游戏的影响
有推测认为,该问题可能影响了依赖 Valve 网络基础设施的高知名度游戏。例如,一些用户注意到 Street Fighter 6 在几个月前似乎从 P2P 切换到了转发连接,这可能是这些更广泛的 GameNetworkingSockets 问题带来的副作用。
调查结果摘要
| 方面 | 详情 |
| :--- | :--- | |
| 核心问题 | STUN 失败导致无法建立直接 P2P 链路 |
| 结果 | 回退到高延迟的转发服务器 |
| 疑似触发因素 | 三月的 Steam 更新 |
| 临时解决方案 | 手动将 steamwebrtc.dll 替换为旧版本 |
| 受影响区域 | 最初为以色列/中东;可能遍及全球 |