一种无线传感器网络中的节点的制作方法

文档序号:14993819发布日期:2018-07-20 23:08阅读:185来源:国知局
本发明涉及传感器
技术领域
,更具体地,涉及一种无线传感器网络中的节点。
背景技术
:传感器网络邻居发现协议是一种重要的传感器网络协议,用于快速高效的发现某一范围内的邻居节点,为其他应用提供信息和进行邻居节点间的有效连接。在复杂的深水环境中,采用邻居发现协议可以进行节点间的连接,使节点形成一个可用的无线传感器网络。然而由于复杂的环境存在难以预测等问题,易导致节点间不能相互连接成一个可用的网络,而形成网络盲区,使得该节点不能与任何一个邻居节点相连接,从而导致无线传感器网络的连通性差、数据的传递率较低,不能收集处于网络盲区中的节点采集的数据。现有技术利用自主水下航行器移动来采集水下无线传感器网络覆盖盲区的监测数据,首先将要覆盖的区域网格化为一组相同大小的正六边形/正十二面体网格,每个网格中心与顶点间距离等于所述自主水下航行器的覆盖半径;然后以适当的策略遍历各个网格,从而实现盲区的数据采集,并根据采集的数据消除盲区。现有技术必须在完全熟悉水下环境并找到盲区的前提下使用,对于复杂的深水环境,如果不能提前找到其盲区,便不能适用;而且要使节点在水下形成相同大小的正六边形或者正十二面体需要经过大量的测量,由于水下环境复杂,现有技术还存在不方便测量等问题。技术实现要素:为克服现有无线传感器网络中的节点存在的难以消除未知的网络盲区的不足,本发明提供一种无线传感器网络中的节点。本发明提供一种无线传感器网络中的节点,用于广播第一消息,当广播第一消息的功率达到预设的最大功率,且广播第一消息的次数达到预设的最大次数时,在有效期内仍未接收到其他节点回复的第二消息,则按照预设的移动规则移动,在移动过程中接收到任意节点发送的消息时,以预设的最小功率广播第一消息;在有效期内接收到其他节点回复的第二消息后,则将每一回复第二消息的其他节点的信息保存到路由表中。优选地,一种无线传感器网络中的节点,还用于执行以下步骤:s1、在每次以当前功率广播第一消息后的有效期内,未接收到其他节点回复的第二消息时,则继续广播第一消息,直至以当前功率广播第一消息的次数达到预设的最大次数;s2、当以当前功率广播第一消息的次数达到预设的最大次数后仍然没有收到其他节点回复的第二消息,则重置广播第一消息的次数,并增加功率重复步骤s1,直至广播第一消息的功率达到预设的最大功率。优选地,将广播第一消息的次数第一次达到预设的最大次数时的有效期作为第一有效期;将所述广播第一消息的次数第一次达到预设的最大次数后的有效期作为第二有效期,且所述第二有效期的时长短于所述第一有效期的时长;所述节点按照预设的移动规则移动前,根据所述第一有效期确定第一消息的广播半径;所述节点按照预设的移动规则移动后,根据所述第二有效期确定所述广播半径。优选地,所述按照预设的移动规则移动,在移动过程中接收到任意节点发送的消息时,以预设的最小功率广播第一消息的具体步骤包括:s31、以任一方向开始移动;s32、在移动过程中尝试接收其他节点发送的消息;当接收到其他节点发送的消息时,则停止移动,以预设的最小功率广播第一消息,之后执行步骤s1;当未接收到其他节点发送的消息时,则沿当前移动方向继续移动,直至在当前移动方向上移动的总距离达到预设的最大距离。优选地,所述步骤s32之后还包括:s33、当在当前移动方向上移动的总距离达到预设的最大距离时,将当前移动方向顺时针旋转预设的第一角度获得新的移动方向,沿新的移动方向继续移动,之后重复步骤s32,直至移动到按照预设的移动规则移动前的位置s34、当沿当前移动方向移动到按照预设的移动规则移动前的位置时,将当前移动方向逆时针旋转所述第一角度获得新的移动方向,沿新的移动方向继续移动;在每次移动过程中尝试接收其他节点发送的消息;当接收到其他节点发送的消息时,则停止移动,以预设的最小功率广播第一消息,之后执行步骤s1;当未接收到其他节点发送的消息时,则沿当前移动方向继续移动,直至在当前移动方向上移动的总距离达到预设的最大距离;当在当前移动方向上移动的总距离达到预设的最大距离时,将当前移动方向逆时针旋转所述第一角度获得新的移动方向,沿新的移动方向继续移动,直至再次移动到按照预设的移动规则移动前的位置。优选地,一种无线传感器网络中的节点,还用于当在有效期内接收到其他节点回复的第二消息,且路由表中存在第一节点的信息时,向所述第一节点发送第三消息,当在所述第二有效期内接收到所述第一节点根据所述第三消息回复的第二消息时,获取所述第一节点的信息并更新到路由表中;其中,所述第一节点为路由表中回复第二消息的其他节点之外的节点。优选地,所述回复第二消息的其他节点的信息至少包括:回复第二消息的其他节点与所述节点之间的第一延迟时间、第一距离和回复第二消息的功率。优选地,所述第二消息至少包含第一消息的传输时间和回复第二消息的功率;相应地,获取回复第二消息的其他节点的信息的具体步骤包括:根据第二消息,获取第一消息的传输时间和所述回复第二消息的功率;根据所述传输时间获取所述第一距离;根据发送第一消息的时刻、所述传输时间和接收每一第二消息的时刻,获取所述第一延迟时间;所述第一延迟时间=t1-t0-t其中,t0表示发送第一消息的时刻,t1表示接收第二消息的时刻,t表示第一消息的传输时间。优选地,一种无线传感器网络中的节点,还用于按照预设的选择规则从路由表中选择最优的其他节点,并将数据转发至所述最优的其他节点。优选地,所述按照预设的选择规则从路由表中选择最优的其他节点的具体步骤包括:根据预设的优先级,从路由表中选择所述第一延迟时间最小、所述距离最小或所述回复第二消息的功率最小的其他节点,作为所述最优的其他节点。本发明提供的一种无线传感器网络中的节点,通过节点的自主移动,将该节点移出网络盲区,成为可连接节点,从而消除网络盲区,不需要预先获知网络盲区的情况,也不需要对无线传感器覆盖的区域进行测量,能更快速、方便地提高无线传感器网络的连通性和数据的传递率,减少无线传感器网络节点相互连接时不必要的能量损失和延迟,延长节点的工作时间和工作寿命。具体实施方式下面结合实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。在本发明的描述中,需要说明的是,除非另有说明,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。需要说明的是,本发明提供的一种无线传感器网络中的节点,尤其适用于复杂环境,特别是复杂的水下环境。一种无线传感器网络中的节点,用于广播第一消息,当广播第一消息的功率达到预设的最大功率,且广播第一消息的次数达到预设的最大次数时,在有效期内仍未接收到其他节点回复的第二消息,则按照预设的移动规则移动,在移动过程中接收到任意节点发送的消息时,以预设的最小功率广播第一消息;在有效期内接收到其他节点回复的第二消息后,则将每一回复第二消息的其他节点的信息保存到路由表中。需要说明的是,无线传感器网络中的节点有两种连接状态:可连接和不可连接。当节点没有与任何一个连接状态为可连接的其他节点连接时,该节点的连接状态为不可连接;当节点与任何一个连接状态为可连接的其他节点连接时,该节点的连接状态为可连接。连接状态为不可连接的节点称为不可连接的节点;连接状态为可连接的节点称为可连接的节点。每个节点的内存中都包括一个用于描述该节点的连接状态的字段。例如,该字段为iscontact,当iscontact=false时,说明该节点的连接状态为不可连接;当iscontact=true时,说明该节点的连接状态为可连接。当节点与任一连接状态为可连接的其他节点连接时,该节点的连接状态为可连接,该节点的字段iscontact改为true;当节点没有与任一连接状态为可连接的其他节点连接时,该节点的连接状态为不可连接,该节点的字段iscontact改为false。本发明提供的一种无线传感器网络中的节点通过广播消息的方式,寻找并发现其邻居节点中连接状态为可连接的节点,即节点的可连接的其他节点。在无线网络中,单跳通信范围内无线信号可达的节点称为邻居节点。每个节点都有一个路由表,路由表用于保存该节点的邻居节点的信息,从而能根据路由表在进行数据转发时,将数据转发到相应的邻居节点。具体地,无线传感器网络中的节点刚上电,处于初始状态时,其连接状态为不可连接,广播第一消息,尝试接收其他节点回复的第二消息,与可连接的其他节点建立连接。在有效期内未接收到其他节点回复的第二消息时,通过重复广播第一消息和增加功率广播第一消息的方式,继续尝试接收其他节点回复的第二消息,与可连接的其他节点建立连接。第一消息为邻居通告消息,也称为hello消息、信标消息。例如,hello消息的格式为messagesendnodeidpower其中,字段message表示第一消息的类型;字段sendnodeid表示广播第一消息的节点的标识;字段power表示广播第一消息的功率。当广播第一消息的功率达到预设的最大功率,且广播第一消息的次数达到预设的最大次数时,在有效期内仍未接收到其他节点回复的第二消息,说明广播第一消息的节点处于网络盲区,该节点按照预设的移动规则移动,以移出网络盲区。节点按照预设的移动规则移动的过程中,尝试接收其他节点发送的任意消息,当接收到任意节点发送的消息时,将广播第一消息的功率减为预设的最小功率,以预设的最小功率广播第一消息,再次尝试接收其他节点回复的第二消息,与可连接的其他节点建立连接。其他节点接收到第一消息,说明自己的连接状态是可连接的,使自己的内存中的字段iscontact的值为true。其他节点接收到第一消息后,通过广播第一消息的节点的标识nodeid判断广播第一消息的节点的信息是否在自己的路由表中。当广播第一消息的节点的信息在自己的路由表中时,更新该路由表中相关的记录;当广播第一消息的节点的信息不在自己的路由表中时,在该路由表中增加一条记录,该记录为广播第一消息的节点的信息。可连接的其他节点检查自己的路由表后,向广播第一消息的节点回复第二消息。第二消息至少包含回复第二消息的其他节点的连接状态。因此,回复第二消息的其他节点都是可连接的节点。在实际无线传感器网络中,节点通过合适的装置来实现移动。例如,在水下环境中,无线传感器网络中的节点可以通过自主水下航行器(autonomousunderwatervehicle,简称auv)来移动。当接收到其他节点回复的第二消息,超出本次广播第一消息的有效期时,说明该第二消息是其他节点至少一次转发后,接收到第一消息的节点进行的回复,回复该第二消息的节点不是广播第一消息的节点的邻居节点,不再进行后面的处理过程。在本次广播第一消息的有效期内接收到其他节点回复的第二消息,说明回复第二消息的其他节点为广播第一消息的节点的可连接的邻居节点。在本次广播第一消息的有效期内接收到其他节点回复的第二消息后,从每一其他节点回复的第二消息中,获取该其他节点的信息,并保存到广播第一消息的节点的路由表中。通过上述过程,使节点移出无线传感器网络的网络盲区,与其他可连接的节点建立连接,加入到无线传感器网络中,更新自己的路由表,从而可以实现将数据转发至其他节点。本发明提供的一种无线传感器网络中的节点,通过节点的自主移动,将该节点移出网络盲区,成为可连接节点,从而消除网络盲区,不需要预先获知网络盲区的情况,也不需要对无线传感器覆盖的区域进行测量,能更快速、方便地提高无线传感器网络的连通性和数据的传递率,减少无线传感器网络节点相互连接时不必要的能量损失和延迟,延长节点的工作时间和工作寿命。基于上述实施例,一种无线传感器网络中的节点,还用于执行以下步骤:步骤s1、在每次以当前功率广播第一消息后的有效期内,未接收到其他节点回复的第二消息时,则继续广播第一消息,直至以当前功率广播第一消息的次数达到预设的最大次数;步骤s2、当以当前功率广播第一消息的次数达到预设的最大次数后仍然没有收到其他节点回复的第二信息,则重置广播第一消息的次数,并增加功率重复步骤s1,直至广播第一消息的功率达到预设的最大功率。具体地,步骤s1、无线传感器网络中的节点刚上电,处于初始状态时,其连接状态为不可连接,以当前功率广播第一消息,在本次广播第一消息后的有效期内,未接收到其他节点回复的第二消息时,说明没有发现节点的可连接的其他节点,节点再次以当前功率广播第一消息,直至广播第一消息的次数达到预设的最大次数maxnumber。此时,为广播第一消息的次数第一次达到预设的最大次数。步骤s1中,每次以当前功率广播第一消息后,都重复上述过程,直至在本次广播第一消息的有效期内接收到其他节点回复的第二消息,或广播第一消息的次数达到预设的最大次数,仍然没有在广播第一消息的有效期内接收到其他节点回复的第二消息。广播第一消息的具体方式,可以通过启动用于广播第一消息的算法的方式实现。例如,通过名为getcontact()的算法广播第一消息。getcontact()算法的的具体代码为:当广播第一消息的次数达到预设的最大次数,仍然没有在本次广播第一消息的有效期内接收到其他节点回复的第二消息时,说明广播第一消息的节点处于网络盲区,重置路由表,进入恢复阶段。在恢复阶段中,执行步骤s2,先将广播第一消息的次数重置为0,增加功率继续广播第一消息。通过增加功率继续广播第一消息,执行步骤s1,尝试连接到距离更远的其他节点。增加功率继续广播第一消息后,在本次广播第一消息的有效期内,未接收到其他节点回复的第二消息时,节点以增加后的功率再次广播第一消息,直至广播第一消息的次数达到预设的最大次数。每次增加功率广播第一消息后,都重复上述过程,直至在本次广播第一消息的有效期内接收到其他节点回复的第二消息,或广播第一消息的次数达到预设的最大次数,仍然没有在本次广播第一消息的有效期内接收到其他节点回复的第二消息。增加广播第一消息的功率的具体方式,可以通过启动用于控制广播第一消息的功率的算法的方式实现。例如,通过名为power()的算法控制广播第一消息的功率。power()算法的的具体代码为:当增加功率广播第一消息的次数达到预设的最大次数,仍然没有在本次广播第一消息的有效期内接收到其他节点回复的第二消息时,继续增加功率,直至广播第一消息的功率逐步达到预设的最大功率。在恢复阶段中,当以预设的最大功率广播第一消息的次数达到预设的最大次数,仍然没有在本次广播第一消息的有效期内接收到其他节点回复的第二消息时,说明广播第一消息的节点处于网络盲区,则按照预设的移动规则移动,以移出盲区。在移动过程中接收到任意节点发送的消息时,以预设的最小功率广播第一消息。以预设的最小功率广播第一消息后的过程,与上述节点从刚上电的初始状态,广播第一消息后的过程类似,此处不再赘述。本发明实施例通过逐步增加广播第一消息的功率,能减少节点不必要的能量损失,减少能耗。基于上述实施例,作为一个优选实施例,将广播第一消息的次数第一次达到预设的最大次数时的有效期作为第一有效期;将广播第一消息的次数第一次达到预设的最大次数后的有效期作为第二有效期,且第二有效期的时长短于第一有效期的时长。需要理解的是,当接收到其他节点回复的第二消息,超出本次广播第一消息的有效期时,说明该第二消息是其他节点至少一次转发后,接收到第一消息的节点进行的回复,回复该第二消息的节点不是广播第一消息的节点的邻居节点,不再进行后面的处理过程。为了排除接收到的非邻居节点回复的第二消息,需要对第一消息设置合适的有效期。无线传感器网络中的节点刚上电时,处于初始状态,会有加载路由表、等待其他节点成为可连接节点等过程,上述过程都需要时间,而初始状态结束后,加载路由表、等待其他节点成为可连接节点等过程已完成。因此,可以将从处于初始状态广播第一消息,直至广播第一消息的次数第一次达到预设的最大次数的过程作为第一阶段,在第一阶段中,节点处于初始状态,相应地,每次广播第一消息的有效期为第一有效期;而将广播第一消息的次数第一次达到预设的最大次数后的过程作为第二阶段,在第二阶段中,初始状态结束,相应地,每次广播第一消息的有效期为第二有效期。由于第二阶段中不要进行第一阶段中的加载路由表、等待其他节点成为可连接节点等过程,因此,第二有效期的时长短于第一有效期的时长。本发明实施例通过在节点连接其他节点的两个阶段设置不同的第一消息的有效期,且第二有效期短于第一有效期,能更好地排除非邻居节点,能更快速地提高无线传感器网络的连通性和数据的传递率。基于上述实施例,按照预设的移动规则移动,在移动过程中接收到任意节点发送的消息时,以预设的最小功率广播第一消息的具体步骤包括:步骤s31、以任一方向开始移动;步骤s32、在移动过程中尝试接收其他节点发送的消息;当接收到其他节点发送的消息时,则停止移动,以预设的最小功率广播第一消息,之后执行步骤s1;当未接收到其他节点发送的消息时,则沿当前移动方向继续移动,直至在当前移动方向上移动的总距离达到预设的最大距离。具体地,步骤s31,当广播第一消息的功率达到预设的最大功率,且广播第一消息的次数达到预设的最大次数时,在有效期内仍未接收到其他节点回复的第二消息,广播第一消息的节点以任一方向开始移动。步骤s32,在移动的过程中,尝试接收其他节点发送的任意消息。尝试接收其他节点发送的任意消息的范围为以该节点为圆心,该节点广播第一消息的广播半径为半径的圆。需要说明的是,每个节点的内存中都包括一个用于记录第一消息的广播半径的字段。当广播第一消息的次数第一次达到预设的最大次数时,说明广播第一消息的节点处于网络盲区。也就是说,以该节点为圆心,第一消息的广播半径为半径的圆内,没有发现可连接的其他节点。节点按照预设的移动规则移动前,第一消息的有效期有两个:第一有效期和第二有效期。由于第二有效期的时长短于第一有效期的时长,在第一有效期内第一消息的广播距离大于在第二有效期内第一消息的广播距离。因此,在第一有效期内第一消息的广播范围包括了在第二有效期内第一消息的广播范围,且第一有效期内第一消息的广播范围均为网络盲区。所以,节点按照预设的移动规则移动前,根据第一有效期确定第一消息的广播半径。节点按照预设的移动规则移动后,第一消息的有效期均为第二有效期,因此,根据第二有效期确定第一消息的广播半径。第一次从上电时的位置按照预设的移动规则移动时,第一次的移动距离等于按照预设的移动规则移动前,根据第一有效期确定第一消息的广播半径。之后的移动过程,均在按照预设的移动规则移动后,根据第二有效期确定第一消息的广播半径。当移动过程中接收到其他节点发送的消息时,停止移动,将广播第一消息的功率减为预设的最小功率,以预设的最小功率广播第一消息,尝试接收可连接的其他节点回复的第二消息、与可连接的其他节点建立连接。以预设的最小功率广播第一消息后的过程,之后执行步骤s1,与上述节点广播第一消息后的过程类似。当在有效期内未接收到其他节点回复的第二消息时,重复广播第一消息和增加功率广播第一消息,直至广播第一消息的功率达到预设的最大功率,且广播第一消息的次数达到预设的最大次数。当在任一次广播第一消息的有效期内接收到其他节点回复的第二消息时,说明该节点已经移出盲区,找到了可连接的其他节点,不再继续移动。当在当前移动过程中未接收到其他节点发送的消息时,继续沿当前方向移动,继续在移动过程中尝试接收其他节点发送的消息,直至在当前移动方向上移动的总距离达到预设的最大距离。基于上述实施例,步骤s32之后还包括:步骤s33、当在当前移动方向上移动的总距离达到预设的最大距离时,将当前移动方向顺时针旋转预设的第一角度获得新的移动方向,沿新的移动方向继续移动,之后重复步骤s32,直至移动到按照预设的移动规则移动前的位置;步骤s34、当沿当前移动方向移动到按照预设的移动规则移动前的位置时,将当前移动方向逆时针旋转第一角度获得新的移动方向,沿新的移动方向继续移动;在每次移动过程中尝试接收其他节点发送的消息;当接收到其他节点发送的消息时,则停止移动,以预设的最小功率广播第一消息,之后执行步骤s1;当未接收到其他节点发送的消息时,则沿当前移动方向继续移动,直至在当前移动方向上移动的总距离达到预设的最大距离;当在当前移动方向上移动的总距离达到预设的最大距离时,将当前移动方向逆时针旋转第一角度获得新的移动方向,沿新的移动方向继续移动,直至再次移动到按照预设的移动规则移动前的位置。具体地,步骤s33,当在当前移动方向上移动的总距离达到预设的最大距离时,说明在沿当前移动方向的移动路径周围未发现可连接的其他节点。此时,为防止节点距离可连接的其他节点越来越远,可以改变当前移动方向,获得新的移动方向,并沿新的移动方向继续移动,使新的移动方向成为新的当前移动方向。作为一个可选实施例,可以将当前移动方向顺时针旋转预设的第一角度,获得新的移动方向,节点沿新的移动方向继续移动,之后重复步骤s32。若在移动过程中一直未发现可连接的其他节点或未接收到其他节点发送的消息,顺时针改变移动方向,特别是预设的第一角度为90度、60度或120度等可以被360度整除的度数时,节点经过若干次移动,会回到按照预设的移动规则移动前的位置。说明在节点的移动路径包围的范围内未发现可连接的其他节点。当节点沿当前移动方向移动到按照预设的移动规则移动前的位置时,即节点回到初始的位置,可以将当前移动方向逆时针旋转第一角度,获得新的移动方向,沿新的移动方向继续移动。在每次移动过程中尝试接收其他节点发送的消息。当移动过程中接收到其他节点发送的消息时,停止移动,将广播第一消息的功率减为预设的最小功率,以预设的最小功率广播第一消息,尝试接收可连接的其他节点回复的第二消息、与可连接的其他节点建立连接。当在当前移动过程中未接收到其他节点发送的消息时,继续沿当前方向移动,继续在移动过程中尝试接收其他节点发送的消息,直至在当前移动方向上移动的总距离达到预设的最大距离。逆时针改变移动方向后,当在当前移动方向上移动的总距离达到预设的最大距离时,将当前移动方向仍然逆时针旋转第一角度,获得新的移动方向,沿新的移动方向继续移动,使新的移动方向成为新的当前移动方向。由于预设的第一角度为90度、60度或120度等可以被360度整除的度数,若逆时针改变移动方向,在移动过程中一直未发现可连接的其他节点或未接收到其他节点发送的消息,节点经过若干次移动,会再次移动到按照预设的移动规则移动前的位置。此时,说明节点距离可连接的其他节点都比较远,节点再次移动到按照预设的移动规则移动前的位置后,不再继续移动。例如,在步骤s33中,改变移动方式时,通过将当前移动方向顺时针旋转90度,获得新的移动方向;步骤s34中,当节点会回到按照预设的移动规则移动前的位置后,之后每次需改变移动方向时,将当前移动方向逆时针旋转90度,获得新的移动方向,并沿新的移动方向继续移动。本发明实施例通过当某一方向的移动距离达到最大后改变移动方向,并在节点回到原始位置后反向改变移动方向,再次尝试移出网络盲区,从而能通过合适的移动路径,移出网络盲区,成为可连接节点,从而消除网络盲区,能提高无线传感器网络的连通性和数据的传递率;且不需要预先获知网络盲区的情况,也不需要对无线传感器覆盖的区域进行测量,能更快速、方便地提高无线传感器网络的连通性和数据的传递率,减少无线传感器网络节点相互连接时不必要的能量损失和延迟。进一步地,通过在节点按照预设的移动规则移动前后,确定不同的广播半径,能更快地使节点移出网络盲区,快速提高无线传感器网络的连通性和数据的传递率。基于上述实施例,一种无线网络中的节点,还用于当路由表中存在第一节点的信息时,向第一节点发送第三消息,当在第二有效期内接收到可连接的第一节点根据第三消息回复的第二消息时,获取第一节点的信息并更新到路由表中;其中,第一节点为路由表中回复第二消息的其他节点之外的节点。需要说明的是,每次节点上电,处于初始状态,会加载路由表。上次上电发现的可连接的其他节点保存在路由表中。本次上电发现的可连接的其他节点与上次上电发现的可连接的其他节点可能并不完全相同。当在有效期内未收到上次上电发现的可连接的其他节点回复的第二消息时,若干个上次上电发现的可连接的其他节点在路由表中,但不同于本次回复第二消息的可连接的其他节点。上述若干个上次上电发现的可连接的其他节点为第一节点。若干个,指一个或多个。当路由表中存在第一节点的信息时,第一节点为一个或多个,广播第一消息的节点向每一第一节点发送第三消息。发送第三消息不采用广播的方式。例如,第三消息为helloagain消息,helloagain消息的格式为othernodeidisconnecteddelaypower其中,字段othernodeid表示第一节点的标识;字段isconnected表示节点是否可连接;字段delay表示第三消息的延迟时间;字段power表示发送第三消息的功率。若第一节点接收到第三消息,当第一节点的路由表中保存了广播第一消息的节点的信息,且第一节点为可连接的节点时,第一节点向广播第一消息的节点回复第二消息。当广播第一消息的节点接收到第一节点根据第三消息回复的第二消息时,从该第二消息中获取的对应的第一节点的信息,并更新到广播第一消息的节点的路由表中。第一节点通过广播第一消息的节点的标识nodeid判断广播第一消息的节点的信息是否在自己的路由表中。本发明实施例通过对第一节点发送第三消息,尝试与上次发现的可连接的其他节点进行再次连接,能发现更多的可连接的其他节点,提高无线传感器网络的连通性和数据的传递率。基于上述实施例,回复第二消息的其他节点的信息至少包括:回复第二消息的其他节点与节点之间的第一延迟时间、第一距离和回复第二消息的功率。第二消息至少包含第一消息的传输时间和回复第二消息的功率;相应地,获取回复第二消息的其他节点的信息的具体步骤包括:根据第二消息,获取第一消息的传输时间和回复第二消息的功率;根据传输时间获取第一距离;根据发送第一消息的时刻、传输时间和接收每一第二消息的时刻,获取第一延迟时间和第一距离;第一延迟时间=t1-t0-t;其中,t0表示发送第一消息的时刻,t1表示接收第二消息的时刻,t表示第一消息的传输时间。具体地,节点接收到其他节点回复的第二消息后,从其他节点回复的第二消息中,获取其他节点的信息至少包括:回复第二消息的其他节点与节点之间的第一延迟时间、第一距离和回复第二消息的功率。上述信息反映了节点与其他节点之间的连接状况。其他节点的信息还可以包括回复第二消息的其他节点的标识nodeid。第二消息至少包含第一消息的传输时间和回复第二消息的功率。例如,第二消息为answer消息,answer消息的格式为messageanswernodeidtiscontactdelaypower其中,字段message表示第二消息的类型;字段answernodeid表示回复第二消息的其他节点的标识;字段t表示第一消息(hello消息)的传输时间;字段iscontact表示回复第二消息的其他节点的连接状态,字段iscontact的值为ture;字段delay表示第二消息的延迟时间;字段power表示回复第二消息的功率。因此,回复第二消息的其他节点的信息中,回复第二消息的功率可以从第二消息中直接获取。从第二消息中还可获取第一消息的传输时间。广播第一消息的节点根据发送第一消息的时刻t0、接收第二消息的时刻t1和第一消息的传输时间,可以获取回复第二消息的其他节点与广播第一消息的节点之间的第一延迟时间。例如,可以通过读取answer消息中的字段power获取回复第二消息(answer消息)的功率;通过读取answer消息中的字段t获取第一消息的传输时间,根据字段t的值可以获取回复第二消息的其他节点与广播第一消息的节点之间的距离和第一延迟时间。第一延迟时间=t1-t0-t根据第一消息的传输时间,可以获取回复第二消息的其他节点与广播第一消息的节点之间的距离,即第一距离。获取每一回复第二消息的其他节点与节点之间的第一延迟时间、距离和回复第二消息的功率后,将每一回复第二消息的其他节点与节点之间的第一延迟时间、距离和回复第二消息的功率保存到路由表中。当路由表中已存在回复第二消息的其他节点的信息时,将上述信息更新为获取的信息;当路由表中不存在回复第二消息的其他节点的信息时,在路由表中增加一条记录,该记录用于保存获取的回复第二消息的其他节点的信息。基于上述实施例,一种无线传感器网络中的节点,还用于按照预设的选择规则从路由表中选择最优的其他节点,并将数据转发至最优的其他节点。按照预设的选择规则从路由表中选择最优的其他节点的具体步骤包括:根据预设的优先级,从路由表中选择第一延迟时间最小、距离最小或回复第二消息的功率最小的其他节点,作为最优的其他节点。具体地,节点进行数据转发时,按照预设的选择规则从路由表中选择最优的其他节点,将数据转发给该最优的其他节点。最优的其他节点,指节点与路由表中的其他节点之间的第一延迟时间最小、距离最小或路由表中的其他节点回复第二消息的功率最小。选择最优的其他节点时,按照预设的优先级,选择第一延迟时间最小、距离最小或回复第二消息的功率最小的其他节点作为最优的其他节点。例如,当预设的优先级为第一延迟时间最优先、距离次优先、回复第二消息的功率第三优先时,先比较第一延迟时间,选择第一延迟时间的其他节点作为最优的其他节点;若第一延迟时间最小的其他节点的数量至少为两个时,比较第一延迟时间最小的其他节点的距离,从中选择距离最小的其他节点,作为最优的其他节点;若比较第一延迟时间最小的其他节点的距离时,其中至少两个其他节点的距离最小,比较上述至少两个距离最小的其他节点回复第二消息的功率,从中选择回复第二消息的功率最小的其他节点,作为最优的其他节点;若比较上述至少两个距离最小的其他节点回复第二消息的功率时,其中还有至少两个其他节点回复第二消息的功率最小,则从上述至少两个回复第二消息的功率最小的其他节点中任选一个作为最优的其他节点。其他优先级时,确定最优的其他节点的过程与上述过程类似,此处不再赘述。还可以从第二消息中获取第二消息的延迟时间,将第二消息的延迟时间,与回复第二消息的其他节点与广播第一消息的节点之间的第一延迟时间之和作为总的延迟时间,将其他节点也作为回复第二消息的其他节点的信息保存到路由表中。相应地,在进行数据转发时,还可以将总的延迟时间也作为选择最优的其他节点的因素,在预设的选择规则中赋予总的延迟时间预设的优先级。本发明实施例通过选择最优的其他节点进行数据转发,能减少节点的能量消耗,延长节点的工作时间和工作寿命。最后,本发明的上述实施例仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1