6LoWPAN无线传感器网络系统的实现方法

文档序号:7610235阅读:135来源:国知局
专利名称:6LoWPAN无线传感器网络系统的实现方法
技术领域
本发明涉及ー种网络系统的实现方法,尤其涉及的是ー种6LoWPAN无线传感器网络系统的实现方法。
背景技术
随着下一代互联网的不断成熟和发展,6LoWPAN无线传感器网络已成为未来发展的必然趋势。6LoWPAN无线传感器网络具有以下优势(I) IPv6是下一代互联网的协议标准,6LoWPAN无线传感器网络有助于推动无线传感器网络通信协议的标准化; (2) IPv6的许多技术特点(如地址自动配置、移动性支持、安全性等)对大规模无线传感器网络的自组织管理提供了良好支持;(3)互联网的组网方式可以供无线传感器网络充分借鉴,使其成为无线传感器网络的ー种合理拓展。目前实现6LoWPAN无线传感器网络的关键技术还不成熟,主要表现在以下方面(I)地址自动配置地址自动配置是IPv6的ー个重要技术特色,可以在无人干预的情况下为每个接ロ配置相应的IPv6地址。这一点与无线传感器网络自组织、自配置的设计目标非常吻合。但是,现有的IPv6地址自动配置方式在无线传感器网络中还存在ー些问题,例如有状态地址配置会带来大量的控制消息开销、根据MAC地址生成IPv6地址的无状态地址配置对传感器节点间的路由寻址未带来任何方便,因此针对6LoWPAN无线传感器网络需要建立一种新的IPv6地址自动配置机制;(2)路由方案无线传感器网络与IPv6网络不同,在IPv6网络中,路由器与普通节点之间有数据链路层连接,可以通过一跳到达,而无线传感器节点具有路由器与普通节点双重身份,节点之间没有数据链路层连接,因此在无线传感器网络中需要建立一种新的路由方式实现IPv6节点与传感器节点之间的通信。

