专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
基于簇的6LoWPAN无线传感器网络地址配置方法

基于簇的6LoWPAN无线传感器网络地址配置方法

IPC分类号 : H04L29/12,H04W8/26

申请号
CN201310256706.X
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2013-06-25
  • 公开号: CN103347101A
  • 公开日: 2013-10-09
  • 主分类号: H04L29/12
  • 专利权人: 常熟理工学院

专利摘要

本发明提供了一种基于簇的6LoWPAN无线传感器网络地址配置方法,所述6LoWPAN无线传感器网络通过一个外部接入路由器与IPv6互联网相连;6LoWPAN无线传感器网络包含三类节点:簇首节点,簇内节点和新节点;簇首节点为已经配置IPv6地址的全功能节点,簇内节点为已经配置IPv6地址的部分功能节点,簇首节点或者簇内节点无需地址重复检测即可从邻居节点获取具有全球唯一性的IPv6地址。由于地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟,提高了地址配置效率。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

权利要求

1.一种基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,所述6LoWPAN无线传感器网络通过一个外部接入路由器与IPv6互联网相连;6LoWPAN无线传感器网络包含三类节点:簇首节点,簇内节点和新节点;簇首节点为已经配置IPv6地址的全功能节点,一个外部接入节点与所有簇首节点构建成一个树状结构,外部接入路由器为树状结构的根节点;簇内节点为已经配置IPv6地址的部分功能节点,新节点为没有配置IPv6地址的全功能节点或者部分功能节点;全功能节点为固定节点,部分功能节点为移动节点;6LoWPAN无线传感器网络划分为一个以上的簇,每个簇包括一个簇首节点和一个以上的簇内节点;簇首节点有两个通信半径,即簇内通信半径和簇间通信半径,簇内通信半径是簇首节点与簇内节点通信的半径,簇间通信半径是两个簇首节点之间通信的半径,簇间通信半径大于簇内通信半径;簇内节点与本簇簇首节点的最大距离长度为H个簇内通信半径,其中,H为大于1的正整数;

6LoWPAN无线传感器网络节点的IPv6地址包括三部分,第一部分是全局路由前缀,一个6LoWPAN无线传感器网络中所有节点的全局路由前缀都相同;第二部分为簇ID,一个簇中所有簇内节点的簇ID都相同,其值等于本簇簇首节点的簇ID,第三部分为节点ID,它唯一表示一个簇内节点;簇首节点的节点ID为0;

簇内节点与本簇簇首节点的距离每增加一跳,簇内节点的节点ID长度增加k比特,k为大于0的正整数;如果一个簇内节点与本簇簇首节点的距离为h跳,1≤h≤H,那么簇内节点的节点ID的长度为k和h的乘积;

接入路由器的IPv6地址预先配置;在初始状态下,全功能节点和部分功能节点均为新节点;6LoWPAN无线传感器网络中的节点定期广播信标帧;

如果节点X收到节点Y广播的信标帧,节点X采用定位算法获取与节点Y的相对位置(θ,d),其中θ为节点X与节点Y之间的角度,θ大于或者等于0度且小于360度,d为节点X与节点Y的距离;

如果节点X1与节点Y之间的角度为θ1,距离为d1,节点X2与节点Y之间的角度为θ2,距离为d2,那么节点Y采用下述算法计算节点X1和节点X2的权重:

1)如果距离d1小于距离d2,则节点X1的权重大于节点X2,否则,如果距离d1大于距离d2,节点X1的权重小于节点X2;

2)如果距离d1等于距离d2且角度θ1小于角度θ2,则节点X1的权重大于节点X2,如果距离d1等于距离d2且角度θ1大于角度θ2,则节点X1的权重小于节点X2;

3)如果距离d1等于距离d2且角度θ1等于角度θ2,那么节点X1的权重等于节点X2。

2.根据权利要求1所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,簇首节点地址初始化过程由外部接入路由器发起,全功能的新节点配置IPv6地址且转变为簇首节点的过程包括以下步骤:

步骤101:开始;

步骤102:全功能的新节点收到邻居接入路由器或者邻居簇首节点广播的信标帧后,获取与邻居接入路由器或者邻居簇首节点的相对位置,并广播信标帧,信标帧负载为与邻居接入路由器或者邻居簇首节点的相对位置、邻居接入路由器或者邻居簇首节点的簇ID,信标帧的源地址为0xFF;

步骤103:邻居全功能的新节点收到步骤102中全功能的新节点的信标帧后,判断自己与邻居接入路由器或者邻居簇首节点的相对位置是否与信标帧中的相对位置相同,如果是,进行步骤104,否则进行步骤105;

步骤104:邻居全功能的新节点转入休眠状态;

步骤105:如果邻居接入路由器或者邻居簇首节点收到n个全功能的新节点的信标帧,则将所有n个全功能的新节点的权重由大到小进行递减排序,并广播信标帧,信标帧负载为n个排序后的相对位置,同时记录下已分配簇ID的集合和全功能的新节点的簇ID需要增加的比特长度c,2c-1-2<n≤2c-2;

步骤106:全功能的新节点收到邻居接入路由器或者邻居簇首节点的信标帧后,根据n值选择增加的比特长度c,并查看自己与邻居接入路由器或者邻居簇首节点的相对位置在信标帧中的位置x,全功能的新节点将簇ID的有效长度设置为c1+c,c1为邻居接入路由器或者邻居簇首节点簇ID的长度,前c1个比特的值等于邻居接入路由器或者邻居簇首节点的簇ID值,后c个比特的值设置为x,然后将生成的簇ID与邻居接入路由器或者邻居簇首节点的全局路由前缀相结合获取IPv6地址,同时全功能的新节点将自己标记为簇首节点,将邻居接入路由器或者邻居簇首节点标记为父节点,广播信标帧,信标帧负载为簇ID的有效长度;

步骤107:重复步骤102至步骤106,直到所有全功能的新节点获取IPv6地址并且转变为簇首节点;

步骤108:结束。

3.根据权利要求1所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,如果在一个节点的传输半径范围内有两个以上部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置相同,则采用内部ID来区分所述部分功能的新节点;所述部分功能的新节点获取内部ID的算法包括以下步骤:

如果部分功能的新节点在广播信标帧之前收到j个与同一个邻居簇首节点或者邻居簇内节点的相对位置相同的信标帧,0≤j,则部分功能的新节点广播的信标帧中的内部ID为j。

4.根据权利要求3所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,如果部分功能的新节点收到簇首节点广播的信标帧,则选择从簇ID有效位长度最小的邻居簇首节点获取地址,如果部分功能的新节点没有收到簇首节点广播的信标帧但是收到了簇内节点广播的信标帧,则选择从节点ID有效位长度最小的邻居簇内节点获取地址;部分功能的新节点获取与邻居簇首节点或者邻居簇内节点的相对位置,广播信标帧,信标帧负载为部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置、部分功能的新节点的内部ID以及请求加入簇的簇首节点的簇ID;

部分功能的新节点从邻居簇首节点获取IPv6地址的初始化过程包括如下步骤:

步骤201:开始;

步骤202:部分功能的新节点收到邻居簇首节点广播的信标帧后,获取自己与邻居簇首节点的相对位置,并广播信标帧,信标帧负载为自己与邻居簇首节点的相对位置、邻居簇首节点的簇ID、到达簇首节点的距离h以及部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF;

步骤203:邻居簇首节点收到负载为自己的簇ID的信标帧后,计算广播这些信标帧的部分功能的新节点的权重并由大到小进行递减排序,如果权重相同的节点,则按照内部ID由小到大递增排序;然后广播信标帧,信标帧负载为排序后的部分功能的新节点的相对位置,同时记录下已分配的节点ID集合;

步骤204:部分功能的新节点收到邻居簇首节点的信标帧后,查看自己与邻居簇首节点的相对位置在信标帧中的位置y,然后部分功能的新节点将节点ID的有效位长度设置为(h+1)×k,前h×k比特位的值等于邻居簇首节点的节点ID值,后k比特位的值设置为y,部分功能的新节点将邻居簇首节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点,广播信标帧;

