基于IPv6的物联网终端与互联网主机的通信方法转让专利

申请号 : CN201210333405.8

文献号 : CN102857968B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙知信骆冰清高同

申请人 : 南京邮电大学

摘要 :

本发明公开了一种基于IPv6的物联网终端与互联网主机通讯方法,本发明在物联网终端的协议栈中加入6lowpan协议对数据包进行适配,即采用6lowpan协议与IPv6协议共同支撑网络层,链路层采用IEEE的802.15.4标准与网关进行数据通信,实现其在lowpan域内通过802.15.4协议发送轻量级的数据包,物联网终端的传输层采用UDP与ICMP协议,网关与互联网主机通过以太网进行数据通信;本发明所提出的在物联网终端实现context主动更新机制,并将该机制用于互联网中的IPv6主机主动访问lowpan域内物联网终端的流程中,同时提出了物联网终端主动上报数据给互联网主机的流程,解决了lowpan域内物联网终端与互联网中主机的互联互通问题。

权利要求 :

1.一种基于IPv6的物联网终端与互联网主机的通信方法,在该通信方法中,物联网终端的链路层采用IEEE的802.15.4标准与网关进行数据通信,网关与互联网主机之间通过基于IPv6协议的以太网进行数据通信;其特征在于:所述物联网终端的网络层由6lowpan协议与IPv6协议共同支撑,即在物联网终端的协议栈中加入6lowpan协议对数据包进行适配;所述通信方法包括互联网主机访问物联网终端的流程,以及物联网终端访问互联网主机的流程;其中:所述互联网主机访问物联网终端的流程具体如下:

A,当网关与物联网终端已知互联网主机的上下文信息context时,步骤如下:

步骤A01,由互联网主机发送数据请求报文给网关,网关将该数据请求报文中包含的互联网主机的IPv6地址根据其上下文信息context压缩成互联网主机的6lowpan地址,生成

6lowpan数据包发送至物联网终端;

步骤A02,物联网终端根据其保存的上下文表项查询到该互联网主机的上下文信息context,对互联网主机的6lowpan地址进行有效的地址解压缩,经过6lowpan协议将得到的6lowpan数据包解压缩成原始IPv6数据包,解析互联网主机发送来的数据请求报文信息;

B,当网关与物联网终端均未知互联网主机的上下文信息context时,步骤如下:步骤B01,网络初始化,物联网终端完成全局可路由IPv6地址的注册,互联网主机已知物联网终端的IPv6地址;

步骤B02,互联网主机将数据请求封装在UDP数据包中,并设定源地址与目的地址,经由IPV6以太网发送给网关;

步骤B03,网关对数据包进行地址解析,分析到目的地址为物联网终端的IPv6地址,调用uip进程,根据物联网终端上下文信息context将物联网终端的IPv6地址进行压缩得到物联网终端的6lowpan地址;

步骤B04,网关对互联网主机的Ipv6地址前缀进行截取,生成互联网主机上下文信息context并将其存入网关的上下文表项中,根据该互联网主机上下文信息context将互联网主机的IPv6地址进行压缩得到互联网主机的6lowpan地址;

步骤B05,根据物联网终端的6lowpan地址、互联网主机的6lowpan地址构造6lowpan数据包;

步骤B06,将步骤B05中所述6lowpan数据包经过IEEE802.15.4链路封装后通过网关的无线射频接口发送至物联网终端;

步骤B07,物联网终端收到该数据包后经由IEEE802.15.4链路层解析得到6lowpan数据包;

步骤B08,物联网终端查询上下文表项,向网关发送RS请求,请求网关发送由步骤B04得到的互联网主机上下文信息context;网关将该互联网主机上下文信息context通过RA消息发送给物联网终端;物联网终端接收到RA消息后,记录该互联网主机上下文信息context,存储至其自身的上下文表项中;

步骤B09,物联网终端获取该互联网主机的上下文信息context后,经过6lowpan协议将步骤B07得到的6lowpan数据包解压缩成原IPv6数据包;

步骤B10,物联网终端分析UDP封装的数据请求信息,进行数据采集,并构造IPv6数据包,执行下述步骤C03至步骤C06将数据包通过网关发送给互联网主机;

所述物联网终端访问IPv6互联网主机的流程如下:

