基于NS2的无线传感器网络软件仿真实验.docx

上传人:b****8 文档编号:13194026 上传时间:2023-06-11 格式:DOCX 页数:17 大小:550.54KB
下载 相关 举报
基于NS2的无线传感器网络软件仿真实验.docx_第1页
第1页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第2页
第2页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第3页
第3页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第4页
第4页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第5页
第5页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第6页
第6页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第7页
第7页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第8页
第8页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第9页
第9页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第10页
第10页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第11页
第11页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第12页
第12页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第13页
第13页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第14页
第14页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第15页
第15页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第16页
第16页 / 共17页
基于NS2的无线传感器网络软件仿真实验.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于NS2的无线传感器网络软件仿真实验.docx

《基于NS2的无线传感器网络软件仿真实验.docx》由会员分享,可在线阅读,更多相关《基于NS2的无线传感器网络软件仿真实验.docx(17页珍藏版)》请在冰点文库上搜索。

基于NS2的无线传感器网络软件仿真实验.docx

基于NS2的无线传感器网络软件仿真实验

●课程设计目的

●课程设计内容

●课程设计实验原理

⏹WSN路由协议

⏹WSNMAC层协议

⏹修改的路由协议

●课程设计小组分工

●课程设计实验流程

●课程设计实验结果分析

●课程设计心得体会

●课程设计总结

●参考文献

●源代码

 

1、课程设计目的

无线传感器网络是物联网的基本组成部分,是物联网用来感知和识别周围环境的信息生成和采集系统,传感器网络对信息处理来说如同人体的感觉突触一样重要。

为了方便感知和部署并提高网络的可扩展性,传感器网络一般采用无线通信方式,从而形成了节点之间可自组织拓扑结构的无线传感器网络。

本课程设计的目的综合应用学生所学知识,建立系统和完整的传感器网络概念,理解和巩固无线传感器网络基本理论、原理和方法,掌握无线传感器网络开发的基本技能。

2、课程设计内容

软件仿真实验。

要求使用相关软件仿真一个无线传感器网络,要求如下:

●自行参考相关资料,成功安装NS2(或OPNET也可以);

●利用NS2自带的范例,构建一个100个节点的无线传感器网络,能够成功运行;最好能有界面显示;

●利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器网络一种路由协议(例如一种多播路由协议);

●利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器网络采用一种MAC协议;

●修改或自行编写一个简单路由协议或MAC协议,并进行仿真运行。

3、课程设计实验原理

a)WSN路由协议

传统计算机网络对路由协议要求如下:

正确性,健壮性,稳定性,公平性,最优性。

除此之外,无线传感器网络对路由协议更注重以下特殊要求:

能源有效性,简单性,多路性。

无线传感器网络是以数据为中心(Data Centric)进行路由的,不同于传统Ad hoc网络以地址为中心(Address Centric)进行路由的模式。

由于传感器最基本任务就是感知、采集数据,无线传感器网络邻近节点间采集的数据必然具有相似性,存在冗余信息,需经数据融合(Data Fusion)处理再进行路由。

有研究表明,在分布密度为ρ(x, y)的随机区域,传感器间冗余数据为:

η=ζSeρ。

直接传输这些未经处理、存在冗余的数据,将会造成网络带宽、节点能源的巨大浪费,导致节点迅速死亡,缩短整个网路的生命周期。

无线传感器网络中的大部分节点不像传统Ad hoc网络中的节点一样快速移动,因此没有必要花费很大的代价频繁地更新路由表信息。

常规路由协议通常认为底层的通信信道是双向的,但是在采用无线通信的无线传感器网络环境中,由于发射功率或地理位置等因素的影响,可能存在单向信道。

它给常规路由协议带来三个严重的影响:

认知单向性、路由单向性和汇点不可达。

本次实验中涉及到路由协议原理如下:

●AODVAODV(Adhocon-demanddistancevectorrouting)是一种源

驱动路由协议。

当一个节点需要给网络中的其他节点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文。

RREQ报文中记录着发起节点和目标节点的网络层地址,邻近节点收到RREQ,首先判断目标节点是否为自己。

如果是,则向发起节点发送RREP(路由回应);如果不是,则首先在路由表中查找是否有到达目标节点的路由,如果有,则向源节点单播RREP,否则继续转发RREQ进行查找。

