2008-11-05 17 views
2

J'essaie d'utiliser le modèle d'erreur dans ns2 avec des liens sans fil, j'utilise ns2.33. J'ai essayé le modèle d'erreur uniforme et le modèle de chaîne de Markov. Aucune erreur de ns mais quand j'essaye de trouver les paquets abandonnés dus à la corruption je ne peux pas trouver aucun d'entre eux en utilisant les modèles uniformes ou markov. Alors s'il vous plaît aidez-moi si j'ai fait une erreur dans l'utilisation du modèle d'erreur.Aucun abandon de paquets utilisant les modèles d'erreur pour le scénario sans fil?

Pour rechercher les paquets abandonnés J'utilise

eid @ eid-laptop: ~/code/NS2/noisy mixed.tr $ cat | grep d

Voici un code complet:

### This simulation is an example of combination of wired and wireless 
### topologies. 
#------------------------------------------------------------------------------- 
#defining a new hashtable to store values 
global opt 
set adhocRouting DSDV 
set stop   350 
set num_wired_nodes  1 
set num_bs_nodes   1 
set num_wireless_nodes    2 
set x 300 
set y 300 
#------------------------------------------------------------------------------- 

proc plotWindow { tcpSource file } { 
global ns_ 
set time 0.1 
set now [$ns_ now] 
set cwnd [$tcpSource set cwnd_] 
set wnd [$tcpSource set window_] 
puts $file "$now $cwnd" 
$ns_ at [expr $now+$time] "plotWindow $tcpSource $file" 
} 

proc wireless_node_config {ns topo em} { 
    $ns node-config -adhocRouting DSDV \ 
       -llType LL \ 
       -macType Mac/802_11 \ 
       -ifqType Queue/DropTail/PriQueue \ 
       -ifqLen 50 \ 
       -antType Antenna/OmniAntenna \ 
       -propInstance [new Propagation/TwoRayGround] \ 
       -phyType Phy/WirelessPhy \ 
       -channel [new Channel/WirelessChannel] \ 
       -topoInstance $topo \ 
       -wiredRouting ON \ 
       -agentTrace ON \ 
       -routerTrace OFF \ 
       -macTrace OFF \ 
@@     -outgoingErrProc $em 
@@     -incomingErrProc $em 

} 

proc nam {ns namFile trFile namOutFile} { 
    $ns flush-trace 
    close $namFile 
    close $trFile 
    puts "running nam..." 
# exec nam $namOutFile & 
    puts "I am in nam" 
} 
proc finish { } { 
    exit 0 
} 
#------------------------------------------------------------------------------- 
# The global simulator instance 
set ns_ [new Simulator] 
#------------------------------------------------------------------------------- 
#Hierarchical routing is needed to in mixed environments 
#each of wireless and wired environment must be in seperated domains 
#so at least we want 2 domains 

# set up for hierarchical routing 
$ns_ node-config -addressType hierarchical 
AddrParams set domain_num_ 2 
lappend cluster_num 1 2 
AddrParams set cluster_num_ $cluster_num 
lappend eilastlevel 1 1 2 
AddrParams set nodes_num_ $eilastlevel 
#------------------------------------------------------------------------------- 
#set the Topology 
set topo [new Topography] 
$topo load_flatgrid x y 

# god needs to know the number of all wireless interfaces 
create-god [expr $num_wireless_nodes+$num_wired_nodes] 
#------------------------------------------------------------------------------- 
#trace output file 
set trFile [open mixed.tr w] 
$ns_ trace-all $trFile 

# nam output files 
set namFile [open mixed.nam w] 
$ns_ namtrace-all $namFile 
$ns_ namtrace-all-wireless $namFile x y 

#xgraph output files 
set x0 [open xgraph0.tr w] 

