无线自组织网络中的设备的发现方法

文档序号:7701684阅读:105来源:国知局
专利名称:无线自组织网络中的设备的发现方法
技术领域
本发明涉及无线自组织网络技术,更具体地,本发明涉及一种无线自组织网络中的设备的发现方法。

背景技术
无线自组织网络由一组不需要任何基础设施的动态节点组成,具有灵活、扩展性强的特点,在家庭网络和应急救灾等领域具有广阔的应用前景。实际上,无线自组织网络本身具有的突出的动态性,使得这类网络保持持续稳定地工作还存在很多的问题。同时,还存在造成无线自组织网络不稳定的许多因素,例如,无线接收器电源能量不足和无线信号自然衰减都会使节点失效,节点位置的变化造成网络拓扑结构的变化和节点失效,用户位置的移动也使的所用设备出现无法与其他设备正常连接的情况。
为了保持无线自组织网络的稳定可用,需要自主地动态互发现网络设备,并将这些网络设备以自组织的方式建立连接。目前用于自组织网络中代表性的设备发现方法为Jini设备发现方法和蓝牙服务发现协议。Jini设备发现方法可以用于设备或服务远程调用远端服务,其中,为了实现设备发现,设备需要在Jini查找服务中预先注册相关设备,才能被其他设备\服务发现。这种以注册目录为基础的发现方法灵活性差,在集中式的查找服务中容易形成瓶颈。蓝牙服务发现协议定义了蓝牙设备发现的方法,在设备进入客户射频范围或客户提供新服务时发现该服务。但是,蓝牙网络所具有的两种拓扑结构(匹克网和散射网)都是主从模式的网络。尽管多个散射网可以叠加,但蓝牙服务发现方法中客户端的服务发现代理必须向指定的远端设备发送服务发现请求,这种发现方式不能对设备的自组织提供充分支持;另外,对多跳路径连接设备的发现、组织的支持也很弱。


发明内容
为克服现有的无线自组织网络中设备和服务发现的灵活性差和对多跳连接支持不够的缺陷,本发明提出一种无线自组织网络中的设备的发现方法。
根据本发明的一个方面,提出了一种无线自组织网络中的设备的发现方法,包括 步骤10)、所述设备在所述无线自组织网络中运行时,以周期性组播方式广告自身的存在消息; 步骤20)、所述设备获取并转发其他设备的存在消息,建立所述设备的可用设备信息表和设备间的互连。
所述方法,还包括 步骤30)、所述设备向所述可用设备信息表中的设备发送可用性检测消息,根据所述可用性检测消息的回执消息,更新所述可用设备信息表。
其中,所述存在消息包括消息序号、跳数、上一跳地址、消息源地址和消息可广告的时间,所述可用性检测消息包括消息序号、被检测设备序号、消息源地址、被检测设备地址和消息可广告的时间。
其中,步骤20)中,所述设备在广告自身存在消息的同时,监听并转发其他设备的存在消息。
其中,步骤20)中,所述可用设备信息表的一个表项包括设备地址、设备的下一条地址、可用设备信息的更新次数和到设备地址的跳数。
其中,步骤20)还包括 所述设备获取的存在消息的设备序号不是设备自身序号并且该存在消息的可广告时间不为零,且所述设备的可用设备信息表中没有所述存在消息对应的设备,则所述设备在所述可用设备信息表中建立该存在消息对应的设备的表项。
其中,步骤20)还包括所述设备收到存在消息后,发出回执消息,收到所述回执信息的设备确定所述回执消息的源消息地址不等于所述设备的地址后,转发该回执消息。
其中,步骤30)中,所述设备在所述可用设备信息表建立后,在所述存在消息监听同时,向所述可用设备信息表中的可用设备发送所述可用性检测消息。
其中,步骤30)还包括所述设备接收到目标不是自身的可用性检测消息后将其转发,减少所述可用性检测消息的消息可广告的时间;所述设备在预定时间间隔内没有接收到所述可用性检测消息的回执消息,则删除所述可用设备信息表中的对应表项。
其中,所述存在消息和所述可用性检测消息被发送或者转发一次,消息可广告的时间相应减少;所述存在消息的消息可广告的时间用尽后,停止转发所述存在消息;所述可用性检测消息的消息可广告的时间用尽后,停止转发所述可用性检测消息。
本发明的方法与现有基于目录的设备发现技术相比,无需事先集中注册,可以动态自主地增加、删除可用设备信息,实现设备的互发现,并可以实现设备的自组织互连。与非目录式的设备发现技术相比,本发明所述方法完全采用自治的对等发现机制,更好地支持设备自组织,并能维护可用设备路径信息,克服了现有技术对多跳连接设备支持差的弱点。



