一种基于跨层的6LoWPAN无线传感器网络通信方法转让专利

申请号 : CN201310117582.7

文献号 : CN103152772B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓喃

申请人 : 常熟理工学院

摘要 :

本发明公开了一种基于跨层的6LoWPAN无线传感器网络通信方法,6LoWPAN无线传感器网络包含两类传感器节点,全功能节点和部分功能节点;所述6LoWPAN无线传感网络由一个以上子网组成,每个子网包括一个网关、一个以上全功能节点,以及一个以上部分功能节点;其中网关为连接子网与IPv6网络中的接入路由器,网关与全功能节点是固定节点,具有路由转发功能,部分功能节点为移动节点,不具有路由转发功能。通过本发明所提供的通信方法,可保持移动过程中通信的连续性,缩短移动切换延迟,降低数据包丢失率,从而提高了服务质量,本发明可广泛应用于现代化农业、医疗监测等领域,具有广泛的应用前景。

权利要求 :

1.一种城市车载网的路由方法,其特征在于,所述城市车载网包括接入路由器、接入节点和位于道路上的车辆节点;接入路由器与互联网的骨干网相连,接入节点与一个以上的接入路由器连接;将与一个接入路由器相连的所有接入节点围成一个封闭区域作为车域;

将车辆节点分为骨干节点和普通节点两类:骨干节点执行路由转发功能,它保存到达所在车域距离最近的接入节点的路由信息,并通过距离最近的接入节点实现与互联网的通信;普通节点不执行路由转发功能,它通过一跳范围内的骨干节点实现与互联网的通信;

车辆节点的IPv6地址包括三个部分:第一部分是车域ID,它是全局路由前缀,唯一标识一个车域,一个车域中所有接入节点的车域ID都相同,从一个车域内获取的IPv6地址的车域ID都相同,其值等于相同车域中接入路由器的车域ID;第二部分为接入节点ID,它唯一标识车域内的一个接入节点,从一个接入节点获取的地址的接入节点ID都相同,其值等于该接入节点的接入节点ID;第三部分为车辆ID,它唯一标识一个车域中的车辆;接入路由器和接入节点的IPv6地址预先设置,接入路由器的接入节点ID和车辆ID为0,接入节点的车辆ID为0;

当车辆节点加入城市车载网时,它行驶到接入节点一跳范围内后,从该接入节点获取家乡地址;获取家乡地址后,车辆节点在车域内行驶时,它的家乡地址和转交地址保持不变;当车辆节点进入一个新车域时,它从同时属于新车域和原来车域的接入节点获取转交地址;

接入节点分别属于一个以上车域,在为车辆节点配置地址之前,接入节点首先判断车辆节点进入的下一个车域,然后为车辆节点分配下一个车域内中具有全球唯一性的IPv6地址;对于每个所属车域,接入节点保存一个车辆ID表,用于记录下已经分配的车辆ID;

车辆节点从接入节点获取IPv6地址的过程如下:

步骤201:开始;

步骤202:车辆节点向接入节点发送地址请求消息;

步骤203:接入节点收到地址请求消息后,向车辆节点发送刷新消息;

步骤204:车辆节点收到刷新消息后,定期向接入节点发送刷新响应消息;

步骤205:接入节点通过测量刷新响应消息来定位车辆节点的相对位置,并判断车辆节点进入的下一个车域;

步骤206:接入节点采用随机函数随机产生一个车辆ID;

步骤207:接入节点查询下一个车域对应的车辆ID表来判断生成的车辆ID是否已经分配,如果是,返回步骤206,否则进行步骤208;

步骤208:接入节点将自己的车域ID、接入节点ID与生成的车辆ID结合产生新的转交地址,并将其封装到地址响应消息中发送给车辆节点;

步骤209:车辆节点是否已经配置家乡地址,如果是,进行步骤211,否则进行步骤

210;

步骤210:车辆节点收到地址响应消息后,将消息中的地址作为自己的家乡地址,进行步骤212;

步骤211:车辆节点收到地址响应消息后,将消息中的地址作为自己的转交地址;

步骤212:结束;

如果接入节点属于K个车域且第k车域所定义的角度闭区间为[αk,αk+1],K≥k≥1,在时刻T1,车辆节点进入接入节点的通信范围内,接入节点通过测量车辆节点发送的刷新响应消息的强度判断出与车辆节点的距离;当距离小于道路宽度时,车辆节点即将进入下一个车域,接入节点用定位算法测量车辆节点发送的刷新响应消息判断与车辆节点的相对角度,接入节点通过相对角度以及每个车域所在的角度闭区间,判断车辆节点进入的下一个路域;

每个车辆节点都配有全球定位系统,用于获取自己的地址坐标,城市车载网内所有的时钟同步;令车辆节点Vi的地理坐标为(xi,yi),车辆节点Vj的地理坐标为(xj,yj),车辆节点Vi的速度vi,车辆节点Vj的速度为vj,车辆节点Vi的移动角度为θi,车辆节点Vj的移动角度为θj,车辆节点的传输半径为r,那么,车辆节点Vi和Vj的链路连接时间Tij为:其中,

a=vicosθi-vjcosθj,

b=xi-xj,

c=visinθi-vjsinθj,

d=yi-yj,

接入节点属于K个车域,在为第k车域的第j条道路建立路由时,1≤k≤K,接入节点选择的下一跳邻居车辆节点的移动角度θ符合下述条件:αk≤βj≤θ≤βj+1≤αk+1,

