欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    中南大学无线传感器网络课程设计 --NS2仿真.doc

    • 资源ID:56692680       资源大小:937.50KB        全文页数:23页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    中南大学无线传感器网络课程设计 --NS2仿真.doc

    中南大学信息科学与工程学院无线传感器网络课程设计题目名称:基于NS2的无线传感器网络软件仿真实验 姓名: 董嘉伟 学号: 专业: 物联网工程1002班 组员: 裘铖、施国豪 指导教师: 何小贤 时间: 2013、07、11 目录l 课程设计目的l 课程设计内容l 课程设计实验原理n WSN路由协议n WSN MAC层协议n 修改的路由协议l 课程设计小组分工l 课程设计实验流程l 课程设计实验结果分析l 课程设计心得体会l 课程设计总结l 参考文献l 源代码一、 课程设计目的 无线传感器网络是物联网的基本组成部分,是物联网用来感知和识别周围环境的信息生成和采集系统,传感器网络对信息处理来说如同人体的感觉突触一样重要。为了方便感知和部署并提高网络的可扩展性,传感器网络一般采用无线通信方式,从而形成了节点之间可自组织拓扑结构的无线传感器网络。本课程设计的目的综合应用学生所学知识,建立系统和完整的传感器网络概念,理解和巩固无线传感器网络基本理论、原理和方法,掌握无线传感器网络开发的基本技能。二、 课程设计内容 软件仿真实验。要求使用相关软件仿真一个无线传感器网络,要求如下:l 自行参考相关资料,成功安装 NS2(或 OPNET也可以);l 利用NS2自带的范例,构建一个100个节点的无线传感器网络,能够成功运行;最好能有界面显示;l 利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器网络一种路由协议(例如一种多播路由协议);l 利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器网络采用一种MAC协议;l 修改或自行编写一个简单路由协议或MAC协议,并进行仿真运行。三、 课程设计实验原理a) WSN路由协议 传统计算机网络对路由协议要求如下:正确性,健壮性,稳定性,公平性,最优性。除此之外,无线传感器网络对路由协议更注重以下特殊要求:能源有效性,简单性,多路性。无线传感器网络是以数据为中心(Data Centric)进行路由的,不同于传统Ad hoc网络以地址为中心(Address Centric)进行路由的模式。由于传感器最基本任务就是感知、采集数据,无线传感器网络邻近节点间采集的数据必然具有相似性,存在冗余信息,需经数据融合(Data Fusion)处理再进行路由。有研究表明,在分布密度为(x, y)的随机区域,传感器间冗余数据为:=Se。直接传输这些未经处理、存在冗余的数据,将会造成网络带宽、节点能源的巨大浪费,导致节点迅速死亡,缩短整个网路的生命周期。 无线传感器网络中的大部分节点不像传统Ad hoc网络中的节点一样快速移动,因此没有必要花费很大的代价频繁地更新路由表信息。常规路由协议通常认为底层的通信信道是双向的,但是在采用无线通信的无线传感器网络环境中,由于发射功率或地理位置等因素的影响,可能存在单向信道。它给常规路由协议带来三个严重的影响:认知单向性、路由单向性和汇点不可达。 本次实验中涉及到路由协议原理如下:l AODV AODV(Ad hoc on-demand distance vector routing)是一种源驱动路由协议。当一个节点需要给网络中的其他节点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文。RREQ报文中记录着发起节点和目标节点的网络层地址,邻近节点收到RREQ,首先判断目标节点是否为自己。如果是,则向发起节点发送RREP(路由回应);如果不是,则首先在路由表中查找是否有到达目标节点的路由,如果有,则向源节点单播RREP,否则继续转发RREQ进行查找。在网络资源充分的情况下,AODV协议可以通过定期广播hello报文来维护路由,一旦发现某一个链路断开,节点就发送ERROR报文通知那些因链路断开而不可达的节点删除相应的记录或者对已存在的路由进行修复。 b) WSN MAC层协议 MAC层位于OSI七层协议中数据链路层,数据链路层分为上层LLC(Logical Links Control,逻辑链路控制),和下层的MAC(媒体访问控制),MAC主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。 不管是在有线局域网(LAN)中还是在无线局域网(WLAN)中,MAC协议都被广泛地应用。在传统局域网中,各种传输介质的物理层对应到相应的MAC层,目前普遍采用的是IEEE 802.3的MAC层标准,采用CSMA/CD访问控制方式;而在无线局域网中,MAC所对应的标准为IEEE 802.11,其工作方式采用DCF(分布控制)和PCF(中心控制)。l 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发送的包含S123D和S1-456D路由的RREP分组。结点S只会根据目的节的序列号和至目的结点的跳数保留其中的一条路由,另一条路由即使是有效路由也将被丢弃。在此例中,由于目的结点序列号较小,路由S1-23一D将被丢弃。如在结点S通过路由S1456D与结点D通信的过程中,结点1发现与结点4断开,结点S需要重新发起一个至结点D的路由发现过程,最后可能会再次收到包含路由S1-23D的RREP分组。在每个源结点维护一条到指定目的结点的备份路由,并通过修改本地修复机制,使得当主路由失效时,会通过备份路由来发送数据包。只有当备用路由也失效时才重新发起路由发现过程,是我们改进路由协议的思想。为了区分主路由与备份路由,需要对原有的路由表做一定的扩充,具体做法为在aodvrtableh中的aodvrtentry类声明中添加一个标志位rt_pfiority并在aodvrt entry的构造函数中将其初始化为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=new aodvlc_rt_entry;assert(rt);rt->rt_dst=id;rt->rt_priofity=1;LIST_INSERT_HEAD(&rthead,rt,rt link);Retum rt;Aodvlc_rt_entry*aodvlc_rtable:rt_lookupback(nsaddr_tid)Aodvlc_rt_entry*rt=rthead.1h_first;for(;rt;rt=rt->rt_link1e_next)if(rt->rt_dst_id)&&(rt->rt_priority=1)break;Return rt;四、 课程设计小组分工组长:施国豪无线传感器网络设计及TCL脚本编写:董嘉伟路由、MAC层协议仿真:裘铖路由协议改进:董嘉伟报告编写:董嘉伟、裘铖资料收集:施国豪五、 课程设计实验流程a) 实验环境的搭建 我采用了VMWARE+CENTOS+NS2的搭建方式。曾经考虑在Windows下使用Cygwin+NS2的搭建方式,但由于Cygwin下模拟Linux编译NS2文件经常出现错误,所以换用虚拟机VMWARE安装CENTOS来测试。安装需要额外的包来完成支持,具体包如下: G+、Gcc、libX11、xorg-x11、libXt、libXmu,以CentOS为例,需执行以下指令(使用Root用户) $yum install libX11-devel* $yum install xorg-x11-proto-devel* $yum install libXt-devel* $yum install libXmu-devel* 在NS2的解压目录下执行./install,安装完成后执行简单的tcl测试脚本,运行成功,结果如下: b) 无线传感器网络设计根据课程设计指导书要求,设计一个含有100个传感器节点的无线网络。拓扑图如下: 借助NSG2完成随机节点的分布,其中具备邻居条件的用蓝色线条连接表示,灰色线条代表某节点的广播域。 除此之外,NSG2还可以用来辅助生成TCL脚本文件。根据自己预设的条件设置诸如节点路由协议、MAC协议、物理层模型、节点数、节点位置、节点横纵坐标范围等等,极大地降低了编写测试脚本的难度,提高了协议的修改和测试速度。根据现有TCL测试脚本,编辑节点属性如下:set val(chan) Channel/WirelessChannel ;# channel typeset val(prop) Propagation/TwoRayGround ;# radio-propagation modelset val(netif) Phy/WirelessPhy ;# network interface typeset val(mac) Mac/802_11 ;# MAC typeset val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer typeset val(ant) Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(nn) 100 ;# number of mobilenodesset val(rp) DSDV ;# routing protocolset val(x) 14248 ;# X dimension of topographyset val(y) 100 ;# Y dimension of topographyset val(stop) 10 ;# time of simulation end$ns node-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 -agentTrace ON -routerTrace ON -macTrace ON -movementTrace ONAGENT属性设置set udp_(0) new Agent/UDP$ns attach-agent $n84 $udp_(0)set null_(0) new Agent/Null$ns attach-agent $n30 $null_(0)$ns connect $udp_(0) $null_(0)set cbr_(0) new Application/Traffic/CBR$cbr_(0) set packetSize_ 512$cbr_(0) set interval_ 0.1$cbr_(0) set random_ 1$cbr_(0) set maxpkts_ $cbr_(0) attach-agent $udp_(0)$ns at 4.0 "$cbr_(0) start"c) 路由层、MAC层协议仿真1. 路由层协议仿真在路由层,我们模拟的路由协议是AODV路由协议。100个节点网络具体测试如下:2. MAC层协议仿真节点TCL测试脚本编辑如下:set tcp new Agent/TCP$tcp set class_ 2set sink new Agent/TCPSink$ns_ attach-agent $node_(0) $tcp$ns_ attach-agent $node_(1) $sink$ns_ connect $tcp $sinkset ftp new Application/FTP$ftp attach-agent $tcp$ns_ at 0.5 "$ftp start" for set i 0 $i < $val(nn) incr i $ns_ at 6.0 "$node_($i) reset"$ns_ at 6.0 "stop"$ns_ at 6.01 "puts "NS EXITING." ; $ns_ halt"proc stop global ns_ tracefd $ns_ flush-trace close $tracefdputs "Starting Simulation."$ns_ runWireless-simple-mac的trace内容截图如下:Wireless-simple-mac的NAM截图如下:d) 路由协议改进节点开始广播建立网络 节点根据传输需求建立路由线路 节点建立路由成功,开始传输数据 六、课程设计结果分析 在路由协议仿真中,AODV协议确实跟我们之前学过的路由协议不一样,传统的无线传感器网络路由协议运行大致分为两个阶段:路由建立阶段、数据收集阶段。当节点部署到网络并开启电源后,并不是立即进入数据收集。而是首先由基站发送Hello包,节点接受到Hello包后,更新自己的邻居节点信息,从而建立树状的网络结构。进入数据收集阶段后,当网络中某一节点接受到数据包后,该节点就会向邻居表中的某一节点发送数据收集包(Collect包),最终将接收到的数据信息发送到基站,传给应用程序进行处理。而AODV协议采用产生数据传输请求时才会建立路由,这种所需才所求的方式特别适合传感器节点这种能量有限、数据量小的特征,所以具有一定的优越性。 在MAC协议仿真中,MAC层在建立连接后,即传输传输层中产生的数据请求,在本次实验中,采用的是TCP AGENTS,由于TCP三次握手的原理,所以TCP在数据传输中会产生太多的额外信息,加重了节点的负担,不利于节点长期稳定的工作。所以我们在无线传感器网络的传输层中,应选取短小安全的传输层协议,例如PSFQ协议。这类协议属于慢分发快提取可靠传输协议。七、 课程设计心得体会 在学习完物联网与无线传感器网络之后,在本学期末我们也进行了无线传感器网络的课程设计,经历此次课程设计之后,我收获颇多。在选题方面,经过慎重考虑自身实力和兴趣之后,我和我的组员们选择了难度较高的软件仿真实验。在确认好题目后,在组长施国豪的正确计划下,我们陆续展开了一系列的学习和考察。首先在环境搭建方面,大家一起努力解决了出现的诸如编译不通过、库包不全的问题。在其后的仿真实验中,我们先是自学了tcl这种的脚本语言,克服了语言困难之后,我们通过研究自带范例和网络资料,实现了路由和MAC协议的仿真。我在组内承担了路由协议改进这个比较难的任务,感谢组员对我技术的信任,通过仔细思考AODV协议的运行方式,不断尝试新的算法,最后终于解决了AODV协议的改进难题,得以保证课程设计按时完成。 在本次课程设计中,我不仅学习了新的一门编程语言tcl,而且在编写协议过程中,利用了C+语言,使我的C+编程水平得到了锻炼和提高。除此之外,我还接触到了NS2这个强大的协议仿真软件,在课程设计之余,真心感叹其强大的功能,每个协议的仿真架构都比较清晰,逻辑和模拟分离的特征使我们在协议测试方面事半功倍。 最后还是要感谢老师和同学的支持和帮助,感谢同组成员的辛勤努力合作,课程设计的完成离不开他们!八、 课程设计总结 本次课程设计完成了课程任务书上所有要求,并在课程设计过程中再次熟悉了诸多路由层和MAC层协议,我们的理论基础知识和动手能力都得到提升,基本上达到了课程设计的目的,并且通过了老师的验收。总体来说,本次课程设计是成功的。九、 参考文献1 NS2学习笔记 燕志伟2 NS2仿真实验-多媒体和无线网络通信,柯志亨十、 源代码 查看压缩包内文件夹

    注意事项

    本文(中南大学无线传感器网络课程设计 --NS2仿真.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开