本文是一篇计算机论文,本文针对动态网络的可靠性和稳定性问题,设计实现了支持动态网络的RPL路由协议,在移动期间为节点提供连续的连接,增加了节点可靠性。
第1章 绪论
1.1 研究背景及意义
近年来,物联网(IoT)技术逐渐成为代表现代互联网的关键词。该技术涉及众多联网物理设备,如传感器、交通工具及装有微处理器的各类设备,负责数据的收集与交换。物联网可以在各种应用中发挥重要作用,并提高人们的生活质量。这些应用包括交通运输、医疗保健、工业自动化、智能建筑、智慧城市等[1][2],对社会发展具有重要意义。因此,预计未来几年物联网规模将显著增长。智能物体通过传感器从物理世界获取信息,并通过执行器影响物理世界,从而与物理世界进行交互[3]。无线传感器网络的一个子集是低功耗有损网络(LLNs),是互联的嵌入式设备的集合[4]。该网络面临诸多挑战,包括设备资源有限(如内存、电量及计算能力)以及通信链路限制(如低带宽、短传输距离及动态网络拓扑),可能导致数据丢包、延迟、能耗增加及吞吐量下降。部分应用需要无网络延迟的紧急信息传输[5],因此无线传感器网络(WSNs)对物联网发展具有重要影响。它将资源受限设备连接至互联网并提供服务。尽管物联网技术源于无线传感器网络,但传统无线传感器网络路由协议已不适用于低功耗有损网络。因此,为LLNs设计满足应用需求的高效路由协议成为一大挑战。为此,互联网工程任务组(IETF)和电气电子工程师协会(IEEE)已定义了IPv6协议栈。
互联网工程任务组(IETF)的低功耗和低损耗网络路由(ROLL)工作组在2012年提出了LLNs的IPv6路由协议RPL,作为LLNs的标准路由协议[6],Sobral很好地介绍了为应对低功耗和低损耗而设计的各种路由协议的发展历程[7]。RPL协议自标准化以来备受工业和学术界关注,原因在于它为LLNs中节点提供高效稳定的路由选择,支持服务质量(QoS),且能适应不同网络拓扑。基于6LoWPAN的RPL协议部署在第三层,传输层和应用层分别使用UDP和CoAP协议。RPL通过低能耗机制实现自组织路由和拓扑结构自修复,从而控制节点故障。从技术层面,IPv6的采用带来通用性、可扩展性和可靠性等优势,其广阔地址空间适合为物联网设备分配地址。
1.2 国内外研究进展
在文献[15]中,作者推荐在MSN环境下部署DMR以增强数据传输的可靠性。这一建议基于利用排名信息和LQL数据的策略,通过这种方式DMR能够高效构建DODAG并确保备选路径的可用性。此外,DMR引入了两种应对路由故障的机制:一是在DODAG的所有父节点变得不可达时,通过利用周围邻居的信息迅速寻找多条备选路径的本地修复机制;二是即便在邻居节点和父节点都不可达的情况下,也能够检验并重建网络恢复状态的全局修复机制。仿真研究表明,该方案在提升数据包传输效率和降低能耗方面表现优异,并且在控制消息开销方面相比现有技术具有显著优势,但是该提议的主要缺点是内存消耗较高,并且对下行流量模式的支持不足[16]。
在文献[17]中提出一种称为MobiRPL的方法,采用自适应超时以加快对DIO断连的检测。该方法还包括自适应探测机制检查连接状态,及通过发送特定DIS消息的主动发现机制发现新父节点。然而,该方法无法预防断连,且自适应探测机制带来较高网络开销。类似地,其他方法[18]也提出动态调整DIO或DIS消息超时周期,以缩短移动拓扑环境中断连后的父节点切换延迟。
第2章 相关技术和理论
2.1 RPL协议概述
2.1.1 6LoWPAN网络
6LoWPAN协议栈是一组完整的协议和技术体系,用于实现低功耗无线个人局域网中的IPv6通信,互联网工程任务组(IETF)提出了6LoWPAN技术,将IPv6协议与IEEE 802.15.4相结合[44]。它提供了适合低带宽、低成本和低功耗设备的网络架构和通信机制,使得智能物联网应用可以更加高效和可靠地进行数据传输和通信。6LoWPAN协议栈从上至下的结构与IPv4协议栈的结构基本相似[45]。
6LoWPAN协议栈包括以下几个层次:
物理层和数据链路层:6LoWPAN协议栈使用IEEE 802.15.4标准作为物理层和数据链路层协议,它可以在2.4GHz、868MHz和915MHz频段进行无线通信。
适配层:6LoWPAN适配层是6LoWPAN协议栈中的重要组成部分,通过报文头部压缩和分片重组的方式实现资源受限设备IPv6报文的传输[46]。
传输层:6LoWPAN协议栈使用UDP(User Datagram Protocol)作为传输层协议,它可以提供基于端口号的应用程序间通信。
网络层:6LoWPAN协议栈使用IPv6协议作为网络层协议,它提供了全球唯一的地址、路由和分组转发等功能。
应用层:6LoWPAN协议栈支持多种应用层协议,如HTTP(Hyper Text Transfer Protocol)、CoAP(Constrained Application Protocol)等,它们提供了不同的应用场景和服务。
安全层:6LoWPAN协议栈支持多种安全机制,如AES(Advanced Encryption Standard)加密、IPSec(Internet Protocol Security)协议等,它们可以保护6LoWPAN网络中的通信安全性和隐私性。
2.2 RPL协议控制信息
2.2.1 DIO控制信息
RPL是一种适用于低功耗和有损网络的IPv6路由协议,它使用DODAG结构来组织网络拓扑,并使用DIO(DODAG Information Object)消息来控制和维护DODAG结构。DIO消息对应的code字段为0x01,其主要作用是选择父节点和维护网络拓扑[49]。它包含了一些重要的网络参数和拓扑信息,用于控制和维护DODAG结构,选择最优的父节点,并计算最短路径。通过DIO消息,RPL协议能够实现低功耗和有损网络中的有效路由和数据传输。DIO消息包含以下几个主要的字段:
RPLInstanceID:RPL实例的标识符,用于区分不同的RPL实例。
Version:DIO消息的版本号,用于区分不同版本的DIO消息。
Rank:DODAG中节点的等级,用于计算最短路径和选择父节点。
Grounded:标识当前节点是否是DODAG的根节点。
DODAGID:DODAG的唯一标识符,用于区分不同的DODAG。
DAI(Destination Advertisement Interval):DIO消息的传播间隔,即发送DIO消息的时间间隔。
Prefix Information:包含DODAG中节点的IPv6地址前缀信息,用于生成节点的IPv6地址。
Metric Container:包含节点到根节点的距离和其他指标信息,用于计算最短路径和选择父节点。 Options:包含附加的选项信息,如安全机制和压缩算法等。
第3章 动态网络RPL协议优化设计 ................................... 18
3.1 移动RPL协议优化需求分析 ..................................... 18
3.2 连接表管理 ....................................... 18
第4章 流程状态和RDC层协议分析 ................................... 30
4.1 移动性功能流程 ............................................... 30
4.2 子父节点时序状态转移 ......................................... 32
第5章 实验结果与分析 ............................................. 40
5.1 实验环境 ..................................................... 40
5.2 评价指标 ..................................................... 41
第5章 实验结果与分析
5.1 实验环境
本文所进行的移动仿真实验软硬件的配置如下: 硬件配置 CPU处理器:AMD Ryzen 7 1700 Eight-Core Processor 3.00GHz 内存:16.00GB 硬盘:2TB 软件配置 操作系统:Ubuntu 16.04,64位操作系统 开发工具:contiki,cooja 虚拟机版本:VMware Workstation 17 仿真环境
本小节将会介绍本文提出的优化协议与RPL协议在不同静态流定时器下相关性能的对比分析。使用Cooja模拟器对每个协议执行了模拟。Cooja是Contiki操作系统的模拟工具。Contiki被设计为在低功耗有损网络常用的低功率设备中执行。Contiki网络栈兼容6LoWPAN协议和IEEE 802.15.4无线通信技术。Cooja并不正式支持节点的移动性,因此为了解决这个问题,本文使用了一个移动性COOJA插件(mobility-plugin),包含运动模式的文件由工具生成,时间与节点位置关系配置文件由手动生成。
第6章 总结与展望
6.1 总结
物联网的出现催生了一种新的网络类型,即低功耗损耗网络。其具有许多限制如更高的数据包丢失率、端到端延迟、能耗消耗以及更低的吞吐量。为了应对低功耗损耗网络中的挑战,IPv6协议栈和RPL协议在工业和学术界都取得了关注,因为它可以为低功耗网络节点提供高效稳定的路由,同时支持服务质量、适应各种网络拓扑并采用低能耗机制。然而RPL明显的限制在于缺乏移动支持,移动节点常常会导致网络拓扑的动态变化和链路故障。本文针对动态网络的可靠性和稳定性问题,设计实现了支持动态网络的RPL路由协议,在移动期间为节点提供连续的连接,增加了节点可靠性。本论文的主要工作包括以下方面:
(1)介绍了本研究方向的背景和进展。首先描述了移动拓扑场景的特性,并介绍了RPL协议在LLN中的适用性,接着总结了原生RPL协议对移动性的不足,从而引出本文需要研究的课题。充分分析了解国内外研究现状,明确本文设计方向。
(2)分析了RPL路由协议的基础内容和6LoWPAN网络协议栈,然后对于RPL协议控制信息和目标函数进行描述,最后针对RPL路由协议的网络拓扑组成原理、路由过程的机制进行详细阐述。
(3)针对RPL路由协议在动态网络环境下存在的问题,设计并实现了本文支持移动性功能的RPL路由协议方法。首先描述RPL协议在动态网络情况下的优化需求分析,接着介绍了网络拓扑形成的连接表管理方法,来支持移动性流程节点切换首选子父节点,减少短期内失效的子父节点选择过程。接着实现了一种节点超时断开机制,通过邻居节点动态超时和首选父节点生命周期来提高上下行节点切换的时效性。此外设计了节点移动检测的方法,通过检测节点移动状态和动态trickle定时器算法调整控制信息的发送速度。最后设计了一种最优父节点选择机制,能及时地发现链路质量较高的新父节点,保证长期保持拓扑的稳定性。
参考文献(略)