在网络资源充分的情况下,AODV协议可以通过定期广播hello报文来维护路由,一旦发现某一个链路断开,节点就发送ERROR报文通知那些因链路断开而不可达的节点删除相应的记录或者对已存在的路由进行修复。

b)WSNMAC层协议

MAC层位于OSI七层协议中数据链路层,数据链路层分为上层LLC(LogicalLinksControl,逻辑链路控制),和下层的MAC(媒体访问控制),MAC主要负责控制与连接物理层的物理介质。

在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。

不管是在有线局域网(LAN)中还是在无线局域网(WLAN)中,MAC协议都被广泛地应用。

在传统局域网中,各种传输介质的物理层对应到相应的MAC层,目前普遍采用的是IEEE802.3的MAC层标准,采用CSMA/CD访问控制方式;而在无线局域网中,MAC所对应的标准为IEEE802.11,其工作方式采用DCF(分布控制)和PCF(中心控制)。

●802.11接入点能够通过使用传输规范(TSPECs)控制网络工作量。

一个接入点能够要求每一个站点为每一个访问类发送一个传输规范请求。

这个请求将具体说明这个站点为每一个访问类申请的数据量以及可以承受多长时间的延迟。

如果一个接入点计算它从各个站点收到的请求超过了网络的容量,它将拒绝这些请求。

如果一个申请遭到拒绝,提出申请的站点就不再发送那种访问类的数据,并且必须把这种访问类的数据结合到优先等级低的数据中。

同PCF一样,HCCA是一种轮询协议。

当使用时,它总是能够获得访问媒体的权限,因为它等待的时间比任何EDCA用户最短的AIFS时间还要短。

HCCA能够为每一个应用配置单独的服务质量设置。

位于接入点中的混合协调器(HC)轮流查询单个的站点,并且根据已经配置的具体的服务质量设置批准访问媒体的权限。

这里没有竞争,因此,高优先等级数据的延迟不会随着网络通信的增加而遭到损失。

c)修改的路由协议

AODV协议的一个很大的缺陷是每个源结点只维护一条到一个特定目的结点的路由,如果这条路由失效,将会重新发起路由发现过程,从而增大网络的开销。

在拓扑变化频繁的网络中,这个缺点显得尤为突出。

如图所示例子,如果结点S需要和结点D进行通信,但结点S中没有到结点D的有效路由,结点S将会广播一个RREQ分组。

结点1收到此砌也Q分组后,假设其没有到结点D的有效路由,结点1会继续广播此RREQ分组。

假设结点2的路由表中有一条到达目的结点D的有效路由,结点4和结点5的路由表中没有到结点D的有效路由。

最终结点S将会先后收到由结点2和结点D发送的包含S.1.2.3.D和S.1-4.5.6.D路由的RREP分组。

结点S只会根据目的节的序列号和至目的结点的跳数保留其中的一条路由,另一条路由即使是有效路由也将被丢弃。

在此例中,由于目的结点序列号较小,路由S.1-2.3一D将被丢弃。

如在结点S通过路由S.14.5.6.D与结点D通信的过程中,结点1发现与结点4断开,结点S需要重新发起一个至结点D的路由发现过程,最后可能会再次收到包含路由S.1-2.3.D的RREP分组。

在每个源结点维护一条到指定目的结点的备份路由,并通过修改本地修复机制,使得当主路由失效时,会通过备份路由来发送数据包。

只有当备用路由也失效时才重新发起路由发现过程,是我们改进路由协议的思想。

为了区分主路由与备份路由,需要对原有的路由表做一定的扩充,具体做法为在aodv—rtable.h中的aodvrtentry类声明中添加一个标志位rt_pfiority并在aodvrtentry的构造函数中将其初始化为0。

当其为0时,表示主路由,当其为1时,表示备份路由。

