Simulating DVMRP

使用组播协议DVMRP,一共有十三个节点,节点7,8,9,12陆续加入组播,后节点12退出组播,拓扑如下:

 

set ns [new Simulator]
$ns multicast

set f [open dvmrp.tr w]
$ns trace-all $f
$ns namtrace-all [open dvmrp.nam w]

$ns color 1 red 

#分配组播地址;
set group [Node allocaddr]                   

# 节点数
set nod 13                         

# 创建节点;
for {set i 0} {$i < $nod} {incr i} {
   set n($i) [$ns node]                      
}

#创建链路
$ns duplex-link $n(0) $n(1) 1.5Mb 10ms DropTail 
$ns duplex-link $n(0) $n(2) 1.5Mb 10ms DropTail 
$ns duplex-link $n(1) $n(3) 1.5Mb 10ms DropTail
$ns duplex-link $n(1) $n(4) 1.5Mb 10ms DropTail
$ns duplex-link $n(2) $n(5) 1.5Mb 10ms DropTail
$ns duplex-link $n(2) $n(6) 1.5Mb 10ms DropTail
$ns duplex-link $n(3) $n(7) 1.5Mb 10ms DropTail
$ns duplex-link $n(3) $n(8) 1.5Mb 10ms DropTail
$ns duplex-link $n(5) $n(9) 1.5Mb 10ms DropTail
$ns duplex-link $n(6) $n(10) 1.5Mb 10ms DropTail
$ns duplex-link $n(6) $n(11) 1.5Mb 10ms DropTail
$ns duplex-link $n(10) $n(12) 1.5Mb 10ms DropTail
$ns duplex-link $n(10) $n(11) 1.5Mb 10ms DropTail
$ns duplex-link $n(4) $n(9) 1.5Mb 10ms DropTail

# 配置组播协议;
DM set CacheMissMode dvmrp
set mproto DM                                

# all nodes will contain multicast protocol agents;
set mrthandle [$ns mrtproto $mproto]         

set udp [new Agent/UDP]                     


$ns attach-agent $n(0) $udp
$udp set class_ 1

set src1 [new Application/Traffic/CBR]
$src1 attach-agent $udp
$src1 set packet_size_ 500
$src1 set interval_ 0.005
$udp set dst_addr_ $group
$udp set dst_port_ 0
$src1 set random_ false


# create receiver agents
set rcvr [new Agent/LossMonitor]      

# joining and leaving the group;
#$ns at 0.6 "$n(7) join-group $rcvr $group"
$ns at 0.6 "$n(8) join-group $rcvr $group"  
$ns at 0.7 "$n(7) join-group $rcvr $group"
set rcvr1 [new Agent/LossMonitor]  
$ns at 0.8  "$n(9) join-group $rcvr1 $group"    
$ns at 0.9  "$n(12) join-group $rcvr1 $group"
$ns at 3.9 "$n(12) leave-group $rcvr1 $group"

$ns at 0.2 "$src1 start"
$ns at 6.2 "finish"
proc finish {} {
        global ns rcvr rcvr1
        $ns flush-trace
        exec nam dvmrp.nam &
        exit 0
}
$ns run

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值