ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:3.02MB ,
资源ID:2487710      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2487710.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(传感器网络组网课程设计-基于contiki平台的路由协议仿真.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

传感器网络组网课程设计-基于contiki平台的路由协议仿真.doc

1、 评定成绩: 课程设计报告 (传感器网络组网) 设计题目: 基于contiki平台的路由协议及仿真 学 院 名 称 : 自动化学院 学 生 姓 名 : 专 业 : 班 级 : 学 号 : 指 导 教 师 : 填表时间: 2016 年 5 月 重庆邮电大学本科课程设计报告

2、 摘要 摘要 路由协议执行网络拓扑描述、路由选择和数据包转发的功能,影响整个网络的性能和存活时间。现有的路由协议需要发送大量数据包维护网络拓扑,以及大量的存储空间来存储路由条目。由于硬件的限制,无线传感器无论是能量还是处理能力,存储能力都受到了极大的限制。因此,IETF ROLL工作组提出了一种针对低功耗有损网络的IPV6路由协议,即RPL路由协议。 文中对RPL路由协议的拓扑构建过程进行分析,并通过利用cooja仿真工具进行仿真,在仿真中显示出DODAG的构建过程,并对进行仿真出来的各种拓扑结构进行能耗的分析,在仿真过程中直观地显示涓流机制。

3、 关键字:IPV6 RPL路由协议 仿真 能耗分析 重庆邮电大学本科课程设计报告 目录 目录 摘要 I 第一章 绪论 1 1.1 设计题目: 1 1.2 设计任务: 1 1.3 设计要求: 1 1.4 参考资料: 1 第二章 总体方案设计(或系统建模) 2 2.1 RPL概述 2 2.1.1DODAG的构建过程 2 2.1.2 环路避免的机制 2 2.1.3涓流机制 3 2.2 基于Contiki平台的RPL路由协议仿真 3 第三章

4、个人设计工作(或系统仿真分析) 5 3.1DODAG图构建分析 5 3.2能耗的分析 6 3.3涓流机制 8 3.4其他参数修改: 8 第四章 设计总结 9 参考文献 10 附录 11 I 重庆邮电大学本科课程设计报告 第一章 绪论 第一章 绪论 1.1 设计题目: 基于Contiki平台的传感网路由协议设计与仿真 1.2 设计任务: 基于Contiki操作系统和Cooja仿真器,运用所学的无线传感网知识,选择一种典型的传感网路由协议进行组网设计和仿真。路由协议可在AOD

5、V、RPL、RIME等协议中任选一种,也可选择其它典型的传感网路由协议。 1.3 设计要求: 1.掌握Contiki物联网平台开发的基础知识。 2. 组网规模不少于20个节点。 3. 完成网络的运行场景分析、拓扑结构规划和路由协议设计。 4. 在Contiki平台上独立编写符合需求的传感网程序。 5.采用Contiki自带的网络仿真器,对编写的程序和网络路由协议进行仿真,给出网络运行效果图。 6. 调节路由协议的一些参数,对路由协议的性能变化进行分析。 1.4 参考资料: 1.Contiki开发组. Contiki: The Open Source OS for the In

6、ternet of Things. http://www.contiki-os.org/ 2. 桂劲松. 《物联网系统设计》. 北京:电子工业出版社. 2013. 3. 谢希仁. 《计算机网络》. 北京:电子工业出版社. 2008. 4. 李晓维. 《无线传感器网络技术》. 北京:北京理工大学出版社. 2007. 重庆邮电大学本科课程设计报告 第二章 总体设计方案(或系统建模) 第二章 总体方案设计(或系统建模) 2.1 RPL概述 RPL是为LLN而设计的距离矢量路由协议,通过使用目标函数和度量集合构建具有目的地的有向无环图(DODA

7、G)。目标函数利用度量和约束条件的集合计算出最优路径。由于网络部署的目的性有异,同一网络可能需要不同的链路质量要求等等。 2.1.1 DODAG的构建过程 DODAG的构造过程由根节点或LoWPAN边界路由器(LBR)发起。为了实现DODAG的构造,RPL基于ICMPv6,新增加了如下三条控制消息:DIS、DIO、DAO。RPL支持三种基本的数据传输模式: 多点到点,Multipoint-to-Point (MP2P)、点到多点,Point-to-Multipoint (P2MP)、点到点,Point-to-Point (P2P).。首先来说实现为MP2P构造上行到根节点的路径。根节点利用

