Networking 2个节点的SMAC协议NS2 NAM输出未显示CBR传输

Networking 2个节点的SMAC协议NS2 NAM输出未显示CBR传输,networking,tcl,protocols,simulator,ns2,Networking,Tcl,Protocols,Simulator,Ns2,我正在尝试使用ns2.34模拟SMAC协议。我已将路由协议指定为AODV,smac syncflag设置为1,初始能量为50000 J。期刊论文代码尚未激活,ns2的cpp模块中也未进行任何修改。 网络结构仅由2个节点组成,其中节点0为udp代理节点,节点1为空代理节点。CBR连接到udp代理。两个节点都在彼此的范围内。所有nam跟踪、代理跟踪、路由跟踪和mac跟踪都处于打开状态。 在执行tcl文件期间不会生成错误,但NAM输出不会显示已附加到节点0的任何CBR传输。请建议ns2.34中所需的更

我正在尝试使用ns2.34模拟SMAC协议。我已将路由协议指定为AODV,smac syncflag设置为1,初始能量为50000 J。期刊论文代码尚未激活,ns2的cpp模块中也未进行任何修改。 网络结构仅由2个节点组成,其中节点0为udp代理节点,节点1为空代理节点。CBR连接到udp代理。两个节点都在彼此的范围内。所有nam跟踪、代理跟踪、路由跟踪和mac跟踪都处于打开状态。 在执行tcl文件期间不会生成错误,但NAM输出不会显示已附加到节点0的任何CBR传输。请建议ns2.34中所需的更改,以便在animator中激活NAM跟踪输出

以下是用于上述模拟的TCL脚本:

set opt(chan)        Channel/WirelessChannel
set opt(prop)        Propagation/TwoRayGround
set opt(netif)       Phy/WirelessPhy
set opt(mac)         Mac/SMAC                   ;# MAC type
set opt(ifq)         Queue/DropTail/PriQueue
set opt(ll)          LL
set opt(ant)         Antenna/OmniAntenna

set opt(x)        800    ;# X dimension of the topography
set opt(y)        800        ;# Y dimension of the topography
set opt(cp)        "/root/ns-allinone-2.34/ns-2.34/tcl/mobility/scene/cbr-50-10-4-512"
set opt(sc)        "/root/ns-allinone-2.34/ns-2.34/tcl/mobility/scene/scen-670x670-50-600-20-0"
set opt(ifqlen)        50        ;# max packet in ifq
set opt(nn)        2        ;# number of nodes
set opt(seed)        0.0
set opt(stop)        700.0        ;# simulation time
set opt(tr)        Test.tr    ;# trace file
set opt(nam)       Test.nam    ;# animation file
set opt(rp)             AODV           ;# routing protocol script
set opt(lm)             "off"           ;# log movement
set opt(agent)          Agent/DSDV
set opt(energymodel)    EnergyModel     ;
#set opt(energymodel)    RadioModel     ;
set opt(radiomodel)        RadioModel     ;
set opt(initialenergy)  1000            ;# Initial energy in Joules
#set opt(logenergy)      "on"           ;# log energy every 150 seconds


Mac/SMAC set syncFlag_ 1

Mac/SMAC set dutyCycle_ 10

set ns_        [new Simulator]
set topo    [new Topography]
set tracefd    [open $opt(tr) w]
set namtrace    [open $opt(nam) w]
set prop    [new $opt(prop)]

$topo load_flatgrid $opt(x) $opt(y)
ns-random 1.0
$ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace 500 500

#
# Create god
#
create-god $opt(nn)


#global node setting

$ns_ node-config -adhocRouting $opt(rp) \
         -llType $opt(ll) \
         -macType $opt(mac) \
         -ifqType $opt(ifq) \
         -ifqLen $opt(ifqlen) \
         -antType $opt(ant) \
         -propType $opt(prop) \
         -phyType $opt(netif) \
         -channelType $opt(chan) \
         -topoInstance $topo \
         -agentTrace ON \
         -routerTrace ON \
         -macTrace ON \
         -energyModel $opt(energymodel) \
         -idlePower 1.0 \
         -rxPower 1.0 \
         -txPower 1.0 \
         -sleepPower 0.001 \
         -transitionPower 0.2 \
         -transitionTime 0.005 \
         -initialEnergy $opt(initialenergy)



    $ns_ set WirelessNewTrace_ ON

    for {set i 0} {$i < $opt(nn) } {incr i} {
        set node_($i) [$ns_ node]    
        $node_($i) random-motion 0        ;# disable random motion

    }

set god_ [God instance]
$node_(0) set X_ 250.159448320886
$node_(0) set Y_ 320.107989080168
$node_(0) set Z_ 0.000000000000
$node_(1) set X_ 360.514473960930
$node_(1) set Y_ 400.755796386780
$node_(1) set Z_ 0.000000000000

for {set i 0} {$i < $opt(nn) } {incr i} {
    $ns_ initial_node_pos $node_($i) 30+i*100
}

set udp_(0) [new Agent/UDP]
$ns_ attach-agent $node_(0) $udp_(0)
set null_(0) [new Agent/Null]
$ns_ attach-agent $node_(1) $null_(0)
set cbr_(0) [new Application/Traffic/CBR]
$cbr_(0) set packetSize_ 512
$cbr_(0) set interval_ 10.0
$cbr_(0) set random_ 1
$cbr_(0) set maxpkts_ 50000
$cbr_(0) attach-agent $udp_(0)
$ns_ connect $udp_(0) $null_(0)



