关于ns2的aodv的疑问,想不通,求解

卦星 卦星 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近学习ns2,进行网络仿真,昨天突然发现一个问题,怎么都想不通;不知道是不是我awk文件写不对还是怎么了?分析方法不对?求解
aodv是最小跳数协议
求解throughput,通信速率
采用aodv仿真3个点的实验的时候

三点的结果
start_time: 2.051540,end_time: 100.097301
cbr s:4089,r:4072,r/s Ratio:0.995843,F:4088
time=98.045760,through_put=43192.892658
后来添加2个点发现

5点的结果(理论上添加两个点是没有任何作用的)仍然选择最小跳数链路
start_time: 2.042403,end_time: 100.093324
cbr s:4093,r:4076,r/s Ratio:0.995847,F:4084
time=98.050921,through_put=43233.046143
后来又添加了一个点

发现再次上升了,不明白原因
6个点的结果
start_time: 2.057622,end_time: 100.068675
cbr s:4092,r:4075,r/s Ratio:0.995846,F:4085
time=98.011052,through_put=43240.021435
awk分析文件
BEGIN{
sendline = 0;
recvline = 0;
fowardline = 0;
package_t =0;
init=0;
time_start=0;
}
{
if($7=="tcp" && $1=="s" && $4 == "AGT" && $8>=1000){
sendline++;
}
if(($1=="f") && $8>=1000){
fowardline++;
}
if($8>=1000 && $1=="r" && $4 == "AGT") {
if(init ==0){
time_start=$2;
init=1;
}
recvline++;
time_end[recvline]=$2;
}
}
END{
printf("start_time: %6f,end_time: %6f\n",time_start,time_end[recvline]);
printf("cbr s:%d,r:%d,r/s Ratio:%4f,F:%d\n",sendline,recvline,recvline/sendline,fowardline);
time=time_end[recvline]-time_start;
package_t=recvline*1040;
through_put=package_t/time;
printf("time=%4f,through_put=%4f\n",time,through_put)
}

3点tcl文件代码,后面类似添加节点
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(ifqlen) 50
set val(nn) 3
set val(rp) AODV
set val(x) 800
set val(y) 600

puts "\n"
puts "Simulation of a simple wireless have two nodes\n"
puts "Starting simulation...\n"

set ns_ [new Simulator]

$ns_ color 1 Blue
$ns_ color 2 Red
set tracefd [open node_3_f.tr w]
$ns_ trace-all $tracefd
set namtracefd [open node_3_f.nam w]
$ns_ namtrace-all-wireless $namtracefd $val(x) $val(y)

set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)

create-god $val(nn)

$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) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace OFF \
-movementTrace OFF \

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

$node_(0) set X_ 300
$node_(0) set Y_ 300
$node_(0) set Z_ 0
$node_(1) set X_ 462
$node_(1) set Y_ 417
$node_(1) set Z_ 0
$node_(2) set X_ 623
$node_(2) set Y_ 300
$node_(2) set Z_ 0

#$ns_ at 10.0 "$node_(0) setdest 800.0 200.0 0.0"
#$ns_ at 10.0 "$node_(1) setdest 200.0 200.0 0.0"
#$ns_ at 10.0 "$node_(2) setdest 200.0 200.0 0.0"

set tcp [new Agent/TCP]
$tcp set class_ 2
set sink [new Agent/TCPSink]
$ns_ attach-agent $node_(0) $tcp
$ns_ attach-agent $node_(2) $sink
$ns_ connect $tcp $sink
$tcp set fid_ 1
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ns_ at 2.0 "$ftp start"

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 100 "$node_($i) reset"
}

proc stop {} {
global ns_ tracefd namtracefd
$ns_ flush-trace
close $tracefd
close $namtracefd
exec nam node_3_f.nam &
exit 0
}
$ns_ at 100.1 "stop"
$ns_ at 100.2 "puts \"NS EXITING...\";$ns_ halt"

puts "Starting Simulation...."

$ns_ run
...全文

相关推荐

AODV路由协议NS2仿真

确保所有环境变量正确设置,以便于NS2的正常运行。接下来,我们关注AODV的仿真。在NS2中,AODV协议可以通过加载特定的库来实现。

permilla

在NS2 AODV协议中添加blackhole attacker(黑洞攻击)

      在NS2-3.34中添加黑洞攻击的过程还是比较简单的,具体过程大致如下描述:1. 首先我们在aodv/aodv.h中的AODV类中添加一个标志该Agent(该节点是blackhole的标志)    class AODV: public Agent { int blackhole; //是否是攻击节点 }2.修改aodv/aodv.cc以实现blackhole 攻击首先是在command 中定义相应的TCL “blackhole”if (strcmp(argv[1], "blackhole

QinLeopard

(4)NS3仿真--AODV协议

(4)NS3仿真–AODV协议 AODV协议的源码存放在src/aodv/examples/aodv.cc文件中 要把执行的aodv.cc文件复制到scratch目录中 在ns-3.31目录中执行以下语句 cp src/aodv/examples/aodv.cc scratch/aodv.cc 可以看到scratch目录中已经有了aodv.cc文件 在在ns-3.31目录中执行以下语句 执行aodv协议 sudo ./waf 运行AODV协议 sudo ./waf --run scratch/ao

纯粹.

AODV协议 在NS2上的源代码 包括路由消耗 时延 分组投递率的脚本

在NS2(Network Simulator 2)平台上,AODV协议的实现允许研究人员模拟和分析这种协议在不同网络条件下的性能。NS2是一个流行的开源网络模拟工具,用于研究、设计和分析各种网络协议。

huahualeiyin

基于NS2的Ad Hoc网络AODV路由协议仿真

该脚本用于分析AODV路由协议在不同网络条件下的性能,通过NS-2模拟器进行多次实验,调整节点数量和模拟时间,收集并处理数据流,计算包率、延迟、负载等关键指标。

卅一
评论 1
收藏 已收藏
分享
返回顶部
卦星
网络及通讯开发 1,317 成员 8,874 内容