如何在 ns3 的 first.cc 中添加更多节点?

How can i adding more nodes in first.cc in ns3?

我刚了解 first.cc,我想将 first.cc 中的节点数从 2 更改为 3 或 4 5,但仅更改 nodes.Create(2) ==> nodes.Create(3) 导致我出现这样的错误

断言 failed.cond="c.GetN () ==2" , +0.00000000s -1 file=../src/point-to-point/helper/point-to-point-helper.cc, line=224 在没有活动异常的情况下终止调用

所以我必须在它们之间添加一些联系,否则?任何帮助或建议将不胜感激!

我想首先鼓励您使用 gdb(或 lldb)来调试程序。如果这样做,您会发现 this line in first.cc 导致错误:

devices = pointToPoint.Install (nodes);

为什么会这样?那么,如果我们转到 the definition of the function being called,我们会发现:

NetDeviceContainer 
PointToPointHelper::Install (NodeContainer c)
{
    NS_ASSERT (c.GetN () == 2);              // line 224
    return Install (c.Get (0), c.Get (1));
}

看这段代码,很明显 PointToPointHelper::Install(NodeContainer) 强加了 NodeContainer 只能包含两个节点的约束。这解释了您遇到的错误是如何发生的。

但是为什么呢?

这是一个(不错的)设计选择。 PointToPointChannel 只能安装在恰好两个 PointToPointNetDevice 之间,不能多也不能少。因此,实现强加了 NodeContainer 只能包含两个节点的约束。