CN115766829A - 通信处理方法和通信节点 - Google Patents
通信处理方法和通信节点 Download PDFInfo
- Publication number
- CN115766829A CN115766829A CN202211415164.1A CN202211415164A CN115766829A CN 115766829 A CN115766829 A CN 115766829A CN 202211415164 A CN202211415164 A CN 202211415164A CN 115766829 A CN115766829 A CN 115766829A
- Authority
- CN
- China
- Prior art keywords
- tcp connection
- node
- computing
- connection
- communication node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例中提供了一种通信处理方法和通信节点。第一通信节点执行的方法涉及部署在第一参与方的第一计算节点和部署在第二参与方的第二计算节点,第一参与方和第二参与方用于联合执行MPC。第一通信节点执行的方法包括:通过第一通信节点与第一计算节点间的第一TCP连接,从第一计算节点接收第一连接信息,第一连接信息包括目标计算任务的任务编号;在已通过第二TCP连接接收到来自第二计算节点的第二连接信息的情况下,建立第一TCP连接与第二TCP连接间的第一映射关系,第二连接信息包括任务编号;第一映射关系用于支持第一通信节点通过第一TCP连接和/或第二TCP连接,转发第一计算节点和第二计算节点在执行目标计算任务的过程中所需交互的业务数据。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及一种通信处理方法和通信节点。
背景技术
对于由两个参与方联合执行的安全多方计算(multi-party computation,MPC)任务,两个参与方可能各自部署若干计算节点并选择某个计算节点来具体执行MPC任务,被选择的两个计算节点通常难以相互获知对方的地址信息。然而,MPC任务却又往往需要由属于不同参与方的两个计算节点在对齐数据后进行同步操作,即需要确保两个计算节点在执行MPC任务的过程中所需交互的数据,能够被高效的完成在两个计算节点间进行传递。
希望有一种新的技术方案,以期实现在属于不同参与方的两个计算节点联合执行MPC任务的过程中,更加高效的传递两个计算节点所需交互的业务数据。
发明内容
本说明书一个或多个实施例中提供了一种通信处理方法和通信节点。
第一参与方面,提供了一种通信处理方法,涉及第一通信节点、第一计算节点和第二计算节点,所述第一计算节点是部署在第一参与方的若干计算节点之一,所述第二计算节点是部署在第二参与方的若干计算节点之一,所述第一参与方和所述第二参与方用于联合执行安MPC,所述方法由所述第一通信节点执行。所述方法包括:通过所述第一通信节点与所述第一计算节点间的第一传输控制协议(transmission control protocol,TCP)连接,从所述第一计算节点接收第一连接信息,所述第一连接信息包括目标计算任务的任务编号;在已通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,其中,所述第二连接信息包括所述任务编号;所述第一映射关系用于支持所述第一通信节点通过所述第一TCP连接和/或所述第二TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的业务数据。
在一种可能的实施方式中,所述第一连接信息中还包括所述第二参与方的地址信息,所述第二连接信息中还包括所述第一参与方的地址信息。
在一种可能的实施方式中,所述若干计算节点实现为若干容器或若干pod。
在一种可能的实施方式中,所述第二TCP连接是所述第一通信节点与所述第二计算节点间的TCP连接。
在一种可能的实施方式中,所述第一通信节点部署在所述第一参与方,所述第二参与方中还部署有第二通信节点,所述第二TCP连接是所述第一通信节点与所述第二通信节点间的TCP连接。
在一种可能的实施方式中,所述第二通信节点与所述第二计算节点间建立有第三TCP连接,所述第二TCP连接由所述第二通信节点在其通过所述第三TCP连接接收到来自所述第二计算节点的所述第二连接信息后建立。
在一种可能的实施方式中,所述方法还包括:在未通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一通信节点和所述第二通信节点间的所述第二TCP连接;建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,并通过所述第二TCP连接向所述第二通信节点发送所述第一连接信息,使所述第二通信节点在通过其与所述第二计算节点间的第三TCP连接接收到所述第二连接信息后,建立所述第二TCP连接与所述第三TCP连接间的第二映射关系,所述第二映射关系用于支持所述第二通信节点通过所述第二TCP连接和/或所述第三TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的数据。
在一种可能的实施方式中,所述方法还包括:通过所述第一TCP连接接收所述第一计算节点在执行所述目标计算任务的过程中所需发送至所述第二计算节点的第一业务数据,根据所述第一映射关系确定与所述第一TCP连接对应的所述第二TCP连接,并通过所述第二TCP连接转发所述第一业务数据。
在一种可能的实施方式中,通过所述第二TCP连接接收所述第二计算节点在执行所述目标计算任务的过程中所需发送至所述第一计算节点的第二业务数据,根据所述第一映射关系确定与所述第二TCP连接对应的所述第一TCP连接,并通过所述第二TCP连接转发所述第二业务数据。
第二方面,提供了一种第一通信节点,涉及第一计算节点和第二计算节点,所述第一计算节点是部署在第一参与方的若干计算节点之一,所述第二计算节点是部署在第二参与方的若干计算节点之一,所述第一参与方和所述第二参与方用于联合执行MPC。所述第一通信节点,包括:通信管理单元,用于通过所述第一通信节点与所述第一计算节点间的第一TCP连接,从所述第一计算节点接收第一连接信息,所述第一连接信息包括目标计算任务的任务编号;连接管理单元,用于在已通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,其中,所述第二连接信息包括所述任务编号;所述第一映射关系用于支持所述第一通信节点通过所述第一TCP连接和/或所述第二TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的业务数据。
在一种可能的实施方式中,所述第一连接信息中还包括所述第二参与方的地址信息,所述第二连接信息中还包括所述第一参与方的地址信息。
在一种可能的实施方式中,所述若干计算节点实现为若干容器或若干pod。
在一种可能的实施方式中,所述第二TCP连接是所述第一通信节点与所述第二计算节点间的TCP连接。
在一种可能的实施方式中,所述第一通信节点部署在所述第一参与方,所述第二参与方中还部署有第二通信节点,所述第二TCP连接是所述第一通信节点与所述第二通信节点间的TCP连接。
在一种可能的实施方式中,所述第二通信节点与所述第二计算节点间建立有第三TCP连接,所述第二TCP连接由所述第二通信节点在其通过所述第三TCP连接接收到来自所述第二计算节点的所述第二连接信息后建立。
在一种可能的实施方式中,所述通信管理单元,还用于在未通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一通信节点和所述第二通信节点间的所述第二TCP连接;所述连接管理单元,还用于建立所述第一TCP连接与所述第二TCP连接间的第一映射关系;所述通信管理单元,还用于通过所述第二TCP连接向所述第二通信节点发送所述第一连接信息,使所述第二通信节点在通过其与所述第二计算节点间的第三TCP连接接收到所述第二连接信息后,建立所述第二TCP连接与所述第三TCP连接间的第二映射关系,所述第二映射关系用于支持所述第二通信节点通过所述第二TCP连接和/或所述第三TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的数据。
在一种可能的实施方式中,所述通信管理单元,还用于通过所述第一TCP连接接收所述第一计算节点在执行所述目标计算任务的过程中所需发送至所述第二计算节点的第一业务数据,根据所述第一映射关系确定与所述第一TCP连接对应的所述第二TCP连接,并通过所述第二TCP连接转发所述第一业务数据。
在一种可能的实施方式中,所述通信管理单元,还用于通过所述第二TCP连接接收所述第二计算节点在执行所述目标计算任务的过程中所需发送至所述第一计算节点的第二业务数据,根据所述第一映射关系确定与所述第二TCP连接对应的所述第一TCP连接,并通过所述第二TCP连接转发所述第二业务数据。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行如第一方面中任一项所述的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码/指令,所述处理器执行所述可执行代码/指令,实现如第一方面中任一项所述的方法。
通过本说明书一个或多个实施例中提供的方法和通信节点,通过部署通信节点作为联合执行MPC任务的属于不同参与方的两个计算节点间的通信中继,通信节点利用第一TCP连接和/或第二TCP连接接收第一计算节点和第二计算节点在联合执行目标计算任务的过程中所需交互的业务数据,并根据其建立的第一TCP连接与第二TCP连接间的第一映射关系实现通过第一TCP连接和/或第二TCP连接对属于目标计算任务的业务数据进行转发,进而使得属于目标计算任务的业务数据能够在第一计算节点和第二计算节点间进行点到点的传输,而且并不会额外造成较高的通信开销,可以实现在属于不同参与方的两个计算节点联合执行MPC任务的过程中,更加高效的传递两个计算节点所需交互的业务数据。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书实施例中提供的技术方案的应用场景的示意图;
图2为本说明书实施例中提供的技术方案的系统框架图之一;
图3为本说明书实施例中提供的一种通信处理方法的过程示意图之一;
图4为本说明书实施例中提供的技术方案的系统框架图之二;
图5为本说明书实施例中提供的一种通信处理方法的过程示意图之二;
图6为本说明书实施例中提供的一种通信节点的示意图。
具体实施方式
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
图1为本说明书实施例中提供的技术方案的应用场景的示意图。如图1所示,两个不同的参与方,例如参与方1和参与方2,可能按照实际业务需求联合执行若干MPC任务,例如联合执行MPC任务A和MPC任务B。参与方1和参与方2可能分别部署若干计算节点,例如参与方1部署计算节点11和计算节点13,参与方2部署计算节点21和计算节点23。参与方可以是计算设备或者基于多个计算设备构建的设备集群;计算节点可以是基于计算设备或设备集群实现的虚拟节点。以采用K8S或者Docker等容器部署模式实现部署设备集群为例,前述计算节点可以实现为容器组(Pod)或者容器;单个参与方可以通过若干容器组或若干容器运行若干服务进程,以实现与其它参与方联合执行若干MPC任务。
MPC任务往往需要由属于不同参与方的两个计算节点在对齐数据后进行同步操作,即需要确保两个计算节点在执行MPC任务的过程中所需交互的数据,能够被高效的完成在两个计算节点间进行传递。然而,属于不同参与方的具体用于执行某个MPC任务的两个计算节点间通常难以相互获知对方的地址信息,导致具体用于执行某个MPC任务的两个计算节点,难以高效的传递其在执行某个MPC任务的过程中所需交互的数据。例如,参与方1选择计算节点11来执行MPC任务A,参与方2选择计算节点21来执行MPC任务A;计算节点11难以获知计算节点21的互联网协议(internet protocol,IP)地址以及计算节点21中用于执行MPC任务A的服务进程21A的端口号,计算节点21难以获知计算节点11的IP地址以及计算节点11中用于执行MPC任务A的服务进程11A的端口号,服务进程11A和服务进程21A之间难以高效的传递其在联合执行MPC任务A的过程中所需交互的数据。又如,参与方1选择计算节点11来执行MPC任务B,参与方2选择计算节点23来执行MPC任务B,计算节点11难以获知计算节点23的IP地址以及计算节点23中用于执行MPC任务B的服务进程23B的端口号,计算节点23难以获知计算节点11的IP地址以及计算节点11中用于执行MPC任务B的服务进程11B的端口号,服务进程11B和服务进程23B之间难以高效的传递其在联合执行MPC任务A的过程中所需交互的数据。
相关技术中,可以通过中心化的消息队列服务,实现对属于不同参与方的两个计算节点在执行具体MPC任务的过程中所需交互的数据进行传递。例如,参与方1和参与方2可以直接连接到相同的消息队列服务,如果属于不同参与方的两个计算节点选择相同MPC任务的任务编号,那么一方作为发送方(publisher),另一方作为订阅方(subscriber),发送方发送的消息会被选择相同任务编号的订阅方收到。该技术方案中,消息队列服务会大幅增加通信开销,例如订阅方可能需要轮询消息队列;引入中心化的消息队列服务存在安全隐患;需要在计算节点中增加直接对接消息队列服务的软件开发工具包(softwaredevelopment kit,SDK),其会限制用于执行MPC任务的服务进程所使用编程语言的范围。
鉴于以上问题,本说明书实施例中至少提供了一种通信处理方法和通信节点。由第一通信节点执行的方法涉及第一计算节点和第二计算节点,第一计算节点是部署在第一参与方的若干计算节点之一,第二计算节点是部署在第二参与方的若干计算节点之一,第一参与方和第二参与方用于联合执行安全多方计算MPC。由第一节点执行的方法中,第一节点通过其与第一计算节点间的第一TCP连接,从第一计算节点接收第一连接信息,第一连接信息包括目标计算任务的任务编号;接着,第一通信节点在已通过第二TCP连接接收到来自第二计算节点的第二连接信息的情况下,建立第一TCP连接与第二TCP连接间的第一映射关系,其中该第二连接信息包括任务编号,该第一映射关系用于支持第一通信节点通过第一TCP连接和/或第二TCP连接,转发第一计算节点和第二计算节点在执行目标计算任务的过程中所需交互的业务数据。
如此,通过部署通信节点作为联合执行MPC任务的属于不同参与方的两个计算节点间的通信中继,通信节点可以利用第一TCP连接和/或第二TCP连接接收第一计算节点和第二计算节点在联合执行目标计算任务的过程中所需交互的业务数据,并根据其建立的第一TCP连接与第二TCP连接间的第一映射关系实现通过第一TCP连接和/或第二TCP连接对属于目标计算任务的业务数据进行转发,进而使得属于目标计算任务的业务数据能够在第一计算节点和第二计算节点间进行点到点的传输,在此过程中并不会额外造成较高的通信开销,可以实现在属于不同参与方的两个计算节点联合执行MPC任务的过程中,更加高效的传递两个计算节点所需交互的业务数据。此外,对于计算节点自身而言,直接通过TCP连接来实现业务数据的接收和发送,无需使用与MPC任务无关的其它SDK例如对接消息队列服务的SDK,使得通过任何编程语言或技术栈实现的MPC计算逻辑(即计算节点中具体用于执行MPC任务的服务进程所对应的计算机程序)均可高效接入。
图2为本说明书实施例中提供的技术方案的系统框架图之一。参见图2所示,用于联合执行MPC的参与方1和参与方2中均可以部署通信节点,例如参与方1可以部署通信节点10,参与方2可以部署通信节点20,通信节点10和通信节点20均会作为联合执行MPC任务的属于不同参与方的两个计算节点间的通信中继。更具体地说,通信节点10和通信节点20均会作为前述第一通信节点并执行由第一通信节点执行的方法,其中:就由通信节点10执行的方法而言,通信节点20是相对于通信节点10的第二通信节点;就由通信节点20执行的方法而言,通信节点10是相对于通信节点20的第二通信节点。
下面结合前述图2所示的系统框架,以计算节点11与计算节点21联合执行的目标计算任务是MPC任务A为例,示例性描述MPC任务A对应的通信处理过程。参见图3所示,该通信处理过程可以包括但不限于如下步骤S311~步骤S375中的部分或全部。
步骤S311,计算节点11和通信节点10建立与MPC任务A对应的TCP连接X1。
步骤S313,计算节点21和通信节点20建立与MPC任务A对应的TCP连接X2。
参与方1选择计算节点11来与参与方2联合执行MPC任务A,那么计算节点11中可以启动并运行用于执行MPC任务A的服务进程(记为服务进程11A),计算节点11会为服务进程11A分配相应的端口号(记为端口号11A);服务进程11A可以向通信节点10发起TCP连接请求,进而完成建立与MPC任务A对应的TCP连接X1。与前述过程相似,参与方2选择计算节点21来与参与方1联合执行MPC任务A,那么计算节点21中可以启动并运行用于执行MPC任务A的服务进程(记为服务进程21A),计算节点21会为服务进程21A分配相应的端口号(记为端口号21A);服务进程21A可以向通信节点20发起TCP连接请求,进而完成建立与MPC任务A对应的TCP连接X2。
步骤S321,计算节点11通过TCP连接X1向通信节点10发送连接信息M1。
步骤S323,计算节点21通过TCP连接X2向通信节点20发送连接信息M2。
参与方1和参与方2可以通过各种可能的方式确定将要执行的MPC任务A的任务编号(记为Topic A)。进而,计算节点11中运行的服务进程11A可以通过TCP连接X1向通信节点10发送包含Topic A的连接信息M1,计算节点21中运行的服务进程21A可以通过TCP连接X2向通信节点20发送包含Topic A的连接信息M2。鉴于参与方1可能连接到除参与方2以外的其它计算设备,参与方2可能连接到除参与方1以外的其它计算设备,为了确保通信节点10和通信节点20能够准确关联用于传输属于MPC任务A的业务数据的TCP连接,连接信息M1中还可以包括参与方2的地址信息(记为Rout 2),连接信息M2中还可以包括参与方1的地址信息(记为Rout 1)。参与方的地址信息可以是网络地址或其它类型的标识,例如参与方1的地址信息Rout 1可以包括通信节点10的网络地址,参与方2的地址信息Rout 2可以包括通信节点20的网络地址。
通信节点10通过TCP连接X1接收到连接信息M1后,还可以建立TCP连接X1与连接信息M1的对应关系;与之相应的,通信节点20通过TCP连接X2接收到连接信息M2后,还可以建立TCP连接X2与连接信息M2的对应关系。
步骤S331,通信节点10确定是否接收到连接信息M2。
步骤S333,通信节点20确定是否接收到连接信息M1。
连接信息M1中并不包括参与方2的地址信息Rout 2的情况下,通信节点10在已接收到来自参与方1的连接信息M1后,可以基于连接信息M1中所包括的Topic A,直接确定是否已通过其与通信节点20建立的TCP连接接收到包含Topic A的连接信息,通过其与通信节点20建立的TCP连接接收的包含Topic A的连接信息即是连接信息M2。连接信息M1中包括参与方2的地址信息Rout 2和Topic A的情况下,通信节点10在已接收到来自参与方1的连接信息M1后,可以基于参与方1的地址信息Rout 1和连接信息M1中所包括的Topic A,直接确定是否已通过其与通信节点20建立的TCP连接接收到包含Rout 1和Topic A的连接信息,通过其与通信节点20建立的TCP连接接收的包含Rout 1和Topic A的连接信息即是连接信息M2。通信节点20确定是否接收到连接信息M1的过程,与通信节点10确定是否接收到连接信息M2的过程相似,此处不再赘述。
前述步骤S331和步骤S333可能并不会同步执行,即步骤S331可能在时间上先于步骤S333完成执行,或者步骤S331可能在时间上晚于步骤S333完成执行。
如果步骤S331在时间上先于步骤S333完成执行,那么步骤S331中将会确定出未接收到连接信息M2,此种情况下通信节点10可以继续执行如下步骤S34~步骤S361。
步骤S34,通信节点10和通信节点20建立与连接信息M1对应的TCP连接X3。
通信节点10可以向通信节点20发起TCP连接请求,进而建立与连接信息M1对应的TCP连接X3,即建立与连接信息M1中所包括的Topic A相对应的TCP连接X3;通信节点10在完成建立TCP连接X3后,还可建立TCP连接X3与连接信息M1间的对应关系。
步骤S35,通信节点10通过TCP连接X3转发连接信息M1。
通信节点20通过TCP连接X3接收到连接信息M1后,还可以建立TCP连接X3与连接信息X1间的对应关系。
步骤S361,通信节点10建立用于接收连接信息M1的TCP连接X1与用于接收连接信息M2的TCP连接X3间的映射关系。
因步骤S331在时间上先于步骤S333完成执行,通信节点20可能在执行步骤S333之前完成在通信节点10的请求下与通信节点10联合执行步骤S34,并接收到通信节点10通过TCP连接X3发送的连接信息M1。进而,当通信节点20执行步骤S333时,其会确定出已通过TCP连接X3接收到来自参与方1的连接信息M1;与之相应的是,通信节点20可以继续执行如下步骤S363,建立用于接收连接信息M2的TCP连接X2与用于接收连接信息M1的TCP连接X3间的映射关系。
如果步骤S333在时间上先于步骤S331完成执行时,那么通信节点20可以向通信节点10发起TCP连接请求,进而建立与连接信息M2对应的TCP连接X3,即建立与连接信息M2中所包括的Topic A相对应的TCP连接X3;通信节点20还可以通过TCP连接X3转发连接信息M2到通信节点10。与之相应的是,因步骤S333在时间上先于步骤S331完成执行,通信节点10可能在执行步骤S331之前完成在通信节点20的请求下与通信节点20联合执行步骤S34,并通过TCP连接X3接收到来自通信节点20的连接信息M2;进而,当通信节点10执行步骤S331时,其会确定出已通过TCP连接X3接收到来自参与方2的连接信息M2,此种情况下通信节点10可以继续执行前述步骤S361。
对于接收到连接信息M1和连接信息M2的通信节点,其在完成建立两个TCP连接的映射关系后,还可以通过已建立映射关系的两个TCP连接发送表征计算节点11和计算节点21间已完成建立点到点的通信连接的确认消息,以便计算节点11和计算节点21在基于确认消息确认已完成建立点到点的通信连接后,通过相应的TCP连接发出其在执行MPC任务A时所需交互的业务数据。例如,通信节点20完成执行步骤S363后,可以通过TCP连接X2发出确认消息,该确认消息将会被计算节点21接收并提供给服务进程21A;此外还可以通过TCP连接X3发出确认消息,通信节点10可以根据其建立的TCP连接X3与TCP连接X1间的映射关系,通过TCP连接X1转发确认消息,确认消息将会被计算节点11接收并提供给服务进程11A;进而,服务进程21A和服务进程11A可以按照其自身的业务需求,通过相应的TCP连接发出需要在参与方1和参与方2间交互的业务数据。
以计算节点11和计算节点21联合执行MPC任务A的过程中,计算节点11需要发送业务数据Y1到计算节点21为例,基于前述步骤S311~步骤S363,可以通过如下步骤S371~步骤S375完成将业务数据Y1从计算节点11点到点的传输计算节点21。
在步骤S371,通信节点10通过TCP连接X1接收计算节点11在执行MPC任务A的过程中所需发送到计算节点21的业务数据Y1。即服务进程11A在执行MPC任务A的过程中,可能产生业务数据Y1并通过TCP连接X1将业务数据Y1发送到通信节点10。
在步骤S373,通信节点10根据TCP连接X1与TCP连接X3间的映射关系,通过TCP连接X3转发业务数据Y1。即通信节点10通过TCP连接X1接收到业务数据Y1后,通过其建立的映射关系可以查询到将要用于转发业务数据Y1的TCP连接的TCP连接X3,进而可以通过TCP连接X3来转发其通过TCP连接X1接收的业务数据Y1。
在步骤S375,通信节点20根据TCP连接X3与TCP连接X2间的映射关系,通过TCP连接X2转发业务数据Y1。即通信节点20通过TCP连接X3接收到业务数据Y1后,通过其建立的映射关系可以查询到将要用于转发业务数据Y1的TCP连接的TCP连接X2,进而可以通过TCP连接X2来转发通过TCP连接X3接收的业务数据Y1,使得业务数据Y1最终能够被计算节点21接收并提供给服务进程21A。
类似的,如果计算节点11和计算节点21联合执行MPC任务A的过程中,计算节点21需要发送业务数据Y2到计算节点11,服务进程21A可以通过TCP连接X2发送业务数据Y2到通信节点20;通信节点20可以根据其建立的TCP连接X2与TCP连接X3间的映射关系,通过TCP连接X3转发业务数据Y2到通信节点10;通信节点10可以根据其建立的TCP连接X3与TCP连接X1间的映射关系,通过TCP连接X1转发业务数据Y2到计算节点11,使得业务数据Y2最终能够被计算节点11接收并提供给服务进程11A。
通信节点10和通信节点20间传输的属于MPC任务的业务数据,可以采用包含安全传输层(transport layer security,TLS)在内的各种加密措施进行安全传输。
需要特别说明的是,通信节点10和通信节点20间将会对参与方1和参与方2联合执行的若干MPC任务分别建立TCP连接;例如除前述与MPC任务A对应的TCP连接X3外,通信节点10和通信节点20还可能建立与MPC任务B对应的TCP连接X4。当计算节点与通信节点间建立的与某个MPC任务对应的TCP连接被断开时,通信节点间还需要断开与该MPC任务对应的TCP连接并无效掉与MPC任务对应的两个TCP连接间的映射关系;例如与MPC任务A对应的TCP连接X1被断开时,通信节点10可以断开其与通信节点20建立的TCP连接X3,并删除其建立的TCP连接X1与TCP连接X3间的映射关系。
图4为本说明书实施例中提供的技术方案的系统框架图之二。参见图4所示,用于联合执行MPC的参与方1和参与方2可以连接到中心化的通信节点30(即第一通信节点),通信节点30会作为联合执行MPC任务的属于不同参与方的两个计算节点间的通信中继。
下面具体结合图4所示的系统框架,以计算节点11与计算节点21联合执行的目标计算任务是MPC任务A为例,示例性描述MPC任务A对应的通信处理过程。参见图5所示,该通信处理过程可以包括但不限于如下步骤S511~步骤S593中的部分或全部。
步骤S511,计算节点11和通信节点30建立与MPC任务A对应的TCP连接X1。
步骤S513,计算节点21和通信节点30建立与MPC任务A对应的TCP连接X2。
参与方1选择计算节点11来与参与方2联合执行MPC任务A,则计算节点11中可以启动并运行用于执行MPC任务A的服务进程(记为服务进程11A),计算节点11会为服务进程11A分配相应的端口号(记为端口号11A);服务进程11A可以向通信节点10发起TCP连接请求,进而完成建立与MPC任务A对应的TCP连接X1。与前述过程相似,参与方2选择计算节点21来与参与方1联合执行MPC任务A,则计算节点21中可以启动并运行用于执行MPC任务A的服务进程(记为服务进程21A),计算节点21会为服务进程21A分配相应的端口号(记为端口号21A);服务进程21A可以向通信节点20发起TCP连接请求,进而完成建立与MPC任务A对应的TCP连接X2。
步骤S531,计算节点11通过TCP连接X1向通信节点30发送连接信息M1。
步骤S533,计算节点21通过TCP连接X2向通信节点30发送连接信息M2。
参与方1和参与方2可以通过各种可能的方式确定将要执行的MPC任务A的任务编号(记为Topic A)。进而,计算节点11中运行的服务进程11A可以通过TCP连接X1向通信节点10发送包含Topic A的连接信息M1,计算节点21中运行的服务进程21A可以通过TCP连接X2向通信节点20发送包含Topic A的连接信息M2。由于参与方1可能连接除参与方2以外的其它计算设备,参与方2可能连接除参与方1以外的其它计算设备,为了确保通信节点30能够准确关联用于传输属于MPC任务A的业务数据的TCP连接,连接信息M1中还可以包括参与方2的地址信息(记为Rout 2),连接信息M2中还可以包括参与方1的地址信息(记为Rout 1)。参与方的地址信息可以是网络地址或其它标识。
步骤S551,通信节点30在通过TCP连接X1接收到连接信息M1后,确定是否从参与方2接收到连接信息M2。
步骤S553,通信节点30在通过TCP连接X3接收到连接信息M2后,确定是否从参与方1接收到连接信息M1。
连接信息M1中并不包括参与方2的地址信息Rout 2的情况下,通信节点30在已接收到来自参与方1的连接信息M1后,可以基于连接信息M1中所包括的Topic A,直接确定是否已通过其它TCP连接接收到包含Topic A的连接信息,通过其它TCP连接接收的包含TopicA的连接信息即是来自参与方2/计算节点21的连接信息M2。连接信息M1中包括参与方2的地址信息Rout 2和Topic A的情况下,通信节点30在已接收到来自参与方1的连接信息M1后,可以基于参与方1的地址信息Rout 1和连接信息M1中所包括的Topic A,直接确定是否已通过其它TCP连接接收到包含Rout 1和Topic A的连接信息,通过其它TCP连接接收的包含Rout 1和Topic A的连接信息即是来自参与方2/计算节点21的连接信息M2。通信节点30确定是否从参与方1接收到连接信息M1的过程,与通信节点30确定是否从参与方2接收到连接信息M2的过程相似,此处不再赘述。
步骤S531和步骤S533可能并不会同步执行,如此可能导致:步骤S551在时间上先于步骤S533完成执行,而步骤S553在时间上晚于步骤S531完成执行;或者可能导致步骤S553在时间上先于步骤S531完成执行,而步骤S551在时间上晚于步骤S533完成执行。
如果步骤S551在时间上先于步骤S533完成执行,而步骤S553在时间上晚于步骤S531完成执行,那么步骤S551中将会确定出未接收到来自参与方2的连接信息M2,步骤S553中将会确定出已接收到来自参与方1的连接信息M1。此种情况下,通信节点30可以基于前述步骤S553的执行结果执行步骤S57,建立用于接收连接信息M1的TCP连接X1与用于接收连接信息M2的TCP连接X2间的映射关系。
如果步骤S551在时间上晚于步骤S533完成执行,而步骤S553在时间上先于步骤S531完成执行,那么步骤S553中将会确定出未接收到来自参与方1的连接信息M1,步骤S551中将会确定出已接收到来自参与方2的连接信息M2。此种情况下,通信节点30可以基于前述步骤S551的结果执行前述步骤S57。
通信节点30还可以在完成执行前述步骤S57后,通过已建立映射关系的两个TCP连接发送表征计算节点11和计算节点21间已完成建立点到点的通信连接的确认消息,以便计算节点11和计算节点21在基于确认消息确认已完成建立点到点的通信连接后,通过相应的TCP连接发出其在执行MPC任务A时所需交互的业务数据。
以计算节点11和计算节点21联合执行MPC任务A的过程中,计算节点11需要发送业务数据Y1到计算节点21为例,基于前述步骤S511~步骤S57,可以通过如下步骤S591和步骤S593完成将业务数据Y1从计算节点11点到点的传输计算节点21。
在步骤S591,通信节点30通过TCP连接X1接收计算节点11在执行MPC任务A的过程中所需发送到计算节点21的业务数据Y1。即服务进程11A在执行MPC任务A的过程中,可能产生业务数据Y1并通过TCP连接X1将业务数据Y1发送到通信节点30。
在步骤S593,通信节点30根据TCP连接X1与TCP连接X2间的映射关系,通过TCP连接X2转发业务数据Y1。即通信节点30通过TCP连接X1接收到业务数据Y1后,通过其建立的映射关系可以查询到将要用于转发业务数据Y1的TCP连接的TCP连接X2,进而可以通过TCP连接X2来转发其通过TCP连接X1接收的业务数据Y1。
类似的,如果计算节点11和计算节点21联合执行MPC任务A的过程中,计算节点21需要发送业务数据Y2到计算节点11,服务进程21A可以通过TCP连接X2发送业务数据Y2到通信节点30;通信节点30可以根据其建立的TCP连接X2与TCP连接X1间的映射关系,通过TCP连接X1转发业务数据Y2到计算节点11,使得业务数据Y2最终能够被计算节点11接收并提供给服务进程11A。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种第一通信节点,涉及第一计算节点和第二计算节点,所述第一计算节点是部署在第一参与方的若干计算节点之一,所述第二计算节点是部署在第二参与方的若干计算节点之一,所述第一参与方和所述第二参与方用于联合执行MPC。如图6所示,所述第一通信节点包括:通信管理单元61,用于通过所述第一通信节点与所述第一计算节点间的第一TCP连接,从所述第一计算节点接收第一连接信息,所述第一连接信息包括目标计算任务的任务编号;连接管理单元63,用于在已通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,其中,所述第二连接信息包括所述任务编号;所述第一映射关系用于支持所述第一通信节点通过所述第一TCP连接和/或所述第二TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的业务数据。
在一种可能的实施方式中,所述第一连接信息中还包括所述第二参与方的地址信息,所述第二连接信息中还包括所述第一参与方的地址信息。
在一种可能的实施方式中,所述若干计算节点实现为若干容器或若干pod。
在一种可能的实施方式中,所述第二TCP连接是所述第一通信节点与所述第二计算节点间的TCP连接。
在一种可能的实施方式中,所述第一通信节点部署在所述第一参与方,所述第二参与方中还部署有第二通信节点,所述第二TCP连接是所述第一通信节点与所述第二通信节点间的TCP连接。
在一种可能的实施方式中,所述第二通信节点与所述第二计算节点间建立有第三TCP连接,所述第二TCP连接由所述第二通信节点在其通过所述第三TCP连接接收到来自所述第二计算节点的所述第二连接信息后建立。
在一种可能的实施方式中,所述通信管理单元61,还用于在未通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一通信节点和所述第二通信节点间的所述第二TCP连接;所述连接管理单元63,还用于建立所述第一TCP连接与所述第二TCP连接间的第一映射关系;所述通信管理单元61,还用于通过所述第二TCP连接向所述第二通信节点发送所述第一连接信息,使所述第二通信节点在通过其与所述第二计算节点间的第三TCP连接接收到所述第二连接信息后,建立所述第二TCP连接与所述第三TCP连接间的第二映射关系,所述第二映射关系用于支持所述第二通信节点通过所述第二TCP连接和/或所述第三TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的数据。
在一种可能的实施方式中,所述通信管理单元61,还用于通过所述第一TCP连接接收所述第一计算节点在执行所述目标计算任务的过程中所需发送至所述第二计算节点的第一业务数据,根据所述第一映射关系确定与所述第一TCP连接对应的所述第二TCP连接,并通过所述第二TCP连接转发所述第一业务数据。
在一种可能的实施方式中,所述通信管理单元61,还用于通过所述第二TCP连接接收所述第二计算节点在执行所述目标计算任务的过程中所需发送至所述第一计算节点的第二业务数据,根据所述第一映射关系确定与所述第二TCP连接对应的所述第一TCP连接,并通过所述第二TCP连接转发所述第二业务数据。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行本说明书任意一个实施例中提供的由通信节点10、通信节点20或通信节点30执行的方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任意一个实施例中提供的由通信节点10、通信节点20或通信节点30执行的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (18)
1.一种通信处理方法,涉及第一通信节点、第一计算节点和第二计算节点,所述第一计算节点是部署在第一参与方的若干计算节点之一,所述第二计算节点是部署在第二参与方的若干计算节点之一,所述第一参与方和所述第二参与方用于联合执行安全多方计算MPC,所述方法由所述第一通信节点执行,所述方法包括:
通过所述第一通信节点与所述第一计算节点间的第一传输控制协议TCP连接,从所述第一计算节点接收第一连接信息,所述第一连接信息包括目标计算任务的任务编号;
在已通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,其中,所述第二连接信息包括所述任务编号;所述第一映射关系用于支持所述第一通信节点通过所述第一TCP连接和/或所述第二TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的业务数据。
2.根据权利要求1所述的方法,所述第一连接信息中还包括所述第二参与方的地址信息,所述第二连接信息中还包括所述第一参与方的地址信息。
3.根据权利要求1所述的方法,所述若干计算节点实现为若干容器或若干pod。
4.根据权利要求1所述的方法,所述第二TCP连接是所述第一通信节点与所述第二计算节点间的TCP连接。
5.根据权利要求1所述的方法,所述第一通信节点部署在所述第一参与方,所述第二参与方中还部署有第二通信节点,所述第二TCP连接是所述第一通信节点与所述第二通信节点间的TCP连接。
6.根据权利要求5所述的方法,所述第二通信节点与所述第二计算节点间建立有第三TCP连接,所述第二TCP连接由所述第二通信节点在其通过所述第三TCP连接接收到来自所述第二计算节点的所述第二连接信息后建立。
7.根据权利要求5所述的方法,所述方法还包括:
在未通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一通信节点和所述第二通信节点间的所述第二TCP连接;
建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,并通过所述第二TCP连接向所述第二通信节点发送所述第一连接信息,使所述第二通信节点在通过其与所述第二计算节点间的第三TCP连接接收到所述第二连接信息后,建立所述第二TCP连接与所述第三TCP连接间的第二映射关系,所述第二映射关系用于支持所述第二通信节点通过所述第二TCP连接和/或所述第三TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的数据。
8.根据权利要求1-7中任一项所述的方法,所述方法还包括:
通过所述第一TCP连接接收所述第一计算节点在执行所述目标计算任务的过程中所需发送至所述第二计算节点的第一业务数据,根据所述第一映射关系确定与所述第一TCP连接对应的所述第二TCP连接,并通过所述第二TCP连接转发所述第一业务数据;
和/或,
通过所述第二TCP连接接收所述第二计算节点在执行所述目标计算任务的过程中所需发送至所述第一计算节点的第二业务数据,根据所述第一映射关系确定与所述第二TCP连接对应的所述第一TCP连接,并通过所述第二TCP连接转发所述第二业务数据。
9.一种第一通信节点,涉及第一计算节点和第二计算节点,所述第一计算节点是部署在第一参与方的若干计算节点之一,所述第二计算节点是部署在第二参与方的若干计算节点之一,所述第一参与方和所述第二参与方用于联合执行安全多方计算MPC,所述第一通信节点,包括:
通信管理单元,用于通过所述第一通信节点与所述第一计算节点间的第一传输控制协议TCP连接,从所述第一计算节点接收第一连接信息,所述第一连接信息包括目标计算任务的任务编号;
连接管理单元,用于在已通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一TCP连接与所述第二TCP连接间的第一映射关系,其中,所述第二连接信息包括所述任务编号;所述第一映射关系用于支持所述第一通信节点通过所述第一TCP连接和/或所述第二TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的业务数据。
10.根据权利要求9所述的通信节点,所述第一连接信息中还包括所述第二参与方的地址信息,所述第二连接信息中还包括所述第一参与方的地址信息。
11.根据权利要求9所述的通信节点,所述若干计算节点实现为若干容器或若干pod。
12.根据权利要求9所述的通信节点,所述第二TCP连接是所述第一通信节点与所述第二计算节点间的TCP连接。
13.根据权利要求9所述的通信节点,所述第一通信节点部署在所述第一参与方,所述第二参与方中还部署有第二通信节点,所述第二TCP连接是所述第一通信节点与所述第二通信节点间的TCP连接。
14.根据权利要求13所述的通信节点,所述第二通信节点与所述第二计算节点间建立有第三TCP连接,所述第二TCP连接由所述第二通信节点在其通过所述第三TCP连接接收到来自所述第二计算节点的所述第二连接信息后建立。
15.根据权利要求13所述的通信节点,其中,
所述通信管理单元,还用于在未通过第二TCP连接接收到来自所述第二计算节点的第二连接信息的情况下,建立所述第一通信节点和所述第二通信节点间的所述第二TCP连接;
所述连接管理单元,还用于建立所述第一TCP连接与所述第二TCP连接间的第一映射关系;
所述通信管理单元,还用于通过所述第二TCP连接向所述第二通信节点发送所述第一连接信息,使所述第二通信节点在通过其与所述第二计算节点间的第三TCP连接接收到所述第二连接信息后,建立所述第二TCP连接与所述第三TCP连接间的第二映射关系,所述第二映射关系用于支持所述第二通信节点通过所述第二TCP连接和/或所述第三TCP连接,转发所述第一计算节点和所述第二计算节点在执行所述目标计算任务的过程中所需交互的数据。
16.根据权利要求9-15中任一项所述的通信节点,其中,
所述通信管理单元,还用于通过所述第一TCP连接接收所述第一计算节点在执行所述目标计算任务的过程中所需发送至所述第二计算节点的第一业务数据,根据所述第一映射关系确定与所述第一TCP连接对应的所述第二TCP连接,并通过所述第二TCP连接转发所述第一业务数据;
和/或,
所述通信管理单元,还用于通过所述第二TCP连接接收所述第二计算节点在执行所述目标计算任务的过程中所需发送至所述第一计算节点的第二业务数据,根据所述第一映射关系确定与所述第二TCP连接对应的所述第一TCP连接,并通过所述第二TCP连接转发所述第二业务数据。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行权利要求1-8中任一项所述的方法。
18.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211415164.1A CN115766829A (zh) | 2022-11-11 | 2022-11-11 | 通信处理方法和通信节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211415164.1A CN115766829A (zh) | 2022-11-11 | 2022-11-11 | 通信处理方法和通信节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766829A true CN115766829A (zh) | 2023-03-07 |
Family
ID=85369954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211415164.1A Pending CN115766829A (zh) | 2022-11-11 | 2022-11-11 | 通信处理方法和通信节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233135A (zh) * | 2023-05-06 | 2023-06-06 | 华控清交信息科技(北京)有限公司 | 一种数据传输方法、系统、装置和可读存储介质 |
-
2022
- 2022-11-11 CN CN202211415164.1A patent/CN115766829A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233135A (zh) * | 2023-05-06 | 2023-06-06 | 华控清交信息科技(北京)有限公司 | 一种数据传输方法、系统、装置和可读存储介质 |
CN116233135B (zh) * | 2023-05-06 | 2023-07-11 | 华控清交信息科技(北京)有限公司 | 一种数据传输方法、系统、装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110601906B (zh) | 一种基于区块链的数据传输方法及装置 | |
CN109474936B (zh) | 应用于多个lora网关之间的物联网通讯方法及系统 | |
CN101674255B (zh) | 一种企业服务总线的消息转发方法、服务器及其系统 | |
CN107204873B (zh) | 一种切换目标域名解析服务器的方法及相关设备 | |
US20110060830A1 (en) | Method, system and device for device capabilities exchange | |
CN104980528A (zh) | 实现节点间通信的方法、系统及装置 | |
CN113596191A (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
US11283730B2 (en) | Data migration method and apparatus | |
RU2712813C1 (ru) | Способ и система для обработки уведомления о регистрации узла | |
CN101686141A (zh) | 一种实现已读状态同步的方法及设备 | |
CN110875914B (zh) | 一种基于共享会话链路传输消息的方法及装置 | |
CN103631652A (zh) | 虚拟机迁移的实现方法及系统 | |
CN110995829B (zh) | 实例调用方法、装置及计算机存储介质 | |
CN115766829A (zh) | 通信处理方法和通信节点 | |
CN116668511A (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
US10204098B2 (en) | Method and system to communicate between devices through natural language using instant messaging applications and interoperable public identifiers | |
CN112202877A (zh) | 网关联动方法、网关、云服务器及用户终端 | |
CN113794618B (zh) | 基于虚拟网卡的冗余网络通信方法、装置及终端设备 | |
CN103685398A (zh) | 通信连接建立方法及通信系统 | |
CN109802982B (zh) | 一种双连接实现方法、装置及系统 | |
CN114942853A (zh) | 数据处理系统 | |
CN105119805B (zh) | 一种即时通信数据传输方法及即时通信数据传输系统 | |
CN110572440B (zh) | 用于数据传输的方法及装置、家电设备、存储介质 | |
CN103546513B (zh) | 一种客户端页面间通信的方法及装置 | |
CN110830600B (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 |