C,当网关上下文表项中已知物联网终端需主动上报的互联网主机上下文信息context时,包括以下步骤:步骤C01,在设置6lowpan网络时,为物联网终端配置其所要主动上报的互联网主机的IPv6地址以及上下文信息context;

步骤C02,物联网终端进行数据采集,并构造IPv6数据包;

步骤C03,根据物联网终端上下文信息context将物联网终端的IPv6地址进行压缩得到物联网终端的6lowpan地址;根据该互联网主机上下文信息context将互联网主机的IPv6地址进行压缩得到互联网主机的6lowpan地址;

步骤C04,根据物联网终端的6lowpan地址、互联网主机的6lowpan地址以及步骤C02所采集的数据封装成6lowpan数据包;

步骤C05,物联网终端将6lowpan数据包通过IEEE802.15.4协议封装成帧,通过无线网络发送至网关;

步骤C06,网关通过对数据包解析后得到6lowpan数据包,通过查询自身的上下文表项,根据物联网终端上下文信息context,将物联网终端的6lowpan地址解压缩为物联网终端的IPv6地址;根据互联网主机上下文信息context将互联网主机6lowpan地址解压缩为互联网主机Ipv6地址,然后根据物联网终端的IPv6地址、互联网主机Ipv6地址构造Ipv6数据包;

步骤C07,网关通过Ipv6网络将该Ipv6数据包发送给互联网主机;

D,当网关上下文表项中未知物联网终端需主动上报的互联网主机上下文信息context时,具体包括以下步骤:步骤D01,物联网终端进行数据采集,并构造IPv6数据包;

步骤D02,根据物联网终端上下文信息context将物联网终端的IPv6地址进行压缩得到物联网终端的6lowpan地址;将物联网终端的6lowpan地址作为源地址、互联网主机IPV6地址作为目的地址构造6lowpan数据包;

步骤D03,物联网终端将6lowpan数据包封装成IEEE802.15.4数据包发送至网关;

步骤D04,网关解析IEEE802.15.4数据包得到6lowpan数据包,获取该数据包中的互联网主机IPV6地址,对互联网主机的Ipv6地址前缀进行截取,生成互联网主机上下文信息context并将其存入网关的上下文表项中;

步骤D05,根据物联网终端上下文信息context,将物联网终端的6lowpan地址解压缩为物联网终端的IPv6地址,然后根据物联网终端的IPv6地址、互联网主机Ipv6地址构造IPV6数据包,将该IPV6数据包转发至互联网主机。

说明书 :

基于IPv6的物联网终端与互联网主机的通信方法

技术领域

[0001] 本发明涉及一种基于IPv6的物联网轻量级终端与互联网主机通讯方法,属于物联网终端应用技术领域。

背景技术

