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