Как расширить различные модули Inet с помощью пользовательских сообщений?

У меня есть все примеры для моделирования INET (AODV). Моя сеть состоит из нескольких хостов AODV Router.

Моя следующая задача — обменяться некоторыми сообщениями о текущей позиции каждого хоста (которые будут обновлены через некоторое время с помощью Mobility). Все примеры, которые я нашел (обычно), имеют tictoc который просит меня построить simpleModule в .cc файл, а затем использовать этот модуль в .ned файл. Я хочу использовать AODVRouter модуль для обмена этими сообщениями (так как в нем уже есть реализованные вещи, которые мне нужны для сети).

это это пример, который я использовал для обмена сообщениями с cSimpleModule

Я пробовал этот пример (как описано в проекте INET), но проблема здесь в том, что он только расширяется cSimpleModule, Так как я хочу использовать AODVRouter Модуль (из INET), как мой отправитель и получатель, я не могу использовать этот пример. Поэтому мой вопрос заключается в том, как еще можно это сделать (т. Е. Отправлять и получать сообщения через модули INET, такие как AODVRouter модуль).

0

Решение

То, как вы справитесь с этой проблемой, зависит от того, что это за сообщения и как они связаны с протоколом AODV.

  • Если вы пытаетесь расширить протокол AODV с помощью некоторых функций, учитывающих местоположение, и местоположение будет использоваться самим протоколом маршрутизации, то вам, очевидно, следует изучить AODVRouting. исходный код. Вы можете проверить там, чтобы увидеть, как сообщения отправляются / принимаются.

  • Если сообщение полностью не связано с AODV, и вы хотите реализовать какой-либо обмен сообщениями на уровне приложения, тогда нужно создать модуль «Приложение» и установить его в маршрутизатор. Конечно, вы должны знать, хотите ли вы отправлять данные с использованием TCP или UDP (я предполагаю, что UDP больше подходит для обмена данными с ориентацией на сообщения). На этом этапе вы должны реализовать что-то вроде UDPBasicApp с добавлением, что вы создаете свой собственный PacketType, который содержит данные, которые вы хотите передать (то есть координаты узла). Используйте это для начала.

Как правило, учебное пособие по TicToc является лишь базовым примером, демонстрирующим, как отправка выполняется ядром OMNeT ++. Отправка в INET требует дополнительных работ в зависимости от того, на каком уровне OSI вы пытаетесь отправить данные. Например, на прикладном уровне вы должны открыть сокеты (см. Код) и использовать их для отправки. Остальная часть кодовой базы INET будет иметь дело со сложностью правильного внедрения этой информации в пакеты нижнего уровня (UDP, IP, Ethernet).

1

Другие решения