Files
src_rtg
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
This file gives a brief description of the commands existing in ns to simulate source routing. There is a sample file "src_rting.tcl" which contains a sample script to simulate two source routed connections. The steps involved in simulation: a) To enable source routing use node-config command in the following manner: > $ns src_rting 1 b) To establish a connection and to specify the source route to be used use the following command: > set temp [$n1 set src_agent_] > $temp install_connection 3 1 3 1 2 3 The first argurment here is the flow id for the connection. This is same as the flow id of the agent generating the traffic ( TCP or UDP). The second arguement is the source node id of the connection. The third arguement is the destination node id of the connection. The arguements following this form the source route of the connection. c) To insert the routes in the packets generated from your agent ( TCP or UDP) you need to set the target of the agent to the source routing agent: > $tcp target [$n1 set src_agent_] This steps will get the source routing working for you. A sample code is shown below : st login: Thu May 10 2001 07:25:54 -0700 from 63.108.172.129 No mail. bash: /etc/profile.d/alias.sh: No such file or directory [rishi@theory rishi]$ cd RA/ns-allinone-2.1b7.changedandwork/ns-2.1b7a [rishi@theory ns-2.1b7a]$ vi src_test.tcl #Create a simulator object set ns [new Simulator] $ns src_rting 1 # $ns node-config -perhopAgent Src_rt $ns color 1 Blue $ns color 2 Red #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms DropTail $ns duplex-link $n2 $n4 1Mb 10ms DropTail $ns duplex-link $n4 $n3 1Mb 10ms DropTail $ns duplex-link $n1 $n3 1Mb 10ms DropTail #Create a TCP agent and attach it to node n0 set cbr0 [new Agent/TCP] $ns attach-agent $n0 $cbr0 $cbr0 set fid_ 0 #Create a TCP agent and attach it to node n1 set cbr1 [new Agent/TCP] $ns attach-agent $n3 $cbr1 $cbr1 set fid_ 1 $cbr1 target [$n3 set src_agent_] $cbr0 target [$n0 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" $cbr1 set fid_ 1 $cbr1 target [$n3 set src_agent_] $cbr0 target [$n0 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" #Create a TCP agent and attach it to node n0 set cbr0 [new Agent/TCP] $ns attach-agent $n0 $cbr0 $cbr0 set fid_ 0 #Create a TCP agent and attach it to node n1 set cbr1 [new Agent/TCP] $ns attach-agent $n3 $cbr1 $cbr1 set fid_ 1 $cbr1 target [$n3 set src_agent_] $cbr0 target [$n0 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms DropTail $ns duplex-link $n2 $n4 1Mb 10ms DropTail $ns duplex-link $n4 $n3 1Mb 10ms DropTail $ns duplex-link $n1 $n3 1Mb 10ms DropTail #Create a TCP agent and attach it to node n0 set cbr0 [new Agent/TCP] $ns attach-agent $n0 $cbr0 $cbr0 set fid_ 0 #Create a TCP agent and attach it to node n1 set cbr1 [new Agent/TCP] $ns attach-agent $n3 $cbr1 $cbr1 set fid_ 1 $cbr1 target [$n3 set src_agent_] $cbr0 target [$n0 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms DropTail $ns duplex-link $n2 $n4 1Mb 10ms DropTail $ns duplex-link $n4 $n3 1Mb 10ms DropTail $ns duplex-link $n1 $n3 1Mb 10ms DropTail #Create a TCP agent and attach it to node n0 set cbr0 [new Agent/TCP] $ns attach-agent $n0 $cbr0 $cbr0 set fid_ 0 #Create a TCP agent and attach it to node n1 set cbr1 [new Agent/TCP] $ns attach-agent $n3 $cbr1 $cbr1 set fid_ 1 $cbr1 target [$n3 set src_agent_] $cbr0 target [$n0 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" $ns at 0.5 "$ftp2 start" #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes #Create a simulator object set ns [new Simulator] $ns src_rting 1 # $ns node-config -perhopAgent Src_rt $ns color 1 Blue $ns color 2 Red #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes #Create a simulator object set ns [new Simulator] # enable source routing $ns src_rting 1 $ns color 1 Blue $ns color 2 Red #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes set n0 [$ns node] #Create a simulator object set ns [new Simulator] # enable source routing $ns src_rting 1 $ns color 1 Blue $ns color 2 Red #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms DropTail $ns duplex-link $n2 $n4 1Mb 10ms DropTail $ns duplex-link $n4 $n3 1Mb 10ms DropTail $ns duplex-link $n1 $n3 1Mb 10ms DropTail #Create a TCP agent and attach it to node n0 set cbr0 [new Agent/TCP] $ns attach-agent $n0 $cbr0 $cbr0 set fid_ 0 #Create a TCP agent and attach it to node n1 set cbr1 [new Agent/TCP] $ns attach-agent $n3 $cbr1 $cbr1 set fid_ 1 $cbr0 target [$n0 set src_agent_] $cbr1 target [$n3 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" $ns at 0.5 "$ftp2 start" $ns at 5.0 "$ftp1 stop" $ns at 10.5 "$ftp2 stop" $ns at 11.0 "$ns halt" $ns run "src_test.tcl" 73L, 1480C written [rishi@theory ns-2.1b7a]$ vi src_test.tcl #Create a simulator object set ns [new Simulator] # enable source routing $ns src_rting 1 $ns color 1 Blue $ns color 2 Red #Open the nam trace file set nf [open out.tr w] $ns trace-all $nf set f [open out.nam w] $ns namtrace-all $f #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms DropTail $ns duplex-link $n2 $n4 1Mb 10ms DropTail $ns duplex-link $n4 $n3 1Mb 10ms DropTail $ns duplex-link $n1 $n3 1Mb 10ms DropTail #Create a TCP agent and attach it to node n0 set cbr0 [new Agent/TCP] $ns attach-agent $n0 $cbr0 $cbr0 set fid_ 0 #Create a TCP agent and attach it to node n1 set cbr1 [new Agent/TCP] $ns attach-agent $n3 $cbr1 $cbr1 set fid_ 1 $cbr0 target [$n0 set src_agent_] $cbr1 target [$n3 set src_agent_] set temp [$n0 set src_agent_] $temp install_connection [$cbr0 set fid_] 0 1 0 2 4 3 1 set temp [$n3 set src_agent_] $temp install_connection [$cbr1 set fid_] 3 4 3 2 4 set null0 [new Agent/TCPSink] set null1 [new Agent/TCPSink] $ns attach-agent $n1 $null0 $ns attach-agent $n4 $null1 $ns connect $cbr0 $null0 $ns connect $cbr1 $null1 set ftp1 [$cbr0 attach-source FTP] set ftp2 [$cbr1 attach-source FTP] $ns at 0.5 "$ftp1 start" $ns at 0.5 "$ftp2 start" $ns at 5.0 "$ftp1 stop" $ns at 10.5 "$ftp2 stop" $ns at 11.0 "$ns halt" $ns run