天天看点

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]"

   }

继续阅读