在这里,我们将完成一个简单的无线多跳场景
首先,定义的参数如下所示:
set val(chan) Channel/WirelessChannel
set val(prop) Propagation/TwoRayGround
set val(netif) Phy/WirelessPhy
set val(mac) Mac/802_11
set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
set val(ant) Antenna/OmniAntenna
set val(x) 670 ;# X dimension of the topography
set val(y) 670 ;# Y dimension of the topography
set val(ifqlen) 50 ;# max packet in ifq
set val(seed) 0.0
set val(adhocRouting) DSR
set val(nn) 3 ;# how many nodes are simulated
set val(cp) "../mobility/scene/cbr-3-test"
set val(sc) "../mobility/scene/scen-3-test"
set val(stop) 2000.0 ;# simulation time
在创建ns_(模拟器实例)后,打开一个文件(wireless1-out.tr)以获得无线跟踪。另外我们要设置nam曲线。
set tracefd [open wireless1-out.tr w] ;# for wireless traces
$ns_ trace-all $tracefdset namtrace [open wireless1-out.nam w] ;# for nam tracing
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
创建移动节点之后,定义源节点移动和连接模式文件,分别是val(sc)和val(cp)。
#
# Define node movement model
#
puts "Loading connection pattern..."
source $val(cp)#
# Define traffic model
#
puts "Loading scenario file..."
source $val(sc)
在节点移动文件scen-3测试中,我们看到节点移动命令,如
$ns_ at 50.000000000000 "$node_(2) setdest 369.463244915743 \
170.519203111152 3.371785899154"
这意味着在时刻50s,节点2以3.37m / s的速度开始向目的地(369.4,170.5)移动。
$god_ set-dist 1 2 2
上句用于加载具有最短跳信息的god对象的命令行。 这意味着节点1和节点2之间的最短路径是2跳。 通过提供这种信息,防止在模拟运行期间神对象在节点之间的最短距离的计算,能节省下来不少时间。