한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

游戏卡顿白皮书 › 只有部分人遇到的问题

集中在特定运营商玩家身上的校验误判 Anti-cheat / movement validation false positives on bad ISPs

原因 ID pt-isp-validation · 主责 研发团队·服务器开发 · 配合 运维团队·网络运维

在含图示和实验的完整版中打开此卡片 →

使用抖动大的线路的人,输入会扎堆到达,经常触发服务器的速度、冷却检查。

起因 特定运营商、地区的线路晚上抖动变大 → 结果 服务器把扎堆到达的正常输入判为超速、冷却违规 → 画面表现 只有这家运营商的玩家出现拉回、技能被拒,严重时被服务器踢出而掉线

症状
拉回, 吞操作/回档, 掉线
因素
抖动
谁会遇到
特定地区/运营商, 只有我
何时出现
晚高峰, 移动中/切换地图时
负责方
主责 研发团队·服务器开发 · 配合 运维团队·网络运维
研发团队要做的事
检查改用跨几秒的累积额度,参考线路状况(ping、抖动)放宽标准,强制断开前加一个警告阶段,用每个玩家的输入缓冲把扎堆到达的输入均匀分到每个 tick,从源头减少误判。
运维团队要做的事
按时段查看各运营商的丢包率、抖动分布并同步给研发团队,检查该运营商段的路径(双向 mtr),必要时调整路由或向运营商升级处理。
监控图上
特定时段偏高 · 各运营商(ASN)的校验拒绝、强制断开次数,各运营商的抖动
查看位置
给服务器的校验拒绝、校正、强制断开日志标上接入 IP 所属运营商(ASN)和时刻,按运营商、时段统计。运维团队在同一时段向该运营商方向跑双向 mtr,看抖动和丢包
确认依据
拒绝、强制断开集中在特定运营商,晚上增多,同一时段该运营商的抖动也高,而按几秒合计的移动量在规则之内
排除依据
与运营商无关、只有特定账号反复出现,可能是真的作弊。所有运营商一起增加,是服务器 tick 积压、指令被集中应用的服务器侧原因(tick 超出预算)
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. Source SDK 2013: player.cpp Valve
    用每个 tick 累积的指令预算防止超速,但开发注释中提到,更严格的限制会让正常玩家也一卡一卡
  2. RFC 2697: A Single Rate Three Color Marker IETF
    令牌桶:按平均速率和允许的突发量判定
  3. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    客户端与服务器时间戳差距大时,丢弃该次移动或走时间差消解流程;按服务器时间计算,防止加速外挂

相关原因

同一层:只有部分人遇到的问题

其他层中同样导致“拉回”的原因

查看含图示和实验的原卡片