2012年3月10日
摘要: 1. check the source code of Bayesian Watchdog.2. check the solutions towards the three attacks defined by myself.关于贝叶斯的理解,参考http://www.cnblogs.com/LeftNotEasy/archive/2010/09/27/1837163.html 阅读全文
posted @ 2012-03-10 14:14 Fuzzy Joke 阅读(146) 评论(0) 推荐(0) 编辑
2012年3月8日
摘要: /** * Search for a black hole node. */voidNEIGHBOURS::SearchForBlackHole(int percentile_of_loss, int32_t ownIP, int heartbeat_malicious, int immediate_reaction_duration, double pktime) { int j; char text[200]; char protocol_name[MAX_PROTOCOL_NAME]; neighbour *n; double percentage; ... 阅读全文
posted @ 2012-03-08 15:20 Fuzzy Joke 阅读(288) 评论(0) 推荐(0) 编辑
摘要: /** * A packet from a neighbour has been detected. */voidWATCHDOG::neighboursPacketDetected(int32_t source_ip, int32_t destination_ip, int source_mac, int destination_mac, int sourcePort, int destinationPort, char * tmp_data, packet_t packet_type, double pktime) { if (debug > 2) printf("Neig 阅读全文
posted @ 2012-03-08 14:33 Fuzzy Joke 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 节点发送数据包,则将数据包缓存。/** * I read my own packet. */voidWATCHDOG::ownPacketDetected(int32_t source_ip, int32_t destination_ip, int sourcePort, int destinationPort, int mac_dst, char * tmp_data, packet_t packet_type, double pktime) { if (debug > 2) printf("Ownpacket\n"); int data_size; neighbo 阅读全文
posted @ 2012-03-08 14:11 Fuzzy Joke 阅读(305) 评论(0) 推荐(0) 编辑
摘要: watchdog读取数据包,维护以下四个包计数器。 float readed_packets; float ip_packets; float arp_packets; float interesting_readed_packets;如果是ARP,AODV数据包,则维护邻居。如果是IP报文,则interesting_readed_packets++。若接收到的是来源于自身的报文,则调用ownPacketDetected,否则维护邻居表,并针对非广播报文调用neighboursPacketDetected/** * Read one packet of the netw... 阅读全文
posted @ 2012-03-08 13:51 Fuzzy Joke 阅读(378) 评论(0) 推荐(0) 编辑
摘要: /*Constructor*/WATCHDOG::WATCHDOG(int32_t own_IP) { port = PORTW; //Port of the GW. devalue = 0; //Devalue old packets. readed_packets = 0; ip_packets = 0; arp_packets = 0; interesting_readed_packets = 0; heartbeat_malicious = HEARTBEAT_MALICIOUS_NODE; immediate_reaction_dura... 阅读全文
posted @ 2012-03-08 12:44 Fuzzy Joke 阅读(365) 评论(0) 推荐(0) 编辑
2012年3月7日
摘要: 1.开启混杂模式,接收邻居转发的所有数据包,不进行MAC过滤,全部sendToWatchdog(const Packet *p)2.当前节点转发数据包后,缓存数据包sendToWatchdog(const Packet *p, int mac_dst)//Start Watchdog CodevoidAODV::tap(const Packet *p) { sendToWatchdog(p);}void AODV::sendToWatchdog(const Packet *p){if(debug>1) printf("taping\n");char* data; // 阅读全文
posted @ 2012-03-07 20:38 Fuzzy Joke 阅读(499) 评论(0) 推荐(0) 编辑
2012年3月6日
摘要: 转载:http://blog.sina.com.cn/s/blog_3d2d79aa0100h47h.htmlawk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出(即管道)。它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出 (屏幕),即默认处理动作是prin 阅读全文
posted @ 2012-03-06 10:50 Fuzzy Joke 阅读(17395) 评论(0) 推荐(0) 编辑
2012年3月5日
摘要: NSG2.1.jar在网上可以下到,不过运行它需要安装JRE。我们可以利用NSG2.1生成一些平时经常使用的网络场景。打开命令:$java -jar NSG2.1.jar打开之后在屏幕左上方有一个小方块,可以随意拉成比较大的场景图,设置自己的网络参数等等,最后生成NS2可以运行的tcl脚本。 阅读全文
posted @ 2012-03-05 18:02 Fuzzy Joke 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 1.tcl脚本传入一个int变量给c++代码 在command解析里 int nodenum=atoi(argv[2]); printf("%d",nodenum); 2.在nam中输出结果 Tcl::instance().evalf("$ns trace-annotate \"node send d_\""); 3.改变node颜色$node1 color red 4.注册顶级命令 即tcl脚本写init_topology class InitTopologyCommand : public TclCommand { public: 阅读全文
posted @ 2012-03-05 17:59 Fuzzy Joke 阅读(1644) 评论(0) 推荐(0) 编辑