多网关通信的方法、装置、系统以及电子设备与流程

文档序号:20061140发布日期:2020-03-06 07:58阅读:327来源:国知局
多网关通信的方法、装置、系统以及电子设备与流程
本申请属于数据通信领域,具体涉及一种多网关通信的方法、装置、系统、电子设备及存储介质。
背景技术
:随着智能家居的发展,越来越多的智能产品进入千家万户。随着用户的深度使用,接入到智能家居系统的设备逐渐增多,单一网关已无法满足家庭智能设备的联网需求,这就需要多个网关协同工作。然而在相关的多网关通信方式还存在待提升的方面。技术实现要素:鉴于上述问题,本申请实施例提供了一种多网关通信的方法、装置、系统、电子设备及存储介质,以实现改善上述问题。第一方面,本申请实施例提供了一种多网关通信的方法,所述方法包括:第一网关查找对应的通信路径信息,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径;从所述通信路径中确定与第二网关之间的目标通信路径;执行预设的操作。第二方面,本申请实施例提供了一种多网关通信的方法,应用于云服务器,所述方法包括:云服务器检测到有网关组中的网关更新后,更新所述网关组的网关列表;将所述更新后的网关列表发送给所述网关组中的网关,以便所述网关组的中的网关尝试与所述更新后的网关列表中的网关基于指定通信协议建立通信连接,以生成每个网关对应的通信路径信息,以便每个所述网关基于所述通信路径信息与其他网关进行数据传输,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径。第三方面,本申请实施例提供了一种多网关通信的方法,所述方法包括:云服务器向网关组中的所有网关推送网关列表,其中所述网关列表包括所述网关组中的每个网关的唯一标识以及对应的ip地址;所述网关组中的第一网关接收所述网关列表;若所述第一网关基于所述网关列表检测到所述第一网关所属的网关组中有更新后的网关时,更新本地存储的所属网关组的网关列表;所述第一网关基于所述更新后的网关的ip地址向所述更新后的网关发送通信连接请求,并基于所述通信连接请求的结果,更新所述第一网关对应的通信路径信息,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径;所述第一网关若接收所述网关组中的其他网关发送的通信连接请求,与发送所述通信连接请求的其他网关建立通信连接,以便所述其他网关更新对应的通信路径信息;所述第一网关基于更新后的通信路径信息确定与所述网关组中的第二网关的目标通信路径;所述第一网关基于所述目标通信路径向所述第二网关发送数据。第四方面,本申请实施例提供了一种多网关通信的装置,所述装置包括:信息查找单元,用于查找通信路径信息,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径;路径选择单元,用于从通信路径中确定与第二网关之间的目标通信路径;动作执行单元,用于执行预设的操作。第五方面,本申请实施例提供了一种多网关通信的装置,所述装置包括:网关检测单元,用于检测到有网关组中的网关更新后,更新所述网关组的网关列表;网关通信配置单元,用于将所述更新后的网关列表发送给所述网关组中的网关,以便所述网关组的中的网关尝试与所述更新后的网关列表中的网关基于指定通信协议建立通信连接,以生成每个网关对应的通信路径信息,以便每个所述网关基于所述通信路径信息与其他网关进行数据传输,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径。第六方面,本申请实施例提供了一种多网关通信的系统,所述系统包括第一网关、云服务器和第二网关;云服务器,用于向网关组中的所有网关推送网关列表;第一网关,用于接收所述网关列表;所述第一网关,用于基于所网关列表检测所属网关组中是否有网关更新;若检测到所述所属网关组中有网关更新,更新本地存储的所属网关组的网关列表;所述第一网关,用于基于所述更新后的网关的ip地址向所述更新后的网关发送通信连接请求,并基于所述通信连接请求的结果,更新所述第一网关对应的通信路径信息,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径;所述第一网关,用于若接收所述网关组中的其他网关发送的通信连接请求,与发送所述通信连接请求的其他网关建立通信连接,以便所述其他网关更新对应的通信路径信息;所述第一网关,用于基于更新后的通信路径信息确定与所述网关组中的第二网关的目标通信路径;所述第二网关,用于接收所述第一网关基于所述目标通信路径发送的数据。第七方面,本申请实施例提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。本申请实施例提供了一种多网关通信的方法、装置、系统、电子设备及存储介质。通过第一网关预先基于指定通信协议与其他网关先建立连接,从而生成包括第一网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径的通信路径信息的情况下,在需要执行预设的操作时,第一网关可以直接查找该通信路径信息,从该通信路径信息包括的通信路径中确定与第二网关之间的目标通信路径,以执行预设的操作。从而通过上述方式实现多个网关之间通过预先自动尝试建立相互之间的通信链路并生成通信路径信息的情况下,使得在需要查找网关之间的点对点通信路径时,可以通过直接查询该通信路径信息即可,提升了确定通信路径时的时效性,以及执行预设操作的效率。附图说明下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1示出了本申实施例请提出的一种应用场景示意图;图2示出了本申实施例请提出的另一种应用场景示意图;图3示出了本申请实施例提出的一种多网关通信的方法的流程图;图4示出了本申请另一实施例提出的一种多网关通信的方法的流程图;图5示出了本申请再一实施例提出的一种多网关通信的方法的流程图;图6示出了本申请又一实施例提出的一种多网关通信的方法的时序图;图7示出了本申请实施例提出的一种多网关通信的装置的结构框图;图8示出了本申请实施例提出的另一种多网关通信的装置的结构框图;图9示出了本申请实施例提出的一种多网关通信的系统的结构框图;图10示出了本申请的用于执行根据本申请实施例的多网关通信的方法的网关的结构框图。图11示出了本申请的用于执行根据本申请实施例的多网关通信的方法的服务器的结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。随着智能家居的发展,越来越多的智能产品进入千家万户。在相关智能家居系统中,接入智能家居系统的设备可以通过网关来进行交互数据的发送。例如,云服务器在需要将用户终端发送的控制指令发送给某个受控设备时,该控制指令可以先由云服务器下发到某个局域网中的路由器,然后再由该路由器转发给网关,最后由该网关将该控制指令转发到具体的受控设备。再例如,均连接到某一个网关的受控设备a以及受控设备b,若受控设备a需要向受控设备b发送控制指令,那么该控制指令可以由受控设备a以及受控设备b共同连接的网关进行转发。而随着用户的深度使用,接入到智能家居系统的设备逐渐增多,而为了适应更多的设备,可以通过配置更多的网关来进行设备之间的数据发送。而发明人在对存在多网关的网络环境进行研究中发现,在此条件下的网络拓扑可能会比较复杂。例如,多个网关可能在同一个局域网中,也很可能不在同一个局域网中。如果网关都在同一个局域网中,那么网关之间可以直接相互同信。但是,如果网络存在多层子网络,由于以太网的特性,存在于不同子网络中的网关,可能无法通过本地网络ip相互通信。例如,如图1所示,在图1中,用户环境中有4个网络,其中192.168.1.x网络下有两个子网络,分别为:192.168.2.x与192.168.3.x。192.168.3.x网络下再有一个子网络192.168.4.100。这时用户有4个网关,其中网关1在192.168.1.x中,网关2在192.168.2.x中,网关3在192.168.3.x网络中,网关4在网络192.168.4.x中。由于以太网的特性,子网络的设备对父网络是不可见的,所以父网络的网关进行通信时不能通过ip地址与子网络的网关连接。但是父网络中的设备对子网络却是可见的,所以子网络的设备可以通过ip地址访问到父网络。于是网关2、网关3和网关4都可以主动与网关1通信,但网关1不能主动与网关2、网关3和网关4进行通信。网关4可以主动与网关3通信,但网关3不能主动与网关4通信。同时子网络之间的设备不可以直接通信,于是网关2无法与网关3或网关4通信。同样的,网关3和网关4也不能直接与网关2通信。发明人在研究中发现,在多网关的网络中另一种相关的网关间通信方式为通过云服务器进行数据的转发。而在这种通过云服务器进行数据转发的方式,会造成严重依赖于云服务器,并且由于中间传输网络链路长,导致数据传输延时较大,同时也无法保证传输的安全性。因此,提出了本申请中的多个网关之间通过预先自动尝试建立相互之间的通信链路并生成通信路径信息的情况下,使得在需要查找网关之间的点对点通信路径时,可以通过直接查询该通信路径信息即可,提升了确定通信路径时的时效性,以及执行预设操作的效率的多网关通信的方法、装置、系统以及电子设备。并且,对于其中的通信路径信息中的通信路径可以均为本地的通信路径,进而实现降低对云服务器的依赖,并提升数据传输的效率和数据安全性。下面将对本申请实施例所涉及的一种应用环境进行介绍。如图2所示,在图2所示的应用环境中,包括有用户终端100和通信系统200。用户终端100可以通过网络(例如,局域网或者广域网等)与通信系统200进行数据交互。在一种方式中,通信系统200包括有云服务器210、第一网关220、第二网关230以及第三网关240。其中,云服务器210可以作为中转站转发网关发送的数据,并且还可以存储第一网关220、第二网关230以及第三网关240各自的数据,例如,该数据可以包括第一网关220、第二网关230以及第三网关240各自所属的分组以及网络地址等。其中,第一网关220、第二网关230以及第三网关240可以均属于同一个子网络,也可以属于不同的子网络中,还也可以分别位于存在有父子关系的网络中。例如,图2示例性的展示了第三网关240存在的网络为第一网关220以及第二网关230所在网络的父网络。需要说明的是,图2只是示例性的展示一种应用环境,图中的网关数量还可以根据需要进行增加或者减少,而其中的网络的从属关系(父子网络关系)也可以根据需要进行改变。基于上面介绍的应用环境以及系统,下面将结合附图具体描述本申请的各实施例。请参阅图3,本申请实施例提供的一种多网关通信的方法,所述方法包括:步骤s110:第一网关查找通信路径信息,所述通信路径信息包括第一网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径。需要说明的是,第一网关可以理解为欲执行预设操作的网关,第二网关可以理解为后续作为确定的目标通信路径对应的目标网关。在本申请实施例中,每个网关都可以从属于一个网关组。作为一种方式,可以以用户家庭为单位创建一个网关组。在这种方式下,用户可以配置网关与自己的帐号进行关联,以便组件网管组。再者,当有新的网关加入到网关组时,云服务器会为该新的网关分配该网关组中唯一的标识,称之为id。可选的,为了便于进行通信路径的确认,网关组中的每个网关都可以在本地存储有地址表和中转表。其中,地址表用于记录网关所在网关组中其他网关的id以及通信地址;中转表,用于记录网关将消息发送到网关组中其它网关消息发送的通信路径的信息,其中该通信路径的信息包括中转网关的相关信息以及消息传送的时间消耗。可以理解的是,指定通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。通信协议具有层次性、可靠性和有效性。可选的,指定通信协议主要包括tcp/ip协议。作为一种方式,在第一网关欲执行预设的操作,且该预设的操作涉及到其他网关(例如,前述的第二网关)时,预设的操作可以为第一网关根据通信路径向第二网关发送数据,在第一网关需要向第二网关发送数据的时候,第一网关可以先查找它自己本地的通信路径信息,其中,通信路径信息包括第一网关与第二网关之间基于指定通信协议预先建立有通信连接的通信路径,例如,前述的中转表中所存储的通信路径的信息。步骤s120:从所述通信路径中确定与第二网关之间的目标通信路径。在本申请实施例中,可以多种方式来确定与第二网关之间的目标通信路径。作为一种方式,第一网关可以基于通信耗时来确定目标通信路径。在这种方式下,第一网关通过查找自己对应的通信路径信息,也就是查找自己的中转表,比较所有通信路径的长短,其中,通信路径的长短通过中转表中的消息传递耗时计算;选择其中通信耗时最短的通信路径作为目标通信路径。步骤s130:执行预设的操作。需要说明的是,预设的操作为预先设定的网关之间通信的具体操作。作为一种方式,预设的操作可以是第一网关通过所述目标通信路径向目标网关发送数据。本申请实施例提供的一种多网关通信的方法,首先第一网关查找所对应的通信路径信息,然后从所有的通信路径中确定与第二网关之间的目标通信路径,最后通过目标路径向目标网关发送数据。从而缩短了网关之间数据传输耗时;通过建立中转网关传输数据,降低了对云服务器的强依赖性,数据在用户的网络中传输,提升了数据传输的效率,且提升了数据安全性。请参阅图4,本申请实施例提供的一种多网关通信的方法,所述方法包括:步骤s210:第一网关查找通信路径信息,所述通信路径信息包括第一网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径。步骤s220:基于所述通信耗时从所述通信路径中确定与第二网关之间的目标通信路径。作为一种方式,基于所述通信耗时从所述通信路径中确定与第二网关之间的目标通信路径的步骤包括:将第一网关与第二网关之间所有的通信路径中,通信耗时最少的通信路径确定为目标通信路径。其中,将第一网关与第二网关之间的通信路径中,通信耗时最少的通信路径确定为目标通信路径的步骤包括:首先判断第一网关与第二网关之间的通信路径是否要经历中转网关;若是,将所述第一网关与所述中转网关之间的通信耗时,以及所述中转网关与所述第二网关之间的耗时之和作为第一网关与第二网关之间的通信路径的通信耗时;将与所述第二网关之间的通信路径中,对应的通信耗时最少的通信路径确定为目标通信路径。可选的,在前述的预设的操作为发送数据的情况下,第一网关可以去该中转表中进行查询,比较该中转表所有的通信路径中耗时最短的路径发送数据。例如,以网关1作为第一网关向作为第二网关的网关2发送数据为例,在下面这个中转表中,当网关1需要发送数据给网关2时,网关1就会去查自己的中转表,查出发往网关2的消息应该由哪个网关进行中转。如果找到对应的中转,比如网关3,则直接将该消息发给网关3。同理,当网关2需要向网关1发送数据时,网关2查其中的中转表,找到可以由网关3进行中转。网关2便将发送给网关1的数据发送给网关3。网关3收到该数据后,再将数据发送给网关1。示例性的,如上表所示,网关1向网关2发送数据,通过查找网关1的中转表发现,网关1可以通过中转网关3向网关2发送数据,也可以直接自己向网关2发送数据;其中网关1通过中转网关3向网关2发送数据的耗时为10+10=20ms,网关1直接向网关2发送数据的耗时为5ms,通过比较,可以把通信耗时为5ms的通信路径作为目标通信路径。作为一种方式,如果第一网关没有从通信路径中找到与第二网关之间传输数据的目标通信路径,则可以将发送给第二网关的数据发送给云服务器,通过云服务器转发给第二网关,通过这样的方式可以保证网关间数据传输的有效性,防止网关通信过程的中断。步骤s230:若所述第一网关检测到所述第一网关所属的网关组中有更新后的网关时,更新本地存储的所属网关组的网关列表,其中所述网关列表包括每个网关的唯一标识以及对应的ip地址。需要说明的是,在家居系统中,随着用户需求的变化,加入到网关组中的设备随时都在发生改变,所以对应的网关组中网关信息的都需要根据网关组中设备的变化进行更新,比如,突然增加或者删除了一个终端设备,那么在网关组中的网关就要对应更新网关信息。在本实施例中,第一网关可以基于多种方式来进行相关的更新操作。作为一种方式,若第一网关检测到所述第一网关所属的网关组中有更新后的网关时,更新本地存储的所属网关组的网关列表的步骤包括:第一网关接收云服务器发送的所属网关组的网关列表;然后第一网关对接收到的网关列表进行检测,若检测网关列表有更新后的网关时,更新本地存储的所属网关组的网关列表。可选的,网关组中有更新的网关包括以下两种情况,一种是当网关组中有新网关加入或删除的情况,另一种是网关组中有网关的地址更新的情况。这两种情况都会导致云服务器更新网关地址表,并把更新后的网关地址表推送给该网关组中所有的在线网关。当网关组中网关收到云服务器推送的网关地址表时,更新本地网关地址表的内容:如果新增了网关地址项,则尝试与新增的网关建立连接;如果删除了网关地址项,则清除中转表与该网关相关的项;如果变更了网关地址项,则清除中转表与该网关相关的项,并尝试与使用地址建立连接。示例性的,原网关组中,只有网关1与网关2,现在网关3加入了网关组,并告知了云服务器自己的网络地址。这时云服务器接收到网关3的网络地址给网关3分配了一个id为3。然后云服务器更新了网关地址表并将新的网关地址表推送给该网关组中的所有网关。当网关3收到该网关地址表时,发现还有其它的两个网关。于是,它更新其本地的网关地址表,并为每个其它网关在本地的中转表中创建对应的项。当网关1收到该网关地址表时,发现新增了网关3,更新本地的网关地址表,在中转表中增加网关3的地址项。通过实时更新网关地址表和中转表信息,可以保证网关间的实时通信的有效性,也提升了确定通信路径时的时效性,进而提高了数据传输的效率。步骤s240:基于所述更新后的网关的ip地址向所述更新后的网关发送通信连接请求,并基于所述通信连接请求的结果,更新所述第一网关对应的通信路径信息。作为一种方式,基于更新后的网关的ip地址向更新后的网关发送通信连接请求,并基于通信连接请求的结果,更新第一网关对应的通信路径信息的步骤包括:基于所述更新后的网关的ip地址向所述更新后的网关发送通信连接请求,并启动计时器开始计时;若接收到更新后的网关返回的信息,获取接收到所述返回的信息时所述计时器的计时长度,将所述计时长度确定为所述第一网关向所述更新后的网关发送数据的通信耗时;基于所述所述第一网关向所述更新后的网关发送数据的通信耗时更新所述第一网关对应的通信路径信息。作为另一种方式,如果第一网关接收到更新后的网关返回的信息,向更新后的网关返回确认信息,以便更新后的网关确定更新后的网关与第一网关之间的通信耗时,以更新对应的通信路径信息。可以理解的是,第一网关对应更改了自己的地址表后,开始尝试与第二网关建立连接,在尝试连接的过程中,第一网关会向第二网关发送拜访请求,拜访请求内容包括:{第一网关的id,第二网关的id}。第二网关接收到该请求后会向第一网关发送拜访回复,回复内容包括:{网关id,通信耗时}。第一网关接收到第二网关的拜访回复后,又会再给第二网关回复一个拜访确认。示例性的,如下表所示,原网关组中,只有网关1与网关2,现在网关3加入了网关组,并且网关3告知了云服务器自己的网络地址。云服务器接收到网关3的网络地址后,可以进一步的给网关3分配了一个id为3。然后,云服务器更新了网关地址表并将新的网关地址表推送给该网关组中的所有网关。当网关3收到该网关地址表时,发现还有其它的两个网关。于是,网关3会进一步的更新其本地的网关地址表,并为每个其它网关在本地的中转表中创建对应的项,对应的项包括网关id和通信耗时。当网关1收到该网关地址表时,发现新增了网关3,更新本地的网关地址表,在中转表中增加网关3的地址项。网关id网关地址1192.168.1.102192.168.3.443192.168.1.6然后网关1尝试与网关3建立连接。网关1向网关3发送拜访请求,信息包括:{网关1的id,网关3的id}。网关1在发出拜访请求后,就开始计时,等待网关3的拜访回复。网关3收到了该请求之后,网关3查本地中转表,找出其直连的其它网关信息,生成交换表,回复给网关1。交换表包含内容:{网关id,通信耗时}。由于此时,网关3中中转表中尚未有其它网关与之连接。所以该交换表无数据。网关3在发送交换表后就开始计时,等待网关1的拜访确认。网关1收到了网关3的回复后,通过计时器得到与网关3通信的时候间隔,比如5ms,并更新自己的中转表。然后网关1再回复网关3一个确认消息。网关3收到拜访确认后,通过计时器,得到时间间隔,比如8ms,并更新自己的中转表。同样的,网关2也是通过这样的方式去更新自己的中转表。当网关2收到该网关地址表时,发现新增了网关3,于是更新自己的本地的网关地址表,在中转表中增加网关3的地址项;然后尝试与网关3建立连接。网关2向网关3发送拜访请求,信息包括:{网关2的id,网关3的id}。网关2在发出拜访请求后,就开始计时,等待网关3的拜访回复。网关3收到了该请求之后,网关3查本地中转表,找出其直连的其它网关信息,其中有直接通信的网关1,并生成交换表发送给网关2。网关3在发送交换表给网关2后就开始计时,等待网关2的拜访确认。网关2收到了网关3的回复后,通过计时器得到与网关3通信的时候间隔,比如6ms,并更新自己的中转表。然后网关2再回复网关3一个确认消息。网关3收到拜访确认后,通过计时器,得到时间间隔,比如3ms,并更新自己的中转表。由于网关3的中有中转表项发生变更,于是网关3将变化的数据打包成交换表转发给其所有直接连接的网关。于是网关3给网关1发送了交换表更新请求。网关1收到该交换表更新请求后,更新自己的中转表。所有网关都通过更新自己的中转表,建立彼此之间的连接,于是,网关1、网关2、网关3的中转表中都有了数据发往其它网关的路径。步骤s250:所述第一网关向建立了通信连接的网关同步所述更新后的通信路径信息,以便与所述第一网关建立了通信连接的网关更新对应的通信路径信息。可以理解的是,第一网关和第二网关建立连接之后,两两网关之间便可以发送数据了。步骤s260:执行预设的操作。本申请实施例提供的一种多网关通信的方法,首先第一网关尝试与第二网关建立连接,然后第一网关和第二网关根据彼此之间发送拜访请求、拜访回复和拜访确认消息更新自己的网关列表,确认彼此之间传输数据的通信路径,再通过比较通信路径的通信耗时,选择通信耗时最少的路径为目标路径,最后再根据目标路传输数据。从而缩短了网关之间数据传输耗时;通过建立中转网关传输数据,降低了网关对云服务器的强依赖性,并且建立了中转网关后,网关不会再通过云服务器转发数据,数据在用户的网络中传输,提升了数据传输的安全性。请参阅图5,本申请实施例提供的一种多网关通信的方法,所述方法包括:步骤s310:云服务器检测到有网关组中的网关更新后,更新所述网关组的网关列表。步骤s320:将所述更新后的网关列表发送给所述网关组中的网关,以便所述网关组的中的网关尝试与所述更新后的网关列表中的网关基于指定通信协议建立通信连接,以生成每个网关对应的通信路径信息,以便每个所述网关基于所述通信路径信息与其他网关进行数据传输。需要说明的是,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径。本申请实施例提供的一种多网关通信的方法,云服务器检测到有网关组中的网关更新时,更新网关组的列表,网关组中的网关根据更新后的网关组列表建立连接,生成每个网关对应的通信路径信息。有利于不在同一网络区域中的网关建立连接,保证了网络数据传输的通畅性。请参阅图6,本申请实施例提供的一种多网关通信的方法,应用于通信系统,所述通信系统包括第一网关、云服务器以及第二网关,所述方法包括:步骤s410:云服务器向网关组中的所有网关推送网关列表,其中所述网关列表包括所述网关组中的每个网关的唯一标识以及对应的ip地址。步骤s420:所述网关组中的第一网关接收所述网关列表后,检测是否有网关更新。步骤s430:若所述第一网关基于所述网关列表检测到所述第一网关所属的网关组中有更新后的网关时,更新本地存储的所属网关组的网关列表。可选的,网关组中有更新的网关包括以下两种情况,一种是当网关组中有新网关加入或删除的情况,另一种是网关组中有网关的地址更新的情况。这两种情况都会导致云服务器更新网关地址表,并把更新后的网关地址表推送给该网关组中所有的在线网关。当网关组中网关收到云服务器推送的网关地址表时,更新本地网关地址表的内容:如果新增了网关地址项,则尝试与新增的网关建立连接;如果删除了网关地址项,则清除中转表与该网关相关的项;如果变更了网关地址项,则清除中转表与该网关相关的项,并尝试与使用地址建立连接。步骤s440:所述第一网关基于所述更新后的网关的ip地址向所述更新后的网关发送通信连接请求,并基于所述通信连接请求的结果,更新所述第一网关对应的通信路径信息。需要说明的是,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径。步骤s450:所述第一网关若接收所述网关组中的其他网关发送的通信连接请求,与发送所述通信连接请求的其他网关建立通信连接,以便所述其他网关更新对应的通信路径信息。步骤s460:所述第一网关基于更新后的通信路径信息确定与所述网关组中的第二网关的目标通信路径。其中,确定目标通信路径的策略包括:首先判断第一网关与第二网关之间的通信路径是否要经历中转网关;若是,将所述第一网关与所述中转网关之间的通信耗时,以及所述中转网关与所述第二网关之间的耗时之和作为第一网关与第二网关之间的通信路径的通信耗时;将与所述第二网关之间的通信路径中,对应的通信耗时最少的通信路径确定为目标通信路径。步骤s470:所述第一网关基于所述目标通信路径向所述第二网关发送数据。本申请实施例提供的一种多网关通信的方法,云服务器向网关组中的所有网关推送网关列表,网关组中的第一网关接收网关列表后,检测是否有网关更新。若第一网关基于网关列表检测到所属的网关组中有更新后的网关时,更新本地存储的所属网关组的网关列表。然后第一网关基于更新后的网关的ip地址向更新后的网关发送通信连接请求,并基于通信连接请求的结果,更新对应的通信路径信息。最后第一网关基于更新后的通信路径信息确定与网关组中的第二网关的目标通信路径,第一网关基于目标通信路径向第二网关发送数据。通过网关自组网建立中转网关来实现网络间的数据传输,降低了对云服务器的强依赖性,并且数据在用户的网络中传输,提升了数据传输的安全性。请参阅图7,本申请实施例提供的一种多网关通信的装置500,所述装置500包括:信息查找单元510、路径选择单元520以及动作执行单元530。信息查找单元510,用于第一网关查找通信路径信息。作为一种方式,所述通信路径信息包括第一网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,并且所述通信路径为网关所对应的本地通信路径。在这种方式下,信息查找单元510具体用于第一网关查找自己所对应的通信路径,以便第一网关向第二网关传输数据。路径选择单元520,用于从所述通信路径中确定与第二网关之间的目标通信路径。作为一种方式,所述目标通信路径为网关之间进行数据传输耗时最短的通信路径。在这种方式下,路径选择单元520具体用于第一网关通过查找自己所有进行数据传输的通信路径,通过比较,选择与通信网关之间通信耗时最少的通信路径作为目标通信路径。动作执行单元530,用于执行预设的操作。可选的,所述预设操作包括:第一网关基于目标通信路径向第二网关发送数据。请参阅图8,本申请实施例提供的一种多网关通信的装置600,所述装置600包括:网关检测单元610以及网关通信配置单元620。网关检测单元610,用于检测到有网关组中的网关更新后,更新所述网关组的网关列表。作为一种方式,网关列表包括网关地址表和网关中转表。所述网关检测单元610具体用于检测网关组中是否有网关更新,网关更新的情况有多种,判断若有网关更新则更新网关组中所有网关的网关信息。网关通信配置单元620,用于将所述更新后的网关列表发送给所述网关组中的网关,以便所述网关组的中的网关尝试与所述更新后的网关列表中的网关基于指定通信协议建立通信连接,以生成每个网关对应的通信路径信息,以便每个所述网关基于所述通信路径信息与其他网关进行数据传输,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径。需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。请参阅图9,本申请实施例提供的一种多网关通信的系统700,所述通信系统700包括:云服务器710、第一网关720以及第二网关730。云服务器710,用于向网关组中的所有网关推送网关列表。第一网关720,用于基于所网关列表检测所属网关组中是否有网关更新;若检测到所述所属网关组中有网关更新,更新本地存储的所属网关组的网关列表。用于基于所述更新后的网关的ip地址向所述更新后的网关发送通信连接请求,并基于所述通信连接请求的结果,更新所述第一网关720对应的通信路径信息,所述通信路径信息包括所对应的网关与其他网关之间基于指定通信协议预先建立有通信连接的通信路径,所述通信路径为网关所对应的本地通信路径;以及用于若接收所述网关组中的其他网关发送的通信连接请求,与发送所述通信连接请求的其他网关建立通信连接,以便所述其他网关更新对应的通信路径信息。还用于基于更新后的通信路径信息确定与所述网关组中的第二网关730的目标通信路径。第二网关730,用于接收所述第一网关720基于所述目标通信路径发送的数据。下面将结合图10对本申请提供的一种网关进行说明。本发明实施例提供了一种网关800,包括:处理器810、通信模块820、存储器830和总线。处理器810、通信模块820和存储器830通过所述总线相互连接并完成相互间的通信。所述总线可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中:存储器830,用于存放程序。具体地,存储器830可用于存储软件程序以及各种数据。存储器830可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序程序可以包括程序代码,程序代码包括计算机操作指令。除了存放程序之外,存储器830还可以暂存通信模块820需要发送的消息等。存储器830可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。处理器810用于执行存储器830存放的程序。所述程序被所述处理器执行时实现上述各实施例的多网关通信的方法的步骤。下面将结合图11对本申请提供的一种服务器进行说明。本发明实施例提供了一种跨子网络的多网关通信的服务器,该跨子网络的多网关通信服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的多网关通信的方法。存储器可用于存储程序以及模块,处理器通过运行存储在存储器的程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。图11是本发明实施例提供的一种跨子网络的多网关通信的服务器的硬件结构框图。如图11所示,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(processingunits,cpu)1110(处理器1110可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器1130,一个或一个以上存储应用程序1123或数据1122的存储介质1120(例如一个或一个以上海量存储设备)。其中,存储器1130和存储介质1120可以是短暂存储或持久存储。存储在存储介质1120的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器1110可以设置为与存储介质1120通信,在服务器1100上执行存储介质1120中的一系列指令操作。服务器1100还可以包括一个或一个以上电源1160,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1140,和/或,一个或一个以上操作系统1121,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。输入输出接口1140可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1100的通信供应商提供的无线网络。在一个实例中,输入输出接口1140包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1140可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述跨子网络的多网关通信的服务器的结构造成限定。例如,服务器1100还可包括比图10中所示更多或者更少的组件,或者具有与图11所示不同的配置。本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述多网关通信的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。综上所述,本申请实施例提供的一种多网关通信的方法、装置以及信息系统,云服务器向网关组中的所有网关推送网关列表,网关组中的第一网关接收网关列表后,检测是否有网关更新。若第一网关基于网关列表检测到所属的网关组中有更新后的网关时,更新本地存储的所属网关组的网关列表。然后第一网关基于更新后的网关的ip地址向更新后的网关发送通信连接请求,并基于通信连接请求的结果,更新对应的通信路径信息。最后第一网关基于更新后的通信路径信息确定与网关组中的第二网关的目标通信路径,第一网关基于目标通信路径向第二网关发送数据。通过建立中转网关传输数据,降低了网关对云服务器的强依赖性,并且建立了中转网关后,网关不会再通过云服务器转发数据,数据在用户的网络中传输,提升了数据传输的安全性。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1