如何在AODV(NS-2)中实现混杂模式并且实现邻居监测功能

本文详细介绍了如何在NS-2的AODV路由协议中实现混杂模式监听邻居节点通信,包括修改aodv.h和aodv.cc文件,添加TCL命令以及在tcl脚本中调用。同时,还提及了如何添加IDS监测节点,监测RREQ和RREP数据包,以进行自定义处理。
摘要由CSDN通过智能技术生成

首先,我们知道在NS2 AODV协议中,希望某个节点侦听到其邻居节点间通信信息时。不能直接在AODV协议中获取邻居节点之间的数据。所以要设置成混在模式下的监听过程。下面具体介绍如何添加该过程:

1.修改aodv/aodv.h

Make AODV agent a child class of Tap (you should have a member function tap), and define the Mac variable

 

2.修改aodv/aodv.cc

首先定义一个TCL command “install-tap” 并实现AODV::tap()函数

3.Modify tcl/lib/ns-mobilenode.tcl

具体参见:

4.在tcl脚本中调用Install-tap

在你定义的节点后面添加这样两行代码:

set tapagent [$node_($i) agent 255]

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

这样节点node_($i)就可以监听到其邻居节点之间的通信数据报。

 

下面简要介绍在Ad hoc 中添加一些IDS的过程:

根据上面提供的步骤,我们已经可以建立OADV的混杂模式(Promiscumus Mode)

首先我们得先建立一种攻击模式(如blackhole attack, greyhole attack, wormhole attack等),下一篇介绍如何添加

一个blackhole attack。

接下来我们就是要添加几个IDS监测节点。具体步骤如下(过程和上面所描述的基本一样):


1.修改aodv/aodv.h(同上)

2.修改aodv/aodv.cc

在command()函数中添加这一项:

实现AODV::tap()函数

这里面的我只监测邻居节点的件的RREQ和RREP数据包,并且对监测到的RREQ和RREP数据包之后作相应的处理

如函数Sniffer_readRREQ(p)和Sniffer_readRREP(p).这个两个函数可以根据你自己的需求来实现。这里不给出这两个函数的实现了。

这里我们也可以侦听数据报文,而不仅仅是控制报文。也就是说根据你自己的具体需求来定制。

接下来就是按照上面说的那样,定义你的IDS节点,并在你需要设置成为IDS节点的tcl脚本后面添加上

set tapagent [$node_($i) agent 255]
        $tapagent install-tap [$node_($i) set mac_(0)]

$i就是你要定义的IDS节点ID。


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值