天天看點

ns常用

$cbr set interval_ 0.005 設定時間間隔

$cbr set random_1 設定噪聲

改變無線網絡中 802.11 的能量狀态

# pt_ = 8.5872e-4; // for 40m transmission range.

# pt_ = 7.214e-3; // for 100m transmission range.

# pt_ = 0.2818; // for 250m transmission range.

# pt_ = pow(10, 2.45) * 1e-3; // 24.5 dbm, ~ 281.8mw

phy/wirelessphy set pt_ 8.5872e-4

(1)移動場景的建立

使用指令:./ setdest -n 10 -p 0 -m 10 -t 500 -x 1000 -y 500 > scen

生成檔案名為scen場景檔案,在該場景中有10個移動節點,在1000m×500m的矩形區域中随機運動,最大速度為20米/秒,平均速度10米/秒,場景模拟時間為500秒。

(2)傳輸負載生成

ns cbrgen.tcl -type cbr -nn10 -seed 1 -mc 10 -rate 1.0 >cbr

該指令表示,生成cbr場景檔案,在該場景中有10個節點,節點間最多有10條連接配接,某時刻産生1個cbr資料流,每秒中發送512byte位元組

給你舉個例子吧:

setdest -v 1 -n 35 -p 10 -m 10 -t 100 -x 800 -y 1000

-v:版本,我都用版本1的

-n:節點數

-p:停留時間

-m:最大速度

-t:時間

-x,-y:場景大小

r 160.093884945 _6_ rtr  --- 5 tcp 1492 [a2 4 6 800] ------ [0:0 1:0 32 1] [35 0] 2 0

l         第一欄可以是r、s、f、d,分别表示“接收、發送、轉發、丢棄”

l         第二欄是時間

l         第三欄是節點号

l         第四欄可以是mac、agt、rtr和ifq,分别表示mac層資料包、傳輸層資料包、路由層資料包、沖突優先級隊列

l         第六欄是資料包的全局序列号(ns要對所有類型的資料包進行統一編号)

l         第七、八欄分别是packet類型和大小(bytes)

l         第九欄括号内設計mac層資訊。四個數值依次代表:資料包在無線信道中期待發送時間(second) 、接收節點的mac-id、發送節點的mac-id和mac類型(0x0800代表ethertype_ip;0x0806代表ethernet_arp)

l         第二個括号(ip資訊)内的三個數值分别代表源ip位址、目的ip位址和資料包的ttl(time to live/存活時間)

        l  第三個括号是tcp資訊:第一個數值表示tcp序列号或應答ack序列号

有關aodv 攻擊和base station<b></b>

if ( node_id == maliciousnode_id) {

generate new packet and

sendrreq();

sendrrer();

}

在實作協定的時候,我需要得到網絡接點的位置坐标,不知道可不可以得到,請高手指點

.l利用下面方法獲得節點對象,其中nsaddr_t為節點id.

 static node* get_node_by_address(nsaddr_t);

我按照網上的一篇文章《how to use promiscuous mode in aodv》在aodv協定中使用混雜模式,然後在仿真腳本中加入這兩句:

set tapagent [$node_(2) agent 255]

$tapagent install-tap [$node_(2) set mac_(0)]

雖然可以運作,但在運作時隻能監聽到幾個進行路由時的廣播包,其他的資料包全都監聽不到。但是在使用dsr協定時,不用設定 就能監聽到絕大部分的包。

不知是我的腳本中設定錯了還是其他的問題.

我想模拟一個節點在通信中由于各種原因而失效,應該怎麼處理?

[quote=robin2046] $ns rtmodel-at $time down $node[/quote]

這個隻能用于普通節點,對于無線節點無效,急切盼望ns的dever組能開發wireless子產品的down和up功能

我以前做實驗寫的,如果你想統計t時刻所有節點剩餘能量,在t時刻調用這個函數即可。

proc displayenergy {} {

global ns_ tracefd mnode_ val energy

set now [$ns_ now]

   for {set i 0} {$i &lt; $val(nn) } {incr i} {

      puts $energy "at time $now the energy of node: $i is [$mnode_($i) energy]"

   }

繼續閱讀