AODV.tcl

         这个在ns--allinone 2.29和2.35中都能跑起来。此为A Tutorial on the Implementation of Ad-hoc On  Demand Distance Vector (AODV) Protocol in  Network Simulator (NS-2) 书中最后一章Appendex : A Simple TCL Script to Run the  AODV Protocol  的修改版。墙外论坛里一高人改过的。

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)            Queue/DropTail/PriQueue    ;# interface queue type
set val(ll)             LL                         ;# link layer type
set val(ant)            Antenna/OmniAntenna        ;# antenna model
set val(ifqlen)         50                         ;# max packet in ifq
set val(nn)             4                          ;# number of mobilenodes
set val(rp)             AODV                       ;# routing protocol
set val(x)              500                        ;# X dimension of the topography
set val(y)              500                        ;# Y dimension of the topography

set ns [new Simulator]

set tracefd [open example2.tr w]
$ns  trace-all $tracefd
set namtracefd [open example2.nam w]
$ns namtrace-all-wireless $namtracefd $val(x) $val(y)

proc finish {} {
        global ns tracefd namtracefd
        $ns flush-trace

        close $tracefd
        close $namtracefd
        
        exec nam example2.nam &
        exit 0    
}

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

#Create-God  
set god_  [create-god $val(nn)]

#create channel
set chan [new $val(chan)]

$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 \
                -topoInstance $topo \
                -agentTrace ON \
                -routerTrace ON \
                -macTrace OFF \
                -movementTrace ON                        
                         
for {set i 0} {$i < $val(nn) } {incr i} {
        set node_($i) [$ns node]        
        $node_($i) random-motion 0                ;# disable random motion
}

$node_(0) set X_ 5.0
$node_(0) set Y_ 2.0
$node_(0) set Z_ 0.0
$node_(1) set X_ 390.0
$node_(1) set Y_ 385.0
$node_(1) set Z_ 0.0
$node_(2) set X_ 20.0
$node_(2) set Y_ 35.0
$node_(2) set Z_ 0.0
$node_(3) set X_ 115.0
$node_(3) set Y_ 120.0
$node_(3) set Z_ 0.0

$ns at 10.0 "$node_(0) setdest 20.0 18.0 1.0"
$ns at 50.0 "$node_(1) setdest 25.0 20.0 15.0"
$ns at 100.0 "$node_(1) setdest 490.0 480.0 15.0" 
$ns at 20.0 "$node_(2) setdest 70.0 50.0 10.0"
$ns at 15.0 "$node_(3) setdest 90.0 100.0 15.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_(1) $sink
$ns connect $tcp $sink
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ns at 10.0 "$ftp start" 

for {set i 0} {$i < $val(nn) } {incr i} {
    $ns at 150.0 "$node_($i) reset";
}
$ns at 150.0 "finish"
$ns run

运行结果如下:


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AODV(Ad hoc On-Demand Distance Vector)是一种用于自组织无线网络中的路由协议,它是一种基于距离向量的协议。AODV协议的主要特点是在需要时才建立路由,而不是提前建立所有可能的路由。这种按需路由的方式可以减少网络中的路由开销,并且适用于动态变化的网络拓扑。 Matlab是一种高级的数值计算和科学编程语言,它提供了丰富的工具箱和函数库,用于数据分析、算法开发、模型建立等。在Matlab中,可以使用Simulink工具箱进行系统建模和仿真。 ZigBee是一种低功耗、短距离无线通信技术,它基于IEEE 802.15.4标准,并且专门设计用于低速率、低功耗的无线传感器网络。ZigBee网络可以支持多种应用场景,如智能家居、工业自动化、物联网等。 关于AODV、Matlab和ZigBee的相关问题: 1. AODV协议的工作原理是什么? 2. 在Matlab中如何使用Simulink进行系统建模和仿真? 3. ZigBee网络有哪些特点和应用场景? 4. AODV协议与其他路由协议相比有什么优势? 5. Matlab中有哪些工具箱和函数库可以用于数据分析和算法开发? 6. ZigBee网络中的节点如何进行通信和协调工作? 7. 如何在Matlab中实现AODV协议或者ZigBee网络的仿真模型? 8. ZigBee网络中的安全性如何保障? 9. AODV协议在无线传感器网络中的应用有哪些? 10. Matlab中有哪些工具可以用于无线通信系统的性能评估和优化?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值