步骤205:重复步骤202至步骤204,直到所有部分功能的新节点获取IPv6地址并且转变为簇内节点;

步骤206:结束;

部分功能的新节点从邻居簇内节点获取IPv6地址的初始化过程包括如下步骤:

步骤701:开始;

步骤702:部分功能的新节点收到邻居簇内节点广播的信标帧后,获取与邻居簇内节点的相对位置,并广播信标帧,信标帧负载为部分功能的新节点与邻居簇内节点的相对位置、邻居簇内节点的簇ID和节点ID,部分功能的新节点到达要加入簇的簇首节点的距离h和部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF;

步骤703:邻居簇内节点收到负载为自己的簇ID和节点ID的信标帧后,计算广播所述信标帧的部分功能的新节点的权重,并由大到小进行递减排序,对于权重相同的节点,则按照内部ID由小到大递增排序;然后广播信标帧,信标负载为排序后的部分功能的新节点的相对位置,同时记录下已分配的节点ID集合;

步骤704:部分功能的新节点收到邻居簇内节点的信标帧后,查看自己与邻居簇内节点的相对位置在信标帧中的位置y,然后部分功能的新节点将节点ID的有效位长度设置为(h+1)×k,前h×k比特位的值等于邻居簇内节点的节点ID值,后k比特位的值设置为y,部分功能的新节点将邻居簇内节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点,广播信标帧;

步骤705:重复步骤702至步骤704,直到所有部分功能的新节点获取IPv6地址并且转变为簇内节点;

步骤706:结束。

5.根据权利要求4所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,地址初始化过程结束后,簇首节点广播的信标帧为未分配簇ID的集合,自己的簇ID有效长度c1,自己的子节点增加的比特长度c以及未分配节点ID的集合;

地址初始化过程结束后,如果全功能的新节点接收到多个邻居簇首节点广播的信标帧,则选择从未分配簇ID集合长度最大的邻居簇首节点获取地址,包括如下步骤:

步骤301:开始;

步骤302:全功能的新节点广播信标帧,信标帧负载为与邻居簇首节点的相对位置,邻居簇首节点的簇ID,信标帧的源地址为0xFF。

步骤303:邻居全功能的新节点收到全功能的新节点的信标帧后,邻居全功能的新节点判断它与邻居簇首节点的相对位置与接收到的信标帧中的相对位置是否相同,如果是,进行步骤304,否则进行步骤305。

步骤304:邻居全功能的新节点转入休眠状态。

步骤305:邻居簇首节点收到n1个全功能的新节点的信标帧,将n1个全功能的新节点的权重由大到小进行递减排序,更新未分配簇ID集合,即从未分配簇ID原来集合中去除前n1个最小的元素,然后广播信标帧,信标帧负载为排序后的n1个全功能的新节点的相对位置以及需要增加的比特长度c。

步骤306:全功能的新节点收到邻居簇首节点的信标帧后,查看自己与邻居簇首节点相对位置在信标帧中的位置x,判断位置x是否大于邻居簇首节点原来的未分配簇ID集合长度,如果是进行步骤307,否则进行步骤308;

步骤307:全功能的新节点重新选取邻居簇首节点获取地址,进行步骤309;

步骤308:全功能的新节点将簇ID的有效位长度设置为c1+c,前c1比特位的值等于邻居簇首节点的簇ID值,后c比特位的值设置为邻居簇首节点未分配簇ID集合中第x个最小未分配的簇ID,然后将簇ID与邻居簇首节点的全局路由前缀相结合获取IPv6地址,同时将自己标记为簇首节点,将邻居簇首节点标记为父节点;

步骤309:结束。

6.根据权利要求5所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,地址初始化过程结束后,簇内节点广播的信标帧为已分配节点ID的集合以及到达本簇簇首节点的距离;

地址初始化过程结束后,如果部分功能的新节点接收到多个邻居簇首节点或者邻居簇内节点广播的信标帧,则选择从未分配节点ID集合长度最大的邻居簇首节点或者邻居簇内节点获取地址,包括如下步骤:

步骤401:开始;

步骤402:部分功能的新节点广播信标帧,信标帧负载为部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置,邻居簇首节点的簇ID,或者邻居簇内节点的簇ID和节点ID,以及部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF;

步骤403:如果邻居簇首节点或者邻居簇内节点收到n3个部分功能的新节点广播的信标帧,且信标帧负载的簇ID以及节点ID与自己的簇ID和节点ID都相同,那么邻居簇首节点或者邻居簇内节点将n3个部分功能的新节点的权重由大到小进行递减排序,如果权重相同,则按照内部ID由小到大递增排序,,然后广播信标帧,信标帧负载为排序后的n3个部分功能的新节点的相对位置,最后更新未分配节点ID集合,即去除未分配节点ID集合中前n3个最小的元素;

步骤404:部分功能的新节点收到邻居簇首节点或者邻居簇内节点的信标帧后,查看自己与邻居簇首节点或者邻居簇内节点相对位置在信标帧中的位置y,判断位置y是否大于邻居簇首节点或者邻居簇内节点原来未分配节点ID集合的长度,如果是,进行步骤405,否则进行步骤406;

步骤405:部分功能的新节点重新选取邻居簇首节点或者邻居簇内节点获取地址,进行步骤407;

步骤406:部分功能的新节点将节点ID的有效位设置为(h+1)×k,其中h×k为邻居簇首节点或者邻居簇内节点的节点ID的比特长度,部分功能的新节点将前h×k比特位的值设置为邻居簇首节点或者邻居簇内节点的节点ID,后k个比特位的值设置为邻居簇首节点或者邻居簇内节点未分配节点ID集合中第y个最小未分配的节点ID;部分功能的新节点将邻居簇首节点或者邻居簇内节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点;

步骤407:结束。

7.根据权利要求6所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,簇内节点在无线传感器网络内任意移动;簇内节点广播的信标帧负载包括与本簇簇首节点的距离参数;如果簇内节点能收到本簇簇首节点广播的信标帧,则距离参数值为1,否则它选择本簇簇内节点广播的具有最小距离参数的信标帧,并将该距离值加1作为自己的距离参数值;

簇内节点与IPv6互联网节点进行通信的路由算法包括以下步骤:

步骤501:开始;

步骤502:簇内节点判断自己的距离参数是否为1,如果是,进行步骤503,否则进行步骤504;

步骤503:簇内节点直接将数据消息传给本簇簇首节点,进行步骤508;

步骤504:簇内节点将数据消息发送给比自己距离参数值小的本簇邻居簇内节点;

步骤505:本簇邻居簇内节点收到数据消息后,记录到达簇内节点的路由路径,判断自己距离参数是否为1,如果是,进行步骤506,否则进行步骤507;

步骤506:邻居簇内节点直接将数据消息传给本簇簇首节点,进行步骤508;

步骤507:邻居簇内节点将数据消息发送给比自己距离参数值小的本簇的另一个邻居簇内节点,进行步骤505;

步骤508:本簇簇首节点收到数据消息后,记录到达簇内节点的路由路径,然后将数据消息传给其父节点,父节点再将数据消息传给它的父节点,直到数据消息到达接入路由器;

步骤509:接入路由器将数据消息发送到IPv6互联网,最后,该数据消息到达目的IPv6互联网节点;

步骤510:IPv6互联网节点返回的数据消息首先到达接入路由器,接入路由器选择与目的簇ID最匹配的下一跳簇首节点,将数据消息发送到下一跳簇首节点;下一跳簇首节点收到消息后将数据消息发送给与目的簇ID最大匹配的下一跳簇首节点,直到数据消息最终到达目的簇内节点所在簇的簇首节点;

步骤511:簇首节点收到数据消息后,判断目的簇内节点是否在其一跳范围内,即距离参数是否为1,如果是,进行步骤512,否则进行步骤513;