[0002] 随着物联网产业的发展,物联网应用的数量越来越多,覆盖范围也越趋广泛。物联网终端表现出数量多,覆盖范围广,密度高;电池供电,能量资源有限的特点。针对这些特点,针对应用分别对节点的电路集成、低功耗能量管理、节点一体化、轻量级网络协议栈等方面进行了设计与研究。而目前对物联网终端的研究基本上是由应用出发,针对不同应用研发不同的终端,从而促使物联网应用成为一个个“孤岛”,无法进行行业间的应用与配置。
[0003] 同时针对物联网的这些特点,6lowpan技术的研究也日渐受到关注,它采用IPv6进行编码,能够提供更多的地址空间;链路层同时采用802.15.4标准对数据包进行传输,兼具了寻址范围广泛同时满足物联网轻量级寻址的要求。然而采用6lowpan技术支撑物联网,同时也要求物联网终端的设计能够支撑6lowpan技术的应用。在IETF标准组织所制定RFC标准文献中,详细规范了6lowpan适配层的技术细节,但在将其6lowpan协议栈载入物联网终端,并最终用于物联网应用的过程中,依然存在较多的技术难点是标准中尚未解决的。其中对于地址压缩过程中context的管理机制,IETF标准组织在其邻居发现协议中给出了一套较为详细的分发与更新方案,但是其中对于终端在所发送的报文目的地址的context未知情况的设计,使得搭载有6lowpan协议栈的物联网终端将无法压缩该主机的地址,直到前一次分发的context表中的lifetime耗尽,才能等待网关的再次分发。这种设计使得终端节点每次给该主机发送的分片数都有所增加,不仅占用了该终端节点的处理器与缓存空间,甚至能够影响到整个网络的传输效率与能量消耗。
[0004] ①相关现有技术一:《一种基于物联网的网络智能终端》(陈迎东. 一种基于物联网的网络智能终端[Z]. CN102006209A: ,2011.)。该终端的设计特点包括:(1)是一种面向家庭和SOHO用户设计的满足三网合一需求的光纤网络终端设备;(2)包括显示输入模块、通讯接口模块、智能控制模块和中央处理器;(3)基于物联网,综合利用数字技术、网络技术、EPON光通信技术、RFID技术等高新技术手段,通过电脑、电视、手机三种媒介形式深入家庭、个人等民众身边,为民众提供全面的物联生活服务,能够满足人们从基本通信服务到多媒体生活等全面的家庭智能化、信息化生活需求。
[0005] 现有技术一的缺点:
[0006] 基于物联网的网络智能终端是为家庭应用而设计的,与很多研究机构的设计一样,为不同的应用设计不同的物联网终端节点,不具备普适性。其次,该设计突出智能化,强调打印机,显示屏等外设的连接与应用,没有针对物联网终端特点而论。最后,该终端的设计对网络带宽,通信机制有着较高的要求,它的普及与实现还需等待基础设施的更新与建设。
[0007] ②相关现有技术二:6lowpan传感器节点的设计与实现(王晓喃,高德民.6LoWPAN传感器节点的设计与实现[J]. 传感技术学报,2010,(10).)。
[0008] 该设计考虑到物联网终端与IPv6网络的互通,传感器网络采用6lowpan的体系架构,链路层使用802.15.4协议。从硬件和软件的角度是物联网终端实现以下两个功能:1)实现精简的IPv6网络协议;(2)实现IPv6数据报文在IEEE802.15.4帧的传输。硬件设计考虑了处理器和射频芯片以及寄存器与缓存之间如何读写数据帧的过程。软件设计则定义了三层架构:硬件抽象层,适配层和应用层。硬件抽象层的任务是接收数据帧和封装数据帧;适配层的任务是分片与重组;应用层则定义了IPv6控制域。
[0009] 现有技术二的缺点:
[0010] 该方案分别从硬件与软件的角度对节点进行了设计,可是忽略了两者之间的联系问题。其次,软件设计部分的适配层设计参考了2007年的6lowpan标准草稿,现在6lowpan-15已经有了更新。同时在适配层的设计中方案只提到了分片与重组而忽略了对首部的压缩方式。最后,本方案的考虑背景是传感器网络,其应用范围与特点与物联网存在一定的区别,该方案对终端节点的设计不能完全满足物联网的需求。
[0011] ③相关现有技术三:一种基于物联网的无线移动RFID数据采集终端设备及设计方法(简钟,宋元,贺虎,赵小刚,饶晓燕. 一种基于物联网的无线移动RFID数据采集终端设备及设计方法[Z]. CN101894280A: ,2010.)。
[0012] 该方案的设计方法是将RFID中间件数据处理模块整合到读写器上,使读写器在整个系统中的作用功能增强,减少系统对中间件数据处理模块的技术依赖。硬件采用CAN总线模式,将相关芯片集成,软件采用嵌入式Java应用程序和嵌入式Java虚拟机KVM,操作系统采用嵌入式操作系统,嵌入式Java应用程序符合EPCglobal的ALE(Application Level Events)规范,并结合JINI(Java Intelligent、Network Infrastructure)服务组件,以支持无线传感器网络功能。该方案的优势是适用于物联网大规模应用的普及,同时最大的创新之处是为物联网中的射频识别(RFID)装置提供了一个对识读的海量RFID数据进行去冗余化的处理。
[0013] 现有方案三的缺点:
[0014] 该方案的设计集中优化了RFID的数据冗余处理问题,因此也只涉及了物联网众多终端节点类型中的一种,不能适用于其他物联网感应终端的设计。其次,该方案将中间件数据处理模块整合到读写器上,这样限制了此类读写器必须是有线电源连接的方式供电,否则将会有严重的能量供应不足的问题存在。最后,该方案的设计没有涉及终端的编码与寻址方式,可行性有待加强。

发明内容

