CN111510492A - 一种实现断线重连的数据处理方法、装置、设备及系统 - Google Patents

一种实现断线重连的数据处理方法、装置、设备及系统 Download PDF

Info

Publication number
CN111510492A
CN111510492A CN202010294433.8A CN202010294433A CN111510492A CN 111510492 A CN111510492 A CN 111510492A CN 202010294433 A CN202010294433 A CN 202010294433A CN 111510492 A CN111510492 A CN 111510492A
Authority
CN
China
Prior art keywords
node
sending
preset
connection
received
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
Application number
CN202010294433.8A
Other languages
English (en)
Inventor
晏意林
陈元丰
黄高峰
史俊杰
谢翔
李升林
孙立林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juzix Technology Shenzhen Co ltd
Original Assignee
Juzix Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juzix Technology Shenzhen Co ltd filed Critical Juzix Technology Shenzhen Co ltd
Priority to CN202010294433.8A priority Critical patent/CN111510492A/zh
Publication of CN111510492A publication Critical patent/CN111510492A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本说明书提供了一种实现断线重连的数据处理方法、装置、设备及系统。所述方法由多个节点共同执行,包括:第一节点判断在预设第一超时时间内是否收到第二节点发送的目标消息;确定没有收到时,向所述第二节点发送心跳包;检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;向所述第二节点发送重建连接的请求;基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;确定重建成功时,接收所述第二节点发送的所述目标消息。利用本说明书实施例可以有效解决安全多方计算过程中各个节点间网络中断的问题,从而保证计算正常运行的同时,减少资源浪费。

Description