为了实现备份路由的添加及查找功能,在aodvrtable类中添加rt_addbackup(nsad&'tid)和rt_lookupbaekup(nsaddr_t,id)两个函数。

代码如下:

Aodvlc_rt_entry*

aodvle_rtable:

rt_addback(nsaddr_tid)

{

Aodvlc_rt_entry*rt;

assert(rt_lookup(id)==o);

Rt=newaodvlc_rt_entry;

assert(rt);

rt->rt_dst=id;

rt->rt_priofity=1;

LIST_INSERT_HEAD(&rthead,rt,rtlink);

Retumrt;

Aodvlc_rt_entry*

aodvlc_rtable:

rt_lookupback(nsaddr__tid)

{

Aodvlc_rt_entry*rt=rthead.1h_first;

for(;rt;rt=rt->rt_link.1e_next){

if((rt->rt_dst_id)&&(rt->rt_priority==1))

break;

}

Returnrt;

}

4、课程设计小组分工

组长:

施国豪

无线传感器网络设计及TCL脚本编写:

董嘉伟

路由、MAC层协议仿真:

裘铖

路由协议改进:

董嘉伟

报告编写:

董嘉伟、裘铖

资料收集:

施国豪

5、课程设计实验流程

a)实验环境的搭建

我采用了VMWARE+CENTOS+NS2的搭建方式。

曾经考虑在Windows下使用Cygwin+NS2的搭建方式,但由于Cygwin下模拟Linux编译NS2文件经常出现错误,所以换用虚拟机VMWARE安装CENTOS来测试。

安装需要额外的包来完成支持,具体包如下:

G++、Gcc、libX11、xorg-x11、libXt、libXmu,以CentOS为例,需执行以下指令(使用Root用户)

$yuminstalllibX11-devel*

$yuminstallxorg-x11-proto-devel*

$yuminstalllibXt-devel*

$yuminstalllibXmu-devel*

在NS2的解压目录下执行./install,安装完成后执行简单的tcl测试脚本,运行成功,结果如下:

b)无线传感器网络设计

根据课程设计指导书要求,设计一个含有100个传感器节点的无线网络。

拓扑图如下:

借助NSG2完成随机节点的分布,其中具备邻居条件的用蓝色线条连接表示,灰色线条代表某节点的广播域。

除此之外,NSG2还可以用来辅助生成TCL脚本文件。

根据自己预设的条件设置诸如节点路由协议、MAC协议、物理层模型、节点数、节点位置、节点横纵坐标范围等等,极大地降低了编写测试脚本的难度,提高了协议的修改和测试速度。

根据现有TCL测试脚本,编辑节点属性如下:

setval(chan)Channel/WirelessChannel;#channeltype

setval(prop)Propagation/TwoRayGround;#radio-propagationmodel

setval(netif)Phy/WirelessPhy;#networkinterfacetype

setval(mac)Mac/802_11;#MACtype

setval(ifq)Queue/DropTail/PriQueue;#interfacequeuetype

setval(ll)LL;#linklayertype

setval(ant)Antenna/OmniAntenna;#antennamodel

setval(ifqlen)50;#maxpacketinifq

setval(nn)100;#numberofmobilenodes

setval(rp)DSDV;#routingprotocol

setval(x)14248;#Xdimensionoftopography

setval(y)100;#Ydimensionoftopography

setval(stop)10;#timeofsimulationend

$nsnode-config-adhocRouting$val(rp)\

-llType$val(ll)\

-macType$val(mac)\

-ifqType$val(ifq)\

-ifqLen$val(ifqlen)\

-antType$val(ant)\

-propType$val(prop)\

-phyType$val(netif)\

-channel$chan\

-topoInstance$topo\

-agentTraceON\

-routerTraceON\

-macTraceON\

-movementTraceON

AGENT属性设置

setudp_(0)[newAgent/UDP]

$nsattach-agent$n84$udp_(0)

setnull_(0)[newAgent/Null]

$nsattach-agent$n30$null_(0)

$nsconnect$udp_(0)$null_(0)

setcbr_(0)[newApplication/Traffic/CBR]

$cbr_(0)setpacketSize_512

$cbr_(0)setinterval_0.1

$cbr_(0)setrandom_1

$cbr_(0)setmaxpkts_100000000

$cbr_(0)attach-agent$udp_(0)

$nsat4.0"$cbr_(0)start"

c)路由层、MAC层协议仿真

1.路由层协议仿真

在路由层,我们模拟的路由协议是AODV路由协议。

100个节点网络具体测试如下:

2.MAC层协议仿真

