Isis2 в нс-3 и мостовой кран
Поэтому мне нужно смоделировать Isis2 в NS -3. (Я также должен немного изменить Isis2, обернув его некоторым кодом C/C++, так как мне нужно по крайней мере квазиреальное критическое поведение в реальном времени)
Поскольку я далек от того, чтобы что-либо из этого было реализовано, было бы интересно узнать, является ли это подходящим способом поведения. Мне нужно специально контролировать производительность консенсуса во время спорадического поведения Wi-Fi (ad hoc).
Имеет ли смысл виртуализировать машину для каждого экземпляра Isis2, а затем использовать мост крана (смоделировать и проанализировать трафик в канале ns-3? (Я также собираюсь регистрировать события в каждом экземпляре; объединять различные данные в единая презентация)
1 ответ
Вам нужно начать с создания прикладной программы Isis2, и это должно быть сделано с использованием C/CLI или C++/CLI. C++/CLI будет проще, потому что соответствие с системой типов Isis2 ближе. Но когда я набираю эти слова, я пытаюсь вспомнить, действительно ли Mono поддерживает C++ / CLI. Если для C++ / CLI нет компилятора Mono, возможно, вам придется использовать C# или IronPython. По сути, вы должны работать с тем, что будет поддерживать компилятор.
Вы создадите это и библиотеку на своей моно платформе и должны протестировать ее, что вы можете сделать в любой системе Linux. Как только вы это заработаете, вы будете экспериментировать с NS/3. Обратите внимание, что если вы работаете в Windows, вы сможете использовать C++/CLI (наверняка), а затем сможете просто создать виртуальную машину Windows для NS3. Так что это будет означать работу на Windows, но не нужно изучать C#.
Это связано с тем, что Isis2 является библиотекой для группового общения, многоадресной рассылки, репликации и совместного использования файлов, DHT и т. Д., А также для доступа к какой-либо конкретной функциональности вам необходима прикладная программа для ее "управления". Я не ожидал бы проблем с производительностью, если вы будете следовать рекомендациям в видеоуроках и руководстве пользователя; даже для использования в реальном времени система, вероятно, достаточно быстра и достаточно устойчива в своем поведении.
Тогда да, я бы взял виртуальную машину с необходимыми двоичными файлами для Mono (Mono загружается из DLL, поэтому они должны быть доступны в нужных местах виртуальной файловой системы) и тестовую программу Isis2 и запустил ее в NS3. Я не пробовал это, но не вижу причин, по которым это не сработает.
Имейте в виду, что настройки таймера по умолчанию для времени ожидания и повторной передачи очень медленные и настроены для работы на Amazon AWS внутри центра обработки данных. Так что, как только у вас это заработает, но прежде чем смоделировать настройки Wi-Fi, вы можете поэкспериментировать с настройкой системы, чтобы быть более отзывчивой в этих настройках. Я думаю, что ISIS_DEFAULTTIMEOUT, вероятно, будет слишком длинным для вас, и настройка RTDELAY также может быть слишком длинной для вас. Amazon AWS - это своеобразная среда, и то, что делает Isis2 стабильным в AWS, может быть не идеальным в настройках Wi-Fi с очень разными целями... но все эти параметры можно настроить, просто задав нужные значения в Environment, что можно сделать в bash на строке, которая запускает вашу тестовую программу, или с помощью команды bash "Export".