一种实现断线重连的数据处理方法、装置、设备及系统
技术领域
本申请涉及网络通信技术领域,特别涉及一种实现断线重连的数据处理方法、装置、设备及系统。
背景技术
大数据时代,海量数据的交叉计算可以为科研、医疗、金融等提供更好支持。许多企业或组织出于信息安全或利益的考虑,内部数据不对外开放,使得数据的价值无法体现。MPC(Secure Multi-Party Compute,安全多方计算)的提出为解决这一难题提供了保障。
MPC的运行模式是多方共同执行同一程序。例如,三方计算时,三个节点中的各个节点都会启动同一程序一起运行。这样,在MPC的执行过程中,就存在各个节点与其他节点之间的交互。然而,在交互过程中,参与MPC的计算节点中可能存在网络不稳定(如弱网环境等)的节点,甚至是恶意节点对网络进行干预(如在执行过程中拔掉网线等),从而造成计算过程中的网络异常(如抖动、延迟、中断等),甚至导致计算的数据出错。目前,当MPC执行过程中出现网络中断时,大部分是不进行处理、简单的退出,或者是无穷的等待,可能会导致资源浪费或计算出错。
因此,业内亟需一种可以有效解决MPC执行过程中网络中断的解决方案。
发明内容
本说明书实施例提供了一种实现断线重连的数据处理方法、装置、设备及系统,可以有效解决安全多方计算过程中各个节点间网络中断的问题,从而保证计算正常运行的同时,减少资源浪费。
本说明书提供的实现断线重连的数据处理方法、装置、设备及系统是包括以下方式实现的:
一种实现断线重连的数据处理方法,由多个节点共同执行,所述方法包括:
所述多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
确定没有收到时,向所述第二节点发送心跳包;
检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
向所述第二节点发送重建连接的请求;
基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
确定重建成功时,接收所述第二节点发送的所述目标消息。
一种实现断线重连的数据处理方法,由多个节点共同执行,所述方法包括:
所述多个节点中第二节点向所述多个节点中第一节点发送目标消息;
所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
确定没有收到时,向所述第一节点发送心跳包;
检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
向所述第一节点发送重建连接的请求;
基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
确定重建成功时,向所述第一节点发送所述目标消息。
一种实现断线重连的数据处理装置,由多个节点共同执行,所述装置包括:
第一判断模块,用于所述多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
第一发送模块,用于确定没有收到时,向所述第二节点发送心跳包;
第一检测模块,用于检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
第一请求模块,用于向所述第二节点发送重建连接的请求;
第一确定模块,用于基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
第一接收模块,用于确定重建成功时,接收所述第二节点发送的所述目标消息。
一种实现断线重连的数据处理装置,由多个节点共同执行,所述装置包括:
第二发送模块,用于所述多个节点中第二节点向所述多个节点中第一节点发送目标消息;
第二判断模块,用于所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
第三发送模块,用于确定没有收到时,向所述第一节点发送心跳包;
第二检测模块,用于检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
第二请求模块,用于向所述第一节点发送重建连接的请求;
第二确定模块,用于基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
第四发送模块,用于确定重建成功时,向所述第一节点发送所述目标消息。
一种实现断线重连的数据处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
确定没有收到时,向所述第二节点发送心跳包;
检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
向所述第二节点发送重建连接的请求;
基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
确定重建成功时,接收所述第二节点发送的所述目标消息。
一种实现断线重连的数据处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
多个节点中第二节点向所述多个节点中第一节点发送目标消息;
所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
确定没有收到时,向所述第一节点发送心跳包;
检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
向所述第一节点发送重建连接的请求;
基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
确定重建成功时,向所述第一节点发送所述目标消息。
一种实现断线重连的数据处理系统,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中任意一个方法实施例方法的步骤。
本说明书提供的一种实现断线重连的数据处理方法、装置、设备及系统。一些实施例中在MPC执行过程中,通过对节点间通信进行超时检测、心跳检测,可以快速实现对节点间网络中断的判断,从而可以提高对网络中断的处理效率。在确定网络中断情况下,通过重连机制重新建立节点间的通信连接,可以在安全多方计算过程中存在网络不稳定节点或者恶意节点对网络进行干预时,保证计算正常运行、减少计算数据出错的同时,减少资源浪费。采用本说明书提供的实施方案,可以有效解决安全多方计算过程中各个节点间网络中断的问题,从而保证计算正常运行的同时,减少资源浪费。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,并不构成对本说明书的限定。在附图中:
图1是本说明书提供的三方计算中节点之间交互的一个实施例的流程示意图;
图2是本说明书提供的实现断线重连的数据处理方法的一个实施例的流程示意图;
图3是本说明书提供的实现断线重连的数据处理方法的另一个实施例的流程示意图;
图4是本说明书提供的实现断线重连的数据处理方法的一个具体实施例的流程示意图;
图5是本说明书提供的一种实现断线重连的数据处理装置的一个实施例的模块结构示意图;
图6是本说明书提供的另一种实现断线重连的数据处理装置的一个实施例的模块结构示意图;
图7是本说明书提供的一种实现断线重连的数据处理服务器的一个实施例的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
MPC是解决一组互不信任的参与方之间保护隐私的协同计算问题。其可以抽象理解为:各个参与方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,计算公共函数,且在整个函数计算完成时,各个参与方只知道计算结果,并不知道其他参与方的数据以及计算过程的中间数据。
现有技术中基于C/S(Client/Server、客户机/服务器)、B/S(Browser/Server,浏览器/服务器)等的应用中基本都会支持断线重连机制,但其只适用于两方之间的交互,如客户机与服务器、浏览器与服务器等,并不适用于多方同时执行同一程序过程中,如MPC OP的执行过程中。这样,当参与MPC的计算节点中存在网络不稳定(弱网环境)的节点,甚至是恶意节点对网络进行干预(如在执行过程中拔掉网线等)时,就可能会造成计算过程中的网络异常(抖动、延迟、中断等),甚至导致计算的数据出错。为此,本说明书提供一种实现断线重连的数据处理方法,其可以适用于多方同时执行同一程序,从而可以有效解决安全多方计算过程中各个节点间网络中断的问题。
由于MPC OP执行过程中,各方之间对断线重连的数据处理过程均是一致的。为了便于理解,本说明书实施例中以三方计算(简称“3PC”)中节点之间的交互为例进行说明,其它节点间的处理过程类似,对此不再赘述。如图1所示,P0、P1、P2表示参与计算的3个节点,节点间的通信方式可以采用传输控制协议(Transmission Control Protocol,TCP)长连接,此处可以建立3个通信信道。MPC OP的过程涉及到节点之间的两两交互,每个节点可以包括一个服务端和两个客户端,用于MPC OP之间的交互。其中,OP为Operation的缩写,表示一个算子,比如矩阵乘法、矩阵减法等。MPC OP表示在MPC执行过程中,多方同时执行同一个安全多方计算算子。TCP是全双工(双向收发)的,即一条通信信道上可以进行接收也可以进行发送。
一些实施场景中,在执行MPC OP的过程中,节点间交互时会存在大量的本地计算与网络通信(即网络IO的读与写),使得在发送(写)、接收(读)的过程中可能存在断连的情况。本说明书提供一种实现断线重连的数据处理方法,可以有效解决安全多方计算过程中各个节点间网络中断的问题,从而保证计算正常运行的同时,减少资源浪费。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图2是本说明书提供的实现断线重连的数据处理方法的一个实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
需要说明的是,下述实施例描述并不对基于本说明书的其他可扩展到的应用场景中的技术方案构成限制。具体的一种实施例如图2所示,本说明书提供的一种实现断线重连的数据处理方法的一种实施例中,所述方法可以包括以下步骤。
S0:所述多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息。
其中,第一节点、第二节点可以是多个节点中的任意两个进行交互的节点,如,在3PC中,第一节点可以为P0,第二节点可以为P1,或者第一节点可以为P1,第二节点可以为P2等。“第一”、“第二”只是用于区别不同节点。预设第一超时时间是预先设置的时间,可以用于判断是否超时。本说明书一个实施例中,每个节点可以在每一次接收或发送信息前,可以预先设置一个超时时间,如2s、5s等。需要说明的是,本说明书实施例中,信息接收或发送是同步非阻塞的。同一节点在每一次接收或发送信息前预先设置超时时间可以相同,也可以不同,不同节点在每一次接收或发送信息前预先设置超时时间可以相同,也可以不同,具体可以根据实际场景设置,本说明书对此不作限定。其中,超时时间的设定可以通过定时器或计时器等实现。目标消息可以包括节点间进行正常通信的数据。
本说明书一个实施例中,每个节点可以包括一个服务端和两个客户端,其中,所述服务端可以用于接收目标消息,还可以用于发送心跳包;所述客户端可以用于发送目标消息,还可以用于接收心跳包。
本说明书一个实施例中,第一节点中服务端在接收信息前,可以预先设置一个超时时间,然后进行数据接收,并判断在超时时间内是否收到第二节点中客户端发送的目标消息。例如,在3PC中,第一节点为P0,第二节点为P1,P0包括的服务端在接收信息前,可以先设置超时时间T1,然后进行数据接收,并判断在T1内是否收到P1中客户端发送的目标消息。再如,在3PC中,第一节点为P1,第二节点为P2,P1包括的服务端在接收信息前,可以先设置超时时间T2,然后进行数据接收,并判断在T2内是否收到P2中客户端发送的目标消息。
本说明书实施例中,节点在收发数据前,通过预先设置超时时间,可以为后续检测网络中断提供保障。
S2:确定没有收到时,向所述第二节点发送心跳包。
其中,心跳包是指在客户端和服务器间定时通知对方自己状态的一个自定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。心跳包主要可以用于检测节点间连接是否中断(可以简称“心跳检测”)。需要说明的是,本说明书对心跳包中具体包括哪些内容不作限定。一些实施场景中,心跳包一般是很小的包,或者只包含包头的一个空包。
由于第一节点确定在预设第一超时时间内没有收到第二节点发送的目标消息的原因可能是网络延迟导致,所以在预设超时时间内没有收到目标消息并不能说明节点间的连接已经中断。
为了检测节点间连接是否中断,本说明书一个实施例中,第一节点确定在预设第一超时时间内没有收到第二节点发送的目标消息时,可以向第二节点发送心跳包来检测第一节点与第二节点间的连接是否中断。其中,向第二节点发送心跳包可以是第一节点包括的服务端发送,也可以是第一节点包括的客户端发送。例如一些实施场景中,在收发超时时,可以由超时方发起PING消息并接收对端响应的PONG消息进行心跳检测。如果超时方发起PING消息后,接收到对端响应的PONG消息,说明心跳检测成功,节点间可以正常通信;如果超时方发起PING消息后,没有接收到对端响应的PONG消息,说明心跳检测失败。
本说明书一个实施例中,所述向所述第二节点发送心跳包,可以包括:周期性的向所述第二节点发送心跳包。其中,发送心跳包的周期可以根据实际场景设定,本说明书对此不作限定。例如,在3PC中,第一节点为P0,第二节点为P1,P0在T1内没有收到P1发送的目标消息时,可以每隔T2时间向P1发送一次心跳检测。
由于可能是网络延迟导致第一节点在预设超时时间内没有收到目标消息,所以,本说明书一个实施例中,每次向第二节点发送心跳包前,可以包括:检测是否收到所述目标消息;确定未收到时,向所述第二节点发送心跳包。本说明书一个实施例中,如果第一节点确定在预设第一超时时间内收到第二节点发送的目标消息,或者每次向第二节点发送心跳包前收到目标消息,则可以说明第一节点与第二节点间可以进行正常通信,不需要进行心跳检测,从而可以减少资源浪费。例如,在3PC中,第一节点为P0,第二节点为P1,P0在T1内没有收到P1发送的目标消息时,可以每隔T2时间向P1发送一次心跳检测,在每隔T2向P1发送心跳包前可以先检测是否收到目标消息,如果收到,则说明P0和P1间在超时时间内有正常通信,停止向P1发送心跳包。如果每隔T2向P1发送心跳包前没有收到目标消息,则可以向P1继续发送心跳检测,直至发送心跳包的次数大于第一预设次数。
S4:检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接。
其中,第一预设次数可以根据实际场景进行设置,如可以是5次、10次等,预先设置发送心跳包次数主要可以用于防止由于对方短时间内繁忙没有及时返回应答、或网络延迟等造成的误判。与所述第二节点的第一连接可以理解为是第一节点与第二节点间的通信链路,如第一节点中服务端与第二节点中客户端之间的通信链路。
本说明书一个实施例中,在发送心跳包前,第一节点可以预先设定发送心跳包次数的最大值,以便检测发送心跳包的次数大于设定发送心跳包次数的最大值时是否收到目标消息。
本说明书一个实施例中,当检测到发送心跳包的次数大于设定发送心跳包次数的最大值还没有收到目标消息时,说明多次心跳检测均失败,第一节点与第二节点间的通信链路已经中断。此时,可以关闭本端(socket),即关闭与第二节点的第一连接,释放资源。例如,预先设定发送心跳包次数的最大值为N,第一节点可以检测自身发送心跳包的次数是否大于N,如果小于N且未收到目标消息,则第一节点可以继续向第二节点发送心跳包,直至发送心跳包的次数大于N未收到目标消息时,关闭与第二节点的第一连接。
S6:向所述第二节点发送重建连接的请求。
本说明书一个实施例中,第一节点关闭与第二节点的第一连接后,可以向第二节点发送重建连接的请求,以便重新接收第二节点发送的目标消息。其中,向第二节点发送重建连接请求的可以是第一节点包括的客户端发起的。
S8:基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功。
其中,所述第一预设重建成功条件可以包括在第一预设请求次数内收到所述第二节点对重建连接请求的响应信息。第一预设请求次数指第一节点向第二节点发送重建连接请求的次数,其可以根据实际场景进行设定,本说明书对此不作限定。响应信息可以理解为第二节点接收第一节点发送的请求后向第一节点返回的信息,如可以是表示收到请求的应答信息,该应答信息可以包括字符、数字等。与所述第二节点的第二连接可以理解为是第一节点与第二节点间的通信链路,如第一节点中服务端与第二节点中客户端之间重新建立的通信链路。
本说明书一个实施例中,所述基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功,可以包括:判断在向所述第二节点发送重建连接请求后的第一预设时间内是否收到所述第二节点对重建连接请求的响应信息;若收到,则确定与所述第二节点的第二连接重建成功;否则,判断向所述第二节点发送重建连接请求的次数是否小于第一预设请求次数;确定小于所述第一预设请求次数时,重新向所述第二节点发送重建连接的请求;相应的,基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功。其中,第一预设时间可以理解为预先设置的重建超时时间,可以根据实际场景设定,对此不作限定。
例如一些实施场景中,在向第二节点发送重建连接的请求前,可以预先设置重建请求次数N1以及每次重建超时时间T3,然后向第二节点发送重建连接的请求,并判断在T3内是否收到第二节点返回的响应信息,若收到,则说明重建连接成功。一些实施场景中,若在T3内没有收到第二节点返回的响应信息,则可以判断发送重建连接的请求的次数是否小于N1,如果小于N1,则可以重新发送重建连接的请求,并判断在T3内是否收到第二节点返回的响应信息,若收到,则说明重建连接成功,若没收到,则重新判断发送重建连接的请求的次数是否小于N1,如此循环,直至发送重建连接的请求的次数等于N1,且在T3内没收到第二节点返回的响应信息时,说明重建连接失败。
S10:确定重建成功时,接收所述第二节点发送的所述目标消息。
本说明书一个实施例中,在重建连接成功时,第一节点可以重新接收第二节点发送的目标消息。本说明书另一个实施例中,在重建连接失败时,第一节点可以释放节点资源,从而减少资源浪费,提高处理效率。
本说明书一个实施例中,在第一节点成功接收目标消息后,还可以进行空闲检测。空闲检测可以在网络空闲时对节点间通信链路进行检测,如果检测到线路中断,可以提前建立连接,不需要等到真正使用链路时再重建,从而可以对提高断线重连的处理效率。例如,一个MPC OP,如果输入数据非常大,其本地计算也需要时间,这样在本地计算的这段时间内,其网络是空闲的,此时是可以做一些检测的,如果线路中断了,就可以提前重建连接,而不用等到真正使用链路时再来重建。空闲检测可以是一个节点中客户端主动向另一个节点中服务端发送心跳包进行检测。
空闲检测可以在每次收发成功后进行。本说明书一个实施例中,在重建连接成功,第一节点接收第二节点发送的目标消息后,还可以包括:记录成功接收所述目标消息时所对应的第一时间,并向所述第二节点发送表示成功接收目标消息的信息;基于所述第一时间的第一预设空闲时间后,向所述第二节点发送空闲检测心跳包。其中,第一时间可以用于表示成功接收目标消息时系统对应的时间。第一预设空闲时间可以是从成功接收目标消息时系统对应的时间开始计时到经过T0时间为止的时间段,T0可以根据实际场景进行设置。例如一些实施场景中,预先设定第一预设空闲时间为T0,则从第一节点成功接收第二节点发送的目标消息后开始计时,经过T0时间后,第一节点中的客户端可以主动向第二节点的服务端发送心跳包,从而判断第一节点与第二节点间的连接是否还存活,进而决定是否要重连接。
本说明书实施例中,在MPC执行过程中,通过对节点间通信进行超时检测、心跳检测,可以快速实现对节点间网络中断的判断,从而可以提高对网络中断的处理效率。在确定网络中断情况下,通过重连机制重新建立节点间的通信连接,可以在存在网络不稳定节点或者恶意节点对网络进行干预时,保证计算正常运行、减少计算数据出错的同时,减少资源浪费。
上述实施例是从多个节点中第一节点一侧(接收端)进行描述说明,本说明书实施例中还提供一种实施例,其可以从多个节点中第二节点一侧(发送端)进行描述说明,具体的,如图3所示,一种实现断线重连的数据处理方法的一种实施例中,所述方法可以包括以下步骤。
S20:所述多个节点中第二节点向所述多个节点中第一节点发送目标消息。
其中,第一节点、第二节点可以是多个节点中的任意两个进行交互的节点,如,在3PC中,第一节点可以为P0,第二节点可以为P1,或者第一节点可以为P1,第二节点可以为P2等。“第一”、“第二”只是用于区别不同节点。目标消息可以包括节点间进行正常通信的数据。
本说明书一个实施例中,每个节点可以包括一个服务端和两个客户端,其中,所述服务端可以用于接收目标消息,还可以用于发送心跳包;所述客户端可以用于发送目标消息,还可以用于接收心跳包。
本说明书一个实施例中,在执行MPC OP的过程中,第二节点可以向第一节点发送目标消息。
S22:所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息。
其中,预设第二超时时间是预先设置的时间,可以用于判断是否超时。本说明书一个实施例中,每个节点可以在每一次接收或发送信息前,可以预先设置一个超时时间,如2s、5s等。需要说明的是,本说明书实施例中,信息接收或发送是同步非阻塞的。同一节点在每一次接收或发送信息前预先设置超时时间可以相同,也可以不同,不同节点在每一次接收或发送信息前预先设置超时时间可以相同,也可以不同,具体可以根据实际场景设置,本说明书对此不作限定。其中,超时时间的设定可以通过定时器或计时器等实现。
本说明书一个实施例中,第二节点中客户端在发送信息前,可以预先设置一个超时时间,然后进行数据发送,并判断在超时时间内是否收到第一节点发送的表示成功接收目标消息的信息。需要说明的是,第一节点在接收到第二节点发送的目标消息后,会向第二节点发送表示成功接收目标消息的信息,其中,表示成功接收目标消息的信息可以通过字符、数字等表示。例如,在3PC中,第一节点为P0,第二节点为P1,P1包括的客户端在发送信息前,可以先设置超时时间T1,然后进行数据发送,并判断在T1内是否收到P0中服务端返回的表示成功接收目标消息的信息。再如,在3PC中,第一节点为P1,第二节点为P2,P2包括的客户端在发送信息前,可以先设置超时时间T2,然后进行数据发送,并判断在T2内是否收到P1中服务端返回的表示成功接收目标消息的信息。
本说明书实施例中,节点在收发数据前,通过预先设置超时时间,可以为后续检测网络中断提供保障。
S24:确定没有收到时,向所述第一节点发送心跳包。
其中,心跳包是指在客户端和服务器间定时通知对方自己状态的一个自定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。心跳包主要可以用于检测节点间连接是否中断(可以简称“心跳检测”)。需要说明的是,本说明书对心跳包中具体包括哪些内容不作限定。一些实施场景中,心跳包一般是很小的包,或者只包含包头的一个空包。
由于第二节点确定在预设第二超时时间内没有收到第一节点发送的表示成功接收目标消息的信息的原因可能是网络延迟导致,所以在预设超时时间内没有收到表示成功接收目标消息的信息并不能说明节点间的连接已经中断。
为了检测节点间连接是否中断,本说明书一个实施例中,第二节点确定在预设第二超时时间内没有收到第一节点发送的表示成功接收目标消息的信息时,可以向第一节点发送心跳包来检测第一节点与第二节点间的连接是否中断。例如一些实施场景中,在收发超时时,可以由超时方发起PING消息并接收对端响应的PONG消息进行心跳检测。如果超时方发起PING消息后,接收到对端响应的PONG消息,说明心跳检测成功,节点间可以正常通信;如果超时方发起PING消息后,没有接收到对端响应的PONG消息,说明心跳检测失败。
本说明书一个实施例中,所述向所述第一节点发送心跳包,可以包括:周期性的向所述第一节点发送心跳包。其中,发送心跳包的周期可以根据实际场景设定,本说明书对此不作限定。例如,在3PC中,第一节点为P0,第二节点为P1,P1在T1内没有收到P0返回的表示接收目标消息成功的信息时,可以每隔T2时间向P0发送一次心跳检测。
由于可能是网络延迟导致第二节点在预设超时时间内没有收到表示第一节点接收目标消息成功的信息,所以,本说明书一个实施例中,每次向所述第一节点发送心跳包前,可以包括:检测是否收到所述表示成功接收目标消息的信息,确定未收到时,向所述第一节点发送心跳包。本说明书一个实施例中,如果第二节点确定在预设第二超时时间内收到第一节点发送的表示第一节点接收目标消息成功的信息,或者每次向第二节点发送心跳包前收到表示第一节点接收目标消息成功的信息,则可以说明第一节点与第二节点间可以进行正常通信,不需要进行心跳检测,从而可以减少资源浪费。例如,在3PC中,第一节点为P0,第二节点为P1,P2在T1内没有收到P0发送的表示接收目标消息成功的信息时,可以每隔T2时间向P0发送一次心跳检测,在每隔T2向P0发送心跳包前可以先检测是否收到表示第一节点接收目标消息成功的信息,如果收到,则说明P0和P1间在超时时间内有正常通信,停止向P1发送心跳包。如果每隔T2向P0发送心跳包前没有收到目标消息,则可以向P0继续发送心跳检测,直至发送心跳包的次数大于第二预设次数。
需要说明的是,第二节点向第一节点发送心跳包的过程与第一节点向第二节点发送心跳包的过程类似,相似之处可以相互参照,对此不作赘述。
S26:检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接。
其中,第二预设次数可以根据实际场景进行设置,如可以是5次、10次等,预先设置发送心跳包次数主要可以用于防止由于对方短时间内繁忙没有及时返回应答、或网络延迟等造成的误判。与所述第一节点的第三连接可以理解为是第二节点与第一节点间的通信链路,如第二节点中客户端与第一节点中服务端之间的通信链路。
本说明书一个实施例中,在发送心跳包前,第二节点可以预先设定发送心跳包次数的最大值,以便检测发送心跳包的次数大于设定发送心跳包次数的最大值时是否收到表示成功接收目标消息的信息。
本说明书一个实施例中,当检测到发送心跳包的次数大于设定发送心跳包次数的最大值还没有收到表示成功接收目标消息的信息时,说明多次心跳检测均失败,第一节点与第二节点间的通信链路已经中断。此时,可以关闭本端(socket),即关闭与第一节点的第三连接,释放资源。例如,预先设定发送心跳包次数的最大值为N,第二节点可以检测自身发送心跳包的次数是否大于N,如果小于N且未收到第一节点发送的表示成功接收目标消息的信息,则第二节点可以继续向第一节点发送心跳包,直至发送心跳包的次数大于N未收到第一节点发送的表示成功接收目标消息的信息时,关闭与第一节点的第三连接。
S28:向所述第一节点发送重建连接的请求。
本说明书一个实施例中,第二节点关闭与第一节点的第三连接后,可以向第一节点发送重建连接的请求,以便重新向第一节点发送目标消息。其中,向第一节点发送重建连接请求的可以是第二节点包括的客户端发起的。
S30:基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功。
其中,所述第二预设重建成功条件包括在第二预设请求次数内收到所述第一节点对重建连接请求的响应信息。第二预设请求次数指第二节点向第一节点发送重建连接请求的次数,其可以根据实际场景进行设定,本说明书对此不作限定。响应信息可以理解为第一节点接收第二节点发送的请求后向第二节点返回的信息,如可以是表示收到请求的应答信息,该应答信息可以包括字符、数字等。与所述第一节点的第四连接可以理解为是第二节点与第一节点间的通信链路,如第二节点中客户端与第一节点中服务端之间重新建立的通信链路。
本说明书一个实施例中,所述基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功,可以包括:判断在向所述第一节点发送重建连接请求后的第二预设时间内是否收到所述第一节点对重建连接请求的响应信息;若收到,则确定与所述第一节点的第四连接重建成功;否则,判断向所述第一节点发送重建连接请求的次数是否小于第二预设请求次数;确定小于所述第二预设请求次数时,重新向所述第一节点发送重建连接的请求;相应的,基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功。其中,第二预设时间可以理解为预先设置的重建超时时间,可以根据实际场景设定,对此不作限定。
例如一些实施场景中,在向第一节点发送重建连接的请求前,可以预先设置重建请求次数N1以及每次重建超时时间T3,然后向第一节点发送重建连接的请求,并判断在T3内是否收到第一节点返回的响应信息,若收到,则说明重建连接成功。一些实施场景中,若在T3内没有收到第一节点返回的响应信息,则可以判断发送重建连接的请求的次数是否小于N1,如果小于N1,则可以重新发送重建连接的请求,并判断在T3内是否收到第一节点返回的响应信息,若收到,则说明重建连接成功,若没收到,则重新判断发送重建连接的请求的次数是否小于N1,如此循环,直至发送重建连接的请求的次数等于N1,且在T3内没收到第一节点返回的响应信息时,说明重建连接失败。
S32:确定重建成功时,向所述第一节点发送所述目标消息。
本说明书一个实施例中,在重建连接成功时,第二节点可以重新向第一节点发送目标消息。本说明书另一个实施例中,在重建连接失败时,第二节点可以释放节点资源,从而减少资源浪费,提高处理效率。
本说明书一个实施例中,在第二节点成功发送目标消息后,还可以进行空闲检测。空闲检测可以在网络空闲时对节点间通信链路进行检测,如果检测到线路中断,可以提前建立连接,不需要等到真正使用链路时再重建,从而可以对提高断线重连的处理效率。例如,一个MPC OP,如果输入数据非常大,其本地计算也需要时间,这样在本地计算的这段时间内,其网络是空闲的,此时是可以做一些检测的,如果线路中断了,就可以提前重建连接,而不用等到真正使用链路时再来重建。空闲检测可以是一个节点中客户端主动向另一个节点中服务端发送心跳包进行检测。
空闲检测可以在每次收发成功后进行。本说明书一个实施例中,在重建连接成功,第二节点向发送第一节点发送目标消息后,还可以包括:记录成功发送所述目标消息时所对应的第二时间;基于所述第二时间的第二预设空闲时间后,向所述第一节点发送空闲检测心跳包。其中,第二时间可以用于表示成功发送目标消息时系统对应的时间。第二预设空闲时间可以是从成功发送目标消息时系统对应的时间开始计时到经过T0时间为止的时间段,T0可以根据实际场景进行设置。例如一些实施场景中,预先设定第二预设空闲时间为T0,则从第二节点成功向发送第一节点发送目标消息后开始计时,经过T0时间后,第二节点中的客户端可以主动向第一节点的服务端发送心跳包,从而判断第二节点与第一节点间的连接是否还存活,进而决定是否要重连接。
本说明书实施例中,在MPC执行过程中,通过对节点间通信进行超时检测、心跳检测,可以快速实现对节点间网络中断的判断,从而可以提高对网络中断的处理效率。在确定网络中断情况下,通过重连机制重新建立节点间的通信连接,可以在存在网络不稳定节点或者恶意节点对网络进行干预时,保证计算正常运行、减少计算数据出错的同时,减少资源浪费。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
本具体实施例中以图1中三方计算中P0与P1之间的交互为例进行说明,其中,P0服务端接收P1客户端发送的消息。如图4所示,在本具体实施例中,以P0端进行接收的一侧进行描述,可以包括以下步骤。
(1)设置超时时间T1;
本实施例中,P0在准备接收数据之前,可以先设置超时时间T1,以便后续根据该超时时间判断数据接收是否超时。
(2)判断在T1内是否收到目标数据;
本实施例中,在设置超时时间T1后,可以进行接收数据,并判断在T1内是否收到目标数据。
(3)确定在T1内没有收到目标数据时,向P1发送心跳包;
本实施例中,由于在T1内没有收到目标数据的原因可能是网络延迟导致,所以在T1内没有收到目标数据时,可以进一步通过心跳检测确定通信链路是否已经中断。
本实施例中,如果T1之后,没有收到目标数据,此时可以每隔T2时间向P1发送心跳包。其中,在每次发送心跳包之前,可以检测是否已经收到目标数据,如果收到目标数据,则取消此次心跳检测,进入正常处理流程。如果没有收到目标数据,则进行步骤(4)。
本实施例中,确定在T1内收到目标数据时,不需要向P1发送心跳包,可以直接进入正常处理流程。
(4)检查发送心跳包的次数是否大于N次;
本实施例中,如果在发送心跳包之前,检测到没有收到目标数据,则可以检查发送心跳包的次数是否大于N次,如果大于N,则说明N次的心跳检测都失败,进行步骤(5);如果小于N,则返回步骤(3)执行。
(5)关闭现有连接;
本实施例中,在N次心跳检测都失败时,说明P1与P0之间的通信链路已经中断,此时可以关闭连接,准备重建连接。
(6)设置重建连接的条件;
本实施例中,在重建连接之前,可以预先设置重建连接请求次数为N3和每次请求的超时时间为T3。
(7)基于重建连接的条件,确定重建是否成功。
本实施例中,P0节点可以向P1节点发送重建连接的请求,如果在重建连接请求次数小于N3且该请求时间小于T3时收到P1返回的响应信息,则说明重建连接成功,此时,P0可以重新接收目标数据。如果重建连接请求时间大于T3时没有收到P1返回的响应,此时,可以判断重建连接请求次数是否大于N3,如果大于N3,则说明不满足重建连接的条件,重建连接失败,释放资源;如果小于N3,此时可以重新向P1发送重建连接的请求,并判断该重建连接请求时间T3内是否收到P1返回的响应。
本实施例中,当P0成功接收目标数据的预设时间后,可以由P0的客户端主动向P1的服务端发送心跳包进行空闲检测,从而确定预设时间后,P0与P1之间的连接是否还存活,从而提高断线重连的处理效率。
需要说明的是,为了便于理解,上述实施例中以三方计算中节点之间的交互为例进行说明,一些实施例中,当应用于多方计算中节点之间的交互时,如由N个节点共同执行时,每个节点可以包括(N-1)个客户端。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
基于上述所述的一种实现断线重连的数据处理方法,本说明书一个或多个实施例还提供一种实现断线重连的数据处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图5是本说明书提供的一种实现断线重连的数据处理装置的一个实施例的模块结构示意图,如图5所示,本说明书提供的一种实现断线重连的数据处理装置由多个节点共同执行,可以包括:第一判断模块120,第一发送模块122,第一检测模块124,第一请求模块126,第一确定模块128,第一接收模块130。
第一判断模块120,可以用于所述多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
第一发送模块122,可以用于确定没有收到时,向所述第二节点发送心跳包;
第一检测模块124,可以用于检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
第一请求模块126,可以用于向所述第二节点发送重建连接的请求;
第一确定模块128,可以用于基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
第一接收模块130,可以用于确定重建成功时,接收所述第二节点发送的所述目标消息。
基于前述方法所述实施例的描述,本说明书还提供一种实现断线重连的数据处理装置,具体的,如图6所示,图6是本说明书提供的另一种实现断线重连的数据处理装置的一个实施例的模块结构示意图,其由多个节点共同执行,可以包括:第二发送模块140,第二判断模块142,第三发送模块144,第二检测模块146,第二请求模块148,第二确定模块150,第四发送模块152。
第二发送模块140,可以用于所述多个节点中第二节点向所述多个节点中第一节点发送目标消息;
第二判断模块142,可以用于所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
第三发送模块144,可以用于确定没有收到时,向所述第一节点发送心跳包;
第二检测模块146,可以用于检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
第二请求模块148,可以用于向所述第一节点发送重建连接的请求;
第二确定模块150,可以用于基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
第四发送模块152,可以用于确定重建成功时,向所述第一节点发送所述目标消息。
本说明书提供的一种实现断线重连的数据处理装置,MPC执行过程中,通过对节点间通信进行超时检测、心跳检测,可以快速实现对节点间网络中断的判断,从而可以提高对网络中断的处理效率。在确定网络中断情况下,通过重连机制重新建立节点间的通信连接,可以在存在网络不稳定节点或者恶意节点对网络进行干预时,保证计算正常运行、减少计算数据出错的同时,减少资源浪费。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书还提供一种实现断线重连的数据处理设备的实施例,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
确定没有收到时,向所述第二节点发送心跳包;
检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
向所述第二节点发送重建连接的请求;
基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
确定重建成功时,接收所述第二节点发送的所述目标消息。
本说明书还提供一种实现断线重连的数据处理设备的实施例,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
多个节点中第二节点向所述多个节点中第一节点发送目标消息;
所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
确定没有收到时,向所述第一节点发送心跳包;
检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
向所述第一节点发送重建连接的请求;
基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
确定重建成功时,向所述第一节点发送所述目标消息。
需要说明的,上述所述的设备根据方法或装置实施例的描述还可以包括其他的实施方式,如收发后进行空闲检测、根据预设重建成功条件确定是否重建成功等的实现方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书还提供一种实现断线重连的数据处理系统的实施例,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤,例如包括:多个节点中第二节点向所述多个节点中第一节点发送目标消息;所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;确定没有收到时,向所述第一节点发送心跳包;检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;向所述第一节点发送重建连接的请求;基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;确定重建成功时,向所述第一节点发送所述目标消息。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。
本说明书所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图7是本说明书提供的一种实现断线重连的数据处理服务器的一个实施例的硬件结构框图,该服务器可以是上述实施例中的实现断线重连的数据处理装置或实现断线重连的数据处理系统。如图7所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图7中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图7所示不同的配置。
存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的实现断线重连的数据处理方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本说明书提供的上述实现断线重连的数据处理方法或装置实施例可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的装置、计算机存储介质、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机数据处理和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
本领域技术人员可知,设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。本领域技术人员也应该清楚,只需要将方法流程用硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路。控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把部分模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现,可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (17)

