Научная статья на тему 'Разработка имитатора основных характеристик сети для исследования эффективности протоколов транспортного уровня'

Разработка имитатора основных характеристик сети для исследования эффективности протоколов транспортного уровня Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
342
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИМИТАТОР ХАРАКТЕРИСТИК СЕТИ / РЕТРАНСЛЯТОР СЕТЕВЫХ ПАКЕТОВ / ИНФОРМАЦИОННОЕ ВЗАИМОДЕЙСТВИЕ / LAN / WAN / UDP / TCP

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бритвин Н. В., Карпухин Е. О.

Проведен анализ существующих решений для имитации основных характеристик сети: потерь пакетов, задержек, изменения порядка следования и появления дубликатов пакетов, внесения искажений в структуру данных пакета, а также ограничения пропускной способности канала передачи данных. Выделены преимущества и недостатки каждого из рассмотренных решений для реализации конкурентоспособного приложения, позволяющего с минимальными затратами исследовать эффективность протоколов транспортного уровня. Результатом работы является программа, осуществляющая ретрансляцию сетевых пакетов между отправителем и получателем и имитирующая основные характеристики сети путем выбора функционала приложения в зависимости от целей и задач, решаемых пользователем. Разработанное приложение обладает графическим интерфейсом, что ускоряет процесс исследования эффективности протоколов транспортного уровня, а также поддерживает протоколы TCP и UDP.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бритвин Н. В., Карпухин Е. О.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка имитатора основных характеристик сети для исследования эффективности протоколов транспортного уровня»

Разработка имитатора основных характеристик сети

для исследования эффективности протоколов транспортного уровня

Разработка имитатора основных характеристик сети для исследования эффективности протоколов транспортного уровня

Бритвин Н.В.

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Московский авиационный институт (национальный исследовательский университет)» britvin. nickita@yandex. ru

Карпухин Е.О.

Центр информационных технологий в проектировании Российской академии наук

retl987@yandex.ru

Аннотация. Проведен анализ существующих решений для имитации основных характеристик сети: потерь пакетов, задержек, изменения порядка следования и появления дубликатов пакетов, внесения искажений в структуру данных пакета, а также ограничения пропускной способности канала передачи данных. Выделены преимущества и недостатки каждого из рассмотренных решений для реализации конкурентоспособного приложения, позволяющего с минимальными затратами исследовать эффективность протоколов транспортного уровня. Результатом работы является программа, осуществляющая ретрансляцию сетевых пакетов между отправителем и получателем и имитирующая основные характеристики сети путем выбора функционала приложения в зависимости от целей и задач, решаемых пользователем. Разработанное приложение обладает графическим интерфейсом, что ускоряет процесс исследования эффективности протоколов транспортного уровня, а также поддерживает протоколы TCP и UDP.

Ключевые слова: имитатор характеристик сети, LAN, WAN, UDP, TCP, ретранслятор сетевых пакетов, информационное взаимодействие

1 Введение

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

Наиболее функциональным имитатором характеристик сети является утилита Netem [Netem, 2015], поддерживающая эмуляцию задержки, с различной функцией распределения, эмуляцию потерь, повторов,

перемешивания и искажения пакетов. Однако данное средство не обладает возможностью ограничивать скорость передачи данных, что существенно снижает эффективность его использования для исследования протоколов транспортного уровня. К недостаткам также можно отнести возможность использования данной утилиты только в ОС семействах Linux, что существенно ограничивает области применения имитатора характеристик сети и предполагает наличие как минимум трех вычислительных устройств для реализации стенда, позволяющего проводить моделирование протоколов транспортного уровня.

Функции потери пакетов и ограничения пропускной способности канала реализованы в программе VMware Workstation [VMware, 2015]. Однако наиболее информативная характеристика любой сети - задержка, возникающая при передаче пакета, в данном продукте не реализована.

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

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

2 Особенности разработки имитатора основных характеристик сети

После определения целей и задач по созданию конкурентоспособного решения, в программе поэтапно были реализованы все основные возможности. Разработка велась путем проведения многоразовых тестов и выявления ошибок. Другой задачей являлось ограничение программной задержки, когда величина RTT увеличивается из-за того, что пакет проходит через ретранслятор сетевых пакетов (см. рис. 1).

Отправитель сетевых пакетов Получатель

Рис. 1. Модель системы передачи информации на основе имитатора основных характеристик сети для исследования эффективности протоколов транспортного

уровня

Разработка имитатора основных характеристик сети

для исследования эффективности протоколов транспортного уровня_

Ретранслятор сетевых пакетов реализован в виде программы на языке высокого уровня С# [Нейгел и др., 2014] и использует четыре сокета: два на прием данных от отправителя и получателя, и два на передачу данных к получателю и отправителю, как показано на рис. 2.

