Details

Title Реализация оптимизатора WAN на основе open-source технологий: выпускная квалификационная работа магистра: направление 09.04.01 «Информатика и вычислительная техника» ; образовательная программа 09.04.01_15 «Технологии проектирования системного и прикладного программного обеспечения»
Creators Сиротин Павел Олегович
Scientific adviser Шмаков Владимир Эдуардович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2025
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects оптимизация wan ; глобальные сети ; paramiko ; корпоративная сеть ; forward error correction ; дедупликация ; сжатие данных ; wan optimization ; wan ; corporate network ; deduplication ; data compression
Document type Master graduation qualification work
File type PDF
Language Russian
Level of education Master
Speciality code (FGOS) 09.04.01
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2025/vr/vr25-4303
Rights Доступ по паролю из сети Интернет (чтение)
Additionally New arrival
Record key ru\spstu\vkr\38929
Record create date 9/24/2025

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Group Anonymous
Network Internet

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

In the course of the work, modern solutions in the field of optimizing data transmission via global networks were studied, including the existing optimization mechanisms were investigated, and a WAN optimizer prototype was tested on a virtual machine stand to identify the advantages, disadvantages and limitations of the solution for the purpose of further improving the project. The optimizers efficiency was tested in global networks with various network anomalies used to create conditions close to those encountered in real WANs. To simplify interaction with optimizers and speed up their setup, an application was developed that can centrally manage each of the optimizers. Statistics containing network traffic details are displayed in graphical form, making it easier to configure for specific network conditions. The WAN optimizer prototype is suitable for use in corporate networks of large companies and is capable of significantly accelerating data transfer between branches or offices of the same organization. The presence of a large number of options and parameters allows you to configure the optimizer for WAN with various restrictions and bandwidth. The formulated possible modifications of the prototype will not only provide greater efficiency of the optimizer, but will also make the work process of the network administrator easier during configuring network devices.