发明内容
发明目的本发明所要解决的技术问题是针对现有技术的不足,提供ー种6LoffPAN无线传感器网络系统的实现方法。技术方案本发明公开了ー种6LoWPAN无线传感器网络系统的实现方法,所述系统包括四种传感器节点新节点、接入节点、簇首节点以及簇内节点;所述新节点为没有标识为接入节点、没有标识为簇首节点或者没有标识为簇内节点的传感器节点;所述接入节点包括预设接入节点、普通接入节点和虚拟接入节点;所述预设接入节点连接无线传感器网络与IPv6网络,且为固定节点,其IPv6地址为预先设定,为接入节点和虚拟接入节点分配IPv6地址;所述普通接入节点连接无线传感器网络与IPv6网络,且为固定节点,IPv6地址从预设接入节点获取所述虚拟接入节点为没有与IPv6网络连接且IPv6地址结构与接入节点的IPv6地址结构相同的固定簇首节点;所述簇首节点包括固定簇首节点和移动簇首节点;所述固定簇首节点实现路由转发功能,并为本簇簇内节点分配IPv6地址;所述移动簇首节点与本簇簇内节点作为ー个移动单元进行移动,并为本簇簇内节点分配IPv6地址;所述接入节点和固定簇首节点具有路由转发功能,ー个接入节点与ー个以上固定簇首节点形成树状结构,接入节点为根节点,固定簇首节点为中间节点或叶子节点;所述6LoffPAN无线传感器网络包括ー个以上树状结构,所述树状结构构成所述6LoWPAN无线传感器网络的路由骨干网络;所述簇内节点用于采集数据,数据通过由接入节点和固定簇首节点形成的树状结构进行路由;所述6LoWPAN无线传感器网络包括ー个以上的簇,每个簇包括ー个簇首节点和若干个簇内节点,簇内节点在簇首节点的一跳范围内,拓扑结构为星形;由移动簇首节点构建的簇作为一个移动单元进行移动,且簇在移动时,簇内的移动簇首节点与簇内节点的关系稳定;所述固定簇首节点实现路由转发功能,并为本簇簇内节点分配IPv6地址;已经获得IPv6地址的固定簇首节点或接入节点,为未获得IPv6地址的簇首节点分配IPv6地址;本发明所述方法中,所述接入节点、簇首节点及簇内节点的IPv6地址由四个部分组成第一部分是全局路由前綴,ー个6LoWPAN无线传感器网络中所有节点的IPv6地址的全局路由前缀都相同,其长度为64比特;第二部分是i比特长度的接入节点ID,接入节点ID唯一标识以其为根节点的树状结构,树状结构中所有固定簇首节点的IPv6地址的接入节点ID都相同,其值等于相同树状结构中接入节点的IPv6地址的接入节点ID ;第三部分为n比特长度的簇ID,簇ID唯一标识ー个簇,一个簇中所有簇内节点的IPv6地址的簇ID都相同,其值等于相同簇簇首节点的IPv6地址的簇ID ;第四部分为簇内节点ID,簇内节点ID唯一标识ー个簇的簇内节点;所述接入节点IPv6地址的簇ID与簇内节点ID为0,簇首节点IPv6地址的簇内节点ID为0 ;所述普通接入节点及虚拟接入节点IPv6地址的接入节点ID由预设接入节点分配,固定簇首节点及移动簇首节点IPv6地址的簇首ID由接入节点或固定簇首节点分配;簇内节点IPv6地址的簇内节点ID由所在簇簇首节点分配。本发明所述方法中,所述IPv6地址的簇ID划分为多个等级,i比特为ー个等级,接入节点的等级为0,接入节点的子节点的等级为I ;簇ID的有效比特长度n为表示ー个等级的i比特与簇ID所处等级I的乘积;处于等级X的父节点与其子节点的簇ID的前y比特相同,y为表示一个等级的i比特与父节点的等级X的乘积。本发明所述方法中,初始状态下,所有新节点保存ー个连通度參数,其初始值为0,当连通度參数大于一定阈值n时,新节点将自己标识为簇首节点;新节点定时在ー跳范围内广播Beacon消息以示存在,新节点转换为簇首节点或者转换为簇内节点的步骤如下步骤301:开始;步骤302 :新节点X在一跳范围内广播beacon消息以示存在;
步骤303 :接收到beacon消息的传感器节点Y判断自己是否标识为簇内节点,如果是,进行步骤304,否则进行步骤305 ;步骤304 :放弃处理此beacon消息,进行步骤318 ;步骤305 :传感器节点Y将新节点X加入到簇内节点列表;步骤306 :传感器节点Y判断自己是否标识为簇首节点,如果是,进行步骤307,否则进行步骤309 ;步骤307 :传感器节点Y判断自己是否有足够的地址空间可供分配,如果是,进行步骤308,否则进行步骤318 ;
步骤308 :传感器节点Y向新节点X发送邀请加入簇的消息,进行步骤312 ;步骤309 :传感器节点Y将连通度參数递增I ;步骤310 :传感器节点Y判断连通度參数是否等于阈值,如果是,进行步骤311,否则进行步骤318 ;步骤311 :传感器节点Y向簇内节点列表中的姆个新节点发送邀请加入簇的消息;步骤312 :收到消息的节点判断自己是否仍然标识为新节点且没有向其他簇首节点返回响应消息,如果是,进行步骤313,否则进行步骤318 ;步骤313 :收到邀请消息的节点向传感器节点Y返回一个响应消息;步骤314 :传感器节点Y判断是否标识为簇首节点,如果是,进行步骤316,否则进行步骤315 ;步骤315 :传感器节点Y将自己标识为簇首节点,并进行步骤316 ;步骤316 :传感器节点Y向返回响应消息的节点返回一个确认消息;步骤317 :新节点收到传感器节点Y的确认消息后,将自己标识为簇内节点;步骤318:结束。本发明所述方法中,连接无线传感器网络和IPv6网络的新节点通过下述步骤转换为普通接入节点并获取IPv6地址步骤401:开始;步骤402 :新节点判断自己是否为连接无线传感器网络和IPv6网络的节点,如果是,则进行步骤403,否则进行步骤409 ;步骤403 :新节点随机选择ー个接入节点ID构建为链路地址,并以此链路地址作为源地址向预设接入节点发送地址请求消息;步骤404 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,判断地址请求消息中源链路地址中的接入节点ID为已分配状态,如果是,进行步骤405,否则进行步骤406 ;步骤405 :预设接入节点向新节点返回ー个无效地址消息,进行步骤407 ;步骤406 :预设接入节点向新节点返回ー个有效地址消息,同时将此接入节点ID标记为已分配,进行步骤407;步骤407 :新节点判断收到的消息是否为无效地址消息,如果是,返回步骤403,否则进行步骤408 ;步骤408 :新节点将随机选择的接入节点ID与全局路由前缀形结合作为自己的接入节点ID,同时将自己标识为普通接入节点;步骤409:结束。本发明所述方法中,簇首节点通过下述步骤获取IPv6地址步骤501:开始;步骤502 :簇首节点判断自己是否为连接无线传感器网络和IPv6网络的节点,如果是,进行步骤516,否则进行步骤503 ;步骤503 :簇首节点在一跳范围内地址请求消息; 步骤504 :簇首节点一跳范围内的邻居固定簇首节点或者邻居接入节点收到地址请求消息后,判断它是否有地址资源可供分配,如果有,进行步骤506,否则进行步骤505 ;步骤505 :邻居固定簇首节点或邻居接入节点放弃处理地址请求消息,进行步骤507 ;步骤506 :邻居固定簇首节点或邻居接入节点向簇首节点返回一个地址响应消息,消息负载为预分配的簇ID ;步骤507 :在预定时间内,簇首节点是否收到地址响应消息,如果是,进行步骤508,否则进行步骤513 ;步骤508 :簇首节点在预分配的簇ID中选择等级最小的簇ID作为自己的簇ID,将自己的簇ID与接入节点ID和网络路由前缀相结合形成自己的IPv6地址,同时将返回此簇ID的节点作为父节点,并向父节点返回一个确认消息;步骤509 :簇首节点是否为移动节点,如果是,进行步骤511,否则进行步骤510 ;步骤510 :簇首节点将自己标识为固定簇首节点,进行步骤512 ;步骤511 :簇首节点将自己标识为移动簇首节点;步骤512 :父节点收到簇首节点的确认消息后,将簇首节点的簇ID标识为已分配状态,进行步骤516 ;步骤513 :簇首节点向预设接入节点发送地址请求消息;步骤514 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,选择ー个未分配的接入节点ID发送给新节点,同时将此接入节点ID设置为已分配;步骤515 :簇首节点收到预设接入节点分配的接入节点ID后,将此接入节点ID作为自己的接入节点ID,与网络路由前缀相结合形成自己的IPv6地址,同时将自己标识为虚拟接入节点;步骤516:结束。本发明所述方法中,所述簇内节点通过下述步骤获取IPv6地址步骤601:开始;步骤602 :簇内节点向所在簇的簇首节点发送地址请求消息;步骤603 :簇首节点收到地址请求消息后,查看自己IPv6地址结构中的簇内成员ID的比特长度是否大于预定值,如果是,进行步骤604,否则进行步骤609 ;步骤604 :簇首节点随机选择ー个簇内成员ID并在簇内广播此簇内成员ID ;步骤605 :簇内节点收到广播的簇内成员ID后,判断其IPv6地址的簇内成员ID是否与广播的簇内成员ID相同,如果是,进行步骤606,否则进行步骤607 ;步骤606 :簇内成员ID与广播的簇内成员ID相同的簇内节点向簇首节点返回一个地址无效消息;步骤607 :在规定时间内,簇首节点是否收到本簇簇内节点返回的地址无效消息,如果是,返回步骤604,否则进行步骤608 ; 步骤608 :簇首节点将随机选择的簇内成员ID返回给簇内节点,进行步骤610 ;步骤609 :簇首节点查看簇内成员ID分配记录表,将最小的未分配的簇内成员ID返回给簇内节点,同时将此簇内成员ID标识为已分配,进行步骤610 ;步骤610 :簇内节点收到簇首节点分配的簇内成员ID后,将此簇内成员ID与全局路由前缀、接入节点ID及簇ID相结合,形成自己的IPv6地址;步骤611:结束。本发明所述方法中,父节点定时向其子节点发送beacon消息以示自己的存在,如果簇ID处于等级11的子节点在规定时间内没有收到父节点的beacon消息,则判定其父节点失效,并进行如下处理步骤701:开始;步骤702 :子节点在一跳范围内地址请求消息;步骤703:子节点ー跳范围内的固定簇首节点或者接入节点收到地址请求消息后,判断它是否有地址资源可供分配,如果有,进行步骤705,否则进行步骤704 ;步骤704 :子节点ー跳范围内的固定簇首节点或者接入节点放弃处理地址请求消息,进行步骤706 ;步骤705 :簇首节点或接入节点向子节点返回ー个地址响应消息,消息负载为预分配的簇ID ;步骤706 :在预定时间内,子节点是否收到地址响应消息,如果是,进行步骤707,否则进行步骤709 ;步骤707 :子节点在预分配的簇ID中选择等级最小的簇ID作为自己的簇ID,将自己的簇ID与接入节点ID和网络路由前缀相结合形成自己的IPv6地址,同时将返回此簇ID的节点作为父节点,井向父节点返回一个确认消息;步骤708 :父节点收到子节点的确认消息后,将子节点的簇ID标识为已分配状态,进行步骤712 ;步骤709 :子节点向预设接入节点发送地址请求消息;步骤710 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,选择ー个未分配的接入节点ID发送给子节点,同时将此接入节点ID设置为已分配;步骤711 :子节点收到预设接入节点分配的接入节点ID后,将此接入节点ID作为自己的接入节点ID,与网络路由前缀相结合形成自己的IPv6地址,同时将自己标识为虚拟接入节点;步骤712 :子节点将新获取的接入节点ID或者簇ID组成新的IPv6地址,并向自己的子孙节点广播新的IPv6地址;步骤713 :原来等级为13的子孙节点收到子节点发送的IPv6地址后,首先计算出子节点新的簇ID所处的等级12,然后将自己簇ID所处的等级调整为12+ (13-11)并修改簇ID有效长度,其中前12 i比特为子节点的簇ID ;步骤714 :子孙节点判断其簇ID等级12+(13-11)是否大于(64_i)/i,如果是,进行步骤715,否则进行步骤717 ;步骤715 :子孙节点向子节点返回一个地址无效消息;步骤716 :子节点收到子孙节点返回的无效消息,进行步骤702 ;步骤717 :子孙节点保留原来簇ID后边的(13-11) -i比持,然后将全局网络前綴、接入节点ID及簇首ID相结合形成新的IPv6地址;步骤718 :子孙节点在所在簇内广播新的IPv6地址;步骤719 :簇内节点收到等级处于12+(13-11)的簇首节点新的IPv6地址后,首先根据其簇ID的长度计算出簇内成员ID的有效长度64-i-(12+(13-ll)) i ;
步骤720 :簇内节点判断其簇内成员ID是否能用有效长度64-i-(12+(13_ll)) -i来表示,如果是,进行步骤722,否则进行步骤721 ;步骤721 :簇内节点向簇首节点申请并获取新的簇内节点ID,进行步骤723 ;步骤722 :簇内节点的簇内ID成员不变;步骤723 :簇内节点将簇内成员ID与簇首节点的全局路由前缀、接入节点ID、簇ID相结合形成新的IPv6地址;步骤724:结束。本发明所述方法中,树状结构中的固定簇首节点和接入节点保存一个邻居簇首节点记录表,用以记录一跳范围内的固定簇首节点或接入节点的IPv6地址;固定簇首节点或接入节点收到数据包时,首先查看数据包的目的地址是否在其邻居簇首节点记录表内,如果包含在其邻居簇首节点记录表内,则将数据包直接路由到目的簇首节点,否则按照树状结构进行路由。有益效果本发明提供了 6LoWPAN无线传感器网络系统的实现方法,在所述系统中,6LoWPAN无线传感器网络中的节点拥有全球唯一的IPv6地址,能够与IPv6网络中的节点实现点到点通信。本发明中,当子节点发现父节点失效时,它以自己为根节点的子树为ー个整体重新申请IPv6地址,节省了地址配置功耗,缩短了地址配置延迟。此外,树状结构中的固定簇首节点和接入节点收到数据包时,如果数据包的目的地址是其一跳范围内的邻居簇首节点,它则直接将数据包发送到目的簇首节点,降低了路由功耗,缩短了路由时间。本发明扩展了无线传感器网络的应用空间,可将6LoWPAN无线传感器网络系统应用于农业现代化、医疗及环境保护等多个领域。在农业现代化领域,可将全IP无线传感器网络应用于现代设施农业环境监测与控制,农业劳动者不受地理位置限制,通过IPv6网络可随时实现与农业环境中传感器节点的点到点通信,即农业劳动者通过IPv6地址可随时访问农业环境中某一特定区域的传感器节点以获取温度、湿度等环境參数,并通过IPv6地址及时向某一特定控制传感器节点发送控制命令以驱动温度、湿度等调节装置,实现对农业环境的实时控制,确保农作物健康生长。在医疗健康领域,可将全IP无线传感器网络应用于患者病情的监测与控制,患者和医生不受地理位置限制,医生通过IPv6网络可随时实现与患者携帯的传感器节点的点到点通信,即医生通过IPv6地址可随时访问某一特定患者携帯的传感器节点以获取该患者的病情參数,并通过IPv6地址及时向该患者携帯的控制传感器节点发送控制命令以启动急救装置,确保患者的生命和健康。


