$Z / ZLine

Синтаксис:

$Z [Блок]|

Направление команды:
Хаб ---> Клиент

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

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

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

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

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

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

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

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

  • $MyINFO
  • Сообщение чата
  • $Search
  • разъединение/соединение

Задержки между соединениями и событиями могут варьироваться. Настройки по умолчанию были выбраны следующими:
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++

Оригинал (by Setuper): http://mydc.ru/index.html?showtopic=915&view=findpost&p=19404

Тэги:
Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 

Реклама

Для скачивания с этих сайтов нужно подключиться к внешним хабам

Нужен свой портал? magneto!