Simple NS2 Projects

What is DVMRP?Implementing Simple NS2 Projects on DVMRP?

DVMRP referred as Distance Vector Multicast Routing Protocol.DVMRP utilizes efficient Interior Gateway Protocol which reacts with reverse path broadcasting algorithm for IP Multi-Tasking.Simple Ns2 Projects on DVMRP is created for sharing data in connection less autonomous systems.

Header components of DVMRP:

  • Version
  • Type
  • Non-membership report
  • Subtype includes request
  • Non-membership cancellation
  • Checksum
  • response

Tasks of DVMRP:

  • Handles tunnels and physical interfacing according to broadcast routing exchange source trees produced during truncated tree branch removal.
  • Supports multicast IP datagram tunneling via unsupported encapsulated and addressed unicast packet routes.
  • Exchanges routing datagrams made up of small, fixed-length headers and tagged data stream via internet group management protocol.
  • Tracks multicast datagrams source path.

Architecture of DVMRP:



Simple NS2 Projects on DVRMP


# configure multicast protocol;
DM set CacheMissMode dvmrp
set mproto DM                                

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

set udp1 [new Agent/UDP]                     
set udp2 [new Agent/UDP]                    

$ns attach-agent $n(1) $udp1
$ns attach-agent $n(2) $udp2

set src1 [new Application/Traffic/CBR]
$src1 attach-agent $udp1
$udp1 set dst_addr_ $group
$udp1 set dst_port_ 0
$src1 set random_ false

set src2 [new Application/Traffic/CBR]
$src2 attach-agent $udp2
$udp2 set dst_addr_ $group
$udp2 set dst_port_ 1
$src2 set random_ false

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

# joining and leaving the group;
$ns at 0.6 "$n(3) join-group $rcvr $group"
$ns at 1.3 "$n(4) join-group $rcvr $group"
$ns at 1.6 "$n(5) join-group $rcvr $group"
$ns at 1.9 "$n(4) leave-group $rcvr $group"
$ns at 2.3 "$n(6) join-group $rcvr $group"
$ns at 3.5 "$n(3) leave-group $rcvr $group"

$ns at 0.4 "$src1 start"
$ns at 2.0 "$src2 start"

$ns at 4.0 "finish"

proc finish {} {
        global ns
        $ns flush-trace
        exec nam out.nam &
        exit 0
$ns run

Journal Support for Simple NS2 Projects: