Научная статья на тему 'РЕАЛИЗАЦИЯ ГИБРИДНОГО ПРОТОКОЛА МАРШРУТИЗАЦИИ БЕСПРОВОДНОЙ СЕТИ В NS2'

РЕАЛИЗАЦИЯ ГИБРИДНОГО ПРОТОКОЛА МАРШРУТИЗАЦИИ БЕСПРОВОДНОЙ СЕТИ В NS2 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
30
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАДИОСЕТЬ / БЕСПРОВОДНАЯ СЕТЬ / ПРОТОКОЛЫ МАРШРУТИЗАЦИИ / ГИБРИДНЫЙ ПРОТОКОЛ МАРШРУТИЗАЦИИ / NETWORK SIMULATOR NS2

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Молокович И.А.

Постановка задачи: рассмотрены проблемы, связанные с реализацией разработанного гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2. Целью работы является реализация разработанного гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2 для дальнейшего исследования и сравнения с протоколами AODV, AOMDV, DSR, DSDV, TORA. Используемые методы: имитационное моделирование с помощью программного симулятора телекоммуникационных сетей Network Simulator NS-2. Новизна состоит в том, что для реализации разработанного гибридного протокола маршрутизации, состоящего из трех компонентов: для стационарной части радиосети - проактивного протокола маршрутизации, для мобильных сетей доступа - активного протокола маршрутизации, и протокола маршрутизации между мобильными радиосетями для формирования полного маршрута от источника до получателя, предложена последовательность действий по добавлению новой реализации и изменению файлов программного симулятора network simulator ns-2. Результат заключается в том, что предложен вариант реализации гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2. На первом этапе добавляется каталог с именем протокола, который содержит файлы реализации агента маршрутизации, таблицы маршрутизации и формата пакета. На втором этапе вносятся изменения в файлы каталога ns-2 для последующей компиляции и запуска протокола в симуляторе. Практическая значимость: предложенный вариант реализации разработанного гибридного алгоритма маршрутизации беспроводной сети в программном симуляторе network simulator ns-2 позволяет получить последовательность действий по реализации любого протокола маршрутизации в программном симуляторе network simulator ns-2 для дальнейшего исследования.

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

IMPLEMENTATION OF THE HYBRID WIRELESS NETWORK ROUTING PROTOCOL IN NS2

Problem statement: problems related to the implementation of the developed hybrid wireless network routing Protocol in the network simulator ns-2 software are considered. The purpose of this work is to implement the developed hybrid wireless network routing Protocol in the network simulator ns-2 software for further research and comparison with the aodv, AOMDV, DSR, DSDV, TORA protocols. Methods used: simulation using the software simulator of telecommunications networks Network Simulator (NS-2). The novelty consists in the fact that the implementation of the developed hybrid routing Protocol that consists of three components: the stationary part of the radio network is a proactive routing Protocol for mobile access networks - active routing Protocol, and routing Protocol between mobile radio networks to form a complete route from a source to a recipient, a sequence of actions for adding new implementations and changes to files software simulator the network simulator ns-2. The result is that a variant of implementing a hybrid wireless network routing Protocol in the network simulator ns-2 software is proposed. In the first step, you add a directory with the Protocol name that contains the routing agent implementation files, the routing table, and the package format. In the second stage, changes are made to the ns-2 directory files for later compilation and running the Protocol in the simulator. Practical relevance: the proposed implementation of the developed hybrid wireless network routing algorithm in the network simulator ns-2 software allows you to obtain a sequence of actions for implementing any routing Protocol in the network simulator ns-2 software for further research.

Текст научной работы на тему «РЕАЛИЗАЦИЯ ГИБРИДНОГО ПРОТОКОЛА МАРШРУТИЗАЦИИ БЕСПРОВОДНОЙ СЕТИ В NS2»

УДК 004.75

Реализация гибридного протокола маршрутизации беспроводной сети в NS2

Молокович И.А.

Аннотация. Постановка задачи: рассмотрены проблемы, связанные с реализацией разработанного гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2. Целью работы является реализация разработанного гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2 для дальнейшего исследования и сравнения с протоколами AODV, AOMDV, DSR, DSDV, TORA. Используемые методы: имитационное моделирование с помощью программного симулятора телекоммуникационных сетей Network Simulator NS-2. Новизна состоит в том, что для реализации разработанного гибридного протокола маршрутизации, состоящего из трех компонентов: для стационарной части радиосети - проактивного протокола маршрутизации, для мобильных сетей доступа - активного протокола маршрутизации, и протокола маршрутизации между мобильными радиосетями для формирования полного маршрута от источника до получателя, предложена последовательность действий по добавлению новой реализации и изменению файлов программного симулятора network simulator ns-2. Результат заключается в том, что предложен вариант реализации гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2. На первом этапе добавляется каталог с именем протокола, который содержит файлы реализации агента маршрутизации, таблицы маршрутизации и формата пакета. На втором этапе вносятся изменения в файлы каталога ns-2 для последующей компиляции и запуска протокола в симуляторе. Практическая значимость: предложенный вариант реализации разработанного гибридного алгоритма маршрутизации беспроводной сети в программном симуляторе network simulator ns-2 позволяет получить последовательность действий по реализации любого протокола маршрутизации в программном симуляторе network simulator ns-2 для дальнейшего исследования.

Ключевые слова: радиосеть, беспроводная сеть, протоколы маршрутизации, гибридный протокол маршрутизации, network simulator ns-2.

Введение

В статье пошагово описывается реализация нового гибридного протокола маршрутизации для беспроводной сети в программном симуляторе Network Simulator NS-2. Рассмотрим радиосеть, состоящую из нескольких ad hoc компонентов (сетей доступа) и стационарных маршрутизаторов области ретрансляторов, которые работают в качестве ядра сети [1]. Для такой радиосети предлагается гибридный протокол маршрутизации (HRP -Hybrid Routing Protocol), который состоит из трех компонентов [1]:

протокола маршрутизации внутри сети доступа (Access Network Routing Protocol) -

ANRP;

протокола маршрутизации стационарных маршрутизаторов области ретрансляторов (Router Infrastructure Routing Protocol) - RIRP;

протокола маршрутизации между сетями доступа (Access network Gateway Routing Protocol) - AGRP.

Первым шагом для добавления нового протокола маршрутизации MANET в NS-2 является создание каталога с именем протокола hrp в базовом каталоге ns-2 [2]. Затем добавляются основные файлы, используемые для реализации протокола. В реализации протокола маршрутизации HRP используются файлы: Hrp.œ и его заголовочный файл, таблица маршрутизации с заголовочным файлом и файл формата пакета, который используется для определения различных форматов пакетов.

Из всех этих файлов фактическая реализация осуществляется в файле Hrp.œ, который реализует все таймеры, агента маршрутизации и интерфейс, с помощью которого файлы с

расширением «cc» взаимодействуют с файлами Tcl. Сценарий Tcl используется для достижения цели моделирования. Файл Hrp.cc - это скомпилированная иерархия, файл Tcl -это интерпретированная иерархия, между которыми существует однозначное соответствие.

Файлы, используемые для реализации протокола, и их содержание перечислены ниже:

hrp.h - файл заголовка, где определяются все необходимые таймеры и агент маршрутизации, выполняющий функции протокола маршрутизации;

Hrp.cc - выполнена фактическая реализация таймеров, агента маршрутизации и интерфейса взаимодействия с Tcl;

hrp_pkt.h - определены форматы пакетов протокола;

hrp_rtable.h - файл заголовка таблицы маршрутизации;

hrp_rtable.cc - определена фактическая реализация функциональности таблицы маршрутизации.

Целью работы является реализация разработанного гибридного протокола маршрутизации беспроводной сети в программном симуляторе network simulator ns-2 для дальнейшего исследования и сравнения с протоколами AODV, AOMDV, DSR, DSDV, TORA.

Обзор файлов протоколов маршрутизации

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

hrp_pkt.h

В этом файле определяются различные пакеты, используемые в протоколе маршрутизации. Например, в протоколе маршрутизации HRP используются пакеты запросов, пакеты ответов и т. д., которые определяются в файле. Типы, используемые в пакетном формате: 16-битное целое число, 8-битное целое число и т. д., определяются в файле config.h. Формат пакета определяется внутри структуры. В качестве атрибутов пакета протокола маршрутизации в файле определены: сетевой адрес, длина пакета в байтах и номер пакета.

Эти пакеты являются только контрольными пакетами протокола маршрутизации. IP-пакет и пакет, в который инкапсулирован IP-пакет, определены в файле packet.h в каталоге ns-2. Таким образом можно использовать созданные контрольные пакеты в процессе моделирования протокола маршрутизации, и они будут приниматься узлами сети.

Поскольку пакет, полученный узлом, является IP-пакетом, нам нужно определить поле смещения там, где начинается этот пакет управления протокола маршрутизации. Он также определяется в классе пакетов.

