基于contiki平台的路由协议仿真_第1页
基于contiki平台的路由协议仿真_第2页
基于contiki平台的路由协议仿真_第3页
基于contiki平台的路由协议仿真_第4页
基于contiki平台的路由协议仿真_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..评定成绩:课程设计报告〔传感器网络组网〕设计题目:基于contiki平台的路由协议及仿真学院名称:自动化学院学生姓名:专业:班级:学号:指导教师:填表时间:2016年5月..邮电大学本科课程设计报告摘要摘要路由协议执行网络拓扑描述、路由选择和数据包转发的功能,影响整个网络的性能和存活时间。现有的路由协议需要发送大量数据包维护网络拓扑,以及大量的存储空间来存储路由条目。由于硬件的限制,无线传感器无论是能量还是处理能力,存储能力都受到了极大的限制。因此,IETFROLL工作组提出了一种针对低功耗有损网络的IPV6路由协议,即RPL路由协议。文中对RPL路由协议的拓扑构建过程进展分析,并通过利用cooja仿真工具进展仿真,在仿真中显示出DODAG的构建过程,并对进展仿真出来的各种拓扑构造进展能耗的分析,在仿真过程中直观地显示涓流机制。关键字:IPV6RPL路由协议仿真能耗分析..邮电大学本科课程设计报告目录目录TOC\o"1-3"\h\u2177摘要I1619第一章绪论133891.1设计题目:1189041.2设计任务:1321101.3设计要求:1200111.4参考资料:125195第二章总体方案设计〔或系统建模〕2305812.1RPL概述2213552.1.1DODAG的构建过程2319972.1.2环路防止的机制2235132.1.3涓流机制3124742.2基于Contiki平台的RPL路由协议仿真34389第三章个人设计工作〔或系统仿真分析〕5308293.1DODAG图构建分析5307023.2能耗的分析6114023.3涓流机制8153073.4其他参数修改:829565第四章设计总结95620参考文献 109235附录 11..邮电大学本科课程设计报告第一章绪论第一章绪论1.1设计题目:基于Contiki平台的传感网路由协议设计与仿真1.2设计任务:基于Contiki操作系统和Cooja仿真器,运用所学的无线传感网知识,选择一种典型的传感网路由协议进展组网设计和仿真。路由协议可在AODV、RPL、RIME等协议中任选一种,也可选择其它典型的传感网路由协议。1.3设计要求:1.掌握Contiki物联网平台开发的根底知识。2.组网规模不少于20个节点。3.完成网络的运行场景分析、拓扑构造规划和路由协议设计。4.在Contiki平台上独立编写符合需求的传感网程序。5.采用Contiki自带的网络仿真器,对编写的程序和网络路由协议进展仿真,给出网络运行效果图。6.调节路由协议的一些参数,对路由协议的性能变化进展分析。1.4参考资料:1.Contiki开发组.Contiki:TheOpenSourceOSfortheInternetofThings../2.桂劲松."物联网系统设计".:电子工业.2013.3.希仁."计算机网络".:电子工业.2008.4.晓维."无线传感器网络技术".:理工大学.2007.邮电大学本科课程设计报告第二章总体设计方案〔或系统建模〕第二章总体方案设计〔或系统建模〕2.1RPL概述RPL是为LLN而设计的距离矢量路由协议,通过使用目标函数和度量集合构建具有目的地的有向无环图〔DODAG〕。目标函数利用度量和约束条件的集合计算出最优路径。由于网络部署的目的性有异,同一网络可能需要不同的链路质量要求等等。2.1.1DODAG的构建过程DODAG的构造过程由根节点或LoWPAN边界路由器〔LBR〕发起。为了实现DODAG的构造,RPL基于ICMPv6,新增加了如下三条控制消息:DIS、DIO、DAO。RPL支持三种根本的数据传输模式:多点到点,Multipoint-to-Point(MP2P)、点到多点,Point-to-Multipoint(P2MP)、点到点,Point-to-Point(P2P).。首先来说实现为MP2P构造上行到根节点的路径。根节点利用DIO消息播送DODAG的信息;根节点的邻居节点收到DIO后,根据一定的准那么,决定是否参加这个DODAG,这些准那么包括:目标函数、DAG特性、各种自定义的本地策略等,当某个邻居节点参加所播送的DODAG后,它就建立了一条到达DODAG根节点的路径。根节点被称为该节点的"父节点〞。如果新参加图的节点类型是路由器,它将向自己的邻居节点继续播送包含DODAG信息的DIO消息。如果新参加图的节点是"叶子节点〞,那么只是完成入网动作,不播送DIO消息。邻居节点不断重复上述播送和参加动作,直至到达网络的所有叶子节点。每个节点都有一条路径由指向自己的父节点,通过将数据消息发给父节点,最终就能到达根节点。然后来说实现为P2MP构造的从根节点出发的下行路径,下行路由的构造通过DAO消息来完成。每个节点参加DODAG后,在网络发起上行路径构造指令后,将发送DAO消息到它的父节点。DAO消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前缀的可达性。当一个节点收到DAO消息后,将对前缀信息进展处理,并在路由表中添加路由表项。然后将该前缀信息进一步通过DAO上传给自己的父节点。一个节点也可以将收到的前缀可达性信息进展聚集后,再发给自己的父节点。前缀上传过程一直进展,直至前缀信息到达父节点。每个节点都完成前缀上传后,整个网络将建立起一个从根节点到达所有叶子节点的下行路由图。2.1.2环路防止的机制RPL采用两种策略防止环的出现,这些方法都用到rank值。策略1:最大深度策略,一个节点在邻居中选择父节点时,不能选择rank值比它自己的rank邮电大学本科课程设计报告第二章总体设计方案〔或系统建模〕值大一定程度的节点,即rank值超过node-rank+max_depth的节点,不能选择作为父节点。至于超过多少深度才不能选择〔max_depth的大小〕,由根节点确定。这种策略主要是防止选比自己还深的节点作为父节点。策略2:一个节点不能过度贪婪〔greedy〕,不能为了增加父节点数,而移动自己在图中的深度,使深度值加大。2.1.3涓流机制大多数路由协议,都需要设计周期性的keepalive帧,保证路由表的更新和维护。在LLN中,需周期性的发送DIO等消息,而周期性的更新会导致过多的控制开销,浪费能量。所以RPL采用了一种自适应的定时器机制,称为trickletimer。这种机制用来控制DIO消息发送的频率。trickletimer机制将图的更新视为一致性问题,使用trickletimer来决定何时组播DIO消息。trickletimer有个初始值,当网络趋于稳定时,trickletimer的周期会逐渐变大,相应的,网络中DIO消息发送的频率会减少。当网络发生一些"不一致〞事件时,trickletimer的值又会恢复到初始值,DIO消息的发送就会比拟频繁。这些事件有:节点检测到环路、节点新入网、节点发生了移动,采用了trickletimer机制后,当网络越来越稳定的时候,RPL控制报文会逐渐减少;而当网络出现问题时,控制报文发送的频率又会显著增加,保障网络及时通过控制报文快速修复问题。2.2基于Contiki平台的RPL路由协议仿真我利用了Contiki平台上的cooja对RPL路由协议进展仿真,下面为仿真过程:翻开cooja,新建一个模拟器。图2.1新建模拟器邮电大学本科课程设计报告第二章总体设计方案〔或系统建模〕〔2〕参加根节点和叶子节点。图2.2参加节点〔3〕创立成功后,便能出现如下画面,其中ID1为根节点,其他为叶子节点,按下simulationcontrol的start键,便开场DODAG图的构造。图2.3开场仿真邮电大学本科课程设计报告第三章个人设计工作〔或系统仿真分析〕个人设计工作〔或系统仿真分析〕3.1DODAG图构建分析我对icmp6.c中的打印函数进展修改,使得整个DODAG图的构建过程能够清楚地显示出来。〔1〕上行路径的构建:从打印信息可清楚地看出构建上行路径的过程,根节点利用DIO消息播送DODAG的信息;根节点的邻居节点收到DIO后,根据一定的准那么,决定是否参加这个DODAG,这些准那么包括:目标函数、DAG特性、各种自定义的本地策略等,当某个邻居节点参加所播送的DODAG后,它就建立了一条到达DODAG根节点的路径。图3.1上行路径构建〔2〕下行路径的构建:下行路由的构造通过DAO消息来完成。每个节点参加DODAG后,在网络发起上行路径构造指令后,将发送DAO消息到它的父节点。DAO消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前缀的可达性。邮电大学本科课程设计报告第三章个人设计工作〔或系统仿真分析〕图3.2下行路径构建(3)最终DODAG图的建立图3.3建立DODAG图3.2能耗的分析我对节点分布较分散的情况和节点较密集的情况进展了仿真,结果显示,节点较密集的时候在拓扑建立的过程中能耗较高且较为均衡。另外,我发现在第一种情况的仿真过程中,连接多条路径的节点都会消耗更多的能量,结果如下图。邮电大学本科课程设计报告第三章个人设计工作〔或系统仿真分析〕图3.4不同节点分布情况的示意图图3.5情况1的节点能耗示意图图3.6情况2的节点能耗示意图邮电大学本科课程设计报告第三章个人设计工作〔或系统仿真分析〕3.3涓流机制下列图为节点的DIO消息发送间隔统计图,横轴代表网络运行时间,纵轴代表DIO消息的发送间隔,从图中可以看出涓流机制的工作原理。初始的DIO发送间隔是区间的随机数,节点收到一致的DIO消息后,DIO发送间隔在原来的根底上翻倍,图中呈现出阶梯型增长的趋势。随着网络的稳定,信道中的控制消息数据包数量大大减少。当网络发生一些"不一致〞事件时,trickletimer的值又会恢复到初始值,DIO消息的发送就会比拟频繁。如下图就是节点10发生了位置的移动,导致其DIO消息的发送间隔时间又回到初始值。图3.7涓流机制示意图3.4其他参数修改:〔1〕在collect-mmon.c中Line053:#definePERIOD60改为30,修改正后使用collect-view工具进展数据收集的时间提前,可以在开场后30秒的时候看到收集到的个节点的信息。方便我们对RPL的性能进展分析。〔2〕在rpl-conf.hLine148:#defineRPL_DIO_INTERVAL_MIN12改为10,使DIO消息发送间隔变为10秒,加快节点发送消息的速度。邮电大学本科课程设计报告第四章设计总结第四章设计总结这次课程设计我进展了对RPL路由协议的仿真,感觉获益良多,在这里总结一下这次课程设计的收获与感受。前段时间我们在物联网系统设计的课堂上才刚刚学习了RPL路由协议的相关知识,而这次那么对此进展了一次实践,进一步加深了对此的理解。从仿真的过程中,可以直观地看到DODAG的构建过程,直观地看到上行路径到根节点和下行路径的构建。在icmp6.c中有一段代码直观地描述了防止环路的机制。通过实际操作了解到了涓流机制的实质。另外,通过这次课程设计,也开拓了我的视野,使我有了第一次的时机对windows以外的操作系统进展操作,了解到了makefile的一些规那么以及Linux的一些命令。另外,这次设计对我C语言学习的帮助是巨大的,在啃代码,提高看代码的能力的同时,还能加深对RPL协议的理解,可谓是一举两得。我也希望自己在后续学习中去补足自己在这次课程设计所发现的一些问题,继续提高自己读写代码的能力,为日后学习工作打下一个良好的根底。邮电大学本科课程设计报告参考文献参考文献郭梯云,邬国扬,建东.移动通信[M].:电子科技大学,2001.董晓芳,岩,仁贵等.自行研制仪器设备的规化管理〔J〕.实验技术与管理,2007,24﹝5﹞:163-165利民,建中.无线传感器网络[M].:清华大学,2005.[4]振强.IPV6技术解密[M]..人民邮电,2006.邮电大学本科课程设计报告附录附录Leaf.c:PROCESS_THREAD(rpl_leaf_process,ev,data){ staticstructetimerperiodic; /*定义etimer周期性定时器*/ staticstructctimerbackoff_timer; /*定义ctimer补偿定时器*/PROCESS_BEGIN(); PROCESS_PAUSE(); set_global_address(); printf("UDPLEAFIPADDRESS:"); print_local_addresses(); leaf_connection=udp_new(NULL,UIP_HTONS(UDP_LEAF_PORT),NULL); if(leaf_connection==NULL){PRINTF("FailtomakeUDPconnection,exitingtheprocess!\n");PROCESS_EXIT();} udp_bind(leaf_connection,UIP_HTONS(UDP_LEAF_PORT));PRINTF("Createdaconnectionwiththeroot");PRINT6ADDR(&leaf_connection->ripaddr);PRINTF("local/remoteport%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_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();}}Root.c:PROCESS_THREAD(udp_root_precess,ev,data){ uip_ipaddr_tipaddr; structuip_ds6_addr*root_if; PROCESS_BEGIN();PROCESS_PAUSE();SENSORS_ACTIVATE(button_sensor);PRINTF("UDProotstarted\n");#ifUIP_CONF_ROUTERuip_ip6addr(&ipaddr,0xaaaa,0,0,0,0,0,0,0xbbbb); /*构造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_tinstance_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();NETSTACK_RDC.off(1);/* *udp_new(constuip_ipadd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论