步骤512:簇首节点直接将数据消息传给目的簇内节点,进行步骤514;

步骤513:簇首节点根据记录的到达簇内节点的路由信息将数据消息路由到目的簇内节点;

步骤514:结束。

8.根据权利要求7所述的基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,如果簇首节点没有收到父节点的信标帧,则判定父节点失效,同时簇首节点将自己标记为全功能的新节点并重新获取IPv6地址;如果簇首节点失效,现在距离参数为1的簇内节点则无法收到簇首节点的信标帧,所述簇内节点将距离参数更新为0,广播信标帧,然后将自己标记为部分功能的新节点;其他距离参数大于1的簇内节点收到距离参数为0的信标帧后,判定簇首节点失效,同样将距离参数更新为0,广播信标帧,然后将自己标记为部分功能的新节点;直到整个簇的簇内节点都转变为部分功能的新节点;

如果簇首节点没有收到子节点的信标帧,则认为子节点失效,同时将子节点占用的簇ID加入到未分配簇ID集合。

9.根据权利要求1所述的一种基于簇的6LoWPAN无线传感器网络地址配置方法,其特征在于,簇内节点脱离所在簇后,重新将自己标记为部分功能的新节点同时加入一个新的簇获取IPv6地址;

如果部分功能的新节点的所有邻居簇首节点或者邻居簇内节点的未分配节点ID集合为空,那么部分功能的新节点选择一个邻居簇首节点并请求节点ID回收操作,包括以下步骤:

步骤601:开始;

步骤602:部分功能的新节点向邻居簇首节点发送信标帧,消息源地址为0xFF,消息负载为空;

步骤603:邻居簇首节点收到部分功能的新节点发送的消息负载为空的信标帧,邻居簇首节点在簇内广播信标帧,信标帧负载为空;

步骤604:本簇簇内节点收到本簇簇首节点的负载为空的信标帧后,向本簇簇首节点返回信标帧,信标帧负载为未分配节点ID集合;

步骤605:簇首节点获取簇内节点的为分配节点ID集合后,将脱离本簇或者失效的簇内节点占用的节点ID作为信标帧的负载再次分配给簇内节点,簇内节点收到簇首节点的信标帧后,将再次分配的节点ID加入到未分配节点ID集合中,实现地址回收;

步骤606:结束。

说明书

技术领域

本发明涉及一种无线传感器网络地址配置的实现方法,尤其涉及的是一种基于簇的6LoWPAN无线传感器网络地址配置方法。

背景技术

无线传感器网络中的节点之间通信通过中间节点的转发和路由来实现,因此,每个节点必须配有具有唯一性的地址来实现通信,因此,实现无线传感器网络需要解决的关键技术之一就是地址自动配置问题。

目前的地址配置分为有状态地址配置和无状态地址配置两种形式,有状态地址配置方案采用服务器/客户端的通信方式分配地址,即节点向服务器提出申请地址的请求,然后由服务器统一为网络内的节点分配地址。由于无线传感器网络资源有限,很难担当服务器的角色,因此,有状态地址配置方案无法应用到无线传感器网络中。在无状态地址配置方案中,每个被分配的地址都需要在整个网络中进行重复地址检测以确保它的唯一性,导致了大量的控制包开销,消耗了大量的网络资源,因此也不适用于无线传感器网络使用。

因此针对无线传感器网络需要建立一种低开销的地址自动配置方案。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于簇的6LoWPAN无线传感器网络地址配置方法。

技术方案:本发明公开了一种基于簇的6LoWPAN无线传感器网络地址配置方法,所述6LoWPAN无线传感器网络通过一个外部接入路由器与IPv6互联网相连;6LoWPAN无线传感器网络包含三类节点:簇首节点,簇内节点和新节点;簇首节点为已经配置IPv6地址的全功能节点,一个外部接入节点与所有簇首节点构建成一个树状结构,外部接入路由器为树状结构的根节点;簇内节点为已经配置IPv6地址的部分功能节点,新节点为没有配置IPv6地址的全功能节点或者部分功能节点;全功能节点为固定节点,部分功能节点为移动节点;6LoWPAN无线传感器网络划分为一个以上的簇,每个簇包括一个簇首节点和一个以上的簇内节点;簇首节点有两个通信半径,即簇内通信半径和簇间通信半径,簇内通信半径是簇首节点与簇内节点通信的半径,簇间通信半径是两个簇首节点之间通信的半径,簇间通信半径大于簇内通信半径;簇内节点与本簇簇首节点的最大距离长度为H个簇内通信半径,其中,H为大于1的正整数。

H值由簇内通信半径以及网络部署有关,一般情况下以区域来定义H值,例如一个商店的半径为500米,簇内通信半径为100m,那么H值可以设置为5,这样一个簇可以覆盖商店的区域。

上述基于多跳簇的体系结构可以有效降低簇内节点的地址配置频率,从而降低簇内节点地址配置总代价和延迟。

6LoWPAN无线传感器网络节点的IPv6地址包括三部分,第一部分是全局路由前缀,一个6LoWPAN无线传感器网络中所有节点的全局路由前缀都相同;第二部分为簇ID,一个簇中所有簇内节点的簇ID都相同,其值等于本簇簇首节点的簇ID,第三部分为节点ID,它唯一表示一个簇内节点;簇首节点的节点ID为0。

簇内节点与本簇簇首节点的距离每增加一跳,簇内节点的节点ID长度增加k比特,k为大于0的正整数;如果一个簇内节点与本簇簇首节点的距离为h跳,1≤h≤H,那么簇内节点的节点ID的长度为k和h的乘积。

上述地址结构为分层地址结构,可以有效降低簇内节点的地址有效长度,从而降低传输代价和延迟。

接入路由器的IPv6地址预先配置;在初始状态下,全功能节点和部分功能节点均为新节点;6LoWPAN无线传感器网络中的节点定期广播信标帧。

如果节点X收到节点Y广播的信标帧,节点X采用定位算法获取与节点Y的相对位置(θ,d),其中θ为节点X与节点Y之间的角度,θ大于或者等于0度且小于360度,d为节点X与节点Y的距离。

定位算法可采用到达角度定位算法(Angle of Arrival)和信号强度定位算法(Received signal strength indicator)等。

如果节点X1与节点Y之间的角度为θ1,距离为d1,节点X2与节点Y之间的角度为θ2,距离为d2,那么节点Y采用下述算法计算节点X1和节点X2的权重:

1)如果距离d1小于距离d2,则节点X1的权重大于节点X2,否则,如果距离d1大于距离d2,节点X1的权重小于节点X2;

2)如果距离d1等于距离d2且角度θ1小于角度θ2,则节点X1的权重大于节点X2,如果距离d1等于距离d2且角度θ1大于角度θ2,则节点X1的权重小于节点X2;

3)如果距离d1等于距离d2且角度θ1等于角度θ2,那么节点X1的权重等于节点X2。

本发明所述方法中,簇首节点地址初始化过程由外部接入路由器发起,全功能的新节点配置IPv6地址且转变为簇首节点的过程包括以下步骤:

步骤101:开始。

步骤102:全功能的新节点收到邻居接入路由器或者邻居簇首节点广播的信标帧后,获取与邻居接入路由器或者邻居簇首节点的相对位置,并广播信标帧,信标帧负载为与邻居接入路由器或者邻居簇首节点的相对位置、邻居接入路由器或者邻居簇首节点的簇ID,信标帧的源地址为0xFF,本发明中,簇首节点的簇ID的设置范围为1-0xFE,0xFF专门用于全功能的新节点使用,目的区分全功能的新节点以及簇首节点。

步骤103:邻居全功能的新节点收到步骤102中全功能的新节点的信标帧后,判断自己与邻居接入路由器或者邻居簇首节点的相对位置是否与信标帧中的相对位置相同,如果是,进行步骤104,否则进行步骤105。

