Multicast

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 13

Multicast in ns-2

1
Multicast 簡介

2
Multicast Routing
 set ns [new Simulator]
$ns multicast
Or
set ns [new Simulator –multicast on]

 set mproto <type>


<type>:CtrMcast, DM, ST, BST

3
Multicast Routing
 all nodes will contain multicast protocol
agents
 set mrthandle [$ns mrtproto $mproto]
 allocating a multicast address
 set group [Node allocaddr]
 define an agent and as a multicast source for
the group
 $udp1 set dst_addr_ $group
 $udp1 set dst_port_ 0

4
Multicast Routing
 create a receiver agent
 set rcvr [new Agent/LossMonitor]
 specify which nodes join the group and when
they want to join the group
 $ns at 0.0 "$n1 join-group $rcvr $group"
 make a node leave the group at a time
 $ns at 1.6 "$n2 leave-group $rcvr $group"

5
Multicast:Step1
 Scheduler , tracing , and topology
# Create scheduler
set ns [new Simulator]
# Turn on multicast
$ns multicast
# Turn on Tracing
set fd [new “mcast.nam” w]
$ns namtrace-all $fd

6
Multicast:Step2
 Topology
# Create nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
# Create links
$ns duplex-link $n0 $n1 1.5Mb 10ms DropTail
$ns duplex-link $n0 $n2 1.5Mb 10ms DropTail
$ns duplex-link $n0 $n3 1.5Mb 10ms DropTail
7
Multicast:Step3
 Routing and group setup
# Routing protocol: let’s run distance vector
set mproto DM
# Allocate group addresses
set group1 [Node allocaddr]
set group2 [Node allocaddr]

8
Multicast:Step4
 Sender0
# Transport agent for the traffic source
set udp0 [new Agent/UDP]
$ns attach-agent $n1 $udp0
$udp0 set dst_addr_ $group1
$udp0 set dst_port_ 0
# Constant Bit Rate source #0
set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
# Start at time 1.0 second
$ns at 1.0 "$cbr0 start"
9
Multicast:Step5
 Sender1
# Transport agent for the traffic source
set udp1 [new Agent/UDP]
$ns attach-agent $n3 $udp1
$udp1 set dst_addr_ $group2
$udp1 set dst_port_ 0
# Constant Bit Rate source #0
set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
# Start at time 1.1 second
$ns at 1.1 "$cbr1 start"
10
Multicast:Step6
 Receiver with dynamic membership
# Can also be Agent/Null
set rcvr [new Agent/LossMonitor]
# Assign it to node $n2
$ns at 1.2 "$n2 join-group $rcvr $group2"
$ns at 1.25 "$n2 leave-group $rcvr $group2"
$ns at 1.3 "$n2 join-group $rcvr $group2"
$ns at 1.35 "$n2 join-group $rcvr $group1"

11
Multicast:Step7
 End-of-simulation wrapper (as usual)
$ns at 2.0 "finish"
proc finish {} {
global ns fd
close $fd
$ns flush-trace
puts "running nam..."
exec nam out.nam &
exit 0
}
$ns run
12
Web link for Multicastrouting
 http://www.isi.edu/nsnam/ns/doc/
node338.html

13

You might also like