CN115622891A - 通信方法、装置及系统 - Google Patents
通信方法、装置及系统 Download PDFInfo
- Publication number
- CN115622891A CN115622891A CN202110726712.1A CN202110726712A CN115622891A CN 115622891 A CN115622891 A CN 115622891A CN 202110726712 A CN202110726712 A CN 202110726712A CN 115622891 A CN115622891 A CN 115622891A
- Authority
- CN
- China
- Prior art keywords
- networking
- address
- networking device
- message
- information
- 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
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种通信方法、装置及系统,可以应用于第一组网中。第一组网中的组网设备基于虚拟通信地址进行全网信息同步,第一组网设备可以发送源地址为虚拟通信地址的心跳报文用于表征虚拟主设备处于在线状态。第二组网设备比第三组网设备先感知到第一组网设备的下线,并可以在第一组网设备下线时接替第一组网设备发送源地址为虚拟通信地址的心跳报文,使得第三组网设备能够一直感知虚拟主设备处于在线状态。该通信方法可以避免用于全网信息同步的第一组网设备下线后,其他设备上已同步的信息会被认为不可靠,而带来的业务黑账期的问题,或者可以避免双主设备场景,其他设备处理逻辑过于复杂的问题。
Description
技术领域
本申请涉及通信领域,尤其涉及通信方法、装置及系统。
背景技术
通信设备采用分布式软总线进行组网后,需要相互交换自身携带的信息,以便于进行全网信息同步,从而实现设备之间的快速发现和连接。但是随着采用分布式软总线进行组网的设备不断增加,设备之间需要同步的信息也呈现几何式增长,占据大量的带宽资源。
现有技术中,多个设备进行组网后,可以先协商选择一个主设备,进而其他设备只需要和主设备进行信息交互,主设备再将全部信息同步到其他各个设备即可实现全网信息同步。该方法可以减少设备间的信息交互,减少带宽资源的占用。
然而,该方案中,由于其他设备上同步的信息均来自主设备,因此当主设备掉线后,其他设备上已同步的信息会被认为不可靠,使得设备间暂时无法建立业务连接。直到其他设备重新选出新的主设备并重新完成信息同步,设备间才能重新建立业务连接。可以看出,该方案中,在用于全网信息同步的主设备掉线时,会形成业务黑账期,从而影响业务体验。
发明内容
本申请实施例提供通信方法、装置及系统,用于解决现有组网中,在用于全网信息同步的主设备掉线时,会形成业务黑账期的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种通信方法,该方法包括:第一组网设备发送虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,其中,第一组网设备为第一组网中权重最高的设备。第一组网设备还可以周期性发送源地址为虚拟通信地址的心跳报文。该方案中,第一组网中的组网设备基于第一组网设备发送的虚拟通信地址进行全网信息的同步,除第一组网设备外的组网设备会认为其同步的信息来自于虚拟通信地址对应的虚拟主设备,第一组网设备还会周期性发送源地址为虚拟通信地址的心跳报文以表征虚拟主设备的在线状态。从而,只要有设备维护该虚拟主设备处于在线状态,第一组网中的组网设备所同步的信息就会认为是可靠的,可以避免现有技术中用于全网信息同步的主设备掉线造成业务黑账期的问题。
结合上述第一方面,在一种可能的实现方式中,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,可以包括:第一组网设备接收来自第一组网中其他组网设备的第一报文,第一报文包括其他组网设备用于全网信息同步的第一信息,其中,第一报文的目的地址为虚拟通信地址。第一组网设备发送第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。基于该方案,除第一组网设备外的其他组网设备根据虚拟通信地址发送自身设备用于全网信息同步的第一信息,而第一组网设备也用虚拟通信地址作为源地址为其他组网设备同步全网的信息,从而其他组网设备并不会感知进行全网信息同步的设备是第一组网设备,而认为是虚拟通信地址对应的虚拟主设备。
结合上述第一方面,在一种可能的实现方式中,第一组网设备发送虚拟通信地址,可以包括:第一组网设备发送第三报文,其中,第三报文的源地址为虚拟通信地址。换言之,第一组网设备以发送源地址为虚拟通信地址的第三报文的方式,通告该虚拟通信地址。
结合上述第一方面,在一种可能的实现方式中,虚拟通信地址为虚拟网络地址。通信方法还可以包括:第一组网设备发送虚拟通信网络地址对应的第一硬件地址,其中,第一硬件地址为第一组网设备的硬件地址,第一硬件地址用于寻址第一组网设备。基于该方案,使得当虚拟通信地址为虚拟网络地址时,除第一组网设备外的其他组网设备能够识别虚拟网络地址对应的真实硬件地址,进而向真实硬件地址对应的第一组网设备发送目的地址为虚拟通信地址的报文。
结合上述第一方面,在一种可能的实现方式中,在第一组网设备发送虚拟通信网络地址对应的第一硬件地址之前,通信方法还可以包括:第一组网设备接收第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。基于该方案,当虚拟通信地址为虚拟网络地址时,其他组网设备也可以通过发送请求报文的方式,来获取虚拟通信网络对应的第一硬件地址。
结合上述第一方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:在完成全网信息的同步之后,第一组网设备生成第一拓扑序列号和第一摘要信息,其中,第一拓扑序列号用于指示第一组网设备当前获知的全网拓扑信息的版本,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,其中,第一版本号用于指示对应组网设备自身拓扑信息的版本。第一组网设备发送第一摘要信息。基于该方案,第一组网设备可以记录第一组网中在线的组网设备以及第一组网的全网拓扑信息的版本。
结合上述第一方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第一组网设备确定第一组网中存在组网设备的拓扑信息发生变更。第一组网设备更新第一组网设备上存储的第一拓扑序列号和第一摘要信息中拓扑信息发生的组网设备对应的第一版本号。第一组网设备发送第四报文,第四报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,其中,第四报文的源地址为虚拟通信地址。基于该方案,第一组网中存在组网设备的拓扑信息发生变更时,第一组网设备能够动态更新其第一拓扑序列号和第一摘要信息,并且可以通过第四报文告知其他组网设备。
结合上述第一方面,在一种可能的实现方式中,第一组网设备确定第一组网中存在组网设备的拓扑信息发生变更,包括:第一组网设备确定自身的拓扑信息发生变更。或者,第一组网设备接收第五报文,第五报文包括拓扑信息发生变更的组网设备更新后的拓扑信息,其中,第五报文的目的地址为虚拟通信地址。换言之,第一组网设备感知第一组网中任一组网设备的拓扑信息发生变更。
结合上述第一方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第一组网设备确定第一组网中存在组网设备下线。第一组网设备更新第一组网设备上存储的第一拓扑序列号,并移除第一组网设备上存储的第一摘要信息中下线的组网设备的标识及其对应的第一版本号。第一组网设备发送第六报文,第六报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,其中,第六报文的源地址为虚拟通信地址。基于该方案,第一组网设备可以在确定第一组网中存在组网设备下线时,更新本地记录的信息,还可以告知其他组网设备。
结合上述第一方面,在一种可能的实现方式中,第一组网设备确定第一组网中存在组网设备下线,包括:在连续x次未接收到第一组网中除第一组网设备之外的某个组网设备发送的心跳报文的情况下,第一组网设备确定第一组网中存在组网设备下线。基于该方案,第一组网设备通过其他组网设备的心跳报文感知其他组网设备的在线。
结合上述第一方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第一组网设备接收源地址为第四组网设备的通信地址的心跳报文,第四组网设备为第一组网中新上线的组网设备。第一组网设备向第四组网设备发送第七报文,并更新第一组网设备上存储的第一拓扑序列号,以及在第一组网设备上存储的第一摘要信息中添加第四组网设备的标识以及对应的第一版本号,其中,第七报文包括第一组网中每个组网设备用于全网信息同步的第一信息,其中,第七报文的源地址为虚拟通信地址。第一组网设备发送第八报文,第八报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,其中,第八报文的源地址为虚拟通信地址。基于该方案,第一组网设备可以感知第一组网中新加入的组网设备,并为新加入的组网设备同步全网的信息,以及为当前在线的其他组网设备同步新加入的组网设备的信息。
第二方面,提供了一种通信方法,该通信方法包括:第二组网设备接收虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,第二组网设备为第一组网中权重次高的组网设备。第二组网设备在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。其中,第一组网设备为第一组网中权重最高的组网设备,第三组网设备为第一组网中除第一组网设备和第二组网设备之外的组网设备。第二组网设备接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。该方案中,第一组网中的组网设备基于第一组网设备发送的虚拟通信地址进行全网信息的同步,除第一组网设备外的组网设备会认为其同步的信息来自于虚拟通信地址对应的虚拟主设备,第一组网设备周期性发送的源地址为虚拟通信地址的心跳报文可以表征虚拟主设备的在线状态。而在第一组网设备下线时,第二组网设备可以接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文,使得其他组网设备能够一直感知虚拟主设备处于在线状态。从而,第一组网中的组网设备所同步的信息就会认为是可靠的,可以避免现有技术中用于全网信息同步的主设备掉线造成业务黑账期的问题。
结合上述第二方面,在一种可能的实现方式中,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,包括:第二组网设备发送第一报文,第一报文包括第二组网设备用于全网信息同步的第一信息,其中,第一报文的目的地址为虚拟通信地址。第二组网设备接收第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息。其中,第二报文的源地址为虚拟通信地址。基于该方案,第二组网设备在实现全网信息同步的过程中,基于虚拟通信地址进行通信。从而,第二组网设备所同步的信息会认为来自虚拟通信地址对应的设备。
结合上述第二方面,在一种可能的实现方式中,第二组网设备接收虚拟通信地址,包括:第二组网设备接收第三报文,其中,第三报文的源地址为虚拟通信地址。换言之,第一组网设备以发送源地址为虚拟通信地址的第三报文的方式,将虚拟通信地址通告给第二组网设备。
结合上述第二方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第二组网设备接收虚拟通信地址对应的硬件地址。基于该方案,使得当虚拟通信地址为虚拟网络地址时,第二组网设备能够根据虚拟网络地址进行通信。
结合上述第二方面,在一种可能的实现方式中,在第二组网设备接收虚拟通信地址之后,第二组网设备接收虚拟通信地址对应的硬件地址之前,方法还包括:第二组网设备发送第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。换言之,当虚拟通信地址为虚拟网络地址时,第二组网设备可以主动请求获取虚拟网络地址对应的硬件地址。
结合上述第二方面,在一种可能的实现方式中,在第二组网设备接收第二报文之后,本申请实施例提供的通信方法还可以包括:第二组网设备生成第二拓扑序列号,第二拓扑序列号用于指示第二组网设备当前获知的全网拓扑信息的版本。第二组网设备接收第一摘要信息,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。
结合上述第二方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第二组网设备在自身的拓扑信息发生变更后,更新本地存储的第二拓扑序列号,并向第一组网设备发送第五报文,第五报文包括第二组网设备更新后的拓扑信息,其中,第五报文的目的地址为虚拟通信地址。基于该方案,第二组网设备在自身的拓扑信息发生变更后,会将更新后的拓扑信息告知给第一组网设备。
结合上述第二方面,在一种可能的实现方式中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。在第二组网设备向第一组网设备发送第五报文之前,通信方法还包括:第二组网设备确定本地存储的第二拓扑序列号比第一组网设备存储的第一拓扑序列号新。基于该方案,第二组网设备的拓扑信息发生了变更,但还未同步给第一组网设备时,第二组网设备本地存储的第二拓扑序列号会比第一拓扑序列号新时,此时需要将更新后的拓扑信息同步给第一组网设备。
结合上述第二方面,在一种可能的实现方式中,本申请实施例提供的通信方法还包括:第二组网设备接收第四报文,该第四报文包括第一组网设备存储的第一拓扑序列号和第一摘要信息。第二组网设备在确定第一组网设备存储的第一拓扑序列号比第二组网设备本地存储的第二拓扑序列号新的情况下,根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。基于该方案,在第一组网中存在组网设备拓扑信息发生变更后,第二组网设备可以接收到第四报文,从而可以选择是否同步更新后的拓扑信息。
结合上述第二方面,在一种可能的实现方式中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。通信方法还包括:第二组网设备在确定第一组网设备存储的第一拓扑序列号比第二组网设备本地存储的第二拓扑序列号新的情况下,根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。基于该方案,第二组网设备可以根据心跳报文中的第一拓扑序列号来感知第一组网中是否存在组网设备的拓扑信息发生变更,并可以根据第一摘要信息选择性地同步更新后的拓扑信息。通过心跳报文来传递信息,可以节约通信资源。
第三方面,提供一种通信方法,该通信方法包括:第三组网设备接收虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。在完成全网信息的同步之后,第三组网设备接收源地址为虚拟通信地址的心跳报文。
结合上述第三方面,在一种可能的实现方式中,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,包括:第三组网设备发送第一报文,第一报文包括第三组网设备用于全网信息同步的第一信息,其中,第一报文的目的地址为虚拟通信地址。第三组网设备接收第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息。其中,第二报文的源地址为虚拟通信地址。
结合上述第三方面,在一种可能的实现方式中,第三组网设备接收虚拟通信地址,包括:第三组网设备接收第三报文,其中,第三报文的源地址为虚拟通信地址。
结合上述第三方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第三组网设备接收虚拟通信网络地址对应的硬件地址。
结合上述第三方面,在一种可能的实现方式中,在第三组网设备接收虚拟通信地址之后,第三组网设备接收虚拟通信地址对应的硬件地址之前,本申请实施例提供的通信方法还可以包括:第三组网设备发送第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
结合上述第三方面,在一种可能的实现方式中,在第三组网设备接收第二报文之后,本申请实施例提供的通信方法还可以包括:第三组网生成第三拓扑序列号,第三拓扑序列号用于指示第三组网设备当前获知的全网拓扑信息的版本。第三组网设备接收第一摘要信息,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。
结合上述第三方面,在一种可能的实现方式中,本申请实施例提供的通信方法还可以包括:第三组网设备在自身的拓扑信息发生变更后,更新本地存储的第三拓扑序列号,并向第一组网设备发送第五报文,第五报文包括第三组网设备更新后的拓扑信息,其中,第五报文的目的地址为虚拟通信地址。
结合上述第三方面,在一种可能的实现方式中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。在第三组网设备向第一组网设备发送第五报文之前,本申请实施例提供的通信方法还包括:第三组网设备确定本地存储的第三拓扑序列号比第一组网设备存储的第一拓扑序列号新。
结合上述第三方面,在一种可能的实现方式中,本申请实施例提供的通信方法还包括:第三组网设备接收第四报文,该第四报文包括第一组网设备存储的第一拓扑序列号和第一摘要信息。第三组网设备在确定第一组网设备存储的第一拓扑序列号比第三组网设备本地存储的第三拓扑序列号新的情况下,根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
结合上述第三方面,在一种可能的实现方式中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。本申请实施例提供的通信方法还可以包括:第三组网设备在确定第一组网设备存储的第一拓扑序列号比第三组网设备本地存储的第三拓扑序列号新的情况下,根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
第四方面,提供了一种通信系统,通信系统包括第一组网设备、第二组网设备和第三组网设备,第一组网设备为第一组网中权重最高的组网设备,第二组网设备为第一组网中权重次高的组网设备,第三组网设备为第一组网中除第一组网设备和第二组网设备之外的组网设备。第一组网设备,用于发送虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。第一组网设备,还用于在完成全网信息的同步之后,周期性发送源地址为虚拟通信地址的心跳报文。第二组网设备,用于在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。第二组网设备,还用于接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。
基于该方案,第一组网中的组网设备基于虚拟通信地址进行全网信息同步,第一组网设备可以发送源地址为虚拟通信地址的心跳报文用于表征虚拟主设备处于在线状态。第二组网设备比第三组网设备先感知到第一组网设备的下线,并可以在第一组网设备下线时接替第一组网设备发送源地址为虚拟通信地址的心跳报文,使得第三组网设备能够一直感知虚拟主设备处于在线状态。该通信方法可以避免用于全网信息同步的设备下线后,导致组网设备中已同步的信息不可靠,而带来的业务黑账期的问题。
结合上述第四方面,在一种可能的实现方式中,第二组网设备,还用于在每y次接收到源地址为虚拟通信地址的心跳报文时,反馈一次源地址为第二组网设备的通信地址的心跳报文。和/或,第三组网设备,还用于在每y次接收到源地址为虚拟通信地址的心跳报文时,反馈一次源地址为第三组网设备的通信地址的心跳报文。其中,x为大于1的正整数。基于该方案,除第一组网设备外的组网设备可以在接收到源地址为虚拟通信地址的心跳报文时,反馈源地址为自身通信地址的心跳报文,以表征自身处于在线状态。
第五方面,本申请提供一种通信装置,该通信装置可以为第一组网设备或者第一组网设备中的芯片或者芯片系统,还可以为第一组网设备中用于实现第一方面或第一方面的任一可能的设计所述的方法的功能模块,或第四方面或第四方面的任一可能设计所述的方法的功能模块。该通信装置可以实现上述各方面或者各可能的设计中第一组网设备所执行的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该通信装置可以包括:收发模块和处理模块。
结合上述第五方面,一种可能的设计中,收发模块,用于发送虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。收发模块,还用于周期性发送源地址为虚拟通信地址的心跳报文。
结合上述第五方面,一种可能的设计中,收发模块,还用于接收来自第一组网中其他组网设备的第一报文,第一报文包括其他组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。收发模块,还用于发送第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
结合上述第五方面,一种可能的设计中,收发模块,用于发送所述虚拟通信地址,包括:用于发送第三报文,第三报文的源地址为虚拟通信地址。
结合上述第五方面,一种可能的设计中,虚拟通信地址为虚拟网络地址。收发模块,还用于发送虚拟通信网络地址对应的第一硬件地址,其中,第一硬件地址为第一组网设备的硬件地址,第一硬件地址用于寻址第一组网设备。
结合上述第五方面,一种可能的设计中,收发模块,还用于接收第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
结合上述第五方面,一种可能的设计中,处理模块,还用于生成第一拓扑序列号和第一摘要信息,第一拓扑序列号用于指示第一组网设备当前获知的全网拓扑信息的版本,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。收发模块,还用于发送第一摘要信息。
结合上述第五方面,一种可能的设计中,处理模块,还用于确定第一组网中存在组网设备的拓扑信息发生变更,以及更新第一组网设备上存储的第一拓扑序列号和第一摘要信息中拓扑信息发生的组网设备对应的第一版本号。收发模块,还用于发送第四报文,第四报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第四报文的源地址为虚拟通信地址。
结合上述第五方面,一种可能的设计中,处理模块,用于确定第一组网中存在组网设备的拓扑信息发生变更,包括:用于确定自身的拓扑信息发生变更;或者,用于通过收发模块接收第五报文,第五报文包括拓扑信息发生变更的组网设备更新后的拓扑信息,第五报文的目的地址为虚拟通信地址。
结合上述第五方面,一种可能的设计中,处理模块,还用于确定第一组网中存在组网设备下线,并更新第一组网设备上存储的第一拓扑序列号,以及移除第一组网设备上存储的第一摘要信息中下线的组网设备的标识及其对应的第一版本号。收发模块,还用于发送第六报文,第六报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第六报文的源地址为虚拟通信地址。
结合上述第五方面,一种可能的设计中,处理模块用于确定第一组网中存在组网设备下线,包括:用于在连续x次未接收到第一组网中除第一组网设备之外的某个组网设备发送的心跳报文的情况下,确定第一组网中存在组网设备下线,x为正整数。
结合上述第五方面,一种可能的设计中,收发模块,还用于接收源地址为第四组网设备的通信地址的心跳报文,第四组网设备为第一组网中新上线的组网设备。收发模块,还用于向第四组网设备发送第七报文,第七报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第七报文的源地址为虚拟通信地址。处理模块,还用于更新第一组网设备上存储的第一拓扑序列号,以及在第一组网设备上存储的第一摘要信息中添加第四组网设备的标识以及对应的第一版本号。收发模块,还用于发送第八报文,第八报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第八报文的源地址为虚拟通信地址。
第六方面,本申请提供一种通信装置,该通信装置可以为第二组网设备或者第二组网设备中的芯片或者芯片系统,还可以为第二组网设备中用于实现第二方面或第二方面的任一可能的设计所述的方法的功能模块,或第四方面或第四方面的任一可能设计所述的方法的功能模块。该通信装置可以实现上述各方面或者各可能的设计中第二组网设备所执行的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该通信装置可以包括:收发模块和处理模块。
收发模块,用于接收虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,第二组网设备为第一组网中权重次高的组网设备。处理模块,用于在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。其中,第一组网设备为第一组网中权重最高的组网设备,第三组网设备为第一组网中除第一组网设备和第二组网设备之外的组网设备。处理模块,还用于接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。
结合上述第六方面,一种可能的设计中,还用于发送第一报文,第一报文包括第二组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。收发模块,还用于接收第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
结合上述第六方面,一种可能的设计中,收发模块,用于接收所述虚拟通信地址,包括:用于接收第三报文,第三报文的源地址为虚拟通信地址。
结合上述第六方面,一种可能的设计中,收发模块,还用于接收虚拟通信地址对应的硬件地址。
结合上述第六方面,一种可能的设计中,收发模块,还用于发送第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
结合上述第六方面,一种可能的设计中,处理模块,还用于生成第二拓扑序列号,第二拓扑序列号用于指示第二组网设备当前获知的全网拓扑信息的版本。收发模块,用于接收第一摘要信息,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。
结合上述第六方面,一种可能的设计中,处理模块,还用于在自身的拓扑信息发生变更后,更新本地存储的第二拓扑序列号。收发模块,还用于向第一组网设备发送第五报文,第五报文包括第二组网设备更新后的拓扑信息,第五报文的目的地址为虚拟通信地址。
结合上述第六方面,一种可能的设计中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块,还用于确定本地存储的第二拓扑序列号比第一组网设备存储的第一拓扑序列号新。
结合上述第六方面,一种可能的设计中,收发模块,还用于接收第四报文,该第四报文包括第一组网设备存储的第一拓扑序列号和第一摘要信息。处理模块,还用于确定第一组网设备存储的第一拓扑序列号比第二组网设备本地存储的第二拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。
结合上述第六方面,一种可能的设计中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块,还用于确定第一组网设备存储的第一拓扑序列号比第二组网设备本地存储的第二拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。
第七方面,本申请提供一种通信装置,该通信装置可以为第三组网设备或者第三组网设备中的芯片或者芯片系统,还可以为第三组网设备中用于实现第三方面或第三方面的任一可能的设计所述的方法的功能模块,或第四方面或第四方面的任一可能设计所述的方法的功能模块。该通信装置可以实现上述各方面或者各可能的设计中第三组网设备所执行的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该通信装置可以包括:收发模块和处理模块。
收发模块,用于接收虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。收发模块,还用于接收源地址为虚拟通信地址的心跳报文。
结合上述第七方面,一种可能的设计中,收发模块,还用于发送第一报文,第一报文包括第三组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。收发模块,还用于接收第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
结合上述第七方面,一种可能的设计中,收发模块用于接收虚拟通信地址,包括:用于接收第三报文,第三报文的源地址为虚拟通信地址。
结合上述第七方面,一种可能的设计中,收发模块,还用于接收虚拟通信网络地址对应的硬件地址。
结合上述第七方面,一种可能的设计中,收发模块,还用于发送第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
结合上述第七方面,一种可能的设计中,处理模块,还用于生成第三拓扑序列号,第三拓扑序列号用于指示第三组网设备当前获知的全网拓扑信息的版本。收发模块,还用于接收第一摘要信息,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。
结合上述第七方面,一种可能的设计中,处理模块,还用于在自身的拓扑信息发生变更后,更新本地存储的第三拓扑序列号。收发模块,还用于向第一组网设备发送第五报文,第五报文包括第三组网设备更新后的拓扑信息,其中,第五报文的目的地址为虚拟通信地址。
结合上述第七方面,一种可能的设计中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块,还用于确定本地存储的第三拓扑序列号比第一组网设备存储的第一拓扑序列号新。
结合上述第七方面,一种可能的设计中,收发模块,还用于接收第四报文,该第四报文包括第一组网设备存储的第一拓扑序列号和第一摘要信息。处理模块,还用于确定第一组网设备存储的第一拓扑序列号比第三组网设备本地存储的第三拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
结合上述第七方面,一种可能的设计中,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块,还用于确定第一组网设备存储的第一拓扑序列号比第三组网设备本地存储的第三拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
第八方面,提供了一种通信装置,该通信装置具有实现上述第一方面、第二方面或第三方面所述的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第九方面,提供了一种通信装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该通信装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该通信装置执行如上述第一方面、第二方面或第三方面中任一项所述的通信方法。
第十方面,提供了一种通信装置,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的指令之后,根据所述指令执行如上述第一方面、第二方面或第三方面中任一项所述的通信方法。
第十一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面、第二方面或第三方面中任一项所述的通信方法。
第十二方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面、第二方面或第三方面中任一项所述的通信方法。
第十三方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持通信装置实现上述第一方面、第二方面或第三方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存通信装置必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第五方面至第十三方面中任一种设计方式所带来的技术效果可参见第一方面至第三方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种近场设备互联场景的示意图;
图2为本申请实施例提供的一种组网设备进行信息交互的示意图;
图3为本申请实施例提供的一种通信系统的示意图;
图4为本申请实施例提供的一种通信装置的结构示意图;
图5为本申请实施例提供的一种通信方法的流程图;
图6为本申请实施例提供的一种第一组网的示意图;
图7为本申请实施例提供的一种另第一组网的示意图;
图8为本申请实施例提供的一种组网设备间进行动态ARP过程的示意图;
图9为本申请实施例提供的一种第一组网中的组网设备根据虚拟通信地址进行全网信息同步的流程图;
图10为本申请实施例提供的一种报文的格式示意图;
图11为本申请实施例提供的另一种报文的格式示意图;
图12为本申请实施例提供的另一种通信方法的流程图;
图13为本申请实施例提供的另一种通信装置的流程图。
具体实施方式
为了方便理解本申请实施例的技术方案,首先给出本申请相关技术的简要介绍或定义如下。
第一,分布式设备互联:
随着物联网(internet of things,IOT)设备的发展,设备之间互联需求也日益增加。比如,现有技术提出的1+8+N技术,以手机为中心,实现手机与个人电脑(personalcomputer,PC)、平板、智慧屏、音箱、眼镜、手表、车机、耳机、以及更多智能设备的互联互通,从而实现如下述功能:手机可以投屏到大的显示屏上,手机音乐可以投音到支持的设备进行播放,手机可以分享文件到与其互联的其他手机、平板、或PC等设备。目前,业务可以使用基于接入点(access point,AP)模式的局域网进行通讯;或者,业务可以使用无线保真点对点(wireless fidelity peer to peer,WiFi P2P)连接进行通讯;或者,业务可以使用蓝牙连接,蓝牙比如低功耗蓝牙(bluetooth low energy,BLE)、或经典蓝牙(BR/EDR)等。
第二,计算机总线:
计算机总线(bus)是一种计算机的内部结构。在计算机系统中,主机的各个部件通过总线相连,外部设备通过相应的接口电路与总线相连接,因此总线可以视为计算机各种功能部件(CPU、内存、输入、输出设备等)之间传送信息的公共通信干线。按所传输的信息种类,总线可划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
第三,分布式软总线:
现有技术中,模仿计算机总线,为分布式设备之间的通信设计了一种分布式软总线。分布式软总线技术是一种基于近场设备互联的场景,致力于实现近场设备间统一的分布式通信能力的技术。
其中,分布式软总线让组网的多个设备融合为“一个设备”,可以带来设备内和设备间高吞吐、低时延和高可靠的流畅连接体验。目前,分布式软总线包括数据总线和业务总线,业务总线用于建立业务连接,数据总线用于传输数据。示例地,图1是一个近场设备互联场景的示意图,如图1所示,以手机为中心,手机、平板、键鼠、摄像头、显示屏、存储设备、手表、耳机以及音箱互联,各个设备之间可以通过业务总线建立业务连接,以及通过数据总线传输数据。
当前分布式设备通过分布式软总线组网后,需要分别交换自身携带的信息,以进行全网信息同步,用于实现设备间的快速发现和连接。比如,A、B、C、D和E这5台组网的设备,进行全网信息同步后,A设备可以在任意时刻利用同步的信息(包括在线设备列表)向其他设备发起业务请求并建立业务连接,而不需要在建立业务连接前重新进行扫描和发现等过程。
但是随着分布式设备的增加,设备之间需要同步的信息也会呈现几何式增长,会占据大量的网络带宽资源。示例地,如图2中的(a)所示,当组网中只有3个设备时,每个设备仅需要与另外2个设备同步即可;而如图2中的(b)所示,当组网中有5个设备时,则每个设备需要与其余4个设备同步。以此类推,随着设备的数量增加,进行信息同步的交互也会呈现几何式增长,将会占用大量的处理资源和带宽资源。
基于此,现有技术中,多个设备进行组网后,可以先协商选择一个主设备,进而其他设备只需要和主设备进行信息交互,主设备再将全部信息同步到其他各个设备即可实现全网信息同步。该方法可以减少设备间的信息交互,减少带宽资源的占用。
然而,该方案中,由于其他设备上同步的信息均来自主设备,因此当主设备掉线后,其他设备上已同步的信息会被认为不可靠,使得设备间暂时无法建立业务连接。直到其他设备重新选出新的主设备并重新完成信息同步,设备间才能重新建立业务连接。可以看出,该方案在主设备掉线时,会形成业务黑账期,从而影响业务体验。
如果在组网的设备中使用双主设备可以解决单个主设备掉线导致业务黑账期的问题,但是双主设备的方案始终有一个备选的主设备,会使其他组网设备的逻辑过于复杂,且实时维护备选主设备的信息也会增加网络交互的开销。
本申请实施例提供了一种通信方法,可以在不采用双主设备的情况下,避免单个主设备掉线导致业务黑账期的问题。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
此外,本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,对本申请实施例中提供的通信方法所应用的通信系统作一个简单的介绍。图3是本申请实施例提供的一种通信系统30的示意图。如图3所示,该通信系统30包括:第一组网设备301,第二组网设备302,以及第三组网设备303。其中,第一组网设备301,为第一组网中权重最高的组网设备(也可以称之为第一组网中的主设备),第二组网设备302为第一组网中权重次高的组网设备(也可以称之为第一组网中的备选设备),第三组网设备303为第一组网中除第一组网设备301和第二组网设备302之外的组网设备。该第一组网设备301,第二组网设备302,以及第三组网设备303,可以采用本申请实施例提供的通信方法进行通信。具体地通信方法可参考后续方法实施例,在此不再赘述。需要说明的是,图3所示的通信系统30以包括3个第三组网设备303为例进行示意,当然第三组网设备303的数量本申请实施例对此不作限定,比如第三组网设备303的数量可以为2个或4个等。
需要说明的是,本申请实施例中的权重是指组网设备的选主权重,权重也可称为优先级,在此统一说明,以下不再赘述。
需要说明的是,本申请实施例描述的应该场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。
可选的,本申请实施例中的第一组网设备,第二组网设备,或者第三组网设备也可以称之为通信装置,其可以是一个通用设备或者是一个专用设备,本申请实施例对此不作具体限定。
可选的,本申请实施例中的第一组网设备,第二组网设备,或者第三组网设备的相关功能可以由一个设备实现,也可以由多个设备共同实现,还可以是由一个设备内的一个或多个功能模块实现,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是硬件与软件的结合,或者是平台(例如,云平台)上实例化的虚拟化功能。
例如,本申请涉及的第一组网设备,第二组网设备,或者第三组网设备的相关功能可以通过图4中的通信装置40来实现。图4所示为本申请实施例提供的通信装置40的结构示意图。该通信装置40包括一个或多个处理器401,通信线路402,以及至少一个通信接口(图4中仅是示例性的以包括通信接口404,以及一个处理器401为例进行说明),可选的还可以包括存储器403。
处理器401可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路402可包括一通路,用于连接不同组件之间。
通信接口404,可以是收发模块用于与其他设备或通信网络通信,如以太网,RAN,无线局域网(wireless local area networks,WLAN)等。例如,所述收发模块可以是收发器、收发机一类的装置。可选的,所述通信接口404也可以是位于处理器401内的收发电路,用以实现处理器的信号输入和信号输出。
存储器403可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路402与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器403用于存储执行本申请方案的计算机执行指令,并由处理器401来控制执行。处理器401用于执行存储器403中存储的计算机执行指令,从而实现本申请实施例中提供的通信方法。
或者,可选的,本申请实施例中,也可以是处理器401执行本申请下述实施例提供的通信方法中的处理相关的功能,通信接口404负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器401可以包括一个或多个CPU,例如图4中的CPU0和CPU1。
在具体实现中,作为一种实施例,通信装置40可以包括多个处理器,例如图4中的处理器401和处理器407。这些处理器中的每一个可以是一个单核(single-core)处理器,也可以是一个多核(multi-core)处理器。这里的处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,CPU)、微处理器、数字信号处理器(DSP)、微控制器(microcontroller unit,MCU)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。
在具体实现中,作为一种实施例,通信装置40还可以包括输出设备405和输入设备406。输出设备405和处理器401通信,可以以多种方式来显示信息。例如,输出设备405可以是液晶显示器(liquid crystal display,LCD),发光二极管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备406和处理器401通信,可以以多种方式接收用户的输入。例如,输入设备406可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的通信装置40有时也可以称为通信设备,其可以是一个通用设备或者是一个专用设备。例如通信装置40可以是台式机、便携式电脑、网络服务器、掌上电脑(personaldigital assistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备、上述终端,上述网络设备、或具有图4中类似结构的设备。本申请实施例不限定通信装置40的类型。
此外,图4中示出的组成结构并不构成对该通信装置的限定,除图4所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
结合图3所述的通信系统,以第一组网设备、第二组网设备和第三组网设备的交互为例,如图5所示,为本申请实施例提供的一种通信方法的流程图,该通信方法可以包括如下步骤。
S501、第一组网设备发送虚拟通信地址,相应的,第二组网设备和第三组网设备接收虚拟通信地址。该虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。
可选地,第一组网设备可以将第三报文的源地址设置为虚拟通信地址,并以广播的形式发送该第三报文,从而第二组网设备和第三组网设备均可以接收到源地址为虚拟通信地址的第三报文,获知该虚拟通信地址。作为一种实现方式,该第三报文可以为第一组网设备广播的心跳报文,心跳报文的源地址为虚拟通信地址。
可选地,源地址为虚拟通信地址的心跳报文中还可以携带位标识(bit flag),位标识用于指示源地址为虚拟通信地址的心跳报文是用于进行全网信息同步的设备的心跳报文,这样可以使得第二组网设备和第三组网设备后续基于该虚拟通信地址进行信息交互,进而实现全网信息的同步。
需要说明的是,本申请实施例中的虚拟通信地址是配置在第一组网设备中的,第一组网设备可以基于该虚拟通信地址进行通信。然而,当第一组网中除第一组网设备之外的其他组网设备接收到源地址为虚拟通信地址的报文之后,并不会感知是与第一组网设备进行交互,而是会认为在与虚拟通信地址对应的设备进行交互,在此统一说明,以下不再赘述。
需要说明的是,为了方便描述,本申请后续实施例中,可以将虚拟通信地址对应的设备称之为虚拟主设备,虚拟主设备可以认为是为第一组网中的组网设备进行全网信息同步的设备。虚拟主设备可以部署在第一组网中的组网设备上,由第一组网中的组网设备维护。本申请实施例在此统一说明,以下不再赘述。示例地,如图6所示,第一组网中包括多个组网设备,该多个组网设备可以通过虚拟主设备进行全网信息的同步。
作为一种可能的实现方式,虚拟主设备执行的动作与第一组网设备执行的动作均由第一组网设备的处理模块实现,并不区分。作为另一种可能实现方式,第一组网设备可以分配一个虚拟主模块作为虚拟主设备的处理模块,虚拟主设备执行的动作由第一组网设备中的虚拟主模块实现。本申请实施例对此不做限定。
作为一种可能实现方式,虚拟通信地址可以为第一组网设备自己生成的;或者,虚拟通信地址也可以是用户配置在第一组网设备中的,本申请实施例对此不做限定。
需要说明的是,当组网设备间基于网络地址(如IP地址)通信,该虚拟通信地址可以为虚拟网络地址(如虚拟IP地址)。当组网设备间通过蓝牙(如BLE)通信,该虚拟通信地址可以为随机设备地址。并且,虚拟通信地址与第一组网中的任一组网设备的通信地址均不冲突。
示例地,以组网设备的通信地址为IP地址,该虚拟通信地址为虚拟IP地址为例。参考图7,第一组网中包括5个组网设备,设备1的IP地址为:192.168.1.1,设备2的IP地址为:192.168.1.2,设备3的IP地址为:192.168.1.3,设备4的IP地址为:192.168.1.4,设备5的IP地址为:192.168.1.5。假设设备5为权重最高的第一组网设备,设备5可以生成虚拟IP地址:192.168.1.6,该虚拟IP地址与5个组网设备的IP地址不冲突,该虚拟IP地址可以作为虚拟主设备的IP地址。
S502、第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。相应的,第二组网设备和第三组网设备接收源地址为虚拟通信地址的心跳报文。
由于全网信息的同步是基于虚拟通信地址进行的,从而第二组网设备和第三组网设备会认为其同步的全网信息来自虚拟主设备。因此,只有第二组网设备和第三组网设备感知到该虚拟主设备处于在线状态时,其同步的信息才会认为是可靠的。进而,第二组网设备和第三组网设备才会利用同步的信息建立业务连接。基于此,第一组网设备可以周期性发送源地址为虚拟通信地址的心跳报文,用于让第二组网设备和第三组网设备感知该虚拟主设备处于在线状态。
可选地,自第一组网设备中配置有虚拟通信地址起,第一组网设备即可周期性发送源地址为虚拟通信地址的心跳报文。
S503、第二组网设备在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。
需要说明的是,由于源地址为虚拟通信地址的心跳报文实际上是由第一组网设备发送的,因此虚拟主设备的在线状态本质上是第一组网设备的在线状态,虚拟主设备下线本质上是第一组网设备下线,在此统一说明。
本申请实施例中,当第一组网设备下线时,其发送源地址为虚拟通信地址的心跳报文的动作就会中断,第二组网设备和第三组网设备将在连续若干次未接收到该源地址为虚拟通信地址的心跳报文后,感知虚拟主设备下线,从而可以确定第一组网设备下线。
本申请实施例中,设置第二组网设备感知到第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数n,小于第三组网设备感知第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数m,使得第二组网设备比第三组网设备先感知到虚拟主设备下线,也即是感知第一组网设备下线。示例地,m=3,n=2。
S504、第二组网设备在确定第一组网设备下线后,接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。
换言之,在第一组网设备下线后,第二组网设备接替第一组网设备继续维护虚拟主设备,使虚拟主设备继续保持在线。
需要说明的是,第二组网设备会在第三组网设备连续m次未接收到源地址为虚拟通信地址的心跳报文之前,接替第一组网设备按照原周期发送源地址为虚拟通信地址的心跳报文,使得第三组网设备不会感知到虚拟主设备的下线。
示例地,以m=3,n=2为例,第二组网设备在连续2次未接收到源地址为虚拟通信地址的心跳报文后确定第一组网设备下线,并立即接替第一组网设备按照原周期发送下一次(即第3次)源地址为虚拟通信地址的心跳报文。从而,第三组网设备只是连续2次未接收到源地址为虚拟通信地址的心跳报文,因此不会感知虚拟主设备的下线。
可以看出,该方案中,只有第二组网设备感知到了虚拟主设备曾经下线,第三组网设备不会感知到虚拟主设备的下线,因此第三组网设备上来自虚拟主设备的信息一直是可靠的,不会存在现有技术中业务“黑账期”的问题。而对于第二组网设备而言,其在感知到虚拟主设备下线时,马上接替第一组网设备维护虚拟主设备使得虚拟主设备又上线,感知到虚拟主设备下线的时间很短,“黑账期”可以忽略。
可选地,第二组网设备还可以将虚拟通信地址配置在第二组网设备中,使得其他组网设备能够正常地基于虚拟通信地址进行通信。
综上所述,本申请实施例提供的通信方法中,第一组网中的组网设备基于虚拟通信地址进行全网信息同步,第一组网设备可以发送源地址为虚拟通信地址的心跳报文用于表征虚拟主设备处于在线状态。第二组网设备比第三组网设备先感知到第一组网设备的下线,并可以在第一组网设备下线时接替第一组网设备发送源地址为虚拟通信地址的心跳报文,使得第三组网设备能够一直感知虚拟主设备处于在线状态。该通信方法可以避免用于全网信息同步的组网设备下线后,其他设备上已同步的信息会被认为不可靠,而带来的业务黑账期的问题。
应理解的是,本申请实施例中,第一组网设备下线的原因可以是被动下线,也可以是主动下线,或者是设备异常重启导致第二组网设备认为其下线,本申请实施例对此不作限定。
需要说明的是,在第一组网设备下线后,需要清除本地存储的虚拟通信地址,以避免第一组网设备在下线后重新加入到第一组网中后,继续接收其他设备的目的地址为虚拟通信地址的报文,造成第一组网中其他组网设备的逻辑混乱。
需要说明的是,当组网设备为网络设备时,本申请实施例中的通信地址还可以称之为网络地址。其中,组网设备间基于网络地址通信时,发送端设备需要在报文中封装网络地址对应的硬件地址,相应地,接收端设备也要解析网络地址对应的硬件地址。此种情况下,组网设备在获得某个其他组网设备的网络地址后,若要根据网络地址访问对应的组网设备,还需要获取该网络地址对应的硬件地址。比如,组网设备在接收到网络地址后,可以广播请求报文,在请求报文中携带待请求硬件地址的网络地址。当组网中存在网络地址为该网络地址的设备时,网络地址为该网络地址的设备在收到请求报文之后,可以发送反馈报文告知该网络地址对应的硬件地址。否则,组网设备无法获得网络地址对应的硬件地址,也就无法根据网络地址访问组网设备。
以组网设备间基于互联网协议(internet protocol,IP)地址通信(即通信地址为IP地址)为例,组网设备在获得某个其他组网设备的IP地址后,可以进行地址解析协议(Address Resolution Protocol,ARP)表项的学习,获取该IP地址对应的存取控制位址(media access control address,MAC)地址。示例地,如图8所示,组网设备包括设备A、设备B和设备C。设备A的IP地址为:1.1.1.1,MAC地址为:00E0.FC01.1111;设备B的IP地址为:1.1.1.2,MAC地址为:00E0.FC02.2222;设备C的IP地址为:1.1.1.3,MAC地址为:00E0.FC03.3333。假设设备A收到设备C的IP地址:1.1.1.3,如图8中的(a)所示,设备A可以向其他设备广播ARP请求,该ARP请求中的IP地址字段为设备C的IP地址:1.1.1.3,MAC地址字段为空。由于组网中的设备C的网络地址为1.1.1.3,因此如图8中的(b)所示,设备C接收到该ARP请求后,可以向设备A单播ARP响应,在该ARP响应中携带设备C的MAC地址:00E0.FC03.3333。从而,设备A通过ARP请求获得了设备C的MAC地址。
类似的,本申请实施例中,当组网设备为网络设备时,虚拟通信地址为虚拟网络地址。其中,第二组网设备和第三组网设备在接收到虚拟网络地址后,也需要获取该虚拟网络地址对应的硬件地址,才能够与该虚拟网络地址对应的设备进行通信。然而,本申请实施例中,由于第一组网中并不存在网络地址为该虚拟网络地址的组网设备,因此第二组网设备和第三组网设备也就无法通过发送请求报文获得该虚拟网络地址对应的硬件地址。
作为一种实现方式,第一组网设备可以将其自身的硬件地址作为虚拟网络地址对应的硬件地址通告给第二组网设备和第三组网设备,使得第二组网设备和第三组网设备能够获得虚拟通信地址对应的硬件地址,以实现对该虚拟网络地址的访问,进而后续才能够进行全网信息的同步。
示例地,以组网设备根据IP地址通信为例。第一组网设备可以广播免费ARP报文,该免费ARP报文中,IP字段为虚拟IP地址,MAC字段为第一组网设备的MAC地址。从而,第二组网设备和第三组网设备可以收到该免费ARP报文,从而获知虚拟IP地址对应的MAC地址。第二组网设备和第三组网设备可以将虚拟IP地址及其对应的MAC地址作为ARP表项添加至本地的ARP表中,在后续发送目的地址在为该虚拟IP地址的报文时可以根据ARP表查询进行封装,或者接收到来自该虚拟IP地址的报文时根据ARP表进行解析。
作为另一种实现方式,该虚拟网络地址可以配置在第一组网设备中的硬件上。比如,以虚拟网络地址为虚拟IP地址为例,可以在第一组网设备的硬件层面配置其MAC地址对应的IP地址还包括虚拟IP地址。基于该方案,第二组网设备和第三组网设备在收到第一组网设备通告的虚拟网络地址后,可以发送第一请求报文,以请求获取该虚拟网络地址对应的硬件地址。比如,以虚拟网络地址为虚拟IP地址为例,该第一请求报文可以为ARP报文,第二组网设备和第三组网设备可以在动态ARP过程中通过广播ARP报文来请求获得虚拟IP地址对应的MAC地址。从而,第一组网设备也就无需主动通告虚拟网络地址对应的硬件地址,比如,可以无需发送免费ARP报文。进一步的,第一组网设备在收到目的地址为虚拟IP地址的报文时,可以确定报文的目的MAC地址和目的IP地址与本地的MAC地址和IP地址均对应,直接解封装报文的MAC头部和IP头部,处理其中的数据即可。
可选地,当虚拟通信地址为虚拟网络地址时,第二组网设备在接替第一组网设备维护虚拟主设备后,也可以向其他组网设备通告虚拟网络地址对应的硬件地址,以使得其他组网设备将虚拟网络地址对应的硬件地址更新为第二组网设备的硬件地址,进而其他组网设备后续能够正常基于虚拟网络地址进行通信。
需要说明的是,由于蓝牙设备地址为硬件层的地址,当组网设备间基于蓝牙通信时,可以直接根据蓝牙设备地址访问到对应的组网设备。比如,若第一组网中的设备采用蓝牙通信,虚拟通信地址可以为第一组网设备中配置的随机设备地址,第二组网设备和第三组网设备根据该随机设备地址直接访问到第一组网设备。
可选地,如图9所示,第一组网中的组网设备根据虚拟通信地址进行全网信息的同步,可以包括如下步骤。
S901、第二组网设备和第三组网设备发送第一报文,相应的,第一组网设备接收第一报文。其中,第一报文包括相应组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。
本申请实施例中,第一信息可以包括组网设备的身份信息、能力信息和拓扑信息等。其中,组网设备的身份信息可以包括组网设备的名称(比如设备当前使用的用户名)、设备类型(比如手机、电脑、平板等)、标识和通信地址等;能力信息可以包括通信能力(比如是否支持蓝牙功能、WIFI功能或移动网络功能)和交互能力(比如是否支持显示功能、发声功能或录音功能)等;拓扑信息可以包括组网设备与其他组网设备的连接信息、或组网设备下挂的瘦客户端的信息等。本申请实施例中,将第一信息进行全网同步以使得各个组网设备间可以建立业务连接,实现互联互通。
根据前文所述,由于第二组网设备和第三组网设备会接收到第一组网设备通告的虚拟通信地址,并可以根据指示获知该虚拟通信地址为进行全网信息同步的通信地址。因此,第二组网设备和第三组网设备会发送携带第一信息的第一报文,该第一报文的目的地址为该虚拟通信地址。
需要说明的是,假设组网设备为网络设备,根据开放式系统互联通信参考模型(open system interconnection reference model,OSI)的规定,发送端设备需要先封装网络层报文,再封装数据链路层报文;接收端设备需要先解封装数据链路层报文,再解封装网络层报文。
示例地,以组网设备使用IP地址通信为例。第二组网设备和第三组网设备在发送第一信息时,以自身的IP地址作为源地址,以虚拟IP地址作为目的地址,封装网络层报文。封装后的网络层报文可以如图10所示,其中,净荷可以用于携带第一信息。假设第二组网设备和第三组网设备收到了第一组网设备广播的免费ARP报文,获知虚拟IP地址对应的MAC地址(实际上为第一组网设备的MAC地址)。那么,第二组网设备和第三组网设备可以以自身的MAC地址作为源MAC地址,以第一组网设备的MAC地址作为目的MAC地址,将网络层报文继续封装成数据链路层报文,封装后的数据链路层报文可以如图11所示。之后,再经过其他协议层的处理,便可以将携带第一信息的第一报文发送出去。需要说明的是,假设组网设备连接到同一AP,基于AP模式的局域网通信,则第二组网设备和第三组网设备发送携带第一信息的第一报文的出接口,为其自身连接到路由器的接口,一般为wlan0接口。
继续描述该示例,由于第一报文中封装的目的MAC地址是第一组网设备的MAC地址,因此第一组网设备会接收到来自第二组网设备和第三组网设备的第一报文。由于目的MAC与第一组网设备的MAC地址匹配,因此第一组网设备可以解析报文的MAC头部。但是第一报文的目的IP地址是虚拟主设备的虚拟IP地址,与第一组网设备的IP地址并不匹配,因此第一组网设备无法直接解析第一报文的IP头部。不过需要说明的是,第一组网设备维护虚拟主设备,该虚拟IP地址会被配置在第一组网设备本地的虚拟接口上。因此,第一组网设备可以查询本地的转发接口信息,从而确定第一报文的目的IP地址配置在本地的虚拟接口上,进而第一组网设备可以认为第一报文到达目的地址对应设备,从而第一组网设备可以解析第一报文的IP头部,并处理净荷数据,得到其中的第一信息。
一种可能的实现方式中,由于虚拟主设备配置在第一组网设备上,因此虚拟主设备可以直接读取第一组网设备的第一信息。因此,虚拟主设备在接收到第二组网设备和第三组网设备的第一信息后,便可以获得第一组网中每个组网设备的第一信息。
应理解的是,由于虚拟主设备配置在第一组网设备上,虚拟主设备获得了第一组网中每个组网设备的第一信息,相当于第一组网设备获得了第一组网中每个组网设备的第一信息。
S902、第一组网设备发送第二报文,相应的,第二组网设备和第三组网设备接收第二报文。其中,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
作为一种实现方式,第一组网设备可以通过广播的方式发送第二报文,使第二组网设备和第三组网设备获知第一组网中每个组网设备用于全网信息同步的第一信息,由于第一组网设备也已经获得了第一组网中每个组网设备用于全网信息同步的第一信息,基于此便实现了全网信息的同步。
本申请实施例中,第二报文的源地址可以设置为虚拟通信地址,使得第二组网设备和第三组网设备认为该第二报文是虚拟主设备发送的,从而第二组网设备和第三组网设备所感知到的进行全网信息同步的设备为该虚拟主设备。
可选地,在完成全网信息的同步后,第一组网设备可以生成第一拓扑序列号,第一拓扑序列号用于指示第一组网设备获知的全网拓扑信息的版本;第二组网设备可以生成第二拓扑序列号,第二拓扑序列号用于指示第二组网设备获知的全网拓扑信息的版本;第三组网设备可以生成第三拓扑序列号,第三拓扑序列号用于指示第三组网设备获知的全网拓扑信息的版本。应理解的是,刚完成全网信息的同步时,该第一拓扑序列号、第二拓扑序列号和第三拓扑序列号相同。
可选地,在完成全网信息的同步后,第一组网设备还可以生成第一摘要信息,第一摘要信息可以包括第一组网中每个组网设备的标识。进而,第一组网设备发送该第一摘要信息。相应的,第二组网设备和第三组网设备接收该第一摘要信息。
应理解是,第一摘要信息中的每个组网设备的标识相当于在线设备列表,可以用于指示第一组网中在线的组网设备。第一组网设备可以广播该第一摘要信息,比如,将该第一摘要信息携带在周期性发送的源地址为虚拟通信地址的心跳报文中。从而,第二组网设备和第三组网设备可以在接收到第一组网设备的第一摘要信息后,根据第一摘要信息中的组网设备的标识感知其他组网设备的在线状态。
可选地,第一组网设备可以在确定第一组网中存在组网设备的拓扑信息发生变更时,更新其本地存储的第一拓扑序列号。第一组网设备还可以发送更新后的第一拓扑序列号,携带该更新后的拓扑序列号的报文的源地址为虚拟通信地址。第二组网设备在接收到更新后的第一拓扑序列号后,可以在第一拓扑序列号比其本地存储的第二拓扑序列号新的情况下,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。第三组网设备在接收更新后的第一拓扑序列号后,可以在第一拓扑序列号比其本地存储的第三拓扑序列号新的情况下,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
基于该方案,第一组网设备可以在确定第一组网中存在组网设备的拓扑信息发生变更时,更新自身本地存储的第一拓扑序列号,使得第一拓扑序列号一直处于最新的状态。而除第一组网设备外的其他组网设备可以通过第一组网设备发送的更新后第一拓扑序列号,来感知第一组网中存在组网设备的拓扑信息发生变更,进而获取更新后的拓扑信息。从而,第一组网中的每个组网设备实现全网信息的同步后,还可以在存在组网设备的拓扑信息发生变更时,获取更新后的拓扑信息,从而第一组网中的组网设备可以一直保持全网信息的同步。
需要说明的是,第二组网设备或第三组网设备从第一组网设备获取更新后的拓扑信息,包括:第二组网设备或第三组网设备发送用于获取更新后的拓扑信息第二请求报文,该第二请求报文的目的地址为虚拟通信地址。相应的,第一组网设备接收到该第二请求报文,从而向第二组网设备或第三组网设备发送更新后的拓扑信息,其中,携带该更新后的拓扑信息的报文的源地址为虚拟通信地址。换言之,第一组网设备为其他组网设备同步更新后的拓扑信息,也是基于虚拟通信地址进行通信的,使得其他组网设备认为更新后的拓扑信息也是来自虚拟主设备。本申请实施例在此统一说明,下文不再赘述。
可选地,第一摘要信息还可以包括每个组网设备的标识对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。第一组网设备可以在确定第一组网中存在组网设备的拓扑信息发生变更时,更新其本地存储的第一拓扑序列号和第一摘要信息中拓扑信息发生变更的组网设备对应的第一版本号。之后,第一组网设备还可以发送第四报文,第四报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第四报文的源地址为虚拟通信地址。第二组网设备在接收到第四报文后,可以在第一拓扑序列号比其本地存储的第二拓扑序列号新的情况下,根据第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,第二组网设备可以从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。第三组网设备在接收到第四报文后,可以在第一拓扑序列号比其本地存储的第三拓扑序列号新的情况下,根据第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,第三组网设备可以从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
基于该方案,第一组网设备在确定第一组网中存在组网设备的拓扑信息发生变更时,可以更新自身的第一拓扑序列号和第一摘要信息中拓扑信息发生的组网设备对应的第一版本号,并告知其他组网设备第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,使得其他组网设备可以获知第一组网中存在组网设备的拓扑信息发生变更,并可以根据第一摘要信息来选择性地同步更新后的拓扑信息。从而,对于没有需求的组网设备可以不同步更新后的拓扑信息,从而可以节约通信资源。示例地,当组网设备的新增了下挂的瘦客户端,或者原来的瘦客户端断开连接,该组网设备的拓扑信息就发生了变更。
需要说明的是,第二组网设备或第三组网设备根据第一摘要信息确定是否需要同步更新后的拓扑信息,可以包括:第二组网设备或第三组网设备可以根据第一摘要信息中的第一版本号确定拓扑信息发生变更的组网设备,进而根据自身与该拓扑信息发生变更的组网设备的关系确定是否需要获取更新后的拓扑信息。示例地,第一组网中可以包括轻量化组网设备(如WIFI灯具),而轻量化组网设备不会使用到其他组网设备的下挂设备(比如USB设备)。假设第一组网中某组网设备新增了下挂设备,使其拓扑信息发生了变更,但第一组网中的轻量化组网设备在获知该设备拓扑信息发生变更后,可以确定无需同步该更新后的拓扑信息。
可选地,第一组网设备可以在自身的拓扑信息发生变更后,确定第一组网中存在组网设备的拓扑信息发生变更。或者,第二组网设备或第三组网设备在其自身的拓扑信息发生变更后,可以更新本地的第一拓扑序列号,并可以发送携带更新后的拓扑信息的第五报文,该第五报文的目的地址为虚拟通信地址。从而,第一组网设备会接收到该第五报文,第一组网设备在接收到第五报文后可以确定第一组网中存在组网设备的拓扑信息发生变更。
可选地,第一组网设备的第一拓扑序列号和第一摘要信息均可以携带在周期性发送的源地址为虚拟通信地址的心跳报文中。第二组网设备或第三组网设备可以在其本地存储的拓扑序列号(第二拓扑序列号或第三拓扑序列号)比心跳报文中的第一拓扑序列号新时,向第一组网设备发送更新后的拓扑信息。或者,第二组网设备或第三组网设备可以在其本地存储的拓扑序列号(第二拓扑序列号或第三拓扑序列号)比心跳报文中的第一拓扑序列号旧时,根据第一摘要信息确定拓扑信息发生变更的设备,进而选择性地从第一组网设备获取更新后的拓扑信息。需要说明的是,第二组网设备或第三组网设备向第一组网设备发送更新后的拓扑信息,以及从第一组网设备获取更新后的拓扑信息,均是根据虚拟通信地址进行通信的。
换言之,基于该方案,第二组网设备或第三组网设备在其自身的拓扑信息发生变更后,可以不主动向第一组网设备发送更新后的拓扑信息,而是根据心跳报文确定其本地的第一拓扑序列号比第一拓扑序列号新后,才向第一组网设备发送更新后的第一信息。或者,第一组网设备在确定第一组网中存在组网设备的拓扑信息发生变更后,未获得更新后的拓扑信息的第二组网设备或第三组网设备可以通过心跳报文来感知拓扑信息发生变更的组网设备,进而选择性获取更新后的拓扑信息。利用心跳报文来进行信息传递,可以避免额外的报文交互,节约通信资源。
可选地,第一组网设备在确定第一组网中除第一组网设备之外的某个组网设备下线后,可以更新本地的第一拓扑序列号,以及移除本地的第一摘要信息中下线的组网设备的标识及其对应的第一版本号。第一组网设备还可以发送第六报文,第六报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第六报文的源地址为虚拟通信地址。第一组网中除第一组网设备和下线的组网设备之外的组网设备可以接收该第六报文,并可以在更新后的第一拓扑序列号比本地存储的拓扑序列号(第二拓扑序列号或第三拓扑序列号)新的情况下,根据更新后的第一摘要信息确定存在组网设备下线,进而更新本地存储的第一拓扑序列号。
可选地,第一组网设备在连续x次未接收到第二组网设备和/或第三组网设备发送的心跳报文的情况下,确定该第二组网设备和/或第三组网设备下线,x为正整数。
可选地,第四组网设备为第一组网中的组网设备在完成全网信息同步后新加入的组网设备,第四组网设备可以发送源地址为第四组网设备的通信地址的心跳报文。第一组网设备可以接收到源地址为第四组网设备的通信地址的心跳报文,从而感知到该第四组网设备加入了第一组网。之后,第一组网设备可以向第四组网设备发送第七报文,以及在其存储的第一摘要信息中添加第四组网设备的标识以及对应的第一版本号,其中,第七报文包括第一组网中的每个组网设备用于全网信息同步的第一信息,第七报文的源地址为虚拟通信地址。第一组网设备可以发送第八报文,第八报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第八报文的源地址为虚拟通信地址。
换言之,第一组网设备可以通过新加入的组网设备的心跳报文来感知第一组网中新加入的设备,并可以为新加入的组网设备同步全网的信息,以及为当前在线的其他组网设备同步新加入的组网设备的信息。
可选地,第二组网设备在每y次接收到源地址为虚拟通信地址的心跳报文时,反馈一次源地址为第二组网设备的通信地址的心跳报文;和/或,第三组网设备在每y次接收到源地址为虚拟通信地址的心跳报文时,反馈一次源地址为第三组网设备的通信地址的心跳报文。其中,y为大于1的正整数。
基于该方案,在实现全网信息同步后,第二组网设备和/或第三组网设备可以不主动发送源地址为自身通信地址的心跳报文,而是仅在接收到源地址为虚拟通信地址的心跳报文时,反馈源地址为自身通信地址的心跳报文,用于虚拟主设备感知它们的在线状态。而对于第二组网设备和/或第三组网设备而言,其可以通过第一摘要信息来感知其他设备的在线状态。并且,y大于1,表示第二组网设备和/或第三组网设备反馈心跳报文的频次小于源地址为虚拟通信地址的心跳报文的发送频次,可以理解为第一组网中虚拟主设备的心跳频次高于除第一组网设备外其他组网设备的心跳频次,有助于快速感知虚拟主设备的下线。作为一种实现方式,第二组网设备,和/或,第三组网设备,反馈的心跳报文也可以是通过广播的,使得除第一组网设备外的其他组网设备之间也能相互感知各自的在线状态。
结合图5至图11所述的实施例,如图12所示,为本申请实施例提供的一种通信方法的具体示例,包括如下步骤。
S1201、第一组网中的组网设备相互通告自身设备的第一设备信息,该第一设备信息包括组网设备的权重。
本申请实施例中,组网设备的权重用于确定第一组网设备,权重最高的组网设备为第一组网中的第一组网设备。
可选地,设备的权重与设备的可靠性和设备的资源正相关。其中,设备的资源可以包括设备的处理资源和/或设备的带宽资源。示例性的,设备的供电电源可靠且供电时间越长,则设备的可靠性越高,进而设备的权重则越高。或者,示例性的,设备的处理资源越多,和/或,设备的带宽资源越多,则设备的可靠性越高。
需要说明的是,本申请实施例提供的通信方法可以应用于近场互联设备之间的信息同步,当设备间基于AP模式的局域网进行通信时,连接到同一局域网的设备可以组成一个通信网络,其中的组网设备为网络设备。或者,当设备间基于蓝牙通信时,开启蓝牙且蓝牙相互可达的设备可以组成一个通信网络,其中的组网设备即为蓝牙设备。当然,一个设备可以同时具备网络功能和蓝牙功能,从而其既可以通过局域网组网也可以通过蓝牙组网,本申请实施例对此不做限定。
组网的设备可以采用分布式软总线技术进行通信,每个组网设备到其他组网设备均一跳可达,因此不同组网设备之间互为邻居设备。组网设备可以广播心跳报文,用于发现邻居设备(也即是其他的组网设备),以及维持邻居关系。
作为一种实现方式,每个组网设备可以在其心跳报文中携带自身设备的权重。从而,在每个组网设备广播其心跳报文后,每个组网设备也可以接收到来自其他组网设备的心跳报文,使得每个组网设备均可以获知当前在网的所有设备的权重。
可选地,第一设备信息还可以包括组网设备自身的标识和通信地址。从而,第一组网中组网设备之间在相互通告权重的过程中,每个组网设备也可以获知其他组网设备标识和通信地址。
S1202、第一组网中的组网设备根据权重确定第一组网设备。
在步骤S1201中,第一组网中每个组网设备获得了其他组网设备的权重,从而第一组网中权重最高的组网设备成为第一组网设备。
可选地,本申请实施例中,第一组网中的组网设备还可以确定第二组网设备,第二组网设备为第一组网中权重次高的组网设备。其中,第二组网设备可以用于在第一组网设备下线时,接替第一组网设备维护虚拟主设备。
S1203、在第一组网设备中配置虚拟通信地址。
在第一组网设备中可以配置一个虚拟通信地址,该虚拟通信地址用于为第一组网中的组网设备进行全网信息同步。从而,当第一组网中除第一组网设备之外的其他组网设备接收到源地址为虚拟通信地址的报文之后,并不会感知是与第一组网设备进行交互,而是会认为在与虚拟通信地址对应的设备(即虚拟主设备)进行交互。因此,可以认为虚拟主设备配置在第一组网设备中。
可选地,若虚拟通信地址为虚拟IP地址,该虚拟IP地址可以被配置在第一组网设备本地的虚拟接口上,作为转发接口信息。作为一种实现方式,虚拟IP地址被配置在第一组网设备本地的虚拟环回口(loopback)上,比如loopback0接口。
可选地,可以在第一组网设备中配置唯一设备标识符(unique deviceidentifier,UDID),该UDID可以作为虚拟通信地址对应的虚拟主设备的身份标识。该UDID可以是第一组网设备自己生成的,也可以是人为在第一组网设备中配置的,本申请实施例对此不作限定。
S1204、第一组网设备发送虚拟通信地址。相应的,第二组网设备和第三组网设备接收虚拟通信地址。该虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。
步骤S1204的具体实现可参考图5所述的实施例中的步骤S501,在此不再赘述。
可选地,第一组网设备还可以发送虚拟主设备的UDID。相应的,第二组网设备和第三组网设备接收虚拟主设备的UDID。该虚拟主设备的UDID用于第二组网设备或第三组网设备与虚拟主设备进行通信时,使用该UDID验证虚拟主设备的身份。
作为一种实现方式,第一组网设备可以在其发送的源地址为虚拟通信地址的心跳报文中携带虚拟主设备的UDID。从而,第二组网设备或第三组网设备在接收到源地址为虚拟通信地址的心跳报文后,会认为该UDID是虚拟通信地址对应的虚拟主设备的UDID。
S1205、第二组网设备和第三组网设备发送第一报文,相应的,第一组网设备接收第一报文。其中,第一报文包括相应组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。
步骤S1205的具体实现可参考图9所述的实施例中的步骤S901,在此不再赘述。
S1206、第一组网设备发送第二报文,相应的,第二组网设备和第三组网设备接收第二报文。其中,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
步骤S1206的具体实现可参考图9所述的实施例中的步骤S902,在此不再赘述。
S1207、第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。相应的,第二组网设备和第三组网设备接收源地址为虚拟通信地址的心跳报文。
步骤S1207的具体实现可参考图5所述的实施例中的步骤S502,在此不再赘述。
可选地,第一组网设备周期性发送源地址为虚拟通信地址的心跳报文可以携带第一组网设备的第一拓扑序列号和第一摘要信息,此处的相关内容也可以参考前文的相关描述。
S1208、第二组网设备在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。
步骤S1208的具体实现可参考图5所述的实施例中的步骤S503,在此不再赘述。
S1209、第二组网设备在确定第一组网设备下线后,接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。
步骤S1209的具体实现可参考图5所述的实施例中的步骤S504,在此不再赘述。
综上所述,本申请实施例提供的通信方法中,第一组网中的组网设备基于虚拟通信地址进行全网信息同步,第一组网设备可以发送源地址为虚拟通信地址的心跳报文用于表征虚拟主设备处于在线状态。第二组网设备比第三组网设备先感知到第一组网设备的下线,并可以在第一组网设备下线时接替第一组网设备发送源地址为虚拟通信地址的心跳报文,使得第三组网设备能够一直感知虚拟主设备处于在线状态。该通信方法可以避免用于全网信息同步的设备下线后,导致组网设备中已同步的信息不可靠,而带来的业务黑账期的问题。
需要说明的是,在本申请实施例中,维护虚拟主设备的组网设备可以认为是主设备,在主设备下线时接替主设备维护虚拟主设备的组网设备可以认为是备选设备。比如,上述实施例中的第一组网设备作为主设备,第二组网设备作为备选设备。
相应地,上述步骤S503和S1208可以为:备选设备在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定主设备下线,n小于m,n和m均为正整数,m为除主设备和备选设备外的组网设备确定主设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。上述步骤S504和S1209可以为:备选设备在确定主设备下线后,接替主设备周期性发送源地址为虚拟通信地址的心跳报文。
需要说明的是,本申请实施例中的备选设备可以是指除主设备外权重最高的设备。从而,若第一组网中新加入的组网设备的权重高于第一组网中的备选设备,那么新加入的组网设备会成为新的备选设备。并且,新加入的组网设备的权重也可能高于当前的主设备,但是其不会抢占当前的主设备,本申请实施例在此统一说明。
基于此,作为一种实现方式,源地址为虚拟通信地址的心跳报文中还可以携带全网设备的权重,使得新加入的组网设备可以根据全网设备的权重确定自身的权重排名。
应理解的是,当原主设备下线,备选设备接替原主设备维护虚拟主设备后,备选设备可以被认为是新的主设备。从而,除了新主设备外的权重最高的设备会成为新的备选设备。新的主设备和新的备选设备执行的动作如上述步骤S502至S504,或S1207至S1209所述,在此不再赘述。
需要说明的是,上述方法实施例中第一组网设备的动作可以由图4所示的通信装置40中的处理器401调用存储器402中存储的应用程序代码以指令该第一组网设备执行,第二组网设备的动作可以由图4所示的通信装置40中的处理器401调用存储器402中存储的应用程序代码以指令该第二组网设备执行,第三组网设备的动作可以由图4所示的通信装置40中的处理器401调用存储器402中存储的应用程序代码以指令该第三组网设备执行,本实施例对此不作任何限制。
可以理解的是,以上各个实施例中,由第一组网设备实现的方法和/或步骤,也可以由可用于第一组网设备的部件(例如芯片或者电路)实现;由第二组网设备实现的方法和/或步骤,也可以由可用于第二组网设备的部件(例如芯片或者电路)实现;由第三组网设备实现的方法和/或步骤,也可以由可用于第三组网设备的部件(例如芯片或者电路)实现。
上述主要从各个组网设备之间交互的角度对本申请实施例提供的方案进行了介绍。相应的,本申请实施例还提供了通信装置,该通信装置用于实现上述各种方法。该通信装置可以为上述方法实施例中的第一组网设备,或者包含上述第一组网设备的装置,或者为可用于第一组网设备的部件;或者,该通信装置可以为上述方法实施例中的第二组网设备,或者包含上述第二组网设备的装置,或者为可用于第二组网设备的部件;或者,该通信装置可以为上述方法实施例中的第三组网设备,或者包含上述第三组网设备的装置,或者为可用于第三组网设备的部件。可以理解的是,该通信装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法实施例中对通信装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图13示出了一种通信装置130的结构示意图。该通信装置130包括收发模块1301和处理模块1302。所述收发模块1301,也可以称为收发单元用以实现收发功能,例如可以是收发电路,收发机,收发器或者通信接口。
其中,以通信装置130为上述方法实施例中的第一组网设备为例:
收发模块1301,用于发送虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。收发模块1301,还用于周期性发送源地址为虚拟通信地址的心跳报文。
可选地,收发模块1301,还用于接收来自第一组网中其他组网设备的第一报文,第一报文包括其他组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。收发模块1301,还用于发送第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
可选地,收发模块1301,用于发送所述虚拟通信地址,包括:用于发送第三报文,第三报文的源地址为虚拟通信地址。
可选地,虚拟通信地址为虚拟网络地址。收发模块1301,还用于发送虚拟通信网络地址对应的第一硬件地址,其中,第一硬件地址为第一组网设备的硬件地址,第一硬件地址用于寻址第一组网设备。
可选地,收发模块1301,还用于接收第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
可选地,处理模块1302,还用于生成第一拓扑序列号和第一摘要信息,第一拓扑序列号用于指示第一组网设备当前获知的全网拓扑信息的版本,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。收发模块1301,还用于发送第一摘要信息。
可选地,处理模块1302,还用于确定第一组网中存在组网设备的拓扑信息发生变更,以及更新第一组网设备上存储的第一拓扑序列号和第一摘要信息中拓扑信息发生的组网设备对应的第一版本号。收发模块1301,还用于发送第四报文,第四报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第四报文的源地址为虚拟通信地址。
可选地,处理模块1302,用于确定第一组网中存在组网设备的拓扑信息发生变更,包括:用于确定自身的拓扑信息发生变更;或者,用于通过收发模块1301接收第五报文,第五报文包括拓扑信息发生变更的组网设备更新后的拓扑信息,第五报文的目的地址为虚拟通信地址。
可选地,处理模块1302,还用于确定第一组网中存在组网设备下线,并更新第一组网设备上存储的第一拓扑序列号,以及移除第一组网设备上存储的第一摘要信息中下线的组网设备的标识及其对应的第一版本号。收发模块1301,还用于发送第六报文,第六报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第六报文的源地址为虚拟通信地址。
可选地,处理模块1302用于确定第一组网中存在组网设备下线,包括:用于在连续x次未接收到第一组网中除第一组网设备之外的某个组网设备发送的心跳报文的情况下,确定第一组网中存在组网设备下线,x为正整数。
可选地,收发模块1301,还用于接收源地址为第四组网设备的通信地址的心跳报文,第四组网设备为第一组网中新上线的组网设备。收发模块1301,还用于向第四组网设备发送第七报文,第七报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第七报文的源地址为虚拟通信地址。处理模块1302,还用于更新第一组网设备上存储的第一拓扑序列号,以及在第一组网设备上存储的第一摘要信息中添加第四组网设备的标识以及对应的第一版本号。收发模块1301,还用于发送第八报文,第八报文包括第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,第八报文的源地址为虚拟通信地址。
其中,以通信装置130为上述方法实施例中的第二组网设备为例:
收发模块1301,用于接收虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,第二组网设备为第一组网中权重次高的组网设备。处理模块1302,用于在连续n次未接收到源地址为虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定第一组网设备下线时对应的未接收到源地址为虚拟通信地址的心跳报文的次数。其中,第一组网设备为第一组网中权重最高的组网设备,第三组网设备为第一组网中除第一组网设备和第二组网设备之外的组网设备。处理模块1302,还用于接替第一组网设备周期性发送源地址为虚拟通信地址的心跳报文。
可选地,收发模块1301,还用于发送第一报文,第一报文包括第二组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。收发模块1301,还用于接收第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
可选地,收发模块1301,用于接收所述虚拟通信地址,包括:用于接收第三报文,第三报文的源地址为虚拟通信地址。
可选地,收发模块1301,还用于接收虚拟通信地址对应的硬件地址。
可选地,收发模块1301,还用于发送第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
可选地,处理模块1302,还用于生成第二拓扑序列号,第二拓扑序列号用于指示第二组网设备当前获知的全网拓扑信息的版本。收发模块1301,用于接收第一摘要信息,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。
可选地,处理模块1302,还用于在自身的拓扑信息发生变更后,更新本地存储的第二拓扑序列号。收发模块1301,还用于向第一组网设备发送第五报文,第五报文包括第二组网设备更新后的拓扑信息,第五报文的目的地址为虚拟通信地址。
可选地,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块1302,还用于确定本地存储的第二拓扑序列号比第一组网设备存储的第一拓扑序列号新。
可选地,收发模块1301,还用于接收第四报文,该第四报文包括第一组网设备存储的第一拓扑序列号和第一摘要信息。处理模块1302,还用于确定第一组网设备存储的第一拓扑序列号比第二组网设备本地存储的第二拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。
可选地,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块1302,还用于确定第一组网设备存储的第一拓扑序列号比第二组网设备本地存储的第二拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。
其中,以通信装置130为上述方法实施例中的第三组网设备为例:
收发模块1301,用于接收虚拟通信地址,虚拟通信地址用于第一组网中的组网设备进行全网信息的同步。收发模块1301,还用于接收源地址为虚拟通信地址的心跳报文。
可选地,收发模块1301,还用于发送第一报文,第一报文包括第三组网设备用于全网信息同步的第一信息,第一报文的目的地址为虚拟通信地址。收发模块1301,还用于接收第二报文,第二报文包括第一组网中每个组网设备用于全网信息同步的第一信息,第二报文的源地址为虚拟通信地址。
可选地,收发模块1301用于接收虚拟通信地址,包括:用于接收第三报文,第三报文的源地址为虚拟通信地址。
可选地,收发模块1301,还用于接收虚拟通信网络地址对应的硬件地址。
可选地,收发模块1301,还用于发送第一请求报文,第一请求报文用于请求虚拟通信地址对应的硬件地址。
可选地,处理模块1302,还用于生成第三拓扑序列号,第三拓扑序列号用于指示第三组网设备当前获知的全网拓扑信息的版本。收发模块1301,还用于接收第一摘要信息,第一摘要信息包括第一组网中每个组网设备的标识及其对应的第一版本号,第一版本号用于指示对应组网设备自身拓扑信息的版本。
可选地,处理模块1302,还用于在自身的拓扑信息发生变更后,更新本地存储的第三拓扑序列号。收发模块1301,还用于向第一组网设备发送第五报文,第五报文包括第三组网设备更新后的拓扑信息,其中,第五报文的目的地址为虚拟通信地址。
可选地,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。收发模块1301,还用于确定本地存储的第三拓扑序列号比第一组网设备存储的第一拓扑序列号新。
可选地,收发模块1301,还用于接收第四报文,该第四报文包括第一组网设备存储的第一拓扑序列号和第一摘要信息。处理模块1302,还用于确定第一组网设备存储的第一拓扑序列号比第三组网设备本地存储的第三拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
可选地,源地址为虚拟通信地址的心跳报文中包括第一组网设备存储的第一拓扑序列号。处理模块1302,还用于确定第一组网设备存储的第一拓扑序列号比第三组网设备本地存储的第三拓扑序列号新,以及根据第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息。若需要,从第一组网设备获取更新后的拓扑信息,并更新本地存储的第三拓扑序列号。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在本实施例中,该通信装置130以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该通信装置130可以采用图4所示的通信装置40的形式。
比如,图4所示的通信装置40中的处理器401可以通过调用存储器403中存储的计算机执行指令,使得通信装置40执行上述方法实施例中的通信方法。
具体的,图13中的收发模块1301和处理模块1302的功能/实现过程可以通过图4所示的通信装置40中的处理器401调用存储器403中存储的计算机执行指令来实现。或者,图13中的处理模块1302的功能/实现过程可以通过图4所示的通信装置40中的处理器401调用存储器403中存储的计算机执行指令来实现,图13中的收发模块1301的功能/实现过程可以通过图4中所示的通信装置40中的通信接口404来实现。
由于本实施例提供的通信装置130可执行上述通信方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (25)
1.一种通信方法,其特征在于,所述方法包括:
第一组网设备发送虚拟通信地址,所述虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,其中,所述第一组网设备为所述第一组网中权重最高的设备;
所述第一组网设备周期性发送源地址为所述虚拟通信地址的心跳报文。
2.根据权利要求1所述的通信方法,其特征在于,所述虚拟通信地址用于所述第一组网中的组网设备进行全网信息的同步,包括:
所述第一组网设备接收来自所述第一组网中其他组网设备的第一报文,所述第一报文包括所述其他组网设备用于全网信息同步的第一信息,其中,所述第一报文的目的地址为所述虚拟通信地址;
所述第一组网设备发送第二报文,所述第二报文包括所述第一组网中每个组网设备用于全网信息同步的第一信息;其中,所述第二报文的源地址为所述虚拟通信地址。
3.根据权利要求1或2所述的通信方法,其特征在于,所述第一组网设备发送虚拟通信地址,包括:
所述第一组网设备发送第三报文,其中,所述第三报文的源地址为所述虚拟通信地址。
4.根据权利要求1-3任一项所述的通信方法,其特征在于,所述虚拟通信地址为虚拟网络地址;所述方法还包括:
所述第一组网设备发送所述虚拟通信网络地址对应的第一硬件地址,其中,所述第一硬件地址为所述第一组网设备的硬件地址,所述第一硬件地址用于寻址所述第一组网设备。
5.根据权利要求4所述的通信方法,其特征在于,在所述第一组网设备发送所述虚拟通信网络地址对应的第一硬件地址之前,所述方法还包括:
所述第一组网设备接收第一请求报文,所述第一请求报文用于请求所述虚拟通信地址对应的硬件地址。
6.根据权利要求1-5任一项所述的通信方法,其特征在于,所述方法还包括:
在完成全网信息的同步之后,所述第一组网设备生成第一拓扑序列号和第一摘要信息,其中,所述第一拓扑序列号用于指示所述第一组网设备当前获知的全网拓扑信息的版本,所述第一摘要信息包括所述第一组网中每个组网设备的标识及其对应的第一版本号,其中,所述第一版本号用于指示对应组网设备自身拓扑信息的版本;
所述第一组网设备发送所述第一摘要信息。
7.根据权利要求6所述的通信方法,其特征在于,所述方法还包括:
所述第一组网设备确定所述第一组网中存在组网设备的拓扑信息发生变更;
所述第一组网设备更新所述第一组网设备上存储的第一拓扑序列号和第一摘要信息中拓扑信息发生的组网设备对应的第一版本号;
所述第一组网设备发送第四报文,所述第四报文包括所述第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,其中,所述第四报文的源地址为所述虚拟通信地址。
8.根据权利要求7所述的方法,其特征在于,所述第一组网设备确定所述第一组网中存在组网设备的拓扑信息发生变更,包括:
所述第一组网设备确定自身的拓扑信息发生变更;
或者,所述第一组网设备接收第五报文,所述第五报文包括拓扑信息发生变更的组网设备更新后的拓扑信息,其中,所述第五报文的目的地址为所述虚拟通信地址。
9.根据权利要求6-8任一项所述的通信方法,其特征在于,所述方法还包括:
所述第一组网设备确定所述第一组网中存在组网设备下线;
所述第一组网设备更新所述第一组网设备上存储的第一拓扑序列号,并移除所述第一组网设备上存储的第一摘要信息中下线的组网设备的标识及其对应的第一版本号;
所述第一组网设备发送第六报文,所述第六报文包括所述第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,其中,所述第六报文的源地址为所述虚拟通信地址。
10.根据权利要求9所述的通信方法,其特征在于,所述第一组网设备确定所述第一组网中存在组网设备下线,包括:
在连续x次未接收到所述第一组网中除所述第一组网设备之外的某个组网设备发送的心跳报文的情况下,所述第一组网设备确定所述第一组网中存在组网设备下线,x为正整数。
11.根据权利要求6-10任一项所述的通信方法,其特征在于,所述方法还包括:
所述第一组网设备接收源地址为第四组网设备的通信地址的心跳报文,所述第四组网设备为所述第一组网中新上线的组网设备;
所述第一组网设备向所述第四组网设备发送第七报文,并更新所述第一组网设备上存储的第一拓扑序列号,以及在所述第一组网设备上存储的第一摘要信息中添加所述第四组网设备的标识以及对应的第一版本号,其中,所述第七报文包括所述第一组网中每个组网设备用于全网信息同步的第一信息,其中,所述第七报文的源地址为所述虚拟通信地址;
所述第一组网设备发送第八报文,所述第八报文包括所述第一组网设备更新后的第一拓扑序列号和更新后的第一摘要信息,其中,所述第八报文的源地址为所述虚拟通信地址。
12.一种通信方法,其特征在于,所述方法包括:
第二组网设备接收虚拟通信地址,所述虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,所述第二组网设备为所述第一组网中权重次高的组网设备;
所述第二组网设备在连续n次未接收到源地址为所述虚拟通信地址的心跳报文后,确定第一组网设备下线,n小于m,n和m均为正整数,m为第三组网设备确定所述第一组网设备下线时对应的未接收到源地址为所述虚拟通信地址的心跳报文的次数;其中,所述第一组网设备为所述第一组网中权重最高的组网设备,所述第三组网设备为所述第一组网中除所述第一组网设备和所述第二组网设备之外的组网设备;
所述第二组网设备接替所述第一组网设备周期性发送源地址为所述虚拟通信地址的心跳报文。
13.根据权利要求12所述的通信方法,其特征在于,所述虚拟通信地址用于第一组网中的组网设备进行全网信息的同步,包括:
所述第二组网设备发送第一报文,所述第一报文包括所述第二组网设备用于全网信息同步的第一信息,其中,所述第一报文的目的地址为所述虚拟通信地址;
所述第二组网设备接收第二报文,所述第二报文包括所述第一组网中每个组网设备用于全网信息同步的第一信息;其中,所述第二报文的源地址为所述虚拟通信地址。
14.根据权利要求12或13所述的通信方法,其特征在于,所述第二组网设备接收所述虚拟通信地址,包括:
所述第二组网设备接收第三报文,其中,所述第三报文的源地址为所述虚拟通信地址。
15.根据权利要求12-14任一项所述的通信方法,其特征在于,所述方法还包括:
所述第二组网设备接收所述虚拟通信地址对应的硬件地址。
16.根据权利要求15所述的通信方法,其特征在于,在所述第二组网设备接收所述虚拟通信地址之后,所述第二组网设备接收所述虚拟通信地址对应的硬件地址之前,所述方法还包括:
所述第二组网设备发送第一请求报文,所述第一请求报文用于请求所述虚拟通信地址对应的硬件地址。
17.根据权利要求13所述的通信方法,其特征在于,在所述第二组网设备接收第二报文之后,所述方法还包括:
所述第二组网设备生成第二拓扑序列号,所述第二拓扑序列号用于指示所述第二组网设备当前获知的全网拓扑信息的版本;
所述第二组网设备接收第一摘要信息,所述第一摘要信息包括所述第一组网中每个组网设备的标识及其对应的第一版本号,所述第一版本号用于指示对应组网设备自身拓扑信息的版本。
18.根据权利要求17所述的通信方法,其特征在于,所述方法还包括:
所述第二组网设备在自身的拓扑信息发生变更后,更新本地存储的第二拓扑序列号,并向所述第一组网设备发送第五报文,所述第五报文包括所述第二组网设备更新后的拓扑信息,其中,所述第五报文的目的地址为所述虚拟通信地址。
19.根据权利要求18所述的通信方法,其特征在于,所述源地址为所述虚拟通信地址的心跳报文中包括所述第一组网设备存储的第一拓扑序列号;在所述第二组网设备向所述第一组网设备发送第五报文之前,所述方法还包括:
所述第二组网设备确定本地存储的第二拓扑序列号比所述第一组网设备存储的第一拓扑序列号新。
20.根据权利要求17-19任一项所述的通信方法,其特征在于,所述源地址为所述虚拟通信地址的心跳报文中包括所述第一组网设备存储的第一拓扑序列号;所述方法还包括:
所述第二组网设备在确定所述第一组网设备存储的第一拓扑序列号比所述第二组网设备本地存储的第二拓扑序列号新的情况下,根据所述第一组网设备的第一摘要信息确定是否需要同步更新后的拓扑信息;若需要,从所述第一组网设备获取更新后的拓扑信息,并更新本地存储的第二拓扑序列号。
21.一种通信系统,其特征在于,所述通信系统包括第一组网设备、第二组网设备和第三组网设备,所述第一组网设备为第一组网中权重最高的组网设备,所述第二组网设备为所述第一组网中权重次高的组网设备,所述第三组网设备为所述第一组网中除所述第一组网设备和所述第二组网设备之外的组网设备;
所述第一组网设备,用于发送虚拟通信地址,所述虚拟通信地址用于所述第一组网中的组网设备进行全网信息的同步;
所述第一组网设备,还用于在完成全网信息的同步之后,周期性发送源地址为所述虚拟通信地址的心跳报文;
所述第二组网设备,用于在连续n次未接收到源地址为所述虚拟通信地址的心跳报文后,确定所述第一组网设备下线,n小于m,n和m均为正整数,m为所述第三组网设备确定所述第一组网设备下线时对应的未接收到源地址为所述虚拟通信地址的心跳报文的次数;
所述第二组网设备,还用于接替所述第一组网设备周期性发送源地址为所述虚拟通信地址的心跳报文。
22.根据权利要求21所述的通信系统,其特征在于,所述第二组网设备,还用于在每y次接收到源地址为所述虚拟通信地址的心跳报文时,反馈一次源地址为所述第二组网设备的通信地址的心跳报文;
和/或,所述第三组网设备,还用于在每y次接收到源地址为所述虚拟通信地址的心跳报文时,反馈一次源地址为所述第三组网设备的通信地址的心跳报文
其中,y为大于1的正整数。
23.一种通信装置,其特征在于,所述通信装置包括:处理器和存储器;
所述存储器用于存储计算机执行指令,当所述处理器执行所述计算机执行指令时,以使所述通信装置执行如权利要求1-11或12-20中任一项所述的方法。
24.一种通信装置,其特征在于,所述通信装置包括:处理器和接口电路;
所述接口电路,用于接收计算机执行指令并传输至所述处理器;
所述处理器用于执行所述计算机执行指令,以使所述通信装置执行如权利要求1-11或12-20中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时使得所述计算机执行权利要求1-11或12-20中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110726712.1A CN115622891A (zh) | 2021-06-29 | 2021-06-29 | 通信方法、装置及系统 |
PCT/CN2022/084594 WO2023273468A1 (zh) | 2021-06-29 | 2022-03-31 | 通信方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110726712.1A CN115622891A (zh) | 2021-06-29 | 2021-06-29 | 通信方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115622891A true CN115622891A (zh) | 2023-01-17 |
Family
ID=84691123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110726712.1A Pending CN115622891A (zh) | 2021-06-29 | 2021-06-29 | 通信方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115622891A (zh) |
WO (1) | WO2023273468A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067290B (zh) * | 2012-11-30 | 2016-06-01 | 成都卫士通信息产业股份有限公司 | 基于虚拟网卡适应负载均衡网络的vpn隧道实现方法 |
CN103068034B (zh) * | 2013-01-29 | 2016-05-11 | 大唐移动通信设备有限公司 | 一种数据同步的方法及装置 |
WO2017210208A1 (en) * | 2016-05-31 | 2017-12-07 | Brocade Communications Systems, Inc. | Keepalive technique in a network device |
US10305539B2 (en) * | 2016-07-19 | 2019-05-28 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
US10193750B2 (en) * | 2016-09-07 | 2019-01-29 | Cisco Technology, Inc. | Managing virtual port channel switch peers from software-defined network controller |
CN109271280A (zh) * | 2018-08-30 | 2019-01-25 | 重庆富民银行股份有限公司 | 存储故障快速切换处理方法 |
CN109101370A (zh) * | 2018-08-30 | 2018-12-28 | 重庆富民银行股份有限公司 | 主从双向同步的数据存储方法 |
-
2021
- 2021-06-29 CN CN202110726712.1A patent/CN115622891A/zh active Pending
-
2022
- 2022-03-31 WO PCT/CN2022/084594 patent/WO2023273468A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023273468A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600246B (zh) | 网络切片管理方法及其装置 | |
US9503957B2 (en) | Low cost mesh network capability | |
US8356346B2 (en) | VPN secure sessions with dynamic IP addresses | |
CN113596191B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
EP3735043B1 (en) | Network slice deployment method and apparatus | |
JPH08249263A (ja) | ファイバ・チャネル・システム内でファブリックを構成するための方法及び装置 | |
CN112822115B (zh) | 一种基于插件式引擎的服务框架构建方法和系统 | |
CN112383472A (zh) | 网络传输方法、装置、存储介质及电子设备 | |
CN113873005A (zh) | 一种微服务集群的节点选主方法、系统、设备及介质 | |
CN114666864A (zh) | 多网络通信方法、终端设备、存储介质和程序产品 | |
WO2022052496A1 (zh) | 地址预留的方法、网络设备和系统 | |
WO2020147081A1 (zh) | 一种数据传输方法、相关设备及计算机存储介质 | |
CN107483628B (zh) | 基于dpdk的单向代理方法及系统 | |
CN113271653B (zh) | 通信方法、装置及系统 | |
CN112714146B (zh) | 一种资源调度方法、装置、设备及计算机可读存储介质 | |
CN115918044A (zh) | 移动通信网络中用于动态且高效的负载均衡的方法和设备 | |
CN112491978A (zh) | 一种调度方法和设备 | |
CN115622891A (zh) | 通信方法、装置及系统 | |
CN111064622B (zh) | 网络设备、同步装置及信息传输方法 | |
CN113630300B (zh) | 用于报文传输的方法和节点 | |
CN114157455A (zh) | 一种数据传输方法、装置、设备以及存储介质 | |
CN115550957A (zh) | 网络管理方法及装置 | |
CN115296952B (zh) | 一种设备调度方法、装置、设备及存储介质 | |
CN112887201A (zh) | 基于vrrp的接口更新方法、装置及存储介质 | |
CN115412530B (zh) | 一种多集群场景下服务的域名解析方法及系统 |
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 |