1

所以我需要在ns-3中模拟Isis2。(我还要稍微修改 Isis2,用一些 C/C++ 代码包装它,因为我至少需要一个准实时的关键任务行为)

由于我还远未实现任何这些,因此知道这是否是一种合适的行为方式会很有趣。我需要在零星的 wifi (ad hoc) 行为期间专门监控共识的性能。

为 Isis2 的每个实例虚拟化一台机器然后使用 tap bridge( 模型并分析 ns-3 通道中的流量是否有意义?(我还要记录每个实例上的事件;将各种数据组合成一个统一展示)

4

1 回答 1

1

您需要从构建 Isis2 应用程序开始,这必须使用 C/CLI 或 C++/CLI 完成。C++/CLI 会更容易,因为与 Isis2 类型系统的匹配更接近。但是当我输入这些文字时,我试图记住 Mono 是否真的支持 C++/CLI。如果没有用于 C++/CLI 的 Mono 编译器,您可能会被迫使用 C# 或 IronPython。基本上,您必须使用编译器将支持的内容。

您将在单声道平台上构建此库和库,并对其进行测试,您可以在任何 Linux 系统上执行此操作。一旦你让它工作,这就是你将在 NS/3 上试验的东西。请注意,如果您在 Windows 上工作,您将能够使用 C++/CLI(当然),然后可以为 NS3 创建一个 Windows VM。所以这意味着在 Windows 上工作,但不需要学习 C#。

这是因为 Isis2 是一个用于组通信、多播、文件复制和共享、DHT 等的库,并且要访问您需要应用程序来“驱动”它的任何特定功能。如果您遵循视频教程和用户手册中的建议,我不会预料到性能问题;即使对于实时使用,系统的行为也可能足够快且足够稳定。

然后是的,我会使用带有 Mono 所需二进制文件的虚拟机(Mono 是从 DLL 加载的,因此它们需要在正确的虚拟文件系统位置可用)和您的 Isis2 测试程序并在 NS3 中运行它。我没有尝试过,但看不出有任何原因它不起作用。

请记住,超时和重新传输的默认计时器设置非常慢,并且针对在数据中心内的 Amazon AWS 上运行进行了调整。因此,一旦您完成了这项工作,但在模拟您的 wifi 设置之前,您可能想要尝试调整系统以在该设置中更具响应性。我认为 ISIS_DEFAULTTIMEOUT 可能对你来说太长了,而 RTDELAY 设置对你来说也可能太长了。Amazon AWS 是一个特殊的环境,使 Isis2 在 AWS 中稳定的原因可能在具有不同目标的 Wifi 设置中并不理想......但是所有这些参数都可以通过在 Environment 中设置所需的值来调整,这可以完成在启动测试程序的行上的 bash 中,或使用 bash“导出”命令。

于 2015-02-25T14:42:28.870 回答