跳到正文

BandwidthOptimizer

作者:PInk_Cats

批量处理,节省你的 MC 带宽。

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

BandwidthOptimizer

BandwidthOptimizer 是一款面向大型模组服务器的客户端与服务端网络优化模组。它可以减少区块移动、登录同步、自定义负载、机器、存储系统和空闲客户端产生的重复数据包流量,并在交由 Minecraft 正常处理前还原原始编码数据包流。

服务器和每位连接的客户端都必须安装兼容版本。

Discord 服务器
GitHub 仓库

BandwidthOptimizer 效果预览

主要特点

  • 可恢复的跨帧流式 Zstd 压缩。
  • 针对重复数据包结构同步映射字面量与模板。
  • 按序批量处理小型数据包,并保护刷新操作和协议边界。
  • 经验证支持 full、ref 和 patch 区块传输模式。
  • 客户端区块可持久复用,即使重新连接或反复探索地形也能继续使用。
  • 增量缓存写入、有限保留、损坏恢复和后台维护。
  • 通过轻度和深度空闲状态减少流量,并在玩家恢复游戏时还原状态。
  • 可上传的 BO Stats 报告,包含图表、玩家历史记录、数据包归因、缓存结果、绕过详情和空闲门控节省量。
  • 按需提供 OP 诊断功能,包括精确的数据包类追踪。
  • 针对 Create 内容丰富的环境、Velocity、Voxy、AutoFish、Aeronautics 及其他网络密集型整合包进行兼容性适配。

工作原理

BO 在 Minecraft 或模组加载器完成整个数据包编码后运行。它可以映射、批处理、压缩或复用这些编码后的字节。接收端会先还原原始数据包字节,然后再继续进行原版数据包解码。

跨帧压缩会校验序列和纪元。遇到缺失或无效的边界时,会进行有界恢复并重新同步数据流。区块复用会通过哈希校验;如果引用不可用或已过期,则会回退到完整数据包数据。

空闲流量削减分为轻度和深度两种状态。玩家不活跃时,可以减少仅用于呈现的流量;玩家返回后,则会还原当前方块、实体、HUD 以及受支持的模组状态。

实测结果

节省的带宽因整合包、玩家活动、代理拓扑和数据包构成而异。以下结果来自真实大型模组服务器上收集的 BO HUD 快照和传输源报告。这些是历史实测基准,并不保证能达到同样的效果。

主要比例描述的是进入 BO 管理传输路径的流量。服务器总流量还包含直接发送的数据包、兼容性绕过流量、缓存复用流量,以及已压缩或类似媒体的负载,因此不应将这些数值视为纯粹的压缩效率。

实时 HUD 基准

环境 客户端优化流量 服务端原始流量到实际流量 服务端优化流量 直接流量 玩家数 来源
Create Delight Remake 服务器 1 23.21 MB -> 3.93 MB (16.9%) 305.35 GB -> 51.12 GB (16.7%) 40.28 GB (13.2%) 49.46 GB (16.2%) 1 HUD 快照,v2.7.6.10
Create Delight Remake 服务器 2 24.51 MB -> 4.15 MB (16.9%) 516.70 GB -> 83.24 GB (16.1%) 57.57 GB (11.1%) 57.01 GB (11.0%) 4 HUD 快照,v2.7.6.10

托管传输基准

环境 托管传输 不含类似 WATUT/YSM 的数据流 备注
Create 核心服务器 38976.09 MiB -> 9455.03 MiB (24.3%) 34580.44 MiB -> 5236.56 MiB (15.1%) 混合流量,包含难以压缩的大型来源
Create 镜像服务器 1046.16 MiB -> 253.89 MiB (24.3%) 902.82 MiB -> 113.55 MiB (12.6%) 较小的混合样本,可明显看到类似 WATUT 的流量
Create 测试服务器 1174.31 MiB -> 112.24 MiB (9.6%) 同一样本 此 TopN 样本中没有 WATUT/YSM 例外项
Create Delight 7865.72 MiB -> 1622.43 MiB (20.6%) 7774.54 MiB -> 1539.90 MiB (19.8%) 公开整合包来源报告快照
Create Delight 次级快照 4567.66 MiB -> 603.15 MiB (13.2%) 未单独区分 较早的报告快照

影响较大的数据包类别

来源 环境 观测原始数据量 实际传输量 实际/原始比例
ClientboundLevelChunkWithLightPacket 以机械动力为核心的主服务器 9062.88 MiB 481.85 MiB 5.3%
ClientboundLevelChunkWithLightPacket 以机械动力为核心的测试服务器 713.65 MiB 16.84 MiB 2.4%
ClientboundTabListPacket 以机械动力为核心的主服务器 6354.97 MiB 655.45 MiB 10.3%
lightmanscurrency:network 以机械动力为核心的主服务器 8206.80 MiB 593.69 MiB 7.2%
create:deployer 方块实体数据 Create Delight 510.41 MiB 71.61 MiB 14.0%

