2013-12-22 50 views
0

我們項目的標題是MANET人工免疫系統的路由協議(DSR)。如何實現在NS2模擬器DSR協議在Ubuntu

在這個項目中,我們的目的是檢測在MANET一個行爲不當節點。

我們熟悉TCL和我們想知道如何在Ubuntu NS2模擬器實現DSR。

我應該做的下一步,或在我接下來應該進行搜索,或者我應該在下一個讀什麼,做關心幫助,甚至一個簡單的鏈接將是明顯的。

+2

看http://www.isi.edu/nsnam/ns/tutorial/,看看它是否回答你的問題,特別是部分'新的協議ns' – nrathaus

回答

4

對於DSR協議的實現,你不需要做任何事情,因爲它是在所有的NS2版本已經上市,您可以使用以下行TCL腳本中使用DSR協議。

$ns node-config -adhocRouting DSR \ 

惡意節點實施參考以下鏈接

http://elmurod.net/en/index.php/archives/196

在這裏AODV他們已經實施了惡意的(不當行爲)節點。爲DSR做同樣的事情。

+0

謝謝。你能指導我們如何在tcl腳本中添加攻擊(例如黑洞)。 – user3127115

0

我也開始在DSR工作。在這裏,我發現瞭解任何內置協議必須通過這些文件。它也是在ns 2.35中創建/克隆任何協議的流程。

  1. NS-ALLINONE-2.35 \ NS-2.35 \共同\ packet.h
  2. NS-ALLINONE-2.35 \ NS-2.35 \跟蹤\ CMU-trace.h裏
  3. NS-ALLINONE-2.35 \ ns-2.35 \ trace \ cmu-trace.cc
  4. ns-allinone-2.35 \ ns-2.35 \ tcl \ lib \ ns-packet.tcl
  5. ns-allinone-2.35 \ ns-2.35 \ tcl \ lib \ ns-lib.tcl
  6. ns-allinone-2.35 \ ns-2.35 \ queue \ priqueue.cc
  7. ns-allinone-2.35 \ ns-2.35 \ Makefile
  8. NS-ALLINONE-2.35 \ NS-2.35 \ TCL \ lib中\ NS-agent.tcl
  9. NS-ALLINONE-2.35 \ NS-2.35 \ TCL \ lib中\ ns-mobilenode.tc
  10. NS-ALLINONE -2.35 \ NS-2.35 \隊列\ rtqueue.cc
  11. NS-ALLINONE-2.35 \ NS-2.35 \路由\ rtable.h
  12. NS-ALLINONE-2.35 \ NS-2.35 \ WPAN \ p802_15_4nam.cc
  13. NS-ALLINONE 2.35 \ dei80211mr-1.1.4的\ src \ InitTCL.cc
  14. 的.h和.cc文件

但仍然DSR是一個可選案例。可能我會再次發表評論以及更多信息。

0

你可以試試這個代碼,它的工作對我罰款

#=================================== 
#  Simulation parameters setup 
#=================================== 
Phy/WirelessPhy set bandwidth_ 10Mb  ;#Data Rate 
Mac/802_11 set dataRate_ 10Mb    ;#Rate for Data Frames 
set val(chan) Channel/WirelessChannel ;# channel type 
set val(prop) Propagation/TwoRayGround ;# radio-propagation model 
set val(netif) Phy/WirelessPhy   ;# network interface type 
set val(mac) Mac/802_11     ;# MAC type 
set val(ifq) Queue/DropTail/PriQueue ;# interface queue type 
set val(ll)  LL       ;# link layer type 
set val(ant) Antenna/OmniAntenna  ;# antenna model 
set val(ifqlen) 50       ;# max packet in ifq 
set val(nn)  25       ;# number of mobilenodes 
set val(rp)  DSR      ;# routing protocol 
set val(x)  2146      ;# X dimension of topography 
set val(y)  380      ;# Y dimension of topography 
set val(stop) 10.0       ;# time of simulation end 

#=================================== 
#  Initialization   
#=================================== 
#Create a ns simulator 
set ns [new Simulator] 

#Setup topography object 
set topo  [new Topography] 
$topo load_flatgrid $val(x) $val(y) 
create-god $val(nn) 

#Open the NS trace file 
set tracefile [open outm.tr w] 
$ns trace-all $tracefile 

#Open the NAM trace file 
set namfile [open outm.nam w] 
$ns namtrace-all $namfile 
$ns namtrace-all-wireless $namfile $val(x) $val(y) 
set chan [new $val(chan)];#Create wireless channel 

#=================================== 
#  Mobile node parameter setup 
#=================================== 
$ns node-config -adhocRouting $val(rp) \ 
       -llType  $val(ll) \ 
       -macType  $val(mac) \ 
       -ifqType  $val(ifq) \ 
       -ifqLen  $val(ifqlen) \ 
       -antType  $val(ant) \ 
       -propType  $val(prop) \ 
       -phyType  $val(netif) \ 
       -channel  $chan \ 
       -topoInstance $topo \ 
       -agentTrace ON \ 
       -routerTrace ON \ 
       -macTrace  ON \ 
       -movementTrace ON 

#=================================== 
#  Nodes Definition   
#=================================== 
#Create nodes 
set n0 [$ns node] 
$n0 set X_ 573 
$n0 set Y_ 357 
$n0 set Z_ 0.0 
$ns initial_node_pos $n0 20 
set n1 [$ns node] 
$n1 set X_ 227 
$n1 set Y_ 294 
$n1 set Z_ 0.0 
$ns initial_node_pos $n1 20 
set n2 [$ns node] 
$n2 set X_ 103 
$n2 set Y_ 109 
$n2 set Z_ 0.0 
$ns initial_node_pos $n2 20 
set n3 [$ns node] 
$n3 set X_ 882 
$n3 set Y_ 112 
$n3 set Z_ 0.0 
$ns initial_node_pos $n3 20 
set n4 [$ns node] 
$n4 set X_ 739 
$n4 set Y_ 46 
$n4 set Z_ 0.0 
$ns initial_node_pos $n4 20 
set n5 [$ns node] 
$n5 set X_ 830 
$n5 set Y_ -68 
$n5 set Z_ 0.0 
$ns initial_node_pos $n5 20 
set n6 [$ns node] 
$n6 set X_ 905 
$n6 set Y_ 336 
$n6 set Z_ 0.0 
$ns initial_node_pos $n6 20 
set n7 [$ns node] 
$n7 set X_ 161 
$n7 set Y_ 20 
$n7 set Z_ 0.0 
$ns initial_node_pos $n7 20 
set n8 [$ns node] 
$n8 set X_ 1187 
$n8 set Y_ 99 
$n8 set Z_ 0.0 
$ns initial_node_pos $n8 20 
set n9 [$ns node] 
$n9 set X_ 934 
$n9 set Y_ -79 
$n9 set Z_ 0.0 
$ns initial_node_pos $n9 20 
set n10 [$ns node] 
$n10 set X_ 416 
$n10 set Y_ 120 
$n10 set Z_ 0.0 
$ns initial_node_pos $n10 20 
set n11 [$ns node] 
$n11 set X_ 601 
$n11 set Y_ 151 
$n11 set Z_ 0.0 
$ns initial_node_pos $n11 20 
set n12 [$ns node] 
$n12 set X_ 354 
$n12 set Y_ 419 
$n12 set Z_ 0.0 
$ns initial_node_pos $n12 20 
set n13 [$ns node] 
$n13 set X_ 1020 
$n13 set Y_ 199 
$n13 set Z_ 0.0 
$ns initial_node_pos $n13 20 
set n14 [$ns node] 
$n14 set X_ 513 
$n14 set Y_ -54 
$n14 set Z_ 0.0 
$ns initial_node_pos $n14 20 
set n15 [$ns node] 
$n15 set X_ 1019 
$n15 set Y_ -17 
$n15 set Z_ 0.0 
$ns initial_node_pos $n15 20 
set n16 [$ns node] 
$n16 set X_ 351 
$n16 set Y_ -184 
$n16 set Z_ 0.0 
$ns initial_node_pos $n16 20 
set n17 [$ns node] 
$n17 set X_ 54 
$n17 set Y_ -84 
$n17 set Z_ 0.0 
$ns initial_node_pos $n17 20 
set n18 [$ns node] 
$n18 set X_ 278 
$n18 set Y_ 267 
$n18 set Z_ 0.0 
$ns initial_node_pos $n18 20 
set n19 [$ns node] 
$n19 set X_ 319 
$n19 set Y_ -13 
$n19 set Z_ 0.0 
$ns initial_node_pos $n19 20 
set n20 [$ns node] 
$n20 set X_ 768 
$n20 set Y_ -156 
$n20 set Z_ 0.0 
$ns initial_node_pos $n20 20 
set n21 [$ns node] 
$n21 set X_ 962 
$n21 set Y_ 198 
$n21 set Z_ 0.0 
$ns initial_node_pos $n21 20 
set n22 [$ns node] 
$n22 set X_ 747 
$n22 set Y_ 293 
$n22 set Z_ 0.0 
$ns initial_node_pos $n22 20 
set n23 [$ns node] 
$n23 set X_ 589 
$n23 set Y_ -56 
$n23 set Z_ 0.0 
$ns initial_node_pos $n23 20 
set n24 [$ns node] 
$n24 set X_ 627 
$n24 set Y_ -225 
$n24 set Z_ 0.0 
$ns initial_node_pos $n24 20 


#=================================== 
#  Generate movement   
#=================================== 

$ns at 0.3 " $n8 setdest 750 55 50 " 
$ns at 0.5 " $n15 setdest 739 46 80 " 
$ns at 0.4 " $n16 setdest 742 280 50 " 
$ns at 0.2 " $n17 setdest 720 170 80 " 
$ns at 0.2 " $n23 setdest 450 144 50 " 

#=================================== 
#  Agents Definition   
#=================================== 
#Setup a UDP connection 
set udp0 [new Agent/UDP] 
$ns attach-agent $n0 $udp0 
set null1 [new Agent/Null] 
$ns attach-agent $n20 $null1 
$ns connect $udp0 $null1 
$udp0 set packetSize_ 1500 

#=================================== 
#  Applications Definition   
#=================================== 
#Setup a CBR Application over UDP connection 
set cbr0 [new Application/Traffic/CBR] 
$cbr0 attach-agent $udp0 
$cbr0 set packetSize_ 1000 
$cbr0 set rate_ 1.0Mb 
$cbr0 set random_ null 

$ns at 1.0 "$cbr0 start" 
$ns at 5.0 "$cbr0 stop" 

#=================================== 
#  Termination   
#=================================== 
#Define a 'finish' procedure 
proc finish {} { 
    global ns tracefile namfile 
    $ns flush-trace 
    close $tracefile 
    close $namfile 
    exec nam out.nam & 
    exit 0 
}    


for {set i 0} {$i < $val(nn)} { incr i } { 
    $ns at $val(stop) "\$n$i reset" 
} 
# malicious node add 
$ns at 0.5 "[$n11 set ragent_] hacker" 
#$ns at 0.4 "[$n7 set ragent_] hacker 99" 
#$ns at 0.4 "[$n4 set ragent_] hacker 99" 

$ns at $val(stop) "$ns nam-end-wireless $val(stop)" 
$ns at $val(stop) "finish" 
$ns at $val(stop) "puts \"done\" ; $ns halt" 
$ns run