In this post, the Network Simulator (NS2) Programs for the Distance Vector Routing and the Link State Routing Protocols are provided Here.
PROGRAM:
Distance Vector routing protocol
set ns [new Simulator]
set nf [open out.nam w] $ns namtrace-all $nf
set tr [open out.tr w] $ns trace-all $tr
proc finish {} { global nf ns tr $ns flush-trace close $tr exec nam out.nam & exit 0 }
set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]
$ns duplex-link $n0 $n1 10Mb 10ms DropTail $ns duplex-link $n1 $n3 10Mb 10ms DropTail $ns duplex-link $n2 $n1 10Mb 10ms DropTail
$ns duplex-link-op $n0 $n1 orient right-down $ns duplex-link-op $n1 $n3 orient right $ns duplex-link-op $n2 $n1 orient right-up
set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp
set ftp [new Application/FTP] $ftp attach-agent $tcp
set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink
set udp [new Agent/UDP] $ns attach-agent $n2 $udp
set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp
set null [new Agent/Null] $ns attach-agent $n3 $null
$ns connect $tcp $sink $ns connect $udp $null
$ns rtmodel-at 1.0 down $n1 $n3 $ns rtmodel-at 2.0 up $n1 $n3
$ns rtproto DV
$ns at 0.0 "$ftp start" $ns at 0.0 "$cbr start"
$ns at 5.0 "finish"
$ns run
Link State routing protocol
set ns [new Simulator]
set nf [open out.nam w] $ns namtrace-all $nf
set tr [open out.tr w] $ns trace-all $tr
proc finish {} { global nf ns tr $ns flush-trace close $tr exec nam out.nam & exit 0 }
set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]
$ns duplex-link $n0 $n1 10Mb 10ms DropTail $ns duplex-link $n1 $n3 10Mb 10ms DropTail $ns duplex-link $n2 $n1 10Mb 10ms DropTail
$ns duplex-link-op $n0 $n1 orient right-down $ns duplex-link-op $n1 $n3 orient right $ns duplex-link-op $n2 $n1 orient right-up
set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp
set ftp [new Application/FTP] $ftp attach-agent $tcp
set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink
set udp [new Agent/UDP] $ns attach-agent $n2 $udp
set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp
set null [new Agent/Null] $ns attach-agent $n3 $null
$ns connect $tcp $sink $ns connect $udp $null
$ns rtmodel-at 1.0 down $n1 $n3 $ns rtmodel-at 2.0 up $n1 $n3
$ns rtproto LS
$ns at 0.0 "$ftp start" $ns at 0.0 "$cbr start"
$ns at 5.0 "finish"
$ns run
Original Source ...
إرسال تعليق