Hi, everyone!
I am doing a job to simulate a scenario with 2 BS, 2 mobile nodes each
in one BS's domain respectively, and the 2 BS connected with a wired
node. I describe it below: D-----A-B-C-----E, DE are two mobile nodes,
AC are two Base-stations and B is the wired node. I need to build 3 TCP
links: D->A, D->B, D->E.
As in my script, I find D->A, D->B is normal while there is no TCP
connection between D and E through D->A->B->C->E. Could anyone can help
me on this?
Thanks in advance!
================================
My script is below:
# node(0)-----BS(0)-W(0)-BS(1)-----node(1)
# =====================================================================
# Define options
# =====================================================================
set opt(chan) Channel/WirelessChannel
set opt(prop) Propagation/TwoRayGround
set opt(netif) Phy/WirelessPhy
set opt(mac) Mac/802_11
set opt(ant) Antenna/OmniAntenna
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(ifqlen) 50
set opt(nn) 4 ;# nodes num
set opt(adhocRouting) AODV
set opt(cp) ""
set opt(sc) ""
set opt(x) 670
set opt(y) 670
set opt(seed) 0.0
set opt(stop) 15.0
set opt(ftp0-start) 2.0 ;# D->A
set opt(ftp1-start) 5.0 ;# D->B
set opt(ftp2-start) 8.0 ;# D->E
set opt(ftp3-start) 2.0 ;# E->B
set num_wired_nodes 1
set num_bs_nodes 2
# ======================================================================
# check boundary para & random seed
if {$opt(x) == 0 || $opt(y) == 0} {
puts "Out!!"
}
if {$opt(seed) > 0} {
puts "new seed: $opt(seed)\n"
ns-random $opt(seed)
}
# Create simulator instance
set ns_ [new Simulator]
# Setup for hier routing
$ns_ node-config -addressType hierarchical
AddrParams set domain_num_ 3
lappend cluster_num 1 1 1
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 2 2 1
AddrParams set nodes_num_ $eilastlevel
# Setup trace
set tracefd [open scenario_0.tr w]
set namtrace [open scenario_0.nam w]
$ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)
# Create topo. obj.
set topo [new Topography]
# Define topo.
$topo load_flatgrid $opt(x) $opt(y)
# Create God.
create-god $opt(nn)
set tmp {0.0.0 1.0.0 1.0.1 2.0.0 2.0.1}
# Create wired node.
set W(0) [$ns_ node [lindex $tmp 0]]
# Configure BS node.
$ns_ node-config -adhocRouting $opt(adhocRouting) \
-llType $opt(ll) \
-macType $opt(mac) \
-ifqType $opt(ifq) \
-ifqLen $opt(ifqlen) \
-antType $opt(ant) \
-propType $opt(prop) \
-phyType $opt(netif) \
-channelType $opt(chan) \
-topoInstance $topo \
-wiredRouting ON \
-agentTrace ON \
-routerTrace ON \
-macTrace OFF
# Create BS node.
set BS(0) [$ns_ node [lindex $tmp 1]]
$BS(0) random-motion 0
$BS(0) set X_ 1.0
$BS(0) set Y_ 2.0
$BS(0) set Z_ 0.0
set BS(1) [$ns_ node [lindex $tmp 3]]
$BS(1) random-motion 0
$BS(1) set X_ 650.0
$BS(1) set Y_ 600.0
$BS(1) set Z_ 0.0
# Configure mobilenodes
$ns_ node-config -wiredRouting OFF
# Create mobilenodes
set node(0) [$ns_ node [lindex $tmp 2]]
$node(0) base-station [AddrParams addr2id [$BS(0) node-addr]]
set node(1) [$ns_ node [lindex $tmp 4]]
$node(1) base-station [AddrParams addr2id [$BS(1) node-addr]]
$node(0) set X_ 0.0
$node(0) set Y_ 0.0
$node(0) set Z_ 0.0
$node(1) set X_ 600.0
$node(1) set Y_ 10.0
$node(1) set Z_ 0.0
# Create links
$ns_ duplex-link $BS(0) $W(0) 5Mb 2ms DropTail
$ns_ duplex-link $W(0) $BS(1) 5Mb 2ms DropTail
# Setup TCP connections
set tcp0 [new Agent/TCP] ;# D->A
$tcp0 set class_ 2
set sink0 [new Agent/TCPSink]
$ns_ attach-agent $node(0) $tcp0
$ns_ attach-agent $BS(0) $sink0
$ns_ connect $tcp0 $sink0
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ns_ at opt(ftp0-start) "$ftp0 start"
set tcp1 [new Agent/TCP] ;# D->B
$tcp1 set class_ 2
set sink1 [new Agent/TCPSink]
$ns_ attach-agent $node(0) $tcp1
$ns_ attach-agent $W(0) $sink1
$ns_ connect $tcp1 $sink1
set ftp1 [new Application/FTP]
$ftp1 attach-agent $tcp1
$ns_ at opt(ftp1-start) "$ftp1 start"
set tcp2 [new Agent/TCP] ;# D->E
$tcp2 set class_ 2
set sink2 [new Agent/TCPSink]
$ns_ attach-agent $node(0) $tcp2
$ns_ attach-agent $node(1) $sink2
$ns_ connect $tcp2 $sink2
set ftp2 [new Application/FTP]
$ftp2 attach-agent $tcp2
$ns_ at opt(ftp2-start) "$ftp2 start"
for {set i 0} {$i < 2} {incr i} {
$ns_ initial_node_pos $node($i) 20
}
for {set i 0} {$i < 2} {incr i} {
$ns_ at $opt(stop).00010 "$node($i) reset"
$ns_ at $opt(stop).00010 "$BS($i) reset"
}
$ns_ at $opt(stop).0005 "puts \"NS EXITING...\" ; $ns_ halt"
$ns_ at $opt(stop).0002 "stop"
proc stop {} {
global ns_ tracefd namtrace
$ns_ flush-trace
close $tracefd
close $namtrace
exec nam scenario_0.nam &
#exec xgraph scenario_0.tr -geometry 800x400 &
exit 0
}
puts "Running..."
$ns_ run
=================================
Kindly regards,
Jilong LIAO