Hrp.cc

Чтобы использовать пакеты протокола маршрутизации с интерфейсом Tcl, нам нужно связать их с интерпретатором Tcl. Эта привязка выполняется в файле Hrp.cc.

hrp.h

В этом файле определяется класс для используемого протокола маршрутизации, который содержит атрибуты и функциональность, необходимую протоколу при выполнении его задач. Для выполнения всех этих функций необходимы заголовочные файлы - timer-handler.h, trace.h, random.h, classifier-port.h, agent.h,packet.h и т. д.

В файле timer-handler.h определяется базовый класс обработчика таймера, файл trace.h определяет класс трассировки, файл random.h - класс для генерации псевдослучайных чисел, файл classifier-port.h - класс, используемый для передачи пакетов с сетевого уровня

на верхние уровни, файл agent.h - базовый класс агента маршрутизации, файл packet.h -базовый класс пакета.

Файл hrp.h определяет таймер для периодической отправки контрольных пакетов маршрутизации и функции класса протокола HRP.

Основной функцией протокола является recv (), в которой определено то, что узел должен делать, когда он получает любой пакет, будь то контрольный или пакет данных. Другие функции - send (), forward (), reset () и т. д.

Функция send () вызывается для отправки контрольного пакета, функция forward () -для пересылки пакетов данных, reset () - для планирования пользовательского таймера.

Все поля отслеживания определены в таблице файла cmu-trace.cc, где определены параметры трассировки. Также можно определить параметры трассировки из файла сценария Tcl.

hrp_rtable.h, hrp_rtable.cc

В файле таблицы маршрутизации определены все функции таблицы маршрутизации -print (), clear (), rmentry (), addentry (), lookup (), size ().

Функция print () выводит содержимое таблицы маршрутов в файл трассировки, функция clear () удаляет все записи из таблицы маршрутов, функция rm entry () удаляет запись в таблице маршрутов, учитывая адрес назначения, функция add entry () добавляет новую запись в таблицу маршрутов с учетом адреса назначения и следующего узла, функция lookup () возвращает адрес следующего узла с указанием адреса назначения. Если такой записи не существует, т. е. до адресата нет маршрута, то функция lookup () возвращает IPBroadcast. Функция size () возвращает количество записей в таблице маршрутов.

Поля таблицы маршрутизации определяются в заголовочном файле таблицы маршрутизации.

Изменения, необходимые после добавления нового протокола маршрутизации в NS-2

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

Необходимые изменения файлов в каталоге ns-2 приведены ниже [2, 3]:

common/packet. h

В общей папке в базовой директории ns2 находится файл packet.h, который должен быть изменен. В этом файле должен быть добавлен тип пакета протокола: строка PTHRP должна быть добавлена в поле static const packett.

Остальные изменения вносятся в функцию pinfo (), где должно быть указано имя добавленного протокола.

trace/cmu-trace. h

Для поддержки трассировки также требуются изменения в файле cmu-trace.h, где необходимо добавить имя функции format_hrp. Функциональность этого должна быть определена в файле cmu-trace.cc.

Tcl Library

Теперь требуется внести некоторые изменения в файлы Tcl. Нужно добавить пакет протокола маршрутизации, задать значения по умолчанию для привязанных атрибутов и предоставить необходимую инфраструктуру для создание беспроводных узлов, работающих в нашем протоколе маршрутизации.

ns-packet.tcl

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

ns-default.tcl

В этом файле находятся значения по умолчанию для переменной, которые отправляются пользователем из Tcl сценария. Значения по умолчанию обязательны, потому что в случае, если пользователь не вводит любые значения переменных привязки, должны быть приняты значения по умолчанию. Эти значения по умолчанию берутся из файла ns-default.tcl.

ns-lib.tcl

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

queue/priqueue.cc

Приоритетные очереди рассматривают пакеты маршрутизации как пакеты с высоким приоритетом, вставляя их в начало очереди. Класс PriQueue указывает, что пакеты hrp являются пакетами протокола маршрутизации и поэтому рассматриваются как высокоприоритетные.

Makefile

Последним шагом после добавления всех необходимых функций в файлы должна быть компиляция. Компиляция файлов производится командой make. Перед выполнением make каталог hrp должен быть добавлен в список объектов раздела INCLUDES файла Makefile, также должна быть добавлена строка в разделе OBJ_CC. После добавления и выполнения команды make, если ошибок не происходит, протокол является установленным успешно и может быть использован для целей моделирования.

Расширения Симулятора

