Применение программного комплекса Network Simulator-2 для моделирования устройств с поддержкой качества обслуживания.

, научный руководитель, кандидат технических наук, доцент

Вологодский Государственный Технический Университет

г. Вологда

QoS (Quality of Service)– это система гарантированного качества услуг. Механизмы QoS позволяют избежать заторов в сети, беспрепятственному продвижению высокоприоритетного трафика, например голосового или видеотрафика, не увеличивая при этом полосу пропускания.

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

В моей работе устройства с поддержкой качества обслуживания будут моделироваться на Network Simulator-2. NS-2 - программный комплекс, позволяющий осуществлять имитационное моделирование сетей связи и обладающий целым рядом характеристик, среди которых высокая производительность, хорошая масштабируемость, визуализация результатов и гибкость.

Цель работы – построить модели устройств с поддержкой качества обслуживания, реализованных на NS-2, и промоделировать работу алгоритмов QoS.

НЕ нашли? Не то? Что вы ищете?

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

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

Ns2 является объектно-ориентированным ПО, ядро которого реализовано на языке С++. Язык скриптов (сценариев) OTcl (Object oriented Tool Command Language) используется в качестве интерпретатора. Ns2 полностью поддерживает иерархию классов С++ и подобную иерархию классов интерпретатора OTcl. Обе иерархии обладают идентичной структурой, т. е. существует однозначное соответствие между классом одной иерархии и таким же классом другой. Использование двух языков программирования в ns2 объясняется следующими причинами. С одной стороны, для детального моделирования протоколов необходимо использовать системный язык программирования, обеспечивающий высокую скорость выполнения и способный манипулировать достаточно большими объемами данных. С другой стороны, для удобства пользователя и быстроты реализации и модификации различных сценариев моделирования привлекательнее использовать язык программирования более высокого уровня абстракции. Такой подход является компромиссом между удобством использования и скоростью. В ns2 в качестве системного языка используется С++, позволяющий обеспечить: высокую производительность, работу с пакетами потока на низком уровне абстракции модели и модификацию ядра ns2 с целью поддержки новых функций и протоколов. В качестве языка программирования высокого уровня абстракции используется язык скриптов OTcl, позволяющий обеспечить ряд положительных свойств, таких, как простота синтаксиса, простота построения сценария моделирования, возможность соединения воедино блоков, выполненных на системных языках программирования и простую манипуляцию ими. Объединение для совместного функционирования С++ и OTcl производится при помощи TclCl (Classes Tcl). TclCl является интерфейсом между объектами C++ и OTcl. Остальные команды OTcl выполняются путем передачи данных в объект С++ при помощи функции TclObject::command(int argc, const char*const* argv).

Для запроса процедуры OTcl из С++ используется класс Tcl. Это может быть полезно, например, при передаче результатов в OTcl из С++. Сценарий моделирования сети связи может быть полностью записан на OTcl, включая параметры линий и узлов, например, задержки, очереди и т. п. В случае, если необходимо реализовать какую-либо специфическую функцию, например, дисциплину обслуживания не реализованную в ns2 на уровне ядра, то для этого используется код на С++.

Мониторинг очередей: Объекты трассировки предназначены для того, чтобы записывать время прибытия пакетов в то место, где они расположены. Несмотря на то, что пользователь получает достаточно большой объем информации из трейс-файла, ему может быть нужна информация о том, что происходит внутри некоторых видов очередей. Например, пользователю, заинтересованному в поведении очереди RED (Random Early Detection), могут понадобиться измерения динамики изменения среднего размера очереди и текущего размера очереди. Мониторинг очереди может быть осуществлен при использовании объектов мониторинга очереди и объектов слежки за очередью.

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

Пример создания модели на NS-2:

set ns [new Simulator] #создание новой модели

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node] #создание узлов в сети

$ns duplex-link $n0 $n2 100k 10m DropTail

$ns duplex-link $n1 $n2 100k 10m DropTail

$ns duplex-link $n2 $n3 100k 10m RED

#мы точно описали каждую связь от точки к точке

#пропускная способность связи, распространение задержек, а также тип очереди для данной связи.

set tcp1[$ns create-connection TCP $n0 TCPSink $n3 1]

set tcp2[$ns create-connection TCP $n1 TCPSink $n3 2]

#описание TCP агентов-источников в узлах n0 и n1, описание агента-приемника - TCPSink в узле 3 и соединение агентов друг с другом

set ftp1[$tcp1 attach-app FTP] #запуск ftp-трафика в качестве приложения

set ftp2[$tcp2 attach-app FTP]

$ns at 1.0 ‘‘$ftp1 start’’

$ns at 1.4 ‘‘$ftp2 start’’

$ns at 1.0 ‘‘$ns halt; exit 0’’

$ns run

Для запуска сценария в ns-2 необходимо набрать следующую команду:

ns filename args

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

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

1. Eitan Altman, Tania Jimenez. NS for Beginners Lecture Notes, Univ. de Los Andes, Merida, Venezuela, Sept 2002, режим доступа: http://www-sop. inria. fr/maestro/personnel/Eitan. Altman/COURS-NS/n3.pdf

2. Greis, Marc. “Tutorial for the Network simulator ‘ns.’” режим доступа: http://www. isi. edu/nsnam/ns/tutorial/index. html