步骤104:邻居全功能的新节点转入休眠状态。

步骤105:如果邻居接入路由器或者邻居簇首节点收到n个全功能的新节点的信标帧,则将所有n个全功能的新节点的权重由大到小进行递减排序,并广播信标帧,信标帧负载为n个排序后的相对位置,同时记录下已分配簇ID的集合和全功能的新节点的簇ID需要增加的比特长度c,2c-1-2<n≤2c-2。

步骤106:全功能的新节点收到邻居接入路由器或者邻居簇首节点的信标帧后,根据n值选择增加的比特长度c,并查看自己与邻居接入路由器或者邻居簇首节点的相对位置在信标帧中的位置x,全功能的新节点将簇ID的有效长度设置为c1+c,c1为邻居接入路由器或者邻居簇首节点簇ID的长度,前c1个比特的值等于邻居接入路由器或者邻居簇首节点的簇ID值,后c个比特的值设置为x,然后将生成的簇ID与邻居接入路由器或者邻居簇首节点的全局路由前缀相结合获取IPv6地址,同时全功能的新节点将自己标记为簇首节点,将邻居接入路由器或者邻居簇首节点标记为父节点,广播信标帧,信标帧负载为簇ID的有效长度。

步骤107:重复步骤102至步骤106,直到所有全功能的新节点获取IPv6地址并且转变为簇首节点。

步骤108:结束。

上述地址初始化算法在网络启动时执行,簇首节点无需地址重复检测即可获取具有全球唯一性的IPv6地址。由于上述地址初始化过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

本发明所述方法中,如果在一个节点的传输半径范围内有两个以上部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置相同,则采用内部ID来区分所述部分功能的新节点;所述部分功能的新节点获取内部ID的算法包括以下步骤:

如果部分功能的新节点在广播信标帧之前收到j个与同一个邻居簇首节点或者邻居簇内节点的相对位置相同的信标帧,0≤j,则部分功能的新节点广播的信标帧中的内部ID为j。内部ID可有效区分与同一个节点相对位置相同的多个部分功能的新节点,从而实现提高地址配置的成功率,确保地址的唯一性。

本发明所述方法中,如果部分功能的新节点收到簇首节点广播的信标帧,则选择从簇ID有效位长度最小的邻居簇首节点获取地址,如果部分功能的新节点没有收到簇首节点广播的信标帧但是收到了簇内节点广播的信标帧,则选择从节点ID有效位长度最小的邻居簇内节点获取地址;部分功能的新节点获取与邻居簇首节点或者邻居簇内节点的相对位置,广播信标帧,信标帧负载为部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置、部分功能的新节点的内部ID以及请求加入簇的簇首节点的簇ID。

部分功能的新节点从邻居簇首节点获取IPv6地址的初始化过程包括如下步骤:

步骤201:开始。

步骤202:部分功能的新节点收到邻居簇首节点广播的信标帧后,获取自己与邻居簇首节点的相对位置,并广播信标帧,信标帧负载为自己与邻居簇首节点的相对位置、邻居簇首节点的簇ID、到达簇首节点的距离h以及部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF,本发明中,簇内节点的节点ID的设置范围为1-0xFFFE,0xFFFF专门用于部分功能的新节点使用,目的是区分部分功能的新节点以及簇内节点。

步骤203:邻居簇首节点收到负载为自己的簇ID的信标帧后,计算广播这些信标帧的部分功能的新节点的权重并由大到小进行递减排序,如果权重相同的节点,则按照内部ID由小到大递增排序;然后广播信标帧,信标帧负载为排序后的部分功能的新节点的相对位置,同时记录下已分配的节点ID集合。

步骤204:部分功能的新节点收到邻居簇首节点的信标帧后,查看自己与邻居簇首节点的相对位置在信标帧中的位置y,然后部分功能的新节点将节点ID的有效位长度设置为(h+1)×k,前h×k比特位的值等于邻居簇首节点的节点ID值,后k比特位的值设置为y,部分功能的新节点将邻居簇首节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点,广播信标帧。

步骤205:重复步骤202至步骤204,直到所有部分功能的新节点获取IPv6地址并且转变为簇内节点。

步骤206:结束。

上述地址初始化算法在网络启动时执行,簇内节点无需地址重复检测即可从邻居簇首节点获取具有全球唯一性的IPv6地址。由于上述地址初始化过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

部分功能的新节点从邻居簇内节点获取IPv6地址的初始化过程包括如下步骤:

步骤701:开始。

步骤702:部分功能的新节点收到邻居簇内节点广播的信标帧后,获取与邻居簇内节点的相对位置,并广播信标帧,信标帧负载为部分功能的新节点与邻居簇内节点的相对位置、邻居簇内节点的簇ID和节点ID,部分功能的新节点到达要加入簇的簇首节点的距离h和部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF,本发明中,簇内节点的节点ID的设置范围为1-0xFFFE,0xFFFF专门用于部分功能的新节点使用,目的是区分部分功能的新节点以及簇内节点。

步骤703:邻居簇内节点收到负载为自己的簇ID和节点ID的信标帧后,计算广播所述信标帧的部分功能的新节点的权重,并由大到小进行递减排序,对于权重相同的节点,则按照内部ID由小到大递增排序;然后广播信标帧,信标负载为排序后的部分功能的新节点的相对位置,同时记录下已分配的节点ID集合。

步骤704:部分功能的新节点收到邻居簇内节点的信标帧后,查看自己与邻居簇内节点的相对位置在信标帧中的位置y,然后部分功能的新节点将节点ID的有效位长度设置为(h+1)×k,前h×k比特位的值等于邻居簇内节点的节点ID值,后k比特位的值设置为y,部分功能的新节点将邻居簇内节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点,广播信标帧。

步骤705:重复步骤702至步骤704,直到所有部分功能的新节点获取IPv6地址并且转变为簇内节点。

步骤706:结束。

上述地址初始化算法在网络启动时执行,簇内节点无需地址重复检测即可从邻居簇内节点获取具有全球唯一性的IPv6地址。由于上述地址初始化过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

本发明所述方法中,地址初始化过程结束后,簇首节点广播的信标帧为未分配簇ID的集合,自己的簇ID有效长度c1,自己的子节点增加的比特长度c以及未分配节点ID的集合,簇首节点的子节点为其他簇首节点。

地址初始化过程结束后,如果全功能的新节点接收到多个邻居簇首节点广播的信标帧,则选择从未分配簇ID集合长度最大的邻居簇首节点获取地址,包括如下步骤:

步骤301:开始。

步骤302:全功能的新节点广播信标帧,信标帧负载为与邻居簇首节点的相对位置,邻居簇首节点的簇ID,信标帧的源地址为0xFF,本发明中,簇首节点的簇ID的设置范围为1-0xFE,0xFF专门用于全功能的新节点使用,目的区分全功能的新节点以及簇首节点。

步骤303:邻居全功能的新节点收到全功能的新节点的信标帧后,邻居全功能的新节点判断它与邻居簇首节点的相对位置与接收到的信标帧中的相对位置是否相同,如果是,进行步骤304,否则进行步骤305。

步骤304:邻居全功能的新节点转入休眠状态。

步骤305:邻居簇首节点收到n1个全功能的新节点的信标帧,将n1个全功能的新节点的权重由大到小进行递减排序,更新未分配簇ID集合,即从未分配簇ID原来集合中去除前n1个最小的元素,然后广播信标帧,信标帧负载为排序后的n1个全功能的新节点的相对位置以及需要增加的比特长度c。

步骤306:全功能的新节点收到邻居簇首节点的信标帧后,查看自己与邻居簇首节点相对位置在信标帧中的位置x,判断位置x是否大于邻居簇首节点原来的未分配簇ID集合长度,如果是进行步骤307,否则进行步骤308。

步骤307:全功能的新节点重新选取邻居簇首节点获取地址,进行步骤309。