1

Сокет для приема пакетов от отправителя

Отправитель

Сокет для приема пакетов от получателя

Анализ конфигурации Исполнение алгоритмов

Сокет для отправки пакетов отправителю

Получатель

Сокет для отправки пакетов получателю

Рис. 2. Структура имитатора основных характеристик сети

Рассмотрим функционал разработанного приложения на примере реализации алгоритмов имитации основных характеристик сети.

2.1 Реализация алгоритма потери пакетов

В данном алгоритме рассчитывается вероятность потери для каждого пакета. Диапазон возможных значений меняется от 0,1 до 100 процентов (рис. 3).

Применение функции Random для каждого пакета

Создание пото] Сокет для приема для каждого пак< пакетов от отправителя

Отправили пакеты: 2,3,5,6

жет для отправки пакетов получателю

ПАКЕТ 6

Рис. 3. Пример реализации функции «потеря пакетов»

Так как неизвестен объем передаваемого трафика, то наилучшей реализацией потери пакета будет применение класса Random, генерирующего случайное число из определенного диапазона, для каждого пакета с заданной вероятностью (метод Random.Next). Вероятность

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

Для улучшения работы класса Random следует применять класс RNGCryptoServiceProvider.

2.2 Реализация алгоритма задержки пакетов

При включении данной опции запускается таймер с заранее заданным интервалом, измеряемым в миллисекундах. Пакету выделяется отдельный поток (см. рис. 4), в котором происходит ожидание отправки. Это делается для того, чтобы создать разную задержку для каждого пакета, то есть задержку на интервале от и до. Так как для имитации значение задержки как правило не превышает нескольких десятков миллисекунд, то псевдо пул потоков доходит до 200-300, что приемлемо для ОС Windows. Такой подход обеспечивает непредсказуемость поведения трафика, что приближает нас к реальным условиям его передачи по сети.

Вычисление временной задержки

Создание пот Сокет для приема для каждого' пакетов от отправителя пакета

для отправки акетов получателю

ПАКЕТ 7

Рис. 4. Пример реализации функции «задержка пакетов»

2.3 Реализация алгоритма повтора пакетов

Повтор пакетов осуществляется вычислением кратности текущего пакета к числу Ы, задаваемом пользователем для того, чтобы в дальнейшем

Разработка имитатора основных характеристик сети

для исследования эффективности протоколов транспортного уровня_

произвести К повторных отправок. Это в комплексе дает нам повтор пакетов, кратных Ы, К раз (рис. 5).

Кратен ли N ? Отправляем К -раз ?

Создание Сокет для приема для каждог пакетов от пакета

отправителя

ПАКЕТ 5

ПАКЕТ 6

ПАКЕТ 7

ПАКЕТ 1

ПАКЕТ 2

ПАКЕТ 3

ПАКЕТ 4

Рис. 5. Пример реализации функции «повтор пакетов»

2.4 Реализация алгоритма перемешивания пакетов

Перемешивание пакетов достигается методом внесения искусственной задержки. Заполнение очереди пакетами практично, но не эффективно. Ожидание пакетов требует время (нельзя осуществить перемешивание 1 пакета). Также сам алгоритм перемешивания занимает время, что приводит к низкой эффективности программы. Обратимся к рисунку 6. Из него видно, как создается искусственная очередь естественным путем, а также наблюдается эффект непредсказуемости. Результатом работы данного алгоритма является перемешивание пакетов по случайному закону.

2.5 Реализация алгоритма искажения пакетов

Данный алгоритм характерен для изменения полезной информации в пакете. В реальных условиях именно модификация содержимого сетевого пакета может повлиять на работу тестируемых программ. Так, при изменении метаданных пакета в случае протокола UDP пакет будет отброшен, а в случае TCP будет направлен запрос на повторную отправку пакета с данными. Данный алгоритм перед передачей данных получателю искажает структуру пакета, добавляя случайным образом символы (см. рис. 7).

Вычисление времени отложенной отправки

5 Мс

ПАКЕТ 1

ПАКЕТ 2

ПАКЕТ 3

Создание поте Сокет для приема для каждого^ пакетов от отправителя пакета \\ \ пакет 4

\ПАКЕТ 5

ПАКЕТ 6

3 Мс

4 Мс

1 Мс

ОМс

2 Мс

6 Мс

кет д ля отправки акетов получателю, правили: 5,4,6,2,3,1,7

ПАКЕТ 7

Рис. 6. Пример реализации функции «перемешивание пакетов»

Искажение структуры данных каждого пакета путем модификации произвольных символов

Создание пот« Сокет для приема для каждого1 пакетов от отправителя пакета \\ \ ПАКЕТ 4

«ет для отправки акетов получателю

ПАКЕТ 7

Рис. 7. Пример реализации функции «искажение пакетов»

Разработка имитатора основных характеристик сети

для исследования эффективности протоколов транспортного уровня_

2.6 Реализация алгоритма ограничения скорости передаваемых данных

Традиционно алгоритм ограничения скорости строится следующим образом. В буфер (очередь) поступают пакеты со скоростью (интенсивностью) Х\, а отправка осуществляется с меньшей скоростью Хг, при этом прореживание пакетов из очереди происходит постоянно с интенсивностью Может настать момент, когда скорость наполнения превысит скорость опустошения, что приведет к переполнению буфера. Выделять мегабайты памяти для буфера неэффективно, да и этого может оказаться мало. В реальной среде, не обладающей физической памятью, произойдет отбрасывание пакетов (принимать больше некуда).

Так как программа имеет 2 интерфейса на вход и выход в обе стороны, было решено произвести ограничение приема. Работает это следующим образом (рис. 8). Создадим переменную, в которой будет храниться количество байт, которые мы должны передать за 1 секунду. Другая переменная будет вести подсчет текущего объема данных в принятых пакетах. Как только она достигнет предела пропускной способности, заданного пользователем, все дальнейшие принятые пакеты будут просто игнорироваться. До тех пор, пока не пройдет 1 секунда, и переменная, которая ведет подсчет размера принятых пакетов, не обнулится и не начнется подсчет снова, данные из сокета для приема пакетов от отправителя будут игнорироваться. Такой подход позволяет не выделять память под буфер приема и передачи, а также избавляет нас от проблем, описанных выше.

Пропускаем пакеты, пока объем принятых за 1 секунду данных не превысит заданного

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Сокет для приема пакетов от отправите.

Сокет для отправки пакетов получателю с заданной скоростью

Рис. 8. Схема реализации ограничения скорости передаваемой информации

3 Внешний вид и основные характеристики разработанной программы

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

Emulation WAN

- □

H острой ко Конфигурация Потеря пакетов

от 0,1 до 100%

Задержка пакетов *

Повтор пакетов *

Перемешивание пакетов Искажение пакетов

:

Ограничение скорости

Рис. 9. Основные настройки приложения

В меню «Настройка» можно указать следующие характеристики имитатора:

■ Потеря пакетов (рис. 9);

■ Задержка пакетов;

■ Повтор пакетов;

■ Перемешивание пакетов;

■ Искажение пакетов;

■ Ограничение скорости передаваемых данных (рис. 10).

Ограничение пропускной способности

_ а

Кпиент

509

KfinT/сек V

Сервер

ъ

Исзщдаш.й_три.ФЛК

M 502

Кбнт/сек

Рис. 10. Настройка ограничения скорости передаваемых данных

В меню «Конфигурация» пользователь может выбрать вид используемого протокола (TCP или UDP), изменить порты и /Р-адреса отправителя и получателя, а также использовать режим имитации сети на одном компьютере (локально). После выбора и установки параметров работы имитатора необходим его запуск путем нажатия кнопки «Старт».

Разработка имитатора основных характеристик сети

для исследования эффективности протоколов транспортного уровня_

4 Заключение

Поставленная во введении задача по разработке приложения-имитатора основных характеристик сети была достигнута полностью. Ее результатом является программа _EmulationWAN_.exe, которая не требует установки, состоит из одного исполняемого файла и написана для ОС Windows со средой .NET Framework, но может быть переработана с минимальными усилиями под ОС Linux. Учтены все достоинства и недостатки существующих программ, поэтому реализованное приложение выигрывает перед ними в плане масштабируемости, простоты использования и функциональности.

Наша программа может быть развернута на нескольких узлах для достижения большей эффективности. Также приложение _EmulationWAN_.exe может выступать как самостоятельная программа или использоваться после переработки в качестве библиотеки для программно-аппаратных комплексов моделирования эффективности протоколов транспортного уровня.

5 Благодарности

Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 14-07-31247 мол_а

Список литературы

[Нейгел и др., 2014] Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер. С# 5.0 и платформа .Net 4.5 для профессионалов: Пер. с англ. -М.: ООО "И.Д. Вильяме", 2014. -1440 с.:ил.

[Netem, 2015] Netem [Электронный ресурс] // Сайт Linux Foundation: [сайт],[2015]. URL: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem (дата обращения: 20.02.2015).

[VMware, 2015] VMware Workstation 9 Documentation Center [Электронный ресурс] // Сайт VMware, Inc: [сайт], [2015]. URL: https://pubs.vmware.com/workstation-9/index.j sp?topic=%2Fcom. vmware. ws.using.doc%2FGUTO-7BFFA8B3-C134-4801-AOAD-3DA53BBAC5CA.html (дата обращения: 22.02.2015).

i Надоели баннеры? Вы всегда можете отключить рекламу.