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

📄 scen-20-10dsdv.tcl

📁 source code to simulate wireless network with ad hoc. the source sends info to destination using mul
💻 TCL
字号:
# ======================================================================# Define options# ======================================================================set opt(chan) Channel/WirelessChannel ;# channel typeset opt(prop) Propagation/TwoRayGround ;# radio-propagation modeset opt(netif) Phy/WirelessPhy ;# network interface typeset opt(mac) Mac/802_11 ;# MAC typeset opt(ifq) Queue/DropTail/PriQueue ;# interface queue typeset opt(ll) LL ;# link layer typeset opt(ant) Antenna/OmniAntenna ;# antenna modelset opt(ifqlen) 50 ;# max packet in ifqset opt(nn) 20 ;# number of mobilenodesset opt(adhocRouting) DSDV ;# routing protocolset opt(tr) scen-20-10DSDV.tr ;# trace file nameset opt(p_tx) 0.031622777 ;# transmitting powerset opt(p_rx) 0.031622777 ;# receiving powerset opt(p_idle) 0.0 ;# idle powerset opt(initialenergy) 80 ;# initial energyset opt(energymodel) EnergyModel ;# energy modelset opt(posiciones) "../../tcl/posiciones/posiciones100"#set opt(CBR) "/root/examplecbr2"set opt(CBR) "examplecbr2"#set opt(mobility) "/root/scen-20-10"set opt(mobility) "scen-20-10"set opt(x) 500 ;# x coordinate of topologyset opt(y) 500 ;# y coordinate of topologyset opt(seed) 1.0 ;# random seedset opt(stop) 2000 ;# time to stop simulationset num_bs_nodes 1set AgentTrace ONset RouterTrace ONset MacTrace OFF# ======================================================================# Other default settingsLL set mindelay_ 50usLL set delay_ 25usLL set bandwidth_		0	;# not usedAgent/Null set sport_		0Agent/Null set dport_		0Agent/CBR set sport_		0Agent/CBR set dport_		0Agent/TCPSink set sport_	0Agent/TCPSink set dport_	0Agent/TCP set sport_		0Agent/TCP set dport_		0Agent/TCP set packetSize_ 1460Queue/DropTail/PriQueue set Prefer_Routing_Protocols 1# unity gain, omni-directional antennas# set up the antennas to be centered in the node and 0.5 meters above itAntenna/OmniAntenna set X_ 0Antenna/OmniAntenna set Y_ 0Antenna/OmniAntenna set Z_ 0.5Antenna/OmniAntenna set Gt_ 1.0Antenna/OmniAntenna set Gr_ 1.0#Initialize the SharedMedia interface with parameters to make# it work like the 2.4 GHz ORiNOCO CardPhy/WirelessPhy set CPThresh_ 10.0Phy/WirelessPhy set CSThresh_ 3.16227777e-14#Phy/WirelessPhy set RXThresh_ 3.652e-10Phy/WirelessPhy set RXThresh_ 3.16227777e-13Phy/WirelessPhy set bandwidth_ 11MbPhy/WirelessPhy set Pt_ 0.031622777Phy/WirelessPhy set freq_ 2.472e+9Phy/WirelessPhy set L_ 1.0# Pt_ is transmitted signal power. The propagation model and Pt_ determines# the received signal power of each packet. The packet can not be correctly# received if received power is below RXThresh_.# ======================================================================set num_AP_nodes 4 ;# number of access points# create simulator instanceset ns_ [new Simulator]# Open trace file$ns_ use-newtrace ;# Use new trace formatset tracefd [open scen-20-10DSDV.tr w]set namtrace [open scen-20-10DSDV.nam w]$ns_ trace-all $tracefd$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)# Create topography objectset topo [new Topography]# define topology$topo load_flatgrid $opt(x) $opt(y)# create channel#set chan_1_ [new $opt(chan)]# create God#set god_ [create-god [expr $opt(nn) + $num_AP_nodes]]# Create the specified number of mobile nodes [$opt(nn)] and access points nodes and "attach"# to the channel.one hundred nodes are created and four access points. # New API to config node: # 1. Create channel (or multiple-channels);# 2. Specify channel in node-config (instead of channelType);# 3. Create nodes for simulations.# Create channel #1 and #2set chan_1_ [new $opt(chan)]set chan_2_ [new $opt(chan)]# Create node(0) "attached" to channel #1# configure node, please note the change below.$ns_ node-config -adhocRouting $opt(adhocRouting) \		-llType $opt(ll) \		-macType $opt(mac) \		-ifqType $opt(ifq) \		-ifqLen $opt(ifqlen) \		-antType $opt(ant) \		-propType $opt(prop) \		-phyType $opt(netif) \		-topoInstance $topo \		-agentTrace ON \		-routerTrace ON \		-macTrace ON \		-movementTrace OFF \		-channel $chan_1_ \		-wiredRouting ON#set node_(0) [$ns_ node]# node_(1) can also be created with the same configuration, or with a different# channel specified.# Uncomment below two lines will create node_(1) with a different channel.#  $ns_ node-config \#		 -channel $chan_2#set node_(1) [$ns_ node]#set node_(2) [$ns_ node]#$node_(0) random-motion 0#$node_(1) random-motion 0#define propagation model# pathlossExp_ is path-loss exponent, for predicting mean received power# std_db_ is shadowing deviation (dB), reflecting how large the propagation# property changes within the environment.# dist0_ is a close-in reference distance, usually 1.0 m for indoor#set prop [new Propagation/Shadowing]#$prop set pathlossExp_ 4.0#$prop set std_db_ 6.8#$prop set dist0_ 1.0#$prop seed predef 0# set up for hierarchical routing$ns_ node-config -addressType hierarchical#Number of domains#5 domainsAddrParams set domain_num_ 5#Number of clusters in each domain#5 clusters#1 cluster in domain 0#1 cluster in domain 1#1 cluster in domain 2#1 cluster in domain 3#1 cluster in domain 4AddrParams set cluster_num_ {1 1 1 1 1}#Number of nodes in each cluster#25 nodes#1 nodes in domain 0 in cluster 0: BS 0.0.0#6 nodes in domain 1 in cluster 0: gw1 1.0.0#6 nodes in domain 2 in cluster 0: gw2 2.0.0#6 nodes in domain 3 in cluster 0: gw3 3.0.0#6 nodes in domain 4 in cluster 0: gw4 4.0.0AddrParams set nodes_num_ {1  6 6 6 6}#create base-station nodeset BS(0) [$ns_ node 0.0.0]$BS(0) random-motion 0     ;# disable random motion# Configure for gateways### Create gatewaysset gw(1) [$ns_ node 1.0.0]$gw(1) random-motion 0set gw(2) [$ns_ node 2.0.0]$gw(2) random-motion 0set gw(3) [$ns_ node 3.0.0]$gw(3) random-motion 0set gw(4) [$ns_ node 4.0.0]$gw(4) random-motion 0$ns_ node-config -wiredRouting OFF# Define the positions of the gateways$gw(1) set X_ 125.0$gw(1) set Y_ 125.0$gw(1) set Z_ 0.0$gw(2) set X_ 125.0$gw(2) set Y_ 375.0$gw(2) set Z_ 0.0$gw(3) set X_ 375.0$gw(3) set Y_ 125.0$gw(3) set Z_ 0.0$gw(4) set X_ 375.0$gw(4) set Y_ 375.0$gw(4) set Z_ 0.0# Create the specified number of nodes $opt(nn) and "attach" them to# their access point. We suppose that each AP has 5 nodesset aux 0for {set j 1} {$j < 5} {incr j} {for {set p 1} {$p < 6} {incr p} {set aux1 [expr $j + 1]set direccion $aux1.0.$pset numero_nodo $auxincr auxset node_($numero_nodo) [$ns_ node $direccion]$node_($numero_nodo) base-station [AddrParams addr2id [$gw($j) node-addr]]}}##provide some co-ordinates (fixed) to base station node$BS(0) set X_ 250.0$BS(0) set Y_ 250.0$BS(0) set Z_ 0.0# Define node positions$node_(0) set X_ 4.161206e+01 $node_(0) set Y_ 1.023844e+02 $node_(0) set Z_ 0.000000000000 $node_(1) set X_ 3.683895e+01 $node_(1) set Y_ 2.292619e+02 $node_(1) set Z_ 0.000000000000 $node_(2) set X_ 1.586135e+02 $node_(2) set Y_ 9.341838e+01 $node_(2) set Z_ 0.000000000000 $node_(3) set X_ 1.731119e+01 $node_(3) set Y_ 8.068519e+01 $node_(3) set Z_ 0.000000000000 $node_(4) set X_ 8.092975e+01 $node_(4) set Y_ 2.019010e+01 $node_(4) set Z_ 0.000000000000 $node_(5) set X_ 2.100529e+02 $node_(5) set Y_ 2.647021e+02 $node_(5) set Z_ 0.000000000000 $node_(6) set X_ 1.109991e+02 $node_(6) set Y_ 2.600662e+02 $node_(6) set Z_ 0.000000000000 $node_(7) set X_ 1.558935e+02 $node_(7) set Y_ 3.122201e+02 $node_(7) set Z_ 0.000000000000 $node_(8) set X_ 2.052454e+02 $node_(8) set Y_ 3.741177e+02 $node_(8) set Z_ 0.000000000000 $node_(9) set X_ 1.693107e+02 $node_(9) set Y_ 3.940863e+02 $node_(9) set Z_ 0.000000000000 $node_(10) set X_ 4.405136e+02 $node_(10) set Y_ 1.217013e+02 $node_(10) set Z_ 0.000000000000 $node_(11) set X_ 4.383025e+02 $node_(11) set Y_ 2.146961e+02 $node_(11) set Z_ 0.000000000000 $node_(12) set X_ 3.738319e+02 $node_(12) set Y_ 1.013463e+02 $node_(12) set Z_ 0.000000000000 $node_(13) set X_ 3.625205e+02 $node_(13) set Y_ 1.666281e+02 $node_(13) set Z_ 0.000000000000 $node_(14) set X_ 3.670162e+02 $node_(14) set Y_ 1.657824e+02 $node_(14) set Z_ 0.000000000000 $node_(15) set X_ 2.516758e+02 $node_(15) set Y_ 3.259072e+02 $node_(15) set Z_ 0.000000000000 $node_(16) set X_ 2.971206e+02 $node_(16) set Y_ 2.787055e+02 $node_(16) set Z_ 0.000000000000 $node_(17) set X_ 4.034500e+02 $node_(17) set Y_ 4.170765e+02 $node_(17) set Z_ 0.000000000000 $node_(18) set X_ 3.469183e+02 $node_(18) set Y_ 3.948616e+02 $node_(18) set Z_ 0.000000000000 $node_(19) set X_ 4.503905e+02 $node_(19) set Y_ 3.209483e+02 $node_(19) set Z_ 0.000000000000 for {set i 0} {$i < $opt(nn)} {incr i} {$ns_ initial_node_pos $node_($i) 40}# Define node movements#source $opt(mobility)## Define node connections#source $opt(CBR)# Define the shape and the colour of the nodes$BS(0) color blue$gw(1) color red$gw(2) color red$gw(3) color red$gw(4) color red$gw(1) shape hexagon$gw(2) shape hexagon$gw(3) shape hexagon$gw(4) shape hexagon$BS(0) shape square#create links between Access points and BS nodes      $ns_ duplex-link $gw(1) $BS(0) 5Mb 2ms DropTail$ns_ duplex-link $gw(2) $BS(0) 5Mb 2ms DropTail$ns_ duplex-link $gw(3) $BS(0) 5Mb 2ms DropTail$ns_ duplex-link $gw(4) $BS(0) 5Mb 2ms DropTail$ns_ duplex-link-op $gw(1) $BS(0) orient up$ns_ duplex-link-op $gw(2) $BS(0) orient down$ns_ duplex-link-op $gw(3) $BS(0) orient up$ns_ duplex-link-op $gw(4) $BS(0) orient down#Define initial node position in nam#for {set i 0} {$i < $opt(nn)} {incr i} {# 40 defines the node size in nam, must adjust it according to your# scenario# The function must be called after mobility model is defined#$ns_ initial_node_pos $node_($i) 40#}# Stop the nodesfor {set i 0} {$i < $opt(nn)} {incr i} {$ns_ at $opt(stop).0 "$node_($i) reset";}# Stop the gateways$ns_ at $opt(stop).0 "$gw(1) reset";$ns_ at $opt(stop).0 "$gw(2) reset";$ns_ at $opt(stop).0 "$gw(3) reset";$ns_ at $opt(stop).0 "$gw(4) reset";$ns_ at $opt(stop).0002 "puts \"NS EXITING...\" ; $ns_ halt"$ns_ at $opt(stop).0001 "stop"proc stop {} {global ns_ tracefd namtraceclose $tracefdclose $namtrace}for {set i 0} {$i < 2000 } {incr i} {$ns_ at $i "puts \"simulation $i s\""}puts "Starting Simulation..."$ns_ run

⌨️ 快捷键说明

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