专利名称:一种6LoWPAN无线传感器网络路由方法
技术领域:
本发明涉及一种网络路由方法,尤其涉及的是一种基于6LoWPAN (IPv6 over Low Power Wireless Personal Area Networks,IPv6低功耗无线个域网)无线传感器网络路由 方法。
背景技术:
随着用户对移动业务需求的不断增长以及各种新业务的不断出现,6LoWPAN(IPv6 over Low Power Wireless Personal Area Networks)网络只有提供良好地网络路由性能, 才能使其获得更大的应用空间。
无线传感器网络经典路由协议都是基于以数据为中心的工作机制,因此很难将其 应用到以IP地址为中心的6LOWPAN无线传感器网络中。目前,研究人员对无线传感器网络 如何实现点到点通信的路由方案进行了相关研究,但是所提出的路由方案并不是基于IPv6 地址的,因此也很难将其应用到6LoWPAN无线传感器网络中。同样,由于无线传感器网络的 自身特点(如处理能力及存储资源有限),现有的IPv6路由协议也很难应用到全IP无线传 感器网络中。发明内容
发明目的本发明所要解决的技术问题是针对现有技术的不足,提供一种 6LoffPAN无线传感器网络路由方法。
技术方案本发明公开了一种6LoWPAN无线传感器网络路由方法,所述6LoWPAN无 线传感器网络的传感器节点包含全功能传感器节点和部分功能传感器节点两类,全功能传 感器节点具有路由转发功能,为固定节点;部分功能传感器节点用于数据采集且不具有路 由转发功能,为移动节点;所述6LoWPAN无线传感器网络传感器节点的IPv6地址由两个部分组成第一部分是 全局路由前缀,一个6LoWPAN无线传感器网络中所有传感器节点的IPv6地址的全局路由前 缀都相同;第二部分是传感器节点ID,用于唯一的标识一个6LoWPAN网络中的传感器节点, 其值为传感器节点出厂时设置的初始ID号,其在一个6LoWPAN无线传感器网络中具有唯一 性;传感器节点的链路地址为其IPv6地址的传感器节点ID ;全功能传感器节点包括一个路由表,路由表项包括五个域,分别为目的传感器节点链 路地址、第一下一跳链路地址、第二下一跳链路地址、路由代价域以及生存时间域;目的传 感器节点链路地址记录目的传感器节点IPv6地址的传感器节点ID,第一下一跳链路地址 记录到达目的传感器节点的下一跳节点IPv6地址的传感器节点ID,第二下一跳链路地址 记录到达目的传感器节点的下一跳节点的下一跳节点IPv6地址的传感器节点ID,路由代 价域为路由表所在全功能传感器节点到达目的传感器节点的跳数,生存时间域记录路由表 项的生存时间域,生存时间域随机器时钟自动衰减,当生存时间域衰减为0时,路由表项从路由表中自动删除,路由表项每被使用一次,其生存时间域都会被设置为最大生存时间 域;全功能传感器节点包括一个临时路由表,用于存储建立路由时的临时数据;临时路由 表项包括四个域,分别为目的传感器节点链路地址、源传感器节点链路地址、路由代价域及 生存时间域;目的传感器节点链路地址记录目的传感器节点IPv6地址的传感器节点ID,源 传感器节点链路地址记录发起路由发现过程的传感器节点IPv6地址的传感器节点ID,路 由代价域记录发送路由查询帧的源节点到达本节点的跳数,生存时间域记录临时路由表项 的生存时间域,当生存时间域衰减为0时,自动从临时路由表中删除。
本发明中,所述传感器节点采用路由查询帧和路由响应帧建立到达目的传感器节 点的路由路径;路由查询帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其中, 命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1 为全功能传感器节点,余下七个比特位标识路由查询命令帧类型,其值为OxOa;最终目的 节点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达转 发此帧的跳数;路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的 传感器节点ID的集合;路由查询帧的目的地址值为广播地址OxfTfT,源地址值为转发此帧 的全功能传感器节点的传感器节点ID ;路由响应帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其中, 命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1 为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为OxOb ;最终目的节 点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达目的 传感器节点的跳数;路由路径域记录源传感器节点到达目的节点所经过中间节点IPv6地 址的传感器节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节点的传感 器节点ID ;路由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点ID ; 所述传感器节点采用路由修复帧和路由修复响应帧实现路由修复; 所述路由修复帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其 中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节 点,1为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为OxOc ;最终目 的节点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达 转发此帧的跳数;路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址 的传感器节点ID的集合;路由查询帧的目的地址值为广播地址OxfTfT,源地址值为转发此 帧的全功能传感器节点的传感器节点ID ;所述路由修复响应帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径 域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感 器节点,1为全功能传感器节点,余下七个字节标识路由查询命令帧类型,其值为OxOd;最 终目的节点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点 到达目的传感器节点的跳数;路由路径域记录源传感器节点到达目的节点所经过中间节 点IPv6地址的传感器节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节 点的传感器节点ID ;路由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点ID。
本发明中,源部分功能传感器节点与目的部分功能传感器节点进行通信时,源节 点选择下一跳节点的过程为步骤301 源节点在一跳范围内广播路由查询命令帧,命令帧的最终目的节点域为目 的节点的传感器节点ID,命令帧标识符的最高比特位为0 ;步骤302 判断接收到路由查询命令帧的节点是否为目的节点,如果是,进行步骤303, 否则进行步骤304 ;步骤303 判断接收到路由查询命令帧的节点是否为全功能传感器节点,如果是,进行 步骤305,否则进行步骤313 ;步骤304 目的节点向源节点返回路由响应巾贞,帧的源地址为源节点的传感器节点ID, 路由代价域为1,进行步骤308;步骤305 判断全功能传感器节点的路由表是否存在到达目的节点的路由表项,如果 存在,进行步骤307,否则进行步骤306 ;步骤306 目的节点向源节点返回路由响应帧,路由响应帧的路由代价域为0,进行步 骤 308 ;步骤307 目的节点向源节点返回路由响应帧,路由响应帧的路由代价域为其到达目 的节点的跳数;步骤308 判断源节点是否收到来自目的节点的路由响应帧,如果收到,进行步骤309, 否则进行步骤310;步骤309 源节点直接将数据帧发送给目的节点,进行步骤313 ; 步骤310 判断源节点是否收到路由代价域不为0的路由响应帧,如果收到,进行步骤 311,否则进行步骤312 ;步骤311 源节点选择路由代价域最小的全功能传感器节点为下一跳节点,并将数据 帧发送给下一跳节点,进行步骤313 ;步骤312 源节点选择返回信号最强的全功能传感器节点作为下一跳节点并将数据帧 发送给下一跳节点; 步骤313 结束。
本发明中,源全功能传感器节点建立到达目的节点的路由路径的过程为步骤401 源全功能传感器节点在一跳范围内广播路由查询命令帧,命令帧的最终目 的节点域为目的节点的传感器节点ID,命令帧标识符的最高比特位为1,路由代价域为1, 路由路径域为源全功能传感器节点的传感器节点ID ;步骤402 判断目的节点是否收到路由查询帧,如果收到,执行步骤413 ;否则执行步骤403 ;步骤403 判断接收到路由查询命令帧的节点是否为全功能传感器节点,如果是,执行 步骤404,否则执行步骤422 ;步骤404:判断全功能传感器节点是否在路由查询帧的路由路径域,如果在,执行步骤 422,否则执行步骤405 ;步骤405 判断全功能传感器节点查看路由表中是否存在到达目的节点的路由表项, 如果存在,执行步骤406,否则执行步骤407 ;步骤406 全功能传感器节点返回路由响应帧,帧的源地址为其传感器节点ID,路由代 价域为路由表中相应表项的路由代价域,路由路径域为路由查询帧的路由路径域与全功能 传感器节点的传感器节点ID及其路由表项中第一下一跳链路地址和第二下一跳链路地址 的集合,执行步骤414;步骤407 判断全功能借点查看路由查询帧中的路由代价域值是否小于设定的最大跳 数,如果小于,执行步骤408,否则执行步骤422 ;步骤408 全功能传感器节点将路由查询帧的路由代价域值递增1并将自己的传感器 节点ID添加到路由路径域;步骤409 全功能传感器节点查看临时路由表中是否存在设定路由表项,所述路由表 项中源传感器节点链路地址为源全功能传感器节点的传感器节点ID,且目的传感器节点链 路地址域为目的节点的传感器节点ID,如果有,执行步骤410,否则执行步骤412 ;步骤410 全功能传感器节点查看路由查询帧的路由代价域值是否小于临时路由表项 中的路由代价域值,如果是,执行步骤411,否则执行步骤422 ;步骤411 全功能传感器节点将临时路由表中的路由代价域值更新为路由查询帧的路 由代价域值,广播路由查询帧,执行步骤402 ;步骤412 全功能传感器节点在临时路由表中建立一条新的路由表项,目的链路地址 为目的节点的传感器节点ID,源链路地址为源全功能传感器节点的传感器节点ID,路由代 价域为路由查询帧中路由代价域值,广播路由查询帧,执行步骤402 ;步骤413 在设定时间后,目的节点向路由代价域值最小的路由查询帧的源地址发送 路由响应帧,响应帧的源地址为其传感器节点ID,路由路径域值为路由查询帧的路由路径 域值,目的地址为路由路径域值中的第一个全功能传感器节点的传感器节点ID,路由代价 域为1,最终目的节点域值为路由查询帧的最终目的节点值;步骤414:全功能传感器节点收到路由响应帧后,删除临时路由表中的对应表项并将 路由响应帧的路由代价域域值递增1 ;步骤415 判断全功能传感器节点查看路由表中是否已经存在到达目的节点的路由表 项,如果存在,执行步骤417,否则执行步骤416 ;步骤416 全功能传感器节点添加一条路由表项,目的传感器节点链路地址为路由响 应帧中最终目的节点域值,第一下一跳链路地址和第二下一跳链路地址值从路由响应帧的 路由路径域获取,路由代价域为路由响应帧的路由代价域值,执行步骤419 ;步骤417 判断全功能传感器节点路由表项中的路由代价域是否大于路由响应帧的路 由代价域值,如果大于,执行步骤418,否则执行步骤422 ;步骤418 全功能传感器节点更新路由表项值,第一下一跳链路地址和第二下一跳链 路地址值从路由响应帧的路由路径域获取,路由代价域为路由响应帧的路由代价域值;步骤419:判断收到路由响应帧的全功能传感器节点是否为源全功能传感器节点,如 果是,执行步骤421,否则执行步骤420 ;步骤420 收到路由响应帧的全功能传感器节点将目的地址更新为路由响应帧的路由 路径域的下一跳节点,发送路由响应帧,执行步骤414 ;步骤421 源全功能传感器节点根据路由表中到达目的节点的路由表项,将数据帧发 送到目的节点;步骤422:过程结束。
本发明中,当全功能传感器节点检测出到达目的节点的路由表项中第一下一跳链 路地址无法到达时,全功能传感器节点建立到达第二下一跳链路地址的路由路径从而修复 到达目的节点的路由路径;全功能传感器节点采用路由修复帧和路由修复响应帧建立到达 第二下一跳链路地址的路由路径,其过程为步骤501 源全功能传感器节点在一跳范围内广播路由修复命令帧,命令帧的最终目 的节点域为第二下一跳链路地址的传感器节点ID,命令帧标识符的最高比特位为1,路由 代价域为0,路由路径域为源全功能传感器节点的传感器节点ID和第二下一跳链路地址的 传感器节点ID ;步骤502 判断第二下一跳链路地址是否收到路由修复帧,如果收到,执行步骤509,否 则执行步骤503 ;步骤503 判断接收到路由修复帧的全功能传感器节点是否不在路由查询帧的路由路 径域且路由修复帧中的路由代价域值小于预定最大跳数,如果是,执行步骤504,否则执行 步骤518 ;步骤504 全功能传感器节点将路由修复帧的路由代价域值递增1并将自己的传感器 节点ID添加到路由路径域;步骤505:全功能传感器节点查看临时路由表中是否存在设定路由表项,所述路由表 项的源传感器节点链路地址为源全功能传感器节点的传感器节点ID,且目的传感器节点 链路地址域为第二下一跳链路地址的传感器节点ID,如果是,执行步骤507,否则执行步骤 506 ;步骤506 全功能传感器节点在临时路由表中建立一条新的路由表项,目的链路地址 为第二下一跳链路地址的传感器节点ID,源链路地址为源全功能传感器节点的传感器节点 ID,路由代价域为路由修复帧中路由代价域值,广播路由修复帧,执行步骤502 ;步骤507 全功能传感器节点判断路由修复帧的路由代价域值是否小于临时路由表项 中的路由代价域值,如果是,执行步骤508,否则执行步骤518 ;步骤508 所述全功能传感器节点将临时路由表中的路由代价域值更新为路由修复帧 的路由代价域值,广播路由修复帧,执行步骤502 ;步骤509:在设定时间后,第二下一跳链路地址向路由代价域值最小的路由修复帧的 源地址发送路由修复响应帧,帧源地址为其传感器节点ID,路由路径域值为路由修复帧的 路由路径域值与第二下一跳链路地址的传感器节点ID以及第二下一跳链路地址到达目的 节点的路由表项中的第一下一跳链路地址与第二下一跳链路地址之和,目的地址为路由路 径域值中第二下一跳链路地址前边节点的传感器节点ID,路由代价域为第二下一跳链路地 址中到达目的节点路由表项中的路由代价域,最终目的节点域值为路由修复帧的最终目的 节点值;步骤510 全功能传感器节点收到路由修复响应帧后,删除临时路由表中的对应表项 并将路由修复响应帧的路由代价域值递增1 ;步骤511 全功能传感器节点查看路由表中是否已经存在到达目的节点的路由表项, 如果是,执行步骤513,否则执行步骤512 ;步骤512 全功能传感器节点在路由表中添加一条路由表项,目的传感器节点链路地址为目的节点的传感器节点ID,第一下一跳链路地址和第二下一跳链路地址值从路由响应 帧的路由路径域获取,路由代价域为路由响应帧的路由代价域值,执行步骤515 ;步骤513 全功能传感器节点路由表项中的路由代价域是否大于路由修复响应帧的路 由代价域值,如果是,执行步骤514,否则执行步骤518 ;步骤514 全功能传感器节点更新路由表项值,第一下一跳链路地址和第二下一跳链 路地址值从路由修复响应帧的路由路径域获取,路由代价域为路由修复响应帧的路由代价 域值;步骤515:判断收到路由响应帧的全功能传感器节点是否为源全功能传感器节点,如 果是,执行步骤517,否则执行步骤516 ;步骤516 收到路由响应帧的全功能传感器节点将目的地址更新为路由修复响应帧的 路由路径域的下一跳节点,发送路由修复响应帧,执行步骤510 ;步骤517 源功能节点根据路由表中到达目的节点的路由表项,将数据帧发送到目的 节占.I— /、、、 步骤518 结束。
本发明中,当部分功能传感器节点移动引起路由更新时,全功能传感器节点采用 如下步骤进行路由更新步骤601 全功能传感器节点定期向路由表中路由代价域为1的路由表项中的目的部 分功能传感器节点发送查询命令帧;步骤602 部分功能传感器节点收到查询命令帧后,向全功能传感器节点返回响应命 令帧;步骤603:在设定时间内,全功能传感器节点是否收到部分功能传感器节点返回的响 应命令帧?如果是,进行步骤609,否则进行步骤604 ;步骤604 全功能传感器节点删除部分功能节点的相关路由表项,同时广播路由删除 命令帧,命令帧负载为部分功能节点的传感器节点ID以及所经过节点的跳数,所述最大设 定跳数为10 ;步骤605 收到路由删除帧的全功能传感器节点收到路由删除命令帧后,查看路由表 是否存在设定路由表项,所述路由表项的目的链路地址等于部分功能节点传感器节点ID, 且第一下一跳链路地址值等于路由删除命令帧源地址,如果存在,进行步骤606,否则进行 步骤609 ;步骤606 收到路由删除帧的全功能传感器节点从路由表中删除部分功能节点所对应 的路由表项,并将路由删除帧中的所经过跳数递增1 ;步骤607 判断路由删除帧中的所经过跳数是否小于最大预定跳数,如果是,进行步骤 608,否则进行步骤609 ;步骤608 收到路由删除帧的全功能传感器节点继续广播路由删除命令帧,执行步骤605 ;步骤609 结束。
有益效果本发明提供了一种6LOWPAN无线传感器网络路由方法,在所述方法中, 传感器节点可建立到达目的传感器节点的路由路径从而实现与目的传感器节点的数据通 信,当路由路径中的全功能传感器节点失效时,全功能传感器节点可通过路由表自动实现路由修复功能,无需重新建立路由路径,节省了数据路由开销,缩短了数据路由延迟。
下面结合附图和具体实施方式
对本发明做更进一步的具体说明,本发明的上述和 /或其他方面的优点将会变得更加清楚。
图1为本发明所述6LoWPAN无线传感器网络体系结构示意图。
图2为本发明所述无线传感器节点IPv6地址结构示意图。
图3为本发明所述路由表项示意图。
图4为本发明所述临时路由表项示意图。
图5为本发明所述路由查询帧和路由修复帧示意图。
图6为本发明所述路由响应帧和路由修复响应帧示意图。
图7为本发明所述源节点选择下一跳节点流程示意图。
图8为本发明所述路由建立流程示意图。
图9为本发明所述路由修复流程示意图。
图10为本发明所述路由更新流程示意图。
具体实施方式
图1为本发明所述的6LoWPAN无线传感器网络体系结构示意图,所述6LoWPAN无 线传感器网络的传感器节点包含全功能传感器节点和部分功能传感器节点两类,全功能传 感器节点(图中较大的)具有路由转发功能,为固定节点;部分功能传感器节点(图中较小 的)用于数据采集且不具有路由转发功能,为移动节点。
图2为本发明所述无线传感器节点IPv6地址结构示意图,所述6LoWPAN无线传感 器网络传感器节点的IPv6地址由两个部分组成第一部分是112比特的全局路由前缀,一 个6LoWPAN无线传感器网络中所有传感器节点的IPv6地址的全局路由前缀都相同;第二部 分是16比特的传感器节点ID,用于唯一的标识一个6LoWPAN网络中的传感器节点,其值为 传感器节点出厂时设置的初始ID号,其在一个6LoWPAN无线传感器网络中具有唯一性。传 感器节点的链路地址为其IPv6地址的传感器节点ID。
图3为本发明所述路由表项示意图,全功能传感器节点包括一个路由表,路由表 项包括五个域,分别为16比特的目的传感器节点链路地址、16比特的第一下一跳链路地 址、16比特的第二下一跳链路地址、8比特的路由代价域以及8比特的生存时间域;目的传 感器节点链路地址记录目的传感器节点IPv6地址的传感器节点ID,第一下一跳链路地址 记录到达目的传感器节点的下一跳节点IPv6地址的传感器节点ID,第二下一跳链路地址 记录到达目的传感器节点的下一跳节点的下一跳节点IPv6地址的传感器节点ID,路由代 价域为路由表所在全功能传感器节点到达目的传感器节点的跳数,生存时间域记录路由表 项的生存时间域,生存时间域随机器时钟自动衰减,当生存时间域衰减为0时,路由表项从 路由表中自动删除,路由表项每被使用一次,其生存时间域都会被设置为最大生存时间域。
图4为本发明所述临时路由表项示意图。全功能传感器节点包括一个临时路由 表,用于存储建立路由时的临时数据;临时路由表项包括四个域,分别为16比特的目的传 感器节点链路地址、16比特的源传感器节点链路地址、8比特的路由代价域及8比特的生存时间域;目的传感器节点链路地址记录目的传感器节点IPv6地址的传感器节点ID,源传感 器节点链路地址记录发起路由发现过程的传感器节点IPv6地址的传感器节点ID,路由代 价域记录发送路由查询帧的源节点到达本节点的跳数,生存时间域记录临时路由表项的生 存时间域,当生存时间域衰减为0时,自动从临时路由表中删除。
图5为本发明所述路由查询帧和路由修复帧示意图,路由查询帧包含1字节的命 令帧标识符、2字节的最终目的节点域、1字节的路由代价域以及多字节的路由路径域,其 中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节 点,1为全功能传感器节点,余下七个比特位标识路由查询命令帧类型,其值为OxOa ;最终 目的节点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到 达转发此帧的跳数;路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地 址的传感器节点ID的集合;路由查询帧的目的地址值为广播地址OxfTfT,源地址值为转发 此帧的全功能传感器节点的传感器节点ID。
所述路由修复帧的格式与路由查询帧相同,也包含1字节的命令帧标识符、2字节 的最终目的节点域、1字节的路由代价域以及多字节的路由路径域,其中,命令帧标识符的 最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器 节点,余下七个比特标识路由查询命令帧类型,其值为OxOc ;最终目的节点域为目的传感 器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达转发此帧的跳数;路 由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的传感器节点ID的集 合;路由查询帧的目的地址值为广播地址OxfTfT,源地址值为转发此帧的全功能传感器节 点的传感器节点ID。
图6为本发明所述路由响应帧和路由修复响应帧示意图。
路由响应帧包含1字节的命令帧标识符、2字节的最终目的节点域、1字节路由代 价域以及多字节的路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器 节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个比特标识路由查询 命令帧类型,其值为OxOb ;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID ; 路由代价域为源传感器节点到达目的传感器节点的跳数;路由路径域记录源传感器节点 到达目的节点所经过中间节点IPv6地址的传感器节点ID的集合;路由响应帧的目的地址 为路由路径域中的下一跳节点的传感器节点ID ;路由响应帧的源地址为转发此帧的全功 能传感器节点的传感器节点ID。
所述路由修复响应帧与路由响应帧的格式相同,也包含1字节的命令帧标识符、2 字节的最终目的节点域、1字节的路由代价域以及1字节的路由路径域,其中,命令帧标识 符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传 感器节点,余下七个字节标识路由查询命令帧类型,其值为OxOd ;最终目的节点域为目的 传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达目的传感器节点 的跳数;路由路径域记录源传感器节点到达目的节点所经过中间节点IPv6地址的传感器 节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节点的传感器节点ID ;路 由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点ID。
图7为本发明所述源节点选择下一跳节点流程示意图,源部分功能传感器节点与 目的部分功能传感器节点进行通信时,源节点选择下一跳节点的过程为步骤301 源节点在一跳范围内广播路由查询命令帧,命令帧的最终目的节点域为目 的节点的传感器节点ID,命令帧标识符的最高比特位为0 ;步骤302 判断接收到路由查询命令帧的节点是否为目的节点,如果是,进行步骤304, 否则进行步骤303 ;步骤303 判断接收到路由查询命令帧的节点是否为全功能传感器节点,如果是,进行 步骤305,否则进行步骤313 ;步骤304 目的节点向源节点返回路由响应巾贞,帧的源地址为源节点的传感器节点ID, 路由代价域为1,进行步骤308;步骤305 判断全功能传感器节点的路由表是否存在到达目的节点的路由表项,如果 存在,进行步骤307,否则进行步骤306 ;步骤306 目的节点向源节点返回路由响应帧,路由响应帧的路由代价域为0,进行步 骤 308 ;步骤307 目的节点向源节点返回路由响应帧,路由响应帧的路由代价域为其到达目 的节点的跳数;步骤308 判断源节点是否收到来自目的节点的路由响应帧,如果收到,进行步骤309, 否则进行步骤310 ;步骤309 源节点直接将数据帧发送给目的节点,进行步骤313 ; 步骤310 判断源节点是否收到路由代价域不为0的路由响应帧,如果收到,进行步骤 311,否则进行步骤312;步骤311 源节点选择路由代价域最小的全功能传感器节点为下一跳节点,并将数据 帧发送给下一跳节点,进行步骤313 ;步骤312 源节点选择返回信号最强的全功能传感器节点作为下一跳节点并将数据帧 发送给下一跳节点; 步骤313 结束。
图8为本发明所述路由建立流程示意图,源全功能传感器节点建立到达目的节点 的路由路径的过程为步骤401 源全功能传感器节点在一跳范围内广播路由查询命令帧,命令帧的最终目 的节点域为目的节点的传感器节点ID,命令帧标识符的最高比特位为1,路由代价域为1, 路由路径域为源全功能传感器节点的传感器节点ID ;步骤402 判断目的节点是否收到路由查询帧,如果收到,执行步骤413 ;否则执行步骤403 ;步骤403 判断接收到路由查询命令帧的节点是否为全功能传感器节点,如果是,执行 步骤404,否则执行步骤422 ;步骤404:判断全功能传感器节点是否在路由查询帧的路由路径域,如果在,执行步骤 422,否则执行步骤405 ;步骤405 判断全功能传感器节点查看路由表中是否存在到达目的节点的路由表项, 如果存在,执行步骤406,否则执行步骤407 ;步骤406 全功能传感器节点返回路由响应帧,帧的源地址为其传感器节点ID,路由代 价域为路由表中相应表项的路由代价域,路由路径域为路由查询帧的路由路径域与全功能传感器节点的传感器节点ID及其路由表项中第一下一跳链路地址和第二下一跳链路地址 的集合,执行步骤414;步骤407 判断全功能借点查看路由查询帧中的路由代价域值是否小于设定的最大跳 数,如果小于,执行步骤408,否则执行步骤422 ;步骤408 全功能传感器节点将路由查询帧的路由代价域值递增1并将自己的传感器 节点ID添加到路由路径域;步骤409:全功能传感器节点查看临时路由表中是否存在设定路由表项,所述路由表 项中源传感器节点链路地址为源全功能传感器节点的传感器节点ID,且目的传感器节点链 路地址域为目的节点的传感器节点ID,如果有,执行步骤410,否则执行步骤412 ;步骤410 全功能传感器节点查看路由查询帧的路由代价域值是否小于临时路由表项 中的路由代价域值,如果是,执行步骤411,否则执行步骤422;步骤411 全功能传感器节点将临时路由表中的路由代价域值更新为路由查询帧的路 由代价域值,广播路由查询帧,执行步骤402 ;步骤412 全功能传感器节点在临时路由表中建立一条新的路由表项,目的链路地址 为目的节点的传感器节点ID,源链路地址为源全功能传感器节点的传感器节点ID,路由代 价域为路由查询帧中路由代价域值,广播路由查询帧,执行步骤402 ;步骤413 在设定时间后,目的节点向路由代价域值最小的路由查询帧的源地址发送 路由响应帧,响应帧的源地址为其传感器节点ID,路由路径域值为路由查询帧的路由路径 域值,目的地址为路由路径域值中的第一个全功能传感器节点的传感器节点ID,路由代价 域为1,最终目的节点域值为路由查询帧的最终目的节点值;步骤414:全功能传感器节点收到路由响应帧后,删除临时路由表中的对应表项并将 路由响应帧的路由代价域域值递增1 ;步骤415 判断全功能传感器节点查看路由表中是否已经存在到达目的节点的路由表 项,如果存在,执行步骤417,否则执行步骤416 ;步骤416 全功能传感器节点添加一条路由表项,目的传感器节点链路地址为路由响 应帧中最终目的节点域值,第一下一跳链路地址和第二下一跳链路地址值从路由响应帧的 路由路径域获取,路由代价域为路由响应帧的路由代价域值,执行步骤419 ;步骤417 判断全功能传感器节点路由表项中的路由代价域是否大于路由响应帧的路 由代价域值,如果大于,执行步骤418,否则执行步骤422 ;步骤418 全功能传感器节点更新路由表项值,第一下一跳链路地址和第二下一跳链 路地址值从路由响应帧的路由路径域获取,路由代价域为路由响应帧的路由代价域值;步骤419 判断收到路由响应帧的全功能传感器节点是否为源全功能传感器节点,如 果是,执行步骤421,否则执行步骤420 ;步骤420 收到路由响应帧的全功能传感器节点将目的地址更新为路由响应帧的路由 路径域的下一跳节点,发送路由响应帧,执行步骤414 ;步骤421 源全功能传感器节点根据路由表中到达目的节点的路由表项,将数据帧发 送到目的节点;步骤422 过程结束。
图9为本发明所述路由修复流程示意图,当全功能传感器节点检测出到达目的节点的路由表项中第一下一跳链路地址无法到达时,全功能传感器节点建立到达第二下一跳 链路地址的路由路径从而修复到达目的节点的路由路径;全功能传感器节点采用路由修复 帧和路由修复响应帧建立到达第二下一跳链路地址的路由路径,其过程为步骤501 源全功能传感器节点在一跳范围内广播路由修复命令帧,命令帧的最终目 的节点域为第二下一跳链路地址的传感器节点ID,命令帧标识符的最高比特位为1,路由 代价域为0,路由路径域为源全功能传感器节点的传感器节点ID和第二下一跳链路地址的 传感器节点ID ;步骤502 判断第二下一跳链路地址是否收到路由修复帧,如果收到,执行步骤509,否 则执行步骤503 ;步骤503 判断接收到路由修复帧的全功能传感器节点是否不在路由查询帧的路由路 径域且路由修复帧中的路由代价域值小于预定最大跳数,如果是,执行步骤504,否则执行 步骤518 ;步骤504 全功能传感器节点将路由修复帧的路由代价域值递增1并将自己的传感器 节点ID添加到路由路径域;步骤505 全功能传感器节点查看临时路由表中是否存在设定路由表项,所述路由表 项的源传感器节点链路地址为源全功能传感器节点的传感器节点ID,且目的传感器节点 链路地址域为第二下一跳链路地址的传感器节点ID,如果是,执行步骤507,否则执行步骤 506 ;步骤506 全功能传感器节点在临时路由表中建立一条新的路由表项,目的链路地址 为第二下一跳链路地址的传感器节点ID,源链路地址为源全功能传感器节点的传感器节点 ID,路由代价域为路由修复帧中路由代价域值,广播路由修复帧,执行步骤502 ;步骤507 全功能传感器节点判断路由修复帧的路由代价域值是否小于临时路由表项 中的路由代价域值,如果是,执行步骤508,否则执行步骤518 ;步骤508 所述全功能传感器节点将临时路由表中的路由代价域值更新为路由修复帧 的路由代价域值,广播路由修复帧,执行步骤502 ;步骤509 在设定时间后,第二下一跳链路地址向路由代价域值最小的路由修复帧的 源地址发送路由修复响应帧,帧源地址为其传感器节点ID,路由路径域值为路由修复帧的 路由路径域值与第二下一跳链路地址的传感器节点ID以及第二下一跳链路地址到达目的 节点的路由表项中的第一下一跳链路地址与第二下一跳链路地址之和,目的地址为路由路 径域值中第二下一跳链路地址前边节点的传感器节点ID,路由代价域为第二下一跳链路地 址中到达目的节点路由表项中的路由代价域,最终目的节点域值为路由修复帧的最终目的 节点值;步骤510:全功能传感器节点收到路由修复响应帧后,删除临时路由表中的对应表项 并将路由修复响应帧的路由代价域值递增1 ;步骤511 全功能传感器节点查看路由表中是否已经存在到达目的节点的路由表项, 如果是,执行步骤513,否则执行步骤512 ;步骤512 全功能传感器节点在路由表中添加一条路由表项,目的传感器节点链路地 址为目的节点的传感器节点ID,第一下一跳链路地址和第二下一跳链路地址值从路由响应 帧的路由路径域获取,路由代价域为路由响应帧的路由代价域值,执行步骤515 ;步骤513 全功能传感器节点路由表项中的路由代价域是否大于路由修复响应帧的路 由代价域值,如果是,执行步骤514,否则执行步骤518 ;步骤514 全功能传感器节点更新路由表项值,第一下一跳链路地址和第二下一跳链 路地址值从路由修复响应帧的路由路径域获取,路由代价域为路由修复响应帧的路由代价 域值;步骤515:判断收到路由响应帧的全功能传感器节点是否为源全功能传感器节点,如 果是,执行步骤517,否则执行步骤516 ;步骤516 收到路由响应帧的全功能传感器节点将目的地址更新为路由修复响应帧的 路由路径域的下一跳节点,发送路由修复响应帧,执行步骤510 ;步骤517 源功能节点根据路由表中到达目的节点的路由表项,将数据帧发送到目的 节占.I— /、、、 步骤518 结束。
图10为本发明所述路由更新流程示意图,当部分功能传感器节点移动引起路由 更新时,全功能传感器节点采用如下步骤进行路由更新步骤601 全功能传感器节点定期向路由表中路由代价域为1的路由表项中的目的部 分功能传感器节点发送查询命令帧;步骤602 部分功能传感器节点收到查询命令帧后,向全功能传感器节点返回响应命 令帧;步骤603:在设定时间内,判断全功能传感器节点是否收到部分功能传感器节点返回 的响应命令帧,如果是,进行步骤609,否则进行步骤604 ;步骤604 全功能传感器节点删除部分功能节点的相关路由表项,同时广播路由删除 命令帧,命令帧负载为部分功能节点的传感器节点ID以及所经过节点的跳数,所述最大设 定跳数为10 ;步骤605 收到路由删除帧的全功能传感器节点收到路由删除命令帧后,查看路由表 是否存在设定路由表项,所述路由表项的目的链路地址等于部分功能节点传感器节点ID, 且第一下一跳链路地址值等于路由删除命令帧源地址,如果存在,进行步骤606,否则进行 步骤609 ;步骤606 收到路由删除帧的全功能传感器节点从路由表中删除部分功能节点所对应 的路由表项,并将路由删除帧中的所经过跳数递增1 ;步骤607 判断路由删除帧中的所经过跳数是否小于最大预定跳数,如果是,进行步骤 608,否则进行步骤609 ;步骤608 收到路由删除帧的全功能传感器节点继续广播路由删除命令帧,执行步骤605 ;步骤609 结束。
综上所述,本发明提供了一种6LoWPAN无线传感器网络路由方法,在所述方法 中,传感器节点可建立到达目的传感器节点的路由路径从而实现与目的传感器节点的数据 通信,当路由路径中的全功能传感器节点失效时,全功能传感器节点可通过路由表自动实 现路由修复功能,无需重新建立路由路径,节省了数据路由开销,缩短了数据路由延迟。综 上所述,本技术具有很高的推广价值。
本发明提供了一种6LoWPAN无线传感器网络路由方法的思路及方法,具体实现该 技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术 领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这 些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技 术加以实现。
权利要求
1.一种6LoWPAN无线传感器网络路由方法,其特征在于,所述6LoWPAN无线传感器网络 的传感器节点包含全功能传感器节点和部分功能传感器节点两类,全功能传感器节点具有 路由转发功能,为固定节点;部分功能传感器节点用于数据采集且不具有路由转发功能,为 移动节点;所述6LoWPAN无线传感器网络传感器节点的IPv6地址由两个部分组成第一部分是 全局路由前缀,一个6LoWPAN无线传感器网络中所有传感器节点的IPv6地址的全局路由前 缀都相同;第二部分是传感器节点ID,用于唯一的标识一个6LoWPAN网络中的传感器节点, 其值为传感器节点出厂时设置的初始ID号,其在一个6LoWPAN无线传感器网络中具有唯一 性;传感器节点的链路地址为其IPv6地址的传感器节点ID ;全功能传感器节点包括一个路由表,路由表项包括五个域,分别为目的传感器节点链 路地址、第一下一跳链路地址、第二下一跳链路地址、路由代价域以及生存时间域;目的传 感器节点链路地址记录目的传感器节点IPv6地址的传感器节点ID,第一下一跳链路地址 记录到达目的传感器节点的下一跳节点IPv6地址的传感器节点ID,第二下一跳链路地址 记录到达目的传感器节点的下一跳节点的下一跳节点IPv6地址的传感器节点ID,路由代 价域为路由表所在全功能传感器节点到达目的传感器节点的跳数,生存时间域记录路由表 项的生存时间域,生存时间域随机器时钟自动衰减,当生存时间域衰减为0时,路由表项 从路由表中自动删除,路由表项每被使用一次,其生存时间域都会被设置为最大生存时间 域;全功能传感器节点包括一个临时路由表,用于存储建立路由时的临时数据;临时路由 表项包括四个域,分别为目的传感器节点链路地址、源传感器节点链路地址、路由代价域及 生存时间域;目的传感器节点链路地址记录目的传感器节点IPv6地址的传感器节点ID,源 传感器节点链路地址记录发起路由发现过程的传感器节点IPv6地址的传感器节点ID,路 由代价域记录发送路由查询帧的源节点到达本节点的跳数,生存时间域记录临时路由表项 的生存时间域,当生存时间域衰减为0时,自动从临时路由表中删除。
2.根据权利要求1所述的一种6LoWPAN无线传感器网络路由方法,其特征在于,所述传 感器节点采用路由查询帧和路由响应帧建立到达目的传感器节点的路由路径;路由查询帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域;所述命 令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为 全功能传感器节点,余下七个比特位标识路由查询命令帧类型,其值为OxOa ;最终目的节 点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达转发 此帧的跳数;路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的传 感器节点ID的集合;路由查询帧的目的地址值为广播地址OxfTfT,源地址值为转发此帧的 全功能传感器节点的传感器节点ID ;路由响应帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其中, 命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1 为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为OxOb ;最终目的节 点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达目的 传感器节点的跳数;路由路径域记录源传感器节点到达目的节点所经过中间节点IPv6地址的传感器节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节点的传感 器节点ID ;路由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点ID ; 所述传感器节点采用路由修复帧和路由修复响应帧实现路由修复; 所述路由修复帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其 中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节 点,1为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为OxOc ;最终目 的节点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点到达 转发此帧的跳数;路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址 的传感器节点ID的集合;路由查询帧的目的地址值为广播地址OxfTfT,源地址值为转发此 帧的全功能传感器节点的传感器节点ID ;所述路由修复响应帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径 域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感 器节点,1为全功能传感器节点,余下七个字节标识路由查询命令帧类型,其值为OxOd;最 终目的节点域为目的传感器节点IPv6地址的传感器节点ID ;路由代价域为源传感器节点 到达目的传感器节点的跳数;路由路径域记录源传感器节点到达目的节点所经过中间节 点IPv6地址的传感器节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节 点的传感器节点ID ;路由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点 ID。
3.根据权利要求2所述的一种6LoWPAN无线传感器网络路由方法,其特征在于,源部 分功能传感器节点与目的部分功能传感器节点进行通信时,源节点选择下一跳节点的过程 为步骤301 源节点在一跳范围内广播路由查询命令帧,命令帧的最终目的节点域为目 的节点的传感器节点ID,命令帧标识符的最高比特位为0 ;步骤302 判断接收到路由查询命令帧的节点是否为目的节点,如果是,进行步骤303, 否则进行步骤304 ;步骤303 判断接收到路由查询命令帧的节点是否为全功能传感器节点,如果是,进行 步骤305,否则进行步骤313 ;步骤304 目的节点向源节点返回路由响应帧,帧的源地址为源节点的传感器节点ID, 路由代价域为1,进行步骤308;步骤305 判断全功能传感器节点的路由表是否存在到达目的节点的路由表项,如果 存在,进行步骤307,否则进行步骤306 ;步骤306 目的节点向源节点返回路由响应帧,路由响应帧的路由代价域为0,进行步 骤 308 ;步骤307:目的节点向源节点返回路由响应帧,路由响应帧的路由代价域为其到达目 的节点的跳数;步骤308 判断源节点是否收到来自目的节点的路由响应帧,如果收到,进行步骤309, 否则进行步骤310 ;步骤309 源节点直接将数据帧发送给目的节点,进行步骤313 ;步骤310 判断源节点是否收到路由代价域不为0的路由响应帧,如果收到,进行步骤·311,否则进行步骤312 ;步骤311 源节点选择路由代价域最小的全功能传感器节点为下一跳节点,并将数据 帧发送给下一跳节点,进行步骤313 ;步骤312 源节点选择返回信号最强的全功能传感器节点作为下一跳节点并将数据帧 发送给下一跳节点; 步骤313 结束。
4.根据权利要求2或3所述的一种6LoWPAN无线传感器网络路由方法,其特征在于,源 全功能传感器节点建立到达目的节点的路由路径的过程为步骤401 源全功能传感器节点在一跳范围内广播路由查询命令帧,命令帧的最终目 的节点域为目的节点的传感器节点ID,命令帧标识符的最高比特位为1,路由代价域为1, 路由路径域为源全功能传感器节点的传感器节点ID ;步骤402 判断目的节点是否收到路由查询帧,如果收到,执行步骤413 ;否则执行步骤·403 ;步骤403 判断接收到路由查询命令帧的节点是否为全功能传感器节点,如果是,执行 步骤404,否则执行步骤422 ;步骤404:判断全功能传感器节点是否在路由查询帧的路由路径域,如果在,执行步骤 422,否则执行步骤405 ;步骤405 判断全功能传感器节点查看路由表中是否存在到达目的节点的路由表项, 如果存在,执行步骤406,否则执行步骤407 ;步骤406 全功能传感器节点返回路由响应帧,帧的源地址为其传感器节点ID,路由代 价域为路由表中相应表项的路由代价域,路由路径域为路由查询帧的路由路径域与全功能 传感器节点的传感器节点ID及其路由表项中第一下一跳链路地址和第二下一跳链路地址 的集合,执行步骤414;步骤407 判断全功能借点查看路由查询帧中的路由代价域值是否小于设定的最大跳 数,如果小于,执行步骤408,否则执行步骤422 ;步骤408 全功能传感器节点将路由查询帧的路由代价域值递增1并将自己的传感器 节点ID添加到路由路径域;步骤409 全功能传感器节点查看临时路由表中是否存在设定路由表项,所述路由表 项中源传感器节点链路地址为源全功能传感器节点的传感器节点ID,且目的传感器节点链 路地址域为目的节点的传感器节点ID,如果有,执行步骤410,否则执行步骤412 ;步骤410 全功能传感器节点查看路由查询帧的路由代价域值是否小于临时路由表项 中的路由代价域值,如果是,执行步骤411,否则执行步骤422;步骤411 全功能传感器节点将临时路由表中的路由代价域值更新为路由查询帧的路 由代价域值,广播路由查询帧,执行步骤402 ;步骤412 全功能传感器节点在临时路由表中建立一条新的路由表项,目的链路地址 为目的节点的传感器节点ID,源链路地址为源全功能传感器节点的传感器节点ID,路由代 价域为路由查询帧中路由代价域值,广播路由查询帧,执行步骤402 ;步骤413 在设定时间后,目的节点向路由代价域值最小的路由查询帧的源地址发送 路由响应帧,响应帧的源地址为其传感器节点ID,路由路径域值为路由查询帧的路由路径域值,目的地址为路由路径域值中的第一个全功能传感器节点的传感器节点ID,路由代价 域为1,最终目的节点域值为路由查询帧的最终目的节点值;步骤414:全功能传感器节点收到路由响应帧后,删除临时路由表中的对应表项并将 路由响应帧的路由代价域域值递增1 ;步骤415 判断全功能传感器节点查看路由表中是否已经存在到达目的节点的路由表 项,如果存在,执行步骤417,否则执行步骤416 ;步骤416 全功能传感器节点添加一条路由表项,目的传感器节点链路地址为路由响 应帧中最终目的节点域值,第一下一跳链路地址和第二下一跳链路地址值从路由响应帧的 路由路径域获取,路由代价域为路由响应帧的路由代价域值,执行步骤419 ;步骤417:判断全功能传感器节点路由表项中的路由代价域是否大于路由响应帧的路 由代价域值,如果大于,执行步骤418,否则执行步骤422 ;步骤418:全功能传感器节点更新路由表项值,第一下一跳链路地址和第二下一跳链 路地址值从路由响应帧的路由路径域获取,路由代价域为路由响应帧的路由代价域值;步骤419:判断收到路由响应帧的全功能传感器节点是否为源全功能传感器节点,如 果是,执行步骤421,否则执行步骤420 ;步骤420 收到路由响应帧的全功能传感器节点将目的地址更新为路由响应帧的路由 路径域的下一跳节点,发送路由响应帧,执行步骤414;步骤421 源全功能传感器节点根据路由表中到达目的节点的路由表项,将数据帧发 送到目的节点;步骤422:过程结束。
5.根据权利要求4所述的一种6LoWPAN无线传感器网络路由方法,其特征在于,当全功 能传感器节点检测出到达目的节点的路由表项中第一下一跳链路地址无法到达时,全功能 传感器节点建立到达第二下一跳链路地址的路由路径从而修复到达目的节点的路由路径; 全功能传感器节点采用路由修复帧和路由修复响应帧建立到达第二下一跳链路地址的路 由路径,其过程为步骤501 源全功能传感器节点在一跳范围内广播路由修复命令帧,命令帧的最终目 的节点域为第二下一跳链路地址的传感器节点ID,命令帧标识符的最高比特位为1,路由 代价域为0,路由路径域为源全功能传感器节点的传感器节点ID和第二下一跳链路地址的 传感器节点ID ;步骤502 判断第二下一跳链路地址是否收到路由修复帧,如果收到,执行步骤509,否 则执行步骤503 ;步骤503 判断接收到路由修复帧的全功能传感器节点是否不在路由查询帧的路由路 径域且路由修复帧中的路由代价域值小于预定最大跳数,如果是,执行步骤504,否则执行 步骤518 ;步骤504 全功能传感器节点将路由修复帧的路由代价域值递增1并将自己的传感器 节点ID添加到路由路径域;步骤505:全功能传感器节点查看临时路由表中是否存在设定路由表项,所述路由表 项的源传感器节点链路地址为源全功能传感器节点的传感器节点ID,且目的传感器节点 链路地址域为第二下一跳链路地址的传感器节点ID,如果是,执行步骤507,否则执行步骤步骤506 全功能传感器节点在临时路由表中建立一条新的路由表项,目的链路地址 为第二下一跳链路地址的传感器节点ID,源链路地址为源全功能传感器节点的传感器节点 ID,路由代价域为路由修复帧中路由代价域值,广播路由修复帧,执行步骤502 ;步骤507 全功能传感器节点判断路由修复帧的路由代价域值是否小于临时路由表项 中的路由代价域值,如果是,执行步骤508,否则执行步骤518 ;步骤508 所述全功能传感器节点将临时路由表中的路由代价域值更新为路由修复帧 的路由代价域值,广播路由修复帧,执行步骤502 ;步骤509 在设定时间后,第二下一跳链路地址向路由代价域值最小的路由修复帧的 源地址发送路由修复响应帧,帧源地址为其传感器节点ID,路由路径域值为路由修复帧的 路由路径域值与第二下一跳链路地址的传感器节点ID以及第二下一跳链路地址到达目的 节点的路由表项中的第一下一跳链路地址与第二下一跳链路地址之和,目的地址为路由路 径域值中第二下一跳链路地址前边节点的传感器节点ID,路由代价域为第二下一跳链路地 址中到达目的节点路由表项中的路由代价域,最终目的节点域值为路由修复帧的最终目的 节点值;步骤510:全功能传感器节点收到路由修复响应帧后,删除临时路由表中的对应表项 并将路由修复响应帧的路由代价域值递增1 ;步骤511 全功能传感器节点查看路由表中是否已经存在到达目的节点的路由表项, 如果是,执行步骤513,否则执行步骤512 ;步骤512 全功能传感器节点在路由表中添加一条路由表项,目的传感器节点链路地 址为目的节点的传感器节点ID,第一下一跳链路地址和第二下一跳链路地址值从路由响应 帧的路由路径域获取,路由代价域为路由响应帧的路由代价域值,执行步骤515 ;步骤513 全功能传感器节点路由表项中的路由代价域是否大于路由修复响应帧的路 由代价域值,如果是,执行步骤514,否则执行步骤518 ;步骤514:全功能传感器节点更新路由表项值,第一下一跳链路地址和第二下一跳链 路地址值从路由修复响应帧的路由路径域获取,路由代价域为路由修复响应帧的路由代价 域值;步骤515 判断收到路由响应帧的全功能传感器节点是否为源全功能传感器节点,如 果是,执行步骤517,否则执行步骤516 ;步骤516:收到路由响应帧的全功能传感器节点将目的地址更新为路由修复响应帧的 路由路径域的下一跳节点,发送路由修复响应帧,执行步骤510 ;步骤517 源功能节点根据路由表中到达目的节点的路由表项,将数据帧发送到目的 节占.I— /、、、 步骤518 结束。
6.根据权利要求5所述的一种6LoWPAN无线传感器网络路由方法,其特征在于,当部分 功能传感器节点移动引起路由更新时,全功能传感器节点采用如下步骤进行路由更新步骤601 全功能传感器节点定期向路由表中路由代价域为1的路由表项中的目的部 分功能传感器节点发送查询命令帧;步骤602 部分功能传感器节点收到查询命令帧后,向全功能传感器节点返回响应命令帧;步骤603 在设定时间内,全功能传感器节点是否收到部分功能传感器节点返回的响 应命令帧?如果是,进行步骤609,否则进行步骤604 ;步骤604:全功能传感器节点删除部分功能节点的相关路由表项,同时广播路由删除 命令帧,命令帧负载为部分功能节点的传感器节点ID以及所经过节点的跳数,所述最大设 定跳数为10 ;步骤605:收到路由删除帧的全功能传感器节点收到路由删除命令帧后,查看路由表 是否存在设定路由表项,所述路由表项的目的链路地址等于部分功能节点传感器节点ID, 且第一下一跳链路地址值等于路由删除命令帧源地址,如果存在,进行步骤606,否则进行 步骤609 ;步骤606 收到路由删除帧的全功能传感器节点从路由表中删除部分功能节点所对应 的路由表项,并将路由删除帧中的所经过跳数递增1 ;步骤607 判断路由删除帧中的所经过跳数是否小于最大预定跳数,如果是,进行步骤 608,否则进行步骤609 ;步骤608 收到路由删除帧的全功能传感器节点继续广播路由删除命令帧,执行步骤605 ;步骤609 结束。
全文摘要
本发明提供了一种6LoWPAN无线传感器网络路由方法,6LoWPAN无线传感器网络包含全功能传感器节点和部分功能传感器节点,传感器节点的IPv6地址由两个部分组成第一部分是全局路由前缀;第二部分是传感器节点ID。全功能传感器节点包括一个路由表,路由表项包括五个域,分别为目的传感器节点链路地址、第一下一跳链路地址、第二下一跳链路地址、路由代价域以及生存时间域。传感器节点通过路由表建立到达目的传感器节点的路由路径从而实现与目的传感器节点的数据通信,当路由路径中的全功能传感器节点失效时,可通过路由表自动实现路由修复功能,无需重新建立路由路径,节省了数据路由开销,缩短了数据路由延迟。
文档编号H04W40/00GK102035731SQ20101055615
公开日2011年4月27日 申请日期2010年11月23日 优先权日2010年11月23日
发明者王晓喃 申请人:常熟理工学院