- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NS2下Leach的文件解析
下面就是对leach进行分析:
在对leach的源码进行分析以前,我们需要知道leach协议到底是在做什么。我们知道了流程就能基本上找到leach的主线了。
广播簇头节点
事件鉴定
簇头节点?
接收簇头广播
选择加入簇
通知簇头
等待加入信息
创建TDMA
等待时间表
簇头接收数据
发送到基站
节点发送数据
休眠
簇准备阶段
稳定阶段
那么我们就知道了leach的流程了。那么就可以对leach的程序进行分析。但是在分析的时候我们需要知道leach文件一些作用。
我们首先运行的./test ,则执行了leach.test文件,
我们发现这个文件主要做的工作就是初始化一些东西,然后主要的是ns tcl/ex/wireless.tcl \。而且像wireless中传递了一些参数进来。
那么我们首先查看Wireless.tcl的源码,看下Wireless到底做了些什么东西。那先们先将从leach.test里面传进来的参数对一些属性进行初始化。
我们看到getopt $argc $argv 对属性进行初始化。
#创建一个模拟器 set ns_ [new Simulator]
#创建链路结构 set chan [new $opt(chan)]
set prop [new $opt(prop)]
#创建拓扑结构
set topo [new Topography]
#开启out.tr文件,返回供其它命令使用的文件标识赋给tracefd
set tracefd [open $opt(tr) w]
#节点拓扑结构:mit/uAMPS/sims/100nodes.txt
#load_flatgrid是类Topography的一个成员函数,包含三个参数
#函数原型int Topography::load_flatgrid(int x, int y, int res)
#设定模拟所用场景大小
$topo load_flatgrid $opt(x) $opt(y)
这个文件最主要的函数:
elseif { [string compare $opt(rp) leach] == 0} {
for {set i 0} {$i $opt(nn) } {incr i} {
leach-create-mobile-node $i
}
这个就是创建节点。这个函数在Uamps.tcl中。那么我们可以看到wireless主要是进行初始化。那么Uamps中创建节点。在一个文本中没找到source那么可以到source中再找是否有source。迭代进行。
那么我们就进入Uamps.tcl中创建节点。那么创建节点:
if {$id != $opt(nn_)} {
puts -nonewline $id
#创建普通节点
set node_($id) [new MobileNode/ResourceAwareNode]
} else {
#创建基站节点
puts ($opt(nn_) == BS)
set node_($id) [new MobileNode/ResourceAwareNode $BS_NODE]
我们创建了两种节点:普通节点和基站节点。并初始化一些记录信息,每隔10s就记录一次。对节点的能量进行初始化,并将节点的初始能量记录下来。
在ns-ranode.tcl中:
Class MobileNode/ResourceAwareNode -superclass Node/MobileNode
对节点添加Agent,不同节点添加不同的agent。
if {$bs_node == 1} {
set agent [new Agent/BSAgent]
} else {
set agent [new Agent/RCAgent]
}
并为节点添加agent,在agent上添加应用。
if {$bs_node == 1} {
set rca [new $opt(bsapp)]
} else {
set rca [new $opt(rcapp) $opt(mtype) $wantslist $haslist]
}
$ns_ attach-agent $self $agent
$rca attach-agent $agent
如果是bs节点开始应用。
但是如果不是bs节点。那么就可以对簇的节点数目进行控制。BS进行控制。
然后开始应用,就开始进入到leach主程序。ns-leach.tcl.
在应用中首先选择簇头节点,并检查节点是否存活:
Application/LEAC
您可能关注的文档
- linux定时运行java或jsp文件.doc
- Linux常用网络命令及配置文件.docx
- linux操作系统实验九-Linux多线程文件传输实现.docx
- KJ86N煤矿安全监控系统使用说明.doc
- Linux套接字与虚拟文件系统.doc
- Linux文件系统ext3与ext4的比较.doc
- Linux文件权限实验报告.docx
- Linux文件系统各目录功能.doc
- Linux文件系统测试工具集.docx
- Linux用户文件权限综合实验.docx
- 2024-2030年中国分子生物学工作站行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国刀片行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国冷弯型钢(CFS)行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国内窥镜清洁剂行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国内部物流自动化系统行业现状动态与投资盈利预测报告.docx
- 2024-2030年中国再生砖行业发展状况与前景规划分析研究报告.docx
- 2024-2030年中国军装靴行业市场深度调研及发展趋势与投资前景预测研究报告.docx
- 2024-2030年中国农业灌溉机械行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国农村医疗行业市场深度调研及发展前景及趋势预测研究报告.docx
- 2024-2030年中国农业接种剂行业市场发展趋势与前景展望战略分析报告.docx
文档评论(0)