$ns_ at 1.00 "$cbr_(0) start"
#$ns_ at 177.000 "$node_(0) set ifqLen"


#
# Tell all the nodes when the simulation ends
#
for {set i 0} {$i < $opt(nn) } {incr i} {
    $ns_ at $opt(stop) "$node_($i) reset";
}
$ns_ at $opt(stop) "puts \"NS EXITING...\" ; $ns_ halt"

puts "Starting Simulation..."
$ns_ run
set opt(chan)信道/无线信道
设置选项(道具)传播/双光线地面
设置选项(netif)物理层/无线物理层
设置opt(mac)mac/SMAC;#MAC类型
设置opt(ifq)队列/DropTail/PriQueue
设置选项(ll)ll
设置可选(ant)天线/全向天线
设置选项(x)800;#地形的X维
设置选项(y)800;#地形的Y维
设置opt(cp)“/root/ns-allinone-2.34/ns-2.34/tcl/mobility/scene/cbr-50-10-4-512”
设置opt(sc)“/root/ns-allinone-2.34/ns-2.34/tcl/mobility/scene/scen-670x670-50-600-20-0”
设置选项(ifqlen)50;#ifq中的最大数据包
设置选项(nn)2;#节点数
设置选项(种子)0.0
设置选项(停止)700.0;#模拟时间
设置opt(tr)Test.tr;#跟踪文件
设置opt(nam)Test.nam;#动画文件
设置opt(rp)AODV;#路由协议脚本
设置选项(lm)“关闭”;#原木运动
设置opt(agent)agent/DSDV
设置opt(energymodel)energymodel;
#设置opt(能量模型)无线电模型;
设置opt(radiomodel)radiomodel;
设置选项(初始能量)1000;#初始能量(焦耳)
#将opt(logenergy)设置为“开”;#每150秒记录能量
Mac/SMAC设置同步标志\u1
Mac/SMAC组dutyCycle_u10
设置ns_u2;[新模拟器]
设置地形[新地形]
设置tracefd[打开$opt(tr)w]
设置namtrace[打开$opt(nam)w]
设置道具[新$opt(道具)]
$topo负载\平面网格$opt(x)$opt(y)
ns随机1.0
$ns_uu跟踪所有$tracefd
$ns\uNamtrace所有无线$namtrace 500
#
#创造上帝
#
创建上帝$opt(nn)
#全局节点设置
$ns_uu节点配置-adhocRouting$opt(rp)\
-llType$opt(ll)\
-macType$opt(mac)\
-ifq类型$opt(ifq)\
-ifqLen$opt(ifqLen)\
-antType$opt(ant)\
-道具类型$opt(道具)\
-物理类型$opt(netif)\
-channelType$opt(chan)\
-topo实例$topo\
-代理竞逐\
-罗特特顿赛马会\
-麦克特雷森\
-energyModel$opt(energyModel)\
-idlePower 1.0\
-rxPower 1.0\
-txPower 1.0\
-睡眠功率0.001\
-transitionPower 0.2\
-转换时间0.005\
-初始能量$opt(初始能量)
$ns_uu将无线网络连接设置为ON
对于{set i 0}{$i<$opt(nn)}{incr i}{
设置节点($i)[$ns\uunode]
$node(($i)随机运动0;#禁用随机运动
}
设置上帝[上帝实例]
$node_u0)集合X_250.159448320886
$node_u0)集合Y_320.107989080168
$node_0(0)set Z_0.000000000000
$node_u1)集合X_360.514473960930
$node_(1)集合Y_400.755796386780
$node_u1)集Z_0.000000000000
对于{set i 0}{$i<$opt(nn)}{incr i}{
$ns_uu初始节点位置$node_uu($i)30+i*100
}
设置udp(0)[新代理/udp]
$ns\连接代理$node\ 0$udp\ 0
设置null(0)[新代理/null]
$ns\附加代理$node\ 1)$null\ 0
设置cbr(0)[新应用程序/流量/cbr]
$cbr_u0)套装包装尺寸512
$cbr(0)设置间隔\u10.0
$cbr_u0)集随机_1
$cbr_u0)设置最大值50000
$cbr(0)附加代理$udp(0)
$ns\连接$udp\连接(0)$null\连接(0)
$ns_uu在1.00“$cbr_uu(0)开始”
#$ns_uu位于177.000“$node_u0)设置ifqLen”
#
#在模拟结束时告知所有节点
#
对于{set i 0}{$i<$opt(nn)}{incr i}{
$ns_uu在$opt(停止)“$node_uu($i)重置”;
}
$ns_uuAt$opt(stop)“放置\“ns退出…”“;$ns_uuuu停止”
将“开始模拟…”
$ns_uu运行

您尚未在存储动画信息的任何位置创建animator文件。您需要定义最后调用的完成过程。它应该类似于:

proc finish {} {
global ns tracefd namtrace
$ns flush-trace
close $tracefd 
close $namtrace
exec nam Test.nam &
exit 0
}

你能在这里发布你的tcl脚本吗?上面添加了脚本。。请检查并尽快恢复我根据此处创建的nam文件,在终端中使用nam命令单独调用nam输出。在这里创建nam文件时会有任何问题吗?设置namtrace[open$opt(nam)w]$ns_uNamtraceAll wireless$namtrace 500这是创建nam文件的语法,该文件在执行此ns文件后创建。以上语法有什么问题吗?