1.一种实现断线重连的数据处理方法,其特征在于,由多个节点共同执行,所述方法包括:
所述多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
确定没有收到时,向所述第二节点发送心跳包;
检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
向所述第二节点发送重建连接的请求;
基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
确定重建成功时,接收所述第二节点发送的所述目标消息。
2.根据权利要求1所述的方法,其特征在于,所述向所述第二节点发送心跳包,包括:
周期性的向所述第二节点发送心跳包;其中,每次向所述第二节点发送心跳包前,包括:检测是否收到所述目标消息;确定未收到时,向所述第二节点发送心跳包。
3.根据权利要求1所述的方法,其特征在于,所述第一预设重建成功条件包括在第一预设请求次数内收到所述第二节点对重建连接请求的响应信息。
4.根据权利要求1所述的方法,其特征在于,所述基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功,包括:
判断在向所述第二节点发送重建连接请求后的第一预设时间内是否收到所述第二节点对重建连接请求的响应信息;
若收到,则确定与所述第二节点的第二连接重建成功;否则,判断向所述第二节点发送重建连接请求的次数是否小于第一预设请求次数;
确定小于所述第一预设请求次数时,重新向所述第二节点发送重建连接的请求;
相应的,基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功。
5.根据权利要求1所述的方法,其特征在于,还包括:
记录成功接收所述目标消息时所对应的第一时间,并向所述第二节点发送表示成功接收目标消息的信息;
基于所述第一时间的第一预设空闲时间后,向所述第二节点发送空闲检测心跳包。
6.一种实现断线重连的数据处理方法,其特征在于,由多个节点共同执行,所述方法包括:
所述多个节点中第二节点向所述多个节点中第一节点发送目标消息;
所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
确定没有收到时,向所述第一节点发送心跳包;
检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
向所述第一节点发送重建连接的请求;
基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
确定重建成功时,向所述第一节点发送所述目标消息。
7.根据权利要求6所述的方法,其特征在于,所述向所述第一节点发送心跳包,包括:
周期性的向所述第一节点发送心跳包;其中,每次向所述第一节点发送心跳包前,包括:检测是否收到所述表示成功接收目标消息的信息,确定未收到时,向所述第一节点发送心跳包。
8.根据权利要求6所述的方法,其特征在于,所述第二预设重建成功条件包括在第二预设请求次数内收到所述第一节点对重建连接请求的响应信息。
9.根据权利要求6所述的方法,其特征在于,所述基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功,包括:
判断在向所述第一节点发送重建连接请求后的第二预设时间内是否收到所述第一节点对重建连接请求的响应信息;
若收到,则确定与所述第一节点的第四连接重建成功;否则,判断向所述第一节点发送重建连接请求的次数是否小于第二预设请求次数;
确定小于所述第二预设请求次数时,重新向所述第一节点发送重建连接的请求;
相应的,基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功。
10.根据权利要求6所述的方法,其特征在于,所述向所述第一节点发送所述目标消息后,还包括:
记录成功发送所述目标消息时所对应的第二时间;
基于所述第二时间的第二预设空闲时间后,向所述第一节点发送空闲检测心跳包。
11.根据权利要求1-10中任意一项所述的方法,其特征在于,每个节点包括一个服务端和两个客户端,其中,所述服务端用于接收目标消息,还用于发送心跳包;所述客户端用于发送目标消息,还用于接收心跳包。
12.根据权利要求1-10中任意一项所述的方法,其特征在于,当所述方法由N个节点共同执行时,每个节点包括(N-1)个客户端。
13.一种实现断线重连的数据处理装置,其特征在于,由多个节点共同执行,所述装置包括:
第一判断模块,用于所述多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
第一发送模块,用于确定没有收到时,向所述第二节点发送心跳包;
第一检测模块,用于检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
第一请求模块,用于向所述第二节点发送重建连接的请求;
第一确定模块,用于基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
第一接收模块,用于确定重建成功时,接收所述第二节点发送的所述目标消息。
14.一种实现断线重连的数据处理装置,其特征在于,由多个节点共同执行,所述装置包括:
第二发送模块,用于所述多个节点中第二节点向所述多个节点中第一节点发送目标消息;
第二判断模块,用于所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
第三发送模块,用于确定没有收到时,向所述第一节点发送心跳包;
第二检测模块,用于检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
第二请求模块,用于向所述第一节点发送重建连接的请求;
第二确定模块,用于基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
第四发送模块,用于确定重建成功时,向所述第一节点发送所述目标消息。
15.一种实现断线重连的数据处理设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
多个节点中第一节点判断在预设第一超时时间内是否收到所述多个节点中第二节点发送的目标消息;
确定没有收到时,向所述第二节点发送心跳包;
检测发送心跳包的次数是否大于第一预设次数,确定大于第一预设次数且没有收到所述目标消息时,关闭与所述第二节点的第一连接;
向所述第二节点发送重建连接的请求;
基于第一预设重建成功条件,确定与所述第二节点的第二连接是否重建成功;
确定重建成功时,接收所述第二节点发送的所述目标消息。
16.一种实现断线重连的数据处理设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
多个节点中第二节点向所述多个节点中第一节点发送目标消息;
所述第二节点判断在预设第二超时时间内是否收到所述第一节点发送的表示成功接收目标消息的信息;
确定没有收到时,向所述第一节点发送心跳包;
检测发送心跳包的次数是否大于第二预设次数,确定大于第二预设次数且没有收到所述表示成功接收目标消息的信息时,关闭与所述第一节点的第三连接;
向所述第一节点发送重建连接的请求;
基于第二预设重建成功条件,确定与所述第一节点的第四连接是否重建成功;
确定重建成功时,向所述第一节点发送所述目标消息。
17.一种实现断线重连的数据处理系统,其特征在于,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现权利要求1-12中任意一项所述方法的步骤。
CN202010294433.8A 2020-04-15 2020-04-15 一种实现断线重连的数据处理方法、装置、设备及系统 Pending CN111510492A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010294433.8A CN111510492A (zh) 2020-04-15 2020-04-15 一种实现断线重连的数据处理方法、装置、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010294433.8A CN111510492A (zh) 2020-04-15 2020-04-15 一种实现断线重连的数据处理方法、装置、设备及系统