8、DIO消息广播DODAG的信息;根节点的邻居节点收到DIO后,根据一定的准则,决定是否加入这个DODAG,这些准则包括:目标函数、DAG特性、各种自定义的本地策略等,当某个邻居节点加入所广播的DODAG后,它就建立了一条到达DODAG根节点的路径。根节点被称为该节点的“父节点”。如果新加入图的节点类型是路由器,它将向自己的邻居节点继续广播包含DODAG信息的DIO消息。如果新加入图的节点是“叶子节点”,则只是完成入网动作,不广播DIO消息。邻居节点不断重复上述广播和加入动作,直至到达网络的所有叶子节点。每个节点都有一条路径由指向自己的父节点,通过将数据消息发给父节点,最终就能到达根节点。然后来

9、说实现为P2MP构造的从根节点出发的下行路径,下行路由的构造通过DAO消息来完成。每个节点加入DODAG后,在网络发起上行路径构造指令后,将发送DAO消息到它的父节点。DAO消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前缀的可达性。当一个节点收到DAO消息后,将对前缀信息进行处理,并在路由表中添加路由表项。然后将该前缀信息进一步通过DAO上传给自己的父节点。一个节点也可以将收到的前缀可达性信息进行汇集后,再发给自己的父节点。前缀上传过程一直进行,直至前缀信息到达父节点。每个节点都完成前缀上传后,整个网络将建立起一个从根节点到达所有叶子节点的下行路由图。 2.1.2 环路避免的机制

10、 RPL采用两种策略避免环的出现,这些方法都用到rank值。策略1:最大深度策略,一个节点在邻居中选择父节点时,不能选择rank值比它自己的rank 重庆邮电大学本科课程设计报告 第二章 总体设计方案(或系统建模) 值大一定程度的节点,即rank值超过node-rank+max_depth的节点,不能选择 作为父节点。至于超过多少深度才不能选择(max_depth的大小),由根节点确定。这种策略主要是防止选比自己还深的节点作为父节点。策略2:一个节点不能过度贪婪(greedy),不能为了增加父节点数,而移动自己在图中的深度,使深度值加大。

11、2.1.3涓流机制 大多数路由协议,都需要设计周期性的keep alive帧,保证路由表的更新和维护。在LLN中,需周期性的发送DIO等消息,而周期性的更新会导致过多的控制开销,浪费能量。 所以RPL采用了一种自适应的定时器机制,称为trickle timer。这种机制用来控制DIO消息发送的频率。trickle timer机制将图的更新视为一致性问题,使用trickle timer来决定何时组播DIO消息。trickle timer有个初始值,当网络趋于稳定时, trickle timer的周期会逐渐变大,相应的,网络中DIO消息发送的频率会减少。当网络发生一些“不一致”事件时, t

12、rickle timer的值又会恢复到初始值,DIO消息的发送就会比较频繁。这些事件有:节点检测到环路、节点新入网、节点发生了移动,采用了trickle timer机制后,当网络越来越稳定的时候,RPL控制报文会逐渐减少;而当网络出现问题时,控制报文发送的频率又会显著增加,保障网络及时通过控制报文快速修复问题。 2.2 基于Contiki平台的RPL路由协议仿真 我利用了Contiki平台上的cooja对RPL路由协议进行仿真,下面为仿真过程: (1) 打开cooja,新建一个模拟器。 图2.1 新建模拟器 重庆邮电大学本科课程设计报告

13、 第二章 总体设计方案(或系统建模) (2)加入根节点和叶子节点。 图2.2 加入节点 (3)创建成功后,便能出现如下画面,其中ID1为根节点,其他为叶子节点,按下simulation control的start键,便开始DODAG图的构造。 图2.3 开始仿真 重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析) 第三章 个人设计工作(或系统仿真分析) 3.1 DODAG图构建分析 我对icmp6.c中的打印函数进行修改,使得整个DODAG图的构建过程能够清楚地显示出来。

14、 (1)上行路径的构建: 从打印信息可清楚地看出构建上行路径的过程,根节点利用DIO消息广播DODAG的信息;根节点的邻居节点收到DIO后,根据一定的准则,决定是否加入这个DODAG,这些准则包括:目标函数、DAG特性、各种自定义的本地策略等,当某个邻居节点加入所广播的DODAG后,它就建立了一条到达DODAG根节点的路径。 图3.1 上行路径构建 (2)下行路径的构建: 下行路由的构造通过DAO消息来完成。每个节点加入DODAG后,在网络发起上行路径构造指令后,将发送DAO消息到它的父节点。DAO消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前

15、缀的可达性。 重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析) 图3.2 下行路径构建 (3)最终DODAG图的建立 图3.3 建立DODAG图 3.2 能耗的分析 我对节点分布较分散的情况和节点较密集的情况进行了仿真,结果显示,节点较密集的时候在拓扑建立的过程中能耗较高且较为均衡。另外,我发现在第一种情况的仿真过程中,连接多条路径的节点都会消耗更多的能量,结果如图所示。 重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析) 图3.

16、4 不同节点分布情况的示意图 图3.5 情况1的节点能耗示意图 图3.6 情况2的节点能耗示意图 重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析) 3.3 涓流机制 下图为节点的DIO消息发送间隔统计图,横轴代表网络运行时间,纵轴代表DIO消息的发送间隔,从图中可以看出涓流机制的工作原理。初始的DIO发送间隔是区间内的随机数,节点收到一致的DIO消息后,DIO发送间隔在原来的基础上翻倍,图中呈现出阶梯型增长的趋势。随着网络的稳定,信道中的控制消息数据包数量大大减少。当网络发生一些“不一致”事件时, trickle ti

17、mer的值又会恢复到初始值,DIO消息的发送就会比较频繁。如图所示就是节点10发生了位置的移动,导致其DIO消息的发送间隔时间又回到初始值。 图3.7 涓流机制示意图 3.4 其他参数修改: (1) 在collect-commmon.c中Line 053:#define PERIOD 60改为30,修改过后使用collect-view工具进行数据收集的时间提前,可以在开始后30秒的时候看到收集到的个节点的信息。方便我们对RPL的性能进行分析。 (2)在rpl-conf.h Line 148:#define RPL_DIO_INTERVAL_MIN

18、 12 改为10,使DIO消息发送间隔变为10秒,加快节点发送消息的速度。 重庆邮电大学本科课程设计报告 第四章 设计总结 第四章 设计总结 这次课程设计我进行了对RPL路由协议的仿真,感觉获益良多,在这里总结一下这次课程设计的收获与感受。前段时间我们在物联网系统设计的课堂上才刚刚学习了RPL路由协议的相关知识,而这次则对此进行了一次实践,进一步加深了对此的理解。从仿真的过程中,可以直观地看到DODAG的构建过程,直观地看到上行路径到根节点和下行路径的构建。在icmp6.c中有一段代码直观地描述了避免环路的机制。通

19、过实际操作了解到了涓流机制的实质。另外,通过这次课程设计,也开拓了我的视野,使我有了第一次的机会对windows以外的操作系统进行操作,了解到了makefile的一些规则以及Linux的一些命令。另外,这次设计对我C语言学习的帮助是巨大的,在啃代码,提高看代码的能力的同时,还能加深对RPL协议的理解,可谓是一举两得。 我也希望自己在后续学习中去补足自己在这次课程设计所发现的一些问题,继续提高自己读写代码的能力,为日后学习工作打下一个良好的基础。 重庆邮电大学本科课程设计报告 参考文献 参考文献 [1] 郭