步骤308:全功能的新节点将簇ID的有效位长度设置为c1+c,前c1比特位的值等于邻居簇首节点的簇ID值,后c比特位的值设置为邻居簇首节点未分配簇ID集合中第x个最小未分配的簇ID,然后将簇ID与邻居簇首节点的全局路由前缀相结合获取IPv6地址,同时将自己标记为簇首节点,将邻居簇首节点标记为父节点。

步骤309:结束。

通过上述算法,全功能的新节点无需地址重复检测即可从邻居簇首节点获取具有全球唯一性的IPv6地址。由于上述地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

本发明所述方法中,地址初始化过程结束后,簇内节点广播的信标帧为已分配节点ID的集合以及到达本簇簇首节点的距离;

地址初始化过程结束后,如果部分功能的新节点接收到多个邻居簇首节点或者邻居簇内节点广播的信标帧,则选择从未分配节点ID集合长度最大的邻居簇首节点或者邻居簇内节点获取地址,包括如下步骤:

步骤401:开始。

步骤402:部分功能的新节点广播信标帧,信标帧负载为部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置,邻居簇首节点的簇ID,或者邻居簇内节点的簇ID和节点ID,以及部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF,本发明中,簇内节点的节点ID的设置范围为1-0xFFFE,0xFFFF专门用于部分功能的新节点使用,目的是区分部分功能的新节点以及簇内节点。

步骤403:如果邻居簇首节点或者邻居簇内节点收到n3个部分功能的新节点广播的信标帧,且信标帧负载的簇ID以及节点ID与自己的簇ID和节点ID都相同,那么邻居簇首节点或者邻居簇内节点将n3个部分功能的新节点的权重由大到小进行递减排序,如果权重相同,则按照内部ID由小到大递增排序,,然后广播信标帧,信标帧负载为排序后的n3个部分功能的新节点的相对位置,最后更新未分配节点ID集合,即去除未分配节点ID集合中前n3个最小的元素。

步骤404:部分功能的新节点收到邻居簇首节点或者邻居簇内节点的信标帧后,查看自己与邻居簇首节点或者邻居簇内节点相对位置在信标帧中的位置y,判断位置y是否大于邻居簇首节点或者邻居簇内节点原来未分配节点ID集合的长度,如果是,进行步骤405,否则进行步骤406。

步骤405:部分功能的新节点重新选取邻居簇首节点或者邻居簇内节点获取地址,进行步骤407。

步骤406:部分功能的新节点将节点ID的有效位设置为(h+1)×k,其中h×k为邻居簇首节点或者邻居簇内节点的节点ID的比特长度,部分功能的新节点将前h×k比特位的值设置为邻居簇首节点或者邻居簇内节点的节点ID,后k个比特位的值设置为邻居簇首节点或者邻居簇内节点未分配节点ID集合中第y个最小未分配的节点ID;部分功能的新节点将邻居簇首节点或者邻居簇内节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点。

步骤407:结束。

通过上述算法,部分功能的新节点无需地址重复检测即可从邻居簇首节点或者邻居簇内节点获取具有全球唯一性的IPv6地址。由于上述地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

本发明所述方法中,簇内节点在无线传感器网络内任意移动,它距离簇首节点的距离也频繁变化;簇内节点广播的信标帧负载包括与本簇簇首节点的距离参数;如果簇内节点能收到本簇簇首节点广播的信标帧,则距离参数值为1,否则它选择本簇簇内节点广播的具有最小距离参数的信标帧,并将该距离值加1作为自己的距离参数值;

簇内节点与IPv6互联网节点进行通信的路由算法包括以下步骤:

步骤501:开始。

步骤502:簇内节点判断自己的距离参数是否为1,如果是,进行步骤503,否则进行步骤504。

步骤503:簇内节点直接将数据消息传给本簇簇首节点,进行步骤508。

步骤504:簇内节点将数据消息发送给比自己距离参数值小的本簇邻居簇内节点;

步骤505:本簇邻居簇内节点收到数据消息后,记录到达簇内节点的路由路径,判断自己距离参数是否为1,如果是,进行步骤506,否则进行步骤507。

步骤506:邻居簇内节点直接将数据消息传给本簇簇首节点,进行步骤508。

步骤507:邻居簇内节点将数据消息发送给比自己距离参数值小的本簇的另一个邻居簇内节点,进行步骤505。

步骤508:本簇簇首节点收到数据消息后,记录到达簇内节点的路由路径,然后将数据消息传给其父节点,父节点再将数据消息传给它的父节点,直到数据消息到达接入路由器。

步骤509:接入路由器将数据消息发送到IPv6互联网,最后,该数据消息到达目的IPv6互联网节点。

步骤510:IPv6互联网节点返回的数据消息首先到达接入路由器,接入路由器选择与目的簇ID最匹配的下一跳簇首节点,将数据消息发送到下一跳簇首节点;下一跳簇首节点收到消息后将数据消息发送给与目的簇ID最大匹配的下一跳簇首节点,直到数据消息最终到达目的簇内节点所在簇的簇首节点。

步骤511:簇首节点收到数据消息后,判断目的簇内节点是否在其一跳范围内,即距离参数是否为1,如果是,进行步骤512,否则进行步骤513。

步骤512:簇首节点直接将数据消息传给目的簇内节点,进行步骤514。

步骤513:簇首节点根据记录的到达簇内节点的路由信息将数据消息路由到目的簇内节点。

步骤514:结束。

本发明在地址配置的过程中同时实现了路由路径的建立,即簇内节点与IPv6节点的路由路径自动建立,无需路由发现过程即可实现通信,因此降低了通信延迟和代价。

本发明所述方法中,如果簇首节点没有收到父节点的信标帧,则判定父节点失效,同时簇首节点将自己标记为全功能的新节点并重新获取IPv6地址;如果簇首节点失效,现在距离参数为1的簇内节点则无法收到簇首节点的信标帧,所述簇内节点将距离参数更新为0,广播信标帧,然后将自己标记为部分功能的新节点;其他距离参数大于1的簇内节点收到距离参数为0的信标帧后,判定簇首节点失效,同样将距离参数更新为0,广播信标帧,然后将自己标记为部分功能的新节点;直到整个簇的簇内节点都转变为部分功能的新节点。

如果簇首节点有子节点,但是没有收到子节点的信标帧,则认为子节点失效,同时将子节点占用的簇ID加入到未分配簇ID集合。簇首节点的子节点是其他簇首节点。

外部接入节点与所有簇首节点构建成一个树状结构,外部接入路由器为树状结构的根节点,簇首节点之间构建为父子关系,或者子孙关系。

上述过程可以实现簇ID的回收,从而确保地址配置的成功率。

本发明所述方法中,簇内节点脱离所在簇后,重新将自己标记为部分功能的新节点同时加入一个新的簇获取IPv6地址。

如果部分功能的新节点的所有邻居簇首节点或者邻居簇内节点的未分配节点ID集合为空,那么部分功能的新节点选择一个邻居簇首节点并请求节点ID回收操作,包括以下步骤:

步骤601:开始。

步骤602:部分功能的新节点向邻居簇首节点发送信标帧,消息源地址为0xFF,消息负载为空。

步骤603:邻居簇首节点收到部分功能的新节点发送的消息负载为空的信标帧,邻居簇首节点在簇内广播信标帧,信标帧负载为空。

步骤604:本簇簇内节点收到本簇簇首节点的负载为空的信标帧后,向本簇簇首节点返回信标帧,信标帧负载为未分配节点ID集合。

步骤605:簇首节点获取簇内节点的为分配节点ID集合后,将脱离本簇或者失效的簇内节点占用的节点ID作为信标帧的负载再次分配给簇内节点,簇内节点收到簇首节点的信标帧后,将再次分配的节点ID加入到未分配节点ID集合中,实现地址回收。

步骤606:结束。