Network User group Action
ILC SPbPU Local Network All
Read
Internet Authorized users SPbPU
Read
Internet Anonymous
  • На 76 страниц, 26 листингов, 48 рисунков, 6 таблиц, 4 приложения.
  • КЛЮЧЕВЫЕ СЛОВА: ОПТИМИЗАЦИЯ WAN, ГЛОБАЛЬНЫЕ СЕТИ, PARAMIKO, КОРПОРАТИВНАЯ СЕТЬ, FORWARD ERROR CORRECTION, ДЕДУПЛИКАЦИЯ, СЖАТИЕ ДАННЫХ.
  • Тема выпускной квалификационной работы: «Реализация оптимизатора WAN на основе open-source технологий».
  • В ходе работы изучены современные решения в сфере оптимизации передачи данных через глобальные сети, в том числе исследованы существующие механизмы оптимизации, а также проведено тестирование прототипа оптимизатора WAN на стенде виртуальных машин для ...
  • Эффективность работы оптимизатора была испытана в глобальных сетях с различными сетевыми аномалиями, используемых для создания условий, близких к тем, что встречаются в реальных каналах глобальной связи.
  • Для упрощения взаимодействия с оптимизаторами и ускорения их настройки было разработано приложение, способное централизованно управлять каждым из оптимизаторов. Статистика, содержащая в себе детали сетевого трафика, отображается в графическом виде, бл...
  • Прототип оптимизатора WAN пригоден для использования в корпоративных сетях крупных компаний и способен заметно ускорить передачу данных между филиалами или офисами одной организации. Наличие большого количества опций и параметров позволяет настроить о...
  • Сформулированные возможные модификации прототипа не только позволят добиться большей эффективности работы оптимизатора, но и облегчит работу администратора сети при настройке оборудования.
  • 76 pages, 26 listings, 48 figures, 6 tables, 4 appendices.
  • KEY WORDS: WAN OPTIMIZATION, WAN, PARAMIKO, CORPORATE NETWORK, FORWARD ERROR CORRECTION, DEDUPLICATION, DATA COMPRESSION.
  • Theme of the graduate qualification work: «Implementation of WAN optimizer based on open-source technologies».
  • In the course of the work, modern solutions in the field of optimizing data transmission via global networks were studied, including the existing optimization mechanisms were investigated, and a WAN optimizer prototype was tested on a virtual machine ...
  • The optimizer's efficiency was tested in global networks with various network anomalies used to create conditions close to those encountered in real WANs.
  • To simplify interaction with optimizers and speed up their setup, an application was developed that can centrally manage each of the optimizers. Statistics containing network traffic details are displayed in graphical form, making it easier to configu...
  • The WAN optimizer prototype is suitable for use in corporate networks of large companies and is capable of significantly accelerating data transfer between branches or offices of the same organization. The presence of a large number of options and par...
    • ВВЕДЕНИЕ
  • В настоящее время тренд на централизацию IT-инфраструктуры не только сохраняется, но и становится всё более актуальным вследствие повышения цен на оборудование и возникшей потребности в повышенной безопасности сотрудников и данных организации. Более т...
  • Как в данном случае организовать корпоративную сеть передачи данных? Крупные компании вынуждены использовать технологию глобальных сетей (WAN), чтобы, в частности, объединить в одну сеть несколько филиалов. Как правило, стандартной практикой будет соз...
  • Технология WAN, позволяющая объединять устройства, которые находятся на большом отдалении друг от друга, при этом имеет ряд существенных недостатков в сравнение с технологией локальных сетей (LAN). Среди них отдельно стоит выделить увеличенную задержк...
  • Технология оптимизации WAN помогает повысить производительность канала связи посредством сжатия данных, TCP-оптимизации, дедупликации и оптимизации используемых приложений. Почему именно эти методы?
  • Дедупликация данных необходима в случаях, когда, например, сотрудники одного и того же филиала пытаются скачать с файлового сервера (расположенного в центральном офисе) один и тот же файл, то есть, через один канал связи этот файл будет передаваться в...
  • TCP-оптимизация необходима по той причине, что сам по себе протокол TCP не пригоден для использования в глобальных сетях: механизм с подтверждениями передачи данных может работать только в случае, когда в сети задержки достаточно малы и (в особенности...
  • Высокоскоростной TCP (HS-TCP), наоборот, разработан с сохранением значимых характеристик и преимуществ стандартного протокола TCP. В отличие от MX-TCP, протокол HS-TCP не требует дополнительного определения полосы пропускания WAN – размер окна определ...
  • Оптимизация приложений необходима для таких приложений, которые обмениваются короткими сообщениями – такой подход уместен при работе в локальной сети, но для канала связи WAN подобный трафик является лишь дополнительной нагрузкой, расходующей ресурсы ...
  • Еще один способ оптимизации трафика реализован компанией Citrix, и заключается он в работе с качеством услуг (Quality of Service или же QoS) – оптимизатор CloudBridge способен автоматически определять тип передаваемого трафика, после чего назначать не...
  • Оптимизаторы WAN в большинстве своём являются программно-аппаратными решениями (оборудование в отдельном корпусе), но может быть реализовано и на основе виртуальной машины. Существующие решения в данной сфере практически все являются проприетарными и ...
    • 1. ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ
      • 1.1. Обзор имеющихся решений
  • Как правило, на рынке сетевых технологий оптимизаторы WAN представлены лишь как проприетарные решения, разработанные иностранными (в большинстве своём – американскими) компаниями, поэтому приобретение и применение таких оптимизаторов либо невозможно, ...
  • Тем не менее, в Сети в свободном доступе имеются документы от вендоров оптимизаторов WAN (руководства по использованию, краткое описание устройства), например, «Riverbed Optimization System (RiOS) 9.1» [12], которые позволяют лучше разобраться в метод...
  • WANOS или же WAN Optimization Software [13] – условно бесплатный (имеется как пробная, так и бесплатная версия, но с урезанным функционалом, когда как за полноценный оптимизатор необходимо платить) оптимизатор WAN со встроенным веб-интерфейсом. Free E...
  • Данная выпускная квалификационная работа выполняется на основе такого проекта, как SoloWAN [14], разработанного испанскими учеными из Мадридского политехнического университета. SoloWAN является open-source решением, выполняющим функции оптимизатора WA...
  • На рис. 2 представлен график сравнения временных затрат при передаче одного и того же файла в трех различных сценариях: без какой-либо оптимизации, с использованием WANOS, с использованием SoloWAN. Эксперимент показал, что передача файла с любым из оп...
  • Почему выбор был сделан в пользу SoloWAN, а не в пользу WANOS? Поскольку SoloWAN находится в свободном доступе (размещен на GitHub), его исходный код можно изучить и дополнить нереализованными методами и алгоритмами оптимизации трафика (оптимизация TC...
  • Из всего вышесказанного следует, что наиболее подходящим вариантом реализации оптимизатора WAN будет взятие за основу SoloWAN с добавлением определенных улучшений (оптимизация приложений, оптимизация TCP) с последующим представлением в виде полноценно...
    • 1.2. Обзор используемых алгоритмов
  • Реализации оптимизатора WAN отличаются не только разнообразием встроенных механизмов и алгоритмов, но и самими алгоритмами – та же самая оптимизация протокола TCP может быть осуществлена различными способами. Кроме того, каждый механизм требуется подр...
    • 1.2.1. Алгоритм дедупликации
  • Поскольку WAN-сеть имеет довольно низкую (по современным меркам) пропускную способность, которая становится еще ниже при увеличении нагрузки на канал передачи данных, необходимо снизить нагрузку на сеть. Из чего эта нагрузка состоит и как ее можно уме...
  • Представим, что между двумя сотрудниками, которые находятся в разных филиалах, существует переписка по корпоративной почте, сами письма содержат при этом некоторые файлы-вложения. Если файл-вложение, например, таблица получает изменения, но не размеро...
  • Как именно можно избежать передачи избыточной информации? Именно здесь составит пользу дедупликация данных [2].
  • Метод дедупликации заключается в том, что каждый файл разделяется на блоки данных, а затем каждый блок получает уникальный хэш-ключ (ссылку) в «словаре» или же хэш-таблице, что хранится на двух оптимизаторах (на «входе» каждого из филиалов), затем про...
  • На втором оптимизаторе после восстановления данных выполняются соответствия «блок – ключ» с удалением ключей из данных, а уже затем файл передается адресату.
  • Если через канал связи передается файл, содержащий какие-то блоки, которые первый оптимизатор уже заносил в хэш-таблицу, то вместо этих блоков оптимизатор отправляет лишь ссылки на них.
  • Серьезный недостаток такого подхода – невозможность обработки шифрованных данных (протокол HTTPS и не только), так как один и тот же файл при каждой передаче данных будет восприниматься как новый.
    • 1.2.2. Оптимизация TCP
  • Протокол TCP является одним из основных протоколов передачи данных. Протокол TCP обеспечивает целостность и упорядоченности информации благодаря механизму подтверждения передачи данных, но при этом снижается скорость передачи данных.
  • Но данный протокол в контексте использования глобальных сетей не особо удобен: подтверждение передачи данных работает только в том случае, когда в сети задержки достаточно малы и отсутствуют потери пакетов данных. При потерях пакетов данных скорость п...
  • Среди механизмов, зашитых в TCP, есть алгоритм избегания перегрузки (Congestion Avoidance) и медленный старт (Slow Start). Данные механизмы необходимы для предотвращения перегрузок сети, но при этом они негативно сказываются на скорости передачи (рис....
  • Как можно оптимизировать работу протокола TCP? Рассмотрим решение компании Cisco (оптимизатор Cisco WAAS) (рис. 4):
  • Как можно заметить из графика выше, Cisco изменили протокол TCP следующим образом:
  • 1) Медленный старт занимает меньше времени (Short Slow Start);
  • 2) При потерях пакетов пропускная способность падает на несколько процентов, а не примерно наполовину, как у классической реализации TCP;
  • 3) Увеличение скорости после потери пакетов происходит нелинейно;
  • 4) Протокол старается использовать большую пропускную способность сети.
  • Такой подход позволяет передавать данные по протоколу TCP в сетях с большим количеством потерь данных (например, в WAN).
  • Но есть и иные варианты. Обратимся к документации Riverbed [12]. Разработанная ими ОС RiOS поддерживает две модификации протокола TCP: MX-TCP (Max Speed TCP) и HS-TCP (High Speed TCP), их сравнение с классической реализацией TCP приведено на рис. 1. Ч...
  • 1) MX-TCP игнорирует congestion avoidance (что может привести к перегрузке канала), а размер окна нужно задавать администратору, но при этом использует пропускную полосу целиком и не уменьшает пропускную способность при потерях пакетов, slow start сок...
  • 2) HS-TCP использует пропускную полосу практически на максимум (при этом размер окна определяется автоматически), скорость передачи данных может уменьшаться при потерях пакетов, но в меньшей мере, чем у стандартного TCP, однако медленный старт занимае...
  • Таким образом, основными изменениями, вносимыми в протокол TCP, являются: уменьшение времени, затрачиваемого на медленный старт, увеличение используемой пропускной способности канала, изменение реакции на потери пакетов (уменьшение спада скорости, ино...
    • 1.2.3. Иные методы оптимизации
  • Вендоры оптимизаторов, как правило, прибегают к оптимизации приложений. Устройства от вендора Riverbed способны ускорять такие протоколы прикладкого уровня, как CIFS, MAPI, TDS, Lotus Notes, HTTP/HTTPS, SharePoint, NFS, Oracle [12] [3]. Оптимизация пр...
  • Работа с качеством услуг (Quality of Service или же QoS) может осуществляться как на транспортном (4), так и на прикладном (7) уровне – например, оптимизатор CloudBridge способен автоматически определять тип передаваемого трафика, после чего назначать...
    • 2. ПОДГОТОВКА СТЕНДА ВИРТУАЛЬНЫХ МАШИН ДЛЯ ТЕСТИРОВАНИЯ ОПТИМИЗАТОРА WAN
  • В данной работе используются такие дистрибутивы Linux, как РЕД ОС (клиентские ПК) [1] и Debian (серверное и сетевое оборудование, а именно маршрутизаторы и оптимизаторы WAN).
    • 2.1. Настройка файлового сервера
  • Файловый доступ корпоративного уровня реализуется с помощью Samba-сервера, который устанавливается следующим образом:
  • Сервис samba является стандартным для создания файлообменника и использует протокол SMB (Server Message Block) для установления соединения с устройствами и дальнейшего обмена файлами. Протокол SMB основан на уже описанном ранее протоколе TCP, что озна...
  • Samba позволяет создавать общие папки не только для связи с Linux-устройствами, но и с Windows-машинами, однако, поскольку в сети нашей организации отсутствуют какие-либо устройства с ОС Windows, мы можем отключить службы, необходимые для соединения с...
  • Проверим статус службы smbd командой sudo systemctl status smbd.service:
  • Следующий этап: добавление пользователей, которые будут иметь доступ к ресурсам сервера. В нашем случае этими пользователями являются client1-1 (устройство Client1) и client2-2 (устройство Client2).
  • Затем мы добавляем этих пользователей в базу данных samba:
  • Общие ресурсы будут размещены в папке /media/share, о чем нужно указать в конфигурационном файле /etc/samba/smb.conf (после создания папки):
  • Перейдем к конечным устройствам, а именно к клиентским ПК. Откроем файловый менеджер (Caja по умолчанию), в адресной строке которого пропишем smb://192.168.1.2/share.
  • Если всё было сделано верно, то мы получаем доступ к общей папке, то есть, можем её открыть и взаимодействовать с её содержимым:
    • 2.2. Эмуляция WAN
  • Эмуляция WAN достигается с помощью модуля netem (команда tc) [6] [10], который позволяет ограничить пропускную способность, создать задержки и потери пакетов, подобные тем, что встречаются в глобальных сетях.
  • Такой командой мы установим задержку данных, отправляемых через интерфейс enp0s3. Стоит учесть, что таким образом можно контролировать только исходящий трафик, поэтому следует применять ограничения минимум на два интерфейса (в нашем случае – на три), ...
  • Ограничения можно совмещать:
  • Указанными выше командами мы создали задержку 50 мс и 0.5% потерь пакетов на двух интерфейсах. Проверить работу эмуляции мы можем с помощью команд ping и iperf3, запущенных между устройствами, с которыми связаны затронутые интерфейсы.
  • Перейдем к клиентскому устройству Client2 (192.168.3.2), с которого запустим команду ping 192.168.1.2 –i 0.02. Интервал отправки пакетов (-i) необходимо изменять, поскольку процент потерь пакетов, равный 0.5%, означает, что из 1000 пакетов будет потер...
  • Как можно заметить, процент потерь пакетов похож на указанный нами, но при этом не равен 0.5%; то же самое можно сказать и про задержку.
  • Команды tc можно записывать в shell-скрипты, что позволяет упростить создание аномалий в сети:
  • Набор правил, указанных выше, создаёт следующие ограничения в сети: пропускная способность – 10 Мбит/с (rate), процент потери пакетов – 0.3% (loss), максимальное время ожидания в очереди для пакета – 400 мс (latency), число байт в очереди для ожидания...
  • В записи правила указывается тип дисциплины, в нашем случае это tbf или же фильтр буфера токенов. TBF – это простая очередь без планирования трафика. При использовании TBF пакеты помещаются в очередь до тех пор, пока не будет достигнут определенный ра...
    • 2.3. Установка и настройка оптимизаторов
  • В качестве технологической основы для прототипа оптимизатора WAN был выбран проект SoloWAN за возможность модификации его алгоритмов, добавления новых механизмов модификации, а также внесения внешних изменений (например, добавление графического пользо...
  • Оптимизаторами в нашей корпоративной сети будут являться устройства OPT1 и OPT2. На каждом из этих устройств скачаем необходимые файлы из репозитория, после чего установим необходимые пакеты, скомпилируем проект и установим программу:
  • Далее нам необходимо создать конфигурацию по умолчанию, которая будет храниться в файле /etc/opennop/opennop.conf (рис. 15, рис. 16):
  • С помощью параметра optimization мы можем выбрать алгоритм оптимизации: компрессии, дедупликации или комбинированный. В нашем случае наибольший интерес представляет именно комбинированный алгоритм.
  • Если запустить оба оптимизатора в качестве службы (daemon) командой opennopd, то устройства обнаружат друг друга и установят соединение, если они взаимно доступные (проверить это можно командой ping). После установления соединения мы можем проверить к...
  • Однако только таких действий будет недостаточно для правильной работы оптимизаторов, поскольку нам потребуется еще одна настройка сетевого соединения на оптимизаторах, а именно перенаправление трафика. Один из механизмов оптимизации WAN – это ускорени...
  • Перенаправление входящих пакетов может быть достигнуто с помощью цепочки FORWARD, а целью (флаг –j) мы указываем NFQUEUE (механизм копирования сетевых пакетов в пользовательское пространство для дальнейшей обработки; пакет libnetfilter-queue). Данное ...
  • Теперь мы можем проверить корректность работы наших оптимизаторов посредством копирования файлов с сервера на клиентский ПК и сбором статистики через приложение-клиент (команда opennop).
    • 2.4. Маршрутизация
  • На устройствах с установленной на них ОС Debian 12 сетевые настройки осуществлены путем изменения файла /etc/network/interface. Поскольку клиентские ПК подключены лишь к маршрутизаторам, для настройки сетевого подключения на таких устройствах достаточ...
  • Оптимизатор OPT1 соединен с устройствами WAN_Em (сеть 172.16.0.4/30) и Client1 (сеть 192.168.2.0/24), в качестве шлюза указан WAN_Em:
  • Оптимизатор OPT2 соединен с устройствами WAN_Em (сеть 172.16.0.0/30) и SAMBA-srv (сеть 192.168.1.0/24), в качестве шлюза указан SAMBA-srv:
  • Маршрутизатор ROUTER3 соединен с устройствами WAN_Em (сеть 172.16.0.8/30) и Client2 (сеть 192.168.3.0/24), в качестве шлюза указан WAN_Em:
  • Устройство WAN_Em имеет три сетевых интерфейса и в нашей задаче выполняет роль эмуляции глобальной сети. Шлюзом для WAN_Em является устройство OPT2:
  • Устройство SAMBA-srv соединено с OPT2 (сеть 192.168.1.0/24), а также имеет выход в Интернет через отдельный сетевой интерфейс (SAMBA-srv – единственное устройство в разработанной корпоративной сети, имеющее прямой выход в Интернет), который имеет адре...
  • Чтобы обеспечить выход в Интернет всем устройствам корпоративной сети, необходимо настроить маршрутизацию на устройствах SAMBA-srv, WAN_Em и OPT2 (на всех остальных устройствах сети достаточно лишь маршрута default, который создается автоматически при...
  • Для добавления маршрута используется команда ip route add via , но такой маршрут будет существовать до перезагрузки устройства. Поэтому внесем изменения в уже известный нам файл /etc/network/interfaces, где дл...
  • Командой ip route мы можем проверить таблицу маршрутизации на устройстве (рис. 23 – 25):
  • Однако одних лишь маршрутов недостаточно для корректной работы сети: например, если SAMBA-srv захочет обратиться к WAN_Em (по адресу 172.16.0.5), то он передаст данные OPT2, находящемуся посередине между отправителем и адресатом, а OPT2 в свою очередь...
  • Описанное выше действие должно быть выполнено на устройствах SAMBA-srv, OPT2, WAN_Em, OPT1, ROUTER3.
    • 2.5. Итоговый вид стенда для тестирования
  • Итоговый вид корпоративной сети представлен на рис. 27. В данной сети имеются два филиала, в одном из которых установлен оптимизатор WAN, а в другом филиале оптимизатор отсутствует. В каждом из филиалов имеется минимум одно клиентское устройство. Кром...
  • Устройства OPT1 и OPT2 совмещают в себе функции маршрутизатора и оптимизатора, устройство ROUTER3 выполняет роль маршрутизатора. SAMBA-srv является файловым сервером, а также имеет доступ в Интернет. Остальные устройства в корпоративной сети получают ...
    • 3. ПРЕДВАРИТЕЛЬНОЕ ТЕСТИРОВАНИЕ ОПТИМИЗАТОРА WAN
  • В качестве одного из сценариев для тестирования функциональности и эффективности оптимизатора был выбран случай со скачиванием клиентом файлов (.pdf, .txt, .xls и другие) с общедоступного сервера (сервис SAMBA), при этом клиентский ПК и сервер находят...
  • Проведем эксперимент: осуществим передачу тестового набора файлов размером 46 Мбайт в сети с максимальной скоростью 10 Мбит/с, круговой задержкой (время, затраченное на отправку сигнала и затраченное для подтверждения о получении сигнала) 60 мс и случ...
  • В ходе эксперимента выяснилось, что оптимизаторы быстро теряют эффективность при увеличении процента потерь пакетов, поэтому был проведен дополнительный эксперимент, а именно запуск FEC (Forward Error Correction или же предварительная обработка трафик...
  • В качестве реализации FEC для эксперимента было использовано решение tinyfecVPN [15], находящееся в свободном доступе.
  • Для упрощения процедуры запуска был написан скрипт fec_start.sh, который запускает службу tinyFEC, а также добавляет временный (действует до выключения устройства) маршрут до другого оптимизатора через туннель, созданный tinyfecVPN.
  • Служба tinyfecVPN использует код Рида-Соломона [4] для уменьшения процента потерь пакетов за счет дополнительного использования полосы пропускания.
  • Оптимизатор успешно справляется с поставленными задачами, уменьшая время, затраченное на передачу файлов через канал глобальной сети. Но при этом стоит отметить, что оптимизатор без модуля FEC теряет эффективность даже при низком проценте потерь пакетов.
    • 4. ОСОБЕННОСТИ РЕАЛИЗАЦИИ МЕХАНИЗМОВ ОПТИМИЗАЦИИ
  • Проект SoloWAN реализован на основе OpenNOP – сетевого «ускорителя» с открытым исходным кодом на базе Linux, предназначенного для оптимизации сетевого трафика. Наиболее важной частью OpenNOP в контексте поставленной задачи является алгоритм TCP-оптими...
  • За счет чего достигается ускорение TCP-трафика? Обратимся к файлу compression.c, содержащему в себе описание функций сжатия и восстановления TCP-данных в IP-пакете.
  • Ускорять мы планируем именно TCP-трафик, поэтому нам важно, чтобы передаваемым в пакете протоколом был именно TCP (if (iph->protocol == IPPROTO_TCP)). Необходимым для запуска алгоритма условием является наличие TCP-протокола в IP-пакете (рис. 30). Это...
  • Упомянутые выше сокеты – это программные интерфейсы, используемые для обеспечения обмена данными между процессами (процессы могут выполняться как на одном устройстве, так и на разных машинах, соединенных в одну сеть). В C/C++ работа с сокетами возможн...
  • Далее мы получаем указатель на TCP-заголовок (получаем длину IP-заголовка через поле ihl нашего пакета и затем передвигаем указатель на эту длину): tcph = (struct tcphdr *) (((u_int32_t *) ippacket) + iph->ihl). Указатели на IP- и TCP-заголовки нам ну...
  • При наличии данных в пакете происходит их сжатие (newsize = qlz_compress((char *) tcpdata, (char *) lzbuffer, oldsize, state_compress)), а далее, если сжатие было успешным (то есть, размер данных уменьшился), происходит копирование данных обратно в па...
  • Восстановление данных (функция tcp_decompress()) реализовано аналогично, однако при обнаружении данных в пакете вызывается уже функция восстановления qlz_decompress().
  • В данной предметной области наиболее типичным алгоритмом сжатия данных является алгоритм Лива-Земпеля, а в описанном выше алгоритме используется его вариация под названием QuickLZ. QuickLZ – это быстрый алгоритм сжатия без потерь (или же lossless data...
  • Создатели алгоритма LZ4 [9] сравнили некоторые из алгоритмов сжатия данных при динамическом обмене данными (рис. 31). Результаты тестов показали, что LZ4 является наиболее эффективным среди представленного набора алгоритмов по суммарному затраченному ...
  • Тем не менее, будет целесообразным заменить используемый в прототипе оптимизатора алгоритм QuickLZ на LZ4 или на Snappy (разработанный компанией Google) и провести повторное тестирование оптимизатора.
  • Перейдем к реализации дедупликации данных, для этого обратимся к файлу as.c.
  • Файл as.c содержит в себе описание функций, необходимых для работы с ассоциативными массивами или же словарями (хэш-таблицами).
  • Поскольку C – это основной язык разработки в проекте, то работа с динамической памятью выполняется через функции malloc, calloc и realloc, содержащиеся в заголовочном файле . Динамическая память используется из-за того, что нам заранее неизв...
  • Дедупликация данных может быть файлового или блокового типа. Первый тип подразумевает удаление копий целых файлов, если они идентичны, и для передачи данных в корпоративной сети подобный вариант не кажется эффективным. Блоковая дедупликация заключаетс...
  • Функция as_write() выполняет запись новых данных в хэш-таблицу с возможностью динамического расширения размера этой таблицы. Сперва мы должны выяснить, поместится ли поданный сегмент в ассоциативный массив, и в случае, если запрошенная позиция (pos) п...
  • Функция as_read() выполняет операцию чтения блока данных из таблицы по конкретному адресу, после чего копирует его в буфер. Первый байт (байт состояния) при копировании данных пропускается и в буфер в результате не заносится.
  • Кроме перечисленных выше функций, еще реализованы функции: as_create() для создания словаря, as_close() для удаления таблицы с освобождением памяти, as_delete() для удаления блока данных, размещенного по переданному адресу, а также as_full() для подсч...
  • Работа с хэш-ключами и иные аспекты дедупликации в данной главе рассматриваться не будут, поскольку имплементация каких-либо модификаций или же замена алгоритма дедупликации целиком (например, заменить используемый RabinCDC на FastCDC) – крайне трудоё...
  • Как можно было бы улучшить прототип оптимизатора WAN? Наиболее простым вариантом будет исследовать, при каких размерах сегмента данных эффективность работы оптимизатора повышается. Более сложный подход – добавление функционала, позволяющего изменять р...
  • Кроме того, дедупликация в нынешней реализации тоже применяет алгоритм сжатия QuickLZ к уникальным сегментам данных, следовательно, замена QuickLZ на более быстрый LZ4 или любой более подходящий алгоритм сжатия должна привести к повышению эффективност...
    • 5. РАЗРАБОТКА МОДИФИКАЦИЙ
      • 5.1. Требования к модификациям
  • В ходе тестирования выяснилось, что реализованный способ запуска оптимизатора (посредством вызова через терминал на каждом устройстве) не является достаточно удобным для администратора. Или же представим ситуацию, когда нам необходимо отключить тот ил...
  • Централизация и автоматизация некоторых из описанных выше действий позволит ускорить и упростить работу администратора сети, а достичь этого можно с помощью разработки отдельного приложения с графическим интерфейсом пользователя, которое будет запуска...
    • 5.2. Разработка управляющего приложения
  • Используемый язык программирования – Python. Приложение-контролер должно предоставлять возможность включения/отключения модулей оптимизаторов, изменения параметров и отображения статистики в текстовом и графическом видах.
  • Каким образом можно добиться выполнения Python-приложением команд Linux? В данном случае нам поможет встроенный в язык модуль subprocess, позволяющий запустить любую утилиту Linux. Как уже было выяснено ранее, мы можем в отдельном терминале запускать ...
  • Однако применения одного лишь модуля subprocess однозначно не хватит для достижения поставленных целей, поскольку даже при наличии доступа к другому устройству и наличии сведений о его сетевом адресе мы не сможем запустить утилиту вне системы, на кото...
  • 1. Все передачи данных шифруются, что предоставляет гарантию защиты от перехвата трафика (который вполне вероятен, поскольку передача данных происходит через канал глобальной сети);
  • 2. Аутентификация может быть не посредством использования логинов и паролей, а с помощью RSA-ключей, что повышает безопасность сетевого взаимодействия;
  • 3. В контексте нашей задачи нет необходимости разрабатывать серверную часть приложения, можно обойтись лишь клиентом, запускаемым на компьютере администратора сети.
  • Применение Fabric/Ansible для поставленной задачи кажется избыточным, поскольку упомянутые инструменты хоть и являются достаточно популярными у сетевых инженеров и администраторов, но и используются они обычно для управления целым множеством устройств...
  • При разработке приложения на языке Python на основе SSH-соединения будет использовать сторонний модуль paramiko [11], который не только предоставляет возможность удаленного доступа к устройству, но и способен передавать команды для их выполнения на др...
  • Сперва сгенерируем ключевые пары на нашем устройстве-контролере (для упрощения настроек таковым был выбран компьютер SAMBA-srv). Поскольку нам необходимо подключаться сразу к двум оптимизаторам, то и ключевых пар должно быть две.
  • С помощью флага –f при вызове утилиты ssh-keygen мы можем указать локацию для наших ключей:
  • Для подключения к удаленному устройству нам нужно иметь приватный ключ, а удаленный компьютер должен иметь доступ к публичному ключу. Передадим ключи на наши оптимизаторы с помощью утилиты ssh-copy-id:
  • Проверим корректность проделанных действий, подключившись к каждому из устройств:
  • Выведем в терминал информацию обо всех сетевых интерфейсах нашего удаленного устройства с помощью команды ip addr, чтобы удостовериться, что подключились мы именно к OPT1.
  • Действительно, адреса на интерфейсах enp0s3 и enp0s8 соответствуют OPT1, следовательно, подключение успешно.
  • Аналогичные действия выполняются и для второго оптимизатора.
  • Перейдем к описанию реализации приложения-контролера (control.py). В функции key_connect() выполняется подключение к удаленному устройству по SSH следующим образом: закрытый ключ сохраняется в переменную pkey (для этого нужно указать кодовую фразу), п...
  • В функции command_build() выполняется обработка пользовательского ввода (администратор должен запускать приложение командой следующего вида: python3 control.py enable/disable). В случае некорректного ввода аргументов работа приложения прек...
  • Функция command_run() отвечает за выполнение таких команд, как “deduplication enable/disable”, “compression enable/disable”. Для выполнения одного из этих действий создается интерактивная сессия SSH с удаленным устройством (ssh = client.invoke_shell()...
  • Требуемая команда передается в сессию методом send(command + ‘\n’), однако для запуска opennop (клиент оптимизатора) требуются права суперпользователя, поэтому дополнительно отправляем в сессию пароль. Методом recv(1024) мы получаем данные из сессии в...
  • Функция script_run() предназначена для выполнения команд “FEC enable” и “FEC disable”. В ходе изучения устройства tinyfecVPN было установлено, что создаваемый данной программой туннель работает корректно, если на каждой из машин настроить таблицы марш...
  • Наиболее оптимальным способом обработки той или иной инструкции является конструкция match-case, с помощью которой вызывается необходимая функция обработки.
  • В главной функции main нам достаточно указать адреса удаленных устройств и путь до файлов с закрытыми ключами. Одновременное выполнение инструкции на обоих оптимизаторах достигается с использованием потоков (модуль thread). Далее нам достаточно лишь п...
  • Однако примененные ранее правила фильтрования сетевого трафика iptables не позволят нам управлять устройством OPT1, находящимся по ту сторону глобальной сети, потому что служба SSH использует TCP-порт 22, следовательно, трафик, передаваемый по этому п...
  • Службу iptables_restore.service необходимо запустить на каждой из машин, для чего сперва скопируем одноименный конфигурационный файл
  • Протестируем работу приложения-контролера. Для этого на каждом из оптимизаторов запустим приложение-клиент и проверим, действительно ли нужный модуль был отключен или включен.
  • Для проверки корректности выполнения команд “FEC disable/enable” нам достаточно лишь сравнить таблицы маршрутизации на оптимизаторах до и после запуска приложения-контролера: если необходимо выключить FEC, то после конца работы приложения из таблиц ма...
    • 5.3. Визуализация сетевого трафика
  • За основу был взят collectd-сервер, размещенный на отдельном устройстве. Collectd [7] – это программа-демон (daemon), собирающий с некоторой периодичностью статистику об использовании ресурсов системы с дальнейшей отрисовкой этой статистики в виде гра...
  • На устройствах OPT1, OPT2 и WAN_Em были созданы collectd-агенты со следующей конфигурацией:
  • С помощью плагина network агент способен подключиться к серверу с указанным адресом.
  • На устройстве, имеющем адрес 192.168.100.5 и находящемся в одной локальной сети с хост-компьютером (с использованием ресурсов которого был развернут стенд), запущен collectd-сервер, собирающий всю поступающую статистику от агентов, чтобы далее предста...
    • 6. ПОВТОРНОЕ ТЕСТИРОВАНИЕ ОПТИМИЗАТОРА
  • Проверка работоспособности и эффективности оптимизаторов будет выполняться путем передачи набора файлов с форматами, по-разному поддающимися сжатию (.exe, .odp, .pptx, .docx, .bmp, .psd), с файлового сервера на клиентский ПК. Информационный объём набо...
    • 6.1. Испытания с пропускной способностью сети 10 Мбит/с
  • Сетевые аномалии, созданные на эмуляторе WAN: пропускная способность сети – 10 Мбит/с, максимальное время ожидания в очереди для пакета – 400 мс (latency), число байт в очереди для ожидания – 12500 (limit), задержка пакетов перед отправкой – 15 мс (de...
  • Результаты экспериментов представлены на рис. 41.
  • Отметим, что модуль FEC не был запущен перед какой-либо из передач файлов, поскольку из предыдущих тестов (рис. 28) следует, что работа FEC лишь ухудшает производительность сети, если в ней отсутствуют какие-либо ошибки (потери пакетов).
  • Сводная статистика (выбранный режим, время передачи, скорость передачи) первого блока испытаний представлена в табл. 1.
  • Наиболее эффективным режимом является одновременная работа алгоритмов компрессии и дедупликации, причем в данном случае передача данных заняла в более чем 2 раза меньше времени, чем при отсутствии какой-либо оптимизации. Этот эффект практически целико...
  • Обе передачи с дедупликацией заняли одинаковое время (около 120 секунд), что объясняется использованием алгоритма сжатия в механизме дедупликации. Отсутствие разницы между первой и второй отправкой файлов может быть обусловлено тем, что еще при первой...
  • Создадим на интерфейсе enp0s8 (передает данные OPT1 и клиенту) эмулятора WAN ошибки – loss 0.3% и повторим эксперименты.
  • Как можно заметить на рис. 43, в один момент скорость передачи данных значительно уменьшилась, следовательно, произошла потеря пакетов. Такая резкая реакция типична для протокола TCP (рис. 3).
  • При этом скорость передачи данных клиенту хоть и не меняется, но не достигает заявленных 10 Мбит/с.
  • После включения модуля FEC с параметром f:20:10 (вместе с 20 входящими пакетами данных передаются дополнительно 10 избыточных пакетов) время передачи лишь увеличилось, что говорит о неправильной настройке FEC. Так, например, если верхний предел скорос...
  • В таком случае имеет смысл изменить число отправляемых FEC избыточных пакетов, например, на f:20:4 или f:20:2, однако при этом соотношение не должно быть слишком малым (f:30:1). Такие соотношения, как f:20:10, следует проверять на каналах с большей пр...
  • Промежуточные результаты (табл. 2) совсем не соответствуют тому, что было получено в предварительном тестировании стенда.
  • После многочисленных тестов было принято решение изменить значение задержки (delay) с 15 до 30 мс, поскольку оптимизатор WAN и FEC не являются эффективными инструментами в условиях, скорее близких к локальной сети, чем к глобальной сети. Как оказалось...
  • Были проведены повторные тесты для трех конфигураций, результаты данных экспериментов представлены в табл. 3. Действительно, как и при предварительном тестировании оптимизаторов, использование лишь прототипа оптимизатора для глобальной сети с какими-л...
  • Оставим значение задержки равным 30 мс, но увеличим процент потерь пакетов до 1%.
  • Дальнейшее повышение ошибок и задержки лишь увеличит разрыв между вариантом полной оптимизации с использованием FEC и остальными конфигурациями. Очевидно, что более 18 минут на передачу лишь 227 мегабайт данных – неприемлемо большой срок в условиях ко...
  • Случаи с ошибкой размером 2% или более не рассматривается по той причине, что в реальных условиях сеть с такими процентами потерь пакетов скорее являются некачественными.
    • 6.2. Испытания с пропускной способностью сети 25 Мбит/с
  • Дальнейшие эксперименты будут проводиться лишь для конфигураций «без оптимизации, без FEC» и «полная оптимизация + FEC», поскольку вариант с использованием оптимизатора без FEC в глобальной сети с ненулевой ошибкой оказался крайне расточительным по вр...
  • Следующие эксперименты необходимы для выявления каких-то особенностей поведения оптимизаторов на сетях с большей пропускной способностью, при этом ошибка будет ненулевой во всех тестах.
  • Сетевые аномалии в сети с пропускной способностью 25 Мбит/с: максимальное время ожидания в очереди для пакета – 400 мс (latency), число байт в очереди для ожидания – 12500 (limit), задержка пакетов перед отправкой – 45 мс (delay), процент потерь пакет...
  • Как можно заметить из графика выше, при выключенных оптимизаторах и модуле FEC скорость передачи данных многократно ниже установленного порога, когда как в варианте с полной конфигурацией максимальная скорость составляла 15.8 Мбит/с. Неиспользование п...
  • Сводная статистика тестирования представлена в табл. 5.
    • 6.3. Испытания с пропускной способностью сети 50 Мбит/с
  • Сетевые аномалии в сети с пропускной способностью 50 Мбит/с: максимальное время ожидания в очереди для пакета – 400 мс (latency), число байт в очереди для ожидания – 12500 (limit), задержка пакетов перед отправкой – 45 мс (delay), процент потерь пакет...
  • Сводная статистика тестирования представлена в табл. 6.
  • Сети с пропускной способностью более 50 Мбит/с не рассматриваются, поскольку чаще всего используются сети 10-20 Мбит/с, когда как сети 20-50 Мбит/с встречаются куда реже, а их аренда заметно дороже, чем сети 10-20 Мбит/с.
    • 6.4. Выводы
  • В ходе многочисленных экспериментов было выявлено, что оптимизатор WAN способен работать эффективно только в сетях без потерь пакетов, что в условиях глобальных сетей явление крайне редкое. При возникновении ошибок передача данных только через оптимиз...
  • Оптимизаторы WAN целесообразно использовать в связке с модулем FEC (в случае данной работы таким модулем выступал проект tinyfecVPN), поскольку это позволяет значительно ускорить процесс передачи данных между филиалами компании (вплоть до десятикратно...
    • 7. ЗАДАЧИ НА ДАЛЬНЕЙШЕЕ ИССЛЕДОВАНИЕ И РАЗРАБОТКУ
  • Проведенное повторное тестирование оптимизаторов позволило выявить преимущества и недостатки прототипа оптимизатора WAN при использовании его в корпоративной компьютерной сети передачи данных.
  • Несмотря на то, что прототип хорошо справляется с поставленными задачами, хоть и с некоторыми оговорками, на его производительность может положительно повлиять ряд модификаций, разработка которых заняла бы куда большее количество часов, чем отведенное...
  • В ходе дальнейшей разработки прототипа отечественного оптимизатора следует предусмотреть возможность смены администратором алгоритмов сжатия и дедупликации, что позволит обеспечить гибкость конфигурации оборудования. Кроме того, не будет лишним позвол...
  • Кроме того, с помощью некоторых экспериментов удалось на практике обнаружить следующие недостатки механизмов протокола TCP: резкая реакция на потерю пакетов данных (с уменьшением скорости в несколько раз) и отсутствие выборочного подтверждения (Select...
  • Разработка приложения с полноценным графическим интерфейсом пользователя (GUI) хотя и не скажется положительно на эффективности оптимизатора, но упростит рабочий процесс администратора. В таком приложении, например, к уже имеющемуся функционалу с авто...
  • Визуализация сетевого трафика посредством collectd-сервера является довольно простым и удобным решением, но не будет лишним добавить в приложение с GUI данные с интерфейсов оптимизаторов в графическом виде, чтобы решение стало унифицированным, то есть...
    • ЗАКЛЮЧЕНИЕ
  • В данной работе были исследованы современные решения в сфере оптимизаторов передачи данных через глобальную сеть. На основе существующих инструментов был разработан прототип отечественного оптимизатора WAN с открытым исходным кодом. Возможности протот...
  • Первая глава работы посвящена изучению предметной области для определения технологической основы для прототипа оптимизатора и для изучения существующих механизмов оптимизации передачи данных в глобальных сетях.
  • Во второй главе описывается процесс развертывания стенда виртуальных машин, созданных в среде Oracle VirtualBox.
  • В третьей и шестой главах проводились тестирования оптимизатора на стенде виртуальных машин. Тестирование заключалось в передаче файлов с общедоступного файлового сервера на клиентский компьютер через глобальную сеть. Иными словами, рассматривалось вз...
  • Четвертая глава посвящена изучению реализованных в технологической основе прототипа механизмов оптимизации, что позволило определить возможные будущие модификации проекта.
  • В рамках пятой главы было разработано приложение для централизованного управления оптимизаторами WAN. Основой данной программы является использование сетевого протокола SSH, обеспечивающего безопасное подключение к удаленным устройствам через глобальн...
  • Эксперименты показали, что оптимизатор WAN без использования модуля предварительной корректировки ошибок (FEC) перестает быть эффективным при наличии потерь пакетов, которые существуют в любой глобальной сети. Применение оптимизатора в связке с FEC по...
  • В седьмой главе были предложены возможные усовершенствования прототипа, среди которых стоит выделить внесение изменений в встроенные в протокол TCP механизмы (реакция на потери пакетов, выборочное подтверждение), а также реализацию поддержки различных...
  • Разработанный прототип отечественного оптимизатора WAN может быть использован в корпоративных компьютерных сетях, однако для этого организации, заинтересованной в размещении подобного ПО необходимо также подобрать подходящий или разработать собственны...
  • 1. База знаний РЕД ОС // РЕД ОС URL: https://redos.red-soft.ru/base/ (дата обращения: 10.02.2025)
  • 2. Введение в дедупликацию данных // Хабр URL: https://habr.com/ru/companies/veeam/articles/203614/ (дата обращения: 25.12.2024)
  • 3. Как делается оптимизация трафика // Хабр URL: https://habr.com/ru/companies/croc/articles/214693/ (дата обращения: 26.12.2024)
  • 4. Код Рида-Соломона // Хабр URL: https://habr.com/ru/articles/518120/ (дата обращения: 13.04.2025)
  • 5. Оптимизация WAN // Nag.Ru URL: https://nag.ru/material/17587 (дата обращения: 25.12.2024)
  • 6. Эмуляция влияния глобальных сетей // Харб URL: https://habr.com/ru/articles/24046/ (дата обращения: 11.03.2025)
  • 7. Collectd // Collectd URL: https://www.collectd.org/ (дата обращения: 26.05.2025)
  • 8. Deshpande A., Kaushal A. MX-TCP and HS-TCP as Possible Options to Overcome TCP Limitations in Multi-Hop Ad-Hoc Networks // International Journal of Advance Research in Computer and Communication Engineering – 2015 – с. 505-508 (дата обращения: 25.1...
  • 9. LZ4 // LZ4 URL: https://lz4.org/ (дата обращения: 05.05.2025)
  • 10. tc-netem // man7.org URL: https://man7.org/linux/man-pages/man8/tc-netem.8.html (дата обращения: 11.03.2025)
  • 11. Paramiko documentation // Paramiko URL: https://docs.paramiko.org/en/stable/index.html (дата обращения: 20.05.2025)
  • 12. Riverbed Optimization System (RiOS) 9.1 A Technical Overview // Netwell URL: https://www.netwell.ru/upload/iblock/ea5/ea53bf438691689906fb89b7f13e22fe.pdf (дата обращения: 20.12.2024)
  • 13. SoloWAN Project // GitHub URL: https://github.com/solowan/solowan?tab=readme-ov-file (дата обращения: 21.12.2024)
  • 14. tinyfecVPN // GitHub URL: https://github.com/wangyu-/tinyfecVPN (дата обращения: 23.04.2025)
  • 15. SD WAN Optimization // Wanos Networks URL: http://wanos.co/wan-optimization/ (дата обращения: 22.12.2024)
    • Приложение 1
  • Описание приложения-контролера control.py (Python)
    • Приложение 2
  • Конфигурационный файл opennop.conf для OPT1
  • Конфигурационный файл opennop.conf для OPT2
    • Приложение 3
  • Файл compression.c
    • Приложение 4
  • Файл compression.c (1)

Access count: 0 
Last 30 days: 0

Detailed usage statistics