在 OMNET++ 或 NS3 之间进行选择
Choosing between OMNET++ or NS3
我和我的朋友要开始一个项目。我们将模拟服务器和客户端之间的基本通信。我们有一个要实现的伪代码。使用这种通信,我们将尝试以不同的方式检测通信中的故障。我们都是这两种软件的新手,所以想就我们应该使用哪种软件征求一些建议。任何能引导我们走向正确方向的利弊都是好的。
一个简单的TCP/IP协议就可以了。 Python、C#、Java、C 或 C++ 会很好。没有具体要求,因为我们只是打算使用一些简单的算法来尝试检测服务器或客户端之间的通信是否有故障(检测它们之间的错误消息)
简而言之,OMNeT++ 和 NS-3 都是离散事件模拟器,可能是您的不错选择,具体取决于您的具体需求。
NS-3 是一个网络模拟器,它使用 C++ 和(可选)Python 来模拟网络协议和(例如)直接从 Linux 内核和其他应用程序中获取的真实实现领域。优点是它对扁平数据包的准确表示、良好的仿真和套接字支持、支持使用 Wireshark 等其他工具进行分析的 PCAP 输出以及良好的社区支持。弱点(与其他相比)可能是可视化,这是它的祖先 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 would be the one of choice for your case. Here's a list of models included in INET. Community support is also quite good as you can see here on Whosebug or in the OMNeT Google Group。
根据您的陈述("detecting faulty communication between client and server"),我假设您对应用层的通信故障感兴趣,而不是IP/TCP 层的通信故障?两种模拟器都提供 TCP/IP 的模型,但如果您对以太网或 WLAN 的详细模拟感兴趣,OMNeT++ 可能是一个更好的开始。如果你想在 VM 中使用一些现有的自定义应用程序 运行 并模拟两者之间的通信,NS-3 可能是更好的选择。如果你想排除较低层并简单地尝试实现实体之间的基本消息交换,我可能也更喜欢 OMNeT++。
我和我的朋友要开始一个项目。我们将模拟服务器和客户端之间的基本通信。我们有一个要实现的伪代码。使用这种通信,我们将尝试以不同的方式检测通信中的故障。我们都是这两种软件的新手,所以想就我们应该使用哪种软件征求一些建议。任何能引导我们走向正确方向的利弊都是好的。
一个简单的TCP/IP协议就可以了。 Python、C#、Java、C 或 C++ 会很好。没有具体要求,因为我们只是打算使用一些简单的算法来尝试检测服务器或客户端之间的通信是否有故障(检测它们之间的错误消息)
简而言之,OMNeT++ 和 NS-3 都是离散事件模拟器,可能是您的不错选择,具体取决于您的具体需求。
NS-3 是一个网络模拟器,它使用 C++ 和(可选)Python 来模拟网络协议和(例如)直接从 Linux 内核和其他应用程序中获取的真实实现领域。优点是它对扁平数据包的准确表示、良好的仿真和套接字支持、支持使用 Wireshark 等其他工具进行分析的 PCAP 输出以及良好的社区支持。弱点(与其他相比)可能是可视化,这是它的祖先 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 would be the one of choice for your case. Here's a list of models included in INET. Community support is also quite good as you can see here on Whosebug or in the OMNeT Google Group。
根据您的陈述("detecting faulty communication between client and server"),我假设您对应用层的通信故障感兴趣,而不是IP/TCP 层的通信故障?两种模拟器都提供 TCP/IP 的模型,但如果您对以太网或 WLAN 的详细模拟感兴趣,OMNeT++ 可能是一个更好的开始。如果你想在 VM 中使用一些现有的自定义应用程序 运行 并模拟两者之间的通信,NS-3 可能是更好的选择。如果你想排除较低层并简单地尝试实现实体之间的基本消息交换,我可能也更喜欢 OMNeT++。