IPv6微型传感路由器协议栈体系结构及实现方法

文档序号:7629465
专利名称:IPv6微型传感路由器协议栈体系结构及实现方法
技术领域
本发明主要提出一种适用于无线传感器网络的IPv6微型传感路由器协议栈体系结构及实现方法,属于无线传感器网络技术领域。
背景技术
现有的随着微电子技术、计算机网络技术和通信技术的发展,无线传感器网络日渐成为互联网领域研究的热点之一。无线传感器网络是由监视区内数量众多的低速率、低功耗、低成本、低复杂度的微型传感器节点构成的自组织系统,是一种采用无线通信方式、动态组网的多跳移动性对等网络。传感器网络以微型传感器节点为中心,传感器节点一般具备数据处理和通信能力,并利用节点附带的传感电路对周围有关地环境条件进行测量并将它们转化为电信号,由传感器根据所在目标和它周围发生事件的特性对于这些信号进行处理。传感器网络可以实现数据的采集融合、传输和远程控制访问,它广泛应用于军事、智能家居、环境监测和预报、医疗护理、建筑物状态监控、工业控制等领域,利用各种传感器感测温度、声音、脉搏、压力等状态参数,提供用户所需信息,从而提高人们的生活质量和工作效率。
无线传感器网络是一种自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者,极大地扩展现有网络地功能和人类认识世界的能力。无线传感器网络被称为全球未来的三大高新科技产业之一。对于传感器网络的研究,加州伯克利大学的PrcoRadio以及麻省理工的μAMPS都有成型的体系结构。
图1显示细化的无线传感器网络体系结构。物理层提供传感、载波侦听以及简单的发送和接收模块;数据链路层提供介质访问、差错控制和帧检测功能;传感应用协议栈主要包括传输控制和数据采集,其中路由协议是传输控制的一部分,另外能量管理、系统管理、安全和计时需要应用协议栈以及数据链路层的支持。
无线传感器网络路由协议重点考虑能量消耗,只基于局部的拓扑信息进行选择合适的路径,并且传感器网络的路由协议与应用程序具有很强的相关性,不同的应用中路由协议差别很大。
传统的传感器网络的体系结构存在以下的缺陷
对于传统的传感器网络而言,无线传感器网络被认为是一种以数据为中心的网络,不利于将传感器网络无处不在、灵活、高效等优点与下一代互联网相融合,这样使得传感器网络只能进行局部的应用,不利于形成泛在的传感器网络
传统的传感器网络不利于发挥分层体系结构的优势,很难完成真正端到端通信。对于重要的数据通信缺乏通信机制保障
路由协议基于局部的拓扑信息进行选路,需要维护大量的具备拓扑信息,增加了通信量和能量消耗
与应用程序相关的路由协议,实际应用的扩展性不高。例如,在传感区域内重新布置新的应用节点,无法充分利用原有应用的路由。传统IPv6路由器协议栈体系结构
近几年来,全球信息化的步伐明显加快,Internet发展与应用更是日新月异。IPv6作为下一代互联网的基本协议,能够在更广泛地意义上使连接到Internet上的所有网络设备实现相互通信。Internet发展如此之快,其核心部件——路由器功不可没。路由器是一个带有多个接口的可以转发数据包的特殊计算机。它是一种典型的网络层设备,主要功能是进行路由计算和数据包的转发。其中,路由的计算是指为数据包选择一条从源地址到目的地址的最佳路径。因此,如何选择简单、高效的路由将成为IPv6网络是否能够高效运行的决定因素之一。对于协议栈体系结构而言,传统IPv6无线路由器采用硬件平台的抽象与实现IPv6协议栈软件相结合的方法实现。协议栈软件又分为与硬件相关部分、与硬件无关部分和管理配置单元三个方面与硬件无关部分包括转发引擎、报文处理、转发处理、其他处理、数据发送等模块;与硬件相关部分则包括数据接收、消息处理、任务管理、实时处理部分,此外还应包含维持系统运行的文件系统和内存管理模块;管理配置主要用于修改硬件相关部分抽象的参数,使我们的协议栈软件在不同的硬件平台上运行。图2显示了IPv6路由器整个协议栈的体系结构。IPv6路由器协议栈软件实现RIPng、OSPFv3、BGP4+等动态路由协议等。
对于路由协议,无线自组织网络Ad-Hoc广泛使用一种按需驱动的路由协议AODV(Ad-hoc On Demand Distance Vector),它定义了RREQ、RREP、RERR和RREP-ACK四种报文类型,每种报文类型具有复杂报文字段,对应四种报文类型的大小为24字节、20字节、12+8n(n为不可达目的地址的个数)字节和2字节。并且AODV在RREP报文中定义了Hello消息格式,用来判断邻居节点是否可靠。如果在一定时间内没有收到邻居节点的Hello报文则认为邻居节点不可靠,则进行路由维护。
传统IPv6路由器的协议栈的体系结构以及设计与实现不适用于IPv6泛在传感器网络,主要体现在如下几个方面
IPv6路由器协议栈的体系结构主要为路由器的路由计算和转发功能设计的,而在无线传感器网络中,每种具有路由功能的传感器节点还需具备数据采集和处理等传感功能,传统IPv6路由器协议栈不具有主动数据处理和发送所需要的传输层与应用层框架和接口;
IPv6路由器协议栈设计过程主要考虑路由器的处理速度、转发延迟、数据吞吐量,而传感器网络节点具有低速率、低功耗、低成本、低复杂度的特点,协议的设计必须兼顾功耗低、成本廉价和简单。传统上的IPv6路由器协议栈无法满足传感器网络这一重要特性。
IPv6路由器的路由设计主要考虑路由的稳定性,因此路由协议的选路策略相当复杂,并采取定时更新的策略保证路由的稳定和数据转发的效率,以及路由通告策略保证路由表一致性。但是这些路由机制增加无线传感器网络的通信负载,造成能量的损耗。
IPv6路由器协议栈的体系结构中路由协议需要在IPv6的支持,从而实现路由通告和数据包转发,但是传感器网络的路由建立过程是在传感器网络内部实现的,与Internet互连由传感器网络汇聚点完成,因此由IPv6实现的路由协议报文格式复杂,增加传感器节点接收和发送比特数,造成能量的损耗。
AODV路由协议报文格式复杂,根据传感器节点能量消耗情况来看,传送1比特信息100m距离需要的能量大约相当于执行3000条指令消耗的能量,不利于减少传感器节点的能耗;AODV路由协议维护过程复杂,增加了节点处理报文的复杂度;另外采用Hello报文判断邻居节点的可靠性,既增加了能量的消耗,又导致传感器网络内广播风暴,造成数据的阻塞。

