8 (499) 490-48-63

Агрегирование интернет каналов

Система Агрегирования Цифровых Каналов Связи - это программный продукт, выполненный в виде unix-демона, имеющий серверную и клиентскую часть. Основное назначение продукта - обеспечение суммирования скоростей нескольких IP маршрутов, а также обеспечения отказоустойчивости. Передача данных основана на технологии Multichannel VPN.

Преимущества которые получают наши клиенты при использовании наших продуктов:

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

Конфигурация системы.

Система состоит из 2-х частей:

  • Клиентская;
  • Серверная;

Клиентское ПО устанавливается на встраиваемое устройство (Embedded devices), обычно это Wi-Fi точка доступа с ARM или MIPS процессором. Допускается использование архитектуры x86.

Серверное ПО устанавливается на сервере с широким каналом доступа в интернет (например в дата центре или офисе).


Принцип работы.

Клиент запускает несколько процессов vtrunkd - демона агрегирования (3), процессы синхронизируются через POSIX SHM (2) и предоставляют системе один виртуальный интерфейс tun0 (1). Каждый процесс устанавливает пул TCP соединений (4) к серверу через собственный маршрут согласно SO_MARK, и поддерживает прохождение SPF файрволов. Сервер осуществляет менеджмент процессов и авторизацию по общему ключу, и предоставляет системе интерфейсы tun0...tunXXX. Далее интерфейсы конфигурируются, и опционально устанавливается прокси-сервер для созданных туннелей (5).


Режимы работы.

  • Режим агрегирования. Используется для увеличения производительности (частичное сложение скоростей). В режиме агрегирования могут работать несколько выбранных физических каналов. В данном режиме по разным каналам отправляются различные IP пакеты (далее просто пакеты). Пакеты, прочитанные из сетевого интерфейса, отправляются по каналам включенным в агрегирование в том количестве, которое необходимо для того, что бы достичь максимальной скорости (bandwidth) при минимальном отклике (rtt) и звоне (jitter) системы. Таким образом количество данных, отправляемых в единицу времени, увеличивается пропорционально сумме производительностей этих каналов. На другой стороне пакеты выстраиваются в цепочку и отправляются дальше.
  • Режим ретрансмит. Используется для повышения надежности (частичное дублирование пакетов). Физические каналы, находящиеся в этом режиме, не отправляют уникальные пакеты, а дублируют уже отправленные. В случае наличия быстрого канала, отправленные им данные будут частично продублированы каналами, работающими с меньшей скоростью. Данный режим позволяет повысить стабильность работы системы, но при этом максимальная скорость будет не выше скорости этого быстрого канала.
  • Режим пересылок. Используется при форс-мажоре в агрегировании (редко в ретрансмите). Режим включается всегда при обрыве соединения или при резком ухудшении характеристик одного из каналов. Данный режим позволяет практически исключить возможные потери пакетов и обрывы соединений пользователя.
  • Режим добавления избыточного кода. Режим позволяет работать на физических каналах с высокой производительностью, но с большим количеством потерь пакетов. Например когда в качестве физического канала используется «Wi-Fi в режиме infrastucture» с постоянным переключением точек доступа. В данном режиме к отправляемым пакетам добавляется избыточный код, позволяющий восстановить соседние потерянные пакеты (такого рода алгоритм применяется на CD/DVD дисках, именно благодаря ему читаются царапанные диски). В будущем этот режим возможно заменит режим ретрансмита.

Системные требования.

Требования к ЭВМ (обобщеный вариант):

Server:

  • CPU: 1 GHz / 100 MBit/s (upload)
  • RAM: 1 GB / 50 connections

HDD:

  • vtrunkd only: 100MB
  • Skytrol: 300MB

Client:

  • CPU: 500MHz / 100 MBit/s (download)
  • RAM: 20MB / 3x routes + 10 MB linux kernel (36MB RAM total)
  • HDD: 8 MB / sqashfs (compressed image)

Требования к ОС:

  • Linux kernel > 2.6.36;
  • libc w/POSIX threads support
  • SHM enabled