下面结合附图和具体实施方式
对本发明做更进一歩的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图I为本发明所述6LoWPAN无线传感器网络的拓扑结构示意图。图2为本发明所述接入节点、簇首节点及簇内节点的IPv6地址示意图。图3为本发明所述新节点转换为簇首节点或者转换为簇内节点的流程示意图。图4为本发明所述普通接入节点获取IPv6地址的流程示意图。图5为本发明所述簇首节点获取IPv6地址的流程示意图。图6为本发明所述簇内节点获取IPv6地址的流程示意图。图7为本发明所述簇首节点失效处理流程示意图。
具体实施例方式本发明提供了 6LoWPAN无线传感器网络系统的实现方法,在所述系统中,6LoWPAN无线传感器网络中的节点拥有全球唯一的IPv6地址,能够与IPv6网络中的节点实现点到点通信。图I为本发明所述6LoWPAN无线传感器网络的拓扑结构示意图。所述系统包括四种传感器节点新节点I、接入节点、簇首节点以及簇内节点2 ;所述接入节点包括预设接入节点3、普通接入节点4和虚拟接入节点5 ;所述簇首节点包括固定簇首节点6和移动簇首节点7 ;所述新节点为没有标识为接入节点、没有标识为簇首节点或者没有标识为簇内节点的传感器节点;所述预设接入节点连接无线传感器网络与IPv6网络,且为固定节点,其IPv6地址为预先设定,为接入节点和虚拟接入节点分配IPv6地址;所述普通接入节点连接无线传感器网络与IPv6网络,且为固定节点,IPv6地址从预设接入节点获取;所述虚拟接入节点为没有与IPv6网络连接且IPv6地址结构与接入节点的IPv6地址结构相同的固定簇首节点;所述固定簇首节点实现路由转发功能,并为本簇簇内节点分配IPv6地址;所述移动簇首节点与本簇簇内节点作为ー个移动单元进行移动,并为本簇簇内节点分配IPv6地址;所述接入节点和固定簇首节点具有路由转发功能,ー个接入节点与ー个以上固定簇首节点形成树状结构,接入节点为根节点,固定簇首节点为中间节点及叶子节点;所述6LoWPAN无线传感器网络包括ー个以上树状结构,所述树状结构构成所述6LoWPAN无线传感器网络的路由骨干网络;所述簇内节点用于采集数据,数据通过由接入节点和固定簇首节点形成的树状结构进行路由;所述6LoWPAN无线传感器网络包括ー个以上的簇,每个簇包括一个簇首节点和若干个簇内节点,簇内节点在簇首节点的一跳范围内,拓扑结构为星形;由移动簇首节点构建的簇作为一个移动单元进行移动,且簇在移动时,簇内的移动簇首节点与簇内节点的关系稳定;所述固定簇首节点或接入节点用于为其他簇首节点分配IPv6地址,簇内节点从簇首节点获取IPv6地址。
图2为本发明所述接入节点、簇首节点及簇内节点的IPv6地址示意图。所述接入节点、簇首节点及簇内节点的IPv6地址由四个部分组成第一部分是全局路由前缀,一个6LoWPAN无线传感器网络中所有节点的IPv6地址的全局路由前缀都相同,其长度为64比特;第二部分是i比特长度的接入节点ID,接入节点ID唯一标识以其为根节点的树状结构,树状结构中所有固定簇首节点的IPv6地址的接入节点ID都相同,其值等于相同树状结构中接入节点的IPv6地址的接入节点ID ;第三部分为n比特长度的簇ID,簇ID唯一标识ー个簇,一个簇中所有簇内节点的IPv6地址的簇ID都相同,其值等于相同簇簇首节点的IPv6地址的簇ID ;第四部分为簇内节点ID,簇内节点ID唯一标识ー个簇的簇内节点;所述接入节点IPv6地址的簇ID与簇内节点ID为O,簇首节点IPv6地址的簇内节点ID为O ;所述普通接入节点及虚拟接入节点IPv6地址的接入节点ID由预设接入节点分配,固定簇首节点及移动簇首节点IPv6地址的簇首ID由接入节点或固定簇首节点分配;簇内节点IPv6地址的簇内节点ID由所在簇簇首节点分配。所述IPv6地址的簇ID划分为多个等级,i比特为ー个等级,接入节点的等级为O,接入节点的子节点的等级为I ;簇ID的有效比特长度n为表示一个等级的i比特与簇ID所处等级I的乘积;处于等级X的父节点与其子节点的簇ID的前y比特相同,y为表示一个等级的i比特与父节点的等级x的乘积。i值根据实际应用中传感器节点分布密度及传感器网络规模大小来确定。图3为本发明所述新节点转换为簇首节点或者转换为簇内节点的流程示意图。初始状态下,所有新节点保存ー个连通度參数,其初始值为0,当连通度參数大于一定阈值n 时,新节点将自己标识为簇首节点;新节点定时在ー跳范围内广播Beacon消息以示存在,新节点转换为簇首节点或者转换为簇内节点的步骤如下步骤301:开始;步骤302 :新节点X在一跳范围内广播beacon消息以示存在;步骤303 :接收到beacon消息的传感器节点Y判断自己是否标识为簇内节点,如果是,进行步骤304,否则进行步骤305 ;步骤304 :放弃处理此beacon消息,进行步骤318 ;步骤305 :传感器节点Y将新节点X加入到簇内节点列表;步骤306 :传感器节点Y判断自己是否标识为簇首节点,如果是,进行步骤307,否则进行步骤309 ;步骤307 :传感器节点Y判断自己是否有足够的地址空间可供分配,如果是,进行步骤308,否则进行步骤318 ;步骤308 :传感器节点Y向新节点X发送邀请加入簇的消息,进行步骤312 ;步骤309 :传感器节点Y将连通度參数递增I ;步骤310 :传感器节点Y判断连通度參数是否等于阈值,如果是,进行步骤311,否则进行步骤318 ;步骤311 :传感器节点Y向簇内节点列表中的姆个新节点发送邀请加入簇的消息;步骤312 :收到消息的节点判断自己是否仍然标识为新节点且没有向其他簇首节点返回响应消息,如果是,进行步骤313,否则进行步骤318 ;步骤313 :收到邀请消息的节点向传感器节点Y返回一个响应消息;步骤314 :传感器节点Y判断是否标识为簇首节点,如果是,进行步骤316,否则进行步骤315 ;步骤315 :传感器节点Y将自己标识为簇首节点,并进行步骤316 ;步骤316 :传感器节点Y向返回响应消息的节点返回一个确认消息;步骤317 :新节点收到传感器节点Y的确认消息后,将自己标识为簇内节点;
步骤318:结束。图4为本发明所述普通接入节点获取IPv6地址的流程示意图。连接无线传感器网络和IPv6网络的新节点通过下述步骤转换为普通接入节点并获取IPv6地址步骤401:开始;步骤40 2 :新节点判断自己是否为连接无线传感器网络和IPv6网络的节点,如果是,则进行步骤403,否则进行步骤409 ;步骤403 :新节点随机选择ー个接入节点ID构建为链路地址,并以此链路地址作为源地址向预设接入节点发送地址请求消息;步骤404 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,判断地址请求消息中源链路地址中的接入节点ID为已分配状态,如果是,进行步骤405,否则进行步骤406 ;步骤405 :预设接入节点向新节点返回ー个无效地址消息,进行步骤407 ;步骤406 :预设接入节点向新节点返回ー个有效地址消息,同时将此接入节点ID标记为已分配,进行步骤407;步骤407 :新节点判断收到的消息是否为无效地址消息,如果是,进行步骤403,否则进行步骤408 ;步骤408 :新节点将随机选择的接入节点ID与全局路由前缀形结合作为自己的接入节点ID,同时将自己标识为普通接入节点;步骤409:结束。图5为本发明所述簇首节点获取IPv6地址的流程示意图。簇首节点通过下述步骤获取IPv6地址步骤501:开始;步骤502 :簇首节点判断自己是否为连接无线传感器网络和IPv6网络的节点,如果是,进行步骤516,否则进行步骤503 ;步骤503 :簇首节点在一跳范围内地址请求消息;步骤504 :簇首节点一跳范围内的邻居固定簇首节点或者邻居接入节点收到地址请求消息后,判断它是否有地址资源可供分配,如果有,进行步骤506,否则进行步骤505 ;步骤505 :邻居固定簇首节点或邻居接入节点放弃处理地址请求消息,进行步骤507 ;步骤506 :邻居固定簇首节点或邻居接入节点向簇首节点返回一个地址响应消息,消息负载为预分配的簇ID ;步骤507 :在预定时间内,簇首节点是否收到地址响应消息,如果是,进行步骤508,否则进行步骤513 ;步骤508 :簇首节点在预分配的簇ID中选择等级最小的簇ID作为自己的簇ID,将自己的簇ID与接入节点ID和网络路由前缀相结合形成自己的IPv6地址,同时将返回此簇ID的节点作为父节点,并向父节点返回一个确认消息;步骤509 :簇首节点是否为移动节点,如果是,进行步骤511,否则进行步骤510 ;步骤510 :簇首节点将自己标识为固定簇首节点,进行步骤512 ;步骤511 :簇首节点将自己标识为移动簇首节点;
步骤512 :父节点收到簇首节点的确认消息后,将簇首节点的簇ID标识为已分配状态,进行步骤516 ;步骤513 :簇首节点向预设接入节点发送地址请求消息;步骤514 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,选择ー个未分配的接入节点ID发送给新节点,同时将此接入节点ID设置为已分配;步骤515 :簇首节点收到预设接入节点分配的接入节点ID后,将此接入节点ID作为自己的接入节点ID,与网络路由前缀相结合形成自己的IPv6地址,同时将自己标识为虚拟接入节点;步骤516:结束。 图6为本发明所述簇内节点获取IPv6地址的流程示意图。所述簇内节点通过下述步骤获取IPv6地址步骤601:开始;步骤602 :簇内节点向所在簇的簇首节点发送地址请求消息;步骤603 :簇首节点收到地址请求消息后,查看自己IPv6地址结构中的簇内成员ID的比特长度是否大于预定值,如果是,进行步骤604,否则进行步骤609 ;步骤604 :簇首节点随机选择ー个簇内成员ID并在簇内广播此簇内成员ID ;步骤605 :簇内节点收到广播的簇内成员ID后,判断其IPv6地址的簇内成员ID是否与广播的簇内成员ID相同,如果是,进行步骤606,否则进行步骤607 ;步骤606 :簇内成员ID与广播的簇内成员ID相同的簇内节点向簇首节点返回一个地址无效消息;步骤607 :在规定时间内,簇首节点是否收到本簇簇内节点返回的地址无效消息,如果是,进行步骤604,否则进行步骤608 ;步骤608 :簇首节点将随机选择的簇内成员ID返回给簇内节点,进行步骤610 ;步骤609 :簇首节点查看簇内成员ID分配记录表,将最小的未分配的簇内成员ID返回给簇内节点,同时将此簇内成员ID标识为已分配,进行步骤610 ;步骤610 :簇内节点收到簇首节点分配的簇内成员ID后,将此簇内成员ID与全局路由前缀、接入节点ID及簇ID相结合,形成自己的IPv6地址;步骤611:结束。图7为本发明所述簇首节点失效处理流程示意图。父节点定时向其子节点发送beacon消息以示自己的存在,如果簇ID处于等级11的子节点在规定时间内没有收到父节点的beacon消息,则判定其父节点失效,并进行如下处理步骤701:开始;步骤702 :子节点在一跳范围内地址请求消息;步骤703:子节点ー跳范围内的固定簇首节点或者接入节点收到地址请求消息后,判断它是否有地址资源可供分配,如果有,进行步骤705,否则进行步骤704 ;步骤704 :子节点ー跳范围内的固定簇首节点或者接入节点放弃处理地址请求消息,进行步骤706 ;步骤705 :簇首节点或接入节点向子节点返回ー个地址响应消息,消息负载为预分配的簇ID ;
步骤706 :在预定时间内,子节点是否收到地址响应消息,如果是,进行步骤707,否则进行步骤709 ;步骤707 :子节点在预分配的簇ID中选择等级最小的簇ID作为自己的簇ID,将自己的簇ID与接入节点ID和网络路由前缀相结合形成自己的IPv6地址,同时将返回此簇ID的节点作为父节点,井向父节点返回一个确认消息;步骤708 :父节点收到子节点的确认消息后,将子节点的簇ID标识为已分配状态,进行步骤712 ;步骤709 :子节点向预设接入节点发送地址请求消息;步骤710 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,选择ー个未分配的接入节点ID发送给子节点,同时将此接入节点ID设置为已分配; 步骤711 :子节点收到预设接入节点分配的接入节点ID后,将此接入节点ID作为自己的接入节点ID,与网络路由前缀相结合形成自己的IPv6地址,同时将自己标识为虚拟接入节点;步骤712 :子节点将新获取的接入节点ID或者簇ID组成新的IPv6地址,并向自己的子孙节点广播新的IPv6地址;步骤713 :原来等级为13的子孙节点收到子节点发送的IPv6地址后,首先计算出子节点新的簇ID所处的等级12,然后将自己簇ID所处的等级调整为12+ (13-11)并修改簇ID有效长度,其中前12 i比特为子节点的簇ID ;步骤714 :子孙节点判断其簇ID等级12+(13-11)是否大于(64_i)/i,如果是,进行步骤715,否则进行步骤717 ;步骤715 :子孙节点向子节点返回一个地址无效消息;步骤716 :子节点收到子孙节点返回的无效消息,返回步骤702 ;步骤717 :子孙节点保留原来簇ID后边的(13-11) -i比持,然后将全局网络前綴、接入节点ID及簇首ID相结合形成新的IPv6地址;步骤718 :子孙节点在所在簇内广播新的IPv6地址;步骤719 :簇内节点收到等级处于12+(13-11)的簇首节点新的IPv6地址后,首先根据其簇ID的长度计算出簇内成员ID的有效长度64-i-(12+(13-ll)) i ;步骤720 :簇内节点判断其簇内成员ID是否能用有效长度64-i-(12+(13_ll)) -i来表示,如果是,进行步骤722,否则进行步骤721 ;步骤721 :簇内节点向簇首节点申请并获取新的簇内节点ID,进行步骤723 ;步骤722 :簇内节点的簇内ID成员不变;步骤723 :簇内节点将簇内成员ID与簇首节点的全局路由前缀、接入节点ID、簇ID相结合形成新的IPv6地址;步骤724:结束。综上所述,本发明实现了全IP无线传感器网络的网络移动,此项技术可以应用于国防、医疗及农业等领域,例如,针对ー个农场(ー个下一代全IP可移动无线传感器网络),农场饲养了多种群居的牲畜,它们的移动是以群为基本単位的(一个簇)。为了查看这些牲畜的生存状态,在它们身上安装了ー些部分功能传感器节点(簇内节点)用以采集相关參数,而在牲畜群中领头的牲畜身上安装全功能传感器节点(即簇首),这样,当牲畜群进行移动时,外界饲养(研究)人员仍然可以通过Internet访问传感器节点以获取这些牲畜当前的生存状态參数。本发明提供了ー种6LoWPAN无线传感器网络系统的实现方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和 润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
权利要求
1.一种6LoWPAN无线传感器网络系统的实现方法,其特征在于,所述系统包括四种传感器节点新节点、接入节点、簇首节点以及簇内节点; 所述新节点为没有标识为接入节点、没有标识为簇首节点或者没有标识为簇内节点的传感器节点; 所述接入节点包括预设接入节点、普通接入节点和虚拟接入节点; 所述预设接入节点连接无线传感器网络与IPv6网络,且为固定节点,其IPv6地址为预先设定,为接入节点和虚拟接入节点分配IPv6地址; 所述普通接入节点连接无线传感器网络与IPv6网络,且为固定节点,IPv6地址从预设接入节点获取; 所述虚拟接入节点为没有与IPv6网络连接且IPv6地址结构与接入节点的IPv6地址结构相同的固定簇首节点; 所述簇首节点包括固定簇首节点和移动簇首节点; 所述固定簇首节点实现路由转发功能,并为本簇簇内节点分配IPv6地址;已经获得IPv6地址的固定簇首节点或接入节点,为未获得IPv6地址的簇首节点分配IPv6地址; 所述移动簇首节点与本簇簇内节点作为一个移动单元进行移动,并为本簇簇内节点分配IPv6地址; 所述接入节点和固定簇首节点具有路由转发功能,一个接入节点与一个以上固定簇首节点形成树状结构,接入节点为根节点,固定簇首节点为中间节点或叶子节点;所述6LoffPAN无线传感器网络包括一个以上树状结构,所述树状结构构成所述6LoWPAN无线传感器网络的路由骨干网络; 所述簇内节点用于采集数据,数据通过由接入节点和固定簇首节点形成的树状结构进行路由;所述6LoWPAN无线传感器网络包括一个以上的簇,每个簇包括一个簇首节点和若干个簇内节点,簇内节点在簇首节点的一跳范围内,拓扑结构为星形;由移动簇首节点构建的簇作为一个移动单元进行移动,且簇在移动时,簇内的移动簇首节点与簇内节点的关系稳定。
2.根据权利要求I所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,所述接入节点、簇首节点及簇内节点的IPv6地址由四个部分组成第一部分是全局路由前缀,一个6LoWPAN无线传感器网络中所有节点的IPv6地址的全局路由前缀都相同,其长度为64比特;第二部分是i比特长度的接入节点ID,接入节点ID唯一标识以其为根节点的树状结构,树状结构中所有固定簇首节点的IPv6地址的接入节点ID都相同,其值等于相同树状结构中接入节点的IPv6地址的接入节点ID ;第三部分为n比特长度的簇ID,簇ID唯一标识一个簇,一个簇中所有簇内节点的IPv6地址的簇ID都相同,其值等于相同簇簇首节点的IPv6地址的簇ID ;第四部分为簇内节点ID,簇内节点ID唯一标识一个簇的簇内节点; 所述接入节点IPv6地址的簇ID与簇内节点ID为O,簇首节点IPv6地址的簇内节点ID为O ;所述普通接入节点及虚拟接入节点IPv6地址的接入节点ID由预设接入节点分配,固定簇首节点及移动簇首节点IPv6地址的簇首ID由接入节点或固定簇首节点分配;簇内节点IPv6地址的簇内节点ID由所在簇簇首节点分配。
3.根据权利要求2所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,所述IPv6地址的簇ID划分为多个等级,i比特为一个等级,接入节点的等级为O,接入节点的子节点的等级为I ;簇ID的有效比特长度n为表示一个等级的i比特与簇ID所处等级I的乘积;处于等级X的父节点与其子节点的簇ID的前y比特相同,y为表示一个等级的i比特与父节点的等级X的乘积。
4.根据权利要求I所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,初始状态下,所有新节点保存一个连通度参数,其初始值为O,当连通度参数大于一定阈值n时,新节点将自己标识为簇首节点;新节点定时在一跳范围内广播Beacon消息以示存在,新节点转换的步骤如下 步骤301 :开始; 步骤302 :新节点X在一跳范围内广播beacon消息以示存在; 步骤303 :接收到beacon消息的传感器节点Y判断自己是否标识为簇内节点,如果是,进行步骤304,否则进行步骤305 ; 步骤304 :放弃处理此beacon消息,进行步骤318 ; 步骤305 :传感器节点Y将新节点X加入到簇内节点列表; 步骤306 :传感器节点Y判断自己是否标识为簇首节点,如果是,进行步骤307,否则进行步骤309 ; 步骤307 :传感器节点Y判断自己是否有足够的地址空间可供分配,如果是,进行步骤308,否则进行步骤318 ; 步骤308 :传感器节点Y向新节点X发送邀请加入簇的消息,进行步骤312 ; 步骤309 :传感器节点Y将连通度参数递增I ; 步骤310 :传感器节点Y判断连通度参数是否等于阈值,如果是,进行步骤311,否则进行步骤318 ; 步骤311 :传感器节点Y向簇内节点列表中的每个新节点发送邀请加入簇的消息;步骤312 :收到消息的节点判断自己是否仍然标识为新节点且没有向其他簇首节点返回响应消息,如果是,进行步骤313,否则进行步骤318 ; 步骤313 :收到邀请消息的节点向传感器节点Y返回一个响应消息; 步骤314 :传感器节点Y判断是否标识为簇首节点,如果是,进行步骤316,否则进行步骤 315 ; 步骤315 :传感器节点Y将自己标识为簇首节点,并进行步骤316 ; 步骤316 :传感器节点Y向返回响应消息的节点返回一个确认消息; 步骤317 :新节点收到传感器节点Y的确认消息后,将自己标识为簇内节点; 步骤318 :结束。
5.根据权利要求4所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,连接无线传感器网络和IPv6网络的新节点通过下述步骤转换为普通接入节点并获取IPv6地址 步骤401 :开始; 步骤402 :新节点判断自己是否为连接无线传感器网络和IPv6网络的节点,如果是,则进行步骤403,否则进行步骤409 ; 步骤403 :新节点随机选择一个接入节点ID构建为链路地址,并以此链路地址作为源地址向预设接入节点发送地址请求消息;步骤404 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,判断地址请求消息中源链路地址中的接入节点ID为已分配状态,如果是,进行步骤405,否则进行步骤 406 ; 步骤405 :预设接入节点向新节点返回一个无效地址消息,进行步骤407 ; 步骤406 :预设接入节点向新节点返回一个有效地址消息,同时将此接入节点ID标记为已分配,进行步骤407; 步骤407 :新节点判断收到的消息是否为无效地址消息,如果是,进行步骤403,否则进行步骤408 ; 步骤408 :新节点将随机选择的接入节点ID与全局路由前缀形结合作为自己的接入节点ID,同时将自己标识为普通接入节点; 步骤409 :结束。
6.根据权利要求4所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,簇首节点通过下述步骤获取IPv6地址 步骤501 :开始; 步骤502 :簇首节点判断自己是否为连接无线传感器网络和IPv6网络的节点,如果是,进行步骤516,否则进行步骤503 ; 步骤503 :簇首节点在一跳范围内地址请求消息; 步骤504 :簇首节点一跳范围内的邻居固定簇首节点或者邻居接入节点收到地址请求消息后,判断它是否有地址资源可供分配,如果有,进行步骤506,否则进行步骤505 ; 步骤505 :邻居固定簇首节点或邻居接入节点放弃处理地址请求消息,进行步骤507 ;步骤506 :邻居固定簇首节点或邻居接入节点向簇首节点返回一个地址响应消息,消息负载为预分配的簇ID ; 步骤507 :在预定时间内,簇首节点是否收到地址响应消息,如果是,进行步骤508,否则进行步骤513 ; 步骤508 :簇首节点在预分配的簇ID中选择等级最小的簇ID作为自己的簇ID,将自己的簇ID与接入节点ID和网络路由前缀相结合形成自己的IPv6地址,同时将返回此簇ID的节点作为父节点,并向父节点返回一个确认消息; 步骤509 :簇首节点是否为移动节点,如果是,进行步骤511,否则进行步骤510 ; 步骤510 :簇首节点将自己标识为固定簇首节点,进行步骤512 ; 步骤511 :簇首节点将自己标识为移动簇首节点; 步骤512 :父节点收到簇首节点的确认消息后,将簇首节点的簇ID标识为已分配状态,进行步骤516 ; 步骤513 :簇首节点向预设接入节点发送地址请求消息; 步骤514 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,选择一个未分配的接入节点ID发送给新节点,同时将此接入节点ID设置为已分配; 步骤515 :簇首节点收到预设接入节点分配的接入节点ID后,将此接入节点ID作为自己的接入节点ID,与网络路由前缀相结合形成自己的IPv6地址,同时将自己标识为虚拟接入节点; 步骤516 :结束。
7.根据权利要求4所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,所述簇内节点通过下述步骤获取IPv6地址 步骤601 :开始; 步骤602 :簇内节点向所在簇的簇首节点发送地址请求消息; 步骤603 :簇首节点收到地址请求消息后,查看自己IPv6地址结构中的簇内成员ID的比特长度是否大于预定值,如果是,进行步骤604,否则进行步骤609 ; 步骤604 :簇首节点随机选择一个簇内成员ID并在簇内广播此簇内成员ID ; 步骤605:簇内节点收到广播的簇内成员ID后,判断其IPv6地址的簇内成员ID是否与广播的簇内成员ID相同,如果是,进行步骤606,否则进行步骤607 ; 步骤606 :簇内成员ID与广播的簇内成员ID相同的簇内节点向簇首节点返回一个地址无效消息; 步骤607:在规定时间内,簇首节点是否收到本簇簇内节点返回的地址无效消息,如果是,进行步骤604,否则进行步骤608 ; 步骤608 :簇首节点将随机选择的簇内成员ID返回给簇内节点,进行步骤610 ; 步骤609 :簇首节点查看簇内成员ID分配记录表,将最小的未分配的簇内成员ID返回给簇内节点,同时将此簇内成员ID标识为已分配,进行步骤610 ; 步骤610 :簇内节点收到簇首节点分配的簇内成员ID后,将此簇内成员ID与全局路由前缀、接入节点ID及簇ID相结合,形成自己的IPv6地址; 步骤611 :结束。
8.根据权利要求3所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,父节点定时向其子节点发送beacon消息以示自己的存在,如果簇ID处于等级11的子节点在规定时间内没有收到父节点的beacon消息,则判定其父节点失效,并进行如下处理 步骤701 :开始; 步骤702 :子节点在一跳范围内地址请求消息; 步骤703:子节点一跳范围内的固定簇首节点或者接入节点收到地址请求消息后,判断它是否有地址资源可供分配,如果有,进行步骤705,否则进行步骤704 ; 步骤704:子节点一跳范围内的固定簇首节点或者接入节点放弃处理地址请求消息,进行步骤706 ; 步骤705 :簇首节点或接入节点向子节点返回一个地址响应消息,消息负载为预分配的簇ID ; 步骤706 :在预定时间内,子节点是否收到地址响应消息,如果是,进行步骤707,否则进行步骤709 ; 步骤707 :子节点在预分配的簇ID中选择等级最小的簇ID作为自己的簇ID,将自己的簇ID与接入节点ID和网络路由前缀相结合形成自己的IPv6地址,同时将返回此簇ID的节点作为父节点,并向父节点返回一个确认消息; 步骤708 :父节点收到子节点的确认消息后,将子节点的簇ID标识为已分配状态,进行步骤712 ; 步骤709 :子节点向预设接入节点发送地址请求消息; 步骤710 :预设接入节点收到地址请求消息后,查看接入节点ID分配记录表,选择一个未分配的接入节点ID发送给子节点,同时将此接入节点ID设置为已分配; 步骤711 :子节点收到预设接入节点分配的接入节点ID后,将此接入节点ID作为自己的接入节点ID,与网络路由前缀相结合形成自己的IPv6地址,同时将自己标识为虚拟接入节点; 步骤712 :子节点将新获取的接入节点ID或者簇ID组成新的IPv6地址,并向自己的子孙节点广播新的IPv6地址; 步骤713 :原来等级为13的子孙节点收到子节点发送的IPv6地址后,首先计算出子节点新的簇ID所处的等级12,然后将自己簇ID所处的等级调整为12+(13-11)并修改簇ID有效长度,其中前12 · i比特为子节点的簇ID ; 步骤714:子孙节点判断其簇ID等级12+(13-11)是否大于(64_i)/i,如果是,进行步 骤715,否则进行步骤717 ; 步骤715 :子孙节点向子节点返回一个地址无效消息; 步骤716 :子节点收到子孙节点返回的无效消息,进行步骤702 ; 步骤717:子孙节点保留原来簇ID后边的(13-11) · i比特,然后将全局网络前缀、接入节点ID及簇首ID相结合形成新的IPv6地址; 步骤718 :子孙节点在所在簇内广播新的IPv6地址; 步骤719 :簇内节点收到等级处于12+(13-11)的簇首节点新的IPv6地址后,首先根据其簇ID的长度计算出簇内成员ID的有效长度64-i-(12+(13-ll)) · i ; 步骤720 :簇内节点判断其簇内成员ID是否能用有效长度64-i-(12+(13-ll)) · i来表示,如果是,进行步骤722,否则进行步骤721 ; 步骤721 :簇内节点向簇首节点申请并获取新的簇内节点ID,进行步骤723 ; 步骤722 :簇内节点的簇内ID成员不变; 步骤723 :簇内节点将簇内成员ID与簇首节点的全局路由前缀、接入节点ID、簇ID相结合形成新的IPv6地址; 步骤724 :结束。
9.根据权利要求I所述的6LoWPAN无线传感器网络系统的实现方法,其特征在于,树状结构中的固定簇首节点和接入节点保存一个邻居簇首节点记录表,用以记录一跳范围内的固定簇首节点或接入节点的IPv6地址;固定簇首节点或接入节点收到数据包时,首先查看数据包的目的地址是否在其邻居簇首节点记录表内,如果包含在其邻居簇首节点记录表内,则将数据包直接路由到目的簇首节点,否则按照树状结构进行路由。
全文摘要
本发明提供了一种6LoWPAN无线传感器网络系统的实现方法,所述系统包括四种传感器节点新节点、接入节点、簇首节点以及簇内节点,簇首节点包括固定簇首节点和移动簇首节点;接入节点和固定簇首节点具有路由转发功能,一个接入节点与一个以上固定簇首节点形成树状结构,构成所述6LoWPAN无线传感器网络的路由骨干网络。簇内节点用于采集数据,数据通过由接入节点和固定簇首节点形成的树状结构进行路由。簇包括一个簇首节点和若干个簇内节点,簇内节点在簇首节点的一跳范围内,拓扑结构为星形,所述固定簇首节点或接入节点用于为其他簇首节点分配IPv6地址,簇内节点从簇首节点获取IPv6地址。
文档编号H04L29/12GK102651863SQ20111006331
公开日2012年8月29日 申请日期2011年3月16日 优先权日2011年3月16日
发明者王晓喃 申请人:常熟理工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1