С технической точки зрения NS2 - это в основном интерпретатор OTcl с сетью библиотек объектов моделирования. Если нужного сетевого объекта нет, можно написать объект в C++ и добавить его в библиотеку.

Tcl/OTcl

Tcl (Tool Command Language) означает командный язык инструментов. OTcl (Object oriented Tcl) расшифровывается как объектно-ориентированный Tcl. Tcl имеет возможность быть встроенным в прикладную систему, скажем, редактор или симулятор, и выступать в качестве языка интерфейса, который позволяет пользователю вызывать конкретные приложения функции с командами Tcl. Другими словами, Tcl расширяется; вы можете добавить все свои нужные функции в свою библиотеку.

Tcl - это интерпретируемый скриптовый язык с простым синтаксисом. OTcl - это расширение Tcl для объектно-ориентированного программирования. В Tcl пользователи могут определять классы и создавать объекты.

Класс OTcl также может быть определен в языке C++. На самом деле иногда приходится выполнять критически важные сетевые компоненты на языке C++ ради эффективности. Ниже приведен пример реализации протокола маршрутизации HRP, чтобы продемонстрировать, как добавлять новые агенты маршрутизации в NS2 с помощью C++.

Добавление нового заголовка пакета

Новый протокол маршрутизации HRP нуждается в новом типе пакетов. В реализации NS2 фактически все пакеты имеют один и тот же формат, содержащий заголовки пакетов для каждого протокола. Различные протоколы читают и пишут различные заголовки пакетов и игнорируют заголовки пакетов для других протоколов. Таким образом, добавление нового типа пакета - это добавление нового типа заголовка пакета в общую структуру пакетов. Следующий сегмент файла hrp_pkt.h определяет заголовок пакета протокола HRP:

struct hdr_hrp_pkt {

nsaddrt pkt_src_; u_int16_t pkt_len_; u_int8_t pkt_seq_num_;

static int offset ;

inline static int& offset () {return offset ;} inline static hdr_hrp_pkt* access (const Packet*p) { return (hdr_hrp_pkt*) p - > access (offset_);

}

};

После определения формата заголовка пакета следующий сегмент файла Hrp.cc сообщает NS2, что этот новый заголовок пакета должен быть добавлен в общий пакет и должен упоминаться в OTcl с именем Packet-Header/HRP. int hdr_hrp_pkt::offset_;

static class HrpHeaderClass : public PacketHeaderClass { public:

HrpHeaderClass() : PacketHeaderClass ("PacketHeader/HRP", sizeof (hdr_hrp_pkt)){ bind offset (&hdr_hrp_pkt::offset_);

}

} classrtProtoHrphdr;

Следующим шагом является изменение списка типов пакетов NS2 для добавления нового типа пакетов в файле common/packet.h:

static packetClass classify (packet t type) {

if (type = = PT_DSR || \

type = = PTHRP)

return ROUTING; }; ......

Кроме того, необходимо дать ему имя в списке информации о пакете. Это имя будет отображаться в списке файла трассировки пакетов.

static void initName () {

name [PT AOMDV] = "AOMDV"; name [PT HRP] = "HRP"; name [PT TYPE] = "undefined";

}

Теперь новый пакет типа PT HRP доступен для нового протокола HRP.

Добавление нового агента маршрутизации

Новый агент определен как подкласс класса Agent NS2 и все функции, определенные методами command и recv, выполняет класс Hrp. Метод command принимает и выполняет команды из OTcl скрипта, например, отправляет hrp-пакеты; метод recv обрабатывает пакеты, отправленные агенту, например, от протоколов UDP или TCP, или от другого узла. Класс Hrp определен в файле hrp.h: class Hrp : public Agent {

protected: public:

Hrp (nsaddrt);

int command (int, const char* const*);

voidrecv (Packet*, Handler*);

};

Следующее, что нужно сделать, это привязать класс Hrp C++ к классу OTclAgent/Hrp в файле Hrp.cc:

static class HrpClass : public TclClass { public:

HrpClass () : TclClass ("Agent/HRP") {}

TclObject* create (int args, const char*const* argv) { assert (args = = 5);

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

return (new Hrp ((nasddr_t)Address::instance().str2addr(argv[4]))); }

} class_rtProtoHrp;

Переменные-члены класса C++ привязаны к переменной-члену OTcl так, что они также доступны в сценарии OTcl:

Hrp::Hrp (nsaddrt id) : Agent (PT HRP), pkttimer(this) { bindbool ("accessible_var_", &accessible_var_); ra_addr_ = id;

}

