Sconfig 0.00000 点击:开启监听:rts?犯错?在
Posted
技术标签:
【中文标题】Sconfig 0.00000 点击:开启监听:rts?犯错?在【英文标题】:Sconfig 0.00000 tap: on snoop: rts? on errs? on 【发布时间】:2021-09-04 04:05:23 【问题描述】:我正在 Mobile Ad Hoc Network(MANET) 中的一个项目上工作,使用 ns.35 并在使用 DSR 执行此代码时
# 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) CMUPriQueue ;# interface queue type
set val(ll) LL ;# link layer type
set val(ant) Antenna/OmniAntenna ;# antenna model
set val(ifqlen) 100000 ;# max packet in ifq
set val(nn) 38 ;# number of mobilenodes
set val(rp) DSR ;# routing protocol
set val(x) 800 ;# X dimension of topography
set val(y) 800 ;# Y dimension of topography
set val(seed) 0.0
set val(cp) "cbrNCR"
set val(sc) "set38"
set val(stop) 200.0 ;# time of simulation end
set ns_ [new Simulator]
set tracefile [open DSR.tr w]
#set windowVsTime2 [open win.tr w]
$ns_ trace-all $tracefile
$ns_ use-newtrace
#$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
# set up topography object
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
#Open the NAM trace file
set namfile [open manet.nam w]
$ns_ namtrace-all $namfile
$ns_ namtrace-all-wireless $namfile $val(x) $val(y)
set god_ [create-god $val(nn)]
set chan_1_ [new $val(chan)]
#
# Create nn mobilenodes [$val(nn)] and attach them to the channel.
#
# configure the nodes
$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) \
-channel $chan_1_ \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-energyModel "EnergyModel" \
-initialEnergy 100.0 \
-txPower 2.0522 \
-rxPower 0.0591 \
-idlePower 0.00006 \
-sleepPower 0.000003 \
for set i 0 $i < $val(nn) incr i
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;# disable random motion
puts "Loading connection pattern..."
source $val(cp)
puts "Loading scenario file..."
source $val(sc)
proc finish
global ns_ tracefile namfile
$ns_ flush-trace
close $tracefile
close $namfile
exec nam manet.nam &
exit 0
for set i 0 $i < $val(nn) incr i
$ns_ initial_node_pos $node_($i) 20
for set i 0 $i < $val(nn) incr i
$ns_ at $val(stop).000000001 "$node_($i) reset";
$ns_ at $val(stop) "$ns_ nam-end-wireless $val(stop)"
$ns_ at $val(stop).000000001 "puts \"NS EXITING...\"; $ns_ halt"
puts "Start Simulation..."
$ns_ run
它显示在 tr 文件中。为什么?怎么处理?
Sconfig 0.00000 tap: on snoop: rts?犯错?在 Sconfig 0.00000打捞:在!bd回复?在 Sconfig 0.00000 grat 错误:on grat 回复:on Sconfig 0.00000 $reply for props: on ring 0 search: on Sconfig 0.00000 使用 MOBICACHE
【问题讨论】:
Sconfig 是一个设置。跟踪线告诉您哪些 Sconfig 处于打开状态。 ... 参见Sconfig.jpg
等跟踪文档drive.google.com/drive/folders/…(这些年NS2 文档从网上消失了。)
【参考方案1】:
Sconfig 是一个 DSR 设置。跟踪线告诉您哪些 Sconfig 处于打开状态。 ...请看Sconfig.jpg等trace dochttps://drive.google.com/drive/folders/1X_SaZcTYF2tI5XGVClImBvAZY1_QOrDj?usp=sharing
Sconfig.jpg 显示来自 'NS-2 Trace Formats - nsnam.html' = NS-2_TraceFormats-nsnam.html 的 sn-p
$ cd ns-2.35
$ grep -nR Sconfig *
dsr/dsragent.cc:468: trace("Sconfig %.5f tap: %s snoop: rts? %s errs? %s",
dsr/dsragent.cc:473: trace("Sconfig %.5f salvage: %s !bd replies? %s",
dsr/dsragent.cc:477: trace("Sconfig %.5f grat error: %s grat reply: %s",
dsr/dsragent.cc:481: trace("Sconfig %.5f $reply for props: %s ring 0 search: %s",
dsr/linkcache.cc:309: trace("Sconfig %.5f using LINKCACHE %d", Scheduler::instance().clock(),
dsr/mobicache.cc:209: trace("Sconfig %.5f using MOBICACHE", Scheduler::instance().clock());
dsr/simplecache.cc:204: trace("Sconfig %.5f using MOBICACHE", Scheduler::instance().clock());
这意味着grep
已经在ns2、所有目录和所有子目录中搜索了Sconfig
这个词。
【讨论】:
非常感谢您的回复,但我现在不明白该怎么办? 做什么? .......... 所有 DSR 模拟都会在跟踪文件中显示类似的信息。tr drive.google.com/file/d/1xmJ8GwGuFGTo2zVpWoE1QdngVAjuFknc/…【参考方案2】:当我使用此代码时 $ cd ns-2.35 $grep -nR Sconfig *. 出现以下内容:
dsr/simplecache.cc:204: trace("Sconfig %.5f using MOBICACHE", Scheduler::instance().clock());
Binary file dsr/mobicache.o matches
dsr/linkcache.cc:309: trace("Sconfig %.5f using LINKCACHE %d", Scheduler::instance().clock(),
dsr/dsragent.cc:468: trace("Sconfig %.5f tap: %s snoop: rts? %s errs? %s",
dsr/dsragent.cc:473: trace("Sconfig %.5f salvage: %s !bd replies? %s",
dsr/dsragent.cc:477: trace("Sconfig %.5f grat error: %s grat reply: %s",
dsr/dsragent.cc:481: trace("Sconfig %.5f $reply for props: %s ring 0 search: %s",
Binary file dsr/dsragent.o matches
dsr/mobicache.cc:209: trace("Sconfig %.5f using MOBICACHE", Scheduler::instance().clock());
Binary file ns matches
Binary file nstk matches
【讨论】:
当然任何代码/任何信息都会被编译成对象,并且可以执行。 我还有一个问题,请问使用DSR协议时如何提取每个节点的请求数和回复数以上是关于Sconfig 0.00000 点击:开启监听:rts?犯错?在的主要内容,如果未能解决你的问题,请参考以下文章