在OMNET ++或NS3之间进行选择

时间:2017-04-04 12:47:25

标签: omnet++ ns-3

我和我的朋友将开始一个项目。我们将模拟服务器和客户端之间的基本通信。我们有一个伪代码,我们将要实现。使用此通信,我们将尝试以不同方式检测通信中的故障。我们都是这两个软件的新手,所以我们想就我们应该使用哪种软件提出一些建议。任何专业人士将我们引向正确方向的缺点会很好。

一个简单的TCP / IP协议就可以了。 Python,C#,Java,C或C ++会很好。没有具体要求,因为我们只会使用一些简单的算法来尝试检测服务器或客户端之间的通信是否有故障(检测它们之间的错误消息)

1 个答案:

答案 0 :(得分:11)

简而言之,OMNeT ++和NS-3都是离散事件模拟器,根据您的具体需求,可能是您的不错选择。

NS-3是一个网络模拟器,它使用C ++和(可选)Python来模拟网络协议,以及(例如)直接从Linux内核和其他应用程序区域中获取的实际实现。优点是它准确表示扁平数据包,良好的仿真和套接字支持,PCAP输出,可以使用Wireshark等其他工具进行分析,并提供良好的社区支持。弱点(与其他点相比)可能是可视化,它的祖先ns-2为being enhanced compared,但仍然或多或少是痕迹的动画。 有关支持的模型的概述,请执行a look at this website

OMNeT ++带有自己的IDE(基于Eclipse)和GUI(现在基于QT),用于执行模拟。一个不错的overview of the IDE is available online。 OMNeT ++使用C ++定义协议和应用程序的源代码以及它自己的NED语言,将这些实现组合成(子)模块和网络,然后模拟这些模块和网络。该模拟器具有非常好的可视化支持,严重超过NS-3。它有一个广泛的预定义模型库,就像NS-3一样。仿真模型通常分组在更大的框架中,the INET framework将是您的案例的选择之一。这是a list of models included in INET。社区支持也非常好,您可以在Stackoverflow或the OMNeT Google Group中看到。

从您的陈述(“检测客户端和服务器之间的错误通信”),我假设您对应用层而不是IP / TCP层上的通信故障感兴趣?两种模拟器都提供TCP / IP模型,但如果您对以太网或WLAN的详细模拟感兴趣,OMNeT ++可能是一个更好的开端。如果要使用在VM中运行的某些现有自定义应用程序并模拟两者之间的通信,NS-3可能是更好的选择。如果你想排除较低层并只是尝试在实体之间实现基本的消息交换,我可能也更喜欢OMNeT ++。