Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: L Международной научно-практической конференции «Вопросы технических и физико-математических наук в свете современных исследований» (Россия, г. Новосибирск, 25 апреля 2022 г.)

Наука: Информационные технологии

Секция: Вычислительные машины, комплексы и компьютерные сети

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Белов Е.А. ЦЕЛЕСООБРАЗНОСТЬ ПРИМЕНЕНИЯ СЖАТИЯ ТРАФИКА ПУТЁМ ДЕЛЬТА-КОДИРОВАНИЯ В ТРАНСПОРТНЫХ ПРОТОКОЛАХ // Вопросы технических и физико-математических наук в свете современных исследований: сб. ст. по матер. L междунар. науч.-практ. конф. № 4(42). – Новосибирск: СибАК, 2022. – С. 7-11.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

ЦЕЛЕСООБРАЗНОСТЬ ПРИМЕНЕНИЯ СЖАТИЯ ТРАФИКА ПУТЁМ ДЕЛЬТА-КОДИРОВАНИЯ В ТРАНСПОРТНЫХ ПРОТОКОЛАХ

Белов Евгений Александрович

студент направления подготовки 09.04.01 Московского авиационного института (национального исследовательского университета),

РФ, г. Москва

АННОТАЦИЯ

В статье рассматриваются особенности реализации и целесообразности применения компрессии сетевого трафика с использованием алгоритмов дельта-кодирования. Произведена классификация передаваемых данных по сети и выделен тот класс, для которого дельта-кодирование является возможным. Рассмотрены положительные и негативные эффекты использования данного метода компрессии.

 

В настоящее время активно появляются и развиваются множество новых сетевых приложений, служб и сервисов. Некоторые из этих приложений, такие как системы реального времени, средства удалённого администрирования и управления, средства облачной синхронизации данных и др., требуют не только минимальные задержки и высокую скорость, но и высокую гарантию доставки данных. Поскольку существующих на данный момент транспортных протоколов может быть недостаточно для удовлетворения данных требований, стала актуальной задача разработки нового транспортного протокола, который объединял бы достоинства TCP и UDP [1]. Все современные устройства и сетевое оборудование работают только с двумя существующими протоколами, поэтому, как правило, реализация альтернативного транспортного протокола осуществляется поверх UDP [2].

Одним из способов ускорения передачи является использование сжатия (компрессии) данных перед отправкой. Существует несколько основных способов сжатия данных, а именно:

- сжатие с использованием словарных методов;

- сжатие с использованием дельта-кодирования;

- сжатие с использованием квантования.

Целью данной научной работы является рассмотрение особенностей и целесообразности использования сжатия путём дельта кодирования в транспортных протоколах для сетевых приложений, чувствительных к временным задержкам.

Все передаваемые данные можно условно классифицировать по следующим категориям.

1. По своей структуре:

1.1. Данные с динамической структурой – представляют собой такой формат данных, структура которых может варьироваться (соответственно, при их передаче требуются метаданные).

1.2. Данные со статической структурой – это такие данные, у которых порядок данных в бинарном виде остаётся неизменным вне зависимости от каких-либо факторов.

2. По времени:

2.1. Периодически передаваемые – это такие данные, которые регулярно передаются через определённый интервал времени (например, каждые 100 миллисекунд).

2.1.1. С переменным периодом – если интервал передачи может изменяться в зависимости от сторонних факторов (например, требуется повышенная точность или требуется снизить нагрузку на сетевой канал).

2.1.2. С постоянным периодом.

2.2. Не периодически передаваемые данные – это такие данные, которые передаются произвольно.

Далее будут рассматриваться периодически передаваемые данные со статической структурой, так как именно для них является возможным и целесообразным использование дельта-кодирования.

Дельта-кодирование представляет собой алгоритм, при котором структурированный поток данных передаётся не целиком, а только изменившаяся его часть относительно предыдущего состояния [3]. Например, есть некая структура данных, периодически передаваемая и меняющая своё состояние (рисунок 1). Соответственно, если уже известно начальное состояние, то далее можно передавать только изменяемые поля.

 