[0015] 本发明所要解决的技术问题是针对现有物联网应用终端节点能量有限、数量多、处理能力弱的技术问题,提出一种基于IPv6的物联网轻量级终端与互联网主机通讯方法,具有轻量级,网络稳定性好,耗能低,适用于大型物联网应用的特点。
[0016] 本发明为解决上述技术问题采用以下技术方案:
[0017] 一种基于IPv6的物联网终端与互联网主机的通信方法,在该通信方法中,物联网终端的链路层采用IEEE的802.15.4标准与网关进行数据通信,网关与互联网主机之间通过基于IPv6协议的以太网进行数据通信;所述物联网终端的网络层由6lowpan协议与IPv6协议共同支撑,即在物联网终端的协议栈中加入6lowpan协议对数据包进行适配;所述通信方法包括互联网主机访问物联网终端的流程,以及物联网终端访问互联网主机的流程;其中:
[0018] 所述互联网主机访问物联网终端的流程具体如下:
[0019] A,当网关与物联网终端已知互联网主机的上下文信息context时,步骤如下:
[0020] 步骤A01,由互联网主机发送数据请求报文给网关,网关将该数据请求报文中包含的互联网主机的IPv6地址根据其上下文信息context压缩成互联网主机的6lowpan地址,生成6lowpan数据包发送至物联网终端;
[0021] 步骤A02,物联网终端根据其保存的上下文表项查询到该互联网主机的上下文信息context,对互联网主机的6lowpan地址进行有效的地址解压缩,经过6lowpan协议将得到的6lowpan数据包解压缩成原始IPv6数据包,解析互联网主机发送来的数据请求报文信息;
[0022] B,当网关与物联网终端均未知互联网主机的上下文信息context时,步骤如下:
[0023] 步骤B01,网络初始化,物联网终端完成全局可路由IPv6地址的注册,互联网主机已知物联网终端的IPv6地址;
[0024] 步骤B02,互联网主机将数据请求封装在UDP数据包中,并设定源地址与目的地址,经由IPV6以太网发送给网关;
[0025] 步骤B03,网关对数据包进行地址解析,分析到目的地址为物联网终端的IPv6地址,调用uip进程,根据物联网终端上下文信息context将物联网终端的IPv6地址进行压缩得到物联网终端的6lowpan地址;
[0026] 步骤B04,网关对互联网主机的Ipv6地址前缀进行截取,生成互联网主机上下文信息context并将其存入网关的上下文表项中,根据该互联网主机上下文信息context将互联网主机的IPv6地址进行压缩得到互联网主机的6lowpan地址;
[0027] 步骤B05,根据物联网终端的6lowpan地址、互联网主机的6lowpan地址构造6lowpan数据包;
[0028] 步骤B06,将步骤B05中所述6lowpan数据包经过IEEE802.15.4链路封装后通过网关的无线射频接口发送至物联网终端;
[0029] 步骤B07,物联网终端收到该数据包后经由IEEE802.15.4链路层解析得到6lowpan数据包;
[0030] 步骤B08,物联网终端查询上下文表项,向网关发送RS请求,请求网关发送由步骤B04得到的互联网主机上下文信息context;网关将该互联网主机上下文信息context通过RA消息发送给物联网终端;物联网终端接收到RA消息后,记录该互联网主机上下文信息context,存储至其自身的上下文表项中;
[0031] 步骤B09,物联网终端获取该互联网主机的上下文信息context后,经过6lowpan协议将步骤B07得到的6lowpan数据包解压缩成原IPv6数据包;
[0032] 步骤B10,物联网终端分析到UDP封装的数据请求信息,进行数据采集,并构造IPv6数据包,执行下述步骤C03至步骤C06将数据包通过网关发送给互联网主机;
[0033] 所述物联网终端访问IPv6互联网主机的流程如下:
[0034] C,当网关上下文表项中已知物联网终端需主动上报的互联网主机上下文信息context时,包括以下步骤:
[0035] 步骤C01,在设置6lowpan网络时,为物联网终端配置其所要主动上报的互联网主机的IPv6地址以及上下文信息context;
[0036] 步骤C02,物联网终端进行数据采集,并构造IPv6数据包;
[0037] 步骤C03,根据物联网终端上下文信息context将物联网终端的IPv6地址进行压缩得到物联网终端的6lowpan地址;根据该互联网主机上下文信息context将互联网主机的IPv6地址进行压缩得到互联网主机的6lowpan地址;
[0038] 步骤C04,根据物联网终端的6lowpan地址、互联网主机的6lowpan地址以及步骤C02所采集的数据封装成6lowpan数据包;
[0039] 步骤C05,物联网终端将6lowpan数据包通过IEEE802.15.4协议封装成帧,通过无线网络发送至网关;
[0040] 步骤C06,网关通过对数据包解析后得到6lowpan数据包,通过查询自身的上下文表项,根据物联网终端上下文信息context,将物联网终端的6lowpan地址解压缩为物联网终端的IPv6地址;根据互联网主机上下文信息context将互联网主机6lowpan地址解压缩为互联网主机Ipv6地址,然后根据物联网终端的IPv6地址、互联网主机Ipv6地址构造Ipv6数据包;
[0041] 步骤C07,网关通过Ipv6网络将该Ipv6数据包发送给互联网主机;
[0042] D,当网关上下文表项中未知物联网终端需主动上报的互联网主机上下文信息context,具体包括以下步骤:
[0043] 步骤D01,物联网终端进行数据采集,并构造IPv6数据包;
[0044] 步骤D02,根据物联网终端上下文信息context将物联网终端的IPv6地址进行压缩得到物联网终端的6lowpan地址;将物联网终端的6lowpan地址作为源地址、互联网主机IPV6地址作为目的地址构造6lowpan数据包;
[0045] 步骤D03,物联网终端将6lowpan数据包封装成IEEE802.15.4数据包发送至网关;
[0046] 步骤D04,网关解析IEEE802.15.4数据包得到6lowpan数据包,获取该数据包中的互联网主机IPV6地址,对互联网主机的Ipv6地址前缀进行截取,生成互联网主机上下文信息context并将其存入网关的上下文表项中;
[0047] 步骤D05,根据物联网终端上下文信息context,将物联网终端的6lowpan地址解压缩为物联网终端的IPv6地址,然后根据物联网终端的IPv6地址、互联网主机Ipv6地址构造IPV6数据包,将该IPV6数据包转发至互联网主机。
[0048] 本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0049] 本发明所设计的物联网终端能够适用于所有采用6lowpan网络的物联网应用,同时有利于推动6lowpan网络应用业务的发展与集成。物联网与无线传感器网络最主要的区别即能够实现与互联网的联通,在物联网终端中配置6lowpan协议,能够实现其在lowpan域内通过802.15.4协议发送轻量级的数据包。本发明所提出的在物联网终端实现context主动更新机制,并将该机制用于互联网中的IPv6主机主动访问lowpan域内物联网终端的流程中,同时提出了物联网终端主动上报数据给互联网主机的流程,解决了lowpan域内物联网终端与互联网中主机的互联互通问题。

