版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、评定成绩: 课程设计报告(传感器网络组网)设计题目: 基于contiki平台的路由协议及仿真 学 院 名 称 :自动化学院学 生 姓 名 :专 业 :班 级 :学 号 :指 导 教 师 : 填表时间: 2016 年 5 月重庆邮电大学本科课程设计报告 摘要 摘要路由协议执行网络拓扑描述、路由选择和数据包转发的功能,影响整个网络的性能和存活时间。现有的路由协议需要发送大量数据包维护网络拓扑,以及大量的存储空间来存储路由条目。由于硬件的限制,无线传感器无论是能量还是处理能力,存储能力都受到了极大的限制。因此,ietf roll工作组提出了一种针对低功耗有损网络的ipv6路由协议,即rpl路由协议。
2、文中对rpl路由协议的拓扑构建过程进行分析,并通过利用cooja仿真工具进行仿真,在仿真中显示出dodag的构建过程,并对进行仿真出来的各种拓扑结构进行能耗的分析,在仿真过程中直观地显示涓流机制。关键字:ipv6 rpl路由协议 仿真 能耗分析重庆邮电大学本科课程设计报告 目录目录摘要i第一章 绪论11.1 设计题目:11.2 设计任务:11.3 设计要求:11.4 参考资料:1第二章 总体方案设计(或系统建模)22.1 rpl概述22.1.1dodag的构建过程22.1.2 环路避免的机制22.1.3涓流机制32.2 基于contiki平台的rpl路由协议仿真3第三章 个人设计工作(或系统仿
3、真分析)53.1dodag图构建分析53.2能耗的分析63.3涓流机制83.4其他参数修改:8第四章 设计总结9参考文献10附录11i重庆邮电大学本科课程设计报告 第一章 绪论第一章 绪论1.1 设计题目:基于contiki平台的传感网路由协议设计与仿真1.2 设计任务:基于contiki操作系统和cooja仿真器,运用所学的无线传感网知识,选择一种典型的传感网路由协议进行组网设计和仿真。路由协议可在aodv、rpl、rime等协议中任选一种,也可选择其它典型的传感网路由协议。1.3 设计要求:1掌握contiki物联网平台开发的基础知识。2. 组网规模不少于20个节点。3. 完成网络的运行场
4、景分析、拓扑结构规划和路由协议设计。4. 在contiki平台上独立编写符合需求的传感网程序。5采用contiki自带的网络仿真器,对编写的程序和网络路由协议进行仿真,给出网络运行效果图。6. 调节路由协议的一些参数,对路由协议的性能变化进行分析。1.4 参考资料:1contiki开发组. contiki: the open source os for the internet of things. /2. 桂劲松. 物联网系统设计. 北京:电子工业出版社. 2013.3. 谢希仁. 计算机网络. 北京:电子工业出版社. 2008.4. 李晓维.
5、 无线传感器网络技术. 北京:北京理工大学出版社. 2007.重庆邮电大学本科课程设计报告 第二章 总体设计方案(或系统建模)第二章 总体方案设计(或系统建模)2.1 rpl概述 rpl是为lln而设计的距离矢量路由协议,通过使用目标函数和度量集合构建具有目的地的有向无环图(dodag)。目标函数利用度量和约束条件的集合计算出最优路径。由于网络部署的目的性有异,同一网络可能需要不同的链路质量要求等等。2.1.1 dodag的构建过程dodag的构造过程由根节点或lowpan边界路由器(lbr)发起。为了实现dodag的构造,rpl基于icmpv6,新增加了如下三条控制消息:dis、dio、da
6、o。rpl支持三种基本的数据传输模式: 多点到点,multipoint-to-point (mp2p)、点到多点,point-to-multipoint (p2mp)、点到点,point-to-point (p2p).。首先来说实现为mp2p构造上行到根节点的路径。根节点利用dio消息广播dodag的信息;根节点的邻居节点收到dio后,根据一定的准则,决定是否加入这个dodag,这些准则包括:目标函数、dag特性、各种自定义的本地策略等,当某个邻居节点加入所广播的dodag后,它就建立了一条到达dodag根节点的路径。根节点被称为该节点的“父节点”。如果新加入图的节点类型是路由器,它将向自己的
7、邻居节点继续广播包含dodag信息的dio消息。如果新加入图的节点是“叶子节点”,则只是完成入网动作,不广播dio消息。邻居节点不断重复上述广播和加入动作,直至到达网络的所有叶子节点。每个节点都有一条路径由指向自己的父节点,通过将数据消息发给父节点,最终就能到达根节点。然后来说实现为p2mp构造的从根节点出发的下行路径,下行路由的构造通过dao消息来完成。每个节点加入dodag后,在网络发起上行路径构造指令后,将发送dao消息到它的父节点。dao消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前缀的可达性。当一个节点收到dao消息后,将对前缀信息进行处理,并在路由表中添加路由表项。然后将
8、该前缀信息进一步通过dao上传给自己的父节点。一个节点也可以将收到的前缀可达性信息进行汇集后,再发给自己的父节点。前缀上传过程一直进行,直至前缀信息到达父节点。每个节点都完成前缀上传后,整个网络将建立起一个从根节点到达所有叶子节点的下行路由图。2.1.2 环路避免的机制 rpl采用两种策略避免环的出现,这些方法都用到rank值。策略1:最大深度策略,一个节点在邻居中选择父节点时,不能选择rank值比它自己的rank重庆邮电大学本科课程设计报告 第二章 总体设计方案(或系统建模)值大一定程度的节点,即rank值超过node-rank+max_depth的节点,不能选择作为父节点。至于超过多少深度
9、才不能选择(max_depth的大小),由根节点确定。这种策略主要是防止选比自己还深的节点作为父节点。策略2:一个节点不能过度贪婪(greedy),不能为了增加父节点数,而移动自己在图中的深度,使深度值加大。2.1.3涓流机制 大多数路由协议,都需要设计周期性的keep alive帧,保证路由表的更新和维护。在lln中,需周期性的发送dio等消息,而周期性的更新会导致过多的控制开销,浪费能量。 所以rpl采用了一种自适应的定时器机制,称为trickle timer。这种机制用来控制dio消息发送的频率。trickle timer机制将图的更新视为一致性问题,使用trickle timer来决定
10、何时组播dio消息。trickle timer有个初始值,当网络趋于稳定时, trickle timer的周期会逐渐变大,相应的,网络中dio消息发送的频率会减少。当网络发生一些“不一致”事件时, trickle timer的值又会恢复到初始值,dio消息的发送就会比较频繁。这些事件有:节点检测到环路、节点新入网、节点发生了移动,采用了trickle timer机制后,当网络越来越稳定的时候,rpl控制报文会逐渐减少;而当网络出现问题时,控制报文发送的频率又会显著增加,保障网络及时通过控制报文快速修复问题。2.2 基于contiki平台的rpl路由协议仿真 我利用了contiki平台上的coo
11、ja对rpl路由协议进行仿真,下面为仿真过程:(1) 打开cooja,新建一个模拟器。图2.1 新建模拟器重庆邮电大学本科课程设计报告 第二章 总体设计方案(或系统建模) (2)加入根节点和叶子节点。图2.2 加入节点 (3)创建成功后,便能出现如下画面,其中id1为根节点,其他为叶子节点,按下simulation control的start键,便开始dodag图的构造。图2.3 开始仿真重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析)第3章 个人设计工作(或系统仿真分析)3.1 dodag图构建分析 我对icmp6.c中的打印函数进行修改,使得整个dodag图的构建过程能
12、够清楚地显示出来。 (1)上行路径的构建:从打印信息可清楚地看出构建上行路径的过程,根节点利用dio消息广播dodag的信息;根节点的邻居节点收到dio后,根据一定的准则,决定是否加入这个dodag,这些准则包括:目标函数、dag特性、各种自定义的本地策略等,当某个邻居节点加入所广播的dodag后,它就建立了一条到达dodag根节点的路径。图3.1 上行路径构建 (2)下行路径的构建: 下行路由的构造通过dao消息来完成。每个节点加入dodag后,在网络发起上行路径构造指令后,将发送dao消息到它的父节点。dao消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前缀的可达性。重庆邮电大学本
13、科课程设计报告 第三章 个人设计工作(或系统仿真分析)图3.2 下行路径构建 (3)最终dodag图的建立图3.3 建立dodag图3.2 能耗的分析 我对节点分布较分散的情况和节点较密集的情况进行了仿真,结果显示,节点较密集的时候在拓扑建立的过程中能耗较高且较为均衡。另外,我发现在第一种情况的仿真过程中,连接多条路径的节点都会消耗更多的能量,结果如图所示。重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析)图3.4 不同节点分布情况的示意图图3.5 情况1的节点能耗示意图图3.6 情况2的节点能耗示意图重庆邮电大学本科课程设计报告 第三章 个人设计工作(或系统仿真分析)3.3
14、 涓流机制下图为节点的dio消息发送间隔统计图,横轴代表网络运行时间,纵轴代表dio消息的发送间隔,从图中可以看出涓流机制的工作原理。初始的dio发送间隔是区间内的随机数,节点收到一致的dio消息后,dio发送间隔在原来的基础上翻倍,图中呈现出阶梯型增长的趋势。随着网络的稳定,信道中的控制消息数据包数量大大减少。当网络发生一些“不一致”事件时, trickle timer的值又会恢复到初始值,dio消息的发送就会比较频繁。如图所示就是节点10发生了位置的移动,导致其dio消息的发送间隔时间又回到初始值。图3.7 涓流机制示意图3.4 其他参数修改: (1) 在collect-commmon.c
15、中line 053:#define period 60改为30,修改过后使用collect-view工具进行数据收集的时间提前,可以在开始后30秒的时候看到收集到的个节点的信息。方便我们对rpl的性能进行分析。 (2)在rpl-conf.h line 148:#define rpl_dio_interval_min 12 改为10,使dio消息发送间隔变为10秒,加快节点发送消息的速度。重庆邮电大学本科课程设计报告 第四章 设计总结第四章 设计总结这次课程设计我进行了对rpl路由协议的仿真,感觉获益良多,在这里总结一下这次课程设计的收获与感受。前段时间我们在物联网系统设计的课堂上才刚刚学习了r
16、pl路由协议的相关知识,而这次则对此进行了一次实践,进一步加深了对此的理解。从仿真的过程中,可以直观地看到dodag的构建过程,直观地看到上行路径到根节点和下行路径的构建。在icmp6.c中有一段代码直观地描述了避免环路的机制。通过实际操作了解到了涓流机制的实质。另外,通过这次课程设计,也开拓了我的视野,使我有了第一次的机会对windows以外的操作系统进行操作,了解到了makefile的一些规则以及linux的一些命令。另外,这次设计对我c语言学习的帮助是巨大的,在啃代码,提高看代码的能力的同时,还能加深对rpl协议的理解,可谓是一举两得。我也希望自己在后续学习中去补足自己在这次课程设计所发
17、现的一些问题,继续提高自己读写代码的能力,为日后学习工作打下一个良好的基础。重庆邮电大学本科课程设计报告 参考文献参考文献1 郭梯云,邬国扬,李建东移动通信m西安:西安电子科技大学出版社,20012 董晓芳,孙岩,陈仁贵等自行研制仪器设备的规范化管理j实验技术与管理,2007,245:1631653 孙利民,李建中. 无线传感器网络m. 北京:清华大学出版社,2005.4 李振强. ipv6技术解密m. 北京.人民邮电出版社,2006.重庆邮电大学本科课程设计报告 附录附录leaf.c:process_thread(rpl_leaf_process,ev,data) static struct
18、 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_port),null);if(leaf_connection = null) printf(fail to m
19、ake 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); printf( local/remote port %u/%un, uip_htons(leaf_connection-lport), uip_htons(leaf_connection-rport);etim
20、er_set(&periodic, send_interval);/*设置etimer定时器,定时时长为send_interval*/* *etimer:定时器期满,发送事件 *ctimer:定时器期满,调用函数 *rtimer:实时时钟,在一个精确的时间调用函数*/while(1) process_yield(); if(ev = tcpip_event) tcpip_handler(); if(etimer_expired(&periodic)etimer_reset(&periodic);ctimer_set(&backoff_timer, send_time, send_packet,
21、 null); 重庆邮电大学本科课程设计报告 附录 process_end(); 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 startedn);#if uip_conf_router uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0xb
22、bbb);/*构造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) *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(); netstac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 牛羊肉买卖合同书
- 学生意外伤害赔偿协议
- 2024年度车辆租赁平台服务运营合同3篇
- 2024版设备租赁与维护保养协议3篇
- 商铺出售合同范本
- 家长与孩子的劳动协议书
- 购买房屋协议合同
- 农村宅基地转让合同
- 甲方委托乙方进行2024年度环境评估的合同3篇
- 空调维保合同范本
- GB 15763.1-2009建筑用安全玻璃第1部分:防火玻璃
- 2023年赣州市赣县区乡村振兴发展有限公司招聘笔试题库及答案解析
- 信息技术与聋校数学课堂深度融合的实践与探索获奖科研报告
- -牡丹亭《惊梦》课件
- 慢性贫血中西医治课件
- 医疗集团运营管理解决方案课件
- 外科休克课件
- 展览展示广告制作实施方案
- 《水循环》-完整版课件
- 《分式的通分》导学案
- 植树造林课件介绍
评论
0/150
提交评论