发明内容
为了克服现有技术结构的不足,实现传感器网络与IPv6相结合,使传感器网络真正成为下一代互联网的一部分,本发明提出一种IPv6微型传感路由器协议栈体系结构及实现方法,设计并实现该体系结构关键部分——微型传感路由器协议栈的工作机制。本发明方案可以部署在低硬件资源且无操作系统支持的嵌入式平台中,全面支持IEEE802.15.4标准规范,既可以实现传感器网络的数据采集、动态路由、数据融合、网络管理、安全认证、自动定位等功能,又可以使传感器节点设备接入互联网,与用户终端实现端对端的通信。
一种适用于传感器网络环境的微型传感路由器的体系结构
微型传感路由器体系结构自下而上包括IEEE802.15.4物理层、IEEE802.15.4介质访问控制层、适配层、微型传感路由器协议栈和应用层。
IEEE802.15.4物理层和IEEE802.15.4介质访问层符合IEEE802.15.4工作组针对低速无线个人区域网络制定的标准,为低速率、低能耗、低成本的设备之间提供统一的物理层和介质访问控制接口。
适配层符合因特网工程任务组(IETF)的6Lowpan工作组针对无线个人区域网络架构IPv6协议提出的工作组草案,它提供IPv6微型协议栈和IPv6微型传感路由协议的处理接口,并且负责将两种协议的数据递交到IEEE802.15.4介质访问层和IEEE802.15.4物理层进行封装、调制和发送。
微型传感路由器协议栈是微型传感路由器体系结构的核心和关键部分。它包含两部分IPv6微型协议栈和IPv6微型传感路由协议,IPv6微型协议栈提供应用层数据的IPv6封装和解析,实现与现有TCP/IPv6协议体系的网络进行通信;IPv6微型传感路由协议是本发明提出的一种适用于传感器网络环境的路由协议,用于传感器网络内数据传输时建立和维护路由。
应用层应用层是传感器网络节点提供各种传感应用程序服务的集合,主要包括数据采集与融合、定位、跟踪、网络管理等。
一种IPv6微型传感路由器协议栈体系结构实现方法
技术领域
本发明在提出的微型传感路由器体系结构的基础上,设计与实现该体系结构的关键部分——微型传感路由器协议栈。主要包括一种IPv6微型协议栈和一种IPv6微型传感路由协议;
一种IPv6微型协议栈,本发明的IPv6微型协议栈主要包括
(1)精简TCP/IPv6协议栈,设计IPv6、ICMPv6、ND、TCP和UDP协议处理流程并且满足嵌入式系统低存储、低复杂特性;
(2)独立于操作系统的调度方案,完成协议栈之间调度处理传感应用数据;
(3)最大容限控制的内存分配方式,保存协议栈发送、接收的报文和应用程序生成的数据。
步骤(1)精简TCP/IPv6协议栈,实现传感器节点与现有TCP/IPv6终端进行端对端通信,主要包括以下方面
(a)精简IPv6协议IPv6基本报头简化流量类别和流标签字段处理,同时由于适应层具有跳数限制字段,忽略对跳数字段检查;
(b)精简ICMPv6协议ICMPv6负责诊断网络状态,包括两种ICMPv6错误消息和ICMPv6信息消息类型。为了减少协议栈的大小,ICMPv6只处理ICMPv6信息消息,对于ICMPv6错误消息不进行处理;
(c)精简ND协议ND协议由ICMPv6协议进行封装,处理路由器请求、路由器通告、邻居请求、邻居通告和ICMP重定向五种选项类型报文格式。由于路由器请求、路由器通告和重定向消息功能由微型传感路由协议完成,精简的ND协议只处理邻居请求和邻居通告两种报文格式;
(d)精简UDP协议协议栈简化UDP协议调度过程,维护UDP侦听端口和UDP连接表,用来填充UDP报文中源端口和目的端口字段;
(e)精简TCP协议根据TCP协议11种基本状态变化进行TCP流程处理,并且维护TCP侦听端口列表和TCP连接表,用来填充源端口、目的端口、序列号和确认号字段,取消软件错误报告机制和报文统计机制;不使用滑动窗口机制而使用固定窗口大小32768来接收和发送数据;去掉了对TCP服务类型TOS和安全选项的支持。
步骤(2)在传感器节点上配置操作系统对硬件的要求很高,为了节约硬件的存储空间和处理能耗,本发明的协议栈独立于操作系统的调度数据帧由硬件中断进行接收,由IEEE802.15.4物理层和介质访问控制层解析出协议栈数据的负载,在适配层调度IPv6接收函数,解析IPv6基本报头之后,判断下一个报头字段,主动调度下一个协议处理函数。协议栈报头处理完毕后,由面向数据类型的应用程序接口对不同类型的传感数据进行处理。
步骤(3)基于上述的调度方式,需要一种存储机制来保存发送和接收处理的数据包。为了减少嵌入式系统动态分配内存产生的内存碎片,本发明设定两个全局变量数组inBUF和outBUF分别保存接收和发送处理的数据包,根据IEEE802.15.4数据帧大小规定,分配inBUF和outBUF102个字节,进行封装和解析不同协议数据。
一种IPv6微型传感路由协议。本发明设计的适用于传感器网络环境的IPv6微型传感路由协议主要包括
(1)定义传感路由协议的三种报文格式,用于发送请求和维护路由消息;
(2)一种以入口表和路由表相结合的双表项传感路由机制,用于处理和存储路由消息;
(3)一种传感路由的选路与决策过程,用于路由建立时对路由报文的处理;
(4)一种路由维护与容错处理过程,用于及时宣告失效路由和减少维护开销。
步骤(1)按照路由建立的需求,定义了传感器网络路由请求报文RREQSN(Router Request for Sensor Network)和传感网络路由响应报文RREPSN(Router Reply for Sensor Network),按照路由维护的需求,定义了传感网络路由错误报文RERRSN(Router Error for Sensor Network)格式,RREQSN报文和RREP报文的大小分别为21个字节、19个字节,RERRSN报文基本长度9个字节,既携带必要的路由信息,又极大减少发送和接收路由信息的能量消耗;
步骤(2)入口表和路由表维护机制。入口表记录路由请求报文的源地址和发送信息的ID号,当重复的路由请求报文经过节点时进行丢弃,减小路由环路的生成和发送冗余消息的能量损耗和处理负担;路由表记录路由目的地址、下一跳地址和跳数限制等基本路由信息,同时包括链路质量的度量和前驱路由表项。链路质量和跳数信息作为路由比较的基本信息,前驱路由表项记录路由的前驱节点地址,用于宣告失效路由;
步骤(3)传感路由的选路与决策过程,主要包括以下的方面
(a)传感器网络存在两种类型设备——全功能节点设备FFD和部分功能节点设备RFD,构成两种拓扑结构星形和网状结构,针对不同的设备和拓扑结构,运行不同的选路策略RFD设备不进行路由请求和响应,只维护一条到父节点FFD设备的默认路由,父节点FFD设备代替RFD设备进行路由请求和响应,来节约RFD设备能量;
(b)中间节点接收到源节点发送的RREQSN报文,设置入口表报文标志,同时更新RREQSN报文的跳数和最小链路质量值;
(c)目的节点接收到RREQSN报文,进行等待有效时间,同时按照本发明提出的以跳数和链路质量值作为参数的最优路由判断函数,进行判断最优路由。等待时间结束,向最优路由单播RREPSN报文。
步骤(4)路由维护和容错处理。为了减少传感器网络节点交互的信息量,微型传感路由协议并不是周期发送路由维护消息,而是在数据发送过程中,检测邻居节点不可达的同时,向前驱节点通告路由不可达消息,删除不可达路由,减少数据包的丢失。
本发明的有益效果本发明提出了一种基于IPv6泛在传感器网络的核心设备——IPv6微型无线传感路由器的体系结构的设计和实现方法。通过该设备,可以把传感器网络与IPv6相结合,使之真正成为下一代互联网的一部分。既能单独组网,也能接入Internet,支持远程、串口等多种人性化配置方式,具有体积小、能耗低、自适应性强、成本低、简单灵活等优点,在工农业生产、军事国防、医疗护理、环境监测、智能家居等领域有着广泛的应用前景。