После того как новый код C++ будет скомпилирован и объединен в исходный код NS2, новый агент Agent/Hrp можно создать в OTcl-скрипте, задать структуру сети и провести моделирование работы протокола маршрутизации.

Вывод

Предложенный вариант реализации разработанного гибридного алгоритма маршрутизации беспроводной сети в программном симуляторе network simulator ns-2 позволяет получить последовательность действий по реализации любого протокола маршрутизации в программном симуляторе network simulator ns-2 для дальнейшего исследования.

Литература

1. Молокович И.А. Маршрутизация в стационарной радиосети декаметровой радиосвязи // Техника средств связи. 2019. № 3 (147). C. 33-40.

2. Francisco J. Ros, Pedro M. Ruiz. Implementing a New Manet Unicast Routing Protocol in NS2. Dept. of Information and Communications Engineering University of Murcia. December, 2004. 35 р.

3. Молокович И.А. Реализация имитационной модели гибридного протокола маршрутизации беспроводной сети в Network Simulator (NS-2) // Региональная информатика и информационная безопасность. Сборник трудов. Выпуск 5 // СПОИСУ. СПб., 2018, с. 257 - 260.

References

1. Molokovich I.A. Routing in the stationary radio network decameter radio. Means of communication equipment. No 3 (147). Pp. 33-40 (in Russian).

2. Francisco J. Ros, Pedro M. Ruiz. Implementing a New Manet Unicast Routing Protocol in NS2. Dept. of Information and Communications Engineering University of Murcia. December, 2004. 35 р.

3. Molokovich I.A. Implementation of simulation model of hybrid routing Protocol of wireless network in Network Simulator (NS-2). Regional Informatics and information security. Collection of works. Issue 5. SPOIS. SPb., 2018. Pp. 257-260 (in Russian).

Статья поступила 03 сентября 2021 г.

Информация об авторе

Молокович Игорь Аркадьевич - Кандидат технических наук, доцент. Ведущий инженер ПАО «Интелтех». Область научных интересов: телекоммуникационные сети; алгоритмы и протоколы маршрутизации. Тел.: +7 921 344 24 29. E-mail: igor-molokovich@yandex.ru.

Адрес: 197342, Россия, г. Санкт-Петербург, Кантемировская ул., д. 8.

Implementation of the hybrid wireless network routing Protocol in NS2

I.A. Molokovich

Annotation. Problem statement: problems related to the implementation of the developed hybrid wireless network routing Protocol in the network simulator ns-2 software are considered. The purpose of this work is to implement the developed hybrid wireless network routing Protocol in the network simulator ns-2 software for further research and comparison with the aodv, AOMDV, DSR, DSDV, TORA protocols. Methods used: simulation using the software simulator of telecommunications networks Network Simulator (NS-2). The novelty consists in the fact that the implementation of the developed hybrid routing Protocol that consists of three components: the stationary part of the radio network is a proactive routing Protocol for mobile access networks - active routing Protocol, and routing Protocol between mobile radio networks to form a complete route from a source to a recipient, a sequence of actions for adding new implementations and changes to files software simulator the network simulator ns-2. The result is that a variant of implementing a hybrid wireless network routing Protocol in the network simulator ns-2 software is proposed. In the first step, you add a directory with the Protocol name that contains the routing agent implementation files, the routing table, and the package format. In the second stage, changes are made to the ns-2 directory files for later compilation and running the Protocol in the simulator. Practical relevance: the proposed implementation of the developed hybrid wireless network routing algorithm in the network simulator ns-2 software allows you to obtain a sequence of actions for implementing any routing Protocol in the network simulator ns-2 software for further research.

Keywords: radio network, wireless network, MANET, routing protocols, hybrid routing protocol, network simulator ns-2.

Information about Authors

Igor Arkadievich Molokovich - Candidate of technical Sciences, associate Professor. Leading engineer of PJSC "IntelTech". Research interests: telecommunication networks; routing algorithms and protocols. Тел.: +79213442429. E-mail: igor-molokovich@yandex.ru.

Address: Russia, 197342, Saint-Petersburg, Kantemirovskay Av, 8.

Для цитирования: Молокович И.А. Реализация гибридного протокола маршрутизации беспроводной сети в NS2 // Техника средств связи. 2021. № 3 (155). С. 49-55.

For citation: Molokovich I.A. Implementation of the hybrid wireless network routing Protocol in NS2. Means of communication equipment. 2021. No 3 (155). Pp. 49-55 (in Russian).

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