CN115361238B - 一种网络通信方法、终端及存储介质 - Google Patents
一种网络通信方法、终端及存储介质 Download PDFInfo
- Publication number
- CN115361238B CN115361238B CN202211285524.0A CN202211285524A CN115361238B CN 115361238 B CN115361238 B CN 115361238B CN 202211285524 A CN202211285524 A CN 202211285524A CN 115361238 B CN115361238 B CN 115361238B
- Authority
- CN
- China
- Prior art keywords
- connection
- program
- connection identifier
- coprocessor
- address
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013507 mapping Methods 0.000 claims description 74
- 238000007726 management method Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络通信方法、终端及存储介质,在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与应用程序通信的远端设备的远端IP地址和远端端口信息,建立应用程序的第一连接标识符和第二连接标识符;其中,第一连接标识符用于表示协处理器与宿主机之间的连接通路,第二连接标识符用于表示远端设备与宿主机之间的连接通路;协处理器与宿主机之间进行总线通信,宿主机与远端设备之间进行网络通信;在获取到通信请求后,基于第一连接标识符和第二连接标识符,使得协处理器的应用程序通过宿主机与远端设备通信。通过上述方案,无网卡的协处理器可以借用宿主机的网络通信功能,实现与外部设备的网络通信。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种网络通信方法、终端及存储介质。
背景技术
协处理器是一种能够协助中央处理器完成其无法执行或执行效率、效果低下的处理工作的处理器,支持部署应用程序用于进行计算和存储任务,且协处理器完全独立于宿主机,例如:数据协处理器(Data Processing Unit,DPU)、图形协处理器(GraphicsProcessing Unit ,GPU)、安全协处理器(Secure Processing Unit,SPU)。
目前大部分协处理器都不具有网卡,仅通过数据总线与宿主机之间进行通信,无法直接与网络通信实现与远端设备的通信,因此无法直接部署依赖网络的服务或应用,限制了协处理器的应用。
发明内容
本发明的主要目的在于提供一种网络通信方法、终端及计算机可读存储介质,旨在解决现有技术中协处理器无法与外部设备进行网络通信的问题。
为实现上述目的,本发明实施例提供了一种网络通信方法,所述方法包括:
在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与所述应用程序通信的远端设备的远端IP地址和远端端口信息,建立所述应用程序的第一连接标识符和第二连接标识符;
其中,所述第一连接标识符用于表示所述协处理器与宿主机之间的连接通路,所述第二连接标识符用于表示所述远端设备与所述宿主机之间的连接通路;所述协处理器与所述宿主机之间进行总线通信,所述宿主机与所述远端设备之间进行网络通信;
在获取到通信请求后,基于所述第一连接标识符和所述第二连接标识符,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备通信。
可选地,所述应用程序为服务端程序时,所述在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与所述应用程序通信的远端设备的远端IP地址和远端端口信息,确定所述应用程序的第一连接标识符和第二连接标识符,具体包括:
获取所述服务端程序的网络配置信息,所述网络配置信息至少包括:所述服务端程序在所述协处理器内部绑定的源IP地址、源端口信息,以及所述服务端程序需映射到所述宿主机的目的IP地址、目的端口信息;
根据所述服务端程序的所述网络配置信息,生成所述服务端程序的所述IP地址、所述源端口信息和所述目的IP地址、所述目的端口信息之间的映射关系,作为第一映射关系;
在所述宿主机接收到来自所述远端设备的连接请求后,根据所述连接请求中所述远端设备的远端IP地址、远端端口信息以及所述宿主机的目的IP地址、目的端口信息,确定所述服务端程序的所述第二连接标识符并生成对应的连接建立消息;
在所述协处理器接收到来自所述宿主机的所述连接建立消息后,根据所述第一映射关系,确定所述连接建立消息中所述目的IP地址和所述目的端口信息对应的所述源IP地址和所述源端口信息;
根据所述连接建立消息中所述目的IP地址和所述目的端口信息及其对应的所述源IP地址和所述源端口信息,生成所述应用程序的所述第一连接标识符。
可选地,所述应用程序为客户端程序时,所述在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与所述应用程序通信的远端设备的远端IP地址和远端端口信息,确定所述应用程序的第一连接标识符和第二连接标识符,具体包括:
获取所述客户端程序的网络配置信息;所述网络配置信息包括:所述客户端程序访问的所述远端设备的远端IP地址、远端端口信息;
根据所述网络配置信息,为所述客户端程序分配一个所述协处理器的源端口;
建立所述客户端程序对应的所述源端口的源端口信息、所述客户端程序访问的远端设备的所述远端IP地址、所述远端端口信息之间的映射关系,作为第二映射关系;
在所述客户端程序生成连接请求后,通过所述客户端程序对应的源端口将所述连接请求发送至所述宿主机,建立所述客户端程序的所述第一连接标识符并生成对应的连接建立信息;
在所述宿主机接收到来自所述协处理器的所述连接建立信息后,根据所述连接建立信息中的所述第二映射关系,建立所述客户端程序的所述第二连接标识符。
可选地,所述基于所述第一连接标识符和所述第二连接标识符,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备通信,具体包括:
确定各所述第一连接标识符与对应的所述第二连接标识符的映射关系,作为第三映射关系并存储至所述协处理器;
在获取到通信请求后,基于各所述第一连接标识符与对应的所述第二连接标识符的第三映射关系,使得所述协处理器中的所述应用程序通过所述宿主机与所述远端设备进行网络通信。
可选地,在所述应用程序为服务端程序时,所述在获取到通信请求后,基于所述第一连接标识符与所述第二连接标识符的第三映射关系,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备进行网络通信,具体包括:
在所述远端设备向所述协处理器的所述服务端程序发送待传输消息时,生成对应的通信请求;
根据所述通信请求中所述远端IP地址、所述远端端口信息、目的IP地址以及目的端口信息,确定对应的所述第二连接标识符;
基于所述第三映射关系以及所述通信请求对应的第二连接标识符,确定所述通信请求对应的所述第一连接标识符;
根据所述通信请求对应的所述第一连接标识符和所述第二连接标识符,使得所述远端设备通过所述宿主机将对应的待传输消息发送至所述服务端程序。
可选地,在所述应用程序为客户端程序时,所述在获取到通信请求后,基于各所述第一连接标识符与对应的所述第二连接标识符的第三映射关系,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备进行网络通信,具体包括:
在所述客户端程序向对应的所述远端设备发送待传输信息时,生成对应的所述通信请求并将所述通信请求发送至所述客户端程序对应的源端口;
根据所述客户端程序对应的所述源端口,确定所述通信请求对应的所述第一连接标识符;
基于所述第三映射关系以及所述通信请求对应的所述第一连接标识符,确定所述通信请求对应的所述第二连接标识符;
根据所述通信请求对应的所述第一连接标识符和所述第二连接标识符,使得所述客户端程序将待传输消息通过所述宿主机发送至所述远端设备。
可选地,在所述应用程序为服务端程序时,所述网络配置信息还包括:访问所述服务端程序的所述远端设备的远端IP地址和远端端口信息。
可选地,所述基于所述第一连接标识符和所述第二连接标识符,使得所述协处理器中的所述应用程序通过所述宿主机与所述远端设备通信,具体包括:
确定访问所述服务端程序的所述远端设备是否具有匹配的预设规则;所述预设规则为根据所述服务端程序的所述源IP地址、所述源端口信息以及访问所述服务端程序的所述远端设备的所述远端IP地址、所述远端端口信息设置对应的匹配关系;
在访问所述服务端程序的所述远端设备具有匹配的所述预设规则的情况下,基于所述第一连接标识符和所述第二连接标识符,使所述远端设备通过所述宿主机与所述服务端程序进行网络通信。
为了实现上述目的,本发明实施例还提供了一种终端,其包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上任意一项所述的一种网络通信方法中的步骤。
为了实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任意一项所述的一种网络通信方法中的步骤。
本发明通过在获取到连接请求后,协处理器中各个应用程序的网络配置信息、以及与应用程序通信的远端设备的远端IP地址和远端端口信息,确定应用程序的第一连接标识符和第二连接标识符,从而基于第一连接标识符和第二连接标识符,实现协处理器的应用程序通过宿主机与远端设备进行通信。本发明通过借用宿主机的网络通信功能,实现无网卡的协处理器与外部设备的网络通信,从而可以在该协处理器中部署依赖于网络通信的应用程序,扩大协处理器的应用范围,并且通过第一连接标识符和第二连接标识符实现了白名单控制管理的方法,仅能够与指定的远端设备进行网络通信,减少了网络攻击面,保证了协处理器中应用程序的安全性。
附图说明
图1为本发明实施例提供的网络通信方法的一种流程图;
图2为本发明实施例提供的步骤S101的一种流程图;
图3为本发明实施例提供的协处理器与宿主机的连接示意图;
图4为本发明实施例提供的网络管理程序的结构示意图;
图5为本发明实施例提供的步骤S202的流程图;
图6为本发明实施例提供的网络通信方法的另一种流程图;
图7为本发明实施例提供的步骤S101的流程图;
图8为本发明实施例提供的网络通信方法的一种流程图;
图9为本发明实施例提供的步骤S102的流程图;
图10为本发明实施例提供的步骤S902的流程图;
图11为本发明实施例提供的步骤S902的流程图;
图12为本发明实施例提供的终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有技术中,协处理器作为能够协助中央处理器完成其无法执行或执行效率、效果低下的处理工作的一种处理器,支持其内部部署应用程序用于进行计算和存储任务,并且完全独立于宿主机。目前的大部分协处理器都不具有网卡,仅能通过数据总线与对应的宿主机进行通信,无法直接与网络通信实现协处理器与远端设备的通信,因此,协处理器无法直接部署依赖网络的服务或应用,如数据库服务等,限制了协处理器的应用。
为了解决上述问题,本发明实施例提供了一种网络通信方法、终端及存储介质。
图1为本发明实施例提供的网络通信方法的一种流程图,如图1所示,本发明实施例提供的网络通信方法至少可以包括以下步骤:
S101,在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与应用程序通信的远端设备的远端IP地址和远端端口信息,建立应用程序的第一连接标识符和第二连接标识符。
其中,第一连接标识符用于表示协处理器与宿主机之间的连接通路,第二连接标识符用于表示远端设备与宿主机之间的连接通路。
协处理器与宿主机之间进行总线通信,宿主机与远端设备之间进行网络通信。在本发明实施例中,协处理器作为无网卡设备能够辅助宿主机进行计算和存储任务,协处理器与宿主机之间通过数据总线进行通信,而宿主机设置有网卡,能够通过网络通信与其他的远端设备进行通信。
S102,在获取到通信请求后,基于第一连接标识符和第二连接标识符,使得协处理器的应用程序通过宿主机与远端设备通信。
在本发明实施例中,协处理器中应用程序可以是服务端程序,也可以是客户端程序。服务端程序是指能够被外部设备访问的应用程序,而客户端程序是指能够主动访问外部设备的应用程序。可以理解的是,一个应用程序既可以是服务端程序被外部设备访问,也可以是客户端程序能够访问外部设备。
在应用程序为服务端程序时,如图2所示,上述步骤S101至少可以通过以下步骤实现:
S201,获取服务端程序的网络配置信息。
其中,网络配置信息至少包括:服务端程序在协处理器内部绑定的源IP地址、源端口信息,以及服务端程序需映射到宿主机的目的IP地址、目的端口信息。
在本发明实施例中,每个宿主机上可以通过数据总线连接至少一个协处理器,即每个宿主机可以连接多个协处理器。
在本发明实施例中,将协处理器的IP地址称为源IP地址,将宿主机的IP地址称为目的IP地址。并且,将协处理器中的端口称为源端口,将宿主机中的端口称为目的端口,则上述源端口信息可以为协处理器中源端口的端口号,上述目的端口信息可以为宿主机中目的端口的端口号。
上述协处理器可以提前配置若干服务端程序,其中,若干包括:至少一个。协处理器中配置有很多端口,为了对每个端口进行区分,可以将每个端口进行编号,即每个端口都分配有对应的端口号。而对于部署于协处理器中的每个服务端程序都应绑定设置对应的一个端口号(即源端口信息),并且每个服务端程序都需要绑定其协处理器的IP地址(即为源IP地址)。
同时,宿主机中也同样配置有多个端口,每个端口有其对应的端口号。在本发明实施例中,需要提前设置每个服务端程序对应的宿主机的IP地址(即目的IP地址)和端口号(即目的端口信息),服务端程序通过其对应的宿主机的目的IP地址、目的端口信息被外部设备访问,实现与外部设备的通信。
S202,根据服务端程序的网络配置信息,生成服务端程序的源IP地址、源端口信息和对应的目标IP地址、目的端口信息之间的映射关系,作为第一映射关系。
例如,协处理器中的一应用程序为mysql服务,其网络配置信息包括:源IP地址为:127.0.0.1、源端口信息为:10000、目的IP地址为:192.167.0.1、目的端口信息为:3306,则建立的第一映射关系可以为:127.0.0.1:10000-192.167.0.1:3306。
在本发明实施例中,如图3所示,协处理器与宿主机通过数据总线(例如PCIE总线)连接,协处理器和宿主机中均可以提前设置有一个网络管理程序,用于进行网络映射、连接管理等服务。可以理解的是,协处理器和宿主机中设置的网络管理程序是相同的。如图4所示,网络管理程序至少可以包括配置模块、连接管理模块、端口通信模块以及协议模块。
其中,配置模块用于根据每个应用程序所需网络配置信息配置网络代理转发的规则;连接管理模块用于管理连接的建立和连接映射关系的管理。通信模块用于通过标识符(例如套接字)进行协处理器的网络管理程序与应用程序的连接通信,和宿主机的网络管理程序和远端设备的连接通信,并对二者的请求和数据进行转发;协议模块用于管理协处理器和宿主机的网络管理程序通信的数据总线协议,协处理器和宿主机的通信需符合相应的总线协议。
如图5所示,本发明实施例提供的步骤S202至少可以通过以下步骤实现:
S501,将服务端程序的网络配置信息发送到协处理器的网络管理程序的配置模块中。
S502,协处理器的网络管理程序的配置模块将网络配置信息中该服务端程序需映射到的宿主机的目的IP地址、目的端口信息,经过协处理器的网络管理程序的协议模块、数据总线、宿主机的网络管理程序的协议模块,通知至宿主机的网络管理程序的连接管理模块。
S503,宿主机的网络管理程序的连接管理模块根据上述通知中的目的IP地址信息和目的端口信息,绑定该目的端口信息对应的目的端口为该服务端程序的指定端口。
S504,宿主机的网络管理程序的连接管理模块将该服务端程序的指定端口的端口标识符,经过宿主机和协处理器的网络管理程序的协议模块,发送至协处理器的网络管理程序的连接管理模块。
S505,协处理器的网络管理程序的连接管理模块在接收到端口标识符后,建立该服务端程序的源IP地址、源端口信息与对应的目的IP地址、目的端口信息的映射关系,作为第一映射关系,并将该第一映射关系存储至协处理器的网络管理程序的连接管理模块中。
具体地,协处理器的网络管理程序的连接管理模块中可以设置有第一映射表,将协处理器中各个服务端程序的第一映射关系存储至第一映射表中。
并且,由于服务端程序会被相应的远端设备访问,因此步骤S503中还包括:宿主机的网络管理程序的连接管理模块对该指定端口进行监听、接收连接,以实时地监听来自访问该服务端程序的请求。
通过上述步骤S501-S505即可得到各应用程序的第一映射关系,已完成服务端程序的初始化配置。
例如,协处理器中部署的应用程序为mysql服务,其所属协处理器的源IP地址为:127.0.0.1,mysql服务需要供远端设备A中的数据库使用,即该mysql服务为服务端程序。在mysql服务作为服务端程序供远端设备A中的数据库使用时,其绑定的协处理器的源端口为3306;且该mysql服务需绑定宿主机的3306端口,即宿主机的3306端口为mysql服务的目的端口,远端设备B的远端IP地址为:192.168.0.2,远端端口为:5000。
协处理器的网络管理程序收到mysql服务的网络配置信息后,将所需要绑定的宿主机的3306端口经协处理器的协议模块和数据总线通知宿主机的网络管理程序。宿主机的网络管理程序绑定并监听3306端口,并将该3306端口的端口标识符(例如3306)发送至协处理器的网络管理程序,从而确定mysql服务的第一映射关系。
S203,在宿主机接收到来自远端设备的连接请求后,根据连接请求中远端设备的远端IP地址、远端端口信息以及宿主机的目的IP地址、目的端口信息,确定服务端程序的第二连接标识符,并生成对应的连接建立消息。
其中,来自远端设备的连接请求可以包括:远端设备的远端IP地址、远端端口信息以及宿主机的目的IP地址、目的端口信息。
如图6所示,远端设备通过网络通信将第一连接请求发送至宿主机,即远端设备发起对宿主机的IP地址和端口的连接,宿主机根据连接请求中的目的端口信息确定对应的目的端口,并将连接请求发送至该目的端口。
宿主机端的网络管理程序的连接管理模块在监听到该目的端口接收到连接请求后,根据远端IP地址、远端端口信息以及宿主机的目的IP地址、目的端口信息,建立远端设备和宿主机的连接通路,并在建立连接通路后得到标识符(即第二连接标识符),例如12345。
并且,远端设备想要访问与协处理器中的服务端程序,实质上是远端设备中的远端程序想要与协处理器中的服务端程序建立连接并通信。
与协处理器中的服务端程序相同,远端设备内部可以有若干远端程序。在本发明实施例中,可以为每个远端程序配置对应的远端端口,因此在远端设备和宿主机的连接通路建立后,可以得到每个远端程序与对应的远端端口的远端标识符。例如,远端设备向宿主机的3306端口发起连接,在连接成功后得到对应的远端标识符/>。
S204,在协处理器接收到来自宿主机的连接建立消息后,根据第一映射关系,确定该连接建立消息中目的IP地址和目的端口信息对应的源IP地址和源端口信息。
如图6所示,宿主机在得到第二连接标识符后,通过宿主机的网络管理程序的协议模块通知协处理器的网络管理程序的连接管理模块,告知宿主机监听的目的端口建立了新连接,即宿主机向对应的协处理器发送连接建立消息。其中,连接建立消息包括:第二连接标识符。
协处理器的网络管理程序的连接管理模块根据第一映射关系,确定第二连接标识符对应的目的IP地址和目的端口信息所对应的源IP地址和源端口信息。
S205,根据连接建立消息中目的IP地址和目的端口信息及其对应的源IP地址和源端口信息,生成应用程序的第一连接标识符。
例如,目的端口信息为3306,根据第一映射关系,确定的源IP地址和源端口信息为:127.0.0.1:3306。则宿主机的3360端口建立与127.0.0.1:3306的连接,得到第一连接标识符。服务端程序接收到由协处理器的网络管理程序发起的连接,得到内部标识符。其中,内部标识符用于表示服务端程序与源端口信息之间的连接通路。
在应用程序为客户端程序时,如图7所示,本发明实施例提供的步骤S101至少可以通过以下步骤实现:
S701,获取客户端程序的网络配置信息。
其中,网络配置信息包括:客户端程序访问的远端设备的远端IP地址、远端端口信息。
S702,根据网络配置信息,为客户端程序分配一个协处理器的源端口。
S703,建立客户端程序对应的源端口的源端口信息、客户端程序访问的远端设备的远端IP地址、远端端口信息之间的映射关系,作为第二映射关系。
具体的,协处理器的网络管理程序的配置模块将客户端程序访问的远端设备的远端IP地址和远端端口信息,发送至协处理器的网络管理程序的连接管理模块,协处理器的连接管理模块会为客户端程序分配一个协处理器的本地端口(即源端口),并构建该源端口与远端IP端口和远端端口信息之间的映射关系。并且,在协处理器的网络管理程序为该客户端程序分配对应的源端口后,会对该源端口进行监听,以实时的获取客户端程序的通信请求。
例如,协处理器中部署的应用程序为mysql服务,mysql服务需要将操作日志定期推送到一台远端设备B(例如服务器)进行存储,即该mysql服务此时为客户端程序,远端设备B的远端IP地址+远端端口信息为:“192.168.0.2:5000”,协处理器的网络管理程序为mysql服务分配一个本地端口10000,则该第二映射关系为:127.0.0.1:10000转发到192.168.0.2:5000端口。
S704,在客户端程序生成连接请求后,通过客户端程序对应的源端口将该连接请求发送至宿主机,建立客户端程序的第一连接标识符并生成对应的连接建立信息。
其中,客户端程序生成的连接请求至少包括:客户端程序对应的源端口信息、客户端程序访问的远端设备的远端IP地址和远端端口信息。
如图8所示,协处理器中的客户端程序运行后,若想要访问远端设备,则由客户端程序发起对远端设备IP和端口的连接,并生成对应的连接请求,如图8所示,协处理器的网络管理程序的连接管理模块监听到客户端程序对应的源端口接收到连接请求后,将该连接请求发送到宿主机,建立该协处理器与宿主机之间的连接,生成标识符(即第一连接标识符),并生成对应的连接建立消息。
S705,在宿主机接收到来自协处理器的连接建立消息后,根据该连接建立消息中第二映射关系,生成该客户端程序的第二连接标识符。
在本发明实施例中,宿主机的网络管理程序在接收到连接建立消息后,可以为该客户端程序分配一个对应的目的端口,以建立协处理器与宿主机之间的连接通路。
如图8所示,协处理器的网络管理程序的连接管理模块在生成第一连接标识符后,将对应的连接建立消息发送至宿主机。宿主机的网络管理程序在接收到连接建立消息后,通过连接建立消息中第二映射关系中的远端IP地址和端口信息,将连接请求发送至对应的远端设备,建立宿主机与远端设备的连接,生成标识符(即第二连接标识符)。
例如,协处理器中的数据库服务向远端设备192.168.0.2:5000端口发起连接,该数据库服务对应的协处理器的源IP地址和源端口信息为:127.0.0.1:10000,该数据库服务将第二连接请求转发到协处理器的10000端口上,协处理器的网络管理程序的连接管理模块监听1000端口接收到连接请求后,通知宿主机的网络管理程序向192.168.0.2:5000发起连接,并建立与宿主机的连接通路,得到第一连接标识符。并且在建立协处理器和宿主机的连接后,协处理器的数据库服务得到内部标识符/>。宿主机的网络管理程序收到连接建立消息后,建立与192.168.0.2:5000的连接,得到第二连接标识符/>。远端设备192.168.0.2:5000接收到由宿主机的网络管理程序建立的连接,得到远端标识符/>。
通过上述步骤S701-705连接通路建立完成。设备内的为一条连接,宿主机与远端设备的连接为/>为一条连接。通过/>与/>的映射关系,可以将设备内的连接和宿主机与远端设备的连接关联起来,形成一条连接通路。
如图9所示,本发明实施例提供的步骤S102至少可以通过以下步骤实现:
S901,确定各第一连接标识符与对应的第二连接标识符的映射关系,作为第三映射关系并存储至协处理器中。
如图6、8所示,协处理器在得到标识符和标识符/>之后,建立标识符/>和标识符/>之间的映射关系,即建立第一连接标识符和第二连接标识符的映射关系,作为第三映射关系并存储到协处理器的网络管理程序的连接管理模块中。
具体地,协处理器的网络管理程序的连接管理模块中设置第二映射表,用于存储各个第三映射关系。
在本发明实施例中,上述第一连接标识符、第二连接标识符、内部标识符以及远端标识符均可以为套接字。
S902,在获取到通信请求后,基于各第一连接标识符与对应的第二连接标识符的第三映射关系,使得协处理器的应用程序通过宿主机与远端设备进行网络通信。
在应用程序为服务端程序时,上述通信请求为远端设备生成的,如图10所示,上述步骤S902至少可以通过以下步骤实现:
S1001,在远端设备向协处理器中的服务端程序发送待传输消息时,生成对应的通信请求。
其中,通信请求包括:远端IP地址和远端端口信息、目的IP地址和目的端口信息。
S1002,根据该通信请求中的远端IP地址和远端端口信息、目的IP地址和目的端口信息,确定对应的第二连接标识符。
S1003,基于第三映射关系以及该通信请求对应的第二连接标识符,确定该通信请求对应的第一连接标识符。
S1004,根据该通信请求对应的第一连接标识符和第二连接标识符,使得远端设备通过宿主机将对应的待传输消息发送至协处理器的服务端程序。
具体地,远端程序将待传输消息m写入远端标识符,待传输消息传输m传输至远端标识符/>对应的第二连接标识符/>中,远端设备通过第二连接标识符/>将待传输消息传输至对应的宿主机,宿主机的网络管理程序的通信模块从第二连接标识符/>中得到该待传输消息m,并将该待传输消息写入该第二连接标识符/>对应的第一连接标识符/>中,协处理器通过第一连接标识符/>收到待传输消息m,第一连接标识符/>将待传输消息m写入对应的内部标识符/>,协处理器内的服务端程序从内部标识符/>得到待传输消息m,从而完成远端设备通过宿主机将对应的待传输消息发送至该服务端程序。
在本发明的一些实施例中,在应用程序为服务端程序时,上述网络配置信息也可以包括:访问该服务端程序的远端设备的远端IP地址和远端端口信息。因此,步骤S902还可以包括以下步骤实现:
确定访问服务端程序的远端设备是否具有匹配的预设规则;在访问所述服务端程序的所述远端设备具有匹配的所述预设规则的情况下,基于所述第一连接标识符和所述第二连接标识符,使所述远端设备通过所述宿主机与所述服务端程序进行网络通信。
其中,所述预设规则为根据所述服务端程序的所述源IP地址、所述源端口信息以及访问所述服务端程序的所述远端设备的所述远端IP地址、所述远端端口信息设置。
在本发明实施例中,在远端设备想要访问协处理器中的服务端程序时,服务端程序可以确定与需要与其通信的远端设备是否符合该服务端程序的预设规则,即该远端设备是否具有与服务端程序通信的权限,以保证服务端程序与远端设备通信的安全性。具体地,在服务端程序为服务端程序被远端设备访问时,根据客户端程序对应的转发规则确定想要访问该客户端程序的远端设备是否有相应的访问权限,即是否具有匹配的预设规则,从而保证服务端程序的安全性。
在应用程序为客户端程序时,上述通信请求为该客户端程序生成,如图11所示,上述步骤S902至少还可以通过以下步骤实现:
S1101,在客户端程序向对应的远端设备发送待传输信息时,生成对应的通信请求,并将该通信请求发送至该客户端程序对应的源端口。
S1102,根据该客户端程序对应的源端口,确定该通信请求对应的第一连接标识符。
S1103,基于第三映射关系以及该通信请求对应的第一连接标识符,确定该通信请求对应的第二连接标识符。
S1104,根据该通信请求对应的第一连接标识符和第二连接标识符,使得该客户端程序发将待传输消息通过宿主机发送至远端设备。
具体地,协处理器的客户端程序将待传输消息m写入内部标识符中,待传输消息m传输至内部标识符/>对应的第一连接标识符/>,协处理器通过第一连接标识符将待传输消息m传输至宿主机,宿主机将待传输消息m写入第一连接标识符/>对应的第二连接标识符/>,远端设备通过第二连接标识符/>收到待传输消息m,并降低爱传输消息m写入远端标识符/>,远端设备的远端程序从远端标识符/>收到待传输消息m。
需要说明的是,在实际应用过程中,协处理器中的应用程序即作为客户端程序又作为服务端程序,在该应用程序为客户端程序时按照上述客户端程序的通信方法即可,在该应用程序为服务端程序时按照上述服务端程序的通信方法即可,在此不再多加赘述。
本发明实施例提供的网络通信方法,对于无网卡的协处理器,在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与应用程序通信的远端设备的远端IP地址和远端端口信息,建立应用程序的第一连接标识符和第二连接标识符;其中,第一连接标识符用于表示协处理器与宿主机之间的连接通路,第二连接标识符用于表示远端设备与宿主机之间的连接通路;协处理器与宿主机之间进行总线通信,宿主机与远端设备之间进行网络通信;在获取到通信请求后,基于第一连接标识符和第二连接标识符,使得协处理器的应用程序通过宿主机与远端设备通信。即本发明实施例提供的网络通信方法,可以实现无网卡的协处理器借用宿主机的网络功能与外界进行网络通信,支持协处理器内部署依赖网络的应用程序,同时通过白名单控制的方法,仅将指定的网络内容进行转发,减小了网络的攻击面。
基于上述网络通信方法,本发明实施例还提供了一种终端,如图12所示,其包括至少一个处理器(processor)120;显示屏121;以及存储器(memory)122,还可以包括通信接口(Communications Interface)123和总线124。其中,处理器120、显示屏121、存储器122和通信接口123可以通过总线124完成相互间的通信。显示屏121设置为显示初始设置模式中预设的用户引导界面。通信接口123可以传输信息。处理器120可以调用存储器122中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器122中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器122作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器30通过运行存储在存储器122中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的网络通信方法。
存储器122可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器122可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
基于上述网络通信方法,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的网络通信方法中的步骤。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于终端和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本申请实施例提供的终端和存储介质与方法是一一对应的,因此,终端和存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种网络通信方法,其特征在于,所述方法包括:
在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与所述应用程序通信的远端设备的远端IP地址和远端端口信息,建立所述应用程序的第一连接标识符和第二连接标识符;
其中,所述第一连接标识符用于表示所述协处理器与宿主机之间的连接通路,所述第二连接标识符用于表示所述远端设备与所述宿主机之间的连接通路;所述协处理器与所述宿主机之间进行总线通信,所述宿主机与所述远端设备之间进行网络通信;
在获取到通信请求后,基于所述第一连接标识符和所述第二连接标识符,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备通信;
其中,所述协处理器、所述宿主机均设置有网络管理程序,所述网络管理程序包括连接管理模块;所述协处理器的连接管理模块中设置有第一映射表,所述第一映射表中存储有若干第一映射关系,所述第一映射关系用于表示协处理器的源IP地址、源端口信息与对应的目的IP地址、目的端口信息的映射关系,以使所述宿主机的连接管理模块根据所述第一映射表中的目的端口信息对应的指定端口进行监听,以实时监听来自访问端程序的连接请求。
2.根据权利要求1所述的方法,其特征在于,所述应用程序为服务端程序时,所述在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与所述应用程序通信的远端设备的远端IP地址和远端端口信息,确定所述应用程序的第一连接标识符和第二连接标识符,具体包括:
获取所述服务端程序的网络配置信息,所述网络配置信息至少包括:所述服务端程序在所述协处理器内部绑定的源IP地址、源端口信息,以及所述服务端程序需映射到所述宿主机的目的IP地址、目的端口信息;
根据所述服务端程序的所述网络配置信息,生成所述服务端程序的所述IP地址、所述源端口信息和所述目的IP地址、所述目的端口信息之间的映射关系,作为第一映射关系;
在所述宿主机接收到来自所述远端设备的连接请求后,根据所述连接请求中所述远端设备的远端IP地址、远端端口信息以及所述宿主机的目的IP地址、目的端口信息,确定所述服务端程序的所述第二连接标识符并生成对应的连接建立消息;
在所述协处理器接收到来自所述宿主机的所述连接建立消息后,根据所述第一映射关系,确定所述连接建立消息中所述目的IP地址和所述目的端口信息对应的所述源IP地址和所述源端口信息;
根据所述连接建立消息中所述目的IP地址和所述目的端口信息及其对应的所述源IP地址和所述源端口信息,生成所述应用程序的所述第一连接标识符。
3.根据权利要求1所述的方法,其特征在于,所述应用程序为客户端程序时,所述在获取到连接请求后,基于协处理器中各应用程序的网络配置信息、以及与所述应用程序通信的远端设备的远端IP地址和远端端口信息,确定所述应用程序的第一连接标识符和第二连接标识符,具体包括:
获取所述客户端程序的网络配置信息;所述网络配置信息包括:所述客户端程序访问的所述远端设备的远端IP地址、远端端口信息;
根据所述网络配置信息,为所述客户端程序分配一个所述协处理器的源端口;
建立所述客户端程序对应的所述源端口的源端口信息、所述客户端程序访问的远端设备的所述远端IP地址、所述远端端口信息之间的映射关系,作为第二映射关系;
在所述客户端程序生成连接请求后,通过所述客户端程序对应的源端口将所述连接请求发送至所述宿主机,建立所述客户端程序的所述第一连接标识符并生成对应的连接建立信息;
在所述宿主机接收到来自所述协处理器的所述连接建立信息后,根据所述连接建立信息中的所述第二映射关系,建立所述客户端程序的所述第二连接标识符。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一连接标识符和所述第二连接标识符,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备通信,具体包括:
确定各所述第一连接标识符与对应的所述第二连接标识符的映射关系,作为第三映射关系并存储至所述协处理器;
在获取到通信请求后,基于各所述第一连接标识符与对应的所述第二连接标识符的第三映射关系,使得所述协处理器中的所述应用程序通过所述宿主机与所述远端设备进行网络通信。
5.根据权利要求4所述的方法,其特征在于,在所述应用程序为服务端程序时,所述在获取到通信请求后,基于所述第一连接标识符与所述第二连接标识符的第三映射关系,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备进行网络通信,具体包括:
在所述远端设备向所述协处理器的所述服务端程序发送待传输消息时,生成对应的通信请求;
根据所述通信请求中所述远端IP地址、所述远端端口信息、所述目的IP地址以及所述目的端口信息,确定对应的所述第二连接标识符;
基于所述第三映射关系以及所述通信请求对应的第二连接标识符,确定所述通信请求对应的所述第一连接标识符;
根据所述通信请求对应的所述第一连接标识符和所述第二连接标识符,使得所述远端设备通过所述宿主机将对应的待传输消息发送至所述服务端程序。
6.根据权利要求4所述的方法,其特征在于,在所述应用程序为客户端程序时,所述在获取到通信请求后,基于各所述第一连接标识符与对应的所述第二连接标识符的第三映射关系,使得所述协处理器的所述应用程序通过所述宿主机与所述远端设备进行网络通信,具体包括:
在所述客户端程序向对应的所述远端设备发送待传输信息时,生成对应的所述通信请求并将所述通信请求发送至所述客户端程序对应的所述源端口;
根据所述客户端程序对应的所述源端口,确定所述通信请求对应的所述第一连接标识符;
基于所述第三映射关系以及所述通信请求对应的所述第一连接标识符,确定所述通信请求对应的所述第二连接标识符;
根据所述通信请求对应的所述第一连接标识符和所述第二连接标识符,使得所述客户端程序将待传输消息通过所述宿主机发送至所述远端设备。
7.根据权利要求2所述的方法,其特征在于,在所述应用程序为服务端程序时,所述网络配置信息还包括:访问所述服务端程序的所述远端设备的远端IP地址和远端端口信息。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一连接标识符和所述第二连接标识符,使得所述协处理器中的所述应用程序通过所述宿主机与所述远端设备通信,具体包括:
确定访问所述服务端程序的所述远端设备是否具有匹配的预设规则;所述预设规则为根据所述服务端程序的所述源IP地址、所述源端口信息以及访问所述服务端程序的所述远端设备的所述远端IP地址、所述远端端口信息设置对应的匹配关系;
在访问所述服务端程序的所述远端设备具有匹配的所述预设规则的情况下,基于所述第一连接标识符和所述第二连接标识符,使所述远端设备通过所述宿主机与所述服务端程序进行网络通信。
9.一种终端,其特征在于,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如权利要求1-8任意一项所述的一种网络通信方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述的一种网络通信方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211285524.0A CN115361238B (zh) | 2022-10-20 | 2022-10-20 | 一种网络通信方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211285524.0A CN115361238B (zh) | 2022-10-20 | 2022-10-20 | 一种网络通信方法、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115361238A CN115361238A (zh) | 2022-11-18 |
CN115361238B true CN115361238B (zh) | 2023-03-24 |
Family
ID=84007871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211285524.0A Active CN115361238B (zh) | 2022-10-20 | 2022-10-20 | 一种网络通信方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115361238B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674133A (zh) * | 2021-07-27 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | Gpu集群共享显存系统、方法、装置及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090837B2 (en) * | 2004-05-27 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | Communication in multiprocessor using proxy sockets |
CN114116393A (zh) * | 2021-11-26 | 2022-03-01 | 新华三大数据技术有限公司 | 一种采集虚拟机的gpu性能数据的方法、装置和设备 |
CN115203708B (zh) * | 2022-09-14 | 2022-12-23 | 粤港澳大湾区数字经济研究院(福田) | 一种应用数据部署至协处理器的方法及系统 |
-
2022
- 2022-10-20 CN CN202211285524.0A patent/CN115361238B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674133A (zh) * | 2021-07-27 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | Gpu集群共享显存系统、方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115361238A (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104467B (zh) | 开发环境构建方法、装置以及平台系统和存储介质 | |
CN111404753B (zh) | 一种扁平网络配置方法、计算机设备及存储介质 | |
CN105335309B (zh) | 一种数据传输方法及计算机 | |
US11928493B2 (en) | Sharing of FPGA board by multiple virtual machines | |
CN111343262B (zh) | 分布式集群登录方法、装置、设备和存储介质 | |
WO2018076882A1 (zh) | 存储设备的操作方法及物理服务器 | |
CN112333017A (zh) | 一种服务配置方法、装置、设备及存储介质 | |
CN110691042A (zh) | 资源分配方法及装置 | |
CN112087401A (zh) | 分布式存储中实现服务质量的方法和装置 | |
WO2017166997A1 (zh) | 智能网卡侧的异常处理方法和装置 | |
CN115361238B (zh) | 一种网络通信方法、终端及存储介质 | |
CN108563492B (zh) | 数据获取方法、虚拟机以及电子设备 | |
CN104821939B (zh) | 一种用于实现计算机与移动设备间异步通信的方法和装置 | |
CN105988871B (zh) | 一种远端内存分配方法、装置和系统 | |
CN116436968A (zh) | 一种服务网格通信方法、系统、装置以及存储介质 | |
KR101262849B1 (ko) | 가상화 시스템 상에서 영상장치를 할당 및 해제하기 위한 장치 및 방법 | |
CN104166624B (zh) | 在虚拟环境下基于物理内存的内存优化方法和装置 | |
CN114296916B (zh) | 一种提高释放rdma性能的方法、装置及介质 | |
US10075476B2 (en) | Reusable zone | |
CN113408745B (zh) | 一种任务的调度方法、装置、设备及存储介质 | |
CN113726881A (zh) | 通信连接建立方法、相关装置及计算机程序产品 | |
CN105354148B (zh) | 一种数据处理方法及相关装置 | |
CN112995333B (zh) | 一种远程文件激活方法、系统及相关装置 | |
CN116383127B (zh) | 节点间通信方法、装置、电子设备及存储介质 | |
JP7146124B1 (ja) | 端末装置、方法およびプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20221118 Assignee: Shenzhen Qiangji Computing Technology Co.,Ltd. Assignor: Guangdong Hong Kong Macao Dawan District Digital Economy Research Institute (Futian) Contract record no.: X2023980045750 Denomination of invention: A network communication method, terminal, and storage medium Granted publication date: 20230324 License type: Exclusive License Record date: 20231103 |
|
EE01 | Entry into force of recordation of patent licensing contract |