节点ID回收操作结束后,部分功能的新节点可以从邻居簇首节点或者邻居簇内节点获取具有全球唯一性的IPv6地址,因此上述过程有效实现了节点ID的回收,从而确保地址配置的成功率。

有益效果:本发明提供了一种基于簇的6LoWPAN无线传感器网络地址配置方法,由于无线传感器网络节点同时具有主机和路由器两个身份,因此导致无线传感器网络体系结构和传统网络体系结构不同,所以目前传统网络中的IPv6地址配置方案无法应用到无线传感器网络中,迫切需要一种适合无线传感器网络使用的地址配置方案。在本发明中,簇首节点或者簇内节点无需地址重复检测即可从邻居节点获取具有全球唯一性的IPv6地址。由于地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟,提高了地址配置效率。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的6LoWPAN无线传感器网络拓扑结构示意图。

图2为本发明所述IPv6地址结构示意图。

图3为本发明所述全功能的新节点地址初始化流程示意图。

图4为本发明所述部分功能的新节点从邻居簇首节点获取地址的初始化流程示意图。

图5为本发明所述部分功能的新节点从邻居簇内节点获取地址的初始化流程示意图。

图6为本发明所述全功能的新节点地址配置流程示意图。

图7为本发明所述部分功能的新节点地址配置流程示意图。

图8为本发明所述簇内节点与IPv6互联网节点通信流程示意图。

图9为本发明所述节点ID回收的流程示意图。

具体实施方式:

本发明提供了一种基于簇的6LoWPAN无线传感器网络地址配置方法,由于无线传感器网络节点同时具有主机和路由器两个身份,因此导致无线传感器网络体系结构和传统网络体系结构不同,所以目前传统网络中的IPv6地址配置方案无法应用到无线传感器网络中,迫切需要一种适合无线传感器网络使用的地址配置方案。在本发明中,簇首节点或者簇内节点无需地址重复检测即可从邻居节点获取具有全球唯一性的IPv6地址。由于地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟,提高了地址配置效率。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

图1为本发明所述的6LoWPAN无线传感器网络拓扑结构示意图。所述6LoWPAN无线传感器网络通过一个外部接入路由器1与IPv6互联网相连;6LoWPAN无线传感器网络包含三类节点:簇首节点2,簇内节点3和新节点4;簇首节点3为已经配置IPv6地址的全功能节点,一个外部接入节点(即外部接入路由器)1与所有簇首节点2构建成一个树状结构,外部接入路由器1为树状结构的根节点;簇内节点3为已经配置IPv6地址的部分功能节点,新节点4为没有配置IPv6地址的全功能节点或者部分功能节点;全功能节点为固定节点,部分功能节点为移动节点;6LoWPAN无线传感器网络划分为一个以上的簇5,每个簇5包括一个簇首节点2和一个以上的簇内节点3;簇首节点2有两个通信半径,即簇内通信半径6和簇间通信半径7,簇内通信半径6是簇首节点2与簇内节点3通信的半径,簇间通信半径7是两个簇首节点2之间通信的半径,簇间通信半径7大于簇内通信半径6;簇内节点3与本簇簇首节点2的最大距离长度为H个簇内通信半径6,其中,H为大于1的正整数。

H值由簇内通信半径以及网络部署有关,一般情况下以区域来定义H值,例如一个商店的半径为500米,簇内通信半径为100m,那么H值可以设置为5,这样一个簇可以覆盖商店的区域。

上述基于多跳簇的体系结构可以有效降低簇内节点的地址配置频率,从而降低簇内节点地址配置总代价和延迟。

图2为本发明所述IPv6地址结构示意图。6LoWPAN无线传感器网络节点的IPv6地址包括三部分,第一部分是全局路由前缀,一个6LoWPAN无线传感器网络中所有节点的全局路由前缀都相同;第二部分为簇ID,一个簇中所有簇内节点的簇ID都相同,其值等于本簇簇首节点的簇ID,第三部分为节点ID,它唯一表示一个簇内节点;簇首节点的节点ID为0。

簇内节点与本簇簇首节点的距离每增加一跳,簇内节点的节点ID长度增加k比特,k为大于0的正整数;如果一个簇内节点与本簇簇首节点的距离为h跳,1≤h≤H,那么簇内节点的节点ID的长度为k和h的乘积。

上述地址结构为分层地址结构,可以有效降低簇内节点的地址有效长度,从而降低传输代价和延迟。

接入路由器的IPv6地址预先配置;在初始状态下,全功能节点和部分功能节点均为新节点;6LoWPAN无线传感器网络中的节点定期广播信标帧;

如果节点X收到节点Y广播的信标帧,节点X采用定位算法获取与节点Y的相对位置(θ,d),其中θ为节点X与节点Y之间的角度,θ大于或者等于0度且小于360度,d为节点X与节点Y的距离。

定位算法可采用到达角度定位算法(Angle of Arrival)和信号强度定位算法(Received signal strength indicator)等。

如果节点X1与节点Y之间的角度为θ1,距离为d1,节点X2与节点Y之间的角度为θ2,距离为d2,那么节点Y采用下述算法计算节点X1和节点X2的权重。

1)如果距离d1小于距离d2,则节点X1的权重大于节点X2,否则,如果距离d1大于距离d2,节点X1的权重小于节点X2。

2)如果距离d1等于距离d2且角度θ1小于角度θ2,则节点X1的权重大于节点X2,如果距离d1等于距离d2且角度θ1大于角度θ2,则节点X1的权重小于节点X2。

3)如果距离d1等于距离d2且角度θ1等于角度θ2,那么节点X1的权重等于节点X2。

图3为本发明所述全功能的新节点地址初始化流程示意图。簇首节点地址初始化过程由外部接入路由器发起,全功能的新节点配置IPv6地址且转变为簇首节点的过程包括以下步骤:

步骤101:开始;

步骤102:全功能的新节点收到邻居接入路由器或者邻居簇首节点广播的信标帧后,获取与邻居接入路由器或者邻居簇首节点的相对位置,并广播信标帧,信标帧负载为与邻居接入路由器或者邻居簇首节点的相对位置、邻居接入路由器或者邻居簇首节点的簇ID,信标帧的源地址为0xFF,本发明中,簇首节点的簇ID的设置范围为1-0xFE,0xFF专门用于全功能的新节点使用,目的区分全功能的新节点以及簇首节点;

步骤103:邻居全功能的新节点收到步骤102中全功能的新节点的信标帧后,判断自己与邻居接入路由器或者邻居簇首节点的相对位置是否与信标帧中的相对位置相同,如果是,进行步骤104,否则进行步骤105;

步骤104:邻居全功能的新节点转入休眠状态;

步骤105:如果邻居接入路由器或者邻居簇首节点收到n个全功能的新节点的信标帧,则将所有n个全功能的新节点的权重由大到小进行递减排序,并广播信标帧,信标帧负载为n个排序后的相对位置,同时记录下已分配簇ID的集合和全功能的新节点的簇ID需要增加的比特长度c,2c-1-2<n≤2c-2;

步骤106:全功能的新节点收到邻居接入路由器或者邻居簇首节点的信标帧后,根据n值选择增加的比特长度c,并查看自己与邻居接入路由器或者邻居簇首节点的相对位置在信标帧中的位置x,全功能的新节点将簇ID的有效长度设置为c1+c,c1为邻居接入路由器或者邻居簇首节点簇ID的长度,前c1个比特的值等于邻居接入路由器或者邻居簇首节点的簇ID值,后c个比特的值设置为x,然后将生成的簇ID与邻居接入路由器或者邻居簇首节点的全局路由前缀相结合获取IPv6地址,同时全功能的新节点将自己标记为簇首节点,将邻居接入路由器或者邻居簇首节点标记为父节点,广播信标帧,信标帧负载为簇ID的有效长度;

步骤107:重复步骤102至步骤106,直到所有全功能的新节点获取IPv6地址并且转变为簇首节点;

步骤108:结束。