其中,第k车域的角度范围为[αk,αk+1],

第k车域的第j条道路的角度范围为[βj,βj+1];

车辆节点定期发送广播消息,消息负载包括地址位置坐标,移动速度和移动角度;车辆节点通过接收邻居车辆节点广播的消息获取与邻居车辆节点的链路连接时间;

在车域中,车辆节点建立到达最近接入节点AP1的路由过程如下:

步骤301:开始;

步骤302:接入节点AP1选择具有最大链路连接时间的邻居普通节点,并向其发送路由建立消息,消息负载为接入节点AP1的地址,值为0的跳数参数,以及设置为最大值的链路连接时间;

步骤303:邻居普通节点收到路由建立消息后,判断其一跳范围内是否有骨干节点,如果是,进行步骤305,否则进行步骤304;

步骤304:邻居普通节点将接入节点AP1作为距离最近的接入节点,保存到达接入节点AP1的跳数参数以及转发路由建立消息的骨干节点的地址,将自己标记为骨干节点,然后选择最大链路连接时间的下一跳邻居普通节点,向其转发路由建立消息,其中消息负载中的跳数递增1;链路连接时间为路由建立消息中的链路连接时间,与自己和下一跳邻居普通节点的链路连接时间之间的最小值,进行步骤303;

步骤305:邻居普通节点丢弃路由建立消息并向转发路由建立消息的骨干节点返回路由响应消息,消息负载为到达接入节点AP1路径的链路连接时间;

步骤306:骨干节点收到路由响应消息后,记录下到达接入节点AP1路径的链路连接时间,然后将路由响应消息发送给到达接入节点AP1的下一跳骨干节点,路由响应消息最终达到接入节点AP1;

步骤307:接入节点AP1收到路由响应消息后,记录下对应车域的路由链路连接时间;

步骤308:结束;

路由建立完成后,接入节点AP1在链路连接时间之后重新建立路由以维护路由的有效性;骨干节点的广播消息负载中增加如下数据:接入节点AP1的地址、到达接入节点AP1的路径长度以及到达接入节点AP1的路径的链路连接时间。

2.根据权利要求1所述的城市车载网的路由方法,其特征在于,骨干节点与互联网节点通信的时候,按照建立的路由路径将数据包发送到距离最近的接入节点,然后由接入节点发送到本车域的接入路由器,接入路由器记录骨干节点与距离最近的接入节点的关联关系,并将数据包发送到互联网节点;

互联网节点返回的数据包首先到达骨干节点所在车域的接入路由器,接入路由器根据记录的骨干节点与接入节点的关联关系将返回的数据包发送到与骨干节点关联的接入节点,接入节点根据数据包目的地址所在车域的路由路径将数据包发送到下一跳骨干节点,最终数据包到达目的骨干节点;

普通节点与互联网节点通信时,从邻居骨干节点中选择具有最大链路连接时间的骨干节点B,然后将数据包发送到骨干节点B,骨干节点B收到数据包后,记录普通节点与自己的关联关系,同时将数据包通过最近接入节点和所在车域的接入路由器发送给互联网节点;

互联网节点返回的数据包到达最近接入节点后,最近接入节点根据数据包目的地址所在车域的路由信息,将数据包发送到下一跳骨干节点,下一跳骨干节点检测自己是否与普通节点具有关联关系,如果没有,继续按照路由信息将数据包发送到下一跳骨干节点,最终到达与普通节点有关联关系的骨干节点B,然后骨干节点B将数据包发送到普通节点。

3.根据权利要求2所述的城市车载网的路由方法,其特征在于,普通节点与骨干节点设有关联关系,普通节点检测到即将离开骨干节点的通信范围,那么从邻居骨干节点中选择具有最大链路连接时间的骨干节点作为新的关联节点,并向新的关联节点发送关联消息,消息负载为原来关联节点距离最近的接入节点的地址,新的关联节点收到关联消息后,增加与普通节点的关联关系;

如果新的关联节点的最近接入节点与原来关联节点的最近接入节点不同但是属于一个车域,那么新的关联节点向所在车域的接入路由器发送更新消息,消息负载为普通节点的地址和新的关联节点的最近接入节点的地址;接入路由器收到更新消息后,将普通节点的最近接入节点的地址更新为更新消息中的新的关联节点的最近接入节点的地址;

路由信息更新之后,目的地址为普通节点的数据包到达所在车域的接入路由器后,接入路由器将其转发到新关联节点的最近接入节点,最近接入节点根据所在车域路径信息将数据包发送到最新骨干节点,然后由最新骨干节点将数据包发送到普通节点;

普通节点脱离原来关联节点的通信范围后,自动删除关联消息。

4.根据权利要求3所述的城市车载网的路由方法,其特征在于,接入节点的路径链路连接时间为0时,重新建立路由;

重新建立路由后,普通节点C1变为骨干节点C1,如果骨干节点C1原来最近的接入节点AP1与现在最近的接入节点AP2不同且接入节点AP1与接入节点AP2属于一个车域,那么骨干节点C1向所在车域的接入路由器AR1发送更新消息,消息负载为接入节点AP2的地址;接入路由器AR1收到更新消息后,将骨干节点C1的关联接入节点AP1的地址更新为接入节点AP2的地址;

