问题标签 [ns-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何在 NS-2 中更改数据包的 tcp 标头中的标志?
我正在尝试更改 NS-2 中特定数据包的 tcp 标头中的 ECN 标记,但找不到方法。有谁能帮我一把吗?非常感谢!
arp - 我的数据包里有什么协议?(Ns3)
我需要知道我的 Rx 收到的数据包是否是 ARP,以便为我的进程丢弃它们。
我查看了 ns3 的手册和教程,但我在它们中都没有发现任何关于哪个协议位于数据包内的信息。
ns3 中是否有任何功能或部分可以让我知道数据包中的协议?还是需要我查找标头的十六进制代码并将其与 ARP 代码进行比较?这应该是非常低效的的,因为我必须对我在模拟中收到的每个数据包都这样做。(而且由于我还没有完成,我不确定这是正确的方法,也不可能)。
谢谢阅读
simulation - 如何在 ns-3 模拟中测量 QoS 参数
我想在 wimax 网络中模拟 voip。我想测量的是 QoS 参数,例如 IPTD、IPDV 和 IPLR。我是 ns-3 模拟器的新手,我找不到任何关于 QoS 测量的信息。我已经在谷歌搜索过,似乎没有像 QoS 库这样的东西?如果我是正确的,如何在这个模拟工具中测量这些参数?如果没有,请有人给我一些建议,我可以在哪里找到这样的图书馆?
waf - ns-3 中的 waff wiki 函数没有获取参数
在ns-3模拟器文档中,它们提供了一个简单的 bash 函数来简化您的生活:
该函数应该执行位于 ns-3 根文件夹中但在您实际所在的文件夹中的./waf程序。
因此,在~/project$ waff --run first
waf 的情况下,将运行~/project文件夹中的第一个脚本。
但是,如果我尝试通过向脚本命令添加一个参数来运行任何模拟,就像~/project$ waff --run "first --PrintHelp"
它会引发错误一样
waf: error: no such option: --PrintHelp
.
它仅在我实际从根文件夹运行脚本而没有waff功能时才有效。
如何修改函数以使其将 $* 扩展为双逗号之间的参数?
c++ - 我在哪里可以找到在 NS2 库的 cpp 文件中生成的打印信息,我在其中添加了一些 cout() 函数来打印一些信息?
我在 linux 中使用 ns2 做一些网络实验。我在 ns 库的一些 cpp 文件中添加了一些打印行(通过函数 cout())。但是当我执行 TCL 脚本时,我在屏幕上看不到打印的信息。那么在哪里可以找到 cpp 文件中生成的打印信息呢?
c++ - 传播损失模型无法正常工作
我一直在 NS-3 中尝试使用 wifi ad-hoc 网络,目前正在尝试证明两个节点所在的距离越远,连接就越差。运行 WAF 时没有编译或运行时错误。
问题:
虽然我尝试过使用默认构造函数(据说它设置了 的传播损失模型ns3::LogDistancePropagationLossModel
),但当距离改变时,对节点之间的传输带宽以及网络抖动或延迟都没有影响。然后我尝试手动设置传播损失,当距离设置为大于 1.0 时导致没有连接。我对这种行为感到很困惑。我觉得我的代码中遗漏了一些应该传递给 ns-3 但似乎找不到的值。我引用了示例代码但无济于事(http://www.nsnam.org/doxygen/wifi-example-sim_8cc_source.html)。
我在 udp 模式下使用 iperf 来测量连接统计信息。我有两个正确隔离的 linux 容器,可以通过 WAF 脚本通过 ns-3 进行通信。
资源:
编辑: 只是想更新情况。通过禁用碎片并且不尝试覆盖默认的传播损失模型,我能够注意到连接随距离的变化。作为参考,Ofdm 速率 54Mbps 的连接下降距离为 27-30 米,Ofdm 速率 24Mbps 的距离为 55-60m。
这仍然让我指出,当我试图“覆盖”或在 sim 上添加传播损失模型时,我会在 1m 的距离之外失去连接。我尝试使用 Friis、默认的 Log Distance 和 Kun2600 进行覆盖,并且都具有相同的效果。工作代码如下。
谢谢,迈克
c++ - ns-3 中的 Isis2 和桥接抽头
所以我需要在ns-3中模拟Isis2。(我还要稍微修改 Isis2,用一些 C/C++ 代码包装它,因为我至少需要一个准实时的关键任务行为)
由于我还远未实现任何这些,因此知道这是否是一种合适的行为方式会很有趣。我需要在零星的 wifi (ad hoc) 行为期间专门监控共识的性能。
为 Isis2 的每个实例虚拟化一台机器然后使用 tap bridge( 模型并分析 ns-3 通道中的流量是否有意义?(我还要记录每个实例上的事件;将各种数据组合成一个统一展示)
c++ - 在 NS-3 (C++) 中创建对象数组时出错
在一个 NS-3.cc
文件中,我试图创建一个UdpEchoClientHelper
类的实例化数组,只需执行以下操作:
当我尝试构建时,我收到错误消息:
我在数组声明中做错了吗?
ns-3 - NS3/DCE 切换内核工作流程
我目前正在使用 ns3 模拟器和 DCE 框架在模拟器环境中运行本机应用程序。到目前为止,我已经开发了模拟并使用 DCE 加载了我当前的 linux 内核,但现在我打算改变我的工作流程。
对于在给定拓扑中模拟流量的每个脚本,我希望能够将不同的 linux 内核加载到模拟中,因为 TCP 从一个版本到另一个版本发生了很大变化。
例如,有一个名为 Simulation.cc 的简单流量交换模拟和一组内核版本(3.0-3.8),例如,我想以最简单的方式为每个内核运行模拟:
./simulation ->(使用内核 3.0)并测量我想要的任何东西。
./simulation ->(使用内核 3.1)并测量..
等等。
到目前为止,我唯一能想到的就是将所有不同的内核版本下载到我的计算机上,然后首先运行模拟,重新启动并更改内核,然后再次进行模拟,等等。
我想用虚拟机来做,但我真的需要一些轻量级的东西,除了 VMware 和 VirtualBox,我不知道哪个可能是最轻量级的选择,因为这些模拟对 cpu 构成了很大的负载。
我也想知道,我不知道它是否存在任何内核扩展或允许您即时切换内核的东西(我猜不是)。
先感谢您。
c++ - 如何为ns3中的类继承SimpleRefCount子类(网络模拟器3)
在网络模拟器 3 中,我想创建一个 Ptr< RoutingTable> 对象。但是,编译器会这样返回:
我已经搜索了 ns3 的 doxygen,现在我明白我应该继承 SimpleRefCount,它为类提供 Ref 和 Unref 方法。为了帮助我,我查看了继承自 SimpleRefCount<OutputStreamWrapper> 的类 OutputStreamWrapper。我对泛型类型有一些了解。但是,我一辈子都看不到实际继承发生在哪里。我找不到 OutputStreamWrapper 与其 SimpleRefCount 父级之间的链接。
您的帮助将不胜感激。