下面结合附图和实施例对发明进一步说明。
图1 现有的无线传感器体系结构;
图2 传统IPv6路由器的协议栈体系结构;
图3 本发明提出的IPv6微型传感路由器协议栈体系结构;
图4 IPv6协议发送和接收数据包处理流程;
图5 ICMPv6和ND协议处理流程;
图6 UDP协议处理流程;
图7 TCP协议状态转换;
图8 TCP/IP协议栈调度流程;
图9 星形结构和网状结构组成的混和结构;
图10 路由请求报文RREQ接收流程;
图11 路由相应报文RREP处理流程图12 微型传感路由器应用实例。
具体实施例方式
实施例1微型传感路由器协议栈的体系结构
本发明提出了一种适用于传感器网络环境的微型传感路由器的体系结构。该体系结构自下而上包括IEEE802.15.4物理层、IEEE802.15.4介质访问控制层、适配层、协议栈和应用层。图3给出了IPv6微型传感路由器体系结构的框架。
IEEE802.15.4物理层根据IEEE802.15.4协议标准,物理层由射频收发器以及底层的控制模块构成,它定义了物理无线信道和介质访问控制层的接口,提供了物理层的数据服务和物理层的管理服务,物理层的数据服务从无线信道上收发数据,物理层的管理服务维护一个由物理层相关数据组成的数据库。物理层完成的功能包括数据帧的调制和解调、系统能量的检测、信道空闲监测评估、发送和接收器的激活和休眠等。
IEEE802.15.4介质访问控制层(MAC)根据IEEE802.15.4协议标准,介质访问控制层使用物理层提供的服务实现设备之间的数据帧传输,它提供两种服务MAC层数据服务和MAC层管理服务。MAC层数据服务保证MAC协议数据单元在物理层数据服务中正确收发,MAC层管理服务维护一个状态相关信息的数据库。介质访问控制层完成的功能包括信道接入方式、设备关联和同步。
适配层IPv6支持的数据包大小(1280字节~1500字节)远远大于IEEE802.15.4帧大小(128字节),为了在IEEE802.15.4网络中支持IPv6数据包,因特网工程任务组(IETF)的6Lowpan工作组提出适配层的概念,用于对IPv6数据包进行分片和压缩。本发明提出的微型协议栈就是使用适配层的接口进行数据的传输
微型传感路由器协议栈微型传感路由器协议栈包含两部分IPv6微型协议栈和IPv6传感路由协议。IPv6微型协议栈提供应用层数据的IPv6封装和解析,实现与现有TCP/IPv6协议体系的网络进行通信;IPv6传感路由协议是本发明提出的一种适用于传感器网络环境的路由协议,用于传感器网络内数据传输时建立和维护路由。
应用层应用层是传感器网络节点提供各种传感应用程序服务的集合,主要包括数据采集与融合、定位、跟踪、网络管理等。
实施例2IPv6微型传感路由器协议栈体系结构实现方法;
本发明设计并实现了微型传感路由器的核心部分——微型传感路由器协议栈,它由IPv6微型协议栈和IPv6微型传感路由协议组成。
1.IPv6微型协议栈;
随着Internet的成功,TCP/IP协议栈已经成为网络通信的全球标准。TCP/IP协议栈作为Internet底层协议用于数据传输以及点对点组网等。但是传统的TCP/IP协议栈需要太多的资源,无论是几千字节的代码量还是几千字节的数据存储区大小都无法达到传感器网络节点低成本、低能耗的要求。本发明设计一种精简的微型TCP/IPv6协议栈,代码量小、简易轻型并且可以与使用完整的TCP/IPv6协议栈的对等节点进行通信。
1.1 TCP/IPv6微型协议栈的实现步骤
根据传感器网络特定的应用,本发明TCP/IPv6协议栈包含IPv6协议、TCP协议、UDP协议、ICMPv6协议、ND协议五个主要协议,并且在协议栈的实现流程中预留其它协议内容的接口,其它协议可以作为扩展头进行调用。精简的IPv6协议、ICMPv6协议、ND协议和UDP协议、TCP协议实现如下
IPv6协议实现和简化过程图4给出了IPv6协议基本报头的处理流程。IPv6处理函数接收到IPv6数据后,判断IP数据包的版本号,判断数据包的长度与净载荷的长度是否匹配,检查目的地址字段,设置地址类型字段,然后解析下一个报头类型,递交到相应的协议处理函数;在进行IPv6封装时,对IPv6流量类别、流标签填充0,由于适配层包含“跳数”字段,并且适配层具有简单转发功能,当中间节点接收到发给目的节点的IPv6数据包,可以不进行数据包IPv6解析而直接进行转发,因此在进行IPv6数据包封装时,忽略“跳数”字段。
ICMPv6协议和ND协议实现和简化过程ICMPv6协议的作用是诊断网络的状态,有两种类型ICMP错误信息和ICMP信息消息。为了简化协议栈大小,只使用ICMPv6信息消息,而对ICMPv6错误消息不进行处理。图5给出ICMPv6处理回应请求消息和回应响应报文流程。ICMPv6协议接收到IPv6协议递交的数据包,判断校验和是否正确,然后获取ICMPv6源和目的地址,判断ICMPv6协议封装类型,分别处理回应请求和回应响应报文。ND协议由ICMPv6封装,处理路由器请求、路由器通告、邻居请求、邻居通告和ICMP重定向五种选项类型报文格式。由于路由器请求、路由器通告和重定向消息功能由微型传感路由协议完成,精简的ND协议只处理邻居请求和邻居通告两种报文格式。图5给出了邻居请求和邻居通告处理流程。在ICMPv6协议处理函数中,判断类型字段为邻居解析和邻居通告报文格式,转入邻居解析和通告处理。
UDP协议简化过程图6给出UDP协议处理流程。UDP协议接收到IPv6协议递交的报文,判断校验和是否正确,然后查询本地UDP连接表,如果不存在则保存UDP连接的源、目的端口和目的IP地址,然后解析数据递交到应用层进行处理
TCP协议实现和简化过程TCP协议建立连接和释放连接所需的步骤用11种状态表示CLOSED、LISTENING、SYNRCVD、SYNSEND、ESTABLISHED、FINWAIT1、FINWAIT2、TIMEDWAIT、CLOSING、CLOSEWAIT、LASTACK。
图7给出了TCP协议的11种状态的转换流程。每个连接均开始于CLOSED状态,当一方执行了主动的连接或被动的连接时,便会脱离CLOSED状态。如果此时另一方执行了相应的连接,连接便会建立,并且状态转变为ESTABLISHED状态,此时数据可以传输。任何一方均可以首先请求释放连接。当连接释放后又回到CLOSED状态。本发明设计TCP协议处理过程按照11种状态进行转换首先检查TCP检验和是否正确,然后查找本地TCP连接表,保存源、目的端口和目的IP地址,更新接收序列号和发送确认号,然后根据保存的TCP标志,转入响应的状态处理。其它处理过程进行相应的简化取消软件错误报告机制和报文统计机制;不使用滑动窗口机制而使用固定窗口大小32768来接收和发送数据;到达的TCP报文并不进行缓冲而是直接递交给应用程序处理;去掉了对TCP服务类型TOS和安全选项的支持,忽略接收的TCP选项等。
1.2独立于操作系统的协议栈调度步骤
传统的TCP/IP协议栈由操作系统的接口核心部分进行调用,然而在传感器节点上配置操作系统对节点硬件的要求很高,为了节约节点设备存储空间和处理能耗,本发明设计的TCP/IPv6协议栈独立于操作系统,底层接收的数据通过中断的方式通知接收中断函数,再由接收中断函数直接提交到适配层进行调度TCP/IPv6协议栈。图8显示的调度过程如下当节点接收到数据包后,接收中断函数解析数据包的IEEE802.15.4帧头后,由适配层来判断数据包的类型,调用IPv6接收函数进行解析IPv6报头;然后判断下一报头类型,进行调度相应的TCP/IPv6协议栈程序进行处理。解析后应用程序报文根据本发明提出的应用程序接口,进行应用程序数据处理。为了防止接收多个数据包时,发生处理冲突,本发明设置接收队列,对多个接收的数据包进行缓存。
1.3最大容限控制的内存分配步骤
本发明设计的微型TCP/IPv6协议栈并不采用动态分配内存的方式,而是采用两个全局变量inBuffer和outBuffer保存整个IPv6数据包,分别对TCP/IPv6协议栈各个字节进行处理。两个全局变量大小都为102个字节,满足IEEE802.15.4规定(最大包长度127字节一最小数据帧头15字节)。当数据包接收后,进行解析IEEE802.15.4数据帧头部和适配层头部,然后将适配层数据帧的载荷存储在inBuffer中,全局变量buflen表示载荷长度,根据本发明提出的协议栈调度机制,将协议栈处理指针指向inBuffer各个协议字段,调用TCP/IPv6协议处理函数进行解析,最后由应用程序接口进行应用数据的处理。具体实现方法如下首先IPv6处理函数接收到数据包,将IPv6结构类型的指针指向inBuffer的首部,按照本发明提出的精简IPv6协议过程,取出结构指针的域值进行IPv6数据处理并保存,然后根据IPv6结构指针的下一个报头域值,将数据包递交到下一报头处理函数,下一个报头处理函数将下一个报头结构指针指向inBuffer的IPv6协议长度的位置,按照下一报头精简过程进行处理,buflen标识应用数据的长度;最后调用应用处理函数,进行inBuffer数据处理。为了防止在数据包发送过程中,对存储在inBuffer的下一个数据包进行覆盖,应用层根据调用的协议,将产生的数据封装到outBuffer的调用协议首部长度和IPv6基本报头长度的位置处,递交到调用的协议处理函数和IPv6协议进行协议封装,buflen标识整个协议栈数据的长度。最后,将outBuffer作为适配层载荷,进入到IEEE802.15.4介质接入控制层(MAC)和物理层(PHY)完成数据帧封装进行发送。
2.IPv6传感路由协议;
本发明提出一种适用于传感器网络的路由协议MSRP(Micro Sensor RouterProtocol)。MSRP的提出基于AODV的设计思想,可以在无线传感器网络中IEEE802.15.4节点之间建立和维护多跳路由。MSRP路由协议工作在适配层之上,为了减少存储表项以及发送和接收报文的大小,MSRP使用IEEE802.15.4定义的64比特接口标识符,而不是IPv6地址进行路由过程,IPv6地址根据地址映射规则,由唯一的IEEE802.15.4定义的64比特接口标识符进行确定。因此IPv6微型协议栈可以根据MSRP建立的路由进行数据传输。传感器网络路由协议主要包括一下