20、梯云,邬国扬,李建东.移动通信[M].西安:西安电子科技大学出版社,2001. [2] 董晓芳,孙岩,陈仁贵等.自行研制仪器设备的规范化管理〔J〕.实验技术与管理,2007,24﹝5﹞:163-165 [3] 孙利民,李建中. 无线传感器网络[M]. 北京:清华大学出版社,2005. [4] 李振强. IPV6技术解密[M]. 北京.人民邮电出版社,2006. 重庆邮电大学本科课程设计报告 附录 附录 Leaf.c: PROCESS_THREAD(rpl_leaf_process,ev,da

21、ta){ static struct etimer periodic; /*定义etimer 周期性定时器*/ static struct ctimer backoff_timer; /*定义ctimer 补偿定时器*/ PROCESS_BEGIN(); PROCESS_PAUSE(); set_global_address(); printf("UDP LEAF IP ADDRESS:"); print_local_addresses(); leaf_connection =udp_new(NULL,UIP_HTONS(UDP_LEAF_P

22、ORT),NULL); if(leaf_connection == NULL) { PRINTF("Fail to make UDP connection, exiting the process!\n"); PROCESS_EXIT(); } udp_bind(leaf_connection, UIP_HTONS(UDP_LEAF_PORT)); PRINTF("Created a connection with the root "); PRINT6ADDR(&leaf_connection->ripaddr); PRIN

23、TF(" local/remote port %u/%u\n", UIP_HTONS(leaf_connection->lport), UIP_HTONS(leaf_connection->rport)); etimer_set(&periodic, SEND_INTERVAL); /*设置etimer定时器,定时时长为SEND_INTERVAL*/ /* *etimer:定时器期满,发送事件 *ctimer:定时器期满,调用函数 *rtimer:实时时钟,在一个精确的时间调用函数 */ while(1) { PROCESS_

24、YIELD(); if(ev == tcpip_event) { tcpip_handler(); } if(etimer_expired(&periodic)){ etimer_reset(&periodic); ctimer_set(&backoff_timer, SEND_TIME, send_packet, NULL); } 重庆邮电大学本科课程设计报告 附录 PROCESS_END(); } }

25、 Root.c: PROCESS_THREAD(udp_root_precess,ev,data){ uip_ipaddr_t ipaddr; struct uip_ds6_addr *root_if; PROCESS_BEGIN(); PROCESS_PAUSE(); SENSORS_ACTIVATE(button_sensor); PRINTF("UDP root started\n"); #if UIP_CONF_ROUTER uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0

26、xbbbb); /*构造ipv6地址*/ /* uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); */ uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL); root_if = uip_ds6_addr_lookup(&ipaddr); if(root_if != NULL) { rpl_dag_t *dag; /* *rpl_set_root(uint8_t instance_id,uip_ipaddr_t * dag_id)

27、 *0x2a,42 */ dag = rpl_set_root(0x2a,(uip_ip6addr_t *)&ipaddr); uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0xbbbb); print_local_addresses(); NETSTACK_RDC.off(1);/* *udp_new(const uip_ipaddr_t * ripaddr,uint16_t port,void * appstate) *return c *struct uip_udp_c

28、onn *c */ root_connection= udp_new(NULL, UIP_HTONS(UDP_LEAF_PORT), NULL); /*建立新的udp*/ udp_bind(root_connection, UIP_HTONS(UDP_ROOT_PORT)); /*绑定端口号*/ PRINTF("Created a root connection with remote address "); PRINT6ADDR(&root_connection->ripaddr); /*打印远端地址*/ 重庆邮电大学本科课程设计

29、报告 附录 /*打印本地和远程的端口号*/ PRINTF(" local/remote port %u/%u\n", UIP_HTONS(root_connection->lport), UIP_HTONS(root_connection->rport)); while(1) { PROCESS_YIELD(); if(ev == tcpip_event) { tcpip_handler(); } else if (ev == sensors_event && data == &button_sensor) { PRINTF("Initiaing global repair\n"); /* *rpl_repair_root(uint8_t instance_id) *全局修复 *实例ID,0x2a */ rpl_repair_root(0x2a); } } PROCESS_END();} 12

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服