目的地址为骨干节点C1的数据包到达接入路由器AR1后,接入路由器AR1将其转发到接入节点AP2,接入节点AP2根据所在车域路径将数据发送到骨干节点C1;

重新建立路由后,普通节点C2原来关联的骨干节点转变为普通节点,那么普通节点C2从邻居骨干节点中选择具有最大链路连接时间的骨干节点B2作为新的关联节点,并向骨干节点B2发送关联消息,消息负载为原来关联节点的距离最近的接入节点AP3的地址;骨干节点B2收到关联消息后,增加与普通节点C2的关联关系;如果骨干节点B2的最近接入节点AP4与接入节点AP3同属于一个车域,那么骨干节点B2向所在车域的接入路由器AR2发送更新消息,消息负载为普通节点C2和接入节点AP4的地址;接入路由器AR2收到更新消息后,将普通节点C2的关联接入节点的地址更新为接入节点AP4的地址;

目的地址为普通节点C2的数据到达接入路由器AR2后,接入路由器AR2将其转发到接入节点AP4,接入节点AP4根据所在车域路径将数据发送到骨干节点B2,骨干节点B2将数据转发给普通节点C2;

重新建立路由后,骨干节点B3转变为普通节点B3,普通节点B3从邻居骨干节点中选择具有最大链路连接时间的骨干节点B4作为关联节点,并向骨干节点B4发送关联节点消息,消息负载为原来距离最近的接入节点AP5的地址;骨干节点B4收到关联消息后,增加与普通节点B3的关联关系;如果骨干节点B4的最近接入节点是与接入节点AP5同属于一个车域的接入节点AP6,那么骨干节点B4向所在车域的接入路由器AR3发送更新消息,消息负载为普通节点B3和接入节点AP6的地址;接入路由器AR3收到更新消息后,将普通节点B3的关联接入节点的地址更新为接入节点AP6的地址;

目的地址为普通节点B3的数据到达接入路由器AR3后,接入路由器AR3将其转发到接入节点AP6,接入节点AP6根据所在车域路径将数据发送到骨干节点B4,最后骨干节点B4将数据转发给普通节点B3。

5.根据权利要求4所述的城市车载网的路由方法,其特征在于,车辆节点V通过接入节点AP从车域VD1进入车域VD2的过程中,首先从接入节点AP获取新的转交地址并进行新地址的绑定操作,同时将自己标记为普通节点;车辆节点V在车域VD2的邻居骨干节点中选择具有最大链路连接时间的骨干节点B5作为关联节点,并向骨干节点B5发送关联消息,消息负载为接入节点AP在车域VD1的地址;骨干节点B5收到关联消息后,增加与车辆V的关联关系,同时通过消息负载的地址值判断出车辆节点V为新进入车域VD2的普通节点,向车域VD2所在车域的接入路由器AR7发送更新消息,消息负载为车辆节点V新的转交地址和接入节点AP在车域VD2的地址;接入路由器AR7收到更新消息后,记录下车辆节点V与接入节点AP的关联关系;

新地址绑定后,目的地址为车辆节点V新关联地址的数据到达接入路由器AR7后,接入路由器AR7将其转发到接入节点AP,接入节点AP根据所在车域路径将数据发送到骨干节点B5,最后骨干节点B5将数据转发给车辆节点V;

车域VD1中的接入路由器AR8中的车辆节点V的关联关系在有效时间为0后自动删除。

说明书 :

一种基于跨层的6LoWPAN无线传感器网络通信方法

技术领域

[0001] 本发明涉及一种网络通信方法,尤其涉及的是一种基于跨层的6LoWPAN无线传感器网络通信方法。

背景技术

[0002] 无线传感器网络具有移动性,但是无线传感器网络与IPv6网络体系结构的差异使得现有的IPv6移动协议无法应用到全IP无线传感器网络。目前,国内外研究人员研究并提出了多种移动管理方案,上述移动管理方案为研究全IP无线传感器网络的移动管理理论奠定了良好的基础,但是,上述方案仍然采用了传统的移动管理模式,因此延长了移动管理延迟。如何设计低功耗、低延迟的全IP无线传感器网络移动管理方案还有待进一步深入研究。
[0003] 因此,本发明提出了一种通信延迟短,数据丢失率低的基于跨层的6LoWPAN无线传感器网络通信方法。

发明内容