图1是根据本发明实施例的无线自组织网络中设备的发现的流程时序图; 图2是根据本发明实施例的消息监听并建立设备自组织互连的流程图; 图3是在JavaME平台上实施本发明的实施例的方法的实例;和 图4是在Wi-Fi无线网络中Windows Mobile 5移动设备上实施本发明的实施例的方法的实例。

具体实施例方式 下面结合附图和具体实施例对本发明提供的一种无线自组织网络中的设备或者服务的发现方法进行详细描述。
图1示出根据本发明实施例的无线自组织网络中设备或者服务的发现方法的时序流程。本实施例的方法可以用于无线网络环境中设备的互发现和自组织,以设备信息为基础构造可用设备信息表及可用设备有效路径,以及适应性更新可用设备信息。首先由各设备广告自身存在的信息,各设备通过信息的多跳传播建立可用设备信息表以及各可用设备的有效路径;然后,在设备连接发生变化、新设备加入时即时调整设备发现信息,以实现设备的自组织互连与使用,避免设备变化、网络结构变动对网络应用的负面影响。
具体地,如图1所示,本实施例的方法包括设备存在广告、消息监听和可用设备信息维护三个阶段。下面将结合图1对本实施例的方法进行说明。
设备存在广告 设备开始在自组织网络中运行时,以周期性组播方式在自组织网络中广告自身的存在消息。存在消息的格式如表1所示。
表1 设备每组播一次自身的存在,MSN=MSN+1;在此,生命L的初始值设置为100,该值可以根据存在消息广告时间的长短设定。在另一个实施例中,DD字段中有关设备说明的信息可以只包含设备ID。
消息监听 设备在广告自身的存在消息的同时或者独立于存在消息的广告,监听其他设备发来的存在消息,以建立可用设备信息表及设备间的自组织互连。图2示出根据本发明实施例的消息监听、建立可用设备信息表及建立设备自组织互连的流程,下面结合图2对消息监听进行说明。
收到存在消息后,做如下处理 (1)若存在消息DD中的设备ID等于本设备ID,不做处理,即监听到的消息的设备ID等于自身设备ID,不作处理; (2)若存在消息的生命L=0,不做处理;L=0说明广告时间用尽,这样可以控制无休止地广告存在消息; (3)若存在消息DD中的设备ID不等于本设备ID并且存在消息的生命L不等于0,若收到存在消息的设备的可用设备信息表中没有地址为MSA且设备ID为存在消息DD中记载的设备的记录,则增加一个信息表项,可用设备信息表结构如表2所示。表2 其中,信息表项建立方法如下 1)、设备地址DA=消息的源地址MSA; 2)、设备的下一跳地址NHA=消息的LHA; 3)、信息更新次数F=消息的MSN; 4)、距离D=消息的HN+1; 对应建立各表项之后,收到存在消息的设备发出回执消息,回执消息的格式如表3所示。
表3 然后执行如下操作 1)、存在消息HN=HN+1,L=L-1; 2)、收到此消息的设备组播转发此消息; 若收到存在消息的设备的可用设备信息表中具有地址为MSA的设备的记录,则做如下处理 1)、若F>MSN,则不做处理;即该可用设备信息的更新次数大于消息序号; 2)、若F<=MSN,并且若可用设备信息表项中的D>消息HN+1,则做如下操作NHA=LHA,F=MSN,D=HN+1;同时设定HN=HN+1,L=L-1; 组播转发此消息。
可用设备信息维护 因为无线自组织网络是动态的,原来的链接可能发生变化,并且原来发现的设备可能会退出网络,也可能会有新的设备进来,因此,必须及时维护、更新原来的信息。可用设备信息维护操作在可用设备信息表建立之后,可以与设备存在广告、消息监听同时进行,也可以不同时进行。
设备根据可用设备信息表,向该设备所记录的可用设备发送可用性检测消息,并监听该可用性检测消息的回执消息。在给定的时间间隔T内,如果没有收到回执消息,则认定该设备不可用,删除该设备表项以节约资源并提高效率。在本实施例中,时间间隔设定为3分钟,但其可以根据网络稳定性设定。可用性检测消息的格式如表4所示。表4 设备收到可用性检测消息之后,根据消息中DID判断自身是否就是被检测的设备,若是则发送回执消息;若不是,则转发此消息。当可用性检测消息到达被检测设备或生命L=0时,该消息将不再被转发。
通过上述活动,各设备将完成可用设备信息表的构造,同时即时检测、更新发生变化的设备信息,实现设备间的自组织互联。
以下结合图3和图4的平台进一步说明本发明的实施例的方法的具体实现。在图3和图4的具体实施中采用了JavaME平台,当然本发明所述方法的实施并不局限于该平台,也可以在诸如J2SE和J2EE的其他平台上实现。本实施例在JavaME平台的基础上采用了Foundation Profile 1.1.2 API。
图3示出在JavaME平台上实施本发明的方法的一个具体实例,在该具体实现中包括Data_Structure、Tool、Declarer、Monitor、Updater模块。其中,Data_Structure模块定义实施过程中公用的数据结构,例如可用设备信息表项、消息结构,包括消息类型、序号、跳数、设备地址等。Tool模块定义数据类型转换所用的方法、将消息项转换为字节数据的方法、将字节数据解析为可读格式消息的方法。
Declarer模块继承JavaME API的Thread类,运行流程包括(1)创建并启动一个线程;(2)发送存在消息,广告自身存在,广告过程采用消息组播实现,每组播一次自身的存在,存在消息的MSN=MSN+1,生命L的初始值设置为100。Declarer运行的结果即是在网络中广告了存在消息。消息组播中所用到的自定义数据类型由Data_Structure定义,也就是说Data_Structure定义了消息组播中用到的数据结构,Declarer模块在组播消息的时候会引用这些数据类型。数据类型的转换由Tool提供的方法完成,这些数据类型转换包括bytes_long,bytes_int之间的数据类型转换。Tool模块供Declarer、Monitor、Updater三个模块调用,调用的结果是完成转换的数据类型,例如由字节数组转换成的整数。
Monitor模块同样继承JavaME API的Thread类,启动一个线程实现设备对消息的监听,按照图2所示流程处理消息,建立可用设备信息表。建立可用设备信息表的过程中所用的数据结构由Data_Structure定义,数据类型转换由Tool提供的方法完成。Monitor模块运行过程中,收到消息后,若存在消息DD中的设备ID=自身设备ID,不做处理;若存在消息的生命L=0,不做处理;否则,若收到存在消息的设备的可用设备信息表中没有地址为MSA的设备的记录,则增加一个信息表项(信息表项中设备地址DA=消息的源地址MSA;下一跳地址NHA=消息的LHA;信息更新次数F=消息的MSN;距离D=消息的HN+1);然后,收到存在消息的设备发出回执消息,存在消息HN=HN+1,L=L-1,组播转发此存在消息。若收到存在消息的设备的可用设备信息表中有地址为MSA的设备的记录,且F<=MSN,则进行如下操作若可用设备信息表项中的D>消息HN+1,则NHA=LHA;F=MSN;D=HN+1;HN=HN+1;L=L-1;组播转发此存在消息。
Updater模块继承了JavaME API的Thread类,启动一个线程实现设备可用性检测消息的周期性发送及可用设备信息表项的更新。具体过程如下(1)Updater模块根据可用设备信息表的设备信息,向所知道的可用设备周期性发送可用性检测消息,发送周期可以根据网络稳定性、设备加入退出的频繁度灵活设定。设备收到可用性检测消息之后,根据消息中DID判断自身是否就是被检测的设备,若是,则发送回执消息;若不是,则转发此消息。当可用性检测消息到达被检测设备或生命L=0时,该消息将不再被转发。(2)Updater模块监听可用性检测消息的回执消息。如果在给定的时间间隔T=3分钟内,没有收到回执消息,则认定该设备不可用,删除该设备表项。
上述实例用NetBeans 6.1 Mobility版本及Sun Java Toolkit for CDC实现,仿真器采用Sun Java Toolkit for CDC提供的仿真器或Microsoft DeviceEmulator。
图4示出安装Windows Mobile 5的移动设备(Pocket PC)上实施本发明的方法的一个实例。通过在图4的实例中运用本发明的方法,实现Wi-Fi网络中Windows Mobile 5的移动设备的适应性互发现及自组织。首先,图4所示实例同样采用JavaME平台构造各部分,并将其布署在宿主机上。部署的具体过程包括在宿主机上安装Microsoft ActiveSync 4.5,在Pocket PC上安装WindowsMobile 5;然后由宿主机操作人员连接Pocket PC和宿主机,在Pocket PC上安装Java VM。将本申请所述方法用Microsoft ActiveSync 4.5布署到PocketPC上,在Pocket PC上运行,各Pocket PC将在Wi-Fi网络中实现适应性互发现及自组织。以Pocket PC PPC1与PPC3为例说明该过程PPC1与PPC3启动之后,将首先运行Declarer、Monitor模块,稍后运行Updater模块。例如PPC1的Declarer作为一个线程运行,用组播的方式向周围发送存在消息,广告自己的存在,发送存在消息时,存在消息的MSN=MSN+1,生命L的初始值设置为100。PPC1的Declarer也同样以此方式运行。
Declarer被运行的同时,Monitor也被运行。此时,如果PPC3的Monitor监听到PPC1的存在消息(这个消息可能是直接到达PPC3的,也可能是经过了其他的Pocket PC多次转发到达PPC3),则做如下处理此时,在消息DD中的设备ID是PPC1的设备ID,不等于PPC3的设备ID,而且存在消息的生命L≠0,于是PPC3检查自己的可用设备信息表,因为PPC1与PPC3都是首次启动,所以彼此不知道对方的存在,PPC3的可用设备信息表中没有地址为MSA且设备ID=PPC1的设备ID的设备记录。PPC3在可用设备信息表中增加一个表项,表项中设备地址DA=PPC1存在消息的源地址MSA,下一跳地址NHA=PPC1消息的LHA,信息更新次数F=PPC1消息的MSN,距离D=PPC1存在消息的HN+1。这样,PPC3就发现了PPC1。增加完毕之后,PPC3的Monitor将PPC1存在消息的HN=HN+1,L=L-1,组播转发此PPC1存在消息。这样可以让其他的Pocket PC发现PPC1。同理,PPC1可以发现PPC3,其它Pocket PC之间也可以互相发现,最终实现各设备间的自组织互联。
Updater模块用来实现及时更新功能。以PPC3发现PPC1后,PPC3被关闭,说明PPC3对可用设备的更新维护过程。PPC3根据可用设备信息表的设备信息,向PPC1周期性(每隔10分钟,可以根据需要设定其他时间间隔)发送一次可用性检测消息(该消息可能直接到达PPC1,也可能经多次转发到达PPC1)。如果PPC3在3分钟内监听到PPC1的回执消息,则它判定PPC1可用;否则它判定PPC1不可用,并删去可用设备信息表中的相关表项。此时,PPC1被关闭了,PPC3收不到PPC1发的回执消息,PPC3的可用设备信息表将被更新。当PPC1被重新启动时,在PPC1上运行的Declarer、Monitor将使之被其他Pocket PC发现重新发现。同样道理,不可用的Pocket PC重新可用后,将被及时重新发现,与其他Pocket PC建立自组织互联。
本发明的上述实施例以设备发现为例进行说明,可以理解本发明的方法能够应用到服务的发现和互连,并且具体服务也可以等同于实现该服务的某个虚拟逻辑设备或者物理实体设备。在本发明的另一个实施例中,描述无线自组织网络中服务的发现方法。本实施例的方法可以用于无线网络环境中服务的互发现和自组织,以服务信息为基础构造可用服务信息表及可用服务有效路径,以及适应性更新可用服务信息。首先由各服务广告自身存在的信息,各服务通过信息的多跳传播建立可用服务信息表以及各可用服务的有效路径;然后,在服务连接发生变化、新服务加入时即时调整服务发现信息,以实现服务的自组织互连与使用,避免服务变化、网络结构变动对网络应用的负面影响。无线自组织网络中服务的发现和互连方法与上述的设备的发现和互连方法相同,在此不再赘述。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
权利要求
1、一种无线自组织网络中的设备的发现方法,包括
步骤10)、所述设备在所述无线自组织网络中运行时,以周期性组播方式广告自身的存在消息;
步骤20)、所述设备获取并转发其他设备的存在消息,建立所述设备的可用设备信息表和设备间的互连。
2、权利要求1所述的方法,还包括
步骤30)、所述设备向所述可用设备信息表中的设备发送可用性检测消息,根据所述可用性检测消息的回执消息,更新所述可用设备信息表。
3、权利要求2所述的方法,其中,所述存在消息包括消息序号、跳数、上一跳地址、消息源地址和消息可广告的时间,所述可用性检测消息包括消息序号、被检测设备序号、消息源地址、被检测设备地址和消息可广告的时间。
4、权利要求1所述的方法,其中,步骤20)中,所述设备在广告自身存在消息的同时,监听并转发其他设备的存在消息。
5、权利要求1所述的方法,其中,步骤20)中,所述可用设备信息表的一个表项包括设备地址、设备的下一条地址、可用设备信息的更新次数和到设备地址的跳数。
6、权利要求5所述的方法,其中,步骤20)还包括
所述设备获取的存在消息的设备序号不是设备自身序号并且该存在消息的可广告时间不为零,且所述设备的可用设备信息表中没有所述存在消息对应的设备,则所述设备在所述可用设备信息表中建立该存在消息对应的设备的表项。
7、权利要求6的方法,其中,步骤20)还包括所述设备收到存在消息后,发出回执消息,收到所述回执信息的设备确定所述回执消息的源消息地址不等于所述设备的地址后,转发该回执消息。
8、权利要求2所述的方法,其中,步骤30)中,所述设备在所述可用设备信息表建立后,在所述存在消息监听同时,向所述可用设备信息表中的可用设备发送所述可用性检测消息。
9、权利要求2所述的方法,其中,步骤30)还包括所述设备接收到目标不是自身的可用性检测消息后将其转发,减少所述可用性检测消息的消息可广告的时间;所述设备在预定时间间隔内没有接收到所述可用性检测消息的回执消息,则删除所述可用设备信息表中的对应表项。
10、权利要求3所述的方法,其中,所述存在消息和所述可用性检测消息被发送或者转发一次,消息可广告的时间相应减少;所述存在消息的消息可广告的时间用尽后,停止转发所述存在消息;所述可用性检测消息的消息可广告的时间用尽后,停止转发所述可用性检测消息。
全文摘要
本发明提供一种无线自组织网络中的设备的发现方法,包括所述设备在所述无线自组织网络中运行时,以周期性组播方式广告自身的存在消息;所述设备监听并获取其他设备的存在消息,建立所述设备的可用设备信息表和设备间的互连;所述设备向所述可用设备信息表中的设备发送可用性检测消息,根据所述可用性检测消息的回执消息,更新所述可用设备信息表。本发明的方法无需事先集中注册,可以动态自主地增加、删除可用设备信息,实现设备的互发现;采用自治的对等发现机制,更好地支持设备自组织,并能维护可用设备路径信息,克服了现有技术对多跳连接设备支持差的弱点。
文档编号H04W84/18GK101610560SQ20091008962
公开日2009年12月23日 申请日期2009年7月23日 优先权日2009年7月23日
发明者刚 李 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1