节点TCL测试脚本编辑如下:

settcp[newAgent/TCP]

$tcpsetclass_2

setsink[newAgent/TCPSink]

$ns_attach-agent$node_(0)$tcp

$ns_attach-agent$node_

(1)$sink

$ns_connect$tcp$sink

setftp[newApplication/FTP]

$ftpattach-agent$tcp

$ns_at0.5"$ftpstart"

for{seti0}{$i<$val(nn)}{incri}{

$ns_at6.0"$node_($i)reset";

}

$ns_at6.0"stop"

$ns_at6.01"puts\"NSEXITING...\";$ns_halt"

procstop{}{

globalns_tracefd

$ns_flush-trace

close$tracefd

}

puts"StartingSimulation..."

$ns_run

Wireless-simple-mac的trace内容截图如下:

Wireless-simple-mac的NAM截图如下:

d)路由协议改进

节点开始广播建立网络

节点根据传输需求建立路由线路

节点建立路由成功,开始传输数据

六、课程设计结果分析

在路由协议仿真中,AODV协议确实跟我们之前学过的路由协议不一样,传统的无线传感器网络路由协议运行大致分为两个阶段:

路由建立阶段、数据收集阶段。

当节点部署到网络并开启电源后,并不是立即进入数据收集。

而是首先由基站发送Hello包,节点接受到Hello包后,更新自己的邻居节点信息,从而建立树状的网络结构。

进入数据收集阶段后,当网络中某一节点接受到数据包后,该节点就会向邻居表中的某一节点发送数据收集包(Collect包),最终将接收到的数据信息发送到基站,传给应用程序进行处理。

而AODV协议采用产生数据传输请求时才会建立路由,这种所需才所求的方式特别适合传感器节点这种能量有限、数据量小的特征,所以具有一定的优越性。

在MAC协议仿真中,MAC层在建立连接后,即传输传输层中产生的数据请求,在本次实验中,采用的是TCPAGENTS,由于TCP三次握手的原理,所以TCP在数据传输中会产生太多的额外信息,加重了节点的负担,不利于节点长期稳定的工作。

所以我们在无线传感器网络的传输层中,应选取短小安全的传输层协议,例如PSFQ协议。

这类协议属于慢分发快提取可靠传输协议。

7、课程设计心得体会

在学习完《物联网与无线传感器网络》之后,在本学期末我们也进行了无线传感器网络的课程设计,经历此次课程设计之后,我收获颇多。

在选题方面,经过慎重考虑自身实力和兴趣之后,我和我的组员们选择了难度较高的软件仿真实验。

在确认好题目后,在组长施国豪的正确计划下,我们陆续展开了一系列的学习和考察。

首先在环境搭建方面,大家一起努力解决了出现的诸如编译不通过、库包不全的问题。

在其后的仿真实验中,我们先是自学了tcl这种的脚本语言,克服了语言困难之后,我们通过研究自带范例和网络资料,实现了路由和MAC协议的仿真。

我在组内承担了路由协议改进这个比较难的任务,感谢组员对我技术的信任,通过仔细思考AODV协议的运行方式,不断尝试新的算法,最后终于解决了AODV协议的改进难题,得以保证课程设计按时完成。

在本次课程设计中,我不仅学习了新的一门编程语言tcl,而且在编写协议过程中,利用了C++语言,使我的C++编程水平得到了锻炼和提高。

除此之外,我还接触到了NS2这个强大的协议仿真软件,在课程设计之余,真心感叹其强大的功能,每个协议的仿真架构都比较清晰,逻辑和模拟分离的特征使我们在协议测试方面事半功倍。

最后还是要感谢老师和同学的支持和帮助,感谢同组成员的辛勤努力合作,课程设计的完成离不开他们!

8、课程设计总结

本次课程设计完成了课程任务书上所有要求,并在课程设计过程中再次熟悉了诸多路由层和MAC层协议,我们的理论基础知识和动手能力都得到提升,基本上达到了课程设计的目的,并且通过了老师的验收。

总体来说,本次课程设计是成功的。

9、参考文献

1.NS2学习笔记燕志伟

2.NS2仿真实验-多媒体和无线网络通信,柯志亨

10、源代码

查看压缩包内文件夹

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2