Рисунок 1. Дельта-кодирование

 

Для возможности осуществления реализации дельта-кодирования используются различные методы сериализации данных. Сериализация представляет собой процесс перевода структуры данных в определённую последовательность байтов [4]. На сегодняшний день существует множество библиотек для сериализации данных, таких как JSON, BSON, Protocol Buffer и другие. Они позволяют эффективно сериализовать данные для последующей передачи по сети, однако не имеют встроенного алгоритма, позволяющего выполнять дельта-кодирование. Поэтому это необходимо учесть при разработке транспортного протокола.

В общем случае, алгоритм заключается в следующем. Для начала необходимо определить количество полей данных в передаваемой структуре. Затем по формуле Хартли [5] определить, сколько бит требуется для однозначной идентификации каждого поля. После этого в передаваемый пакет записывается идентификатор изменившегося поля и следом за ним – данные из этого поля (рисунок 2). При этом важно учесть тот момент, что в случае большого количества изменившихся полей результат дельта-кодирования может оказаться больше исходного пакета, ввиду так называемого «оверхеда» (или «накладных расходов») из-за необходимости идентифицировать изменившиеся поля. В этом случае использование дельта-кодирования является нецелесообразным.

 

Рисунок 2. Запись пакета с использованием дельта-кодирования

 

При изменении нескольких полей, следующих друг за другом, целесообразно применять вариант оптимизации дельта-кодирования. В этом случае не требуется записывать в пакет метку каждого из полей, а только первого изменившегося. При таком варианте имеет смысл составить исходную структуру передаваемых данных таким образом, чтобы наиболее вероятные к изменению данные располагались в начале структуры последовательно друг за другом.

 

Рисунок 3. Оптимизированный вариант дельта-кодирования

 

Таким образом, применение способа сжатия трафика при помощи дельта-кодирования позволит сократить задержки и повысит пропускную способность при передаче потока изменяемых данных. Однако в случае если передаваемые данные имеют непериодичный характер передачи или содержат большое количество изменений относительно предыдущего состояния, то применение дельта-кодирования является нецелесообразным.

 

Список литературы:

  1. Белов Е.А. ВОПРОСЫ ПРИОРИТИЗАЦИИ ТРАФИКА ПРИ РАЗРАБОТКЕ ТРАНСПОРТНОГО ПРОТОКОЛА ДЛЯ СЕТЕВЫХ ПРИЛОЖЕНИЙ, ЧУВСТВИТЕЛЬНЫХ К СЕТЕВЫМ ЗАДЕРЖКАМ // Вопросы технических и физико-математических наук в свете современных исследований: сб. ст. по матер. XXXIX междунар. науч.-практ. конф. № 5(31). – Новосибирск: СибАК, 2021. – С. 6-10.
  2. Белов Е.А., Пак В.В. АНАЛИЗ НЕДОСТАТКОВ ТРАНСПОРТНЫХ ПРОТОКОЛОВ В СОВРЕМЕННЫХ КОМПЬЮТЕРНЫХ СЕТЯХ И МЕТОДОВ ИХ УСТРАНЕНИЯ // Вопросы технических и физико-математических наук в свете современных исследований: сб. ст. по матер. XXXIV междунар. науч.-практ. конф. № 12(27). – Новосибирск: СибАК, 2020. – С. 5-9.
  3. Алгоритм сжатия без потерь Broo и дельта-кодирование // Хабр URL: https://habr.com/ru/post/425255/ (дата обращения: 20.04.2022).
  4. Сериализация // Microsoft URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/concepts/serialization/ (дата обращения: 20.04.2022).
  5. Формула Хартли // Планета Информатики URL: https://inf1.info/hartley (дата обращения: 31.10.2021).
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.