IPC分类号 : H04L12/56,H04L29/12,H04W40/00,H04W84/18
专利摘要
本发明提供了一种6LoWPAN无线传感器网络路由方法,6LoWPAN无线传感器网络包含全功能传感器节点和部分功能传感器节点,传感器节点的IPv6地址由两个部分组成:第一部分是全局路由前缀;第二部分是传感器节点ID。全功能传感器节点包括一个路由表,路由表项包括五个域,分别为目的传感器节点链路地址、第一下一跳链路地址、第二下一跳链路地址、路由代价域以及生存时间域。传感器节点通过路由表建立到达目的传感器节点的路由路径从而实现与目的传感器节点的数据通信,当路由路径中的全功能传感器节点失效时,可通过路由表自动实现路由修复功能,无需重新建立路由路径,节省了数据路由开销,缩短了数据路由延迟。
说明书
技术领域
本发明涉及一种网络路由方法,尤其涉及的是一种基于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无线传感器网络中。
发明内容发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种6LoWPAN无线传感器网络路由方法。
技术方案:本发明公开了一种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为全功能传感器节点,余下七个比特位标识路由查询命令帧类型,其值为0x0a;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达转发此帧的跳数; 路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的传感器节点ID的集合;路由查询帧的目的地址值为广播地址0xffff,源地址值为转发此帧的全功能传感器节点的传感器节点ID;
路由响应帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为0x0b;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达目的传感器节点的跳数; 路由路径域记录源传感器节点到达目的节点所经过中间节点IPv6地址的传感器节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节点的传感器节点ID;路由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点ID;
所述传感器节点采用路由修复帧和路由修复响应帧实现路由修复;
所述路由修复帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为0x0c;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达转发此帧的跳数; 路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的传感器节点ID的集合;路由查询帧的目的地址值为广播地址0xffff,源地址值为转发此帧的全功能传感器节点的传感器节点ID;
所述路由修复响应帧包含命令帧标识符、最终目的节点域、路由代价域以及路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个字节标识路由查询命令帧类型,其值为0x0d;最终目的节点域为目的传感器节点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:源功能节点根据路由表中到达目的节点的路由表项,将数据帧发送到目的节点;
步骤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为全功能传感器节点,余下七个比特位标识路由查询命令帧类型,其值为0x0a;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达转发此帧的跳数; 路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的传感器节点ID的集合;路由查询帧的目的地址值为广播地址0xffff,源地址值为转发此帧的全功能传感器节点的传感器节点ID。
所述路由修复帧的格式与路由查询帧相同,也包含1字节的命令帧标识符、2字节的最终目的节点域、1字节的路由代价域以及多字节的路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为0x0c;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达转发此帧的跳数; 路由路径域记录源传感器节点到达转发此帧所经过中间节点IPv6地址的传感器节点ID的集合;路由查询帧的目的地址值为广播地址0xffff,源地址值为转发此帧的全功能传感器节点的传感器节点ID。
图6为本发明所述路由响应帧和路由修复响应帧示意图。
路由响应帧包含1字节的命令帧标识符、2字节的最终目的节点域、1字节路由代价域以及多字节的路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个比特标识路由查询命令帧类型,其值为0x0b;最终目的节点域为目的传感器节点IPv6地址的传感器节点ID;路由代价域为源传感器节点到达目的传感器节点的跳数; 路由路径域记录源传感器节点到达目的节点所经过中间节点IPv6地址的传感器节点ID的集合;路由响应帧的目的地址为路由路径域中的下一跳节点的传感器节点ID;路由响应帧的源地址为转发此帧的全功能传感器节点的传感器节点ID。
所述路由修复响应帧与路由响应帧的格式相同,也包含1字节的命令帧标识符、2字节的最终目的节点域、1字节的路由代价域以及1字节的路由路径域,其中,命令帧标识符的最高比特位标识转发此帧的传感器节点类型,0为部分功能传感器节点,1为全功能传感器节点,余下七个字节标识路由查询命令帧类型,其值为0x0d;最终目的节点域为目的传感器节点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:源功能节点根据路由表中到达目的节点的路由表项,将数据帧发送到目的节点;
步骤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无线传感器网络路由方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
一种6LoWPAN无线传感器网络路由方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0