$Z

Материал из MyDC's Wiki

Перейти к: навигация, поиск

Команда протокола NMDC.

Синтаксис

$Z {блок}|

Направление команды

Хаб -> Клиент

Описание

Команда $Z используется расширением ZLine протокола NMDC.

Данная команда была предложена Jove и обсуждается в основном на DCDev хабе. Команда предназначена для сжатия блоков команд.

Команда $Z {блок}| будет развёрнута в строку: $Search ... |$MyINFO...|...

Используется простое zlib сжатие и дополнительное экранирование. Символ "\" экранируется так: "\\", а символ "|" так: "\P". Этого достаточно чтобы использовать взамен bzip.

Данную команду следует использовать только в одном направлении хаб -> клиент. В любом другом направлении она только создаст лишнюю нагрузку.

Клиент должен поддерживать эту команду. Он сообщает об этом хабу путём отсылки в команде $Supports флага ZLine

Оценка

Проводились тесты для оценки эффективности данного дополнения.


Программа тестирования работала следующим образом: сначала пользователи соединялись, потом пользователи генерировали события:


Задержки между соединениями и событиями могут варьироваться. Настройки по умолчанию были выбраны следующими: 100 мсек между входами (10 соединений/сек) и 50 мсек между событиями (20 событий/сек).


Короткий тест (приблизительно 700 сек) со 100 пользователями

Без ZLine Общий трафик: Входящий 1986998, Исходящий 58506319Среднее за 718 секунд: Входящий 16.140272 кб/с, Исходящий 475.764798 кб/с

С ZLine Общий трафик: Входящий 1549938, Исходящий 15913487Среднее за 719 секунд: Входящий 16.159448 кб/с, Исходящий 165.737719 кб/с


Тест с 1000 пользователями на хабе. Продолжительность теста примерно 22000 секунд (чуть больше 6 часов) в обоих случаях

Без ZLine Общий трафик: Входящий 58562006, Исходящий 18932614671Среднее за 28078 секунд: Входящий 16.682808 кб/с, Исходящий 5393.331647 кб/с

С ZLine Общий трафик: Входящий 48040395, Исходящий 3987767021Среднее за 22318 секунд: Входящий 16.989433 кб/с, Исходящий 1410.093335 кб/с


Тест с 4000 пользователями на хабе. Продолжительность теста примерно 5000 секунд в обоих случаях

Без ZLine Общий трафик: Входящий 11675512, Исходящий 14732322239Среднее за 5472 секунд: Входящий 16.910506 кб/с, Исходящий 21337.779879 кб/с

С ZLine Общий трафик: Входящий 11102441, Исходящий 2805387234Среднее за 5042 секунд: Входящий 17.197069 кб/с, Исходящий 4343.892306 кб/с

Другие тесты

Ниже приведены немного другие тесты. Тесты с другими сообщениями. Основные сообщения те же самые, но кроме этого есть сообщения с произвольным числом символов. На результат влияют большие сообщения, которые труднее сжать.1000 пользователей:

Без ZLine Общий трафик: Входящий 26426307, Исходящий 8802244496Среднее за 9358 секунд: Входящий 22.585492 кб/с, Исходящий 7522.500261 кб/с

С ZLine Общий трафик: Входящий 27070505, Исходящий 4003114560Среднее за 9359 секунд: Входящий 22.837603 кб/с, Исходящий 3376.263386 кб/с


Выводы

Эффективность сжатия варьируется от 50% до 80% и зависит от количества пользователей и типа трафика. Данную команду нельзя применять для того, чтобы сжимать всё подряд. Хаб должен находить баланс между шириной полосы пропускания и ресурсностью процессора и памяти. В сущности, сжимаются только блоки команд, посылаемые клиентам. Поэтому нагрузка на процессор и память почти незаметна.


Хабы, поддерживающие данное дополнение

Aquila
BDCH (планируется)
DDCH
tkhub
YnHub (планируется)
NitroHub (> 0.7)


Клиенты, поддерживающие данное дополнение

DCDM++
iDC++
McDC++
Z++

Источник — «http://wiki.mydc.ru/$Z»
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
RusHub
Инструменты
Портал