Publications (1)

Publication Number Publication Date
CN111510492A true CN111510492A (zh) 2020-08-07

Family

ID=71864183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010294433.8A Pending CN111510492A (zh) 2020-04-15 2020-04-15 一种实现断线重连的数据处理方法、装置、设备及系统

Country Status (1)

Country Link
CN (1) CN111510492A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311878A (zh) * 2020-10-30 2021-02-02 杭州迪普科技股份有限公司 集控探针断线重连方法、装置及系统
CN113098972A (zh) * 2021-04-12 2021-07-09 京东数科海益信息科技有限公司 一种与设备连接的方法、装置、电子设备及存储介质
WO2021207960A1 (zh) * 2020-04-15 2021-10-21 云图技术有限公司 一种实现断线重连的数据处理方法、装置、设备及系统
CN113625946A (zh) * 2021-06-28 2021-11-09 苏州浪潮智能科技有限公司 一种实现存储集群仲裁的方法、系统及计算机设备
CN114585108A (zh) * 2020-11-18 2022-06-03 成都鼎桥通信技术有限公司 连接处理方法及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036696A (zh) * 2011-09-30 2013-04-10 中国移动通信集团甘肃有限公司 一种联机业务的实现方法、系统及相应设备
CN103929441A (zh) * 2014-05-09 2014-07-16 中国银行股份有限公司 一种任务分配方法及装置
CN105656996A (zh) * 2015-12-25 2016-06-08 北京奇虎科技有限公司 数据节点存活的检测方法及装置
CN107454184A (zh) * 2017-08-22 2017-12-08 深圳先进技术研究院 Android客户端与服务器建立稳定网络连接的方法
CN108632646A (zh) * 2017-03-20 2018-10-09 腾讯科技(深圳)有限公司 一种视频直播方法、装置及服务器
CN108712462A (zh) * 2018-04-09 2018-10-26 阿里巴巴集团控股有限公司 一种连接建立方法、装置以及设备
CN109286593A (zh) * 2017-07-19 2019-01-29 腾讯科技(深圳)有限公司 传输重连的方法及装置、计算机设备及存储介质
CN109413612A (zh) * 2018-10-22 2019-03-01 深圳市元征科技股份有限公司 一种通讯连接建立方法及设备
CN110708283A (zh) * 2019-08-29 2020-01-17 中国第一汽车股份有限公司 车辆与终端连接异常的处理方法、装置、车辆及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103036696A (zh) * 2011-09-30 2013-04-10 中国移动通信集团甘肃有限公司 一种联机业务的实现方法、系统及相应设备
CN103929441A (zh) * 2014-05-09 2014-07-16 中国银行股份有限公司 一种任务分配方法及装置
CN105656996A (zh) * 2015-12-25 2016-06-08 北京奇虎科技有限公司 数据节点存活的检测方法及装置
CN108632646A (zh) * 2017-03-20 2018-10-09 腾讯科技(深圳)有限公司 一种视频直播方法、装置及服务器
CN109286593A (zh) * 2017-07-19 2019-01-29 腾讯科技(深圳)有限公司 传输重连的方法及装置、计算机设备及存储介质
CN107454184A (zh) * 2017-08-22 2017-12-08 深圳先进技术研究院 Android客户端与服务器建立稳定网络连接的方法
CN108712462A (zh) * 2018-04-09 2018-10-26 阿里巴巴集团控股有限公司 一种连接建立方法、装置以及设备
CN109413612A (zh) * 2018-10-22 2019-03-01 深圳市元征科技股份有限公司 一种通讯连接建立方法及设备
CN110708283A (zh) * 2019-08-29 2020-01-17 中国第一汽车股份有限公司 车辆与终端连接异常的处理方法、装置、车辆及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021207960A1 (zh) * 2020-04-15 2021-10-21 云图技术有限公司 一种实现断线重连的数据处理方法、装置、设备及系统
CN112311878A (zh) * 2020-10-30 2021-02-02 杭州迪普科技股份有限公司 集控探针断线重连方法、装置及系统
CN114585108A (zh) * 2020-11-18 2022-06-03 成都鼎桥通信技术有限公司 连接处理方法及设备
CN113098972A (zh) * 2021-04-12 2021-07-09 京东数科海益信息科技有限公司 一种与设备连接的方法、装置、电子设备及存储介质
CN113625946A (zh) * 2021-06-28 2021-11-09 苏州浪潮智能科技有限公司 一种实现存储集群仲裁的方法、系统及计算机设备

