}
exit 0
#·ÂÕæ½áÊøÊ±µ÷ÓýáÊø½ø³Ì $ns at $val(stop) \
$ns at $val(stop) \
puts \
# run the simulation $ns run
Àý3
#ÓÐÏßÎÞÏßÍøÂç»ìºÏÄ£Äâ
#ÎÞÏß½Úµã²ÎÊý
set val(chan) Channel/WirelessChannel ;# channel type ÐŵÀÀàÐÍ£ºÎÞÏßÐŵÀ set val(prop) Propagation/TwoRayGround ;# radio-propagation model ÐŵÀÄ£ÐÍ£ºTwoRayGround
set val(netif) Phy/WirelessPhy ;# network interface type ÎÞÏßÎïÀí²ã set val(mac) Mac/802_11 ;# MAC type MAC²ãÐÒé 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(rp) DSDV ;#·ÓÉÐÒé set val(nn) 4 ;#½ÚµãÊýÄ¿ set val(x) 600 ; set val(y) 600 ; set val(stop) 10.0
# ½¨Á¢Ò»¸ösimulatorʵÀý set ns [new Simulator]
#É趨·Ö²ã·ÓɵØÖ·
$ns node-config -addressType hierarchical AddrParams set domain_num_ 2 lappend cluster_num 1 1
AddrParams set cluster_num_ $cluster_num
;# 2¸öÍøÂç ;# ÿ¸öÍøÂçÒ»¸ö×ÓÍø
;# time of simulation end
lappend eilastlevel 1 3 ;# 2¸ö×ÓÍøµÄ½ÚµãÊýĿΪ1ºÍ3 AddrParams set nodes_num_ $eilastlevel
puts \
#$ns use-newtrace
#ÉèÖÃtrace
set tracefd [open wired_wireless2.tr w] set namtrace [open wired_wireless2.nam w] $ns trace-all $tracefd
$ns namtrace-all-wireless $namtrace $val(x) $val(y)
#½¨Á¢topology¶ÔÏó
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
#´´½¨god
create-god $val(nn)
set sinkNode [$ns node 0.0.0] $sinkNode set X_ 500 $sinkNode set Y_ 300 $sinkNode set Z_ 0
$ns initial_node_pos $sinkNode 60
set chan_1_ [new $val(chan)]
#ÎÞÏß½ÚµãÅäÖÃ
$ns node-config -wiredRouting ON \\ -adhocRouting $val(rp) \\ -llType $val(ll) \\ -macType $val(mac) \\ -ifqType $val(ifq) \\ -ifqLen $val(ifqlen) \\ -antType $val(ant) \\ -propType $val(prop) \\ -phyType $val(netif) \\
-channel $chan_1_ \\
-topoInstance $topo \\ -agentTrace ON \\ -routerTrace ON \\ -macTrace ON \\
-movementTrace OFF #н¨BS½Úµã
set bs(0) [$ns node 1.0.0] $bs(0) random-motion 0 #½Úµã±êÇ©Óë³õʼλÖÃÉ趨 $bs(0) set X_ 200.0 $bs(0) set Y_ 300.0 $bs(0) set Z_ 0.0
$ns initial_node_pos $bs(0) 60
#¶¨Òå½Úµã¼äµÄÁ´Â·
$ns duplex-link $sinkNode $bs(0) 10Mb 1ms DropTail
$ns duplex-link-op $sinkNode $bs(0) orient left
#¶¨ÒåÁ´Â·µÄ¶ÓÁ㤶È
#$ns queue-limit $bs(0) $sinkNode 10
#¼àÊÓÁ´Â·µÄ¶ÓÁÐ
#$ns duplex-link-op $bs(0) $sinkNode queuePos 0.5
$ns node-config -wiredRouting OFF \\ -macType Mac/802_11
#н¨SS½Úµã
set ss(0) [$ns node 1.0.1]
$ss(0) base-station [AddrParams addr2id [$bs(0) node-addr]] $ss(0) set X_ 50.0 $ss(0) set Y_ 450.0 $ss(0) set Z_ 0.0
$ns initial_node_pos $ss(0) 60
set ss(1) [$ns node 1.0.2]
$ss(1) base-station [AddrParams addr2id [$bs(0) node-addr]] $ss(1) set X_ 50.0 $ss(1) set Y_ 150.0 $ss(1) set Z_ 0.0
$ns initial_node_pos $ss(1) 60
set udp0 [new Agent/UDP] $ns attach-agent $ss(0) $udp0
set null0 [new Agent/Null] $ns attach-agent $sinkNode $null0 $ns connect $udp0 $null0
set ugs0 [new Application/Traffic/UGS] $ugs0 attach-agent $udp0
set udp1 [new Agent/UDP]
$ns attach-agent $sinkNode $udp1 set null1 [new Agent/Null] $ns attach-agent $ss(1) $null1 $ns connect $udp1 $null1
set ugs1 [new Application/Traffic/UGS] $ugs1 attach-agent $udp1
$ns at 0.5 \$ns at 1.0 \$ns at 9.0 \$ns at 9.5 \
proc finish {} {
global ns tracefd namtrace $ns flush-trace close $tracefd close $namtrace }
#ʼþ°²ÅÅ
$ns at $val(stop) \
$ns at $val(stop) \
puts \
# run the simulation $ns run
exit 0
µÚ10ÕÂ
delay.awk
BEGIN { } { } END {
k=0;
total_delay=0; avg_delay=0; id=1; event = $1; time = $2; node = $3;
len = length(node); if(len == 3) { }
if(len==3) { }
if(highest_uid < uid)
highest_uid = uid;
if(event==\
start_time[uid] = time; node_ = substr(node,2,1); trace_type = $4; flag = $5; uid = $6; pkt_type = $7; pkt_size = $8; from_node = $3; to_node =$4; pkt_type = $5; pkt_size = $6; flag = $7; uid = $12; highest_uid=0;
} else {
} else {
if(event==\
end_time[uid] = time;