▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/BandwidthOptimizer
BandwidthOptimizer

BandwidthOptimizer

BandwidthOptimizer - мод для оптимизации сетевого трафика на серверах Minecraft с большим количеством модов. Снижает нагрузку на канал за счёт сжатия, кэширования и пакетной обработки данных. Работает на сервере и клиенте, поддерживает Forge, Fabric, NeoForge.

Оцените первым
18.0K
13

BandwidthOptimizer - это клиент-серверный мод для оптимизации сети, созданный специально для серверов Minecraft с десятками модов. Если вы когда-нибудь запускали сборку с Create, Lightman's Currency или десятком других модов, то знаете, как быстро "летит" трафик. Каждый чанк, каждый механизм, каждая синхронизация - это пакеты, которые могут забить канал и вызвать лаги. BandwidthOptimizer решает эту проблему: сжимает повторяющиеся пакеты, кэширует данные чанков, объединяет мелкие пакеты в батчи и снижает фоновый трафик от неактивных игроков.

Мод работает на принципе "упаковка-восстановление": после того как Minecraft или загрузчик модов сформировал пакет, BandwidthOptimizer может его сжать, закэшировать или объединить с другими. На принимающей стороне пакет восстанавливается до исходного состояния перед тем, как попасть в обычный обработчик Minecraft. Всё прозрачно для игрока.

Ключевые особенности

  • Zstd-сжатие с восстановлением потери кадров и синхронизацией потока.
  • Синхронизированное отображение повторяющихся структур пакетов (шаблоны и литералы).
  • Пакетный батчинг с защитой границ протокола.
  • Поддержка трёх типов передачи чанков: полный, референсный и патчевый.
  • Кэширование чанков на клиенте - даже после переподключения чанки восстанавливаются из кэша.
  • Фоновое обслуживание кэша с ограничением времени жизни и восстановлением при повреждениях.
  • Лёгкое и глубокое снижение трафика у неактивных игроков, с полным восстановлением состояния при возвращении.
  • Отчёты BO Stats - загружаемая статистика с графиками, историей, распределением пакетов и экономией от режима idle.
  • Диагностика для OP - точное трассирование классов пакетов.
  • Совместимость с окружениями Create, Velocity, Voxy, AutoFish, Aeronautics и другими сетевыми сборками.

Как это работает (простыми словами)

После того как Minecraft или мод закодировал пакет, BandwidthOptimizer перехватывает его. Он может:

  • сопоставить с шаблоном и отправить только ссылку, если такой пакет уже был;
  • объединить несколько мелких пакетов в один;
  • сжать Zstd;
  • или просто пропустить, если пакет уже сжат (например, медиаданные).

Приёмник восстанавливает исходные байты до того, как они попадут в обычный декодер Minecraft. Если какой-то фрейм потерян - система автоматически синхронизируется заново.

Результаты замеров (реальные данные, не гарантии)

Эффективность зависит от сборки, активности игроков и типа пакетов. Ниже - исторические замеры с реальных серверов. Процент показывает, сколько трафика осталось после оптимизации.

HUD-замеры на живом сервере

ОкружениеОптимизированный трафик клиентаСервер: сырой → фактическийОптимизированный серверныйПрямой трафикИгрокиИсточник
Create Delight Remake сервер 123.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%)1HUD snapshot, v2.7.6.10
Create Delight Remake сервер 224.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%)4HUD snapshot, 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%)Та же выборкаБез исключений WATUT/YSM в этой выборке
Create Delight7865.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%)Не разделеноБолее ранний отчёт

Самые "жирные" пакеты

ИсточникОкружениеСырой объёмФактически переданоСоотношение
ClientboundLevelChunkWithLightPacketCreate-сервер (ядро)9062.88 MiB481.85 MiB5.3%
ClientboundLevelChunkWithLightPacketCreate-тестовый сервер713.65 MiB16.84 MiB2.4%
ClientboundTabListPacketCreate-сервер (ядро)6354.97 MiB655.45 MiB10.3%
lightmanscurrency:networkCreate-сервер (ядро)8206.80 MiB593.69 MiB7.2%
create:deployer block entity dataCreate Delight510.41 MiB71.61 MiB14.0%

