1.本发明属于通信技术领域,具体涉及一种局域网内设备发现方法。
背景技术:
2.局域网内要实现多主机间的通信和应用调用,需要各主机能够完成设备间发现,彼此互相识别,知道对方的通信/调用方式。目前常见的设备间发现有以下三大类:
3.(1)各设备注册到已知服务器,通过服务器提供的协商和管理功能完成设备间互联互通,由于该机制是基于服务器-客户端的工作模式,必须提供专有的服务器支持,在一些特定的场景,因为环境受限,可能无法搭建服务器,可能期望节省资源,该方式不能满足相应的要求。
4.(2)基于upnp(universal plug and play,通用即插即用)的设备发现机制,通过定义“设备”(服务提供者)和“控制点”(control point,即“设备”的控制者,或者服务的调用方)两种不同的角色实现设备间的互联互通。它的好处在于通用性,有一套大而全的协议/机制做保证,比如设备发现用到ssdp(simple service discovery protocol),即简单服务发现协议;设备间控制用到soap(simple object access protocol),简单对象访问协议;而事件的订阅和推送需要gena(general event notification architecture)的支持。upnp的机制很适合公用领域里行业内或者跨行业的标准化的设备和应用间的互通,对于私有领域没有标准化的需求,或者功能需求比较简单的应用来说,实现起来比较复杂,不够轻便;另外upnp的协议基于组播/广播的发现机制,因为udp传输的不可靠性,存在设备间发现不了或者发现太晚的问题。
5.(3)基于蓝牙的设备发现方式,通过蓝牙组网也可以实现点到点或者点到多的设备发现,现有已实现的技术里,多个蓝牙设备可以通过称为微微网(piconet)的短距离即时网络进行无线连接和通信。但是蓝牙通讯本身支持的物理距离有限,另外每个设备最多可以在微微网中同时与7个其他设备进行通信,限制了网络节点的个数。
技术实现要素:
6.鉴于以上存在的问题,本发明实施例提供一种改进的设备发现方法。
7.为解决上述技术问题,本发明采用如下的技术方案:
8.一种改进的设备发现方法,包括以下步骤:
9.需要组网互联的设备预先设置一个用于互相发现的组播地址;
10.设备状态变化时或在线设备定时向组播地址发送标识自身状态信息的组播包;
11.收到组播包的设备根据组播报的类型进行相应处理,包括:已在线的设备收到新设备上线的信息,根据应答请求的信息条件判断是否需要应答,通过应答完成某一应用或功能的各个设备的组网和互通的依据;新上线的设备收到来自其它设备的应答,将应答设备加入维护设备列表。
12.一种可能的设计中,设备状态变化为设备新上线,向组播地址发送设备上线组播
包,设备上线组播包中包括该新上线设备唯一的标志信息,设备间用于相互通信的地址信息,组网条件以及设备在线定期更新的间隔。
13.一种可能的设计中,已在线设备收到新设备上线组播包,根据新设备上线组播包里的组网条件信息判断自己是否需要应答,该组网条件信息是新上线的设备用于完成某个特定应用或功能而发起的设备间组网和互通的依据;如果判断属于同组,已在线的设备把新设备加入自己维护的设备列表,并按要求发回应答。
14.一种可能的设计中,设备状态变化为设备离线,向组播地址发送设备离线组播包,设备离线组播包中包括该离线设备唯一的标志信息。
15.一种可能的设计中,已在线的设备收到其它设备的离线组播包,判断该离线设备是否在自己维护的设备列表里,如是,将其移除出对应的设备列表。
16.一种可能的设计中,在线设备定时组播包中包括该在线设备唯一的标志信息,设备间用于相互通信的地址信息,组网条件以及设备在线定期更新的间隔。
17.一种可能的设计中,已在线的设备收到其它设备周期发送的更新组播包,判断发送更新组播包的设备是否需要加入自己的设备列表,如果已经在自己设备列表里,更新收到该设备的时间。
18.一种可能的设计中,进一步包括,在线设备根据设备列表里的设备的上次更新时间以及该设备约定的更新周期,如果更新周期到期仍然没有收到该设备的更新信息包,将其移除出可用的设备列表。
19.采用本发明具有如下的有益效果:
20.(1)设备发现的可靠性保障,依据本发明的协议约定,各个支持联网设备的设备间发现有三个途径加以保障:通过向特定的组播网地址发送设备在线或者离线通知的组播包,把设备是否在线的信息投递给组播网的其它设备;收到在线信息包的其它设备,如果满足在线信息包里的组网要求,向发送在线信息报的设备发送应答包,这样在线信息包的发送设备能第一时间发现发送应答包的设备,而不用等到该设备更新周期到期时发送在线信息更新包的时候才完成设备发现;由于其它设备发回的应答包里除了应答包发送设备本身的设备信息外,还包含该发送设备维护的其它在网设备的信息,这样能保障由于udp传输的不可靠性,部分在网的其它设备没收到在线信息包的情况。按照通常的逻辑,需要等到下一轮在线更新信息的组播包发送并且网络正常的情况才能完成设备互相发现,在网络极端异常的情况,等待的时间会更久,甚至一直找不到。
21.(2)完成特定目标的设备间发现,按照本发明实施例的约定,设备上线的信息包里会指定自己想要的组网限制条件,其它在线设备可以通过对该信息包解析处理确认自己是否满足条件,满足的话向新上线的设备发送应答包,这样有相同限制条件的设备可以实现组网,完成实际应用需要的功能。这种限制条件可以是单一条件,或者多条件的组合,比如某个特定应用类型的设备想实现组网,可以设置该应用类型为限制条件;又比如多个应用类型想实现组网,可以把相应的多个应用类型设置为复合的筛选条件,实现跨应用的设备间发现。遵从本发明实施例约定的设备可以按需设置筛选条件,实现设备发现,灵活组网,并在此基础上完成设备间能力和资源互通。
附图说明
22.图1为本发明实施例的改进的设备发现方法的步骤流程图;
23.图2为本发明一具体应用实例的流程示意图。
具体实施方式
24.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.参见图1,所示为本发明实施例提供的一种改进的设备发现方法,包括以下步骤:
26.s1,需要组网互联的设备预先设置一个用于互相发现的组播地址;比如支持同一个应用的多设备需要互通,则把该组播地址作为各个设备上该应用必需的初始化的条件。
27.s2,设备状态变化时或在线设备定时向组播地址发送标识自身状态信息的组播包;
28.s3,收到组播包的设备根据组播报的类型进行相应处理,包括:已在线的设备收到新设备上线的信息,根据应答请求的信息条件判断是否需要应答,通过应答完成某一应用或功能的各个设备的组网和互通的依据;新上线的设备收到来自其它设备的应答,将应答设备加入维护设备列表。
29.本发明一实施例,s2中,设备状态变化为设备新上线,向组播地址发送设备上线组播包,设备上线组播包中包括该新上线设备唯一的标志信息,设备间用于相互通信的地址信息,组网条件以及设备在线定期更新的间隔。对应s3中,已在线的设备收到新设备上线的信息,根据包里的组网条件信息判断自己是否需要应答,该组网条件信息是新上线的设备想完整某个特定应用/功能而发起的设备间组网和互通的依据。如果判断属于同组,已在线的设备需要把新设备加入自己维护的设备列表,并按要求发回应答。应答内容主要包含本设备的基本信息,以及在本设备维护的设备列表里满足新上线设备组网条件的其它设备的信息。新上线的设备收到来自其它设备的应答,判断是否需要把这些发送应答的设备以及应答信息里包含的其它设备加入自己维护的设备列表。
30.本发明一实施例,s2中,设备状态变化为设备离线,向组播地址发送设备离线组播包,设备离线组播包中包括该离线设备唯一的标志信息。对应s3中,已在线的设备收到其它设备的离线组播包,判断该离线设备是否在自己维护的设备列表里,如是,将其移除出对应的设备列表。
31.本发明一实施例,s2中,在线设备定时组播包中包括该在线设备唯一的标志信息,设备间用于相互通信的地址信息,组网条件以及设备在线定期更新的间隔。对应s3中,已在线的设备收到其它设备周期发送的更新组播包,判断发送更新组播包的设备是否需要加入自己的设备列表,如果已经在自己设备列表里,更新收到该设备的时间。
32.本发明一实施例,一种改进的设备发现方法进一步包括,在线设备根据设备列表里的设备的上次更新时间以及该设备约定的更新周期,如果更新周期到期仍然没有收到该设备的更新信息包,将其移除出可用的设备列表。
33.通过以上本发明实施例是实现的改进的设备发现方法,至少具有以下效果:
34.(1)设备发现的可靠性保障,依据本发明的协议约定,各个支持联网设备的设备间发现有三个途径加以保障:通过向特定的组播网地址发送设备在线或者离线通知的组播包,把设备是否在线的信息投递给组播网的其它设备;收到在线信息包的其它设备,如果满足在线信息包里的组网要求,向发送在线信息报的设备发送应答包,这样在线信息包的发送设备能第一时间发现发送应答包的设备,而不用等到该设备更新周期到期时发送在线信息更新包的时候才完成设备发现;由于其它设备发回的应答包里除了应答包发送设备本身的设备信息外,还包含该发送设备维护的其它在网设备的信息,这样能保障由于udp传输的不可靠性,部分在网的其它设备没收到在线信息包的情况。按照通常的逻辑,需要等到下一轮在线更新信息的组播包发送并且网络正常的情况才能完成设备互相发现,在网络极端异常的情况,等待的时间会更久,甚至一直找不到。
35.(2)完成特定目标的设备间发现,按照本发明实施例的约定,设备上线的信息包里会指定自己想要的组网限制条件,其它在线设备可以通过对该信息包解析处理确认自己是否满足条件,满足的话向新上线的设备发送应答包,这样有相同限制条件的设备可以实现组网,完成实际应用需要的功能。这种限制条件可以是单一条件,或者多条件的组合,比如某个特定应用类型的设备想实现组网,可以设置该应用类型为限制条件;又比如多个应用类型想实现组网,可以把相应的多个应用类型设置为复合的筛选条件,实现跨应用的设备间发现。遵从本发明实施例约定的设备可以按需设置筛选条件,实现设备发现,灵活组网,并在此基础上完成设备间能力和资源互通。
36.参照图2,以包括设备a和设备b的组播网为例对本发明实施例中设备的上线/更新/离线过程进行说明,如下:
37.(1)设备新上线/在线定时更新通知
38.支持连接互联网的电子设备(如pc,平板,手机等)接入指定的局域网,或者上线后每隔一段时间,向指定的组播地址发送组播包,宣告自己在线,组播包的内容包含四部分,包含信息参考表1示例,包数据封装格式不限,可以是xml,json或者其它。
39.表1在线通知包信息示意表
[0040][0041]
组播包中的信息包括设备基本信息、设备扩展信息、设备更新信息和组网要求信息。其中设备信息可以包括设备基本信息,可以包含设备类型,同时需要包括能标识设备唯一性的信息,比如设备id。设备信息也可以包括能提供设备间通信能力的地址,比如某个http服务地址,或者某个tcp/udp的端口。设备信息也可以包括协议类型,为支持本发明实施例约定的协议类型。可选的设备扩展信息可以是设备类型,适用的应用类型,分组名,支持的服务类型,或者其它自定义信息。设备更新信息可以是该设备向组播网发送在线信息包的发送周期,作为其它设备判断该设备是否还在线的依据。组网要求信息为描述需要对该在线信息包做应答的设备信息,该信息的作用是描述新上线或者在线的设备的组网条件,包含能通过指定方式对设备做分组的字段,比如特定的设备类型,某种支持的服务类型,可自定义的分组名等等;如果不指定,表示所有在线设备都必须应答。
[0042]
(2)设备应答
[0043]
设备应答为已经在线的设备收到其它设备的在线信息包做相应处理。先判断本设备是否满足该信息包里描述的组网要求;如果满足组网要求,判断该在线信息包的发送者是否在自己的在线设备组列表,若不在则加入;如果满足组网要求,且需要对该在线信息包的发送者做应答,根据该在线信息包提供的通信地址发送应答包。应答包的内容包含关于本应答设备的描述信息,即设备信息。以及在本应答设备里自己维护的设备列表里和应答要求匹配的设备信息,也就是其它满足组网条件的在线设备。
[0044]
(3)发送在线信息包的设备收到其它设备的应答包
[0045]
判断该应答包的发送者是否在自己的在线设备组列表,若不在则加入;判断该应答包里携带的其它在网设备是否在自己的在线设备组列表,若不在则加入。
[0046]
(4)设备离线
[0047]
正常离线,某一在线设备向指定的组播地址发送组播包,宣告自己下线,组播包信息必须包含能表示设备身份唯一性的标识信息,例如设备id,参见表2;其它在线设备收到该设备离线的组播包,从自己维护的设备列表中移除该设备对应的记录。
[0048]
表2离线通知包信息示意表
[0049][0050]
正常情况下,每个在线设备维护一个其它在线设备的列表,对于列表中的每一个设备,收到该设备的更新信息包时,记录该设备的更新时间。异常离线时,根据该设备在线信息包里宣告的更新周期,判断该设备的更新时间是否过期,如是,从自己维护的设备列表中移除该设备对应的记录。
[0051]
(5)设备交互
[0052]
某两个在线设备需要通信时,通过对方提供的通信地址发送相关数据包,完成信息或者数据的交换。
[0053]
应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。
技术特征:
1.一种改进的设备发现方法,其特征在于,包括以下步骤:需要组网互联的设备预先设置一个用于互相发现的组播地址;设备状态变化时或在线设备定时向组播地址发送标识自身状态信息的组播包;收到组播包的设备根据组播报的类型进行相应处理,包括:已在线的设备收到新设备上线的信息,根据应答请求的信息条件判断是否需要应答,通过应答完成某一应用或功能的各个设备的组网和互通的依据;新上线的设备收到来自其它设备的应答,将应答设备加入维护设备列表。2.如权利要求1所述的改进的设备发现方法,其特征在于,设备状态变化为设备新上线,向组播地址发送设备上线组播包,设备上线组播包中包括该新上线设备唯一的标志信息,设备间用于相互通信的地址信息,组网条件以及设备在线定期更新的间隔。3.如权利要求2所述的改进的设备发现方法,其特征在于,已在线设备收到新设备上线组播包,根据新设备上线组播包里的组网条件信息判断自己是否需要应答,该组网条件信息是新上线的设备用于完成某个特定应用或功能而发起的设备间组网和互通的依据;如果判断属于同组,已在线的设备把新设备加入自己维护的设备列表,并按要求发回应答。4.如权利要求1所述的改进的设备发现方法,其特征在于,设备状态变化为设备离线,向组播地址发送设备离线组播包,设备离线组播包中包括该离线设备唯一的标志信息。5.如权利要求4所述的改进的设备发现方法,其特征在于,已在线的设备收到其它设备的离线组播包,判断该离线设备是否在自己维护的设备列表里,如是,将其移除出对应的设备列表。6.如权利要求1所述的改进的设备发现方法,其特征在于,在线设备定时组播包中包括该在线设备唯一的标志信息,设备间用于相互通信的地址信息,组网条件以及设备在线定期更新的间隔。7.如权利要求6所述的改进的设备发现方法,其特征在于,已在线的设备收到其它设备周期发送的更新组播包,判断发送更新组播包的设备是否需要加入自己的设备列表,如果已经在自己设备列表里,更新收到该设备的时间。8.如权利要求1至7任一所述的改进的设备发现方法,其特征在于,进一步包括,在线设备根据设备列表里的设备的上次更新时间以及该设备约定的更新周期,如果更新周期到期仍然没有收到该设备的更新信息包,将其移除出可用的设备列表。
技术总结
本发明公开了一种改进的设备发现方法,包括以下步骤:需要组网互联的设备预先设置一个用于互相发现的组播地址;设备状态变化时或在线设备定时向组播地址发送标识自身状态信息的组播包;收到组播包的设备根据组播报的类型进行相应处理,包括:已在线的设备收到新设备上线的信息,根据应答请求的信息条件判断是否需要应答,通过应答完成某一应用或功能的各个设备的组网和互通的依据;新上线的设备收到来自其它设备的应答,将应答设备加入维护设备列表。表。表。
技术研发人员:张华 裘昊 丁赫 文志平 陈勇
受保护的技术使用者:杭州当虹科技股份有限公司
技术研发日:2021.11.26
技术公布日:2022/3/8