0

我是 NS2(甚至是 Linux)的完全初学者。我的任务是演示一个非常基本的仿真示例,以表明可以使用 ns2 进行仿真。在过去的几周里,我一直试图让任何简单的仿真脚本都能正常工作,但都失败了。我敢肯定,专家只需几分钟就可以编写几行代码来执行此操作。我读过的对类似问题的大多数解释对于我对 NS2 或 Linux 的理解来说都太高级了。如果有人可以在学生水平上帮助我,将
不胜感激。

我使用的是 Linux 机器,到目前为止我已经下载并安装了 allinone ns-2.34。我还搜索了一些简单的示例仿真脚本。

例如,我发现了这个:

# Create simulator set ns [new Simulator] $ns use-scheduler RealTime

# Emulator address set me [exec hostname]

# Packet input set bpf0 [new Network/Pcap/Live] $bpf0 set promisc_ true set nd0 [$bpf0 open readonly fxp0] set filt "(not ip host $me)" $bpf0 filter $filt

# Packet output set ipnet [new Network/IP] $ipnet open writeonly

# Input agent set pfa [new Agent/Tap] $pfa network $bpf0

# Output agent set ipa [new Agent/Tap] $ipa network $ipnet

# ICMP ECHO agent set echoagent [new Agent/PingResponder]

set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] $ns simplex-link $n0 $n2 100Mb 1000ms DropTail $ns simplex-link $n2 $n1 100Mb 1000ms DropTail $ns attach-agent $n0 $pfa $ns attach-agent $n1 $ipa $ns attach-agent $n2 $echoagent $ns simplex-connect $pfa $echoagent $ns simplex-connect $ipa $echoagent

# Wait for ping to come in... $ns run

当我尝试运行此脚本时,我收到一条消息:

执行“Network/Pcap/Live create o_11”时从“catch”$className create $o $args“msg”中调用的无效命令名称“Network/Pcap/Live”(过程“new”第3行)在“new Network”中调用/Pcap/Live”从“set bpf0 [new Network/Pcap/Live]”中调用(文件“./vince/emu1.tcl”第 12 行)

谁能帮我解决这个问题?由于我还不是 ns2 专家,所以我不太清楚该代码是如何工作的。我相信这是一个ping响应者。我只需要一个非常简单的仿真示例来证明它可以工作,因此任何其他建议或示例脚本都会很棒!

谢谢

4

1 回答 1

2

您需要进入ns目录并编译模拟器。

make nse

您可以在 emulate 目录中看到该文件README_TCP_EMULATE

如果make nse不起作用:

  1. apt-get 安装 libpcap-dev
  2. 添加到 make 文件“-lpcap”中:emulate/net-pcap.o -lpcap\
  3. 。/配置
  4. 使nse

当您运行模拟器时,您需要从根目录运行:./nse

于 2012-10-11T10:06:21.270 回答