#extra files 
set cwndFile [open cwndFile.wtc w] 
#------------------------------------------------------------------------------- 
#Define different colors for data flows (for NAM) 
$ns_ color 1 Blue 
$ns_ color 2 Red 
$ns_ color 3 Green 
#------------------------------------------------------------------------------- 
@@#creating the error model 
@@set m1_ubstate 27.0 
@@set m1_bstate 12.0 
@@set m2_ubstate 0.4 
@@set m2_bstate 0.4 
@@set durlist "$m1_ubstate $m1_bstate $m2_ubstate $m2_bstate" 
@@set errmodel [new ErrorModel/ComplexTwoStateMarkov $durlist time] 
@@$errmodel unit packet 
@@$errmodel drop-target [new Agent/Null] 

#the option below is for wired links, there is no links in wireless environment 

#$ns_ link-lossmodel $loss_module $BS(0) $node_(0) 
#------------------------------------------------------------------------------- 
#Creating the nodes 

    # The wired nodes 
set addresses {0.0.0 1.0.0 1.1.0 1.1.1} 
set W(0) [$ns_ node [lindex $addresses 0]] 
    #The wireless nodes 
wireless_node_config $ns_ $topo $errmodel 
set BS(0) [$ns_ node [lindex $addresses 1]] 


$ns_ node-config -wiredRouting OFF 
     #base stations nodes 
$BS(0) random-motion 0 

     #mobile nodes 
    for {set j 0} {$j < [expr $num_wired_nodes + $num_bs_nodes]} {incr j} { 
    set node_($j) [ $ns_ node [lindex $addresses [expr $j+2]] ] 
    #attach nodes to base station 
    $node_($j) base-station [AddrParams addr2id [$BS(0) node-addr]] 
    } 

# End Creating the Nodes 
#------------------------------------------------------------------------------- 
# Positioning the nodes 
    $BS(0) set X_ 50.0 
    $BS(0) set Y_ 50.0 
    $BS(0) set Z_ 0.0 
    $node_(0) set X_ 0.0 
    $node_(0) set Y_ 0.0 
    $node_(0) set Z_ 0.0 
    $node_(1) set X_ 100.0 
    $node_(1) set Y_ 0.0 
    $node_(1) set Z_ 0.0 
#------------------------------------------------------------------------------- 
#create links between wired and BS nodes 
$ns_ duplex-link $W(0) $BS(0) 2Mb 2ms DropTail down 
$ns_ duplex-link-op $W(0) $BS(0) orient down 
$ns_ queue-limit $W(0) $BS(0) 2020Mb 
#$ns_ duplex-link-op $W(0) $BS(0) queuePos 0.5 
#------------------------------------------------------------------------------- 

#Sizing the mobile nodes this will make them appear in NAM 
for {set i 0} {$i < $num_wireless_nodes} {incr i} { 
     $ns_ initial_node_pos $node_($i) 10 
    } 
#------------------------------------------------------------------------------- 
# setup TCP connections 
    set tcp1 [new Agent/TCP/Newreno] 
    $tcp1 set class_ 2 
    set sink1 [new Agent/TCPSink/DelAck] 
    $ns_ attach-agent $W(0) $tcp1 
    $ns_ attach-agent $node_(0) $sink1 
    $ns_ connect $tcp1 $sink1 
    set ftp1 [new Application/FTP] 
    $ftp1 attach-agent $tcp1 
#------------------------------------------------------------------------------- 
#time line scenario. 
$ns_ at 1.5 "$ftp1 start" 
$ns_ at [expr $stop-10] "$ftp1 stop" 

#reset nodes after finishing 
for {set i 0} {$i < $num_wireless_nodes } {incr i} { 
     $ns_ at $stop.000000 "$node_($i) reset"; 
    } 
$ns_ at $stop.000000 "$BS(0) reset"; 

puts "Starting Simulation..." 
$ns_ at 0.1 "plotWindow $tcp1 $cwndFile" 
$ns_ at $stop.1 "nam $ns_ $namFile $trFile mixed.nam" 
$ns_ at $stop.2 "finish" 
#------------------------------------------------------------------------------- 
$ns_ run 

Vous pouvez également trouver même code here

Répondre

-1

Essayez:

grep d mixed.tr