【问题标题】:Choosing between OMNET++ or NS3在 OMNET++ 或 NS3 之间进行选择
【发布时间】:2017-04-05 16:47:26
【问题描述】:

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

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

【问题讨论】:

  • 一些额外的信息将帮助您指出任一模拟器的方向。您对客户端/服务器的协议栈(可能是 TCP/IP)的模拟感兴趣吗?您的项目场景的应用有什么具体要求吗?编程语言或系统偏好?
  • @MichaelKirsche 刚刚添加了一些文字来回复您的问题
  • google.de/… 这将有助于作为一个很好的起点。我是 OMNeT++ 用户(因此可能有点偏颇)。但它有一个很棒的用户手册和很好的初学者教程。如果可用性是您最关心的问题,那就去吧。

标签: omnet++ ns-3


【解决方案1】:

简而言之,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 将是您的案例的选择之一。这是a list of models included in INET。社区支持也非常好,您可以在 Stackoverflow 或 the OMNeT Google Group 中看到。

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

【讨论】:

  • ns3 有全面的文档,网上有很多教程,另一方面,我找不到很多教程或 omnet++ 的好课程,你知道吗?
  • 根据我的经验,最好从 Tic Toc 示例(17 个级别)开始,但首先阅读手册以了解模拟如何开始的概念。让我试着帮助你,首先模拟阅读omnet.ini并搜索“网络”的名称。之后,它加载所有 NED 文件以搜索定义“网络”,然后开始加载网络、复合模块和所有子模块......在加载过程中,它按照“自上而下”的方法为所有模块调用 initialize() 方法。
猜你喜欢
  • 2014-08-30
  • 2013-10-07
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
相关资源
最近更新 更多