⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sim4.tcl

📁 无线个域网(WPAN)就是在个人周围空间形成的无线网络
💻 TCL
字号:
# Pragmatic General Multicast (PGM), Reliable Multicast## Example to demonstrate multiple senders, and that an Agent/PGM can also# act as an Agent/PGM/Receiver.## This is a random topology with two senders and several receivers in# two multicast groups.  The topology can be found in the file r10-0.tcl.## Ryan S. Barnett, 2001# rbarnett@catarina.usc.eduset ns [new Simulator -multicast on]$ns node-config -PGM ON$ns namtrace-all [open out.nam w]$ns color 0 red$ns color 1 black$ns color 2 white$ns color 3 blue$ns color 4 yellow$ns color 5 LightBlue$ns color 6 green$ns color 7 magenta$ns color 8 orangeset colors { red black white blue yellow LightBlue green magenta orange }# Used to provide backward compatability with older version of ns.Simulator instproc duplex-link-of-interfaces {args} {  # Extract arguments.  set n1 [lindex $args 0]  set n2 [lindex $args 1]  set BW [lindex $args 2]  set delay [lindex $args 3]  set queue [lindex $args 4]  # Execute correct link instruction.  $self duplex-link $n1 $n2 $BW $delay $queue}source r10-0.tclset verbose 0# Create the network topology.create-nodes ns ncreate-links ns n 1.5Mbfor {set k 0} { $k < 10 } { incr k } {    $n($k) color "green"}# Create two multicast groups.set group1 [Node allocaddr]puts "Group1 addr: $group1"set group2 [Node allocaddr]puts "Group2 addr: $group2"##Set routing protocol#set mproto DMset mrthandle [$ns mrtproto $mproto {}]set loss_module1 [new PGMErrorModel]$loss_module1 drop-packet ODATA 10 2$loss_module1 drop-target [$ns set nullAgent_]$ns lossmodel $loss_module1 $n(0) $n(9)$ns duplex-link-op $n(0) $n(9) color "red"set loss_module2 [new PGMErrorModel]# Drop the second ODATA packet that crosses this link every 10th cycle.$loss_module2 drop-packet ODATA 10 2$loss_module2 drop-target [$ns set nullAgent_]$ns lossmodel $loss_module2 $n(2) $n(6)$ns duplex-link-op $n(2) $n(6) color "red"## Create Sender#set src1 [new Agent/PGM/Sender]$ns attach-agent $n(2) $src1$src1 set dst_addr_ $group1$src1 set dst_port_ 0$src1 set rdata_delay_ 40ms$src1 set spm_interval_ 75ms$n(2) color "magenta"# Attach data source to sender.set cbr1 [new Application/Traffic/CBR]$cbr1 attach-agent $src1$cbr1 set rate_ 448Kb$cbr1 set packetSize_ 210$cbr1 set random_ 0set src2 [new Agent/PGM/Sender]$ns attach-agent $n(8) $src2$src2 set dst_addr_ $group2$src2 set dst_port_ 0$src2 set rdata_delay_ 40ms$src2 set spm_interval_ 75ms$n(8) color "magenta"# Attach data source to sender.set cbr2 [new Application/Traffic/CBR]$cbr2 attach-agent $src2$cbr2 set rate_ 448Kb$cbr2 set packetSize_ 210$cbr2 set random_ 0proc create-receiver {rcv i group} {   upvar $rcv r   global ns n   set r [new Agent/PGM/Receiver]   $ns attach-agent $n($i) $r   $ns at 0.01 "$n($i) join-group $r $group"   $n($i) color "blue"}## Create PGM receivers#create-receiver rcv1 1 $group1create-receiver rcv5 5 $group1create-receiver rcv7 7 $group1create-receiver rcv3 3 $group2create-receiver rcv4 4 $group2create-receiver rcv6 6 $group2$n(3) shape "square"$n(4) shape "square"$n(6) shape "square"$ns at 0.3 "$src1 start-SPM"$ns at 0.4 "$src2 start-SPM"$ns at 0.5 "$cbr1 start"$ns at 0.6 "$cbr2 start"$ns at 0.9 "$cbr1 stop"$ns at 1.0 "$cbr2 stop"$ns at 1.1 "$src1 stop-SPM"$ns at 1.2 "$src2 stop-SPM"$ns at 1.5 "finish"proc finish {} {    global ns src1 src2 rcv1 rcv5 rcv7 rcv3 rcv4 rcv6 n    puts "Simulation Finished"    puts "src1:"    $src1 print-stats    puts "agent9:"    set pgm_agent [$n(9) get-pgm]    $pgm_agent print-stats        puts "rcv1:"    $rcv1 print-stats    puts "rcv5:"    $rcv5 print-stats    puts "rcv7:"    $rcv7 print-stats    puts "src2:"    $src2 print-stats    puts "rcv3:"    $rcv3 print-stats    puts "rcv4:"    $rcv4 print-stats    puts "rcv6:"    $rcv6 print-stats#       puts "Starting Nam.."#       exec nam out.nam &    exit 0}$ns run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -