Ns2.34上leach协议的完美移植
基于NS2的LEACH协议仿真与分析
![基于NS2的LEACH协议仿真与分析](https://img.taocdn.com/s3/m/3cf53749be1e650e53ea9905.png)
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协议改进](https://img.taocdn.com/s3/m/0fd4597027284b73f342500f.png)
( 南京 邮 电大学 电子科 学与 工程 学院 , 江 苏 南京 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协议改进](https://img.taocdn.com/s3/m/440365563b3567ec102d8a51.png)
的商业 前景 [ 。 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路由协议改进](https://img.taocdn.com/s3/m/614b446d27d3240c8447ef42.png)
由表 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协议仿真](https://img.taocdn.com/s3/m/4c45d8ea856a561252d36f60.png)
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协议](https://img.taocdn.com/s3/m/dc1a82e70129bd64783e0912a216147916117e5f.png)
leach协议Leach协议是一种用于无线传感器网络的能量平衡路由协议,它旨在通过动态地调整传感器节点的工作模式,延长网络的生命周期。
在传感器网络中,能源是一种宝贵的资源,因此如何有效地利用能源,成为了无线传感器网络研究的重要课题之一。
Leach协议正是为了解决这一问题而诞生的。
Leach协议的核心思想是将传感器节点分为两类,簇首节点和普通节点。
簇首节点负责接收周围普通节点的数据,并将汇总后的数据传输给基站,而普通节点则负责采集数据并将数据发送给周围的簇首节点。
这种分工的设计有效地降低了普通节点的能耗,延长了整个网络的生命周期。
在Leach协议中,簇首节点的选择是一个关键的环节。
为了保证网络中各个簇首节点的负载均衡,Leach协议采用了轮换的方式来选择簇首节点。
具体来说,Leach协议将时间划分为若干个轮次,在每个轮次开始时,网络中的每个节点都有一定的概率成为簇首节点,而不同节点的概率是相同的。
这样一来,每个节点都有机会成为簇首节点,从而实现了负载均衡。
除了簇首节点的选择外,Leach协议还引入了分簇的概念。
在每个轮次开始时,普通节点会选择一个簇首节点进行关联,而簇首节点则负责管理与自己相关联的普通节点。
这种分簇的设计有效地减少了节点之间的通信开销,提高了网络的能效。
另外,Leach协议还引入了时间分割多址(TDMA)的技术,通过对网络中不同节点的工作时间进行合理的调度,避免了节点之间的冲突,提高了网络的吞吐量。
总的来说,Leach协议通过合理地分工、轮换簇首节点、分簇和TDMA技术的引入,有效地延长了无线传感器网络的生命周期,提高了网络的能效。
同时,Leach协议的设计简单、易于实现,适用于各种规模的传感器网络。
在实际应用中,Leach协议已经被广泛地应用于各种无线传感器网络中,并取得了良好的效果。
随着无线传感器网络的不断发展,相信Leach协议将会在未来发挥越来越重要的作用,为无线传感器网络的发展贡献力量。
基于LEACH协议的安全路由设计与分析
![基于LEACH协议的安全路由设计与分析](https://img.taocdn.com/s3/m/6d4f4c543b3567ec102d8a0b.png)
@ 网络 、 信 、 全 @ 通 安
基 于 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](https://img.taocdn.com/s3/m/fc5bba69e45c3b3567ec8b52.png)
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模型
基于虚拟网格的LEACH路由协议的改进
![基于虚拟网格的LEACH路由协议的改进](https://img.taocdn.com/s3/m/6d290016fad6195f312ba6ef.png)
选择 簇 头 . 网格 中以 自身 能 量 评 估 来 决 定 是 否 当选 簇 头 , 在 以及 簇 头之 间 采 用 多跳 来传 输 数 据 。通 过 仿 真 实验 证 实 算 法 的 有效 性 , 可有 效 延 长 网络 生 存 时 间 。
关 键 词 : 线传 感 器 网络 ; E H;虚拟 网格 ;簇 头 无 L AC
★ 金 项 目: 育部 博 士 点 基 金 项 目( . 0 0 9 13 ) 湖 北 省 自然科 学基 金 项 目( . 0 C 3 7 基 教 No 0 84 70 0 、 2 No2 8 DB 4 ) 0
收 稿 日期 : 0 0 0 — 3 2 1— 3 2 修 稿 日期 :01 — 4 5 2 0 0 —0
算 法 是 一 种 自适 应 分 簇 拓 扑 算 法 这 种 算 法 将 整 个 网
据。 经过一段事件 的数据传输 , 头节点收齐簇 内节点 簇
发 送 的数 据 后 。 行 数 据 融 合 算 法 来 处 理 数 据 . 运 并将 结 果 直 接 发 送 给 汇 聚 节点 L A H 协 议 采 用 动 态 聚 类 方 法 . 机 选 择 聚类 首 E C 随 领 , 均 分 担 中继 通 信 业 务 . 服 了静 态 聚类 算 法 中 . 在 每个簇选 出一个簇 头 ,
簇 内节 点将 数 据 通 过 簇 头 转 发 给 汇 聚节 点
L A H算法选举簇头 的过程如 下 : EC 节点产生一个
0 1 间 的 随机 数 , ~ 之 如果 这 个 数 小 于 阈值 T n , 发 布 ( )则
自己是 簇 头 的 广播 在 每 轮循 环 中 . 如果 节 点 已经 当选 过 簇 头 , 把 T n 设 置 为 0 这 样 该 节 点 不 会 再 次 当选 则 () , 为 簇 头 。T n 可 标 识 为 : ()
Leach协议
![Leach协议](https://img.taocdn.com/s3/m/f01b9fa10029bd64783e2cc8.png)
目录一、Leach协议与NS的关系 (2)二、算法设计思想 (3)三、簇头建立算法流程图 (4)四、难点解决 (6)五、算法运行结果分析 (9)参考文献 (9)一、Leach协议与NS的关系为了实现leach 协议,对ns进行扩展。
在ns中增加了一个事件驱动模拟器支持模拟无线传感器网络协议。
这些扩展包括MAC协议,用于计算和交互的能量分配模型和leach协议的体系结构。
网络拓扑结构可以通过简单的Nodes, Links, Agents和Applications 描述。
Nodes相当于网络中的终端主机, Links 是用于Nodes交互的连接器, Agent用来实现不同网络协议,是支持分组产生和丢弃的节点。
Applications 用来产生数据和实现不同的应用函数。
一旦网络拓扑结构建立起来后,模拟通过启动节点上的Applications运行。
为了在ns中支持无线传感器网络,在ns中增加了 mobile nodes, MAC 协议和信道传播模型Channel 。
Applications类的头文件用Tcl语言写的,节点中的其他函数功能用C++语言写成的。
数据包的发送过程:Applications创建数据包(data packets),然后发送给Agent. Agent执行协议栈中运输层和网络层的功能,将数据包发送给CMUTrace,。
CMUTrace将packets的统计数据写到trace 文件,然后将packets发至Connector。
Connector将数据包传送给用于数据链路处理的链路层(LL).经过一小段时间的延迟后,数据包由LL发送给Queue缓冲队列。
如果是还没有传送过的数据包,Queue将以队列进行存储。
然后Queue将数据包出队列,发送到MAC层。
然后开始运行MAC(媒体访问控制)协议。
最终,packets被发送到网络接口层(Network Interface),网络接口层将packets加上正确的传输能量,然后将packets发送到Channel. Channel将packets进行拷贝,并发往连接信道的每一个节点。
Ubuntu安装ns-2.35及leach协议安装
![Ubuntu安装ns-2.35及leach协议安装](https://img.taocdn.com/s3/m/3165dbe3b8f67c1cfad6b89f.png)
Ubuntu 13.10下安装ns-2.35及leach协议安装powered by Hong Sheng , Jiangsu university ,Zhenjiang583301743@Tue Nov 25 , 2013之所以选择基于linux的操作系统ubuntu来安装ns2,是因为我个人特别讨厌Microsoft 开发的基于windows的cygwin软件,此软件安装的时候不仅有各种错误,UI也不够友好。
而,有关ubuntu的安装,大家可以自行baidu或google之。
下面只讲解ns-2.35和leach协议的安装过程。
1. Ubuntu 13.10下ns-2.35安装step 1:下载ns2.35,/s/1h8rj0#dir/path=%2FNS解压,放在home/xx下,xx是你的用户名step 2:更新源包,终端输入:sudo apt-get updatestep 3:安装依赖包sudo apt-get install tcl8.5-dev tk8.5-devsudo apt-get install build-essential autoconf automakesudo apt-get install perl xgraph libxt-dev libx11-dev libxmu-devstep 4:修改ns-allinone-2.35中ls.h文件的代码将void eraseAll() { erase(baseMap::begin(), baseMap::end()); } 改为:void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }step 5:sudo ls /usr/bin/gcc* //查看系统已经安装的gcc版本。
Ubuntu 13.10默认安装了gcc-4.8//和gcc-4.8版本的,如果是其他版本的linux操作系统且没有安装//高于4.0版本的gcc/g++。
leach协议
![leach协议](https://img.taocdn.com/s3/m/2351415b9a6648d7c1c708a1284ac850ad020491.png)
leach协议Leach(Low-Energy Adaptive Clustering Hierarchy)协议是一种自动形成集群的,适应能量低的无线传感器网络(WSN)中的节点通信的协议。
Leach协议的主要目标是延长无线传感器网络的生命周期和提高网络的能量使用效率。
它通过集群化方式,将节点组织成多个集群,每个集群有一个选为簇首的节点。
簇首节点负责在集群内转发数据,而其他节点只需将数据传输给其所属的簇首节点。
这样可以减少了节点之间的通信距离,从而降低了能量的消耗。
在初始阶段,每个节点都是潜在的簇首节点。
为了避免某些节点能量过早耗尽,采用了随机方式选择簇首。
节点根据自身能量状态和与周围节点的距离决定是否成为簇首节点,在选择过程中通过一定的概率,使能量低的节点有更大的概率成为簇首节点。
在每个轮次的开始,每个节点都处于未分配状态,即没有加入任何集群。
节点首先通过计算自身与周围节点的距离来确定最近的簇首节点,并将其加入该簇。
在每个节点完成选择簇首后,簇首节点开始广播插槽选择信息,每个节点根据该信息决定自己的插槽时隙。
插槽时隙是为了避免节点间的冲突,只有在自己的插槽时隙中才能进行数据传输。
数据传输过程中,节点会根据自身能量剩余情况,以及在上一轮次中是否作为簇首节点的经验,调整自己的能量消耗策略。
这种自适应的能量消耗策略可以让簇首节点能够更长时间地保持活跃,从而延长整个网络的寿命。
Leach协议还引入了轮转的概念,将节点的簇首身份进行轮流交替。
这样可以确保所有节点都有机会成为簇首节点,减少了相对于其他节点更早耗尽能量的风险。
总之,Leach协议通过集群化的方式,在无线传感器网络中实现了节能的目标。
通过引入随机选择和轮转机制,使得整个网络的能量消耗更加平衡,延长了无线传感器网络的寿命。
此外,Leach协议还可以适应网络的动态变化,保证了网络的稳定性和鲁棒性。
无线传感器网络LEACH路由协议改进算法
![无线传感器网络LEACH路由协议改进算法](https://img.taocdn.com/s3/m/e58583f7f705cc1755270959.png)
计算机 与数 字工 程
C mp tr& Dii lEn ie r g o ue gt gn ei a n
Vo_ 9No 2 l3 .
44
2 1 年第 2 01 期
无线 传 感器 网络 L A H 路 由协 议 改 进 算 法 E C
白凤娥 孔新店 牟汇 慧
K y W o d wiee ssn o ewo k e rs rls e s rn t r ,LE ACH lo i m ,LP ag rt h EA lo i m ,cu trn ag rt h lse ig
Cl s m b r TP3 3 a s Nu e 9
1 引 言
太原 002) 3 0 4 ( 原理工大学计算机与科学技术学院 太
摘
要
路 由协议是无线传感器 网络 网络层 的核心技 术 , 而路 由协议 中的路 由算 法却起 着至关重 要的作用 。文章 在
L AC 协议 基础 上 , E H 提出了一种 改进 的 L E P A路 由算法 。经过仿 真分析 , P A路 由算法与 L AC 算法相 比, LE E H 能进一 步 降低网络能量消耗 , 延长了 网络生存周期 。验证 了该 协议 算法具有一定的可行性和有效性 。
无线 传 感 器 网 络 ( rl sS n o t r , Wi e e srNewo k es 简称 WS 被认 为是 2 世 纪最 重 要 的技 术 之 一 , N) 1 是 当前 国 际 上 备 受 关 注 的 新 型 前 沿 研 究 领 域 。 WS 的 目的是 收集 和处 理 目标 监测 区域 内被感 知 N
关键词 无 线传感器 网络 ; E C 算法 ; P A算法 ; L A H LE 分簇
322韦振峰 - ns2.34安装方法总结
![322韦振峰 - ns2.34安装方法总结](https://img.taocdn.com/s3/m/51af0880b9d528ea81c779ec.png)
20070810322计科三班韦振峰NS2.34 的安装(虚拟机Ubuntu9.10下)--本人亲自总结说明:下面以我自己的机子和系统为例,ubuntu中我的帐户为w ,并且安装了图形界面,湖大校园网。
1. 下载ns-allinone-2.34.tar.gz (目前最新版本好像就是2.34 所以就选择了本版本)2.在/home/w/ 下建立文件夹ns,把ns-allinone-2.34.tar.gz 放到/home/w/ns 目录下3.安装NS2进入终端:(依次输入以下命令)sudo –i (取得管理员权限)apt-get install build-essential (for gcc and some essential)apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev (for tcl and tk)apt-get install libxmu-dev (for nam)注:以为这里需要联网下载软件包,所以之前最好在系统/系统管理/软件源里选一个比较好的源,这样下载速度会块些,我选的是中国源下的 这个源在我这里下载速度能达到130+K/s(后来发现是下午,可能上网的人比较少,才有这样的速度),对于校园网来说还可以了。
以上是一些准备工作,在几分钟之内能够完成,但是不能省略,我刚刚开始安装的时候就是不知道还要安装这些必要的软件,导致安装不成功。
下面讲解具体安装:cd /home/w/ns (进入ns-allinone-2.34.tar.gz压缩包目录)ls (可以看到只有一个文件ns-allinone-2.34.tar.gz)tar –zxvf ns-allinone-2.34.tar.gz ( 解压ns-allinone-2.34.tar.gz)cd ns-allinone-2.34.tar.gz (进入该目录)./install ( 安装ns-allinone-2.34)然后看到命令行非常养眼地快速翻滚,很兴奋。
NS2 2.34
![NS2 2.34](https://img.taocdn.com/s3/m/c9c8017101f69e31433294d5.png)
5.添加环境变量 expor/ns-allinone-2.34/bin:/home/binzh/ns-allinone2.34/nam-1.14:/home/binzh/ns-allinone-2.34/tcl8.4.18/unix:/home/binzh/nsallinone2.34/tk8.4.18/unix:/usr/java/jdk1.6.0//bin:/usr/java/jdk1.6.0//jre/bin:/usr/local/sbin :/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"export LD_LIBRARY_PATH="/home/binzh/ns-allinone-2.34/otcl-1.13,/home/binzh/nsallinone-2.34/lib"export TCL_LIBRARY="/home/binzh/ns-allinone2.34/tcl8.4.18/library“ 6.用cd命令进入NS2安装文件夹,用./install命令进行安装; 7.安装完成。
//节点建立连接
//设置节点物理位置
//建立UDP协议发送端udp0 //将n0绑定到UDP发送端udp0 //cbr流量产生器附加在UDP发送端上 //设置数据包的属性
//建立数据接收端null0 //绑定n3与数据接收端null0 //建立发送端udp0与接收端null0的连接 //设置程序运行时间属性 //在5秒时执行finish程序 //运行
OTCL与C++交互与绑定 以AODV为例 1静态初始化 1在NS初始化的时候,会调用静态函数的构造函数,在AODV中就是调用了 AODVclass()中的父类TclClass中的构造函数,并传递类名Agent/AODV。 2当Otcl语言解释器存在的话,TclClass调用bind()函数.其中,语句 tcl.evalf(“SplitObject register %s”,classname _)是在Otcl环境中注册类名。 接着两个OTclAddMethod语句在注册了类名以后,为这个类添加两个命令: create-shadow()和函数TclClass::delete_shadow().其中create-shadow()用于创建 Otcl影像类的命令。
leach协议
![leach协议](https://img.taocdn.com/s3/m/bc76b872842458fb770bf78a6529647d2728348f.png)
leach协议协议名称:Leach协议1. 背景和目的Leach协议(Low Energy Adaptive Clustering Hierarchy)是一种用于无线传感器网络(Wireless Sensor Networks,WSN)中的能量有效的分簇协议。
其主要目的是通过将传感器节点组织成簇集的方式,延长整个网络的寿命,并提高数据传输的效率。
2. 协议原理Leach协议采用分簇的方式将传感器节点组织成多个簇集,每个簇集由一个簇首节点(Cluster Head)负责管理。
协议的主要原理如下:- 簇首选择:每个节点根据其能量水平以及与周围节点的距离来决定是否成为簇首节点。
节点通过随机方式选择一个数值作为阈值,如果其能量超过该阈值,则成为簇首节点。
- 簇集形成:每个节点根据与簇首节点的距离来决定加入哪个簇集。
节点将自己的信息发送给所选择的簇首节点,并成为该簇集的成员。
- 簇首轮流工作:为了均衡能量消耗,簇首节点在每个轮次中轮流工作。
簇首节点负责接收从簇集成员节点传输的数据,并将其传输到基站(Base Station)。
- 节点选择:每个节点在每个轮次中决定是否成为簇首节点。
节点通过随机方式选择一个数值作为阈值,如果其能量超过该阈值,则成为簇首节点。
3. 协议流程Leach协议的流程如下:- 初始化:每个节点初始化自己的能量水平,并随机选择一个数值作为阈值。
- 簇首选择:每个节点根据能量水平和阈值决定是否成为簇首节点。
如果是簇首节点,节点将发送簇首通告消息给其他节点。
- 簇集形成:每个节点根据与簇首节点的距离来决定加入哪个簇集。
节点将发送加入簇集请求给选择的簇首节点,并成为该簇集的成员。
- 数据传输:簇首节点负责接收从簇集成员节点传输的数据,并将其传输到基站。
- 轮次切换:每个节点在每个轮次中决定是否成为簇首节点。
如果是簇首节点,节点将发送簇首通告消息给其他节点。
4. 协议特点Leach协议具有以下特点:- 能量有效:通过分簇的方式,避免了所有节点直接与基站通信,减少了能量消耗。
基于LEACH协议的无线传感器网络路由算法的改进与仿真
![基于LEACH协议的无线传感器网络路由算法的改进与仿真](https://img.taocdn.com/s3/m/18f01d60a98271fe900ef906.png)
Abtat Amiga tepo l o mi de eg fe sr i W i l s e sr t ok( S , ipp r rp s src: i n th rbe fi t n ryo nosn r e no w rs N)hs ae po oe m l e s e sS Ne W t s
21 o 1年 3舟
电 子 测 试
EL ECT RON I C TEST
Ma. r 2o11
第 3期
N o3 .
基 于L AC E H协议 的无线传感器 网络路 由算法
的改进 与仿真
赵芳 芳 ,高媛
( 中北大学 电子与计算机科学技术学 院 ,山西 太原 ,005) 30 1
摘要 : 针对无 线传感器 网络 中传感器 能量有限 的问题 ,从路 由算法的角度出发 ,提/L A H 议的低功耗改  ̄EC 协 进方案 。本文采 用划定区域的方式对L A H E C 协议 中的簇头选举进行 改进 , 而减少网络 中节点分布不 均匀 的 从
2o" . 3
De i & Re e r h sgn s ac
成的核 心 ,
( p r n f l t o i a dCo ue c n e n c n lg , r ie i f hn , a u n 0 0 5 ) De a me t E e r n c n mp t S i c dTeh oo y No t Unv r t o i a T i a 3 0 1 t o ci r e a h sy C y
.
t e e e g o s mp i n o e cu t r g h a ,r s l n r m h o u i r d s b t n o o e n n t r , h s h n r c n u t ft l se n e d eu t g fo t e n n n f m i r u i fn d si ewo k t i y o h i i o t i o p p ra o t t e meh d fcu t r e d sl ci n b s d o o e a d c mp r sL ACH r t c lwi h r i a a e d p s h t o s o l s —h a ee t ae n z n , n o e o ae E p o o o t t e o gn l h i o eb s g as n y u i i lt n s f r 一 . i u ai n b 2 s o * t a e p o o o x e d h u v v lt ft e n mu ai o t e NS 2 Sm lt y NS h w s h tt r t c l t n st e s r i a meo o wa o h e i h n t r h s o re eg o s mp i n a d p ro sb te a e o g n l E ewo k, a we n r y c n u l t n e f r e trt n t r i a L ACH r t c 1 o m h h i poo o.
基于LEACH的传感器网络分簇路由协议
![基于LEACH的传感器网络分簇路由协议](https://img.taocdn.com/s3/m/d8069963561252d380eb6efd.png)
leach协议
![leach协议](https://img.taocdn.com/s3/m/1cafad5aa66e58fafab069dc5022aaea998f41ca.png)
leach协议协议名称:Leach协议一、背景介绍Leach(Low Energy Adaptive Clustering Hierarchy)协议是一种用于无线传感器网络中的分簇协议,旨在有效地延长网络寿命和节约能源消耗。
该协议通过将传感器节点分为簇(cluster)并选举簇首(cluster head),实现数据的会萃和传输,从而降低了网络中节点之间的通信能量消耗。
二、协议目标Leach协议的主要目标是通过以下方式来提高无线传感器网络的能源利用效率:1. 延长网络寿命:通过合理分配能量消耗和会萃数据传输任务,减少节点能量消耗的不均衡现象,从而延长整个网络的寿命。
2. 节约能源消耗:通过簇首节点的选举和数据会萃机制,减少节点之间的直接通信,降低通信能量消耗。
三、协议流程1. 初始阶段:a. 所有节点处于非簇首状态。
b. 每一个节点根据设定的概率阈值选择是否成为簇首节点,概率阈值由用户事先设定。
c. 非簇首节点选择最近的簇首节点作为自己的簇首。
d. 簇首节点广播自己的身份给附近的非簇首节点。
2. 簇首选举:a. 非簇首节点根据簇首节点广播的信息选择簇首。
b. 每一个非簇首节点计算自己到簇首节点的距离,并选择距离最近的簇首节点作为自己的簇首。
3. 数据传输:a. 非簇首节点将数据发送给所属簇首节点。
b. 簇首节点负责会萃和汇总所属簇中的数据。
c. 簇首节点将会萃后的数据传输给基站节点。
4. 簇首轮流:a. 每一个簇首节点在完成一轮数据传输后,将自己的簇首身份传递给其他非簇首节点。
b. 非簇首节点接收到簇首身份后,更新自己的簇首节点。
5. 能量平衡:a. 每一个节点在完成一轮数据传输后,将自己的能量水平发送给簇首节点。
b. 簇首节点根据接收到的能量水平信息,调整簇中节点的任务分配,实现能量平衡。
四、协议优势Leach协议的优势体现在以下几个方面:1. 能源利用效率高:通过簇首节点的选举和数据会萃机制,降低了节点之间的直接通信,减少了通信能量消耗。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。