Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 1,006

ANALYSIS OF METHODS OF INCREASING BANDWIDTH BY USING SEVERAL 3G MODEMS AND BONDING DRIVER

Fedchenkov P.V. 1
1 Saint Petersburg National Research University of Information Technologies
Ways of combination of several data channels in order to increase the stability and capacity of connection are described in this article. The main objectives of the articles are to study the need to combine data channels, to explore the bonding kernel mode driver Linux, to compare the change in throughput at harnessing aggregation, as well as identify challenges for future research in the annex to transfer data over cellular networks. The way of usage of bonding driver to organize the multicast data shows a diagram of the decision, described the necessary settings. There are series of tests using 3G modems to study the reliability and speed of data. The results of measurements allow us to select the driver mode based on the required system performance. To ensure the reliability of the best option is the broadcast mode, for speed - 802.11ad.
bonding
bandwidth improvements
data channels
3g
OpenVPN

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

При использовании в качестве канала связи сетей третьего поколения (3G) реальная скорость отдачи данных редко достигает уровня MБ/с даже в условиях прямой видимости базовой станции. В случае необходимости передачи данных с устройства пользователя данная величина является критически важной, однако ввиду направленности клиентских устройств на потребление контента операторы уделяют мало внимания повышению этого показателя.

В статье рассматривается один из способов повышения скорости обмена данными – объединение каналов при помощи драйвера bonding ядра Linux [3]. Драйвер предоставляет методы для агрегирования нескольких сетевых интерфейсов в один логический. Поведение связанных интерфейсов зависит от выбранного режима. В общем случае объединенные интерфейсы могут работать в режиме горячего резерва (отказоустойчивости) или в режиме балансировки нагрузки, с целью повышения пропускной способности.

Режимы объединения каналов

1. Balance-rr

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

2. Active-backup

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

3. Balance-xor

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

4. Broadcast

Пакеты передаются на все интерфейсы. Режим обеспечивает отказоустойчивость.

5. 802.3ad

IEEE 802.3ad Dynamic Link aggregation (динамическое объединение каналов). Создает агрегации групп, имеющие одни и те же скорости, и дуплексные настройки. Использует все включенные интерфейсы в активном агрегаторе согласно спецификации 802.3ad. Обеспечивает правильную очередность доставки пакетов. Требуется поддержка режима на уровне сетевой платы.

6. Balance-tlb

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

7. Balance-alb

Повторяет предыдущий режим, но также осуществляет балансировку входящего трафика. Подобное достигается путем ARP-опросов. Драйвер перехватывает ARP-ответ и перезаписывает исходный адрес на один из адресов интерфейса группы. Требуется поддержка смены MAC-адреса сетевой платы при активном соединении.

Предлагаемое решение

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

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

Для каждого устройства передачи данных (в данном случае для USB-модемов), создаётся отдельный туннель. Таким образом обеспечивается создание виртуальной локальной сети с множеством виртуальных интерфейсов, которые подключаются к разным портам через один физический интерфейс сервера [5]. Подобное разделение достигается путем использования возможностей межсетевого экрана netfilter (в текущей реализации используется дистрибутив Ubuntu 14.10).

Использование туннелей OpenVPN предоставляет возможность контроля ошибок соединений и обеспечивает ожидание восстановления подключения каждого из клиентских устройств передачи данных путем посылки ping-запросов на сервер с последующим переподключением [2]. В режиме простоя канала также производится периодическая проверка соединения, что важно ввиду неустойчивой связи в мобильных сетях.

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

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

Рис. 1. Схема решения.

Тестирование режимов передачи

Как видно из представленного выше перечня, в случае необходимости передачи данных по одному соединению, что актуально, к примеру, при передаче файлов по протоколам http, отчасти ftp, наибольшие преимущества извлекаются при использовании режима balance-rr. В таком случае обеспечение отказоустойчивости переносится на OpenVPN-туннели. Недостатком данного режима является отсутствие адаптивной балансировки нагрузки: пакеты перераспределяются поочередно, то есть максимальная эффективность осуществляется при объединении каналов с равной пропускной способностью, что невозможно обеспечить при подключении через мобильных операторов.

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

При использовании множества подключений между клиентом и сетью оптимальными выглядят варианты 802.31ad и balance-alb.

Результаты тестирования скорости передачи данных приведены в таблице 1. Замеры производились с использованием модемов ZTE MF823 (сеть «Мегафон») и Huawei e3372 (сеть «Билайн») в режиме принудительного включения 3G. Замеры производились в условиях загруженной сети, величина ping до 200 мс, уровень сигнала около -85 dbm.

Таблица 1

Результаты измерений

Режим объединения

Одно устройство

Два устройства

Прием, МБ/c

Отдача, МБ/c

Прием, МБ/c

Отдача, МБ/c

802.11ad

3

0.7

4.5

0.9

balance-rr

3.3

0.8

3.5

1

broadcast

3.6

0.8

3.5

0.75

Наилучшие показатели надежности наблюдаются у режима broadcast, однако он не обеспечивает прироста в скорости обмена данными при увеличении количества устройств. Приведённые цифры являются усредненными значениями по сеансам обмена данными.

Заключение

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

Рецензенты:

Горелик С.Л., д.т.н., профессор Санкт-Петербургского национального исследовательского университета информационных технологий, механики и оптики Минобрнауки РФ, г. Санкт-Петербург;

Федоров А.В., д.ф.-м.н., профессор, зав. кафедрой ОФ и СЕ Санкт-Петербургского национального исследовательского университета информационных технологий, механики и оптики Минобрнауки РФ, г. Санкт-Петербург.