[0004] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于跨层的6LoWPAN无线传感器网络通信方法。
[0005] 技术方案:本发明公开了一种基于跨层的6LoWPAN无线传感器网络通信方法,其特征在于,6LoWPAN无线传感器网络包含两类传感器节点,全功能节点和部分功能节点;所述6LoWPAN无线传感网络由一个以上子网组成,每个子网包括一个网关、一个以上全功能节点,以及一个以上部分功能节点;其中网关为连接子网与IPv6网络中的接入路由器,网关与全功能节点是固定节点,具有路由转发功能,部分功能节点为移动节点,不具有路由转发功能。
[0006] 一个子网内的网关和所有全功能节点构建成路由骨干网,拓扑结构为树状,称为子网树,树根节点为网关;部分功能节点通过路由骨干网与IPv6互联网进行通信;与部分功能节点直接通信的路由骨干网中的全功能节点称作该部分功能节点的关联节点,同一时刻,一个部分功能节点只有一个关联节点。
[0007] 部分功能节点由家乡地址唯一标识,在部分功能节点移动过程中家乡地址保持不变;部分功能节点的移动转交过程中无需配置转交地址,从而大幅度降低了移动转交的延迟和功耗,提高了通信质量。
[0008] 网关与传感器节点的IPv6地址由两部分组成:第一部分是子网ID,它是全局路由前缀,一个子网中网关和所有全功能节点以及从该子网获取地址的部分功能节点的子网ID都相同;第二部分是节点ID,节点ID唯一标识子网中的一个传感器节点;网关的IPv6地址预先设置且节点ID为0;节点ID的长度由6LoWPAN传感器网络规模以及传感器节点分布密度来确定。
[0009] 网关、全功能节点和部分功能节点在一跳范围内定期广播信标帧,网关和全功能节点广播的信标帧负载为工作信道以及在子网树的深度值。
[0010] 一个全功能节点最多可拥有K个子节点,所有子节点都是全功能节点,每个子节点对应一条地址分配记录,每条地址分配记录包括两个域:子节点值k和子节点分配状态,其中1≤k≤K,子节点分配状态包括已分配和未分配两种状态。
[0011] 本发明所述方法中,全功能节点加入6LoWPAN无线传感器网络后,扫描所有信道并接收邻居网关或者邻居全功能节点广播的信标帧,选择从深度值最小的邻居网关或者邻居全功能节点获取地址;全功能节点Y从邻居全功能节点X获取IPv6地址的过程为:
[0012] 步骤101:开始;
[0013] 步骤102:全功能节点Y向邻居全功能节点X发送地址请求消息;
[0014] 步骤103:邻居全功能节点X收到地址请求消息后,选择最小未分配子节点值对应的地址分配记录,向全功能节点Y返回一个地址响应消息,消息负载为对应地址分配记录的子节点值k,同时将对应地址分配记录的子节点分配状态标识为已分配状态;
[0015] 步骤104:全功能节点Y收到地址响应消息后,根据公式(1)获取节点ID,其中,x为全功能节点X的节点ID,y为全功能节点Y的节点ID,然后将节点ID与全功能节点X的子网ID相结合获取自己的地址;
[0016] y=K·x+k (1)
[0017] 步骤105:全功能节点Y将邻居全功能节点X标记为自己的父节点并采用父节点的信道进行通信;
[0018] 步骤106:结束;
[0019] 子网内的所有全功能节点通过上述过程获取IPv6地址,完成路由骨干网构建。
[0020] 上述过程中,全功能节点从一跳范围内的邻居节点获取地址且无需地址重复检测,从而大幅度降低了地址配置功耗和延迟,实现了分布式的地址配置,同时,在地址配置过程中,自动完成了路由骨干网的构建,因此降低了路由功耗和延迟。
[0021] 本发明所述方法中,部分功能节点Z加入6LoWPAN无线传感器网络后,扫描所有的信道并接收邻居网关或者邻居全功能节点广播的信标帧,选择从深度值最小的邻居网关或者邻居全功能节点Y获取地址;部分功能节点Z从邻居全功能节点Y获取IPv6地址的过程为:
[0022] 步骤201:开始。
[0023] 步骤202:部分功能节点Z向邻居全功能节点Y发送地址请求消息。
[0024] 步骤203:邻居全功能节点Y收到地址请求消息后,选择最小未分配子节点值对应的记录,向部分功能节点Z返回一个地址响应消息,消息负载为对应地址分配记录的子节点值k,同时将对应地址分配记录的子节点分配状态标识为已分配状态。
[0025] 步骤204:部分功能节点Z收到地址响应消息后,根据公式(1)获取节点ID,其中,x为全功能节点Y的节点ID,y为部分功能节点Z的节点ID,然后将节点ID与全功能节点Y的子网ID相结合获取自己的地址。
[0026] 步骤205:部分功能节点Z将全功能节点Y标记为关联节点。
[0027] 步骤206:结束。
[0028] 上述过程中,部分功能节点从一跳范围内的邻居节点获取地址且无需地址重复检测,从而大幅度降低了地址配置功耗和延迟,实现了分布式的地址配置。
[0029] 本发明所述方法中,全功能节点获取IPv6地址后,扫描所有信道接收邻居全功能节点的信标帧,从而获取邻居全功能节点的工作信道,以及邻居全功能节点的相对位置。
[0030] 本发明所述方法中,当部分功能节点与IPv6节点进行通信时,数据包通过部分功能节点的关联节点所在的子网树首先到达子网的网关,然后由网关记录下部分功能节点与其关联节点的关联关系并将数据包按照IPv6路由方式路由到目的IPv6节点。
[0031] 本发明所述方法中,如果部分功能节点X1的关联节点为全功能节点Y1,当全功能节点Y1检测到部分功能X1即将离开自己的通信范围时,全功能节点Y1选择与部分功能节点X1距离最近的全功能节点Y2作为部分功能节点X1的下一个关联节点。
[0032] 如果全功能节点Y1与全功能节点Y2在同一个子网内且子网的网关为G,那么全功能节点Y1进行如下移动切换操作:
[0033] 步骤301:开始。
[0034] 步骤302:全功能节点Y1分别向部分功能节点X1和网关G发送切换消息,发送给网关G的切换消息负载内容为部分功能节点X1的IPv6地址以及全功能节点Y2的IPv6地址,发送给部分功能节点X1的消息负载内容为节点Y2的工作信道。
[0035] 步骤303:网关G收到切换消息后,将部分功能节点X1的关联节点更新为全功能节点Y2,并向全功能节点Y1返回切换确认消息。
[0036] 步骤304:部分功能节点X收到全功能节点Y1的切换消息后,直接采用全功能节点Y2的工作信道实现与全功能节点Y2的链路切换,并将全功能节点Y2作为新的关联节点。
[0037] 步骤305:全功能节点Y1收到切换确认消息后,将目的地址为部分功能节点X1的消息路由至全功能节点Y2,然后全功能节点Y2将数据消息转发给部分功能节点X1;
[0038] 步骤306:结束。
[0039] 上述过程中,网络层移动切换与链路层移动切换同时进行,因此降低了移动切换延迟,从而降低了丢包率,在网络层移动切换过程中,部分功能节点在移动过程中无需配置转交地址,也无需参与移动切换过程,因此降低了移动切换延迟,在链路层切换过程中,部分功能节点无需扫描所有信道,通过获取的信道信息直接进行二层切换,因此缩短了切换延迟,降低了丢包率。
[0040] 本发明所述方法中,部分功能节点X1与IPv6节点通信过程中,如果部分功能节点X1的关联节点从全功能节点Y1变为全功能节点Y2,那么通信过程为:
[0041] 步骤401:开始。
[0042] 步骤402:目的地址为部分功能节点X1的数据包首先到达与目的部分功能节点X1所在子网连接的网关G。
[0043] 步骤403:网关G用MAC头部和Mesh头部对数据包进行封装,其中Mesh头部中的目的地址设置为部分功能节点X1的当前关联节点Y1的节点ID,最终地址设置为部分功能节点X1的节点ID,然后通过子网树将数据帧路由到当前关联节点Y1。
[0044] 步骤404:关联节点Y1将数据帧转发到部分功能节点X1。
[0045] 步骤405:部分功能节点X1的关联节点变为关联节点Y2,部分功能节点X1将响应数据封装为响应数据帧,其中Mesh头部中的目的地址设置为网关G的节点ID,最终地址设置为0,然后将数据帧发送给当前关联节点Y2。
[0046] 步骤406:关联节点Y2根据子网树将数据帧路由到网关G,网关G将数据帧中的响应信息封装为IPv6数据包,将IPv6数据包发送到IPv6网络上,最终该数据包按照IPv6路由方式到达目的IPv6节点。
[0047] 步骤407:结束。
[0048] 上述通信过程确保了路由的正确性,从而提高了通信质量。
[0049] 本发明所述方法中,如果部分功能节点X1的关联节点为全功能节点Y1,当全功能节点Y1检测到部分功能节点X1即将离开自己的通信范围时,全功能节点Y1选择与部分功能节点X1距离最近的全功能节点Y2作为部分功能节点X1的下一个关联节点;
[0050] 如果全功能节点Y1与全功能节点Y2属于不同的子网,全功能节点Y1所在子网的网关为G1,全功能节点Y2所在子网的网关为G2,那么全功能节点Y1进行如下移动切换操作:
[0051] 步骤501:开始。
[0052] 步骤502:全功能节点Y1分别向部分功能节点X1和全功能节点Y2发送切换消息,发送给全功能节点Y2的消息负载内容为部分功能节点X1的IPv6地址,发送给部分功能节点X1的消息负载内容为全功能节点Y2的工作信道。
[0053] 步骤503:部分功能节点X1收到全功能节点Y1的切换消息后,直接采用全功能节点Y2的工作信道实现与全功能节点Y2的链路切换,并将全功能节点Y2作为新的关联节点。
[0054] 步骤504:全功能节点Y2收到切换消息后,通过全功能节点Y1的IPv6地址判定全功能节点Y1属于不同的子网,全功能节点Y2向所在子网的网关G2发送切换消息,消息负载为部分功能节点X1的地址。
[0055] 步骤505:网关G2收到切换消息后,建立部分功能节点X1与全功能节点Y2的关联关系,同时向部分功能节点X1获取地址的子网的网关HG发送切换消息。
[0056] 步骤506:网关HG收到切换消息后,将与部分功能节点X1关联的网关从网关G1更新为网关G2,并向网关G2返回切换确认消息,网关G2收到切换确认消息后,向全功能节点Y2返回切换确认消息,全功能节点Y2收到切换确认消息后,将切换确认消息转发给全功能节点Y1。
[0057] 步骤507:全功能节点Y1收到切换确认消息后,将目的地址为部分功能节点X1的消息路由至全功能节点Y2,然后全功能节点Y2再将数据消息转发给部分功能节点X1。
[0058] 步骤508:结束。
[0059] 上述过程中,网络层移动切换与链路层移动切换同时进行,因此降低了移动切换延迟,从而降低了丢包率,在网络层移动切换过程中,部分功能节点在移动过程中无需配置转交地址,也无需参与移动切换过程,因此降低了移动切换延迟,在链路层切换过程中,部分功能节点无需扫描所有信道,通过获取的信道信息直接进行二层切换,因此缩短了切换延迟,降低了丢包率。
[0060] 本发明所述方法中,在移动切换过程中,部分功能节点X1与IPv6节点N的通信过程为:
[0061] 步骤601:开始。
[0062] 步骤602:目的地址为部分功能节点X1的数据包首先到达部分功能节点X1获取地址所在子网的网关HG。
[0063] 步骤603:网关HG根据部分功能节点X1的关联关系,将数据包路由到部分功能节点X1所在子网的网关G1。
[0064] 步骤604:网关G1用MAC头部和Mesh头部对数据包进行封装,其中Mesh头部中的目的地址设置为部分功能节点X1的关联节点Y1的节点ID,最终地址设置为部分功能节点X1的IPv6地址的节点ID,然后通过子网树将数据帧路由到关联节点Y1。
[0065] 步骤605:关联节点Y1将数据发送到部分功能节点X1。
[0066] 步骤606:部分功能节点X1的关联节点变为关联节点Y2,部分功能节点X1将响应信息封装为响应数据帧,其中Mesh头部中的目的地址设置为网关G2的节点ID,最终地址设置为0,然后将数据帧发送给当前的关联节点Y2。
[0067] 步骤607:关联节点Y2根据子网树将数据帧路由到网关G2,然后网关G2将数据帧中的响应数据封装为IPv6数据包,将其发送到IPv6网络上,最终此数据包按照IPv6路由方式到达IPv6节点N。
[0068] 步骤608:结束。
[0069] 上述通信过程确保了路由的正确性,从而提高了通信质量。
[0070] 有益效果:本发明提供了一种基于跨层的6LoWPAN无线传感器网络通信方法,所述6LoWPAN无线传感器网络通过本发明所提供的通信方法,可保持移动过程中通信的连续性,缩短移动切换延迟,降低数据包丢失率,从而提高了服务质量,本发明可广泛应用于现代化农业、医疗监测等领域,具有广泛的应用前景。