上述地址初始化算法在网络启动时执行,簇首节点无需地址重复检测即可获取具有全球唯一性的IPv6地址。由于上述地址初始化过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

图4为本发明所述部分功能的新节点从邻居簇首节点获取地址的初始化流程示意图。如果在一个节点的传输半径范围内有两个以上部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置相同,则采用内部ID来区分所述部分功能的新节点;所述部分功能的新节点获取内部ID的算法包括以下步骤:

如果部分功能的新节点在广播信标帧之前收到j个与同一个邻居簇首节点或者邻居簇内节点的相对位置相同的信标帧,0≤j,则部分功能的新节点广播的信标帧中的内部ID为j。

内部ID可有效区分与同一个节点相对位置相同的多个部分功能的新节点,从而实现提高地址配置的成功率,确保地址的唯一性。

如果部分功能的新节点收到簇首节点广播的信标帧,则选择从簇ID有效位长度最小的邻居簇首节点获取地址,如果部分功能的新节点没有收到簇首节点广播的信标帧但是收到了簇内节点广播的信标帧,则选择从节点ID有效位长度最小的邻居簇内节点获取地址;部分功能的新节点获取与邻居簇首节点或者邻居簇内节点的相对位置,广播信标帧,信标帧负载为部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置、部分功能的新节点的内部ID以及请求加入簇的簇首节点的簇ID。

部分功能的新节点从邻居簇首节点获取IPv6地址的初始化过程包括如下步骤:

步骤201:开始;

步骤202:部分功能的新节点收到邻居簇首节点广播的信标帧后,获取自己与邻居簇首节点的相对位置,并广播信标帧,信标帧负载为自己与邻居簇首节点的相对位置、邻居簇首节点的簇ID、到达簇首节点的距离h以及部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF,本发明中,簇内节点的节点ID的设置范围为1-0xFFFE,0xFFFF专门用于部分功能的新节点使用,目的是区分部分功能的新节点以及簇内节点;

步骤203:邻居簇首节点收到负载为自己的簇ID的信标帧后,计算广播这些信标帧的部分功能的新节点的权重并由大到小进行递减排序,如果权重相同的节点,则按照内部ID由小到大递增排序;然后广播信标帧,信标帧负载为排序后的部分功能的新节点的相对位置,同时记录下已分配的节点ID集合;

步骤204:部分功能的新节点收到邻居簇首节点的信标帧后,查看自己与邻居簇首节点的相对位置在信标帧中的位置y,然后部分功能的新节点将节点ID的有效位长度设置为(h+1)×k,前h×k比特位的值等于邻居簇首节点的节点ID值,后k比特位的值设置为y,部分功能的新节点将邻居簇首节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点,广播信标帧;

步骤205:重复步骤202至步骤204,直到所有部分功能的新节点获取IPv6地址并且转变为簇内节点;

步骤206:结束。

上述地址初始化算法在网络启动时执行,簇内节点无需地址重复检测即可从邻居簇首节点获取具有全球唯一性的IPv6地址。由于上述地址初始化过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

图5为本发明所述部分功能的新节点从邻居簇内节点获取地址的初始化流程示意图。部分功能的新节点从邻居簇内节点获取IPv6地址的初始化过程包括如下步骤:

步骤701:开始;

步骤702:部分功能的新节点收到邻居簇内节点广播的信标帧后,获取与邻居簇内节点的相对位置,并广播信标帧,信标帧负载为部分功能的新节点与邻居簇内节点的相对位置、邻居簇内节点的簇ID和节点ID,部分功能的新节点到达要加入簇的簇首节点的距离h和部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF,本发明中,簇内节点的节点ID的设置范围为1-0xFFFE,0xFFFF专门用于部分功能的新节点使用,目的是区分部分功能的新节点以及簇内节点;

步骤703:邻居簇内节点收到负载为自己的簇ID和节点ID的信标帧后,计算广播所述信标帧的部分功能的新节点的权重,并由大到小进行递减排序,对于权重相同的节点,则按照内部ID由小到大递增排序;然后广播信标帧,信标负载为排序后的部分功能的新节点的相对位置,同时记录下已分配的节点ID集合;

步骤704:部分功能的新节点收到邻居簇内节点的信标帧后,查看自己与邻居簇内节点的相对位置在信标帧中的位置y,然后部分功能的新节点将节点ID的有效位长度设置为(h+1)×k,前h×k比特位的值等于邻居簇内节点的节点ID值,后k比特位的值设置为y,部分功能的新节点将邻居簇内节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点,广播信标帧;

步骤705:重复步骤702至步骤704,直到所有部分功能的新节点获取IPv6地址并且转变为簇内节点;

步骤706:结束。

上述地址初始化算法在网络启动时执行,簇内节点无需地址重复检测即可从邻居簇内节点获取具有全球唯一性的IPv6地址。由于上述地址初始化过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

图6为本发明所述全功能的新节点地址配置流程示意图。地址初始化过程结束后,簇首节点广播的信标帧为未分配簇ID的集合,自己的簇ID有效长度c1,自己的子节点增加的比特长度c以及未分配节点ID的集合,簇首节点的子节点为其他簇首节点;

地址初始化过程结束后,如果全功能的新节点接收到多个邻居簇首节点广播的信标帧,则选择从未分配簇ID集合长度最大的邻居簇首节点获取地址,包括如下步骤:

步骤301:开始;

步骤302:全功能的新节点广播信标帧,信标帧负载为与邻居簇首节点的相对位置,邻居簇首节点的簇ID,信标帧的源地址为0xFF,本发明中,簇首节点的簇ID的设置范围为1-0xFE,0xFF专门用于全功能的新节点使用,目的区分全功能的新节点以及簇首节点;

步骤303:邻居全功能的新节点收到全功能的新节点的信标帧后,邻居全功能的新节点判断它与邻居簇首节点的相对位置与接收到的信标帧中的相对位置是否相同,如果是,进行步骤304,否则进行步骤305;

步骤304:邻居全功能的新节点转入休眠状态;

步骤305:邻居簇首节点收到n1个全功能的新节点的信标帧,将n1个全功能的新节点的权重由大到小进行递减排序,更新未分配簇ID集合,即从未分配簇ID原来集合中去除前n1个最小的元素,然后广播信标帧,信标帧负载为排序后的n1个全功能的新节点的相对位置以及需要增加的比特长度c;

步骤306:全功能的新节点收到邻居簇首节点的信标帧后,查看自己与邻居簇首节点相对位置在信标帧中的位置x,判断位置x是否大于邻居簇首节点原来的未分配簇ID集合长度,如果是进行步骤307,否则进行步骤308;

步骤307:全功能的新节点重新选取邻居簇首节点获取地址,进行步骤309;

步骤308:全功能的新节点将簇ID的有效位长度设置为c1+c,前c1比特位的值等于邻居簇首节点的簇ID值,后c比特位的值设置为邻居簇首节点未分配簇ID集合中第x个最小未分配的簇ID,然后将簇ID与邻居簇首节点的全局路由前缀相结合获取IPv6地址,同时将自己标记为簇首节点,将邻居簇首节点标记为父节点;

步骤309:结束。

通过上述算法,全功能的新节点无需地址重复检测即可从邻居簇首节点获取具有全球唯一性的IPv6地址。由于上述地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

图7为本发明所述部分功能的新节点地址配置流程示意图。地址初始化过程结束后,簇内节点广播的信标帧为已分配节点ID的集合以及到达本簇簇首节点的距离;

地址初始化过程结束后,如果部分功能的新节点接收到多个邻居簇首节点或者邻居簇内节点广播的信标帧,则选择从未分配节点ID集合长度最大的邻居簇首节点或者邻居簇内节点获取地址,包括如下步骤:

步骤401:开始;

