为什么需要统一术语
网络与资源的问题,一半出在实现,一半出在词不达意。客户端说「重连成功」,服务端说「会话恢复」,运营说「玩家回来了」,三句话描述的可能不是同一件事。
本附录给出卷二使用的口径。遇到分歧时,以这里的定义为准。
连接与质量
| 术语 | 定义 | 常见误用 |
|---|---|---|
| RTT | 一次请求与响应往返的耗时,单位毫秒 | 用平均值代替 P95,低估弱网影响 |
| P50 / P95 | 分别表示 50%、95% 的样本不超过该值 | 把 P95 当「最差情况」,它仍有 5% 更差 |
| 丢包率 | 发送后未收到确认的包占比 | 只看下行,忽略上行输入包 |
| 弱网会话 | RTT P95 > 300ms 或丢包 > 2% 的会话 | 用「网络差」代替可测口径 |
| 断线率 | 一次前台会话中至少一次非主动断线的比例 | 把主动退出、切后台全算进去 |
| 重连成功率 | 断线后 30 秒内恢复连接的比例 | 只统计「发起重连」的设备,忽略放弃的 |
| 心跳 | 客户端与服务端之间周期性保活消息 | 心跳间隔越短越「实时」,忽略流量与耗电 |
| 长连接 | 一次建立、多次收发的连接 | 把 WebSocket 与长轮询混为一谈 |
消息与一致性
| 术语 | 定义 | 常见误用 |
|---|---|---|
| 消息信封 | 包在业务消息外的统一字段:版本、类型、序号、时间戳 | 每个协议各写一套头,兼容规则无法统一 |
| 请求响应 | 客户端发起、服务端回包的同步交互 | 用推送代替响应,导致超时语义混乱 |
| 推送 | 服务端主动下发的消息 | 不区分「可丢」与「必达」 |
| 幂等 | 同一操作执行多次与执行一次结果相同 | 只做去重键,不校验业务状态 |
| 最终一致 | 允许短暂不一致,但最终收敛到同一状态 | 把「最终」当成「永远不」,不给收敛时限 |
| 乐观更新 | 客户端先展示结果,等服务端确认 | 确认失败后不回滚 UI,玩家看到假数据 |
| 状态同步 | 服务端下发状态,客户端渲染 | 客户端自行计算权威状态 |
| 帧同步 | 服务端或主机同步输入,各端确定性演算 | 用浮点运算破坏确定性 |
| 预测 | 客户端在等待确认前先行模拟 | 预测结果与服务端修正冲突时不平滑 |
| 回滚 | 预测错误后回到确认状态重演 | 回滚范围过大,造成画面跳变 |
| 延迟补偿 | 按网络延迟调整判定或表现 | 补偿只做在表现层,判定仍按旧时间 |
数据与战报
| 术语 | 定义 | 常见误用 |
|---|---|---|
| 战报 | 一场战斗的可复盘数据集合 | 只存结果,不存关键帧与输入 |
| 回放 | 用战报重演战斗过程 | 回放依赖当前配置,版本一变就对不上 |
| 快照 | 某一时刻的完整状态 | 快照频率过高,流量与存储失控 |
| 增量 | 相对上一状态的变化量 | 增量丢包后无法恢复,缺少基线 |
| 赛季结算 | 按赛季规则计算排名与奖励 | 客户端自行计算排名,与服务端不一致 |
资源与包体
| 术语 | 定义 | 常见误用 |
|---|---|---|
| 首包 | 商店首次安装下载的体积 | 把安装后强更资源算进首包 |
| 分包 | 首包之外、按场景或功能切分的资源包 | 分包过大,等于把首包问题推后 |
| 按需下载 | 进入具体内容时才下载的资源 | 不设超时与失败兜底 |
| 资源依赖图 | 资源之间的引用关系 | 只建图不检测环,加载时死循环 |
| 冗余资源 | 多包重复包含的同一资源 | 为省事每包都带通用资源,总量失控 |
| 差量补丁 | 新旧版本之间的二进制差异 | 只算文件级差异,忽略压缩后体积 |
| 校验和 | 用于验证文件完整性的摘要 | 只校验长度,不校验内容 |
发布与灰度
| 术语 | 定义 | 常见误用 |
|---|---|---|
| 热更 | 不发新安装包,更新资源或代码 | 把热更当成「绕过商店审核」的万能手段 |
| 灰度 | 按比例或分组逐步放量 | 只放量不观测,出事才发现 |
| 回滚 | 撤回到上一个可用版本 | 没有保留旧版本,回滚无从谈起 |
| 版本收敛 | 发布后一段时间内升级到新版本的用户占比 | 用「发布天数」代替真实收敛率 |
| 差量命中率 | 可用差量补丁完成更新的设备占比 | 把「下发成功」当成「应用成功」 |
| 下载成功率 | 开始下载到校验通过的比例 | 分母口径不一致,跨版本无法比较 |
| 回源 | CDN 未命中时向源站取文件 | 回源比例过高,源站被打满 |
四组容易混淆的词
| 词对 | 区别 | 混用的后果 |
|---|---|---|
| 重连 / 重发 | 重连恢复连接;重发重传一条消息 | 把消息重发当成连接恢复,丢失会话状态 |
| 回滚 / 回退 | 回滚是撤回到上一版本;回退是功能降级 | 以为发了新版本就能回退,实际没有旧包可用 |
| 热更 / 版更 | 热更不发安装包;版更走商店 | 把必须走审核的改动塞进热更,导致下架 |
| 分包 / 分服 | 分包切资源;分服切玩家 | 用分服解决包体问题,成本高且无效 |
| 断线 / 掉帧 | 断线是连接中断;掉帧是渲染超时 | 用「卡」同时描述两种问题,排查方向相反 |
| 差量 / 增量 | 差量是二进制差异;增量是内容变化 | 用内容增量当补丁,体积远大于差量 |
这些词对不需要背,但评审时看到混用,应该先停下来对齐口径。术语混乱通常不是表达问题,而是责任边界没划清。
口径冲突时怎么办
三个原则:
- 以可复现的定义为准。 「弱网」必须能写成阈值,否则不可测。
- 以客户端观测为准,服务端数据为校验。 玩家感知发生在客户端;服务端数据用于判断是个例还是面。
- 以附录 B 的数字为准。 任何与事实表冲突的表述,先改表述,再讨论是否改表。
术语统一不是为了学术严谨,而是为了让「重连成功率 97.2%」这句话,在产品、客户端、服务端和运维四个团队里指的是同一件事。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。