低收益对照样本

来源 环境 观测原始数据量 实际传输量 实际/原始比例 路径
watut:main 以机械动力为核心的主服务器 4157.94 MiB 3974.80 MiB 95.6% BATCH_DIRECT_FALLBACK
yes_steve_model:2_6_0 以机械动力为核心的主服务器 514.63 MiB 510.50 MiB 99.2% BATCH_TRANSPORT_SHARE
watut:main 以机械动力为核心的镜像服务器 146.07 MiB 143.07 MiB 97.9% BATCH_TRANSPORT_SHARE
watut:main Create Delight 91.18 MiB 82.53 MiB 90.5% BATCH_TRANSPORT_SHARE

这些对照样本说明了为什么混合服务器的汇总数据表现可能不如高影响数据包类别:对于已经压缩、加密、类似媒体或接近随机的数据,额外增加一层压缩几乎没有发挥空间。

当前 5.10.30.99 的测量结果显示,受管理流量已降至原始大小的约 3-11%。这比历史基准有了显著改善,但并不能保证适用于每台服务器;最终比例取决于数据包组成以及可复用流量的数量。

有些整合包可能存在模组冲突,导致网络数据包异常。BO 无法保证这类异常流量能得到有效压缩,但服务器管理员可以运行 /bandwidthoptimizer stats 上传 BO Stats 报告并定位其来源。

复现测量结果

  1. 在服务器和每个客户端上安装相同版本的 BO。
  2. 按固定的活动模式和时长运行测试,例如集中登录、反复穿越区块、机器密集区域,或正常在线游玩。
  3. 运行 /bandwidthoptimizer stats,并保存返回的 BO Stats 链接。
  4. 分别比较受管理的传输流量与直连和绕过流量。不要将 bandwidthoptimizer:transport 载体计为新的源流量。
  5. 记录结果对应的整合包、加载器、Minecraft 版本、玩家人数、测试时长和 BO 版本。

已测试环境

兼容性和测量测试涵盖了 Create Delight、Brass Concerto、Aeronautics 和 Mechanomania。Mechanomania 可用的历史快照包含绕过流量和数据包排名证据,但没有来源原始流量/实际流量汇总,因此仅列为已测试环境,不用于声称压缩率。这些测试并不保证适用于所有模组组合或代理拓扑。

支持的版本

加载器 Minecraft 状态
Forge 1.19.2 正式版
Forge 1.20.1 正式版
Fabric / Quilt 1.20.1 正式版;需要 Fabric API
Fabric / Quilt 1.21.1 正式版;需要 Fabric API
NeoForge 1.21.1 正式版
NeoForge 26.1.2 正式版
NeoForge 26.2 测试版

安装

  1. 下载与 Minecraft 版本和加载器匹配的构建版本。
  2. 将其安装到服务器的 mods 文件夹中。
  3. 在每个客户端上安装相同版本的 BandwidthOptimizer。
  4. Fabric 或 Quilt 构建版本需要安装 Fabric API。
  5. 重启服务器和客户端。

命令

命令 用途
/bandwidthoptimizer hud 切换本地客户端统计信息 HUD。
/bandwidthoptimizer stats 上传服务器报告并返回可点击的 BO Stats 链接。仅限 OP。
/bandwidthoptimizer debug 打开按需诊断工具。仅限 OP。

BO Stats

以管理员身份运行 /bandwidthoptimizer stats,即可上传当前报告。返回的
bostats.torqueflux.com 页面会显示服务器总量、玩家和各时段的流量、传输与缓存情况、数据包来源归因、
绕过流量详情以及空闲门控节省量。

如果遇到断连或兼容性问题,请附上 BO Stats 链接,以及事件发生前后的客户端、服务器和代理日志。

配置

默认配置适用于大多数服务器和整合包。高级管理员可以在收集更改前后的可比 BO Stats 报告后,调整生成的客户端和通用配置文件。

链接

许可证

GNU LGPL 2.1 或任何更高版本(LGPL-2.1-or-later)。

常见问题

BandwidthOptimizer 支持哪些 Minecraft 版本?

BandwidthOptimizer 支持 Minecraft Java 版 1.19.2–26.2,共 5 个版本,可用的加载器:Fabric / Forge / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。

BandwidthOptimizer 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

PInk_Cats 的其他作品

查看全部 →