附图说明

[0050] 图1是本发明的物联网终端实现模块示意图。
[0051] 图2是基于IPv6的终端节点与IPv6主机通信协议栈系统示意图。
[0052] 图3是物联网终端、网关与PC主机之间的通信流图。
[0053] 图4是6CO选项格式示意图。

具体实施方式

[0054] 下面结合附图对本发明的技术方案做进一步的详细说明:
[0055] 1、物联网终端节点模块设计。
[0056] 如图1所示,本发明的物联网终端共包括五个主要模块:微处理器模块、数据传输模块、数据采集模块、存储模块以及电源管理模块。
[0057] 微处理器模块要求承载支持多任务的嵌入式操作系统,其中包括 uIPv6 协议栈,能够支持IPv6 通信;同时它连接存储模块与电源管理模块。存储模块要求包含一定字节的片内存储器,外部提供接口可配置一定容量的flash闪存;电源管理模块要求具有低功耗的特点,延长节点的工作时间,同时要求不需外接电源。
[0058] 数据传输模块要求具有无限射频收发系统,其性能稳定同时功耗低,符合802.15.4标准,可确保短距离通信的有效性和可靠性。集成该数据传输模块的物联网终端节点采用IPv6协议实现多点间的通信。
[0059] 数据采集模块包括感应单元与A/D转换器,其感应形式可以多样化,适应不同类型感知数据的采集。
[0060] 2、物联网终端基于IPv6和802.15.4协议与互联网中主机互发数据的方法。
[0061] 在轻量级的物联网终端设计中,最重要的能够实现其轻量级特点的是微处理器中需要加载能够运行uIPv6协议栈的操作系统。而6lowpan的网络架构已经日渐成熟,其协议也正在逐步完善,其最大的特点就是功耗低,同时源码所占空间小,解决了物联网终端处理器资源能量有限的问题。本发明在物联网终端协议栈中加入6lowpan协议对数据包进行适配,下面根据附图2详细说明基于IPv6的终端节点与IPv6主机通信协议栈系统。
[0062] 如图2所示, 底层的物理层与链路层采用IEEE的802.15.4标准,6lowpan协议与IPv6协议共同支撑网络层,传输层采用UDP与ICMP协议。与传统IP协议栈相比,该协议栈在网络层与链路层之间加了一个适配层,即6lowpan协议。这是因为IPv6的载荷为1280byte,而802.15.4帧的载荷为127个字节,因此通过6lowpan协议将IPv6数据包适配后符合802.15.4帧格式的发送标准。同时6lowpan最普遍的传输层协议是UDP协议,与IP协议栈相比,由于性能、效率和复杂性等原因,TCP协议一般不用于6lowpan传输层。ICMPv6协议主要用于控制消息,比如ICMP重放、目的不可达以及邻居发现消息。
[0063] 基于IPv6的轻量级物联网终端其最终能力需要达到与IPV6网络的正常通信,同时又能够正常的实行6lowpan适配层的基本功能,但是当IPv6网络中的任意一台主机想要查询lowpan域内任意一个终端数据时,这台主机的IP地址是不被网关及物联网终端所已知的。则该IPV6地址的context信息也不被所要查询的终端已知。但根据上述context的基本功能可知,在lowpan域中的终端未知其发送数据包IPv6地址context的情况下,将不能对其地址进行压缩。而在IETF所提出的标准中也未对该情况进行设计处理,因此图3给出了描述此情景下的物联网终端、网关与PC主机之间的通信流图,其中所设计的基于IPv6的轻量级物联网终端context主动更新机制将有效的利用context查询与主动索要功能及时更新自身的context存储表,提高与Internet网络中主机的通信效率,降低原本标准中设计机制的网络载荷;基于6lowpan协议IPv6主机主动访问物联网终端的方法将有效利用context的更新机制与物联网终端物联网终端进行有效通信;基于6lowpan协议物联网终端访问IPv6主机的方法可以实现基于IPv6的轻量级物联网终端与互联网环境下的IPv6主机实现互联互通。
[0064] 下面将根据图3分别详细介绍这三种机制。
[0065] A,基于6lowpan的物联网终端context主动更新机制:
[0066] Context携带用于6lowpan地址压缩的前缀信息由网关获取并配置、通过RA消息的6CO选项分发到域内路由器,再由路由器分发到各主机,从而使网络内所有6lowpan节点共享相同的地址前缀信息。因此,在保证域内各节点context的一致性的基础上如何高效的利用context对任意一域外的主机进行地址压缩是本终端实现的关键所在。
[0067] 一个真正的物联网系统需要能够使无线传感器网络与internet互联互通,至少实现三个实体间的基本通信,即无线传感器终端、物联网网关以及internet上的主机(PC机或是移动终端)。context采用人工配置的方式将固定的PC地址前缀写入6CO选项中发给物联网终端物联网终端,如图4所示为6CO选项的基本格式,网关主要维护context信息的四个主要字段:
[0068] 1、C位标识了是否用此context进行压缩,C=0表示该context只能用于解压缩,C=1表示既用于压缩也可用于解压缩;
[0069] 2、标识context序号的CID字段,用于压缩与解压缩;
[0070] 3、valid lifetime标识context有效生存期,当物联网终端物联网终端保存的context快过期时向网关重发单播RS消息;
[0071] 4、context prefix携带地址前缀信息。
[0072] 首先是context的获取方式需要实现网关自适应, 网关需要获取与物联网终端物联网终端交互的外网IPv6地址前缀,主要从两方面考虑:一方面是在物联网终端物联网终端已知所发送主机IP地址context的情况下,由物联网终端物联网终端发起的外网通信请求,此时6lowpan首部中的目的地址是完整的IPv6地址,数据包到达网关时,网关根据完整的IPv6地址获取其前缀信息,存入context表项中,同时进行地址转换,将发送请求经路由发送给外网主机;另一方面由PC发起对物联网终端物联网终端的访问时,网关需要对其地址进行前缀截取并存入context表项中,并将数据请求转发给终端节点,终端节点根据接收到的数据请求查询源地址的context,在context未知的情况下,向网关发出RS请求,即向网关请求该主机源地址的context信息,网关则将刚刚存储下的context信息通过RA消息再发回给终端节点,接收到RA消息后,终端节点将此context值记录入自己的context表中,并将所发送数据包的目的地址进行压缩,对数据包进行分片后将数据包发送给网关,由网关进行协议转换后再发回给外网主机C。
[0073] 关于context的管理与分发机制,6lowpan邻居发现协议给出了一个较为灵活全面的机制,网关充分利用C位的标记功能,保证C=0的context值遍历整个6lowpan域时再将C位置1。
[0074] 这里的保证依据是一个由人工设定的全局变量MIN_CONTEXT_CHANGE_DELAY,根据网络速率与6lowpan域覆盖范围测试RA消息遍历整个网络而得到的最小时延。即在这个时延内保证了同一RA消息已通过多跳拓扑分发至6lowpan域内的每一个节点。
[0075] 此外同一CID的前缀信息也会面临版本更新的需求,网关将通过三个步骤实现context的无差别更新与分发:首先,将旧版本context所对应的C位清0通过RA消息分发出去,经过最小时延再进行第二步,即将新版本的context前缀覆盖旧版本的前缀信息,同时C位依然为0,同样在RA消息发出并经过最小时延后进入第三步,即将C位置1。这样就保证了整个域内地址压缩的节点与解压缩的节点获取的context的一致性。且复杂的context管理机制都在网关中实现,保证了传感终端节点的低消耗。
[0076] B,基于6lowpan协议IPv6主机访问物联网终端的方法:
[0077] 互联网中IPv6主机主动发起对物联网终端的访问主要分为两种情况:一种是在该主机的context是网关与物联网终端已知的,则主机发送给网关的数据请求报文,网关均可以进行有效的地址压缩与6lowpan数据包的正常发送,物联网终端A也可以根据自己的context表查询到该主机的地址前缀,进行有效的地址解压缩并发送数据应答报文。另一种情况是网关与物联网终端均未知该主机C的context,而本次会话是由主机C主动发起的。经过网络初始化阶段,节点A完成全局可路由IPv6地址IP(A)的注册,主机C已知节点A的地址。
[0078] 接下来将通过IP(A)与主机C进行交互。本系统在数据传输过程采用UDP协议,实现UDP首部的压缩与解压缩。不实现复杂的应用层协议,而是采用最简单的请求——回复机制完传感器的数据采集与传输(如图2)。图2中虚线表示本系统各节点网关协议栈以及传输udp数据时协议解析路线:首先由主机C将数据请求封装在UDP数据包中,设定源地址与目的地址,经由IPV6以太网发送给网关,网关对数据包进行地址解析,分析到目的地址为IP(A),调用uip进程,将IPv6首部进行压缩得到6lowpan数据包,其中源、目的地址通过contextA、contextC压缩成6lowpan地址6L(C), 6L(A),最后6lowpan数据包经过IEEE802.15.4链路封装后通过无线射频接口发送出去。物联网终端物联网终端A收到经由IEEE802.15.4链路层解析后的6lowpan数据包。经过6lowpan协议解压缩成原IPv6数据包,源、目的地址分别通过contextA、contextC解压缩为IP(C),IP(A)。分析到UDP封装的数据请求信息,进行数据采集,并构造IPv6数据包,此时源IPv6地址与目的地址分别为IP(A),IP(C)。经过6lowpan层之后变为6L(A),6L(C)。数据包通过IEEE802.15.4无线网络到达网关B时通过与接收相反的步骤进行协议转换与地址转换(IPv6地址->6lowpan地址),路由选择后发至主机C。
[0079] C,基于6lowpan协议物联网终端访问IPv6主机的方法:
[0080] 物联网终端主动上报数据给IPv6网络中的主机,所要解决的最主要的问题是所上报主机的IPv6地址如何获取。在这种情况下,一般物联网终端需要定时地将所采集到的数据信息上传给服务器,其数据信息量大,一般也较为重复,因此可以为一定范围内的物联网终端配置相同的服务器IPv6地址,在设置6lowpan网络时,为物联网终端配置其所要主动上报的服务器IPv6地址,在这种情况下,其数据的主动上报过程如图3中所示的context已知情况下数据传输过程一致。