Способ и устройство балансировки нагрузки в программно-конфигурируемой сети
Владельцы патента RU 2778082:
Федеральное государственное казенное военное образовательное учреждение высшего образования "Военная орденов Жукова и Ленина Краснознаменная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации (RU)
Изобретение относится к области сетей связи. Техническим результатом является повышение эффективности использования пропускной способности программно-конфигурируемой сети (ПКС) путем осуществления качественного перехода от адаптивной модели реагирования на возникающие изменения в сети к проактивной модели управления сетью в целом. В способе предварительно обрабатывают принятую на уровне приложений ПКС статистическую информацию: выделяют в ней целевые признаки, разделяют их на обучающую и испытывающую искусственную нейронную сеть (ИНС) выборки. Процесс обучения ИНС заключается в расчете первоначальных значений весовых коэффициентов связей слоев ИНС и их корректировке. После обучения ИНС рассчитываются пороговые значения прогнозируемых признаков и, соответственно, значения выходного слоя ИНС. По полученным спрогнозированным данным выходного слоя ИНС формируют управляющее воздействие с использованием выбранного алгоритма динамической балансировки нагрузки в ПКС, и передают его для балансировки нагрузки на уровень управления ПКС в ЛЦК ПКС. 2 н. и 5 з.п. ф-лы, 6 ил.
Заявленные технические решения объединены единым изобретальским замыслом и предназначены для использования в телекоммуникационных мультисервисных сетях связи с целью увеличения эффективности использования пропускной способности.
Известны способы балансировки нагрузки в программно-конфигурируемых сетях (ПКС). Так, в известном способе по Патенту РФ №2576488 от 10.03.2016 г. предлагается способ построения сетей передачи данных с повышенным уровнем защиты от DDoS-атак, реализующий способ взаимодействия клиент-сервера со сменой сетевых адресов клиента и сервера по заранее договоренному расписанию в процессе передачи данных и включающий в себя архитектуру транзитных сетей, осуществляющих фильтрацию сетевого трафика, предусматривающий следующие действия:
- реализуют способ защиты в виде транзитной сети, отделенной от защищаемых серверов и клиентов;
- включают в состав транзитной сети: барьерные коммутаторы, серверы верификации, контроллер сети, сервер аутентификации;
- вовлекают в процесс защиты несколько барьерных коммутаторов, входящих в единую централизованно управляемую систему;
- используют управляемые коммутаторы, в состав которых не включают дополнительные модули;
- распределяют нагрузку между серверами верификации с помощью контроллера для ПКС;
- не меняют адреса управляемых коммутаторов в процессе передачи данных, а назначают при инициализации транзитной сети;
- реализуют программно логику способа на стороне клиента;
- проводят проверку легитимности пакета в серверах верификации, входящих в транзитную сеть;
- включают в состав контроллера сети: блок сбора статистики, блок управления присутствием, блок генерации правил маршрутизации, блок переопределения адресов и коммутационный блок;
- включают в состав управляющих коммутаторов: репозиторий правил маршрутизации, блок управления пакетами, блок обработки команд, блок переназначения адреса;
- включают в состав серверов верификации: внешний сетевой интерфейс, очередь входящих пакетов, многопоточный блок верификации, состоящий из нескольких ядер верификации, блок переопределения адресов, очередь отправки пакетов, внутренний сетевой интерфейс, таблицу разрешенных IP-адресов, таблицу пользовательских сессий, модуль сбора статистики.
Недостатком указанного способа балансировки нагрузки в сети являются:
1. наличие временной задержки между моментом времени, когда нагрузка в сети появилась, и моментом, когда адаптивные алгоритмы балансировки нагрузки, ее устраняющие, вступили в силу, вследствие чего имеет место быть высокая вероятность наблюдения абонентами такой сети различных негативных последствий: увеличенное время сетевого отклика корреспондента, большая вариация задержки доставки пакетов корреспонденту, полная сетевая недоступность сетевых ресурсов и т.п.;
2. дополнительная вычислительная нагрузка, оказываемая на контроллер ПКС, связанная с необходимостью:
- создания им правил маршрутизации в блоке генерации правил маршрутизации по алгоритму управления балансировкой нагрузки;
- отслеживания им появления/удаления новых устройств в ПКС в блоке управления присутствием.
Известен также способ перенаправления пакетов в сетевом устройстве по Патенту РФ №2675212 от 17.12.2018 г. «Адаптивная балансировка нагрузки при обработке пакетов», в котором предусмотрены следующие действия:
- принимают пакет в сетевом устройстве;
- назначают пакет первому потоку обработки пакетов из множества потоков обработки пакетов, причем каждый из множества потоков обработки пакетов принадлежит одному из по меньшей мере пула каналов обработки пакетов, имеющих нормальное состояние, и пула каналов обработки пакетов, имеющих состояние переполнения;
- определяют состояние первого потока обработки пакетов, при этом устанавливают состояние на основе отслеживания длины очереди первого потока обработки пакетов, и при этом состояние определяют как одно из множества состояний, в том числе состояние переполнения и нормальное состояние, причем состояние указывает, к какому из пулов потоков обработки пакетов принадлежит первый поток обработки каналов;
- осуществляют в ответ на определение того, что состояние первого потока обработки пакетов представляет собой нормальное состояние: присвоение пакета первому потоку обработки пакетов, обработку пакета в первом потоке обработки пакетов, перенаправление пакета, а в ответ на определение того, что состояние первого потока обработки пакетов представляет собой состояние переполнения, осуществляют присвоение пакета второму потоку обработки пакетов из пула потоков обработки пакетов, имеющих состояние переполнения, на основе схемы балансировки нагрузки, при этом пул потоков обработки пакетов, имеющих состояние переполнения, содержит первый поток обработки пакетов и подмножество потоков обработки пакетов из множества потоков обработки пакетов, а состояние каждого из потоков обработки пакетов из указанного пула представляет собой состояние переполнения, обработку пакета во втором потоке обработки пакетов, переупорядочивание пакетов в соответствии с заданным порядком, в случае если пакеты выведены из потоков обработки пакетов, в порядке, отличающемся от порядка поступления, перенаправление пакета в соответствии с заданным порядком, при этом указанный заданный порядок основан на положении пакета относительно положений других пакетов при их приеме сетевым устройством.
Недостатком указанного способа адаптивной балансировки нагрузки при обработке пакетов является наличие временной задержки между моментом времени, когда нагрузка в сети появилась, и моментом, когда адаптивные алгоритмы балансировки нагрузки, ее устраняющие, вступили в силу. В связи с этим имеет место быть высокая вероятность наблюдения абонентами такой сети различных негативных последствий: увеличенное время сетевого отклика корреспондента, большая вариация задержки доставки пакетов корреспонденту, полная сетевая недоступность сетевых ресурсов и т.п.
Наиболее близким по своей технической сущности к заявленному изобретению является способ по патенту РФ №2675148 от 17.12.2018 г. «Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения», заключающийся в выполнении следующих действий:
- получают пакет данных с установленным флагом TCP (с англ. Transmission Control Protocol - протокол управления передачей) протокол, предназначенный для управления передачей данных в сетях Интернет) (SYN);
- анализируют опциональные заголовки уровня TCP;
- обновляют таблицу ключей коммутационного устройства, если среди заголовков уровня TCP обнаружена опция MP_CAPABLE;
- выполняют поиск в таблице по сигнатуре TCP потока - совокупности IР-адресов и TCP портов для его отправителя и получателя;
- формируют новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE, и текущую временную метку, если в таблице ключей нет записи с соответствующей сигнатурой;
- обновляют указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы, если в таблице уже есть запись с указанной сигнатурой потока;
- вычисляют значение НМАР - хэш-функции, применяемой для идентификации многопоточного соединения, используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, если в таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя;
- удаляют и создают запись о первом потоке нового соединения, если в таблице потоков уже есть запись с указанной сигнатурой;
- производят обновление таблицы потоков коммутационного устройства в случае обнаружения TCP SYN пакета с опцией MP_JOIN;
- проводят углубленный анализ заголовков так же и при перехвате пакетов с выставленными флагами TCP FIN и TCP RST;
- осуществляют поиск соответствующей ему записи в таблице потоков по его сигнатуре при перехвате всякого TCP пакета, при ее нахождении обновляют значение ее временной метки;
- удаляют запись с самой старой временной меткой, если в таблице коммутационного устройства не осталось свободного места.
Недостатком ближайшего способа-аналога заявленного изобретения являются:
1. дополнительный расход энергозависимой памяти коммутаторов ПКС, участвующих в информационном обмене, по причине необходимости хранения в ней двух дополнительных таблиц - таблицы ключей и таблицы потоков;
2. дополнительный расход вычислительных ресурсов центрального процессора коммутаторов ПКС, участвующих в информационном обмене, по причине необходимости осуществления механизма стирания старых записей в двух дополнительных таблицах - таблицы ключей и таблицы потоков;
3. непрозрачность метода машинного обучения, предлагаемого для самообучения коммутаторов ПКС.
Вышеуказанные недостатки ближайшего способа-аналога свидетельствуют о сниженной эффективности использования пропускной способности ПКС в целом, поскольку дополнительный расход памяти и вычислительных ресурсов коммутаторов отрицательно сказываются на скорости обработки ими поступающих ТСР-потоков ПКС.
Известно устройство балансировки нагрузки в ПКС по патенту РФ №2576488 от 10.03.2016 г., представленное в виде контроллера ПКС. Целью функционирования устройства, согласно патенту, является управление маршрутами внутри транзитной сети, оно включает следующие основные элементы:
- блок сбора статистики;
- блок управления присутствием;
- блок генерации правил маршрутизации;
- блок переопределения адресов и коммутационный блок. Недостатком реализации указанного устройства является дополнительная вычислительная нагрузка, оказываемая на контроллер ПКС, связанная с необходимостью:
- создания им правил маршрутизации в блоке генерации правил маршрутизации по алгоритму управления балансировкой нагрузки;
- отслеживания им появления/удаления новых устройств в ПКС в блоке управления присутствием.
Вышеуказанные заключения аргументированы тем, что идеология проектирования ПКС не предполагает наделение контроллера подобными интеллектуальными функциями, подразумевая, что его предназначение заключается лишь в максимально быстром управлении сетевыми устройствами уровня передачи данных ПКС в зоне его ответственности. Функции же обработки потоков пакетов трафика выделяются в отдельные приложения, функционирующие на соответствующем уровне ПКС.
Известно также сетевое устройство, являющееся перенаправляющим элементом ПКС по Патенту РФ №2675212 от 17.12.2018 г. «Адаптивная балансировка нагрузки при обработке пакетов», включающее следующие основные элементы - процессор и энергонезависимый машиночитаемый носитель информации, хранящий код, вызывающий, при его исполнении процессором, выполнение процессором операций.
Недостатком указанного устройства является наличие временной задержки между моментом времени, когда нагрузка в сети появилась, и моментом, когда адаптивные алгоритмы балансировки нагрузки, ее устраняющие, вступили в силу, вследствие чего имеет место быть высокая вероятность наблюдения абонентами такой сети различных негативных последствий.
Наиболее близким по своей технической сущности к заявленному изобретению является известное устройство автоматической балансировки потоков многопоточного соединения в ПКС на коммутационных устройствах с использованием их самообучения по патенту РФ №2675148, содержащее:
- по крайней мере, одно устройство обработки команд (процессор);
- по крайней мере, одно устройство хранения данных;
- одну или более компьютерных программ, загружаемых в, по крайней мере, одно вышеупомянутое устройство хранения данных и выполняемых на, по крайне мере, одном из вышеупомянутых устройств обработки команд, при этом одна или более компьютерных программ содержат инструкции для выполнения способа балансировки нагрузки в ПКС;
- устройство ввода;
- устройство вывода;
- машиночитаемый носитель данных, образуемый съемным и несъемным хранилищем, содержащий исполняемые одним или более процессором машиночитаемые инструкции, которые при их исполнении реализуют выполнение способа автоматической балансировки потоков многопоточного соединения в ПКС на коммутационных устройствах с использованием их самообучения.
Недостатком ближайшего устройства-аналога заявленного изобретения являются:
1. дополнительный расход энергозависимой памяти устройства-аналога, участвующего в информационном обмене, по причине необходимости хранения в ней двух дополнительных таблиц - таблицы ключей и таблицы потоков;
2. дополнительный расход вычислительных ресурсов центрального процессора устройства-аналога, участвующего в информационном обмене, по причине необходимости осуществления механизма стирания старых записей в двух дополнительных таблицах - таблицы ключей и таблицы потоков;
3. непрозрачность метода машинного обучения, предлагаемого для самообучения устройства-аналога.
Техническим результатом от использования заявленного способа балансировки нагрузки в ПКС и устройства, его реализующего, является повышение эффективности использования пропускной способности сети путем осуществления качественного перехода от адаптивной модели реагирования на возникающие изменения в сети к проактивной (неол.) в значении «упреждающий», «основывающийся на предвидении») модели управления сетью в целом. В основе указанного перехода заложено применение технологии глубокого машинного обучения - искусственной нейронной сети.
Указанный технический результат в заявленном способе балансировки нагрузки в ПКС достигается тем, что в известном способе ПКС представляет собой совокупность подсети K≥1 коммутаторов ПКС и каналов связи, их соединяющих (уровень передачи данных ПКС), и балансировку нагрузки в сети выполняют с использованием технологии машинного обучения элементов ПКС на уровне приложений ПКС, а отличается тем, что подсеть K≥1 коммутаторов ПКС, соединенных друг с другом произвольным образом, подключена к подсети N≥1 автоматизированных рабочих мест (АРМ) абонентов ПКС и подсети Μ≥1 серверов предоставления услуг (СПУ) ПКС, а также логически централизованному контроллеру (ЛЦК) ПКС (уровень управления ПКС).
Балансировку нагрузки в ПКС осуществляют на уровне приложений ПКС, причем статистическую информацию о параметрах ТСР-потоков ПКС, т.е. время задержки пакетов, число потерь пакетов, значение джиттера (от англ. jitter - дрожание) вариация задержки пакета, т.е. ее среднее отклонение от среднего значения [Олифер Виктор, Олифер Наталья. Компьютерные сети. Принципы, технологии, протоколы: Юбилейное издание. - СПб.: Питер, 2020. - с. 144]), принимают на уровне приложений ПКС с помощью АРМ управления ПКС посредством GET (от англ. get - получать, забирать) метод взаимодействия компонентов распределенного приложения в сети, с помощью которого один компонент получает информацию от других) - запросов к REST5 (5 (от англ. REpresentational State Transfer - передача состояния представления) один из архитектурных подходов взаимодействия компонентов распределенного приложения в сети) API ЛЦК ПКС.
После этого происходит предварительная обработка принятой на уровне приложений ПКС статистической информации: выделение и сохранение в ней целевых признаков, разделение их на обучающую и испытывающую искусственную нейронную сеть (ИНС) выборки. В качестве ИНС при этом применяется нейросетевая модель «многослойный персептрон», архитектура которой описана в [Rosenblatt F. The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain. - Psychological Review, 1956, vol.65, no. 6 - c. 386-408] и представлена на Фиг. 5. Процесс обучения ИНС заключается в расчете первоначальных значений весовых коэффициентов связей слоев ИНС и их корректировке методом обратного распространения ошибки, как показано в [Николенко С.Кадурин Α., Архангельская Е. Глубокое обучение. - СПб.: Питер, 2021. - с. 69-75, 113-117].
После обучения ИНС «многослойный персептрон» рассчитываются пороговые значения прогнозируемых признаков и, соответственно, значения выходного слоя ИНС, т.е. такие значения прогнозируемых признаков статистической информации о параметрах TCP-потоков ПКС, величины ошибок которых минимальны. По полученным спрогнозированным данным выходного слоя ИНС формируют управляющее воздействие с использованием метода циклического взвешенного перебора K≥1 коммутаторов ПКС, как показано в [Sabiya and Jaspinder Singh. Weighted Round-Robin Load Balancing Using Software Defined Networking. - International Journal Of Advanced Research in Computer Science and Software Engineering, vol. 6, no. 6, 06.2016. - c. 621-625], и передают его для балансировки нагрузки на уровень управления ПКС в ЛЦК ПКС посредством POST (от англ. post - публиковать) метод взаимодействия компонентов распределенного приложения в сети, с помощью которого один компонент отсылает информацию другим) - запросов к его REST API.
Указанный технический результат при использовании заявленного устройства балансировки нагрузки в ПКС достигается тем, что известное устройство балансировки нагрузки включает следующие элементы:
- блок из Ρ≥2 процессоров (БП) 11, …, 1 Ρ;
- оперативный запоминающий блок (ОЗБ),
- машиночитаемый носитель данных (МНД);
- блок элементов ввода/вывода (БЭВВ), содержащий элемент ввода данных (ЭВД) и элемент вывода данных (ЭВывД).
Кроме вышеуказанных элементов, в устройство дополнительно введен блок нейросетевого взаимодействия (БНВ), входящий в состав графического процессора (ГП) и включающий:
- элемент предварительной обработки данных (ЭПОД);
- вычислитель первоначальных весовых коэффициентов связей слоев (ВПВКСС);
- корректировщик весовых коэффициентов (КВК);
- вычислитель пороговых значений (ВПЗ);
- вычислитель значений выходного слоя (ВЗВС);
- формирователь управляющего воздействия (ФУВ) на основе результатов вычислений ИНС.
Благодаря новой совокупности существенных признаков в заявленном способе балансировку нагрузки в ПКС осуществляют проактивное управление функционированием ПКС на основе применения математического аппарата ИНС типа «многослойный персептрон» на уровне приложений, что обуславливает высокую вероятность предоставления услуг абонентам такой сети с качеством, не ниже требуемого.
Благодаря новой совокупности существенных признаков в заявленном устройстве балансировки нагрузки в ПКС в введенном БНВ реализован механизм работы ИНС «многослойный персептрон» и вспомогательные для алгоритма её работы операции - предварительная обработка данных, выделение и сохранение признаков, прогнозирование пороговых значений, - чем достигается сформулированный технический результат.
Заявленные объекты поясняются чертежами, на которых показаны:
- Фиг. 1 - способ балансировки нагрузки в ПКС;
- Фиг. 2 - устройство балансировки нагрузки в ПКС;
- Фиг. 3 - алгоритм реализации способа балансировки нагрузки в ПКС;
- Фиг. 4 - алгоритм формирования управляющего воздействия на уровень передачи данных ПКС в блоке ФУВ;
- Фиг. 5 - архитектура ИНС «многослойный персептрон»;
- Фиг. 6 - формат таблицы потоков.
Заявленный способ реализуют посредством алгоритма, представленного на Фиг. 3. Исходными данными для реализации способа балансировки нагрузки в ПКС является статистическая информация о параметрах ГСР-потоков в ПКС, т.е. время задержки пакетов, число потерь пакетов, значение джиттера, которую с помощью АРМ управления ПКС принимают на уровне приложений ПКС посредством GiiT-запросов к REST API ЛЦК ПКС. После чего на АРМ управления ПКС происходит предварительная обработка полученных исходных данных - выделение и сохранение целевых признаков, а также разделение их на обучающие и испытывающие ИНС выборки.
Следующим этапом алгоритма реализации способа балансировки нагрузки является процесс обучения ИНС «многослойный персептрон» с учителем: рассчитываются первоначальные весовые коэффициенты связей слоев ИНС «многослойный персептрон» на обучающей ИНС выборке данных, и до тех пор, пока ошибка расчета пороговых значений целевых признаков выше заданной, происходит корректировка весовых коэффициентов связей слоев ИНС и расчет пороговых значений целевых признаков.
После того, как ИНС «многослойный персептрон» обучена, осуществляется этап непосредственно «предсказания» значений выходного слоя ИНС на испытывающей выборке данных, т.е. значений целевых признаков параметров ГСР-потоков в ПКС, которые подаются на вход блока ФУВ для формирования управляющего воздействия на сеть ПКС, которое впоследствии отправляется на ЛЦК ПКС для дальнейшей передачи на требуемый коммутатор ПКС посредством POST-запросов к его REST API.
Алгоритм формирования управляющего воздействия на сеть ПКС в блоке ФУВ реализован согласно Фиг. 4. В его основе лежит метод циклического взвешенного перебора К>1 коммутаторов ПКС, заключающийся в следующем.
Исходными данными для функционирования алгоритма являются «предсказанные» - рассчитанные - значения целевых признаков параметров ГСР-потоков в ПКС. Анализируя их в блоке ФУВ, выбирают соответствующее информационное направление под информационным направлением в данном случае понимается совокупность промежуточных узлов связи (K≥1 коммутаторов ПКС), связанных виртуальными каналами связи между N≥1 АРМ абонентов ПКС и М≥1 СПУ ПКС) в зоне ответственности ЛЦК ПКС, соответствующее TCP-потоку ПКС, для которого были рассчитаны значения целевых признаков.
После выбора информационного направления осуществляют выбор очередного промежуточного узла - коммутатора i из пула K≥1 коммутаторов ПКС, соответствующего выбранному информационному направлению. После чего выбранному коммутатору назначается вес wi, определяемый как
при этом ƒ(θ) - функция над вектором θ=<tз, n, j>, где
- tз - рассчитанное значение времени задержки в канале связи на выбранном информационном направлении;
- n - рассчитанное число потерь пакетов в канале связи на выбранном информационном направлении;
- j - рассчитанное число джиттера в канале связи на выбранном информационном направлении.
После назначения метрики коммутатору ПКС он ставится в конец логической очереди коммутаторов ПКС на обслуживание TCP-потоков сети по порядку возрастания весов.
Далее на основании взаимного расположения коммутаторов ПКС в логической очереди на обслуживание TCP-потоков ПКС формируются записи в таблицу потоков данных выбранного коммутатора ПКС на уровне приложений ПКС, которые с уровня приложений ПКС отправляются на ЛЦК ПКС (уровень управления ПКС). В дальнейшем в ЛЦК ПКС из полученных им записей формируется таблица потоков данных соответствующего коммутатора ПКС, которая передается по протоколу OpenFlow (с англ. «Ореп Flow» - открытый поток) одна из наиболее популярных реализаций протокола «контроллер ПКС - коммутатор ПКС» [Олифер Виктор, Олифер Наталья. Компьютерные сети. Принципы, технологии, протоколы: Юбилейное издание. - СПб.: Питер, 2020. - с. 521]) на уровень передачи данных ПКС - соответствующему коммутатору ПКС. Пример такой таблицы представлен на Фиг. 6 [Leonardo Padilha. Analysis of the use of SDN for load balancing. - University of Sao Paulo, 2018].
Таблицы потоков содержат записи о правилах маршрутизации в заголовке «Правило», действии в заголовке «Действие», т.е. какие действия с потоком предпринять промежуточному сетевому узлу информационного потока, если выполняется правило и общую статистику по потокам в заголовке «Статистика», которая, в свою очередь, передается на уровень управления ПКС для расчета статистических показателей TCP-потоков в ПКС, по которым на уровне приложений ПКС осуществляется «предсказание» появления нагрузки на сеть в будущем посредством применения ИНС «многослойный персептрон» согласно реализации заявленного способа.
После того, как выбранному коммутатору ПКС назначен вес, и он поставлен в конец логической очереди на обслуживание TCP-потоков ПКС, происходит выбор нового очередного коммутатора, соответствующего выбранному информационному направлению. Когда же записи в таблицу потоков данных отправлены на ЛЦК ПКС, происходит получение очередного набора «предсказанных» значений целевых признаков параметров ТСР-потоков в ПКС. Таким образом, процесс формирования управляющего воздействия на уровень передачи данных ПКС в блоке ФУВ итеративен и цикличен.
В состав заявленного устройства балансировки нагрузки в ПКС, представленного на Фиг. 2, входят следующие составляющие:
- блок из Ρ≥2 процессоров 1 (БП)(11, …, 1р);
- машиночитаемый носитель данных 2 (МНД);
- оперативный запоминающий блок 3 (ОЗБ);
- блок нейросетевого взаимодействия 4 (БНВ), в состав которого также входят:
- элемент предварительной обработки данных 4.1 (ЭПОД);
- вычислитель первоначальных весовых коэффициентов связей слоев 4.2 (ВПВКСС);
- корректировщик весовых коэффициентов 4.3 (КВК);
- вычислитель пороговых значений 4.4 (ВПЗ);
- графический процессор 5 (ГП), в состав которого входит блок нейросетевого взаимодействия 4 (БНВ);
- формирователь управляющего воздействия (ФУВ) 6 на основе результатов вычислений ИНС;
- блок элементов ввода/вывода 7 (БЭВВ), в состав которого также входят:
- элемент ввода данных 7.1 (ЭВД);
- элемент вывода данных 7.2 (ЭВывД).
Входы-выходы БП 1 объединены, причем объединенный информационный вход - управляющий выход 1.1 подключен к информационному входу 3.3 ОЗБ, а объединенный информационный вход - управляющий выход 1.2 подключен к информационному входу 2.1 МНД 2. Объединенный информационный вход-выход 3.2 ОЗБ 3 подключен к объединенному информационному входу-выходу 4.2.1 ВПВКСС 4.2, причем 4.2.1 является также объединенным информационным входом-выходом БНВ 4 и ГП 5. Управляющий выход 4.2.2 ВПВКСС 4.2 соединен с информационным входом 4.3.1 КВК 4.3, управляющий выход 4.3.2 которого, в свою очередь, соединен с информационным входом 4.4.1 ВПЗ 4.4. Управляющий выход 4.4.2 ВПЗ 4.4 связан с информационным входом 4.5.1 ВЗВС 4.5 и информационным входом 4.3.1 КВК 4.3. Кроме вышеперечисленных, в состав БНВ 4 входит также ЭПОД 4.1, управляющий выход 4.1.2 которого соединен с информационным входом 3.1 ОЗБ 3 и является также управляющим выходом БНВ 4 и ГП 5. Информационный вход 4.1.1 ЭПОД 4.1 является одновременно информационными входами БНВ 4 и ГП 5 и соединен с управляющим выходом 7.1.2 ЭВД 7.1, входящего в состав БЭВВ 7. Информационный вход 7.1.1 ЭВД 7.1 является информационным входом БЭВВ 7, принимающим статистическую информацию о параметрах TCP-потоков в ПКС с уровня управления ПКС (ЛЦК). Управляющий выход 4.5.3 ВЗВС 4.5 является одновременно управляющим выходом БНВ 4 и ГП 5 и соединен с информационным входом 6.1 ФУВ 6 на основе результатов вычислений ИНС. Управляющий выход 6.2 ФУВ 6 на основе результатов вычислений ИНС соединен с информационным входом 7.2.1 ЭВывД 7.2, являющимся также информационным входом ЭВВД 7. Управляющий выход 7.2.2 ЭВывД 7.2 реализует отправку управляющего воздействия на уровень управления ПКС - ЛЦК.
БП 1 предназначен для исполнения машинных инструкций и оперирования данными в цифровой форме, хранящихся на МНД 2, и размещается на материнской плате АРМ управления ПКС, причем совокупность субпроцессоров 11, …, 1Р, Ρ≥2 позволяет реализовать параллельное исполнение машинных инструкций на разных субпроцессорах. БП 1 может быть реализован в виде центрального процессорного устройства (ЦПУ) архитектуры х86-64.
МНД 2 предназначен для энергонезависимого хранения данных в цифровой форме и машинных инструкций и представляет собой компьютерное немеханическое запоминающее устройство на основе микросхем памяти, подключаемое к материнской плате АРМ управления ПКС, выполненное по технологии SSD (с англ. Solid-State Drive) твердотельный накопитель).
ОЗБ 3 предназначен для оперативного энергозависимого хранения данных в цифровой форме и машинных инструкций АРМ управления ПКС, подключается к его материнской плате и может быть исполнено в соответствии с характеристиками 4 поколения синхронной динамической памяти с произвольным доступом {DDR4 SDRAM).
ГП 5 предназначен для организации доступа к набору инструкций тензорного ускорителя ГП 5 и управления его памятью, представляет собой дискретное или интегрированное в материнскую плату АРМ управления ПКС вычислительное устройство, функционирующее с применением технологии CUDA (с англ. Compute Unified Device Architecture) универсальная архитектура вычислительных устройств). С применением тензорного ускорителя предоставляется возможность значительного повышения скорости вычислений на АРМ управления ПКС непосредственно с применением ГП 5. ГП 5 может быть реализован, например, в виде ГП серии GTX {Titan, Μ), GT (Μ), Quadro производства компании Nvidia®.
БЭВВ 7 предназначен для приема статистической информации о ТСР-потоках ПКС на уровне приложений ПКС и передачи управляющего воздействия на уровень управления ПКС и представляет собой дискретную или интегрированную в материнскую плату АРМ управления ПКС сетевую карту с оптическим и/или Etherneti (i (с англ. ether - эфир и network - сеть) цепь семейство технологий пакетной передачи данных между устройствами для компьютерных и промышленных сетей) разъемом скоростью от 1 Гбит/с. Вариантом исполнения такой сетевой карты может быть модель I210-T1 от компании Intel® или TG-3468 от компании TP-LINK®.
БНВ 4 и входящие в него элементы 4.1 - 4.5 предназначены для программной реализации логики работы ИНС «многослойный персептрон» и представляют собой программные модули, написанные на высокоуровневом языке программирования Python с использованием программных библиотек машинного обучения SciPy, TensorFlow, Keras и др.
ФУВ 6 предназначен для формирования управляющего воздействия с целью осуществления способа балансировки нагрузки в ПКС и представляет собой программный модуль, реализованный с помощью высокоуровневого языка программирования Python с применением общих системно-зависимых библиотек.
АРМ управления ПКС может функционировать как под управлением операционной системы Linux, так и Windows или Mac OS.
Заявленное устройство балансировки нагрузки в ПКС реализует заявленный способ балансировки нагрузки в ПКС следующим образом. С применением БЭВВ 7, а именно ЭВД 7.1, на уровень приложений ПКС поступает статистическая информация о параметрах ГСР-потоков в ПКС (время задержки пакетов, пропускная способность каналов, число потерь пакетов, значение джиггера) посредством GisT-запросов к REST API ЛЦК ПКС, функционирующего на уровне управления ПКС.
Там эта статистическая информация в форме цифровых данных поступает в ЭПОД 4.1, входящего в состав ГП 5 и БНВ 4, где над ней осуществляются операции по выделению и сохранению целевых признаков и разделение на обучающую и испытывающую ИНС выборки. После этого выделенные целевые признаки, разделенные на обучающую и испытывающую ИНС выборки, сохраняются в ОЗБ 3 посредством выполнения БП 1 машиночитаемых инструкций, записанных в МНД 2. Из ОЗБ 3 выделенные целевые признаки, разделенные на обучающую и испытывающую ИНС выборки, в форме цифровых данных поступают в ВПВКСС 4.2, входящий в состав БНВ 4 и ГП 5, где на их основе инициализируется процедура обучения ИНС «многослойный персептрон» - происходит расчет первоначальных весовых коэффициентов связей слоев, в ВПЗ 4.4 рассчитываются пороговые значения целевых признаков и в том случае, если ошибка расчета пороговых значений выше заданной, происходит корректировка весовых коэффициентов связей слоев ИНС в соответствующем блоке КВК 4.3. Вышеуказанные операции по обучению ИНС также выполняются под управлением БП 1 посредством выполнения операций чтения/записи из/в ОЗБ 3.
Получение величины ошибки расчета пороговых значений ниже заданной свидетельствует о том, что этап обучения ИНС «многослойный персептрон» завершен, исходя из чего рассчитываются значения выходного слоя ИНС в блоке ВЗВС 4.5, представляющие собой «предсказанные» значения целевых признаков параметров TCP-потоков в ПКС, откуда они в цифровой форме поступают на вход ФУВ 6 на основе результатов вычислений ИНС.
Алгоритм формирования управляющего воздействия на уровень передачи данных ПКС в блоке ФУВ 6 на основе результатов вычислений ИНС реализуется согласно Фиг. 4. Результатом функционирования алгоритма являются записи в таблицу потоков данных, которые с помощью POST-запросов к REST API ЛЦК ПКС в цифровой форме передаются на уровень управления ПКС. С уровня управления ПКС записи по протоколу OpenFlow отправляются на уровень передачи данных ПКС, т.е. помещаются в таблицу потоков заданного коммутатора ПКС, назначенного для обработки TCP-потока информационного направления.
Имитационное моделирование заявленной работы показало, что внедрение в процесс функционирования ПКС способа балансировки нагрузки в ПКС посредством устройства, его реализующего, повысило эффективность использования пропускной способности сети на 8%, что позволяет обеспечивать заявленный технический результат.
1. Способ балансировки нагрузки в программно-конфигурируемой сети (ПКС), включающей подсеть K≥1 коммутаторов ПКС, заключающийся в том, что балансировку нагрузки в ПКС выполняют с использованием технологии машинного обучения, отличающийся тем, что подсеть K≥1 коммутаторов ПКС подключена к подсети N≥1 автоматизированных рабочих мест (АРМ) абонентов ПКС и подсети М≥1 серверов предоставления услуг (СПУ) ПКС, а также логически централизованному контроллеру (ЛЦК) ПКС, балансировку нагрузки в сети выполняют на уровне приложений ПКС, причем статистическую информацию о параметрах TCP-потоков ПКС принимают на уровне приложений ПКС с помощью АРМ управления ПКС посредством GET-запросов к REST API ЛЦК ПКС, выделяют и сохраняют из принятой на уровне приложений ПКС статистической информации целевые признаки, разделяют их на обучающую и испытывающую искусственную нейронную сеть (ИНС) выборки, после чего рассчитывают первоначальные весовые коэффициенты связей слоев ИНС и корректируют их с использованием обучающей ИНС выборки, далее рассчитывают пороговые значения прогнозируемых признаков и значения выходного слоя ИНС с использованием испытывающей ИНС выборки, после чего по полученным спрогнозированным данным выходного слоя ИНС формируют управляющее воздействие с использованием выбранного алгоритма динамической балансировки нагрузки в ПКС и передают его для балансировки нагрузки на уровень управления ПКС в ЛЦК ПКС посредством POST-запросов к его REST API.
2. Способ по п. 1, отличающийся тем, что в качестве данных о функционировании ПКС используют время задержки пакетов, пропускную способность каналов, число потерь пакетов, значение джиттера.
3. Способ по п. 1, отличающийся тем, что в качестве ИНС используют многослойный персептрон.
4. Способ по п. 1, отличающийся тем, что в качестве метода корректировки весовых коэффициентов связей слоев ИНС используют метод обратного распространения ошибки.
5. Способ по п. 1, отличающийся тем, что в качестве значений выходного слоя ИНС используют пороговые значения прогнозируемых признаков, величины ошибок которых минимальны.
6. Способ по п. 1, отличающийся тем, что в качестве алгоритма динамической балансировки нагрузки в ПКС используют метод циклического взвешенного перебора коммутаторов ПКС.
7. Устройство балансировки нагрузки в ПКС, содержащее блок из Р≥2 процессоров (БП) (1) 11, …, 1р, входы-выходы (1.1) которых объединены и подключены к входу (3.3) оперативного запоминающего блока (ОЗБ) (3), входы-выходы (1.2) БП (1) также объединены и подключены к входу (2.1) машиночитаемого носителя данных (МНД) (2), блок элементов ввода/вывода (БЭВВ) (7), содержащий элемент ввода данных (ЭВД) (7.1) и элемент вывода данных (ЭВывД) (7.2), причем вход (7.1.1) ЭВД (7.1) и выход (7.2.2) ЭВывД (7.2) являются соответственно входом и выходом БЭВВ (7), а выход (7.1.2) ЭВД (7.1) и вход (7.2.1) ЭВывД (7.2) являются соответственно выходом и входом БЭВВ (7), отличающийся тем, что дополнительно введен блок нейросетевого взаимодействия (БНВ) (4), входящий в состав графического процессора (ГП) (5) и содержащий элемент предварительной обработки данных (ЭПОД) (4.1), предназначенный для обработки статистической информации о параметрах TCP-потоков в ПКС, полученную от ЭВД (7.1), путем выделения и сохранения целевых признаков и разделения на обучающую и испытывающую ИНС выборки, выход (4.1.2) которого является выходом БНВ (4) и ГП (5) и подключен к входу (3.1) ОЗБ (3), а вход (4.1.1) ЭПОД (4.1) является входом БНВ (4) и ГП (5), вычислитель первоначальных весовых коэффициентов связей слоев (ВПВКСС) (4.2), вход-выход (4.2.1) которого является также входом-выходом БНВ (4) и ГП (5) и подключен к входу-выходу (3.2) ОЗБ (3), а выход (4.2.2) ВПВКСС (4.2) подключен к входу (4.3.1) входящего в состав БНВ (4) корректировщика весовых коэффициентов (КВК) (4.3), выход (4.3.2) КВК (4.3) подключен к входу (4.4.1) вычислителя пороговых значений (ВПЗ) (4.4), также входящего в состав БНВ (4), причем выход (4.4.2) ВПЗ (4.4) соединен с входом (4.5.1) вычислителя значений выходного слоя (ВЗВС) (4.5), также входящего в состав БНВ (4), и с входом (4.3.1) КВК (4.3), а выход (4.5.3) ВЗВС (4.5) является выходом БНВ (4) и ГП (5) и соединен с входом (6.1) формирователя управляющего воздействия (ФУВ) (6) на основе результатов вычислений ИНС, выход (6.2) которого соединен с входом (7.2.1) ЭВывД (7.2), являющегося входом БЭВВ (7).