Similar Documents

Publication Publication Date Title
CN111510492A (zh) 一种实现断线重连的数据处理方法、装置、设备及系统
WO2021207960A1 (zh) 一种实现断线重连的数据处理方法、装置、设备及系统
JP6362119B2 (ja) クラスタ・ブレイン分割後の調停処理方法、クォーラム記憶装置、およびシステム
US6728781B1 (en) Heartbeat failure detector method and apparatus
US9049241B2 (en) Peer discovery and secure communication in failover schemes
US12003364B2 (en) Compromised network node detection system
CN107919994B (zh) 实现网络服务双机热备的方法及服务器
Phillips M7: Next generation SPARC
CN105515912B (zh) 一种多节点之间链路有效性检测和处理方法
US20110225230A1 (en) Method and apparatus for detecting active and orphan session-based connections
US9742685B2 (en) Enhanced mechanisms for granting access to shared resources
Silva et al. Threat adaptive byzantine fault tolerant state-machine replication
US8676751B2 (en) High availability database systems and methods
CN111756826B (zh) 一种dlm的锁信息传输方法以及相关装置
US20210006607A1 (en) Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping
Nikolaou et al. Turtle consensus: Moving target defense for consensus
KR101207219B1 (ko) 데이터 분산 서비스 네트워크 과부하 방지 방법
Liang et al. A novel CFN-Watchdog protocol for edge computing
Fernandez Injecting faults in byzantine fault tolerant protocols
WO2016201973A1 (zh) 一种容灾方法、装置及通信系统
Han et al. Byzantine-tolerant, information propagation in untrustworthy and unreliable networks
Fu et al. A novel session recovery mechanism for cluster-based signaling architecture for conferencing in MANETs
GODOY Implementing failure detection algorithms on the ADD-model with small messages
Agarwala Reboot based framework for high-threshold cryptosystem
JOÃO NETWORK ABSTRACTIONS AND EMULATION FOR DISTRIBUTED SYSTEMS

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200807