步骤402:部分功能的新节点广播信标帧,信标帧负载为部分功能的新节点与邻居簇首节点或者邻居簇内节点的相对位置,邻居簇首节点的簇ID,或者邻居簇内节点的簇ID和节点ID,以及部分功能的新节点自己的内部ID,信标帧的源地址为0xFFFF,本发明中,簇内节点的节点ID的设置范围为1-0xFFFE,0xFFFF专门用于部分功能的新节点使用,目的是区分部分功能的新节点以及簇内节点;

步骤403:如果邻居簇首节点或者邻居簇内节点收到n3个部分功能的新节点广播的信标帧,且信标帧负载的簇ID以及节点ID与自己的簇ID和节点ID都相同,那么邻居簇首节点或者邻居簇内节点将n3个部分功能的新节点的权重由大到小进行递减排序,如果权重相同,则按照内部ID由小到大递增排序,,然后广播信标帧,信标帧负载为排序后的n3个部分功能的新节点的相对位置,最后更新未分配节点ID集合,即去除未分配节点ID集合中前n3个最小的元素;

步骤404:部分功能的新节点收到邻居簇首节点或者邻居簇内节点的信标帧后,查看自己与邻居簇首节点或者邻居簇内节点相对位置在信标帧中的位置y,判断位置y是否大于邻居簇首节点或者邻居簇内节点原来未分配节点ID集合的长度,如果是,进行步骤405,否则进行步骤406;

步骤405:部分功能的新节点重新选取邻居簇首节点或者邻居簇内节点获取地址,进行步骤407;

步骤406:部分功能的新节点将节点ID的有效位设置为(h+1)×k,其中h×k为邻居簇首节点或者邻居簇内节点的节点ID的比特长度,部分功能的新节点将前h×k比特位的值设置为邻居簇首节点或者邻居簇内节点的节点ID,后k个比特位的值设置为邻居簇首节点或者邻居簇内节点未分配节点ID集合中第y个最小未分配的节点ID;部分功能的新节点将邻居簇首节点或者邻居簇内节点的簇ID、全局路由前缀与自己的节点ID相结合获取IPv6地址,同时将自己标记为簇内节点;

步骤407:结束。

通过上述算法,部分功能的新节点无需地址重复检测即可从邻居簇首节点或者邻居簇内节点获取具有全球唯一性的IPv6地址。由于上述地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟。

图8为本发明所述簇内节点与IPv6互联网节点通信流程示意图。簇内节点在无线传感器网络内任意移动,它距离簇首节点的距离也频繁变化;簇内节点广播的信标帧负载包括与本簇簇首节点的距离参数;如果簇内节点能收到本簇簇首节点广播的信标帧,则距离参数值为1,否则它选择本簇簇内节点广播的具有最小距离参数的信标帧,并将该距离值加1作为自己的距离参数值;

簇内节点与IPv6互联网节点进行通信的路由算法包括以下步骤:

步骤501:开始;

步骤502:簇内节点判断自己的距离参数是否为1,如果是,进行步骤503,否则进行步骤504;

步骤503:簇内节点直接将数据消息传给本簇簇首节点,进行步骤508;

步骤504:簇内节点将数据消息发送给比自己距离参数值小的本簇邻居簇内节点;

步骤505:本簇邻居簇内节点收到数据消息后,记录到达簇内节点的路由路径,判断自己距离参数是否为1,如果是,进行步骤506,否则进行步骤507;

步骤506:邻居簇内节点直接将数据消息传给本簇簇首节点,进行步骤508;

步骤507:邻居簇内节点将数据消息发送给比自己距离参数值小的本簇的另一个邻居簇内节点,返回步骤505;

步骤508:本簇簇首节点收到数据消息后,记录到达簇内节点的路由路径,然后将数据消息传给其父节点,父节点再将数据消息传给它的父节点,直到数据消息到达接入路由器;

步骤509:接入路由器将数据消息发送到IPv6互联网,最后,该数据消息到达目的IPv6互联网节点;

步骤510:IPv6互联网节点返回的数据消息首先到达接入路由器,接入路由器选择与目的簇ID最匹配的下一跳簇首节点,将数据消息发送到下一跳簇首节点;下一跳簇首节点收到消息后将数据消息发送给与目的簇ID最大匹配的下一跳簇首节点,直到数据消息最终到达目的簇内节点所在簇的簇首节点;

步骤511:簇首节点收到数据消息后,判断目的簇内节点是否在其一跳范围内,即距离参数是否为1,如果是,进行步骤512,否则进行步骤513;

步骤512:簇首节点直接将数据消息传给目的簇内节点,进行步骤514;

步骤513:簇首节点根据记录的到达簇内节点的路由信息将数据消息路由到目的簇内节点;

步骤514:结束。

本发明在地址配置的过程中同时实现了路由路径的建立,即簇内节点与IPv6节点的路由路径自动建立,无需路由发现过程即可实现通信,因此降低了通信延迟和代价。

图9为本发明所述节点ID回收的流程示意图。如果簇首节点没有收到父节点的信标帧,则判定父节点失效,同时簇首节点将自己标记为全功能的新节点并重新获取IPv6地址;如果簇首节点失效,现在距离参数为1的簇内节点则无法收到簇首节点的信标帧,所述簇内节点将距离参数更新为0,广播信标帧,然后将自己标记为部分功能的新节点;其他距离参数大于1的簇内节点收到距离参数为0的信标帧后,判定簇首节点失效,同样将距离参数更新为0,广播信标帧,然后将自己标记为部分功能的新节点;直到整个簇的簇内节点都转变为部分功能的新节点;

如果簇首节点有子节点,但是没有收到子节点的信标帧,则认为子节点失效,同时将子节点占用的簇ID加入到未分配簇ID集合。

外部接入节点与所有簇首节点构建成一个树状结构,外部接入路由器为树状结构的根节点,簇首节点之间构建为父子关系,或者子孙关系。

上述过程可以实现簇ID的回收,从而确保地址配置的成功率。

簇内节点脱离所在簇后,重新将自己标记为部分功能的新节点同时加入一个新的簇获取IPv6地址;

如果部分功能的新节点的所有邻居簇首节点或者邻居簇内节点的未分配节点ID集合为空,那么部分功能的新节点选择一个邻居簇首节点并请求节点ID回收操作,包括以下步骤:

步骤601:开始;

步骤602:部分功能的新节点向邻居簇首节点发送信标帧,消息源地址为0xFF,消息负载为空;

步骤603:邻居簇首节点收到部分功能的新节点发送的消息负载为空的信标帧,邻居簇首节点在簇内广播信标帧,信标帧负载为空;

步骤604:本簇簇内节点收到本簇簇首节点的负载为空的信标帧后,向本簇簇首节点返回信标帧,信标帧负载为未分配节点ID集合;

步骤605:簇首节点获取簇内节点的为分配节点ID集合后,将脱离本簇或者失效的簇内节点占用的节点ID作为信标帧的负载再次分配给簇内节点,簇内节点收到簇首节点的信标帧后,将再次分配的节点ID加入到未分配节点ID集合中,实现地址回收;

步骤606:结束。

节点ID回收操作结束后,部分功能的新节点可以从邻居簇首节点或者邻居簇内节点获取具有全球唯一性的IPv6地址,因此上述过程有效实现了节点ID的回收,从而确保地址配置的成功率。

综上所述,本发明提供了一种基于簇的6LoWPAN无线传感器网络地址配置方法,由于无线传感器网络节点同时具有主机和路由器两个身份,因此导致无线传感器网络体系结构和传统网络体系结构不同,所以目前传统网络中的IPv6地址配置方案无法应用到无线传感器网络中,迫切需要一种适合无线传感器网络使用的地址配置方案。在本发明中,簇首节点或者簇内节点无需地址重复检测即可从邻居节点获取具有全球唯一性的IPv6地址。由于地址配置过程由信标帧实现,无需额外代价,因此大幅度降低了地址配置代价和延迟,提高了地址配置效率。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。

本发明提供了一种基于簇的6LoWPAN无线传感器网络地址配置方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

基于簇的6LoWPAN无线传感器网络地址配置方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部