附图说明

[0071] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0072] 图1为本发明所述的全功能节点及部分功能节点结构示意图。
[0073] 图2为本发明所述的节点IPv6地址结构示意图。
[0074] 图3为本发明所述的地址分配记录表表项示意图。
[0075] 图4为本发明所述的全功能节点地址配置流程示意图。
[0076] 图5为本发明所述的部分节点地址配置流程示意图。
[0077] 图6为本发明所述的子网内移动切换流程示意图。
[0078] 图7为本发明所述的子网内通信流程示意图。
[0079] 图8为本发明所述的子网间移动切换流程示意图。
[0080] 图9为本发明所述的子网间通信流程示意图。具体实施方式:
[0081] 本发明提供了一种基于跨层的6LoWPAN无线传感器网络通信方法,所述6LoWPAN无线传感器网络通过本发明所提供的通信方法,可保持移动过程中通信的连续性,缩短移动切换延迟,降低数据包丢失率,从而提高了服务质量,本发明可广泛应用于现代化农业、医疗监测等领域,具有广泛的应用前景。
[0082] 图1为本发明所述的全功能节点及部分功能节点结构示意图。6LoWPAN无线传感器网络包含两类传感器节点,全功能节点1和部分功能节点2;所述6LoWPAN无线传感网络由一个以上子网3组成,每个子网3包括一个网关4、一个以上全功能节点1,以及一个以上部分功能节点2;其中网关4为连接子网3与IPv6网络中的接入路由器,网关4与全功能节点1是固定节点,具有路由转发功能,部分功能节点2为移动节点,不具有路由转发功能。一个子网3内的网关4和所有全功能节点1构建成路由骨干网,拓扑结构为树状,称为子网树5,树根节点为网关4;部分功能节点2通过路由骨干网与IPv6互联网进行通信;与部分功能节点2直接通信的路由骨干网中的全功能节点1称作该部分功能节点的关联节点,同一时刻,一个部分功能节点只有一个关联节点。
[0083] 图2为本发明所述的节点IPv6地址结构示意图。网关与传感器节点的IPv6地址由两部分组成:第一部分是子网ID,它是全局路由前缀,一个子网中网关和所有全功能节点以及从该子网获取地址的部分功能节点的子网ID都相同;第二部分是节点ID,节点ID唯一标识子网中的一个传感器节点;网关的IPv6地址预先设置且节点ID为0;节点ID的长度由6LoWPAN传感器网络规模以及传感器节点分布密度来确定;部分功能节点由家乡地址唯一标识,在部分功能节点移动过程中家乡地址保持不变;部分功能节点的移动转交过程中无需配置转交地址,从而大幅度降低了移动转交的延迟和功耗,提高了通信质量。
[0084] 图3为本发明所述的地址分配记录表表项示意图。网关、全功能节点和部分功能节点在一跳范围内定期广播信标帧,网关和全功能节点广播的信标帧负载为工作信道以及在子网树的深度值;一个全功能节点最多可拥有K个子节点,所有子节点都是全功能节点,每个子节点对应一条地址分配记录,每条地址分配记录包括两个域:子节点值k和子节点分配状态,其中1≤k≤K,子节点分配状态包括已分配和未分配两种状态。
[0085] 图4为本发明所述的全功能节点地址配置流程示意图。全功能节点加入6LoWPAN无线传感器网络后,扫描所有信道并接收邻居网关或者邻居全功能节点广播的信标帧,选择从深度值最小的邻居网关或者邻居全功能节点获取地址;全功能节点Y从邻居全功能节点X获取IPv6地址的过程为:
[0086] 步骤101:开始。
[0087] 步骤102:全功能节点Y向邻居全功能节点X发送地址请求消息。
[0088] 步骤103:邻居全功能节点X收到地址请求消息后,选择最小未分配子节点值对应的地址分配记录,向全功能节点Y返回一个地址响应消息,消息负载为对应地址分配记录的子节点值k,同时将对应地址分配记录的子节点分配状态标识为已分配状态。
[0089] 步骤104:全功能节点Y收到地址响应消息后,根据公式(1)获取节点ID,其中,x为全功能节点X的节点ID,y为全功能节点Y的节点ID,然后将节点ID与全功能节点X的子网ID相结合获取自己的地址。
[0090] y=K·x+k (1)
[0091] 步骤105:全功能节点Y将邻居全功能节点X标记为自己的父节点并采用父节点的信道进行通信。
[0092] 步骤106:结束。
[0093] 子网内的所有全功能节点通过上述过程获取IPv6地址,完成路由骨干网构建。
[0094] 上述过程中,全功能节点从一跳范围内的邻居节点获取地址且无需地址重复检测,从而大幅度降低了地址配置功耗和延迟,实现了分布式的地址配置,同时,在地址配置过程中,自动完成了路由骨干网的构建,因此降低了路由功耗和延迟。
[0095] 图5为本发明所述的部分节点地址配置流程示意图。部分功能节点Z加入6LoWPAN无线传感器网络后,扫描所有的信道并接收邻居网关或者邻居全功能节点广播的信标帧,选择从深度值最小的邻居网关或者邻居全功能节点Y获取地址。部分功能节点Z从邻居全功能节点Y获取IPv6地址的过程为:
[0096] 步骤201:开始。
[0097] 步骤202:部分功能节点Z向邻居全功能节点Y发送地址请求消息。
[0098] 步骤203:邻居全功能节点Y收到地址请求消息后,选择最小未分配子节点值对应的记录,向部分功能节点Z返回一个地址响应消息,消息负载为对应地址分配记录的子节点值k,同时将对应地址分配记录的子节点分配状态标识为已分配状态。
[0099] 步骤204:部分功能节点Z收到地址响应消息后,根据公式(1)获取节点ID,其中,x为全功能节点Y的节点ID,y为部分功能节点Z的节点ID,然后将节点ID与全功能节点Y的子网ID相结合获取自己的地址。
[0100] 步骤205:部分功能节点Z将全功能节点Y标记为关联节点。
[0101] 步骤206:结束。
[0102] 上述过程中,部分功能节点从一跳范围内的邻居节点获取地址且无需地址重复检测,从而大幅度降低了地址配置功耗和延迟,实现了分布式的地址配置。
[0103] 图6为本发明所述的子网内移动切换流程示意图。全功能节点获取IPv6地址后,扫描所有信道接收邻居全功能节点的信标帧,从而获取邻居全功能节点的工作信道,以及邻居全功能节点的相对位置。当部分功能节点与IPv6节点进行通信时,数据包通过部分功能节点的关联节点所在的子网树首先到达子网的网关,然后由网关记录下部分功能节点与其关联节点的关联关系并将数据包按照IPv6路由方式路由到目的IPv6节点。
[0104] 如果部分功能节点X1的关联节点为全功能节点Y1,当全功能节点Y1检测到部分功能X1即将离开自己的通信范围时,全功能节点Y1选择与部分功能节点X1距离最近的全功能节点Y2作为部分功能节点X1的下一个关联节点。
[0105] 如果全功能节点Y1与全功能节点Y2在同一个子网内且子网的网关为G,那么全功能节点Y1进行如下移动切换操作:
[0106] 步骤301:开始。
[0107] 步骤302:全功能节点Y1分别向部分功能节点X1和网关G发送切换消息,发送给网关G的切换消息负载内容为部分功能节点X1的IPv6地址以及全功能节点Y2的IPv6地址,发送给部分功能节点X1的消息负载内容为节点Y2的工作信道。
[0108] 步骤303:网关G收到切换消息后,将部分功能节点X1的关联节点更新为全功能节点Y2,并向全功能节点Y1返回切换确认消息。
[0109] 步骤304:部分功能节点X收到全功能节点Y1的切换消息后,直接采用全功能节点Y2的工作信道实现与全功能节点Y2的链路切换,并将全功能节点Y2作为新的关联节点。
[0110] 步骤305:全功能节点Y1收到切换确认消息后,将目的地址为部分功能节点X1的消息路由至全功能节点Y2,然后全功能节点Y2将数据消息转发给部分功能节点X1。
[0111] 步骤306:结束。
[0112] 上述过程中,网络层移动切换与链路层移动切换同时进行,因此降低了移动切换延迟,从而降低了丢包率,在网络层移动切换过程中,部分功能节点在移动过程中无需配置转交地址,也无需参与移动切换过程,因此降低了移动切换延迟,在链路层切换过程中,部分功能节点无需扫描所有信道,通过获取的信道信息直接进行二层切换,因此缩短了切换延迟,降低了丢包率。
[0113] 图7为本发明所述的子网内通信流程示意图。部分功能节点X1与IPv6节点通信过程中,如果部分功能节点X1的关联节点从全功能节点Y1变为全功能节点Y2,那么通信过程为:
[0114] 步骤401:开始。
[0115] 步骤402:目的地址为部分功能节点X1的数据包首先到达与目的部分功能节点X1所在子网连接的网关G。
[0116] 步骤403:网关G用MAC头部和Mesh头部对数据包进行封装,其中Mesh头部中的目的地址设置为部分功能节点X1的当前关联节点Y1的节点ID,最终地址设置为部分功能节点X1的节点ID,然后通过子网树将数据帧路由到当前关联节点Y1。
[0117] 步骤404:关联节点Y1将数据帧转发到部分功能节点X1。
[0118] 步骤405:部分功能节点X1的关联节点变为关联节点Y2,部分功能节点X1将响应数据封装为响应数据帧,其中Mesh头部中的目的地址设置为网关G的节点ID,最终地址设置为0,然后将数据帧发送给当前关联节点Y2。
[0119] 步骤406:关联节点Y2根据子网树将数据帧路由到网关G,网关G将数据帧中的响应信息封装为IPv6数据包,将IPv6数据包发送到IPv6网络上,最终该数据包按照IPv6路由方式到达目的IPv6节点。
[0120] 步骤407:结束。
[0121] 上述通信过程确保了路由的正确性,从而提高了通信质量。
[0122] 图8为本发明所述的子网间移动切换流程示意图。如果部分功能节点X1的关联节点为全功能节点Y1,当全功能节点Y1检测到部分功能节点X1即将离开自己的通信范围时,全功能节点Y1选择与部分功能节点X1距离最近的全功能节点Y2作为部分功能节点X1的下一个关联节点。
[0123] 如果全功能节点Y1与全功能节点Y2属于不同的子网,全功能节点Y1所在子网的网关为G1,全功能节点Y2所在子网的网关为G2,那么全功能节点Y1进行如下移动切换操作:
[0124] 步骤501:开始。
[0125] 步骤502:全功能节点Y1分别向部分功能节点X1和全功能节点Y2发送切换消息,发送给全功能节点Y2的消息负载内容为部分功能节点X1的IPv6地址,发送给部分功能节点X1的消息负载内容为全功能节点Y2的工作信道。
[0126] 步骤503:部分功能节点X1收到全功能节点Y1的切换消息后,直接采用全功能节点Y2的工作信道实现与全功能节点Y2的链路切换,并将全功能节点Y2作为新的关联节点。
[0127] 步骤504:全功能节点Y2收到切换消息后,通过全功能节点Y1的IPv6地址判定全功能节点Y1属于不同的子网,全功能节点Y2向所在子网的网关G2发送切换消息,消息负载为部分功能节点X1的地址。
[0128] 步骤505:网关G2收到切换消息后,建立部分功能节点X1与全功能节点Y2的关联关系,同时向部分功能节点X1获取地址的子网的网关HG发送切换消息。
[0129] 步骤506:网关HG收到切换消息后,将与部分功能节点X1关联的网关从网关G1更新为网关G2,并向网关G2返回切换确认消息,网关G2收到切换确认消息后,向全功能节点Y2返回切换确认消息,全功能节点Y2收到切换确认消息后,将切换确认消息转发给全功能节点Y1。
[0130] 步骤507:全功能节点Y1收到切换确认消息后,将目的地址为部分功能节点X1的消息路由至全功能节点Y2,然后全功能节点Y2再将数据消息转发给部分功能节点X1。
[0131] 步骤508:结束。
[0132] 上述过程中,网络层移动切换与链路层移动切换同时进行,因此降低了移动切换延迟,从而降低了丢包率,在网络层移动切换过程中,部分功能节点在移动过程中无需配置转交地址,也无需参与移动切换过程,因此降低了移动切换延迟,在链路层切换过程中,部分功能节点无需扫描所有信道,通过获取的信道信息直接进行二层切换,因此缩短了切换延迟,降低了丢包率。
[0133] 图9为本发明所述的子网间通信流程示意图。在移动切换过程中,部分功能节点X1与IPv6节点N的通信过程为:
[0134] 步骤601:开始。
[0135] 步骤602:目的地址为部分功能节点X1的数据包首先到达部分功能节点X1获取地址所在子网的网关HG。
[0136] 步骤603:网关HG根据部分功能节点X1的关联关系,将数据包路由到部分功能节点X1所在子网的网关G1。
[0137] 步骤604:网关G1用MAC头部和Mesh头部对数据包进行封装,其中Mesh头部中的目的地址设置为部分功能节点X1的关联节点Y1的节点ID,最终地址设置为部分功能节点X1的IPv6地址的节点ID,然后通过子网树将数据帧路由到关联节点Y1。
[0138] 步骤605:关联节点Y1将数据发送到部分功能节点X1。
[0139] 步骤606:部分功能节点X1的关联节点变为关联节点Y2,部分功能节点X1将响应信息封装为响应数据帧,其中Mesh头部中的目的地址设置为网关G2的节点ID,最终地址设置为0,然后将数据帧发送给当前的关联节点Y2。
[0140] 步骤607:关联节点Y2根据子网树将数据帧路由到网关G2,然后网关G2将数据帧中的响应数据封装为IPv6数据包,将其发送到IPv6网络上,最终此数据包按照IPv6路由方式到达IPv6节点N。
[0141] 步骤608:结束。
[0142] 上述通信过程确保了路由的正确性,从而提高了通信质量。
[0143] 综上所述,本发明提供了一种基于跨层的6LoWPAN无线传感器网络通信方法,所述6LoWPAN无线传感器网络通过本发明所提供的通信方法,可保持移动过程中通信的连续性,缩短移动切换延迟,降低数据包丢失率,从而提高了服务质量,本发明可广泛应用于现代化农业、医疗监测等领域,具有广泛的应用前景。
[0144] 本发明提供了一种基于跨层的6LoWPAN无线传感器网络通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。