CN115297526A - 消息发送方法、设备智能互联系统、相关设备及存储介质 - Google Patents
消息发送方法、设备智能互联系统、相关设备及存储介质 Download PDFInfo
- Publication number
- CN115297526A CN115297526A CN202210765475.4A CN202210765475A CN115297526A CN 115297526 A CN115297526 A CN 115297526A CN 202210765475 A CN202210765475 A CN 202210765475A CN 115297526 A CN115297526 A CN 115297526A
- Authority
- CN
- China
- Prior art keywords
- message
- ttl
- hop count
- bluetooth mesh
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/16—Discovering, processing access restriction or access information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/08—Access restriction or access information delivery, e.g. discovery data delivery
- H04W48/10—Access restriction or access information delivery, e.g. discovery data delivery using broadcasted information
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供一种消息发送方法、设备智能互联系统、相关设备及存储介质,其中方法包括:确定节点设备待发送的消息对应的目的设备;在所述节点设备预先维护的消息跳数表中,至少查询所述目的设备与所述节点设备对应的消息跳数;所述消息跳数表至少记录所述目的设备的广播消息与所述节点设备之间的消息跳数;根据所述消息跳数,确定消息的TTL;所述TTL与所述消息跳数相比具有设定冗余度;根据所确定的TTL,在蓝牙Mesh网络中发送所述消息。本申请实施例可在节点设备发出消息时,动态优化消息的TTL,在保障消息发送成功率的情况下,减少不必要的消息传输,提升蓝牙Mesh网络的消息传输性能。
Description
技术领域
本申请实施例涉及通信技术领域,具体涉及一种消息发送方法、设备智能互联系统、相关设备及存储介质。
背景技术
蓝牙Mesh(无线网格)网络是基于BLE(Bluetooth Low Energy,低能耗蓝牙)建立设备间通信的网状网络,其广泛用于智能家居、智慧办公等设备智能互联场景。在蓝牙Mesh网络中,消息可在已配网的节点(Node)设备之间进行中继转发,从而提升消息的传输距离,以适应具有大量节点设备的大规模蓝牙Mesh网络。然而,消息在节点设备之间转发的情况下,蓝牙Mesh网络的消息传输性能有待提升。
发明内容
有鉴于此,本申请实施例提供一种消息发送方法、设备智能互联系统、相关设备及存储介质,以在节点设备发出消息时,动态优化用于指示消息转发跳数的TTL(Time ToLive,生存时间),从而在保障消息发送成功率的情况下,减少不必要的消息传输,提升蓝牙Mesh网络的消息传输性能。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种消息发送方法,应用于节点设备,所述方法包括:
确定所述节点设备待发送的消息对应的目的设备;
在所述节点设备预先维护的消息跳数表中,至少查询所述目的设备与所述节点设备对应的消息跳数;所述消息跳数表至少记录所述目的设备的广播消息与所述节点设备之间的消息跳数;
根据所述消息跳数,确定消息的TTL;所述TTL与所述消息跳数相比具有设定冗余度;
根据所确定的TTL,在蓝牙Mesh网络中发送所述消息;其中,所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当所述消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
第二方面,本申请实施例提供一种消息发送方法,应用于广播设备,所述方法包括:
按照TTL递减的顺序,周期性的在蓝牙Mesh网络中广播消息,以使得接收到广播消息的节点设备,根据广播消息中的TTL在消息跳数表中至少记录广播消息与节点设备之间的消息跳数;其中,下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减;
获取节点设备发送的消息;其中,所述消息在从所述节点设备发出时,所述消息的TTL根据所述节点设备的消息跳数表中查询的目的设备与所述节点设备对应的消息跳数,以及设定冗余度确定;并且所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当所述消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
第三方面,本申请实施例提供一种设备智能互联系统,包括节点设备和广播设备;所述节点设备用于执行如上述第一方面所述的消息发送方法,所述广播设备用于执行如上述第二方面所述的消息发送方法;所述广播设备包括蓝牙Mesh网关或者终端设备的代理节点设备。
第四方面,本申请实施例提供一种节点设备,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如上述第一方面所述的消息发送方法。
第五方面,本申请实施例提供一种广播设备,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如上述第二方面所述的消息发送方法;所述广播设备为蓝牙Mesh网关或者终端设备的代理节点设备。
第六方面,本申请实施例提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如上述第一方面所述的消息发送方法,或者,如上述第二方面所述的消息发送方法。
第七方面,本申请实施例提供一种计算机程序,所述计算机程序被执行时,实现如上述第一方面所述的消息发送方法,或者,如上述第二方面所述的消息发送方法。
本申请实施例提供的消息发送方法,可由节点设备设置和维护消息跳数表,并且该消息跳数表记录的是节点设备的目的设备的广播消息,相对于节点设备的消息跳数;由于节点设备的目的设备可能是蓝牙Mesh网关或者终端设备(终端设备由代理节点设备发出广播消息),而蓝牙Mesh网络中的蓝牙Mesh网关和代理节点设备的数量一般小于节点设备的总数,因此节点设备维护消息跳数表所需的数据量较低;同时,本申请实施例可在节点设备发送消息给蓝牙Mesh网关、终端设备等目的设备时,在发出消息的源节点设备确定消息的TTL,并且消息的TTL是基于目的设备的广播消息与节点设备之间的消息跳数,以及设定冗余度进行确定,因此本申请实施例能够合理设置消息必要传输所需的TTL,从而降低消息在蓝牙Mesh网络中传输的网络负载,提升蓝牙Mesh网络的消息传输性能。可见,本申请实施例能够基于节点设备的消息跳数表,在节点设备向目的设备发送消息时,动态优化用于指示消息转发跳数的TTL,从而在保障消息发送成功率的情况下,减少不必要的消息传输,提升蓝牙Mesh网络的消息传输性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为蓝牙Mesh网络的示例图。
图2为节点设备的跳数示例图。
图3A为本申请实施例提供的消息发送方法的流程图。
图3B为本申请实施例提供的消息发送方法的另一流程图。
图4A为本申请实施例设置网关表的方法流程图。
图4B为周期性广播消息的示例图。
图4C为节点设备发送消息时的TTL设置示例图。
图4D为节点设备向蓝牙Mesh网关发送消息的流程图。
图5为节点设备与多个蓝牙Mesh网关的示例图。
图6A为节点设备向终端设备发送消息的示例图。
图6B为代理节点设备断开代理连接的示例图。
图7为本申请实施例提供的消息发送装置的框图。
图8为节点设备的框图。
图9为本申请实施例提供的消息发送装置的另一框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示例性的示出了蓝牙Mesh网络的示例图,如图1所示,蓝牙Mesh网络可以包括:已配网的多个节点设备101。在图1所示中,蓝牙Mesh网关102和终端设备103作为控制设备,可以对已配网的节点设备进行配置、控制等管理工作。
其中,节点设备101可以视为是已加入蓝牙Mesh网络的蓝牙Mesh设备,蓝牙Mesh设备例如智能灯具、智能插座、智能家电等IoT(Internet of Things,物联网)设备。蓝牙Mesh网关102可以例如具有蓝牙通信能力和互联网连接能力的智能音箱、多模网关等,蓝牙Mesh网关102除具有节点设备101的配置、控制功能外,还可作为节点设备101与互联网连接的跳板,实现节点设备的远程控制。终端设备103可以是用户使用的智能手机、平板电脑等用户侧设备,其具有节点设备101的配置、控制功能,以及通过蓝牙Mesh网关102控制节点设备101的功能等。在一个示例中,终端设备可通过装载具有蓝牙Mesh网络管理功能的APP,以实现对蓝牙Mesh网络中的节点设备进行配置、控制。
在蓝牙Mesh网络中,蓝牙Mesh网关与节点设备可以通过发送广播包的方式进行交互,而智能手机、平板电脑等终端设备由于不支持发送广播包的交互方式,因此终端设备需要与蓝牙Mesh网络中的节点设备建立代理(Proxy)连接,从而由作为代理的节点设备(简称代理节点设备),转发广播包给蓝牙Mesh网络中的其他节点设备。终端设备的代理节点设备的数量可以为一个或多个。
需要说明的是,蓝牙Mesh的协议栈中定义了广播承载层(Advertising Bearer)和GATT(Generic Attribute Profile,通用属性协议)承载层,由于智能手机、平板电脑等终端设备不支持广播承载层,因此终端设备需要通过代理节点设备来执行承载层转换(从广播承载层到GATT承载层的转换),使得不支持广播承载层的终端设备可通过GATT连接来收发消息。
在上述背景下,蓝牙Mesh网络的消息传输主要集中在节点设备发送消息到网关和终端设备(例如节点设备将状态消息同步到网关和终端设备);进而,网关和终端设备将节点设备的消息(例如节点设备的状态消息)发送到云端。
在一些示例中,节点设备发送消息到网关和终端设备的场景可以如下示例。
用户在控制单个节点设备时,用户可通过终端设备(主要是终端设备装载的具有蓝牙Mesh网络管理功能的APP)或者蓝牙Mesh网关,下发一条单播控制消息;从而节点设备在获取到该单播控制消息后进行响应控制,并向终端设备或者蓝牙Mesh网关回复状态消息;
用户在控制多个节点设备形成的设备组时,用户可通过终端设备或者蓝牙Mesh网关下发一条组播控制消息;从而设备组中的多个节点设备在获取到该组播控制消息后分别进行响应控制,并分别向终端设备或者蓝牙Mesh网关回复状态消息;此时,设备组中的各个节点设备可分别回复状态消息,状态消息的回复数量与设备组中的节点设备数量相应;
如果用户通过控制面板对节点设备进行本地操作,则用户可一次控制多个节点设备,多个节点设备在分别响应控制后,可分别回复状态消息;
如果多个节点设备重新上电,则每个节点设备可将上电后的状态消息分别发送给终端设备或者蓝牙Mesh网关,以便终端设备或者蓝牙Mesh网关将各个节点设备的状态同步到云端。
上述示例了节点设备向终端设备或者蓝牙Mesh网关发送消息的可能示例场景,当然节点设备还可能在其他场景下向终端设备或者蓝牙Mesh网关发送消息,对此本申请实施例并不设限。基于蓝牙Mesh网络的大规模结构,节点设备在向终端设备或者蓝牙Mesh网关发送消息时,可以通过作为中继的节点设备将消息在蓝牙Mesh网络中进行转发,以便终端设备或者蓝牙Mesh网关的邻居节点设备,能够将消息发送到终端设备或者蓝牙Mesh网关。终端设备或者蓝牙Mesh网关的邻居节点设备可以视为是,与终端设备或者蓝牙Mesh网关相距1跳的节点设备;即终端设备或者蓝牙Mesh网关的邻居节点设备,可通过1跳的消息传输,将消息发送到终端设备或者蓝牙Mesh网关。
为便于理解,以节点设备向蓝牙Mesh网关发送消息为例,图2示例性的示出了节点设备的跳数示例图,如图2所示,以蓝牙Mesh网络具有节点设备N1至N9为例,其中,节点设备N1、N2和N3与蓝牙Mesh网关G相距1跳(即节点设备N1至N3可通过一次消息传输,将消息发送给蓝牙Mesh网关),属于蓝牙Mesh网关G的邻居节点设备;节点设备N4、N5和N6与蓝牙Mesh网关G相距2跳,节点设备N7、N8和N9与蓝牙Mesh网关G相距3跳;以节点设备N7向蓝牙Mesh网关G发送消息为例,由于节点设备N7无法通过1跳的消息发送,将消息发送给蓝牙Mesh网关G,因此节点设备N7发送的消息需要在蓝牙Mesh网络中进行中继转发,从而在消息转发到蓝牙Mesh网关G的邻居节点设备N1、N2或N3时,再由节点设备N1、N2或N3将消息发送给蓝牙Mesh网关G。
在上述背景下,蓝牙Mesh网络是基于管理泛洪的机制来实现转发消息,从而扩展通信范围。在基于管理泛洪的机制来实现转发消息的情况下,一个节点设备的消息转发次数主要基于以下机制进行控制:
TTL(Time To Live,生存时间),蓝牙Mesh网络中的消息可以包含TTL字段,用于指示消息在蓝牙Mesh网络中的转发跳数;在一个示例中,TTL的取值范围可以为0至127,消息在从源节点设备发出后,每在蓝牙Mesh网络中转发一次,则TTL进行递减;需要说明的是,在消息的TTL小于或者等于1时,消息停止转发(也就是说,消息的TTL为0或者1时,消息均停止转发,消息的处理效果是一致的),而消息的TTL大于1时,消息将在蓝牙Mesh网络中进行转发。
消息Cache(缓存):具备消息中继功能的节点设备可以设置消息缓存,以记录一定数目的已转发消息;节点设备在获取到一条消息时,如果消息在消息缓存中命中,则说明节点设备已转发过该消息,从而节点设备不再中继转发该消息,可将该消息进行丢失;而如果消息在消息缓存中未命中,并且消息的TTL大于1,则说明节点设备未中继转发过该消息并且当前需要转发该消息,从而节点设备可将消息转发给相距一跳的邻居节点设备(例如节点设备将消息转发给相距一跳的其他节点设备、蓝牙Mesh网关、终端设备等),并且将消息的TTL递减1。
在蓝牙Mesh网络的消息转发机制下,如果节点设备的消息缓存的大小和作为中继的节点设备的数量能够确定,则消息的TTL大小将决定蓝牙Mesh网络的消息传输性能。也就是说,在节点设备的消息缓存的大小,以及中继的节点设备的数量被确定的情况下,消息的TTL影响蓝牙Mesh网络的消息传输性能。例如,如果消息的TTL选取的过大,则可能产生较多的消息转发,导致不必要的消息传输,从而致使蓝牙Mesh网络存在网络负荷浪费,使得蓝牙Mesh网络的消息传输性能降低;而如果消息的TTL选取的较小,则可能导致消息的转发不足以覆盖蓝牙Mesh网络的范围,造成部分节点设备接收不到消息,导致消息无法被转发到蓝牙Mesh网关和终端设备。可见,如何合理的设置消息的TTL,对于蓝牙Mesh网络的消息传输性能至关重要。
蓝牙Mesh标准虽然允许节点设备默认的TTL能够被调整,但是并没有规定如何选取合理的TTL值,从而在保障消息发送成功率的情况下,减少不必要的消息传输。在此情况下,本申请的发明人曾考虑使用以下几种方式设置消息的TTL。
在设置消息的TTL的一种实现上,每个节点设备维护邻居列表,用于记录与节点设备相距一跳的邻居设备的地址;与节点设备相距一跳的邻居设备可以例如,与节点设备相距一跳的作为邻居的其他节点设备、蓝牙Mesh网关、终端设备等;从而,节点设备在发送消息或者转发消息时,检查消息的目的地址是否记录在邻居列表内;如果不在,则按默认规则设置消息的TTL并转发消息(例如在发送消息时,以默认TTL作为消息的TTL,在转发消息时,将消息的TTL递减1后再转发消息);如果在,则不按照递减TTL的方式来调整TTL的值,而是将消息的TTL直接调整为0或者1,然后再转发消息,从而使得下一次接收消息的其他节点设备不再转发消息。
上述方式能够通过判断消息的目的地址是否属于节点设备的下一跳地址(例如,消息的目的地址记录在节点设备的邻居列表内,则消息的目的地址为节点设备的下一跳地址),来尽可能减小消息的TTL,从而一定程度的减少不必要的消息传输;但是,这种方式并不适用于节点设备数量较多的蓝牙Mesh网络,当蓝牙Mesh网络存在数量众多的节点设备时,每个节点设备的邻居设备的数量将相应增多,从而导致节点设备存储的邻居列表的数据量增大,使得节点设备存在较大的内存开销。另外,消息的TTL只有在传输到与目的地址相邻的节点设备时,才会被修改减小,而不是在消息从源节点设备发出时就设置较为合理的较小值;因此消息在到达与目的地址相邻的节点设备之前,仍然存在较重的网络负载。
在设置消息的TTL的另一种实现上,蓝牙Mesh网络的每个节点设备,可搜索扫描周围节点设备,从而与周围节点设备建立连接;从而,节点设备可统计与周围节点设备的链路信息;进而,节点设备可根据消息的目的地址和节点设备的链路信息,确定消息的中继路径的链路;通过消息的中继路径的链路,计算消息的TTL值。这种方式通过统计消息中继路径的链路,计算出消息在中继路径的链路对应TTL值,从而较为合理的设置TTL值,减少不必要的消息传输;但是,节点设备统计与维护链路的成本较高,并不灵活。例如,在智能家居、全屋智慧照明、智慧办公等设备智能互联场景下,节点设备可能频繁的离开与回到蓝牙Mesh网络(比如,智能灯具在关闭电源时,离开蓝牙Mesh网络,而智能灯具在打开电源时,重新回到蓝牙Mesh网络),因此蓝牙Mesh网络的网络拓扑是动态变化的,而在动态变化的网络拓扑下,统计与维护节点设备的链路信息将带来较大的实现成本。
基于上述描述,本申请实施例提供改进的消息发送方案,从而在发出消息的源节点设备,自适应动态的调整消息的TTL,使得每个节点设备能够以较低的实现成本,合理的设置消息的TTL,进而在保障消息发送成功率的情况下,减少蓝牙Mesh网络中不必要的消息传输,提升蓝牙Mesh网络的消息传输性能。
作为可选实现,图3A示例性的示出了本申请实施例提供的消息发送方法的可选流程图,该方法流程可由节点设备执行实现,参照图3A,该方法流程可以包括如下步骤。
在步骤S310中,确定节点设备待发送的消息对应的目的设备。
执行图3A所示流程的节点设备可以是消息的源节点设备,即消息从源节点设备开始发出。基于此,节点设备可确定待发送的消息对应的目的设备。消息的目的设备可以是蓝牙Mesh网关和终端设备之中的任一项,例如蓝牙Mesh网关或者终端设备。在一些实施例中,节点设备可确定消息的目的地址,从而以消息的目的地址指示所述目的设备。例如,节点设备在向蓝牙Mesh网关发送消息时,消息的目的地址可以是蓝牙Mesh网关的单播地址;蓝牙Mesh网关的单播地址可以是在蓝牙Mesh网关向节点设备下发控制消息时携带,从而节点设备在响应控制并向蓝牙Mesh网关回复消息时,可将蓝牙Mesh网关下发控制消息时的单播地址,作为目的地址。又例如,节点设备在向终端设备发送消息时,消息的目的地址可以是终端设备的地址。
在步骤S311中,在预先维护的消息跳数表中至少查询所述目的设备与节点设备对应的消息跳数,所述消息跳数表至少记录目的设备的广播消息与节点设备之间的消息跳数。
在本申请实施例中,蓝牙Mesh网络中的节点设备可设置和维护消息跳数表,该消息跳数表可以至少用于记录目的设备的广播消息与节点设备之间的消息跳数。在一些实施例中,如果目的设备为蓝牙Mesh网关,则由于蓝牙Mesh网关能够在蓝牙Mesh网络中广播消息,因此蓝牙Mesh网关的广播消息与节点设备之间的消息跳数,可以视为是蓝牙Mesh网关与节点设备之间的消息跳数;相应的,在目的设备为蓝牙Mesh网关的情况下,节点设备的消息跳数表可以记录蓝牙Mesh网关与节点设备之间的消息跳数。
在另一些实施例中,如果目的设备为智能手机等终端设备,由于终端设备需要通过代理节点设备发出广播消息,即终端设备的广播消息是由终端设备的代理节点设备发出,因此终端设备的广播消息与节点设备之间的消息跳数,可以视为是终端设备的代理节点设备与节点设备之间的消息跳数;相应的,在目的设备为终端设备的情况下,节点设备的消息跳数表可以记录终端设备的代理节点设备与节点设备之间的消息跳数。
在进一步的一些实施例中,消息跳数表除记录目的设备的广播消息与节点设备之间的消息跳数外,还可记录目的设备的广播消息对应的源地址。作为可选实现,在目的设备为蓝牙Mesh网关时,由于蓝牙Mesh网关能够在蓝牙Mesh网络中广播消息,因此广播消息对应的源地址可以为蓝牙Mesh网关的地址(例如蓝牙Mesh网关的单播地址);从而,在目的设备为蓝牙Mesh网关的情况下,节点设备的消息跳数表可以记录蓝牙Mesh网关的单播地址,以及蓝牙Mesh网关与节点设备之间的消息跳数。
作为可选实现,在目的设备为终端设备的情况下,由于终端设备通过代理节点设备发出广播消息,因此广播消息的源地址可以为代理节点设备的单播地址;从而,在目的设备为终端设备的情况下,节点设备的消息跳数表可以记录终端设备的代理节点设备的单播地址,以及代理节点设备与节点设备之间的消息跳数。
作为可选实现,在消息跳数表记录目的设备的广播消息的源地址,以及目的设备的广播消息与节点设备之间的消息跳数的情况下,基于步骤S310所确定的消息的目的设备,本申请实施例可确定目的设备的广播消息的源地址,从而判断节点设备的消息跳数表中是否存在该源地址对应的记录,以在节点设备的消息跳数表中存在该源地址对应的记录时,查询出目的设备与节点设备对应的消息跳数(即目的设备的广播消息与节点设备之间的消息跳数)。
需要说明的是,由于终端设备与代理节点设备的结合可形成类似蓝牙Mesh网关的功能,因此在消息跳数表记录蓝牙Mesh网关的单播地址、蓝牙Mesh网关与节点设备之间的消息跳数,以及代理节点设备的单播地址、代理节点设备与节点设备之间的消息跳数的情况下,本申请实施例所指的消息跳数表也可称为网关表。
在进一步的可选实现中,目的设备的广播消息可按照TTL递减的顺序,周期性的在蓝牙Mesh网络中进行广播,并且下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减;从而如果节点设备处于多次广播消息的TTL范围内,则节点设备可接收到目的设备的多次广播消息,进而节点设备可在消息跳数表中,以下一次接收的广播消息的TTL,更新目的设备的广播消息与节点设备之间的消息跳数,从而保障准确设置目的设备的广播消息与节点设备之间的消息跳数。后文以蓝牙Mesh网关广播消息,和终端设备的代理节点设备广播消息为例,对消息跳数表中的消息跳数的记录和更新进行了相应描述,此处不再展开。
在步骤S312中,根据所述消息跳数,确定消息的TTL;所述TTL与所述消息跳数相比具有设定冗余度。
在步骤S313中,根据所确定的TTL,在蓝牙Mesh网络中发送消息;其中,所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
节点设备在从消息跳数表中确定出目的设备与节点设备对应的消息跳数后,节点设备可在该消息跳数的基础上,增加设定冗余度,从而确定出与该消息跳数相比具有设定冗余度的TTL,使得消息在发出时的TTL相比于目的设备与节点设备对应的消息跳数具有一定的冗余度,进而协助消息在蓝牙Mesh网络中进行一定冗余的转发,提高节点设备发出的消息到达目的设备的成功率和抗干扰能力。
节点设备以所确定的TTL在蓝牙Mesh网络中发送消息时,消息每在蓝牙Mesh网络中转发一次,则消息的TTL递减一次(例如消息的TTL递减1),当消息的TTL小于设定的第一值(第一值例如0或者1)时,则消息停止在蓝牙Mesh网络中转发,以使得消息在一定冗余的转发下,能够成功到达目的设备。本申请实施例在发送消息时,引入一定的冗余转发,并不会导致消息在蓝牙Mesh网络中进行过多不必要的传输,而是能够在保障消息发送成功率的情况下,减少不必要的消息传输,提升蓝牙Mesh网络的消息传输性能。
作为可选实现,当节点设备向蓝牙Mesh网关发送消息时,本申请实施例可设置第一设定冗余度,从而节点设备在从消息跳数表中确定蓝牙Mesh网关与节点设备之间的消息跳数后,可确定与该消息跳数相比于具有第一设定冗余度的TTL(例如TTL为该消息跳数加上第一设定冗余度),从而根据该TTL,在蓝牙Mesh网络中发送消息。进一步的,节点设备可将蓝牙Mesh网关的单播地址作为目的地址,并根据所确定的TTL,在蓝牙Mesh网络中发送消息。
作为另一种可选实现,当节点设备向终端设备发送消息时,本申请实施例可设置第二设定冗余度,由于节点设备与终端设备通过代理节点设备进行通信,因此在节点设备确定的消息跳数为代理节点设备与节点设备之间的消息跳数的情况下,本申请实施例设置的第二设定冗余度应大于第一设定冗余度(例如第二设定冗余度为第一设定冗余度加1,从而涵盖代理节点设备与终端设备之间的一跳距离)。进而节点设备在从消息跳数表中确定代理节点设备与节点设备之间的消息跳数后,可确定与该消息跳数相比于具有第二设定冗余度的TTL(例如TTL为该消息跳数加上第二设定冗余度),从而根据该TTL,在蓝牙Mesh网络中发送消息。进一步的,节点设备可将终端设备的地址作为目的地址,并根据所确定的TTL,在蓝牙Mesh网络中发送消息。
需要说明的是,蓝牙Mesh网络中的蓝牙Mesh网关和代理节点设备的数量一般小于节点设备总数,例如在200个节点设备的蓝牙Mesh网络中,蓝牙Mesh网关和代理节点设备的总数可能小于10;因此在大规模蓝牙Mesh网络中,每个节点设备虽然需要设置和维护消息跳数表,但是相比于每个节点设备维护邻居列表的方式,本申请实施例能够极大的降低节点设备维护消息跳数表所需的存储资源消耗。另外,本申请实施例可在节点设备发送消息给蓝牙Mesh网关、终端设备等目的设备时,在发出消息的源节点设备确定消息的TTL,并且消息的TTL是基于目的设备的广播消息与节点设备之间的消息跳数,以及设定冗余度进行确定,因此本申请实施例能够合理设置消息必要传输所需的TTL,从而降低消息在蓝牙Mesh网络中传输的网络负载,提升蓝牙Mesh网络的消息传输性能。
进一步的,本申请实施例提供的方案不需要统计与维护节点设备的链路,任一节点设备、蓝牙Mesh网关可以随时离开和加入蓝牙Mesh网络,并且任一节点设备可以随时在代理节点设备与普通节点设备之间切换角色,因此本申请实施例能够以较低的实现成本,灵活的适应蓝牙Mesh网络的网络拓扑调整,从而合理的设置消息的TTL,降低消息在蓝牙Mesh网络中传输的网络负载,提升蓝牙Mesh网络的消息传输性能。
本申请实施例提供的消息发送方法中,节点设备可设置和维护消息跳数表,该消息跳数表可以至少记录目的设备的广播消息与节点设备之间的消息跳数;从而节点设备在需要在发送消息时,节点设备作为发出消息的源节点设备,可确定消息的目的设备,并从消息跳数表中至少查询所述目的设备与节点设备对应的消息跳数;进而,节点设备可根据所述消息跳数,确定与所述消息跳数相比具有设定冗余度的TTL;根据所确定的TTL,在蓝牙Mesh网络中发送消息。当消息在蓝牙Mesh网络中进行发送时,消息在蓝牙Mesh网络中转发一次,则消息的TTL递减一次,当消息的TTL小于设定的第一值时,则消息停止在蓝牙Mesh网络中转发,以使得消息在经过上述TTL对应次的转发后,到达消息的目的设备。
本申请实施例提供的消息发送方法,可由节点设备设置和维护消息跳数表,并且该消息跳数表记录的是节点设备的目的设备的广播消息,相对于节点设备的消息跳数;由于节点设备的目的设备可能是蓝牙Mesh网关或者终端设备(终端设备由代理节点设备发出广播消息),而蓝牙Mesh网络中的蓝牙Mesh网关和代理节点设备的数量一般小于节点设备的总数,因此节点设备维护消息跳数表所需的数据量较低;同时,本申请实施例可在节点设备发送消息给蓝牙Mesh网关、终端设备等目的设备时,在发出消息的源节点设备确定消息的TTL,并且消息的TTL是基于目的设备的广播消息与节点设备之间的消息跳数,以及设定冗余度进行确定,因此本申请实施例能够合理设置消息必要传输所需的TTL,从而降低消息在蓝牙Mesh网络中传输的网络负载,提升蓝牙Mesh网络的消息传输性能。可见,本申请实施例能够基于节点设备的消息跳数表,在节点设备向目的设备发送消息时,动态优化用于指示消息转发跳数的TTL,从而在保障消息发送成功率的情况下,减少不必要的消息传输,提升蓝牙Mesh网络的消息传输性能。
作为可选实现,从发出广播消息的广播设备(例如蓝牙Mesh网关或者终端设备的代理节点设备)的角度,图3B示例性的示出了本申请实施例提供的消息发送方法的另一可选流程图,该方法流程可由发出广播消息的广播设备执行实现,参照图3B,该方法流程可以包括如下步骤。
在步骤S320中,按照TTL递减的顺序,周期性的在蓝牙Mesh网络中广播消息,以使得接收到广播消息的节点设备,根据广播消息中的TTL在消息跳数表中至少记录广播消息与节点设备之间的消息跳数;其中,下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减。
在一些实施例中,发出广播消息的广播设备可确定广播消息的当前TTL,当前TTL相比于上一次的广播消息的TTL顺序递减;从而广播设备可向处于当前TTL的跳数范围内的节点设备广播消息,以使得当前TTL的跳数范围内的节点设备,根据接收的广播消息在消息跳数表中至少更新广播消息与节点设备之间的消息跳数;其中,更新的消息跳数根据广播消息的当前TTL确定。进一步的,当前TTL的跳数范围内的节点设备还可在消息跳数表中记录,广播消息的源地址(例如蓝牙Mesh网关的单播地址,或者终端设备的代理节点设备的单播地址)。
在步骤S321中,获取节点设备发送的消息;其中,所述消息在从节点设备发出时,根据节点设备的消息跳数表中查询的目的设备与节点设备对应的消息跳数,以及设定冗余度确定TTL;并且消息在蓝牙Mesh网络中转发一次,则消息的TTL递减一次,当消息的TTL小于设定的第一值时,消息停止在蓝牙Mesh网络中转发。
下面分别以节点设备与蓝牙Mesh网关进行消息传输,节点设备与终端设备进行消息传输为例,对本申请实施例提供的方案进行介绍。下文描述的节点设备向蓝牙Mesh网关发送消息的实现,可以认为是节点设备向目的设备发送消息的一种可选实现;下文描述的节点设备向终端设备发送消息的实现,可以认为是节点设备向目的设备发送消息的一种可选实现。
一方面,节点设备可与蓝牙Mesh网关进行消息传输。作为可选实现,蓝牙Mesh网络中的每个节点设备可设置网关表(网关表可以认为是消息跳数表的一种实现示例,下文描述的网关表也可替换为是消息跳数表),用于记录蓝牙Mesh网关的单播地址,以及节点设备与蓝牙Mesh网关的消息跳数。节点设备与蓝牙Mesh网关的消息跳数可以视为是,节点设备与蓝牙Mesh网关相距的消息跳数。
在节点设备设置与蓝牙Mesh网关的消息跳数的一种可选实现中,蓝牙Mesh网关可按照TTL递减的顺序(例如TTL从高到低依序递减的顺序),周期性的向蓝牙Mesh网络中的节点设备发送消息,从而向节点设备通告蓝牙Mesh网关的存在;在蓝牙Mesh网关按照TTL递减的顺序,周期性的广播消息的情况下,能够接收到消息的节点设备可按照每次所接收消息的TTL,更新与蓝牙Mesh网关的消息跳数,从而准确设置节点设备与蓝牙Mesh网关的消息跳数。作为可选实现,图4A示例性的示出了本申请实施例设置网关表的可选方法流程图,如图4A所示,该方法流程可以包括如下步骤。
在步骤S410中,蓝牙Mesh网关确定广播消息的当前TTL,所述当前TTL相比于蓝牙Mesh网关上一次的广播消息的TTL顺序递减。
蓝牙Mesh网络中存在一个或多个蓝牙Mesh网关,每个蓝牙Mesh网关可按照TTL递减的顺序,在蓝牙Mesh网络中周期性的广播消息。可选的,针对任一个蓝牙Mesh网关,蓝牙Mesh网关在蓝牙Mesh网络中下一次广播的消息的TTL,可小于上一次广播的消息的TTL;例如,蓝牙Mesh网关下一次的广播消息的TTL,为上一次的广播消息的TTL减一。从而,蓝牙Mesh网关当前在蓝牙Mesh网络中广播消息时,蓝牙Mesh网关可确定广播消息的当前TTL,并且当前TTL相比于蓝牙Mesh网关上一次的广播消息的TTL顺序递减。
在步骤S411中,蓝牙Mesh网关向处于当前TTL的跳数范围内的节点设备,广播消息;蓝牙Mesh网关的广播消息包括蓝牙Mesh网关的单播地址和当前TTL。
蓝牙Mesh网关基于当前TTL,在蓝牙Mesh网络中广播消息时,与蓝牙Mesh网关处于当前TTL的跳数范围内的节点设备,能够接收到蓝牙Mesh网关的广播消息;而与蓝牙Mesh网关的距离超出当前TTL的节点设备,无法接收到蓝牙Mesh网关的广播消息。例如,广播消息的当前TTL为3,则与蓝牙Mesh网关处于3跳范围内的节点设备,能够接收到蓝牙Mesh网关的广播消息;而与蓝牙Mesh网关的距离超出3跳的节点设备,无法接收到蓝牙Mesh网关的广播消息。蓝牙Mesh网关的广播消息可以至少包括蓝牙Mesh网关的单播地址和当前TTL。
在步骤S412中,处于当前TTL的跳数范围内的节点设备,基于接收的蓝牙Mesh网关的广播消息,在网关表中记录蓝牙Mesh网关的单播地址以及更新与蓝牙Mesh网关的消息跳数;更新的消息跳数根据当前接收的广播消息的当前TTL确定。
在步骤S413中,蓝牙Mesh网关进行下一次的广播消息,返回步骤S410。
蓝牙Mesh网络中的各个蓝牙Mesh网关,均以上述方式周期性的广播消息,并且广播消息的TTL逐次递减,则蓝牙Mesh网络中的节点设备可在网关表中记录得到各个蓝牙Mesh网关的单播地址,以及与各个蓝牙Mesh网关相距的消息跳数。
需要说明的是,基于蓝牙Mesh网关周期性的广播消息,并且每次的广播消息的TTL顺序递减,则每次能够接收到广播消息的节点设备在不断的调整变化。也就是说,在蓝牙Mesh网关每次广播消息时,只有处于广播消息的TTL的跳数范围内的节点设备,才能够接收到广播的消息。例如,蓝牙Mesh网关上一次广播消息的TTL为3,则与蓝牙Mesh网关处于3跳范围内的节点设备,能够接收到蓝牙Mesh网关上一次的广播消息;基于蓝牙Mesh网关的广播消息的TTL需顺序递减,因此蓝牙Mesh网关在下一次广播消息时,下一次的广播消息的TTL为2,从而与蓝牙Mesh网关处于2跳范围内的节点设备,能够接收到蓝牙Mesh网关下一次的广播消息,而与蓝牙Mesh网关的距离超出2跳距离的节点设备(包含上一次能够接收到广播消息,且与蓝牙Mesh网关的距离为3跳的节点设备),无法接收到蓝牙Mesh网关的广播消息。在此情况下,节点设备可根据每次接收到的蓝牙Mesh网关的广播消息,调整网关表中记录的内容;例如,节点设备根据当前接收到的蓝牙Mesh网关的广播消息中的当前TTL,更新网关表中已记录的与蓝牙Mesh网关的消息跳数,从而准确设置节点设备与蓝牙Mesh网关的消息跳数。
在一些实施例中,蓝牙Mesh网关周期性广播消息的最大TTL,可以与节点设备距蓝牙Mesh网关的最远跳数相应;从而蓝牙Mesh网关可从该最大TTL开始,逐次的递减TTL,以实现周期性的在蓝牙Mesh网络中广播消息。
为便于理解,图4B示例性的示出了周期性广播消息的示例图,如图4B所示,节点设备N1、N2和N3与蓝牙Mesh网关G相距1跳,节点设备N4、N5和N6与蓝牙Mesh网关G相距2跳,节点设备N7、N8和N9与蓝牙Mesh网关G相距3跳,从而在本示例中,节点设备距蓝牙Mesh网关G的最远跳数为3跳,进而蓝牙Mesh网关G可设置最大TTL为3,并且逐次的递减TTL,以周期性的在蓝牙Mesh网络中广播消息;
进一步结合图4B所示,蓝牙Mesh网关G第一次以TTL为3,在3跳范围内广播消息;从而与蓝牙Mesh网关G相距3跳范围内的节点设备N1至N9,均可接收到蓝牙Mesh网关G的广播消息;基于广播消息中的单播地址和TTL,节点设备N1至N9可在各自的网关表中记录蓝牙Mesh网关G的单播地址,以及与蓝牙Mesh网关的消息跳数为3;
蓝牙Mesh网关G在第二次广播消息时,可将TTL递减为2,从而以TTL为2,在2跳范围内广播消息;此时,与蓝牙Mesh网关G相距2跳范围内的节点设备N1至N6,可接收到蓝牙Mesh网关G广播的消息;而与蓝牙Mesh网关G相距3跳的节点设备N7至N9,无法接收到蓝牙Mesh网关G的广播消息;基于当前广播消息中的单播地址和TTL(此时TTL为2),节点设备N1至N6可在各自的网关表中查询与蓝牙Mesh网关G的单播地址相应的记录,从而将与蓝牙Mesh网关G的消息跳数更新为2;
蓝牙Mesh网关G在第三次广播消息时,可将TTL递减为1,从而以TTL为1,在1跳范围内广播消息;此时,与蓝牙Mesh网关G相距1跳范围内的节点设备N1至N3,可接收到蓝牙Mesh网关G广播的消息;而与蓝牙Mesh网关G相距2跳的节点设备N4至N6,以及与蓝牙Mesh网关G相距3跳的节点设备N7至N9,均无法接收到蓝牙Mesh网关G的广播消息;基于当前广播消息中的单播地址和TTL(此时TTL为1),节点设备N1至N3可在各自的网关表中查询与蓝牙Mesh网关G的单播地址相应的记录,从而将与蓝牙Mesh网关G的消息跳数更新为1。
也就是说,在节点设备多次接收到同一蓝牙Mesh网关的广播消息时,下一次接收的广播消息中的TTL,可覆盖上一次接收的广播消息中的TTL,以实现在网关表中更新与蓝牙Mesh网关的消息跳数,保障节点设备能够准确设置与蓝牙Mesh网关的消息跳数。
上文描述了节点设备通过网关表,设置与蓝牙Mesh网关的消息跳数的可能方式。在此基础上,当节点设备需要向蓝牙Mesh网关发送消息时,节点设备可查询网关表,从网关表中查询节点设备与蓝牙Mesh网关的消息跳数;进而根据所述消息跳数,确定与所述消息跳数相比具有第一设定冗余度的TTL;从而节点设备可根据所述TTL,在蓝牙Mesh网络中发送消息,以实现节点设备向蓝牙Mesh网关发送消息。
本申请实施例在节点设备向蓝牙Mesh网关发送消息时,将消息的TTL设置为与蓝牙Mesh网关的消息跳数具有第一设定冗余度,能够在节点设备与蓝牙Mesh网关的消息跳数的基础上,通过第一设定冗余度,来协助消息在蓝牙Mesh网络中进行转发,从而提高节点设备发送的消息到达蓝牙Mesh网关的成功率和抗干扰能力。作为可选实现,第一设定冗余度可以是预先设置的冗余数值,可根据实际情况而定;在一个实现示例中,本申请实施例可设置第一设定冗余度为1,例如,节点设备在向蓝牙Mesh网关发送消息时,消息的TTL相比于节点设备与蓝牙Mesh网关的消息跳数大1。
为便于理解,图4C进一步示例了节点设备发送消息时的TTL设置示例图。如图4C所示,节点设备N1、N2和N3与蓝牙Mesh网关G的消息跳数均为1(节点设备N1、N2和N3可通过查询网关表,确定与蓝牙Mesh网关G的消息跳数),则在节点设备N1、N2和N3向蓝牙Mesh网关G发送消息时,基于第一设定冗余度设置为1,节点设备N1、N2和N3可设置消息的TTL为2;从而节点设备N1、N2和N3分别以TTL为2发送消息,以在节点设备N1、N2和N3与蓝牙Mesh网关的1条消息跳数的基础上,进一步通过1跳的第一设定冗余度,协助消息在蓝牙Mesh网络中进行转发,提升消息到达蓝牙Mesh网关G的成功率和抗干扰能力。
节点设备N4、N5和N6与蓝牙Mesh网关G的消息跳数均为2,则在节点设备N4、N5和N6向蓝牙Mesh网关G发送消息时,基于第一设定冗余度设置为1,节点设备N4、N5和N6可设置消息的TTL为3;从而节点设备N4、N5和N6分别以TTL为3发送消息。节点设备N7、N8和N9与蓝牙Mesh网关G的消息跳数均为3,则在节点设备N7、N8和N9向蓝牙Mesh网关G发送消息时,基于第一设定冗余度设置为1,节点设备N7、N8和N9可设置消息的TTL为4;从而节点设备N7、N8和N9分别以TTL为4发送消息。
在进一步的可选实现中,针对与蓝牙Mesh网关相距最远消息跳数的节点设备,本申请实施例可将节点设备向蓝牙Mesh网关发送的消息的TTL,在第一设定冗余度的基础上进一步增加设定值(设定值例如1),以使得相距蓝牙Mesh网关最远的节点设备所发送的消息,能够在蓝牙Mesh网络中进行更多次的消息协助转发,从而提升消息到达蓝牙Mesh网关的成功率和抗干扰能力;例如,在图4C示例基础上,基于节点设备N7、N8和N9与蓝牙Mesh网关G的消息跳数为3(示例中的最远消息跳数),本申请实施例在第一设定冗余度的基础上,可进一步增加设定值,从而得到节点设备N7、N8和N9发送消息的TTL;比如,节点设备N7、N8和N9发送消息的TTL可以设置为5;需要说明的是,针对与蓝牙Mesh网关相距最远消息跳数的节点设备,进一步将消息的TTL增大设定值仅是一种可选实现,本申请实施例也可保持与蓝牙Mesh网关相距最远消息跳数的节点设备,以第一设定冗余度设置消息的TTL。
为便于理解,本申请实施例设置第一设定冗余度的初衷,下面通过一个示例进行说明。假设节点设备N1和节点设备N2均能够通过一跳的距离,将消息发送给蓝牙Mesh网关G,并且第一设定冗余度设为1,则节点设备N1使用TTL为2发送消息时,蓝牙Mesh网关G能够接收到节点设备N1的消息,节点设备N2也能够接收到节点设备N1的消息;当节点设备N2接收到节点设备N1的消息后,发现节点设备N1的消息的TTL为2,则节点设备N2可将消息的TTL递减后(例如节点设备N2可将节点设备N1的消息的TTL递减为1),再转发一次节点设备N1的消息;此时,蓝牙Mesh网关G能够接收到节点设备N2所转发的节点设备N1的消息,进而能够保障蓝牙Mesh网关G由于干扰等问题未接收到节点设备N1直接发送的消息时,接收到节点设备N2所转发的节点设备N1的消息,增加了蓝牙Mesh网关G接收到节点设备N1的消息的机会,从而提升节点设备发送的消息到达蓝牙Mesh网关的成功率。需要说明的是,在节点设备与蓝牙Mesh网关的消息跳数的基础上,增加第一设定冗余度来设置消息的TTL,虽然增加了消息在蓝牙Mesh网络中转发的冗余度,但是在消息的TTL每被转发一次则递减的机制下,通过合理设置第一设定冗余度的数值,能够在提升消息发送成功率的情况下,保障消息在蓝牙Mesh网络中的转发不会引入过度的冗余。
作为可选实现,节点设备可在接收到蓝牙Mesh网关的控制消息并进行响应控制后,向蓝牙Mesh网关回复消息;在此情况下,图4D示例性的示出了本申请实施例提供的节点设备向蓝牙Mesh网关发送消息的示例流程图,该方法流程可由节点设备执行实现,如图4D所示,该方法流程可以包括如下步骤。
在步骤S420中,确定蓝牙Mesh网关下发的控制消息使用的单播地址。
在步骤S421中,根据该单播地址,在网关表中查询是否存在蓝牙Mesh网关相应的记录,若是,执行步骤S422,若否,执行步骤S424。
在步骤S422中,确定网关表中记录的与蓝牙Mesh网关相距的消息跳数,根据该消息跳数和第一设定冗余度,确定节点设备发送消息的TTL。
步骤S421的判断结果为是,则说明蓝牙Mesh网关的单播地址在网关表中命中,即节点设备的网关表记录有蓝牙Mesh网关的单播地址和与蓝牙Mesh网关相距的消息跳数,从而节点设备可根据该消息跳数和第一设定冗余度,确定节点设备向蓝牙Mesh网关发送消息的TTL。
在步骤S423中,将该单播地址作为目的地址,根据所确定的TTL,在蓝牙Mesh网络中发送消息。
蓝牙Mesh网关的单播地址在节点设备的网关表中命中的情况下,节点设备在确定发送消息的TTL后,可将蓝牙Mesh网关的单播地址作为发送消息的目的地址,从而根据所确定的消息的TTL,在蓝牙Mesh网络中发送消息。
在步骤S424中,确定蓝牙Mesh网络中蓝牙Mesh网关的组播地址;以及,从网关表中查询与节点设备相距最近的蓝牙Mesh网关的最近消息跳数,根据该最近消息跳数和第一设定冗余度,确定节点设备发送消息的TTL。
步骤S421的判断结果为否,则说明蓝牙Mesh网关的单播地址在网关表中未命中,即节点设备的网关表未记录有蓝牙Mesh网关的单播地址和与蓝牙Mesh网关相距的消息跳数;此时,节点设备可通过组播方式向蓝牙Mesh网络中的蓝牙Mesh网关发送消息,并且以与节点设备最近的蓝牙Mesh网关为准,进行消息TTL的设置;从而,节点设备可确定蓝牙Mesh网络中蓝牙Mesh网关的组播地址(例如蓝牙Mesh网络中所有蓝牙Mesh网关的组播地址),并且从网关表中查询相距最近的蓝牙Mesh网关的最近消息跳数,从而根据该最近消息跳数和第一设定冗余度,确定节点设备发送消息的TTL。
在步骤S425中,将该组播地址作为目的地址,根据所确定的TTL,在蓝牙Mesh网络中发送消息。
需要说明的是,蓝牙Mesh网关的组播地址是一个特殊地址,在利用该组播地址发送消息时,蓝牙Mesh网络中的所有蓝牙Mesh网关可默认接收和处理消息。同时,节点设备以相距最近的蓝牙Mesh网关的最近消息跳数,确定消息的TTL,能够使得节点设备发送的消息至少能够到达相距最近的蓝牙Mesh网关,或者消息的TTL范围内的任一蓝牙Mesh网关,从而由接收到消息的蓝牙Mesh网关将消息上传到云端。
在进一步的可选实现中,当节点设备涉及到向多个蓝牙Mesh网关发送消息时,在节点设备通过网关表记录多个蓝牙Mesh网关的单播地址和相距的消息跳数的情况下,节点设备向各个蓝牙Mesh网关发送消息的实现方式可同理参照前文描述。
为便于理解,图5示例性的示出了节点设备与多个蓝牙Mesh网关的示例图,如图5所示,蓝牙Mesh网络中存在蓝牙Mesh网关G1和G2,蓝牙Mesh网关G1和G2可分别按照TTL由3递减至1的顺序,周期性的在蓝牙Mesh网络中广播消息;由于节点设备N1至N3处于蓝牙Mesh网关G1的1跳范围内,处于蓝牙Mesh网关G2的3跳范围内,从而节点设备N1、N2和N3基于蓝牙Mesh网关G1和G2周期性广播的消息,可分别在网关表中记录蓝牙Mesh网关G1的单播地址以及1跳的消息跳数,蓝牙Mesh网关G2的单播地址以及3跳的消息跳数;由于节点设备N4至N6处于蓝牙Mesh网关G1的2跳范围内,处于蓝牙Mesh网关G2的2跳范围内,从而节点设备N4、N5和N6基于蓝牙Mesh网关G1和G2周期性广播的消息,可分别在网关表中记录蓝牙Mesh网关G1的单播地址以及2跳的消息跳数,蓝牙Mesh网关G2的单播地址以及2跳的消息跳数;由于节点设备N7至N9处于蓝牙Mesh网关G1的3跳范围内,处于蓝牙Mesh网关G2的1跳范围内,从而节点设备N7、N8和N9基于蓝牙Mesh网关G1和G2周期性广播的消息,可分别在网关表中记录蓝牙Mesh网关G1的单播地址以及3跳的消息跳数,蓝牙Mesh网关G2的单播地址以及1跳的消息跳数;
以蓝牙Mesh网关G1和G2的单播地址均在节点设备N1至N9的网关表中命中为例,当节点设备N1向蓝牙Mesh网关G1发送消息时,消息的目的地址为蓝牙Mesh网关G1的单播地址,TTL为1跳的消息跳数结合第一设定冗余度(例如消息的TTL为2);当节点设备N1向蓝牙Mesh网关G2发送消息时,消息的目的地址为蓝牙Mesh网关G2的单播地址,TTL示例为2;在节点设备N2至N9分别向蓝牙Mesh网关G1和蓝牙Mesh网关G2发送消息的情况下,目的地址和TTL的设置可同理进行,此处不再展开。
需要说明的是,如果蓝牙Mesh网关G1和G2的单播地址未在某一节点设备的网关表中命中,则节点设备发送消息的目的地址可以是蓝牙Mesh网络中蓝牙Mesh网关的组播地址,消息的TTL可以是节点设备相距最近的蓝牙Mesh网关的消息跳数结合第一设定冗余度;例如,节点设备N1向蓝牙Mesh网关G1和蓝牙Mesh网关G2发送消息时,蓝牙Mesh网关G1和蓝牙Mesh网关G2的单播地址未在节点设备N1的网关表中命中,则节点设备N1发送消息的目的地址为蓝牙Mesh网络中蓝牙Mesh网关的组播地址,消息的TTL可以示例为2(例如节点设备N1发送的消息需至少到达蓝牙Mesh网关G1)。
另一方面,节点设备可与智能手机等终端设备进行消息传输,此时节点设备可通过代理节点设备与终端设备进行通信,例如,节点设备发送的消息可在蓝牙Mesh网络中进行中继转发,从而到达代理节点设备,进而由代理节点设备将消息发送给终端设备。在此情况下,本申请实施例可由终端设备的每个代理节点设备向蓝牙Mesh网络中的节点设备,周期性的广播消息,以向蓝牙Mesh网络中的节点设备通告代理节点设备的存在;并且,每个代理节点设备在周期性广播消息时,消息的TTL逐次递减;从而蓝牙Mesh网络中的节点设备可在网关表中,记录各个代理节点设备的单播地址,以及相距各个代理节点设备的消息跳数。作为可选实现,节点设备在网关表中设置代理节点设备的记录的方式,与在网关表中设置蓝牙Mesh网关的记录的方式可同理实现。需要说明的是,代理节点设备负责将蓝牙Mesh网络中节点设备发送的消息,转发给智能手机等终端设备,而终端设备也可将节点设备发送的消息同步到云端,因此代理节点设备与终端设备可结合构成蓝牙Mesh网关的功能。
作为可选实现,代理节点设备可确定广播消息的当前TTL,所述当前TTL相比于代理节点设备上一次的广播消息的TTL顺序递减。从而,代理节点设备可向处于当前TTL的跳数范围内的节点设备,广播消息;代理节点设备的广播消息包括代理节点设备的单播地址和当前TTL。进而,处于当前TTL的跳数范围内的节点设备,基于接收的广播消息,可在网关表中记录代理节点设备的单播地址以及更新与代理节点设备的消息跳数;更新的消息跳数根据当前接收的广播消息的当前TTL确定。
终端设备的各个代理节点设备,均以上述方式周期性的广播消息,并且广播消息的TTL逐次递减,则蓝牙Mesh网络中的节点设备可在网关表中记录得到各个代理节点设备的单播地址,以及与各个代理节点设备相距的消息跳数。
作为可选实现,代理节点设备可在与终端设备建立代理连接后,开始在蓝牙Mesh网络中,按照TTL递减的顺序(例如TTL从高到低依序递减的顺序),周期性的发送消息,并且消息至少包括代理节点设备的单播地址和当前TTL。从而,蓝牙Mesh网络中的节点设备在接收到代理节点设备发送的消息后,可在网关表中记录节点设备的单播地址,并且根据代理节点设备广播的消息的当前TTL,在网关表中记录或者更新与代理节点设备相距的消息跳数。也就是说,节点设备在多次接收到同一代理节点设备的广播消息时,下一次接收的广播消息的TTL,可覆盖上一次接收的广播消息的TTL,以实现在网关表中更新与代理节点设备的消息跳数。
在一个实现示例中,图6A示例性的示出了节点设备向终端设备发送消息的示例图,如图6A所示,针对蓝牙Mesh网络中的节点设备N1至N9,节点设备N3、N6和N9可作为终端设备的代理节点设备,并且节点设备N3定义为代理节点设备P1,节点设备N6定义为代理节点设备P2,节点设备N9定义为代理节点设备P3;则节点设备N2、N5和N8与代理节点设备P1、P2和P3的距离为1跳,节点设备N1、N4和N7与代理节点设备P1、P2和P3的距离为2跳。作为可选实现,代理节点设备周期性广播消息的最大TTL,可以与节点设备距代理节点设备的最远跳数相应;从而代理节点设备可从该最大TTL开始,逐次的递减TTL,以实现周期性的在蓝牙Mesh网络中广播消息。基于此,代理节点设备P1、P2和P3可分别从TTL为2开始,逐次的递减TTL,从而在蓝牙Mesh网络中广播消息。
例如,代理节点设备P1、P2和P3可先从TTL为2开始,在蓝牙Mesh网络中广播消息,从而处于1跳范围内的节点设备N2、N5和N8,以及处于2跳范围内的N1、N4和N7均可接收到代理节点设备的广播消息;进而节点设备N2、N5和N8可分别在网关表中记录代理节点设备P1、P2和P3的单播地址以及2条的消息跳数,节点设备N1、N4和N7可分别在网关表中记录代理节点设备P1、P2和P3的单播地址以及2条的消息跳数;
代理节点设备P1、P2和P3在下一次广播消息时,可设置TTL为1,从而处于1跳范围内的节点设备N2、N5和N8可接收到代理节点设备的广播消息,而相距2跳的节点设备N1、N4和N7无法接收到代理节点设备的广播消息;进而,节点设备N2、N5和N8可分别在网关表中查询到代理节点设备P1、P2和P3的记录,从而将与代理节点设备P1、P2和P3的消息跳数更新为1。
进一步的,蓝牙Mesh网络中的节点设备在向终端设备发送消息时,节点设备可从网关表中确定终端设备的代理节点设备相应的消息跳数,从而根据该消息跳数,确定与该消息跳数相比具有第二设定冗余度的TTL;进而节点设备可根据该TTL,在蓝牙Mesh网络中发送消息,以使得节点设备发送的消息能到达终端设备。作为可选实现,第二设定冗余度可以大于上文描述的第一设定冗余度(第一设定冗余度为目的设备为蓝牙Mesh网关时,消息的TTL对应的设定冗余度),例如,第二设定冗余度为第一设定冗余度加1。
进一步结合图6A所示,节点设备N2、N5和N8需要通过代理节点设备P1、P2和P3,与终端设备进行通信;并且节点设备N2、N5和N8处于代理节点设备P1、P2和P3的1跳范围内,则节点设备N2、N5和N8可以在网关表中记录与代理节点设备P1、P2和P3相距的消息跳数为1;从而节点设备N2、N5和N8在向终端设备发送消息时,节点设备N2、N5和N8可从网关表中查询与终端设备的代理节点设备P1、P2和P3相距的消息跳数(例如1),进而在该消息跳数的基础上增加第二设定冗余度,得到节点设备N2、N5和N8发送消息时的TTL。例如,以第一设定冗余度为1为例,则第二设定冗余度可以为第一设定冗余度加1,比如第二设定冗余度为2,从而节点设备N2、N5和N8确定与代理节点设备P1、P2和P3的消息跳数为1时,可确定节点设备N2、N5和N8发送消息的TTL为3;从而节点设备N2、N5和N8以TTL为3发送消息。
需要说明的是,本申请实施例在节点设备与代理节点设备的消息跳数的基础上,进一步增加第二设定冗余度,并且第二设定冗余度大于第一设定冗余度,是因为代理节点设备距离终端设备还存在一跳的传输距离,因此节点设备在向终端设备发送消息时的TTL,相比于向蓝牙Mesh网关发送消息时的TTL应至少大1。
进一步结合图6A所示,节点设备N1、N4和N7与代理节点设备P1、P2和P3相距2跳,则节点设备N1、N4和N7可以在网关表中记录与代理节点设备P1、P2和P3相距的消息跳数为2;从而节点设备N1、N4和N7在向终端设备发送消息时,节点设备N1、N4和N7可从网关表中查询与代理节点设备P1、P2和P3相距的消息跳数(例如2),进而在该消息跳数的基础上,增加第二设定冗余度(例如2),得到节点设备N2、N5和N8发送消息时的TTL(例如4)。在示例中,节点设备N1、N4和N7以TTL为4发送消息。
在进一步的可选实现,针对与代理节点设备相距最远消息跳数的节点设备,本申请实施例可将节点设备向终端设备发送的消息的TTL,在第二设定冗余度的基础上进一步增加设定值(设定值例如1),以使得相距代理节点设备最远的节点设备所发送的消息,能够在蓝牙Mesh网络中进行更多次的消息协助转发,从而提升消息到达终端设备的成功率和抗干扰能力;例如,基于节点设备N1、N4和N7与代理节点设备的消息跳数为2(示例中的最远消息跳数),本申请实施例在第二设定冗余度(例如2)的基础上,可进一步增加设定值(例如1),从而得到节点设备N1、N4和N7向终端设备发送消息的TTL(例如节点设备N1、N4和N7向终端设备发送消息的TTL为5)。
作为可选实现,节点设备在向终端设备发送消息时,可确定终端设备的代理节点设备的单播地址,从而根据该单播地址从网关表中查询代理节点设备的记录。如果网关表中存在该单播地址对应的代理节点设备的记录(即该单播地址在网关表中命中),则节点设备可从查询到的记录中,确定代理节点设备相距的消息跳数,从而根据该消息跳数与第二设定冗余度,确定节点设备发送消息的TTL;进而节点设备,以终端设备的地址为目的地址,以所确定的TTL,在蓝牙Mesh网络中发送消息。
在进一步的可选实现中,终端设备的代理节点设备可能存在与终端设备断开代理连接的情况,此时,断开代理连接的代理节点设备可在蓝牙Mesh网络中广播代理连接断开消息(例如以最大TTL广播代理连接断开消息);从而接收到该代理连接断开消息的节点设备,可在网关表中将断开代理连接的代理节点设备对应的记录进行删除。例如,代理节点设备广播的代理连接断开消息可以携带代理节点设备的单播地址,从而接收到代理连接断开消息的节点设备,可根据代理连接断开消息中携带的单播地址,将网关表中该单薄地址相应的记录进行删除。
进一步的,如果终端设备的代理节点设备均断开了代理连接,则节点设备的网关表中可记录蓝牙Mesh网关的单播地址和相距的消息跳数,从而节点设备可根据蓝牙Mesh网关的单播地址和消息跳数,确定发送消息时的TTL。在一个实现示例中,图6B示例性的示出了代理节点设备断开代理连接的示例图,如图6B所示,基于蓝牙Mesh网络中的节点设备与代理节点设备的最大TTL为2,则节点设备N3、N6和N9在断开代理连接后,节点设备N3、N6和N9以TTL为2,在蓝牙Mesh网络中广播代理连接断开消息;从而节点设备N2、N5、N8、N1、N4和N7可分别在网关表中,删除节点设备N3、N6和N9的记录;此时,节点设备N1至N9的网关表中可存在蓝牙Mesh网关的记录,从而节点设备N1至N9中的任一节点设备在发送消息时,可根据蓝牙Mesh网关的单播地址和消息跳数,确定发送消息时的TTL。
本申请实施例提供的消息传输方法中,节点设备可向蓝牙Mesh网关和终端设备发送消息,为合理设置节点设备向蓝牙Mesh网关和终端设备发送消息时的TTL,蓝牙Mesh网关和终端设备的代理节点设备可按照TTL递减的顺序,周期性的广播消息,从而使得节点设备在网关表中记录蓝牙Mesh网关的单播地址和消息跳数,以及代理节点设备的单播地址和消息跳数。进而,节点设备在向蓝牙Mesh网关发送消息时,可根据网关表中记录的蓝牙Mesh网关的消息跳数以及第一设定冗余度,确定相比于蓝牙Mesh网关的消息跳数具有第一设定冗余度的TTL,从而实现节点设备在向蓝牙Mesh网关发送消息时的TTL动态优化,能够在有限冗余的消息转发下,保障节点设备向蓝牙Mesh网关发送消息的成功率,并且降低消息的不必要传输,提升蓝牙Mesh网络的消息传输性能。
在节点设备在向终端设备发送消息时,节点设备可根据网关表中记录的终端设备的代理节点设备的消息跳数以及第二设定冗余度,确定具有第二设定冗余度的TTL,从而实现节点设备在向终端设备发送消息时的TTL动态优化,能够在代理节点设备沟通节点设备与终端设备,并且消息有限冗余转发的情况下,保障节点设备向终端设备发送消息的成功率,并且降低消息的不必要传输,提升蓝牙Mesh网络的消息传输性能。
可见,本申请实施例可动态优化节点设备向目的设备发送消息时的TTL(目的设备例如蓝牙Mesh网关或者终端设备),在保障消息发送成功率的情况下,减少不必要的消息传输、优化大规模蓝牙Mesh网络的消息传输性能。
下面对本申请实施例提供的消息发送装置进行介绍,下文描述的消息发送装置可以认为是节点设备为实现本申请实施例提供的消息发送方法所需设置的功能模块,下文描述的装置内容可与上文描述的内容相互对应参照。
作为可选实现,图7示例性的示出了本申请实施例提供的消息发送装置的可选框图,该装置可应用于节点设备,参照图7,该装置可以包括:
目的确定模块710,用于确定节点设备待发送的消息对应的目的设备;
查询模块711,用于在预先维护的消息跳数表中至少查询所述目的设备与节点设备对应的消息跳数,所述消息跳数表至少记录目的设备的广播消息与节点设备之间的消息跳数;
TTL确定模块712,用于根据所述消息跳数,确定消息的TTL;所述TTL与所述消息跳数相比具有设定冗余度;
消息发送模块713,用于根据所确定的TTL,在蓝牙Mesh网络中发送消息;其中,所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
在一些实施例中,所述目的设备的广播消息按照TTL递减的顺序,周期性的在蓝牙Mesh网络中进行广播,并且下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减;该装置还可用于:
如果所述节点设备处于多次广播消息的TTL范围内,则接收目的设备的多次广播消息;在所述消息跳数表中,以下一次接收的广播消息的TTL,更新目的设备的广播消息与节点设备之间的消息跳数。
在一些实施例中,所述目的设备包括蓝牙Mesh网关和终端设备之中的任一项,其中,所述终端设备通过代理节点设备发出广播消息;
在所述目的设备为蓝牙Mesh网关时,作为可选实现,所述消息跳数表至少记录蓝牙Mesh网关与节点设备之间的消息跳数;
在所述目的设备为终端设备时,作为可选实现,所述消息跳数表至少记录终端设备的代理节点设备与节点设备之间的消息跳数。
在一些实施例中,在所述目的设备为蓝牙Mesh网关时,查询模块711,用于在预先维护的消息跳数表中至少查询所述目的设备与节点设备对应的消息跳数包括:在所述消息跳数表中至少查询所述节点设备与蓝牙Mesh网关之间的消息跳数;
TTL确定模块712,用于根据所述消息跳数,确定消息的TTL包括:根据所述消息跳数,确定与所述消息跳数相比具有第一设定冗余度的TTL。
在一些实施例中,在所述目的设备为终端设备时,查询模块711,用于在预先维护的消息跳数表中至少查询所述目的设备与节点设备对应的消息跳数包括:在所述消息跳数表中至少查询所述节点设备与所述终端设备的代理节点设备之间的消息跳数;
TTL确定模块712,用于根据所述消息跳数,确定消息的TTL包括:根据所述消息跳数,确定与所述消息跳数相比具有第二设定冗余度的TTL;所述第二设定冗余度大于第一设定冗余度,所述第一设定冗余度为目的设备为蓝牙Mesh网关时,消息的TTL对应的设定冗余度。
在一些实施例中,所述消息跳数表还记录目的设备的广播消息的源地址;在目的设备为蓝牙Mesh网关时,目的设备的广播消息的源地址为蓝牙Mesh网关的单播地址;在目的设备为终端设备时,目的设备的广播消息的源地址为,终端设备的代理节点设备的单播地址。
本申请实施例还提供一种节点设备,该节点设备可通过设置上述所述的应用于节点设备的消息发送装置,以实现本申请实施例提供的消息发送方法。作为可选实现,图8示例性的示出了节点设备的可选框图,如图8所示,该节点设备可以包括至少一个处理器81,至少一个通信接口82,至少一个存储器83和至少一个通信总线84。
在本申请实施例中,处理器81、通信接口82、存储器83、通信总线84的数量为至少一个,且处理器81、通信接口82、存储器83通过通信总线84完成相互间的通信。
可选的,通信接口82可以为用于进行网络通信的通信模块的接口。
可选的,处理器81可能是CPU,GPU(Graphics Processing Unit,图形处理器),NPU(嵌入式神经网络处理器),FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),TPU(张量处理单元),AI芯片,特定集成电路ASIC(Application Specific IntegratedCircuit),或者是被配置成实施本申请实施例的一个或多个集成电路等。
存储器83可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器83存储一条或多条计算机可执行指令,处理器81调用所述一条或多条计算机可执行指令,以执行本申请实施例由节点设备执行的消息发送方法。
下面从广播设备的角度,对本申请实施例提供的消息发送装置进行介绍,下文描述的消息发送装置可以认为是广播设备(例如蓝牙Mesh网关或者终端设备的代理节点设备)为实现本申请实施例提供的消息发送方法所需设置的功能模块,下文描述的装置内容可与上文描述的内容相互对应参照。
作为可选实现,图9示例性的示出了本申请实施例提供的消息发送装置的另一可选框图,该装置可应用于广播设备,参照图9,该装置可以包括:
消息广播模块910,用于按照TTL递减的顺序,周期性的在蓝牙Mesh网络中广播消息,以使得接收到广播消息的节点设备,根据广播消息中的TTL在消息跳数表中至少记录广播消息与节点设备之间的消息跳数;其中,下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减;
消息获取模块911,用于获取节点设备发送的消息;其中,所述消息在从所述节点设备发出时,所述消息的TTL根据所述节点设备的消息跳数表中查询的目的设备与所述节点设备对应的消息跳数,以及设定冗余度确定;并且所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当所述消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
在一些实施例中,消息广播模块910,用于按照TTL递减的顺序,周期性的在蓝牙Mesh网络中广播消息,以使得接收到广播消息的节点设备,根据广播消息中的TTL在消息跳数表中至少记录广播消息与节点设备之间的消息跳数包括:
确定广播消息的当前TTL,所述当前TTL相比于上一次的广播消息的TTL顺序递减;
向处于当前TTL的跳数范围内的节点设备广播消息,以使得当前TTL的跳数范围内的节点设备,根据接收的广播消息在消息跳数表中至少更新广播消息与节点设备之间的消息跳数;其中,更新的消息跳数根据广播消息的当前TTL确定。
本申请实施例还提供一种广播设备,该广播设备可通过设置上述所述的应用于节点设备的消息发送装置,以实现本申请实施例提供的消息发送方法。作为可选实现,广播设备的可选结构可结合图8所示,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如本申请实施例由广播设备执行的消息发送方法。可选的,广播设备可以为蓝牙Mesh网关或者终端设备的代理节点设备。
本申请实施例还提供一种设备智能互联系统,该设备智能互联系统可以包括节点设备,以及广播设备;该广播设备可以包括蓝牙Mesh网关或者终端设备的代理节点设备。在本申请实施例中,设备智能互联系统中的节点设备可以用于执行本申请实施例提供的由节点设备执行的消息发送方法(例如,设备智能互联系统中的节点设备为本申请实施例上述提供的节点设备);设备智能互联系统中的广播设备可以用于执行本申请实施例提供的由广播设备执行的消息发送方法(例如,设备智能互联系统中的广播设备为本申请实施例上述提供的广播设备)。
本申请实施例提供的设备智能互联系统可以应用于智能家居、智慧办公等设备智能互联场景。例如,在智能家居场景下,节点设备可以是带有蓝牙通信功能的家庭电子设备(例如,智能灯具、智能电视、净水器等);在智能家居场景下,蓝牙Mesh网关可以例如智能音箱、多模网关等。
本申请实施例还提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如本申请实施例提供的由节点设备执行的消息发送方法,或者,如本申请实施例提供的由广播设备执行的消息发送方法。
本申请实施例还提供一种计算机程序,所述计算机程序被执行时,实现如本申请实施例提供的由节点设备执行的消息发送方法,或者,如本申请实施例提供的由广播设备执行的消息发送方法。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种消息发送方法,其中,应用于节点设备,所述方法包括:
确定所述节点设备待发送的消息对应的目的设备;
在所述节点设备预先维护的消息跳数表中,至少查询所述目的设备与所述节点设备对应的消息跳数;所述消息跳数表至少记录所述目的设备的广播消息与所述节点设备之间的消息跳数;
根据所述消息跳数,确定消息的生存时间TTL;所述TTL与所述消息跳数相比具有设定冗余度;
根据所确定的TTL,在蓝牙Mesh网络中发送所述消息;其中,所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当所述消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
2.根据权利要求1所述的方法,其中,所述目的设备的广播消息按照TTL递减的顺序,周期性的在蓝牙Mesh网络中进行广播,并且下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减;所述方法还包括:
如果所述节点设备处于多次广播消息的TTL范围内,则接收所述目的设备的多次广播消息;在所述消息跳数表中,以下一次接收的广播消息的TTL,更新所述目的设备的广播消息与所述节点设备之间的消息跳数。
3.根据权利要求1所述的方法,其中,所述目的设备包括蓝牙Mesh网关和终端设备之中的任一项,其中,所述终端设备通过代理节点设备发出广播消息;
在所述目的设备为蓝牙Mesh网关时,所述消息跳数表至少记录所述目的设备的广播消息与所述节点设备之间的消息跳数包括:所述消息跳数表至少记录所述蓝牙Mesh网关与所述节点设备之间的消息跳数;
在所述目的设备为终端设备时,所述消息跳数表至少记录所述目的设备的广播消息与所述节点设备之间的消息跳数包括:所述消息跳数表至少记录所述终端设备的代理节点设备与所述节点设备之间的消息跳数。
4.根据权利要求3所述的方法,其中,在所述目的设备为蓝牙Mesh网关时,所述在所述节点设备预先维护的消息跳数表中,至少查询所述目的设备与所述节点设备对应的消息跳数包括:
在所述消息跳数表中至少查询所述节点设备与所述蓝牙Mesh网关之间的消息跳数;
所述根据所述消息跳数,确定消息的生存时间TTL包括:
根据所述消息跳数,确定消息的TTL,所确定的TTL相比所述消息跳数具有第一设定冗余度。
5.根据权利要求3所述的方法,其中,在所述目的设备为终端设备时,所述在所述节点设备预先维护的消息跳数表中,至少查询所述目的设备与所述节点设备对应的消息跳数包括:
在所述消息跳数表中至少查询所述节点设备与所述终端设备的代理节点设备之间的消息跳数;
所述根据所述消息跳数,确定消息的生存时间TTL包括:
根据所述消息跳数,确定TTL,所确定的TTL相比所述消息跳数具有第二设定冗余度;所述第二设定冗余度大于第一设定冗余度,所述第一设定冗余度为所述目的设备为蓝牙Mesh网关时,消息的TTL对应的设定冗余度。
6.根据权利要求1-5任一项所述的方法,其中,所述消息跳数表还记录所述目的设备的广播消息的源地址;在所述目的设备为蓝牙Mesh网关时,所述目的设备的广播消息的源地址为蓝牙Mesh网关的单播地址;在所述目的设备为终端设备时,所述目的设备的广播消息的源地址为,终端设备的代理节点设备的单播地址。
7.一种消息发送方法,其中,应用于广播设备,所述方法包括:
按照TTL递减的顺序,周期性的在蓝牙Mesh网络中广播消息,以使得接收到广播消息的节点设备,根据广播消息中的TTL在消息跳数表中至少记录广播消息与节点设备之间的消息跳数;其中,下一次的广播消息的TTL相比于上一次的广播消息的TTL顺序递减;
获取节点设备发送的消息;其中,所述消息在从所述节点设备发出时,所述消息的TTL根据所述节点设备的消息跳数表中查询的目的设备与所述节点设备对应的消息跳数,以及设定冗余度确定;并且所述消息在蓝牙Mesh网络中转发一次,则所述消息的TTL递减一次,当所述消息的TTL小于设定的第一值时,所述消息停止在蓝牙Mesh网络中转发。
8.根据权利要求7所述的方法,其中,所述按照TTL递减的顺序,周期性的在蓝牙Mesh网络中广播消息,以使得接收到广播消息的节点设备,根据广播消息中的TTL在消息跳数表中至少记录广播消息与节点设备之间的消息跳数包括:
确定广播消息的当前TTL,所述当前TTL相比于上一次的广播消息的TTL顺序递减;
向处于当前TTL的跳数范围内的节点设备广播消息,以使得当前TTL的跳数范围内的节点设备,根据接收的广播消息在消息跳数表中至少更新广播消息与节点设备之间的消息跳数;其中,更新的消息跳数根据广播消息的当前TTL确定。
9.一种设备智能互联系统,其中,包括节点设备和广播设备;所述节点设备用于执行如权利要求1-6任一项所述的消息发送方法,所述广播设备用于执行如权利要求7-8任一项所述的消息发送方法;所述广播设备包括蓝牙Mesh网关或者终端设备的代理节点设备。
10.一种节点设备,其中,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如权利要求1-6任一项所述的消息发送方法。
11.一种广播设备,其中,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如权利要求7-8任一项所述的消息发送方法;所述广播设备为蓝牙Mesh网关或者终端设备的代理节点设备。
12.一种存储介质,其中,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如权利要求1-6任一项所述的消息发送方法,或者,如权利要求7-8任一项所述的消息发送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210765475.4A CN115297526A (zh) | 2022-07-01 | 2022-07-01 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
PCT/CN2023/074278 WO2024001190A1 (zh) | 2022-07-01 | 2023-02-02 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210765475.4A CN115297526A (zh) | 2022-07-01 | 2022-07-01 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115297526A true CN115297526A (zh) | 2022-11-04 |
Family
ID=83822511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210765475.4A Pending CN115297526A (zh) | 2022-07-01 | 2022-07-01 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115297526A (zh) |
WO (1) | WO2024001190A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297192A (zh) * | 2022-06-17 | 2022-11-04 | 浙江大华技术股份有限公司 | Mesh网络数据传输方法、Mesh网络节点及存储介质 |
WO2024001190A1 (zh) * | 2022-07-01 | 2024-01-04 | 浙江艾克斯精灵人工智能科技有限公司 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITTO20130297A1 (it) * | 2013-04-12 | 2014-10-13 | Selex Es Spa | Metodo di comunicazione di tipo smf per una rete manet, e nodo di rete e rete mobile che implementano tale metodo di comunicazione |
CN107171883B (zh) * | 2016-03-08 | 2020-04-28 | 华为技术有限公司 | 检测转发表的方法、装置和设备 |
US20180343200A1 (en) * | 2017-05-26 | 2018-11-29 | Qualcomm Incorporated | Congestion control and message analysis in a wireless mesh network |
WO2019154481A1 (en) * | 2018-02-07 | 2019-08-15 | Telefonaktiebolaget Lm Ericsson (Publ) | A method for updating a number of hops that is to be used for communication between a publisher mesh node and a subscriber mesh node in a wireless mesh network |
CN111542029B (zh) * | 2020-04-18 | 2021-03-16 | 深圳市中科蓝讯科技股份有限公司 | 蓝牙Mesh的节点绑定方法、TTL值优化方法及其系统、计算机可读存储介质 |
CN115297526A (zh) * | 2022-07-01 | 2022-11-04 | 浙江猫精人工智能科技有限公司 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
-
2022
- 2022-07-01 CN CN202210765475.4A patent/CN115297526A/zh active Pending
-
2023
- 2023-02-02 WO PCT/CN2023/074278 patent/WO2024001190A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297192A (zh) * | 2022-06-17 | 2022-11-04 | 浙江大华技术股份有限公司 | Mesh网络数据传输方法、Mesh网络节点及存储介质 |
CN115297192B (zh) * | 2022-06-17 | 2024-03-12 | 浙江大华技术股份有限公司 | Mesh网络数据传输方法、Mesh网络节点及存储介质 |
WO2024001190A1 (zh) * | 2022-07-01 | 2024-01-04 | 浙江艾克斯精灵人工智能科技有限公司 | 消息发送方法、设备智能互联系统、相关设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024001190A1 (zh) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2682930C2 (ru) | Выбор маршрута в беспроводных сетях | |
CN115297526A (zh) | 消息发送方法、设备智能互联系统、相关设备及存储介质 | |
JP4505454B2 (ja) | 無線通信ネットワークの性能全体を改良するためのシステム及び方法 | |
JP3833450B2 (ja) | 通信制御方式及びルータ | |
JP6801191B2 (ja) | 無線通信システム、無線通信装置、及び無線通信プログラム | |
US20050107102A1 (en) | Method of relaying connection requests between wireless devices in wireless network and apparatus therefor | |
WO2004100454A1 (en) | Route discovery device and method in a mobile ad-hoc network | |
JP2005051754A (ja) | 無線パーソナルエリアネットワークにおけるリモートサービスの利用可能性を判定する距離アウェアサービスディスカバリメカニズム | |
US20090154406A1 (en) | Dynamic address allocation method for mobile ad hoc network | |
US20120177052A1 (en) | User-oriented communication method, route registration method and device, and communication system | |
CN108123873B (zh) | 数据转发路径选择方法及装置、存储介质、服务端 | |
US20120063361A1 (en) | System and Method for Remote Radio Unit Finding and Topology Structure Establishment | |
US7782799B2 (en) | Join message load control system and method in network using PIM-SSM | |
CN106341468B (zh) | 一种智能设备的远程唤醒方法、装置及系统 | |
EP1102509B1 (en) | Data routing using a location server in a mobile communication network | |
US20050157749A1 (en) | System and method for communication with an external network in an IPv6 MANET network | |
EP1700425A1 (en) | A method or device for delivering a packet in a scatternet | |
EP3110074A1 (en) | Method for controlling electronic device, control terminal, and system | |
TW202110266A (zh) | 在網狀網路中之裝置之間共享之定向轉遞資訊 | |
WO2022188869A1 (en) | System and method for implementing relay nodes in a wireless network | |
CN109617808A (zh) | 一种基于蓝牙Mesh的数据优化传输方法、系统及装置 | |
CN114097278B (zh) | 网状网中的各设备之间的定向转发信息共享 | |
CN111193667B (zh) | 自组网的路由方法、叶节点及存储介质 | |
CN101330447A (zh) | 一种探测下一跳mac地址的方法 | |
WO2021146879A1 (zh) | 消息传输的方法、ble设备和ble芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 311121 room 801, building 2, No. 2699, yuhangtang Road, Cangqian street, Yuhang District, Hangzhou, Zhejiang Province Applicant after: Zhejiang Aikesi Elf Artificial Intelligence Technology Co.,Ltd. Address before: 311121 room 801, building 2, No. 2699, yuhangtang Road, Cangqian street, Yuhang District, Hangzhou, Zhejiang Province Applicant before: Zhejiang Maojing Artificial Intelligence Technology Co.,Ltd. |