发明内容
2.1传感路由协议报文格式;
为了减少传感器节点能量的消耗,设计精简有效的路由协议报文格式是十分重要的。本发明结合传感器网络的特点,设计的MSRP路由协议的报文类型包括RREQSN、RREPSN和RERRSN三种,报文类型的大小分别为8字节、7字节和1+2n字节(n为“不可达地址数目”的数值),从而减少建立路由时发送的数据包大小,减少发送数据包时传感器节点的能量损耗。报文类型分别为
RREQSN路由查询消息;
表1 RREQSN报文格式
类型000,表示RREQ报文类型;
跳数RREQSN报文携带的从源节点到当前节点的跳数;
路由请求ID唯一标识RREQSN消息;
源地址发起RREQSN节点或者该节点的某个RFD节点的IEEE802.15.4定义的64比特接口标识符;
目的节点RREQSN请求路由的目的IEEE802.15.4定义的64比特接口标识符;
最小LQI报文携带从RREQSN源节点到当前节点的链路质量度量值最小值;
RREPSN路由回复消息;
表2 RREPSN报文格式
类型001,表示RREPSN报文类型;
跳数RREPSN报文携带的从源节点到当前节点的跳数;
源地址发起RREPSN节点或者该节点的某个RFD节点的IEEE802.15.4定义的64比特接口标识符;
目的节点对应于RREQSN发起节点的IEEE802.15.4定义的64比特接口标识符;
最小LQI报文携带从RREPSN源节点到当前节点的链路质量度量值的最小值;
RERRSN路由错误消息;
表3 RERRSN报文格式
类型010,表示RERR报文类型;
不可达地址的数目某节点检测的失效邻居节点的个数;
不可达目的地址某节点检测的失效邻居节点的IEEE802.15.4定义的64比特接口标识符(不可达地址的数目决定不可达目的地址的个数,为了符合IEEE802.15.4标准,一个IEEE802.15.4数据包的大小不超过128个字节,RERRSN最多携带的不可达目的地址数目不能超过4个);
2.2双表项传感路由机制;
在传感器网络特定环境下,路由协议要避免环路的产生,减少无效数据包的发送,以及有效记录路由,适应网络拓扑结构的动态变化,提高消息传输的效率,因此MSRP需要维护一种入口表,并且将维护的路由表格式进行相应的更改——;
入口表
表4 入口表项格式
RREQSN源地址发起RREQSN节点或者该节点的某个RFD节点的IEEE802.15.4定义的64比特接口标识符;
RREQSN ID该RREQSN报文类型的标识;
生存时间该入口表表项的生存时间;
路由表
表5 路由表项格式
类型用于区分IEEE802.15.4标准定义的两种设备类型全功能节点设备(FFD)和部分功能节点设备(RFD)。FFD为0,RFD为1。
PAN IDPAN(个域网)标识符;
跳数限制该路由的跳数;
生存时间该路由表表项的生存时间;
路由LQI值该路由的最小的LQI值;
目的地址的接口标识符该路由最终地址的IEEE802.15.4定义的64比特接口标识符;
下一跳地址接口标识符该路由所在当前节点的下一跳地址的IEEE802.15.4定义的64比特接口标识符;
前驱节点地址标识符该路由所在当前节点的上一跳地址的IEEE802.15.4定义的64比特接口标识符(可能不止一个,用于发送RERR路由通告);
2.3传感路由的选路与决策过程;
MSRP路由协议是真正意义上的按需驱动路由协议,是一种当需要发送数据时才进行查找路由的路由算法。在这种路由协议中,节点不需要维护及时准确的路由信息,当向目的节点发送报文时,源节点才在网络中发起路由查找过程,找到相应的路由。这样按需驱动路由协议开销小,符合传感器网络节点节能要求。
IEEE802.15.4定义两种设备类型,RFD和FFD,RFD只能和它加入网络的FFD进行通信,FFD可以和邻居的FFD进行通信,这样就够成了两种拓扑结构星形结构和网状拓扑结构,如图7。
为了适用于这种混和的拓扑结构和设备特点,本发明设计一种路由区分机制,即对RFD设备而言,只维持一条单跳到RFD加入网络的FFD的默认路由,当RFD发送数据时,直接把数据发送给它的默认路由FFD,由该FFD进行路由查找和数据传输,从而.大可能保存RFD设备的能量。因此RFD不进行MSRP路由协议的配置,减少RFD存储要求。对于FFD设备而言,执行下面的路由建立过程。
(1)发送RREQSN
在传感器网络中,当一个FFD节点设备发送数据或者接收到RFD转发到其它目的节点的数据时,首先查找本地路由表,如果发现到目的地址的路由不存在,则缓存当前数据包进行MSRP路由建立过程——封装RREQSN报文,进行广播发送RREQSN消息。
(2)中间节点接收到RREQSN
如图8所示,首先接收RREQSN报文的节点判断RREQSN报文目的地址是否是自己或者是自己的RFD邻居,如果不是,那么查询自己的入口表,如果已经存在入口表项,这表明已经接收到该RREQSN源地址发送的相同ID号的RREQSN报文,为了减少传感器网络节点的能量损耗以及广播包的泛洪阻塞,该节点抛弃该RREQSN报文;如果没有存在该入口项,则进行查询路由表中到RREQSN源地址的路由,如果已经存在该路由,那么比较这两条路由,选择最好的路由进行存储,同时修改RREQSN报文信息,如果不存在该路由,则建立一条到RREQSN源地址的逆向路由;然后查询路由表中到RREQSN报文中目的地址的路由,如果已经存在该路由,那么向该路由单播RREQSN消息,否则继续广播RREQSN报文。
(3)目的节点接收RREQSN和发送RREPSN
如果节点判断RREQSN报文目的地址是否是自己或者自己的RFD邻居,那么该节点进入发送RREPSN报文过程
首先节点缓存RREQSN报文消息,由于广播RREQSN寻路过程,节点接收到多条路由发送的报文消息,所以需要等待合理时间T,进行判断多路由的优劣,本发明构造了一个最优路由判断函数f(X,Y)
其中X为源节点到目的节点的跳数,Y为从源节点到目的节点的路由每一跳的LQI中,最小的LQI值。n为不同网络环境下的待定参数,取值范围为2~4。在开阔地带室外网络环境下,取n值为2。
目的节点为每个到达的RREQSN以及当前节点到达RREQSN源节点的路由(如果路由表中存在的话)计算其f值,跳数x值越小并且链路质量值越大,则f值越高,选择f值最大的路由进行回复。
本发明基于目的节点判断最优路由策略,选择一条最优路由进行单播RREPSN报文,而不是对每条RREQSN路由请求进行响应,比由中间节点以及RREQSN源节点进行判断最优路由,更加减少传感器网络中的数据流量,减少发送数据的能量消耗。
(4)接收RREPSN
如图9所示,当节点接收到RREPSN报文,首先判断RREPSN目的地址是自己或者RFD邻居,如果是则建立到RREPSN源地址的路由表项,发送缓存队列中的缓存数据,否则建立或者更新到RREPSN源地址的路由表项,查找到RREPSN目的地址路由,并把下一跳地址写入路由表前驱节点地址选项。然后继续单播RREPSN报文。
2.4传感路由维护与容错处理过程;
本发明提出的MSRP路由协议并没有采用传统AODV协议Hello报文进行维护,而是根据IEEE802.15.4标准规定的ACK数据帧来判断邻居节点可靠性,如果向邻居节点发送数据在一定的时间内并没有收到邻居节点确认的ACK帧,重传该数据后若仍然没有收到该邻居节点确认的ACK帧,表明该邻居节点已经失效,则缓存当前的数据,重新进行路由请求,同时向该路由的前驱节点发送RERRSN报文。这样做的好处是一方面节约发送和接收Hello消息的能量消耗,另一方面传感器节点对时延要求并不是很高,作为按需驱动路由协议在数据发送时对路由维护更加有效。
当传感器节点检测到某邻居节点失效,首先查找路由表以该邻居节点为下一跳的路由表项,取出前驱节点地址,封装RERRSN报文,向这些前驱节点单播RERRSN报文,然后删除路由表中以该邻居节点为下一跳和最终地址的路由表项。前驱节点接收到RERRSN报文,同样在路由表中处理该不可达地址,同时继续查找前驱节点发送RERRSN报文,直到这条路由中所有的前驱节点都被通知该节点地址已经失效。
实施例3下面为本发明技术方案在具体应用中的举例,如图10所示。
传感器网络部署在大规模室内植物园内,由大量的温度传感器、湿度传感器、光强传感器以及加热设备、光强设备和喷水设备组成。每一类传感器都配置本发明的微型传感路由器协议栈体系结构,每一类设备控制部分与传感器的红外模块相连。传感器网络设置一个汇聚点作为网关设备,与用户主机进行交换信息。汇聚点可以通过无线链路,传输送到卫星设备,经卫星信号接收器转交到用户主机的服务器上,或者汇聚点通过有线链路,经过Internet到达用户主机的服务器。用户主机从服务器上获取数据,或者进行发送命令的操作。
服务器包含数据库、命令程序、管理站程序等必要功能模块。其中数据库包含传感器网络内部所有信息,例如传感器节点数、节点类型、工作状态以及周期获取的数据信息等;命令程序包含对传感器节点和设备控制命令集合;管理站程序为SNMP管理者模块。具有权限的用户在本地计算机通过访问WEB服务器,运行相关的程序,间接地访问控制传感器网络内部。操作步骤如下
(一)节点初始状态
传感器节点部署后,启动,处于命令等待状态,传感模块和处理模块进入休眠,无线收发模块信道监测部分等待;
(二)传感器网络初始化
1、用户通过服务器发送启动命令,唤醒汇聚点;
2、用户调用服务器管理站程序,配置无线信道参数、PANID以及汇聚点的短地址信息;
3、汇聚点接收命令,将参数存入MIB库中,启动允许加入网络参数,担任协调者角色;
4、传感器信道监测部分扫描到允许加入的传感器节点,加入PAN网络,获取短地址信息,配置本地链路地址,并且根据自身节点类型,以FFD或者RFD进行工作;
5、传感器节点加入网络后,启动定位模块进行定位。
6、传感器节点向协调者申请全局单播地址网络前缀,由协调者进行广播全局单播地址的网络前缀,节点接收后配置全局单播IPv6地址。
7、传感器节点将节点配置参数和定位信息以UDP数据包的形式发送到服务器,服务器将信息存入数据库;
(三)传感器网络工作过程
1、用户发送传感器采集命令,同时设置采集周期。服务器封装UDP/IPV6数据包,经过汇聚点,发送给传感器节点;
2、传感器接收到采集命令后进行周期采集数据,建立路由,并且将数据信息以UDP/IPv6数据包形式传送到服务器;
3、用户在终端实时观测数据动态变化;
4、用户配置环境参数的浮动范围,如果采集的数据值超过该范围,在用户终端示警,用户根据数据的位置信息则相应启动设备装置进行调节。例如设定环境温度正常变化范围,如果传送的区域1实时环境温度值过低,则根据区域1位置信息,用户手动/服务器主动通告该区域的传感器节点,由节点启动加热设备进行动态调节;
5、由于能耗以及意外原因造成传感器节点失效,邻居节点监测到传感器节点失效,启动路由RERRSN报文,通知该失效节点地址;
6、传感器数据源节点缓存当前的应用数据,重新发起路由请求报文RREQSN,在传感器网络范围内传播RREQSN报文消息;
7、传感器数据目的节点接收到RREQSN报文,根据最优路径判断函数,选择最佳路径回复路由响应报文RREPSN;
8、传感器数据源节点接收到RREPSN报文,更新路由表,发送缓存队列的数据。
权利要求
1.一种IPv6微型传感路由器协议栈体系结构,其特征是该体系结构自下而上包括IEEE802.15.4物理层、IEEE802.15.4介质访问控制层、适配层、微型传感路由器协议栈和应用层。
2.根据权利要求1所述的IPv6微型传感路由器协议栈体系结构,其特征是IEEE 802.15.4物理层物理层对应于硬件射频收发器以及传输数据、检测能量、监测信道的控制模块,完成的功能包括数据帧的调制和解调、系统能量的检测、信道空闲监测评估、发送和接收器的激活和休眠;
IEEE802.15.4介质访问控制层(MAC)介质访问控制层使用物理层提供的服务实现设备之间的关联和数据帧传输,完成的功能包括信道接入方式、设备关联和同步;
适配层适配层使用IEEE802.15.4介质服务接口提供数据处理和传输控制服务,适配层提供上层协议不同的处理接口和压缩分片的标识;
微型传感路由器协议栈微型传感路由器协议栈包含两部分IPv6微型协议栈和IPv6微型传感路由协议,IPv6微型协议栈提供应用层数据的IPv6封装和解析,实现与现有TCP/IPv6协议体系的网络进行通信;IPv6微型传感路由协议是本发明提出的一种适用于传感器网络环境的路由协议,用于传感器网络内数据传输时建立和维护路由;
应用层应用层是传感器网络节点提供各种传感应用程序服务的集合,主要包括数据采集与融合、定位、跟踪、网络管理等。
3.一种IPv6微型传感路由器协议栈体系结构实现方法,其特征是包括一种IPv6微型协议栈和一种IPv6微型传感路由协议,一种IPv6微型协议栈包括以下步骤;
步骤(1)、精简TCP/IPv6协议栈,传感器节点与现有TCP/IPv6终端进行端对端通信;
步骤(2)、数据帧由硬件中断进行接收,由IEEE802.15.4物理层和介质访问控制层解析出协议栈数据的负载,在适配层调度IPv6接收函数,解析IPv6基本报头之后,判断下一个报头字段,主动调度下一个协议处理函数,协议栈报头处理完毕后,由面向数据类型的应用程序接口对不同类型的传感数据进行处理;
步骤(3)、设定两个全局变量数组inBUF和outBUF分别保存接收和发送处理的数据包,根据IEEE802.15.4数据帧大小规定,分配inBUF和outBUF102个字节,进行封装和解析不同协议数据;
一种IPv6微型传感路由协议包括;
步骤(1)、按照路由建立的需求,定义传感器网络路由请求报文RREQSN,传感网络路由响应报文RREPSN和传感网络路由错误报文RERRSN,按照路由维护的需求,定义RERRSN格式,RREQSN报文和RREP报文的大小分别为21个字节、19个字节,RERRSN报文基本长度9个字节;
步骤(2)、入口表和路由表维护机制;入口表记录路由请求报文的源地址和发送信息的ID号,当重复的路由请求报文经过节点时进行丢弃;路由表记录路由目的地址、下一跳地址和跳数限制等基本路由信息,同时包括链路质量的度量和前驱路由表项,链路质量和跳数信息作为路由比较的基本信息,前驱路由表项记录路由的前驱节点地址,用于宣告失效路由;
步骤(3)、进行传感路由的选路与决策;
步骤(4)、路由维护和容错处理,检测邻居节点不可达的同时,向前驱节点通告路由不可达消息,删除不可达路由。
4.根据权利要求3所述的IPv6微型传感路由器协议栈体系结构实现方法,其特征是所述的一种IPv6微型协议栈步骤(1)中包括以下步骤
1)、精简IPv6协议IPv6基本报头简化流量类别和流标签字段处理,同时由于适应层具有跳数限制字段,忽略对跳数字段检查;
2)、精简ICMPv6协议ICMPv6负责诊断网络状态,包括两种ICMPv6错误消息和ICMPv6信息消息类型,为了减少协议栈的大小,ICMPv6只处理ICMPv6信息消息,对于ICMPv6错误消息不进行处理;
3)、精简ND协议ND协议由ICMPv6协议进行封装,处理路由器请求、路由器通告、邻居请求、邻居通告和ICMP重定向五种选项类型报文格式,由于路由器请求、路由器通告和重定向消息功能由微型传感路由协议完成,精简的ND协议只处理邻居请求和邻居通告两种报文格式;
4)、精简UDP协议协议栈简化UDP协议调度过程,维护UDP侦听端口和UDP连接表,用来填充UDP报文中源端口和目的端口字段;
5)、精简TCP协议根据TCP协议11种基本状态变化进行TCP流程处理,并且维护TCP侦听端口列表和TCP连接表,用来填充源端口、目的端口、序列号和确认号字段,取消软件错误报告机制和报文统计机制;不使用滑动窗口机制而使用固定窗口大小32768来接收和发送数据;去掉了对TCP服务类型TOS和安全选项的支持。
5.根据权利要求3所述的IPv6微型传感路由器协议栈体系结构实现方法,其特征是所述的一种IPv6微型传感路由协议步骤(3)中包括以下的步骤
1)、RFD设备不进行路由请求和响应,只维护一条到父节点FFD设备的默认路由,父节点FFD设备代替RFD设备进行路由请求和响应;
2)、中间节点接收到源节点发送的RREQSN报文,设置入口表报文标志,同时更新RREQSN报文和本地路由表的跳数和最小链路质量值;
3)、目的节点接收到RREQSN报文,进行等待有效时间,同时按照以跳数和链路质量值作为参数的最优路由判断函数,进行判断最优路由,等待时间结束,向最优路由单播RREPSN报文。
6.根据权利要求3所述的IPv6微型传感路由器协议栈体系结构实现方法,其特征是所述的一种IPv6微型协议栈步骤(3)实现过程
首先IPv6处理函数接收到数据包,将IPv6结构类型的指针指向inBuffer的首部,按照精简IPv6协议过程,取出结构指针的域值进行IPv6数据处理并保存,然后根据IPv6结构指针的下一个报头域值,将数据包递交到下一报头处理函数,buflen标识IPv6载荷长度;下一个报头处理函数将下一个报头结构指针指向inBuffer的IPv6协议长度的位置,按照下一报头精简过程进行数据处理,buflen标识应用数据的长度;最后调用应用处理函数,进行inBuffer数据处理。
7.根据权利要求3或4所述的IPv6微型传感路由器协议栈体系结构实现方法,其特征是目的节点接收到RREQSN报文,按照最优路由判断函数,进行判断最优路由,该路由判断函数为
其中X为源节点到目的节点的跳数,Y为从源节点到目的节点的路由每一跳的LQI中,最小的LQI值,n为不同网络环境下的待定参数,取值范围为2~4,在开阔地带室外网络环境下,取n值为2。
全文摘要
本发明提出了一种基于IPv6泛在传感器网络的核心设备——IPv6微型无线传感路由器的体系结构的设计和实现方法。IPv6微型传感路由器协议栈体系结构,该体系结构自下而上包括IEEE802.15.4物理层、IEEE802.15.4介质访问控制层、适配层、微型传感路由器协议栈和应用层。通过该设备,可以把传感器网络与IPv6相结合,使之真正成为下一代互联网的一部分。既能单独组网,也能接入Internet,支持远程、串口等多种人性化配置方式,具有体积小、能耗低、自适应性强、成本低、简单灵活等优点,在工农业生产、军事国防、医疗护理、环境监测、智能家居等领域有着广泛的应用前景。
文档编号H04L29/06GK1794732SQ20051013277
公开日2006年6月28日 申请日期2005年12月26日 优先权日2005年12月26日
发明者张宏科, 郜帅, 张思东, 牛延超, 霍宏伟, 李昭桦, 任彦 申请人:北京交通大学
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1