Ns2.34上leach协议的完美移植

合集下载

基于NS2的LEACH协议仿真与分析

基于NS2的LEACH协议仿真与分析

0引 言
无线传感器网络由于体积小、成本低以及强大的信息 获取功能, 使它在军事应用, 抢险救灾, 医学健康[ 1] , 生态 环境, 智能家庭[2] 等领域具有良好的应用前景, 成为目前 无线通信网络的一个新的研究热点。而路由协议解决的 是数据传输问题, 路由协议的性能和整个网络的性能密切 相关, 因此, 研究无线传感器网络路由协议具有重大意义。
tcl, 添加协议运行的参数。
4) 修改 leach _test 文件, 添加 leach 协议运行所需的
环境参数。
2. 2. 3 LEA CH 路由协议场景文件的产生
图 3 节点分布图
场景文件可以使用 ns 2. 27/ mit / uAM PS/ sim s 目录下 的 100nodes. txt 文件. 或者在目录 ns 2. 27/ m it / uAM PS / sim s 下执行 ns genscen 命令, 执行完该命令后, 在该目录 下产生 new 100nodes. t xt 文件, 即得到 100 个随机分布的 节点。本次仿真用到文件的为 100nodes. txt。图 3 为 100
表 1 无线通信能量消耗模型的参数
发射电路损耗的能量: Eelec 自由空间中功率放大损耗: f s 多路径衰落中功率放大损耗: amp 传输距离阈值: d0
50 nJ/ bit 10 pJ/ ( bit/ m2 ) 0. 0013 pJ/ ( bit/ m4)
86. 2 m
图 1 L EA CH 类结 构形成的流程图
LEACH route protocol simulation and analysis based on NS2
H e M eihong Xu Chengqian Z hang Dongliang ( Inf orm at ion Engineerin g Coll ege, Y an shan U niversit y, Q in huangdao 066004)

基于簇首概率优化的LEACH协议改进

基于簇首概率优化的LEACH协议改进
单剑锋 , 庄琴清 , 陈 明
( 南京 邮 电大学 电子科 学与 工程 学院 , 江 苏 南京 2 1 0 0 0 3 )
摘 要: L E A C H ( L o w E n e r g y A d a p t i v e C l u s t e r i n g H i e r a r c h y ) 是一 种经 典 的无 线 传感 网络路 由协议 , 已得 到 了广 泛 的认 可 。
少能 量消耗 , 延 长了整个 无线 传感 网络 的寿命 。 关键 词 : L E A C H协 议 ; 无 线传感 网 ; 路 由协议
中图分类 号 : T P 3 0 1 . 6 文 献标识 码 : A 文章 编号 : 1 6 7 3 — 6 2 9 X( 2 0 1 3 ) 0 2 — 0 1 3 8 — 0 3
Ab s t r a c t : LE ACH , a l l k n o wn a s Lo w En e r g y Ad a p i t v e Cl u s t e r i n g Hi e r a r c h y, i s a c l ss a i c wi r e l e s s s e n s o r n e t wo r k r o u i t n g p r o t o c o l a n d h s a b e e n wi d e l y r e c o g n i z e d. I n t h i s p a p e r, a n i mp r o v e d wi el r e s s s e n s o r n e t wo r k ou r t i n g p r o t o c o l b a s e d o n L EACH a l g o r i h m t i s p r e s e n t e d- u s e s

基于簇首能量均衡分布的无线传感器网络LEACH协议改进

基于簇首能量均衡分布的无线传感器网络LEACH协议改进
通过无 线通 信方 式形成 单跳 或 多跳 的 自组织 [ 的 网络 2 ] 系统 , 将获 取 到 的信号 转 化 为数 据 包 发送 到 某 个基 并 站 , 经特殊 处 理传 给用户 终端 , 再 具有 应用 潜能 和广 阔
的商业 前景 [ 。 3 无线传 感器 网络 以数 据为 中心 , 由协 ] 路
图 1 L A H 运行 过 程 E C
传感 器每个 节点 在周期 内刚好轮 流担 当过 一次簇 头 L AC 协 议本 身存在 一些 缺点 。 E H 协议所 E H L AC
ABS TRACT On mp r a tf a u e o r ls e s r n t r s i t a h n r y i l t d e i o t n e t r fwi e s s n o e wo k h tt e e e g s i e .Th s f au e i c n ie e O b h e s mi i e t r s o sd r d t e t e ma n e e n o tn l o ih o S .Th sp p ra a y e h r d t n la g rt m— i l me ti r u i g a g rt m fW N n i a e n l z st e t a ii a l o ih LEACH.Afe e e r h n o er lt d o t rr s a c i g s m ea e i r v d p o o o s o EACH ,we a v n e an w r t c lb s d o EACH.Th e u t fsmu a i n s o th tt h mp o e mp o e r t c l fL d a c e p o o o a e n L e r s l S o i l t h w a e i r v d o r u i g p o o o a a a c n r y c n u o t r t c lc n b l n e e e g o s mp i n o o e n r l n e l e i f W S n t fn d sa d p o o g th i tme o o f N.

无线传感器网络LEACH路由协议改进

无线传感器网络LEACH路由协议改进

由表 1 、表2 1 1  ̄ 图 可以看 出,当L AC W协议 中W的 : 1 E H—
( 6)

I + d,<0 I ^ d E 2 d
I +e 4 d l , ( d d )
值 在0 1 03 _ . — .2 间时 ,网络 生 命周期 增加 较大 。最 大达到 1 .% ,但 第一个 节点 死亡 的轮 数有所 减小 。 当W的值在 4 2
E ( =E , ~ ( = ) f ) ( 7)
假 设 发送 和接 收数 据 的能 量消 耗 为E l= 0 J i。 ec 5 n /bt e
E。 1 p / im ,E p 00 1 p / im 。 f 0 Jbt m = 0 3 Jbt = / /
4 结 论 、
W iees l s Comm unc t r ia i ons

线 通 信
头 ,簇 内其他非 簇头节 点称 为成 员节 点 ,成 员节点 将其数 据发 送给 自 己的簇头 ,簇头节 点接收 这些数 据 ,并 进行数 据 融合 ,然后 将 其发 送给 基 站。 L ACH采 用簇 头轮 换机 E 制 ,各个节点 随机轮流作 为簇头 。 在簇成立阶段 ,假设 网络中有N 个节点 ,每轮 的簇 头节 点个数为k ,节点i 在第r ( 轮 在时刻n 启动 )以概率 P() . 选择 n 自己作为簇头。P n”为 : ()
的次 数。现在 我们首 先考虑选 举簇 头时节 点当前能 量的 多
少 ,引入能量 影响因子 :
‘ 3
簇 头 。非簇 头节点根 据接 收到 的公告消 息信 号 的强度 ,选
择 向信 号最 强的簇 头发送 加入簇 的请 求消息 。最 强信 号一 其 中S i E为节 点i 当前 轮 ( r )的剩 余 能量 , (. ) 在 第 轮 Ev: ae  ̄当前轮 网络 中所有节点 的平均能量 。因子f ) ( 能够使 i 当前剩余能量大 的节点成为簇头的可能性也大 。

ns下leach协议仿真

ns下leach协议仿真

ns下leach协议仿真摸索了很久,今天终于实现了leach协议的仿真。

把自己的经验教训发一下,希望能帮助新手快些上路,俺也是新手,呵呵,也希望能多交流一下。

一开始下载的是mannasim,但不知道为什么,leach协议运行的时候出了一堆错误。

于是又重新下载了MIT leach包。

重新安装了ns2.27,安装的时候遇到很多bugs,具体解决方案网上都有,整个安装过程相当考验人的耐心。

然后安装了MIT leach。

这个过程在网上很容易搜索到。

leach安装成功后运行,却不知道该怎么用。

于是在本论坛搜索,找到一个很不错的文档(附件1),介绍了MIT uAMPS扩展的一些东东。

主要介绍了各个文件的作用,最后有一个运行leach的实例,不过这个实例少了些东西,现在补充一下:1.在cd到mit/uAMPS/sims文件夹下,里面有一个名为genscen文件,该文件是用来生成节点的场景文件。

c运行ns genscen便可以生成一个new100nodes.txt文件。

这个txt文件里是随机生成的100个节点的位置信息。

2.cd到ns-2.27文件夹下。

编写脚本,给脚本随便一个名字,比如zz,脚本内容如下:#!/bin/bash./ns ./tcl/ex/wireless.tcl \-sc mit/uAMPS/sims/nodescen \-rp leach \ //-x 1000 \-y 1000 \-nn 101 \-stop 500 \-eq_energy 1 \-init_energy 2 \-filename wireless \-dirname mit/uAMPS/sims \-topo mit/uAMPS/sims/new100nodes.txt \-num_clusters 5 \-bs_x 0 \-bs_y 0 \各个选项的作用可以见附件1的8~10页。

在命令行下输入:chmod 777 zz 回车然后 ./zz回车就能运行了3.模拟完成后,就需要分析结果。

leach协议

leach协议

leach协议Leach协议是一种用于无线传感器网络的能量平衡路由协议,它旨在通过动态地调整传感器节点的工作模式,延长网络的生命周期。

在传感器网络中,能源是一种宝贵的资源,因此如何有效地利用能源,成为了无线传感器网络研究的重要课题之一。

Leach协议正是为了解决这一问题而诞生的。

Leach协议的核心思想是将传感器节点分为两类,簇首节点和普通节点。

簇首节点负责接收周围普通节点的数据,并将汇总后的数据传输给基站,而普通节点则负责采集数据并将数据发送给周围的簇首节点。

这种分工的设计有效地降低了普通节点的能耗,延长了整个网络的生命周期。

在Leach协议中,簇首节点的选择是一个关键的环节。

为了保证网络中各个簇首节点的负载均衡,Leach协议采用了轮换的方式来选择簇首节点。

具体来说,Leach协议将时间划分为若干个轮次,在每个轮次开始时,网络中的每个节点都有一定的概率成为簇首节点,而不同节点的概率是相同的。

这样一来,每个节点都有机会成为簇首节点,从而实现了负载均衡。

除了簇首节点的选择外,Leach协议还引入了分簇的概念。

在每个轮次开始时,普通节点会选择一个簇首节点进行关联,而簇首节点则负责管理与自己相关联的普通节点。

这种分簇的设计有效地减少了节点之间的通信开销,提高了网络的能效。

另外,Leach协议还引入了时间分割多址(TDMA)的技术,通过对网络中不同节点的工作时间进行合理的调度,避免了节点之间的冲突,提高了网络的吞吐量。

总的来说,Leach协议通过合理地分工、轮换簇首节点、分簇和TDMA技术的引入,有效地延长了无线传感器网络的生命周期,提高了网络的能效。

同时,Leach协议的设计简单、易于实现,适用于各种规模的传感器网络。

在实际应用中,Leach协议已经被广泛地应用于各种无线传感器网络中,并取得了良好的效果。

随着无线传感器网络的不断发展,相信Leach协议将会在未来发挥越来越重要的作用,为无线传感器网络的发展贡献力量。

基于LEACH协议的安全路由设计与分析

基于LEACH协议的安全路由设计与分析
C m ue n ier ga d p l ain  ̄ 算机 工程 与应用 o p t E gnei n A p i t s " r n c o
@ 网络 、 信 、 全 @ 通 安
基 于 L AC E H协议 的安全路 由设 计与分析
郭 芸, 高铁 杠
GU0 u , Y n GAO i g n Te a g
计和分析 。
关键词 : 无线传感 器网络; 功耗 自 低 适应 集簇 分层 型( E C 协议 ; L A H) 网络安全; 网络 密钥 DO :0 7 8 .s . 0 —3 1 0 11.2 文章编 号:0 283 (0 1 1—0 80 文献标识码 : 中图分类 ̄ : P 9 I 1. 7 /i n1 28 3 . 1.3 0 3 js 0 2 0 1 0—3 12 1) 30 6 —4 A J T 33 -
I — ACH s p o o e . t i d d sg n n l ss o e p o o e r t c l a e g v n S LE i r p s d De al e i n a d a ay i f t r p s d p o o o r i e . e h
Ke r s wi l s sn o e r ; o E eg a t e ls r g irrh L AC y wo d : r e e s r n t k L w n ry Ad pi C u ti H eac y( E H) p oo o ; e o k s c r ; e es wo v en rtc l n t r eu i n t w y t -
tn i meh i o ca s n m t L w E eg A a t e ls r g irrh L A H) poo o , n w e ue E H poo o— — o o n ry d p i C u t i H eac y( E C v en r tc l a e sc r L AC r tc l

[课件]NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真PPT

[课件]NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真PPT

NS2的总体系结构


NS2的目录结构
ns-2.34:存放C++代码的地方; ns-2.34\tcl:存放OTcl代码的地方; Ns-2.34\tcl\lib:存放与组件(agent, node, link, packet, address, routing ) 实现有关的OTcl代码;在此目录下,有以下几个文件:ns-lib.tcl: Simulator 类定义与成员函数实现,如 run,simplexlink,flush-trace等;ns-default.tcl :各种网络组件配置的缺省值。 ns-2.34\tcl\ex, ns-2.34\tcl\test: 存放一些例子脚本文件和验证结果。

NS2的部分类结构


分类器——classifier是Ns-2基本网络组件的一个大类。 它的基本派生类有地址分类器(AddrClassifier)和多播 分类器(McastClassifier)等。基于分类器的基本网络 组件具有1个或多个可能的数据输出路径,属于交换 (Switch)设备(对应来说,连接器Connector只有一个 数据的输出路径)。 拓扑结点(Node)是由一个结点入口对象和若干个分类 器(Classifier)组成的一个符合对象。
节点存活率

节点能量消耗

数据包发送量
仿真后生成 x.data,x.alive,x.energy等文件(x对应的为协 议名称),分别对应的为各个协议的数据包传送个数, 节点生存情况和节点能量消耗,用awk语言编写程序, 提取数据进行分析 在Cygwin中用gnuplot 作出分析结果曲线


节点分布拓扑图(基站位置(0,0))

LEACH模型
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ns2.34上leach协议的完美移植经过几天的不断实验,以及网上各位前辈的帮助,终于成功将leach协议完美移植到ns2.34上,下面是我的安装笔记。

Step1在ns-2.34的目录下新建一个leach文件夹,将leach.tar.gz放入这个文件夹Step2在终端中进入这个目录下,键入tar zxf leach.tar.gzStep3①将leach/mit整个目录复制到ns-allinone-2.34/ns-2.34中②将leach/mac目录下的, mac-sensor.h, , mac-sensor-timers.h四个文件复制到ns-allinone-2.34/ns-2.34/mac中③将leach/tcl/mobility目录下的四个文件复制到ns-allinone-2.34/ns-2.34/tcl/mobility中④将ns-allinone-2.34/ns-2.34/tcl/ex目录下的wireless.tcl重命名为wireless_1.tcl,再将leach/tcl/ex目录下的wireless.tcl复制到ns-allinone-2.34/ns-2.34/tcl/ex中⑤将leach目录下的test,leach_test,package_up三个文件复制到ns-allinone-2.34/ ns-2.34中Step3 修改文件①需要修改的文件有:ns-allinone-2.34/ns-2.34/apps/,app.hns-allinone-2.34/ns-2.34/trace/,cmu-trace.hns-allinone-2.34/ns-2.34/common/,,packet.hns-allinone-2.34/ns-2.34/mac/,ll.h,,,phy.h,wireless-phy.c c,wireless-phy.h②修改方法:对于leach目录下相应的文件(即刚才未复制的文件),将代码中以“#ifdef MIT_uAMPS”开始,并以“#endif”结束的部分复制到以上文件对应的位置这个过此要小心核对修改,否则前功尽弃③特殊情况<1> ns-allinone-2.34/ns-2.34/common/packet.h中大约185行,根据其他变量的格式将代码更改为#ifdef MIT_uAMPSstatic const packet_t PT_RCA = 61;#endif并将最后一个枚举值改为62这个过程可以随情况改变,还要注意的是packet.h文件并不是只改这一部分,前面的修改依然要。

<2> ns-allinone-2.34/ns-2.34/mac/wireless-phy.h,给类WirelessPhy添加public变量,大约105行#ifdef MIT_uAMPSMobileNode * node_;#endif或者将文件中的第150行,本来注释掉的// MobileNode * node_; 取消注释,注意这两个只能选一个对于Antenna *ant_;和Propagation *propagation_;之间的那部分代码,应将其置于public声明的最后(private之前), 即Propagation变量必须保持为public,也就是说将下面的关键字Private注释掉#ifdef MIT_uAMPSEnergyResource *energy_; // Energy resourceint alive_; // 0 = dead, 1 = alive//endif//ifdef MIT_uAMPS_tempdouble Efriss_amp_; // Xmit amp energy (J/bit/m^2)double Etwo_ray_amp_; // Xmit amp energy (J/bit/m^4)double EXcvr_; // Xcvr energy (J/bit)double Pfriss_amp_; // Friss base transmission power (W/m^2)double Ptwo_ray_amp_; // Two-ray base transmission power (W/m^4)double PXcvr_; // Xcvr Power (W)int sleep_; // 0 = awake, 1 = asleepint ss_; // amount of spreadingdouble time_finish_rcv_;double dist_; // approx. distance to transmitterprivate: //将其注释掉double pktEnergy(double pt, double pxcvr, int nbytes);#endif<3> ns-allinone-2.34/ns-2.34/mac/(大约235行), (大约132行),将代码中的node_ = (Node *)obj;改为#ifdef MIT_uAMPSnode_ = (MobileNode *)obj;#elsenode_ = (Node *)obj;#endif④修改ns-allinone-2.34/ns-2.34/mit/uAMPS/ns-leach.tcl将set dst_ $mac_dsc改为set dsc_addr $mac_dsc⑤修改ns-allinone-2.34/ns-2.34目录下的Makefile文件在DEFINE行的最后添加-DMIT_uAMPS 在INCLUDE行的中间添加-I./mit/rca -I./mit/uAMPS \在代码gaf/gaf.o \之前添加mit/rca/energy.o mit/rca/rcagent.o \mit/rca/rca-ll.o mit/rca/resource.o \mac/mac-sensor-timers.o mac/mac-sensor.o mit/uAMPS/bsagent.o \Step4这时,直接输入./test,估计肯定会有Line3和Line5行的提示错误,要处理这个问题,只需打开test文件,将里面的代码改为(注意红色部分位置):#!/bin/bashcd tcl/exns wireless-demo-csci694.tclsleep 2cd ../.././leach_test即可。

这个时候如果去输入./test测试,会出现很多警告,其实也不用担心的,协议是可以正常运行的,也可以通过如下操作消除警告:在tcl/lib下的ns_default.tcl文件第692行加入7个初始值,具体的初始值应该对照 mac 文件下的 值输入,如下所示在tcl/lib下的ns_default.tcl文件第692行加入7个初始值,具体的初始值应该对照 mac 文件下的 值输入,如下所示:Phy/WirelessPhy set alive_ 1;Phy/WirelessPhy set Efriss_amp_ 100*1e-12;Phy set Etwo_ray_amp_ 0.013*1e-12;Phy/WirelessPhy set EXcvr_ 50*1e-9;Phy/WirelessPhy set sleep_ 0;Phy/WirelessPhy set ss_ 1;Phy/WirelessPhy set dist_ 0;PS:上面的方法我是在网上查到的,但是在我这里,却不好使,甚至导致NS命令不能用了,所以我并没有添加这些值,我说过,这些警告并没有影响到leach的使用Step5 给.bashrc添加环境变量在终端键入sudo gedit .bashrc(相信装完ns2.34都懂)export RCA_LIBRARY=/安装目录/ns-allinone-2.33/ns-2.33/mit/rcaexport uAMPS_LIBRARY=/安装目录/ns-allinone-2.33/ns-2.3/mit/uAMPSStep6 测试在终端键入./test出现如下画面[root@localhost ns-2.34]# ./testnum_nodes is set 3warning: Please use -channel as shown in tcl/ex/wireless-mitf.tclINITIALIZE THE LIST xListHeadLoading connection pattern...the file:../mobility/scene/cbr-3-testLoading scenario file...Starting Simulation...:sendUp - Calc highestAntennaZ_ and distCST_highestAntennaZ_ = 1.5, distCST_ = 89771.2SORTING LISTS ...DONE!NS EXITING...这时再运行./test应该没有问题了,反正我的安装是没有问题了。

再次打开leach.err文件,里面出现代码:INITIALIZE THE LIST xListHeadSORTING LISTS ...DONE!leach.out文件大小也随时间增加,同时产生leach.alive,leach.data等文件,这样就成功了。

恭喜你,you make it。

相关文档
最新文档