我是 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响应者。我只需要一个非常简单的仿真示例来证明它可以工作,因此任何其他建议或示例脚本都会很棒!
谢谢