Примеры, где сжатие почти не помогает

Некоторые пакеты уже сжаты, зашифрованы или содержат случайные данные - вторая степень сжатия даёт лишь 1-10%.

ИсточникОкружениеСырой объёмФактически переданоСоотношениеПуть
watut:mainCreate-сервер (ядро)4157.94 MiB3974.80 MiB95.6%BATCH_DIRECT_FALLBACK
yes_steve_model:2_6_0Create-сервер (ядро)514.63 MiB510.50 MiB99.2%BATCH_TRANSPORT_SHARE
watut:mainCreate-сервер (зеркало)146.07 MiB143.07 MiB97.9%BATCH_TRANSPORT_SHARE
watut:mainCreate Delight91.18 MiB82.53 MiB90.5%BATCH_TRANSPORT_SHARE

Текущие замеры (версия 5.10.30.99) показывают, что управляемый трафик сжимается до 3-11% от исходного размера. Но это не гарантировано для каждого сервера - итоговое соотношение зависит от состава пакетов.

Если на сервере есть моды, которые генерируют аномальные пакеты, BandwidthOptimizer может не дать значительного эффекта. В таком случае администратор может запустить /bandwidthoptimizer stats и получить отчёт BO Stats, чтобы найти источник.

Как воспроизвести замеры

  1. Установите одну версию BandwidthOptimizer на сервер и все клиенты.
  2. Запустите фиксированный сценарий (например, многократное перемещение по чанкам, работа с механизмами).
  3. Выполните /bandwidthoptimizer stats и сохраните ссылку на отчёт.
  4. Сравните управляемый трафик отдельно от прямого и обходного.
  5. Запишите сборку, загрузчик, версию Minecraft, количество игроков, длительность и версию мода.

Тестированные окружения

Совместимость проверялась на сборках: Create Delight, Brass Concerto, Aeronautics, Mechanomania. Для Mechanomania нет полного замера сжатия, но есть данные об обходных путях. Это не гарантирует работу на любой комбинации модов.

Поддерживаемые версии

ЗагрузчикMinecraftСтатус
Forge1.19.2Релиз
Forge1.20.1Релиз
Fabric / Quilt1.20.1Релиз; требуется Fabric API
Fabric / Quilt1.21.1Релиз; требуется Fabric API
NeoForge1.21.1Релиз
NeoForge26.1.2Релиз
NeoForge26.2Бета

Установка

  1. Скачайте версию под вашу версию Minecraft и загрузчик.
  2. Поместите JAR в папку mods на сервере.
  3. Установите ту же самую версию на каждый клиент.
  4. Для Fabric/Quilt потребуется Fabric API.
  5. Перезапустите сервер и клиенты.

Команды

КомандаНазначение
/bandwidthoptimizer hudВключить/выключить HUD со статистикой на клиенте.
/bandwidthoptimizer statsЗагрузить отчёт сервера и получить ссылку на BO Stats. Только для OP.
/bandwidthoptimizer debugОткрыть инструменты диагностики по запросу. Только для OP.

BO Stats

Если вы администратор, выполните /bandwidthoptimizer stats. Вы получите ссылку на страницу bostats.torqueflux.com, где отображаются общие данные сервера, трафик по игрокам и временным периодам, поведение кэша, распределение пакетов по источникам, обходные пути и экономия от idle-режима. При проблемах с подключением или совместимостью приложите эту ссылку вместе с логами клиента, сервера и прокси.

Конфигурация

По умолчанию настройки подходят для большинства серверов и сборок. Опытные администраторы могут изменить клиентские и общие конфиги после того, как соберут отчёты BO Stats до и после изменений.

Скачайте BandwidthOptimizer и забудьте о том, что канал забит чанками и механизмами - даже на самой тяжёлой сборке.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x1.20.x1.19.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:4 месяца назад
Обновлён:1 месяц назад
Главная