Simulating packet dropping in a wireless network

ε祈祈猫儿з 提交于 2019-12-08 05:50:43

问题


How can I simulate a packet be dropped from a malicious node in a wireless network using ns2?


回答1:


First you need to modify aodv.cc and aodv.h files. In aodv.h after

/*  The Routing Agent */
class AODV: public Agent {

...

/*

* History management

*/

double      PerHopTime(aodv_rt_entry *rt);

...
add following line


bool     malicious;
With this variable we are trying to define if the node is malicious or not. In aodv.cc after


/*

  Constructor

*/

AODV::AODV(nsaddr_t id) : Agent(PT_AODV),btimer(this), htimer(this), ntimer(this), rtimer(this), lrtimer(this), rqueue() {

index = id;

seqno = 2;

bid = 1;

...
add following line

malicious = false;
The above code is needed to initialize, and all nodes are initially not malicious. Then we will write a code to catch which node is set as malicious. In aodv.cc after


if(argc == 2) {

  Tcl& tcl = Tcl::instance();



    if(strncasecmp(argv[1], "id", 2) == 0) {

      tcl.resultf("%d", index);

      return TCL_OK;

    }
add following line


if(strcmp(argv[1], "hacker") == 0) {

    malicious = true;

   return TCL_OK;

}
Now we will do some work in TCL to set a malicious node. Using script in my post , we add following line to set node 5 as malicious node.


$ns at 0.0 "[$mnode_(5) set ragent_] hacker"
You may add this line after


for {set i 0} {$i < $val(nn)} { incr i } {

$ns initial_node_pos $mnode_($i) 10

}

...
Alright, we have set malicious node but we did not tell malicious node what to do. As it is known, rt_resolve(Packet *p) function is used to select next hop node when routing data packets. So, we tell malicious node just drop any packet when it receives. To do that after


/*

Route Handling Functions

*/

void

AODV::rt_resolve(Packet *p) {

struct hdr_cmn *ch = HDR_CMN(p);

struct hdr_ip *ih = HDR_IP(p);

aodv_rt_entry *rt;

...
We add a few lines


// if I am malicious node

 if (malicious == true ) {

    drop(p, DROP_RTR_ROUTE_LOOP);

    // DROP_RTR_ROUTE_LOOP is added for no reason.

 }

And implementing malicious node is done. I hope the post will be helpful to design your secure routing protocol.

refer below link

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



来源:https://stackoverflow.com/questions/5261983/simulating-packet-dropping-in-a-wireless-network

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!