所以我需要在 ns-3 中模拟 Isis2 。 (我还要稍微修改Isis2,用一些C / C ++代码包装它,因为我至少需要一个准实时任务关键行为)
由于我没有实施任何一项,所以知道这是否是一种合适的行为方式会很有趣。我需要在零星的wifi(ad hoc)行为中专门监控共识的性能。
为Isis2的每个实例虚拟化机器是否有意义,然后使用抽头桥(模型并分析ns-3通道中的流量? (我还要记录每个实例上的事件;将各种数据组合成统一的演示文稿)
答案 0 :(得分: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设置对你来说也可能太长了。亚马逊AWS是一个特殊的环境,使得Isis2在AWS中稳定的原因在目标不同的Wifi设置中可能并不理想......但所有这些参数都可以通过在环境中设置所需的值来调整,这可以完成在bash中启动测试程序的行,或使用bash“导出”命令。