ns2 帮助 - 无线局域网 (AD HOC)

问题描述 投票:0回答:1

无法运行,现在出现错误

节点超出范围 --- Classfier::no-slot{} 默认处理程序 (tcl/lib/ns-lib.tcl) --- _o186:插槽 4294967295 没有目标 _o186 类型:分类器/哈希/目标 内容转储: 分类器_o186 0 偏移量 0班 1073741823 口罩 1个插槽 插槽 58:_o530(分类器/端口) -1 默认值 ---------- 完成标准无槽{}默认处理程序 ----------

set ns [new Simulator]

set tr [ open "out.tr" w]
$ns trace-all $tr

set ftr [open "out.nam" w]
$ns namtrace-all $ftr

# set n0 [$ns node]
# set n1 [$ns node]

# Create 59 more wireless nodes and add them to the simulation
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]
set n8 [$ns node]
set n9 [$ns node]
set n10 [$ns node]
set n11 [$ns node]
set n12 [$ns node]
set n13 [$ns node]
set n14 [$ns node]
set n15 [$ns node]
set n16 [$ns node]
set n17 [$ns node]
set n18 [$ns node]
set n19 [$ns node]
set n20 [$ns node]
set n21 [$ns node]
set n22 [$ns node]
set n23 [$ns node]
set n24 [$ns node]
set n25 [$ns node]
set n26 [$ns node]
set n27 [$ns node]
set n28 [$ns node]
set n29 [$ns node]
set n30 [$ns node]
set n31 [$ns node]
set n32 [$ns node]
set n33 [$ns node]
set n34 [$ns node]
set n35 [$ns node]
set n36 [$ns node]
set n37 [$ns node]
set n38 [$ns node]
set n39 [$ns node]
set n40 [$ns node]
set n41 [$ns node]
set n42 [$ns node]
set n43 [$ns node]
set n44 [$ns node]
set n45 [$ns node]
set n46 [$ns node]
set n47 [$ns node]
set n48 [$ns node]
set n49 [$ns node]
set n50 [$ns node]
set n51 [$ns node]
set n52 [$ns node]
set n53 [$ns node]
set n54 [$ns node]
set n55 [$ns node]
set n56 [$ns node]
set n57 [$ns node]
set n58 [$ns node]
set n59 [$ns node]`


#$ns duplex-link $n0 $n1 2mb 4ms DropTail
$ns duplex-link $n0 $n29 5Mb 2ms DropTail
$ns duplex-link $n1 $n29 5Mb 2ms DropTail
$ns duplex-link $n2 $n29 5Mb 2ms DropTail  
$ns duplex-link $n3 $n29 5Mb 2ms DropTail
$ns duplex-link $n4 $n29 5Mb 2ms DropTail
$ns duplex-link $n5 $n29 5Mb 10ms DropTail
$ns duplex-link $n6 $n29 5Mb 10ms DropTail
$ns duplex-link $n7 $n29 5Mb 10ms DropTail
$ns duplex-link $n8 $n29 5Mb 10ms DropTail
$ns duplex-link $n9 $n29 5Mb 10ms DropTail
$ns duplex-link $n10 $n29 5Mb 10ms DropTail
$ns duplex-link $n11 $n29 10Mb 5ms DropTail
$ns duplex-link $n12 $n29 10Mb 5ms DropTail
$ns duplex-link $n13 $n29 10Mb 5ms DropTail

set tcp1 [new Agent/TCP]

set sink [new Agent/TCPSink]

$ns attach-agent $n0 $tcp1
$ns attach-agent $n1 $sink
$ns attach-agent $n2 $tcp1
$ns attach-agent $n3 $sink
$ns attach-agent $n4 $tcp1
$ns attach-agent $n5 $sink
$ns attach-agent $n6 $tcp1
$ns attach-agent $n7 $sink
$ns attach-agent $n8 $tcp1
$ns attach-agent $n9 $sink
$ns attach-agent $n10 $tcp1
$ns attach-agent $n11 $sink
$ns attach-agent $n12 $tcp1
$ns attach-agent $n13 $sink
$ns attach-agent $n14 $tcp1
$ns attach-agent $n15 $sink
$ns attach-agent $n16 $tcp1
$ns attach-agent $n17 $sink
$ns attach-agent $n18 $tcp1
$ns attach-agent $n19 $sink
$ns attach-agent $n20 $tcp1
$ns attach-agent $n21 $sink
$ns attach-agent $n22 $tcp1
$ns attach-agent $n23 $sink
$ns attach-agent $n24 $tcp1
$ns attach-agent $n25 $sink
$ns attach-agent $n26 $tcp1
$ns attach-agent $n27 $sink
$ns attach-agent $n28 $tcp1
$ns attach-agent $n29 $sink
$ns attach-agent $n30 $tcp1
$ns attach-agent $n31 $sink
$ns attach-agent $n32 $tcp1
$ns attach-agent $n33 $sink
$ns attach-agent $n34 $tcp1
$ns attach-agent $n35 $sink
$ns attach-agent $n36 $tcp1
$ns attach-agent $n37 $sink
$ns attach-agent $n38 $tcp1
$ns attach-agent $n39 $sink
$ns attach-agent $n40 $tcp1
$ns attach-agent $n41 $sink
$ns attach-agent $n42 $tcp1
$ns attach-agent $n43 $sink
$ns attach-agent $n44 $tcp1
$ns attach-agent $n45 $sink
$ns attach-agent $n46 $tcp1
$ns attach-agent $n47 $sink
$ns attach-agent $n48 $tcp1
$ns attach-agent $n49 $sink
$ns attach-agent $n50 $tcp1
$ns attach-agent $n51 $sink
$ns attach-agent $n52 $tcp1
$ns attach-agent $n53 $sink
$ns attach-agent $n54 $tcp1
$ns attach-agent $n55 $sink
$ns attach-agent $n56 $tcp1
$ns attach-agent $n57 $sink
$ns attach-agent $n58 $tcp1
$ns attach-agent $n59 $sink


$ns connect $tcp1 $sink

set ftp [new Application/FTP]

$ftp attach-agent $tcp1

proc finish { } {
    global ns tr ftr
    $ns flush-trace
    close $tr
    close $ftr
    exec nam out.nam &
    exit
    }

$ns at .1 "$ftp start"
$ns at 2.0 "$ftp stop"

$ns at 2.1 "finish"

$ns run
ubuntu ns2
1个回答
0
投票

似乎您的复杂设置过于简单而无法运行,因此为基本选项添加了节点配置。 (参考默认

simple-wireless.tcl

节点位置已添加到“创建节点对象”部分,以防止所有节点出现在 nam 中的一个黑点中。
NAM 根本没有工作,没有“在 nam 中定义初始节点位置”部分。
所以节点定义从“n0 n1 n3 ...”更改为“node_(0) node_(1) $node_(3) ...”以便能够添加
$ns initial_node_pos $node_($i) 0

添加的“移动文件”mobility59ns 没有多少移动,只是让 nam 动画看起来更好。

编辑后的文件:

# ------------------------------------------------------------------------
#   Define options
# ------------------------------------------------------------------------
set val(chan)           Channel/WirelessChannel    ;# channel type
set val(prop)           Propagation/TwoRayGround   ;# radio-propagation model
set val(netif)          Phy/WirelessPhy            ;# network interface type
set val(mac)            Mac/802_11                 ;# MAC type
set val(ifq)            Queue/DropTail/PriQueue    ;# interface queue type
set val(ll)             LL                         ;# link layer type
set val(ant)            Antenna/OmniAntenna        ;# antenna model
set val(ifqlen)         50                         ;# max packet in ifq
set val(nn)             60                          ;# number of mobilenodes
set val(rp)             DSDV                       ;# routing protocol
# ------------------------------------------------------
set val(x)      1000
set val(y)      1000
#----------------------------------------------------------

set ns [new Simulator]

set tr [open out.tr w]
$ns trace-all $tr

set ftr [open "out.nam" w]
$ns namtrace-all-wireless $ftr $val(x) $val(y)

# ---------------------------------------------------------------
# set up topography object
set topo       [new Topography]
$topo load_flatgrid 500 500

create-god [expr $val(nn) + 60]
# -----------------------------------------------------------
# configure node
        $ns node-config -adhocRouting $val(rp) \
             -llType $val(ll) \
             -macType $val(mac) \
             -ifqType $val(ifq) \
             -ifqLen $val(ifqlen) \
             -antType $val(ant) \
             -propType $val(prop) \
             -phyType $val(netif) \
             -channelType $val(chan) \
             -topoInstance $topo \
             -agentTrace ON \
             -routerTrace ON \
             -macTrace OFF \
             -movementTrace OFF
# -------------------------------------------------
## Creating node objects..         
######## and node positions


set node_(0) [$ns node]
$node_(0) set X_ 10
$node_(0) set Y_ 248
$node_(0) set Z_ 0.0
$ns initial_node_pos $node_(0) 35
set node_(1) [$ns node]
$node_(1) set X_ 30
$node_(1) set Y_ 270
$node_(1) set Z_ 0.0
$ns initial_node_pos $node_(1) 35
set node_(2) [$ns node]
$node_(2) set X_ 50
$node_(2) set Y_ 300
$node_(2) set Z_ 0.0
$ns initial_node_pos $node_(2) 35
set node_(3) [$ns node]
$node_(3) set X_ 80
$node_(3) set Y_ 330
$node_(3) set Z_ 0.0
$ns initial_node_pos $node_(3) 35
set node_(4) [$ns node]
$node_(4) set X_ 110
$node_(4) set Y_ 380
$node_(4) set Z_ 0.0
$ns initial_node_pos $node_(4) 35
set node_(5) [$ns node]
$node_(5) set X_ 140
$node_(5) set Y_ 410
$node_(5) set Z_ 0.0
$ns initial_node_pos $node_(5) 35
set node_(6) [$ns node]
$node_(6) set X_ 180
$node_(6) set Y_ 430
$node_(6) set Z_ 0.0
$ns initial_node_pos $node_(6) 35
set node_(7) [$ns node]
$node_(7) set X_ 210
$node_(7) set Y_ 470
$node_(7) set Z_ 0.0
$ns initial_node_pos $node_(7) 35
set node_(8) [$ns node]
$node_(8) set X_ 500
$node_(8) set Y_ 495
$node_(8) set Z_ 0.0
$ns initial_node_pos $node_(8) 35
set node_(9) [$ns node]
$node_(9) set X_ 260
$node_(9) set Y_ 520
$node_(9) set Z_ 0.0
$ns initial_node_pos $node_(9) 35
set node_(10) [$ns node]
$node_(10) set X_ 300
$node_(10) set Y_ 550
$node_(10) set Z_ 0.0
$ns initial_node_pos $node_(10) 35
set node_(11) [$ns node]
$node_(11) set X_ 855
$node_(11) set Y_ 580
$node_(11) set Z_ 0.0
$ns initial_node_pos $node_(11) 35
set node_(12) [$ns node]
$node_(12) set X_ 904
$node_(12) set Y_ 610
$node_(12) set Z_ 0.0
$ns initial_node_pos $node_(12) 35
set node_(13) [$ns node]
$node_(13) set X_ 940
$node_(13) set Y_ 640
$node_(13) set Z_ 0.0
$ns initial_node_pos $node_(13) 35
set node_(14) [$ns node]
$node_(14) set X_ 980
$node_(14) set Y_ 670
$node_(14) set Z_ 0.0
$ns initial_node_pos $node_(14) 35
set node_(15) [$ns node]
$node_(15) set X_ 999
$node_(15) set Y_ 700
$node_(15) set Z_ 0.0
$ns initial_node_pos $node_(15) 35
set node_(16) [$ns node]
$node_(16) set X_ 800
$node_(16) set Y_ 730
$node_(16) set Z_ 0.0
$ns initial_node_pos $node_(16) 35
set node_(17) [$ns node]
$node_(17) set X_ 770
$node_(17) set Y_ 780
$node_(17) set Z_ 0.0
$ns initial_node_pos $node_(17) 35
set node_(18) [$ns node]
$node_(18) set X_ 730
$node_(18) set Y_ 810
$node_(18) set Z_ 0.0
$ns initial_node_pos $node_(18) 35
set node_(19) [$ns node]
$node_(19) set X_ 700
$node_(19) set Y_ 840
$node_(19) set Z_ 0.0
$ns initial_node_pos $node_(19) 35
set node_(20) [$ns node]
$node_(20) set X_ 0.0
$node_(20) set Y_ 0.0
$node_(20) set Z_ 0.0
$ns initial_node_pos $node_(20) 35
set node_(21) [$ns node]
$node_(21) set X_ 40
$node_(21) set Y_ 30
$node_(21) set Z_ 0.0
$ns initial_node_pos $node_(21) 35
set node_(22) [$ns node]
$node_(22) set X_ 0.0
$node_(22) set Y_ 70
$node_(22) set Z_ 0.0
$ns initial_node_pos $node_(22) 35
set node_(23) [$ns node]
$node_(23) set X_ 80
$node_(23) set Y_ 100
$node_(23) set Z_ 0.0
$ns initial_node_pos $node_(23) 35
set node_(24) [$ns node]
$node_(24) set X_ 120
$node_(24) set Y_ 130
$node_(24) set Z_ 0.0
$ns initial_node_pos $node_(24) 35
set node_(25) [$ns node]
$node_(25) set X_ 170
$node_(25) set Y_ 170
$node_(25) set Z_ 0.0
$ns initial_node_pos $node_(25) 35
set node_(26) [$ns node]
$node_(26) set X_ 200
$node_(26) set Y_ 200
$node_(26) set Z_ 0.0
$ns initial_node_pos $node_(26) 35
set node_(27) [$ns node]
$node_(27) set X_ 230
$node_(27) set Y_ 230
$node_(27) set Z_ 0.0
$ns initial_node_pos $node_(27) 35
set node_(28) [$ns node]
$node_(28) set X_ 726
$node_(28) set Y_ 280
$node_(28) set Z_ 0.0
$ns initial_node_pos $node_(28) 35
set node_(29) [$ns node]
$node_(29) set X_ 904
$node_(29) set Y_ 310
$node_(29) set Z_ 0.0
$ns initial_node_pos $node_(29) 35
set node_(30) [$ns node]
$node_(30) set X_ 260
$node_(30) set Y_ 360
$node_(30) set Z_ 0.0
$ns initial_node_pos $node_(30) 35
set node_(31) [$ns node]
$node_(31) set X_ 300
$node_(31) set Y_ 0.0
$node_(31) set Z_ 0.0
$ns initial_node_pos $node_(31) 35
set node_(32) [$ns node]
$node_(32) set X_ 330
$node_(32) set Y_ 50
$node_(32) set Z_ 0.0
$ns initial_node_pos $node_(32) 35

set node_(33) [$ns node]
$node_(33) set X_ 808.0
$node_(33) set Y_ 578.0
$node_(33) set Z_ 0.0
$ns initial_node_pos $node_(33) 35
set node_(34) [$ns node]
$node_(34) set X_ 0.0
$node_(34) set Y_ 550
$node_(34) set Z_ 0.0
$ns initial_node_pos $node_(34) 35

set node_(35) [$ns node]
$node_(35) set X_ 10
$node_(35) set Y_ 510
$node_(35) set Z_ 0.0
$ns initial_node_pos $node_(35) 35

set node_(36) [$ns node]
$node_(36) set X_ 50
$node_(36) set Y_ 480
$node_(36) set Z_ 0.0
$ns initial_node_pos $node_(36) 35
set node_(37) [$ns node]
$node_(37) set X_ 90
$node_(37) set Y_ 450
$node_(37) set Z_ 0.0
$ns initial_node_pos $node_(37) 35

set node_(38) [$ns node]
$node_(38) set X_ 120
$node_(38) set Y_ 410
$node_(38) set Z_ 0.0
$ns initial_node_pos $node_(38) 35
set node_(39) [$ns node]
$node_(39) set X_ 160
$node_(39) set Y_ 380
$node_(39) set Z_ 0.0
$ns initial_node_pos $node_(39) 35
set node_(40) [$ns node]
$node_(40) set X_ 200
$node_(40) set Y_ 330
$node_(40) set Z_ 0.0
$ns initial_node_pos $node_(40) 35
set node_(41) [$ns node]
$node_(41) set X_ 230
$node_(41) set Y_ 300
$node_(41) set Z_ 0.0
$ns initial_node_pos $node_(41) 35

set node_(42) [$ns node]
$node_(42) set X_ 260
$node_(42) set Y_ 270
$node_(42) set Z_ 0.0
$ns initial_node_pos $node_(42) 35
set node_(43) [$ns node]
$node_(43) set X_ 290
$node_(43) set Y_ 496
$node_(43) set Z_ 0.0
$ns initial_node_pos $node_(43) 35
set node_(44) [$ns node]
$node_(44) set X_ 290
$node_(44) set Y_ 450
$node_(44) set Z_ 0.0
$ns initial_node_pos $node_(44) 35
set node_(45) [$ns node]
$node_(45) set X_ 310
$node_(45) set Y_ 430
$node_(45) set Z_ 0.0
$ns initial_node_pos $node_(45) 35
set node_(46) [$ns node]
$node_(46) set X_ 340
$node_(46) set Y_ 410
$node_(46) set Z_ 0.0
$ns initial_node_pos $node_(46) 35
set node_(47) [$ns node]
$node_(47) set X_ 370
$node_(47) set Y_ 380
$node_(47) set Z_ 0.0
$ns initial_node_pos $node_(47) 35
set node_(48) [$ns node]
$node_(48) set X_ 400
$node_(48) set Y_ 350
$node_(48) set Z_ 0.0
$ns initial_node_pos $node_(48) 35
set node_(49) [$ns node]
$node_(49) set X_ 440
$node_(49) set Y_ 320
$node_(49) set Z_ 0.0
$ns initial_node_pos $node_(49) 35
set node_(50) [$ns node]
$node_(50) set X_ 480
$node_(50) set Y_ 290
$node_(50) set Z_ 0.0
$ns initial_node_pos $node_(50) 35
set node_(51) [$ns node]
$node_(51) set X_ 520
$node_(51) set Y_ 260
$node_(51) set Z_ 0.0
$ns initial_node_pos $node_(51) 35
set node_(52) [$ns node]
$node_(52) set X_ 560
$node_(52) set Y_ 230
$node_(52) set Z_ 0.0
$ns initial_node_pos $node_(52) 35
set node_(53) [$ns node]
$node_(53) set X_ 590
$node_(53) set Y_ 200
$node_(53) set Z_ 0.0
$ns initial_node_pos $node_(53) 35

set node_(54) [$ns node]
$node_(54) set X_ 620
$node_(54) set Y_ 439
$node_(54) set Z_ 0.0
$ns initial_node_pos $node_(54) 35
set node_(55) [$ns node]
$node_(55) set X_ 660
$node_(55) set Y_ 170
$node_(55) set Z_ 0.0
$ns initial_node_pos $node_(55) 35
set node_(56) [$ns node]
$node_(56) set X_ 690
$node_(56) set Y_ 140
$node_(56) set Z_ 0.0
$ns initial_node_pos $node_(56) 35
set node_(57) [$ns node]
$node_(57) set X_ 730
$node_(57) set Y_ 110
$node_(57) set Z_ 0.0
$ns initial_node_pos $node_(57) 35
set node_(58) [$ns node]
$node_(58) set X_ 770
$node_(58) set Y_ 80
$node_(58) set Z_ 0.0
$ns initial_node_pos $node_(58) 35
set node_(59) [$ns node]
$node_(59) set X_ 810
$node_(59) set Y_ 40
$node_(59) set Z_ 0.0
$ns initial_node_pos $node_(59) 35

# -------------------------------

#$ns duplex-link $n0 $n1 2mb 4ms DropTail
$ns duplex-link $node_(0) $node_(29) 5Mb 2ms DropTail
$ns duplex-link $node_(1) $node_(29) 5Mb 2ms DropTail
$ns duplex-link $node_(2) $node_(29) 5Mb 2ms DropTail  
$ns duplex-link $node_(3) $node_(29) 5Mb 2ms DropTail
$ns duplex-link $node_(4) $node_(29) 5Mb 2ms DropTail
$ns duplex-link $node_(5) $node_(29) 5Mb 10ms DropTail
$ns duplex-link $node_(6) $node_(29) 5Mb 10ms DropTail
$ns duplex-link $node_(7) $node_(29) 5Mb 10ms DropTail
$ns duplex-link $node_(8) $node_(29) 5Mb 10ms DropTail
$ns duplex-link $node_(9) $node_(29) 5Mb 10ms DropTail
$ns duplex-link $node_(10) $node_(29) 5Mb 10ms DropTail
$ns duplex-link $node_(11) $node_(29) 10Mb 5ms DropTail
$ns duplex-link $node_(12) $node_(29) 10Mb 5ms DropTail
$ns duplex-link $node_(13) $node_(29) 10Mb 5ms DropTail

set tcp1 [new Agent/TCP]

set sink [new Agent/TCPSink]

$ns attach-agent $node_(0) $tcp1
$ns attach-agent $node_(1) $sink
$ns attach-agent $node_(2) $tcp1
$ns attach-agent $node_(3) $sink
$ns attach-agent $node_(4) $tcp1
$ns attach-agent $node_(5) $sink
$ns attach-agent $node_(6) $tcp1
$ns attach-agent $node_(7) $sink
$ns attach-agent $node_(8) $tcp1
$ns attach-agent $node_(9) $sink
$ns attach-agent $node_(10) $tcp1
$ns attach-agent $node_(11) $sink
$ns attach-agent $node_(12) $tcp1
$ns attach-agent $node_(13) $sink
$ns attach-agent $node_(14) $tcp1
$ns attach-agent $node_(15) $sink
$ns attach-agent $node_(16) $tcp1
$ns attach-agent $node_(17) $sink
$ns attach-agent $node_(18) $tcp1
$ns attach-agent $node_(19) $sink
$ns attach-agent $node_(20) $tcp1
$ns attach-agent $node_(21) $sink
$ns attach-agent $node_(22) $tcp1
$ns attach-agent $node_(23) $sink
$ns attach-agent $node_(24) $tcp1
$ns attach-agent $node_(25) $sink
$ns attach-agent $node_(26) $tcp1
$ns attach-agent $node_(27) $sink
$ns attach-agent $node_(28) $tcp1
$ns attach-agent $node_(29) $sink
$ns attach-agent $node_(30) $tcp1
$ns attach-agent $node_(31) $sink
$ns attach-agent $node_(32) $tcp1
$ns attach-agent $node_(33) $sink
$ns attach-agent $node_(34) $tcp1
$ns attach-agent $node_(35) $sink
$ns attach-agent $node_(36) $tcp1
$ns attach-agent $node_(37) $sink
$ns attach-agent $node_(38) $tcp1
$ns attach-agent $node_(39) $sink
$ns attach-agent $node_(40) $tcp1
$ns attach-agent $node_(41) $sink
$ns attach-agent $node_(42) $tcp1
$ns attach-agent $node_(43) $sink
$ns attach-agent $node_(44) $tcp1
$ns attach-agent $node_(45) $sink
$ns attach-agent $node_(46) $tcp1
$ns attach-agent $node_(47) $sink
$ns attach-agent $node_(48) $tcp1
$ns attach-agent $node_(49) $sink
$ns attach-agent $node_(50) $tcp1
$ns attach-agent $node_(51) $sink
$ns attach-agent $node_(52) $tcp1
$ns attach-agent $node_(53) $sink
$ns attach-agent $node_(54) $tcp1
$ns attach-agent $node_(55) $sink
$ns attach-agent $node_(56) $tcp1
$ns attach-agent $node_(57) $sink
$ns attach-agent $node_(58) $tcp1
$ns attach-agent $node_(59) $sink

# ----------------------------------------
# Define initial node position in nam

for {set i 0} {$i < $val(nn)} {incr i} {
    # 20 defines the node size in nam, must adjust it according to your
    # scenario
    $ns initial_node_pos $node_($i) 0
}
# ----------------------------------------
source mobility59ns

$ns connect $tcp1 $sink

set ftp [new Application/FTP]

$ftp attach-agent $tcp1

proc finish { } {
    global ns tr ftr
    $ns flush-trace
    close $tr
    close $ftr
#    exec nam out.nam &
    exit
    }

$ns at .1 "$ftp start"
$ns at 2.0 "$ftp stop"

$ns at 2.1 "finish"

$ns run

链接,

mobility59ns
https://drive.google.com/drive/folders/1oW7DqCIbzOyqrgODWqQCz6cxBGTzHLes?usp=sharing

© www.soinside.com 2019 - 2024. All rights reserved.