Р.В. Шипилов
Томский университет систем управления и радиоэлектроники
НЕЙРОСЕТЕВАЯ СИСТЕМА ПРОГНОЗИРОВАНИЯ
РАЗМЕРОВ TCP-ОКОН
Ссылка на оригинал.
Аннотация
В докладе рассматриваются вопросы управления пропускной способностью канала передачи данных и мониторинга сети в реальном времени. Исследуется возможность применения механизма искусственных нейронных сетей для моделей прогнозирования загруженности канала передачи данных. Прогнозирование осуществляется с помощью анализа предыдущих значений загруженности, и позволяет заблаговременно оценить как время возможного проявления перегрузки, так и величины самой перегрузки. Приведено описание нейросетевой системы прогнозирования трафика TCP.
Непрекращающийся рост количества пользователей Internet предъявляет новые требования к пропускной способности сетей. World Wide Web привел к гигантскому увеличению трафика графической информации. Сегодня еще и голосовые, а также видеоприложения выдвигают свои специфические требования к и без того перегруженным сетям. Для удовлетворения всех этих запросов одного увеличения емкости сети недостаточно. Необходимо применять разумные эффективные методы управления трафиком и контроля загруженности, которые бы основывались на данных, предоставляемых инструментом прогнозирования трафика на основе предыдущих значений загруженности.
Наиболее подходящим инструментом для прогнозирования являются нейронные сети. Можно было бы использовать и статистические методы или методы временных рядов, однако в настоящее время структура сети очень быстро изменяется, и такие методы в некоторых случаях могут не справиться с задачей. В отличие от них, нейронные сети способны не только выполнять заранее запрограммированную последовательность действия на заранее определенном наборе данных, но и анализировать вновь поступающую информацию, находить в ней закономерности, адаптироваться и проводить прогнозирование. Таким образом, нейронные сети непрерывно обучаются на основе предыдущих значений.
Чтобы применение нейронной сети было оправдано, задача должна обладать следующими признаками:
· отсутствует алгоритм или не известны принципы решения задач, но накоплено достаточное число примеров;
· проблема характеризуется большими объемами входной информации;
· данные неполны или избыточны, зашумлены, частично противоречивы.
Исходя из всего вышесказанного, можно сделать вывод, что применение механизма нейронных сетей в задачах прогнозирования и оптимизации процесса передачи данных будет оправдано. Но прежде чем что-то прогнозировать, необходимо изучить предметную область. Рассмотрим способ, при помощи которого осуществляется управление потоком в сетях TCP/IP.
Для ускорения и оптимизации процесса передачи больших объемов данных протокол TCP определяет метод управления потоком, называемый методом скользящего окна, который позволяет отправителю посылать очередной сегмент, не дожидаясь подтверждения о получении в пункте назначения предшествующего сегмента. Более подробно о данном механизме, а также о процедурах медленного старта и управления перегрузкой, можно посмотреть в литературе, например в [1].
Анализ работы существующего алгоритма работы протокола показывает, что имеются значительные резервы уменьшения потерь в пропускной способности в режимах медленного старта и управления перегрузкой. Во-первых, перегрузка не прогнозируется, а обнаруживается по самому факту отсутствия пакетов подтверждения после очередного перемещения окна. Во-вторых, по этому факту нельзя судить о величине перегрузки и следующее состояние окна устанавливается методом «проб и ошибок». Задача заключается в формировании заблаговременно, не заходя в критическую область обнаружения потерянных пакетов, оценок как месторасположения временного интервала возможного проявления перегрузки, так и величины самой перегрузки. Следовательно, необходимо осуществлять прогноз RTT-задержки (RTT – это сумма времени транспортировки сегмента от отправителя к получателю и времени движения отклика от получателя к отправителю), а уже потом по величине спрогнозированной RTT-задержки на n+1-м цикле можно будет судить об уровне перегрузки и принимать решения.
Существует множество методов прогнозирования: регрессионный анализ, метод группового учета аргументов (МГУА), фрактальный анализ и нейронные сети. Прогнозирование RTT-задержки относится к такому классу задач, где зависимость между входными и выходными переменными сложна и нахождение закономерностей в больших объемах статистических данных требует нетривиальных алгоритмов и занимает много времени [2]. Наиболее эффективным средством решения задачи прогнозирования будет использование нейросетевого предиктора (от англ. predictor – предсказатель) в качестве механизма прогнозирования.
Для решения задачи прогнозирования RTT-задержки воспользуемся моделью, описывающей изменения во времени фактических значений RTT, которая в общем виде представляется нелинейной функцией [3]:
, (1)
где Pt – прогнозируемая RTT – задержка в момент времени t; Pt-n – предшествующие наблюдения RTT – задержки; n – индекс ретроспективы данных.
При ретроспективе данных n = 8, соответственно получается следующая структура нейронной сети:
, (2)
где Pt-1 – фактическая RTT в момент времени t-1.
Описанный предиктор позволяет прогнозировать RTT-задержку на один шаг вперед (одношаговый предиктор, рис. 1). В ходе тестирования НС, были выбраны оптимальные параметры два скрытых слоя, в первом слои 5 нейронов, во втором 6, коэффициент активационной функции (a = 2). Было сделано предположение, на основе проведенных тестов, что для адекватной работы модели НС будет достаточно 9 нейронов во входном слое.
Рис. 1. Схема организации нейросетевого предиктора
прогнозируемой RTT – задержки
В качестве алгоритма обучения был выбран алгоритм с обратным распространением ошибки (Back Propagation). После пуска и установки начальных условий (начальных значений весовых коэффициентов Wijk, числа обучающих образцов ImageMax, максимального числа итераций IterNumMax, параметров ИНС h и заданной малой величины e) считываются значения RTT и нормализуются. Далее рассчитываются значения сигналов на выходах нейронов выходного слоя, т.е. происходит функционирование ИНС. Затем вычисляется ошибка для каждого тренируемого образца. Далее рассчитываются градиентные спуски в пространстве весов и на основании их значений, производится корректировка весов.
Если все образцы использованы, то вычисляется суммарная ошибка по всем образцам, и проверяются условия останова 1 и 2. Для избежания эффекта переобучения НС используется два критерия останова. Блок-схема процесса обучения приведена на рис. 2.
В ходе тестирования проверялись различные критерии останова:
· средняя ошибка обучения MidTeahError, которая рассчитывается путем деления суммы ошибок распознавания примеров на общее число примеров;
· средняя ошибка тестирования MidTestError, которая рассчитывается аналогичным образом, только в качестве примеров, используются данные, не входящие в обучающее множество;
· максимальная ошибка обучения MaxTeachError, которая является максимальной ошибкой допущенной НС, при распознавание обучающих примеров;
· максимальная ошибка тестирования MaxTestError, которая является максимальной ошибкой допущенной НС, при распознавание тестовых примеров.
Рис. 2. Алгоритм обратного распространения ошибки
Исследование работы алгоритма показало, что необходимо комбинировать критерии останова, поэтому в качестве первого критерия использовались условия, при которых сравнивались значения MidTeahError и MidTestError с заданным малым числом. В том случае, если первый критерий не выполняется, применяется второй критерий, в котором сравнивается текущая итерация IterNumber с IterNumMax. Если IterNumber больше заданного числа, то обучение прекращается. Значения MaxTeachError и MaxTestError использовались для оценки максимальных значений ошибки прогноза.
В результате была разработана нейросетевая система прогнозирования трафика TCP. Функциональная схема системы приведена на рис. 3.
Принцип действия системы следующий. Из ядра TCP/IP получаем данные об RTT-задержки для всех текущих соединений (сокетах), эти данные сохраняются в буфере, из буфера последовательность данных (вектор) поступает на вход нейронной сети, на выходе мы получаем прогноз следующего значения RTT-задержки. На основании прогноза рассчитывается размер следующего TCP – окна (размер буфера окна перегрузки). Посредством ядра TCP/IP происходит управляющее воздействие на пропускную способность канала.
Рис. 3. Функциональная схема АИС
При помощи протокола SNMP в MIB формируются качественные и количественные данные о проходящем потоке данных (трафика), через данный сетевой адаптер. АИС во взаимодействии со стандартным SNMP агентом, извлекает необходимые данные из базы MIB, обрабатываются и сохраняются в БД для дальнейшего анализа.
Результаты тестирования (табл. 1) НС и на реальных данных показали высокую точность прогноза изменений параметров.
По полученным параметрам RTT делается прогноз следующего значения RTT. На основании полученного прогноза производится расчет следующего TCP – окна.
Таблица 1
Результаты тестирования НС
№ |
Реальна RTT, мс |
Прогнозируемая RTT, мс |
Ошибка прогноза, % |
1 |
0,16 |
0,15 |
0,583 |
2 |
0,498 |
0,511 |
0,758 |
3 |
0,625 |
0,602 |
1,34 |
4 |
0,563 |
0,544 |
1,107 |
5 |
0.886 |
0,908 |
1,282 |
6 |
0,158 |
0,141 |
0,991 |
7 |
0,723 |
0,711 |
1,282 |
8 |
0,312 |
0,295 |
0,991 |
9 |
0,156 |
0,154 |
0,117 |
10 |
0,323 |
0,32 |
0,175 |
11 |
0,817 |
0,813 |
0,233 |
12 |
0,692 |
0,68 |
0,699 |
13 |
0,478 |
0,458 |
1,166 |
14 |
0,356 |
0,346 |
0,583 |
15 |
0,396 |
0,415 |
1,107 |
16 |
0,215 |
0,21 |
0,291 |
17 |
0,474 |
0,442 |
1,865 |
18 |
0,309 |
0,279 |
1,747 |
Поводя итог, следует отметить, что на сегодняшний день задача прогнозирования и управления трафиком сетей очень важна и требует самого пристального внимания. В протоколе TCP существует механизм управления передачей больших объемов данных, известный как «метод скользящего окна», который позволяет отправителю посылать очередной сегмент, не дожидаясь подтверждения о получении в пункте назначения предшествующего сегмента. В зависимости от загрузки размеры окна изменяются. Однако эти размеры изменяют уже после обнаружения факта перегрузки сети, что влечет за собой потерю времени и задержки при передаче данных. Для более успешного регулирования размерами окна необходим механизм прогнозирования, основанный на ретроспективном анализе уже собранной статистической информации. Это позволит изменять размер окна заранее, не дожидаясь обнаружения перегрузки. В качестве механизма прогнозирования целесообразно использовать нейронные сети, так как они способны осуществлять прогноз на очень больших объемах данных, возможно частично зашумленных, где зависимость между входным и выходным параметрами сложна и неявна.
Была разработана система прогнозирования размеров TCP-окон, осуществляющая:
· накопления ретроспективных данных RTT-задержки;
· накопления статистических данных по загруженности сети;
· краткосрочный прогноз RTT-задержки;
· определение закона изменения TCP окна перегрузки, на основе спрогнозированной RTT-задержки.
Система была протестирована и показала удовлетворительную точность прогноза.
Список литературы
1. Мамаев М. Телекоммуникационные технологии (Сети TCP/IP) Учебное пособие. Владивосток 2001. http://athena.vvsu.ru/net/book/index.html
2. Лившиц Б.С., Харкеквич А.Д. Теория Телетрафика.
3. Комашинский В.И., Смирнов Д.А. Нейронные сети и их применения в системах управления и связи.
4. Филаретов Г.Ф., Кабанов В.А. Применение искусственных нейронных сетей в системах управления // Приборы и системы управления. 1999. № 4.
5. Снейдер Й. Эффективное програмирование TCP/IP. Библиотека программиста. СПб.: Питер, 2002.