CN118118423A - 网络通信方法、装置、计算机设备以及存储介质 - Google Patents

网络通信方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN118118423A
CN118118423A CN202410533340.4A CN202410533340A CN118118423A CN 118118423 A CN118118423 A CN 118118423A CN 202410533340 A CN202410533340 A CN 202410533340A CN 118118423 A CN118118423 A CN 118118423A
Authority
CN
China
Prior art keywords
process instance
network
network card
instance
cards
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.)
Granted
Application number
CN202410533340.4A
Other languages
English (en)
Other versions
CN118118423B (zh
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.)
Sichuan Ningsi Software Co ltd
Original Assignee
Sichuan Ningsi Software 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 Sichuan Ningsi Software Co ltd filed Critical Sichuan Ningsi Software Co ltd
Priority to CN202410533340.4A priority Critical patent/CN118118423B/zh
Publication of CN118118423A publication Critical patent/CN118118423A/zh
Application granted granted Critical
Publication of CN118118423B publication Critical patent/CN118118423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种网络通信方法、装置、计算机设备以及存储介质,涉及网络通信技术领域。该方法包括:获取应用程序中第一进程实例的网络连接请求;响应于第一进程实例的网络连接请求,根据多个网卡的负载情况在多个网卡中为第一进程实例分配网卡;利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输。不仅能够避免网卡由于负载过重导致数据传输过程中,由于路径拥堵导致卡顿现象的出现,还能够提高多网卡环境下网卡的资源利用率。

Description

网络通信方法、装置、计算机设备以及存储介质
技术领域
本申请一般涉及网络通信技术领域,尤其涉及一种网络通信方法、装置、计算机设备以及存储介质。
背景技术
在计算机网络环境中,一台终端设备可能会配备多个网络接口卡(NetworkInterface Cards,简称NICs),从而构成了一个多网卡环境。
在多网卡的环境下,当前的网络通信方案通常是为整个终端设备配置统一默认的网络,会使得操作系统上所有的应用程序通过同样的数据传输路径传输数据。这样,不仅存在传输资源的浪费问题,还会导致数据传输路径拥堵现象的发生。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种网络通信方法、装置、计算机设备以及存储介质,不仅能够避免网卡由于负载过重导致数据传输过程中,由于路径拥堵导致卡顿现象的出现,还能够提高多网卡环境下网卡的资源利用率。
第一方面,本申请提供了一种网络通信方法,该方法包括:获取应用程序中第一进程实例的网络连接请求;响应于第一进程实例的网络连接请求,根据多个网卡的负载情况在多个网卡中为第一进程实例分配网卡;利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输。
第二方面,本申请提供了一种网络通信装置,该网络通信装置包括:
获取模块,用于获取应用程序中第一进程实例的网络连接请求。
网卡分配模块,用于响应于第一进程实例的网络连接请求,根据多个网卡的负载情况在多个网卡中为第一进程实例分配网卡。
数据传输模块,利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输。
第三方面,本申请提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如本申请描述的方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请描述的方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括指令,当该指令被运行时,使得如本申请描述的方法被执行。
本申请提出的网络通信方法、装置、计算机设备以及存储介质,考虑到在多网卡的环境下,当前的网络通信方案不仅存在资源浪费的问题,还会导致数据传输路径拥堵现象的发生。因此,本申请在获取到应用程序中第一进程实例的网络连接请求时,通过衡量多个网卡的负载情况,在多个网卡中为第一进程实例分配网卡,从而实现网卡的动态分配,不仅避免了网卡由于负载过重导致数据传输过程中,由于路径拥堵导致卡顿现象的出现,还能够提高多网卡环境下网卡的资源利用率。以便更好的控制和管理网络流量,提高了应用程序的进程实例在多网卡环境下运行的灵活性和可管理性。使得在利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输时,保障了数据的传输速率,从而更好地适应多网卡环境及特殊复杂网络架构下的业务需求。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种网络通信系统的结构示意图;
图2为本申请实施例提供的一种网络通信方法的流程示意图;
图3为本申请实施例提供的另一种网络通信方法的流程示意图;
图4为本申请实施例提供的又一种网络通信方法的的流程示意图;
图5为本申请实施例提供的一种网络通信装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本申请实施例涉及了大量神经网络和图像的相关应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络和图像领域的相关术语和概念进行介绍。
在多网卡的环境下,当前的网络通信方案通常是为整个终端设备配置统一默认的网络,会使得操作系统上所有的应用程序通过同样的数据传输路径传输数据。这样,不仅存在传输资源的浪费问题,还会导致数据传输路径拥堵现象的发生。
基于此,本申请实施例所提供一种网络通信方法、装置、计算机设备以及存储介质,该方案的技术原理为:当应用程序中有进程实例发起网络连接请求时,通过衡量多个网卡的负载情况,在多个网卡中为进程实例动态分配网卡,并利用动态分配的网卡与该进程实例之间的数据传输路径对该进程实例进行数据传输。
另外,考虑到进程实例在运行的过程中可能由于网络信号差或者其他原因导致网络断开,而重新发起网络连接请求的现象时常发生。因此,通过建立一个全局记录链表,当为某一个进程实例分配完成网卡后,在该进程实例运行的过程中,将包含了该进程实例的进程信息与为该进程实例所分配网卡的网卡信息之间的对应关系的配置数据记录在全局记录链表中。当进程实例运行过程中进行网络重连时,通过查询全局记录链表中记录的关于该进程实例的配置数据为该进程实例再次分配网卡,以减少设备的计算量,提高网络连接的效率,从而避免。
图1为本申请实施例提供的一种网络通信系统的结构示意图。本申请实施例所提供的网络通信方法,可应用于该网络通信系统100。参考图1,该网络通信系统100包括一个或多个终端设备101以及服务器102。
本申请实施例提供的网络通信方法可以在终端设备101上被执行,服务器102可以是应用程序的后台服务器,为应用程序提供数据。相应的,本申请以下提及的网络通信装置可以部署于终端设备101上,具体可以根据实际应用场景进行调整,例如,本申请的网络通信方法,可以通过插件的方式部署于终端设备101中。其中,该终端设备可以是安装有应用程序的移动电话、个人计算、平台电脑、智能手机、车载终端、可穿戴式设备等,本申请实施例对此不作限定。
服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面将结合图1,以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。以下具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
如图2所示,本申请实施例提供一种网络通信方法,该方法可应用于图1所示的终端设备101或服务器102,该方法具体包括以下步骤:
201、获取应用程序中第一进程实例的网络连接请求。
在一些实施例中,网络连接请求还可以携带网卡配置命令,该网卡配置命令用于指示对第一进程实例进行网卡分配。
在另一些实施例中,当获取到第一进程实例的网络连接请求时,即指示对第一进程实例进行网卡分配。
可选的,通过拦截操作系统中关于第一进程实例的网络连接请求,来获取应用程序中第一进程实例的网络连接请求。
作为一个示例,当第一进程实例进行网络连接时,会向操作系统发起网络连接请求,Windows驱动服务端通过操作系统的应用程序编程接口(Application ProgrammingInterface,API)拦截该网络连接请求,从而获取该第一进程实例的网络连接请求。
可选的,第一进程实例的网络连接请求可以是初次的网络连接请求,例如在应用程序刚开始启动(即开始运行时)的时候发起的网络连接请求;也可以是第一进程实例在运行过程中,由于网络断开而重新发起的网络连接请求。
可以理解的是,进程实例指的是一个正在运行的应用程序的一个实例。换句话说,当执行一个应用程序时,操作系统会创建一个进程,这个进程就是该应用程序的一个实例。每个进程都有其独立的内存空间和资源,操作系统负责管理所有进程的执行,包括中央处理器(Central Processing Unit,CPU)时间的分配、内存管理以及输入输出操作。进程实例通常包括代码、正在使用的数据和一个执行状态。当多次运行同一个应用程序时,每次运行都会创建一个新的进程实例,每个实例都有其独立的进程标识符(Process Identifier,PID)。例如,文本编辑器的应用程序,每次打开一个新的文本文件时,都会启动该文本编辑器程序的一个新的进程实例。所有进程实例都属于同一个应用程序(即文本编辑器)的副本,但每个进程实例都是独立运行的,各自拥有自己的状态和系统资源分配。
需要说明的是,进程实例的网络连接是指在操作系统中,一个运行的程序(即进程实例)建立的用于数据传输的网络通道。每个运行的程序都被操作系统分配一个唯一的进程标识符(Process ID, PID),即进程实例的进程信息,而进程实例则是指在特定时间点运行的进程的具体实例。
202、响应于第一进程实例的网络连接请求,根据多个网卡的负载情况在多个网卡中为第一进程实例分配网卡。
一般情况下,一个进程实例可对应分配一个网卡,为进程实例所分配网卡与进程实例的对象关系可以是一对一关系或者一对多关系。
可选的,在多网卡环境下,各网卡的负载情况可以从多个维度进行分析和监控,可以包括但不限于以下的一项或多项:
1.带宽利用率:即每个网卡的带宽使用情况,包括发送(上传)和接收(下载)的速率。峰值和平均带宽使用情况。
2.吞吐量:即网卡处理数据的能力,通常以每秒可以传输的数据量(比如Mbps或Gbps)来衡量。
3.错误率:即网络接口的错误包数,包括由于碰撞、CRC错误、帧错等导致的错误。
4.丢包率:即数据包丢失的情况,可能由于网络拥堵、配置错误或硬件问题导致。
5.碰撞数:即在使用半双工通信模式的网络中,网卡尝试同时进行发送和接收而导致的碰撞事件数量。
6.队列长度:即网卡等待发送或处理的数据包队列长度。长队列可能意味着网络拥塞或网卡性能瓶颈。
7.CPU使用率:即网卡处理数据时占用的CPU资源。某些网卡具有辅助处理功能,可以减轻CPU的负担。
8.中断和上下文切换:即网络活动引起的中断频率,以及为处理网络数据而进行的CPU上下文切换次数。
9.连接状态:即网络连接的当前状态,例如是否活跃、是否有错误等。
10.流量类型和分布:即通过各个网卡的流量类型(如HTTP、FTP、数据库流量等)和流量分布情况。
11.多路径使用情况:即如果配置了多路径路由(Multipath Routing,MP),不同流量的路径选择和相应的网卡负载。
12.网络延迟和抖动:即网络传输延迟和延迟波动情况。
基于上述,网卡的负载情况对于维护网络性能、确保高可用性较为至关重要。通常可以通过网络监控工具、操作系统内置的命令行工具(如ifconfig、netstat、ip等)或者网络管理软件来获取这些信息。在企业环境中,可能还会使用专业的网络性能监控解决方案来实时监控和分析网络负载情况。
203、利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输。
可选的,在操作系统中,为进程实例分配网卡之后,会将该进程实例与网卡建立网络连接,因此,还涉及到网络命名空间、策略路由和进程实例的网络接口(即网卡)的绑定。当一个进程实例被绑定到一个特定的网络接口(即网卡)时,形成为进程实例分配的网卡与该进程之间的数据传输路径,通过该数据传输路径对该进程实例的数据进行传输。
在一种可能的实现方式中,利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输具体包括:建立为第一进程实例分配的网卡与第一进程实例之间的网络连接,在网络连接成功后,得到为第一进程实例分配的网卡与第一进程实例之间的数据传输路径,利用该传输路径对第一进程实例进行数据传输。
其中,网络命名空间(Network Namespace)是一种虚拟化技术,它允许在同一物理主机上隔离网络环境。每个网络命名空间都有自己的网络设备、IP地址、路由规则和iptables规则等。可以分配一个或多个网络接口(即网卡)到特定的网络命名空间中,并在这个命名空间内启动第一进程实例,第一进程实例的所有网络活动都将通过这个命名空间中的网络接口。而策略路由(Policy Routing)是基于某些策略(如源地址、目的地址、端口号等)对网络流量进行控制的一种方法。例如,在Linux中,可以使用iprule和iproute命令来设置策略路由,从而根据数据包的特征来选择适当的路由表。进程实例的网络接口绑定是将该进程实例绑定到为其分配的网络接口的IP地址。
本申请实施例提出的网络通信方法,考虑到在多网卡的环境下,当前的网络通信方案不仅存在资源浪费的问题,还会导致数据传输路径拥堵现象的发生。因此,本方法在获取到应用程序中第一进程实例的网络连接请求时,通过衡量多个网卡的负载情况,在多个网卡中为第一进程实例分配网卡,从而实现网卡的动态分配,不仅避免了网卡由于负载过重导致数据传输过程中,由于路径拥堵导致卡顿现象的出现,还能够提高多网卡环境下网卡的资源利用率。以便更好的控制和管理网络流量,提高了应用程序的进程实例在多网卡环境下运行的灵活性和可管理性。使得在利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输时,保障了数据的传输速率,从而更好地适应多网卡环境及特殊复杂网络架构下的业务需求。
在本申请其中的一个实施例中,根据多个网卡的负载情况在多个网卡中为第一进程实例分配网卡,包括:在全局记录链表中查询是否存在第一进程实例的配置数据;全局记录链表至少用于记录各进程实例的配置数据,配置数据包括处于运行状态的进程实例的进程信息与为进程实例所分配网卡的网卡信息之间的对应关系。
若存在,则基于第一进程实例的配置数据中网卡的负载情况,在多个网卡中为第一进程实例分配网卡。
若不存在,则在多个网卡中负载量不超过预设阈值的一个或多个网卡中,为第一进程实例分配网卡。
作为一个示例,以Windows操作系统为例,Windows驱动服务端将应用程序的进程实例在Windows网络栈上的数据传输路径与指定网卡(即为该进程实例分配的网卡)关联,实现数据传输走指定网卡的目的。
全局记录链表还可以用于记录各进程实例对应的应用程序的可执行文件路径。
其中,应用程序的可执行文件包含了能够被计算机操作系统执行的机器码(或字节码,取决于平台)的文件。应用程序的可执行文件路径指的是该应用程序的可执行文件(通常是一个二进制文件)在文件系统中的位置。这个路径用于告知操作系统在哪里可以找到和启动应用程序。
不同的操作系统具有不同的文件结构和路径表示方式。例如,在Windows操作系统中,可执行文件通常具有“.exe”扩展名,并且可能存储在多个不同的位置。例如,一个常见的安装路径可能是“C:\Program Files\”或者“C:\Program Files (x86)\ ”目录下,具体路径取决于应用程序的安装过程。例如,某应用程序的完整路径可能类似于“C:\ProgramFiles\SomeApplication\SomeApplication.exe”。
在本申请其中的一个实施例中,基于第一进程实例的配置数据中的网卡的负载情况,在多个网卡中为第一进程实例分配网卡,包括以下两种情况:
在确定第一进程实例的配置数据中网卡的负载量不超过预设阈值的情况下,则将第一进程实例的配置数据中的网卡分配于第一进程实例。
在确定第一进程实例的配置数据中网卡的负载量超过预设阈值的情况下,则根据一个或多个其他网卡的负载情况,在一个或多个其他网卡中为第一进程实例分配网卡;一个或多个其他网卡为多个网卡中未对第一进程实例进行配置的网卡。
可以理解的是,本方法不仅限于上述基于第一进程实例的配置数据的网卡的负载量来评估是否将配置数据中的网卡分配于第一进程实例,也可以不考虑该网卡的负载量,直接将配置数据中的网卡分配于第一进程实例。
在本申请其中的一个实施例中,本方法还包括:在第一进程实例运行的过程中,将包含了第一进程实例的进程信息以及为第一进程实例分配的网卡的网卡信息的配置数据(即第一进程实例的配置数据)写入全局记录链表中。
在一种可能的实现方式中,以Windows操作系统为例,Windows驱动服务端拦截应用程序的进程实例的网络连接请求,将进行网络连接的数据传输路径配置为指定传输路径,即将该进程实例与为其分配的网卡进行网络连接,该进程实例与为其分配的网卡之间的数据传输路径即为指定传输路径。
可选的,应用程序首次运行某一进程实例时,会建立一个全局记录链表。该全局记录链表至少用于记录进程实例的进程信息和为该进程实例分配的网卡的网卡信息(也即指定传输路径的信息)。
在一种可能的实现方式中,可以是在确认为第一进程实例所分配的网卡后,先将第一进程实例的配置数据写入全局记录链表;之后,再将第一进程实例中数据传输路径的信息。或者,可以在确认第一进程实例所分配的网卡后,先设置第一进程实例中数据传输路径的信息,再将第一进程实例的配置数据写入全局记录链表中。
作为一个示例,Windows驱动服务端针对该网络连接请求,会先确定进程实例的进程信息的数据结构和为该进程实例分配的网卡的网卡信息的数据结构,将这两种数据结构组合成一个关联结构体(即配置数据)并存入全局记录链表。之后,Windows驱动服务端会将该进程实例中对其进行数据传输的数据传输路径设置成中该网卡对应的数据传输路径。
可选的,在第一进程实例退出时,执行全局记录链表中针对第一进程实例与网卡的配置数据的删除操作。
在本申请其中的一个实施例中,参照图3,在第一进程实例退出时,执行全局记录链表中针对第一进程实例与网卡的配置数据的删除操作,包括:
301、在第一进程实例退出时,调用第一进程实例的第一回调函数判断全局记录链表中是否已记录第一进程实例的配置数据。
302、若是,则对全局记录链表中记录的第一进程实例的配置数据进行删除操作。
303、若否,则不对该第一进程实例做处理。
可以理解的是,在调用第一回调函数(即步骤301)之前还包括步骤:300、加载第一回调函数。
可选的,利用操作系统驱动层回调列表技术,在驱动服务端启动初始化时将第一回调函数加入到操作系统驱动层的回调列表中,当第一进程实例退出时被触发调用。
其中,第一回调函数用于在第一进程实例退出时被触发调用。在一些实施例中,一个第一回调函数可以用于响应多个进程实例的退出,也可以用于响应一个进程实例的退出。例如,第一进程实例在退出时,会调用第一回调函数;第二进程实例在退出时,会调用第二回调函数。又如,第一进程实例或者第二进程实例在退出时,均调用第一回调函数。本申请实施例对此不作任何限定。
可选的,进程实例退出时,驱动服务端中的回调函数被触发调用,根据进程实例的进程信息,删除全局记录链表中与该进程实例的配置数据。
进一步的,删除全局记录链表中与该进程实例的配置数据的同时,释放全局记录链表中该进程实例的配置数据的元素数据结构。
在本申请其中的一个实施例中,通过修改网络连接时的套接字socket的关联路由指向,来实现操作系统网络栈上的数据传输路径的设置,进而实现进程实例与为其分配的网卡之间的关联。因此,利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输具体包括:将第一进程实例在发起网络连接请求时的套接字中的关联路由指向设置为与第一进程实例所分配网卡对应的数据,得到第一进程实例分配的网卡与第一进程实例之间的数据传输路径。利用数据传输路径对第一进程实例进行数据传输。
其中,关联路由指向(Associated Route Binding 或 Route Association)通常在网络路由配置中使用,可以将进程实例的数据流量关联到为其分配的网卡或网络接口。关联路由指向确保特定类型的流量遵循预定义的数据传输路径。
在本申请的另一实施例中,还考虑到一个应用程序存在多个进程实例的可能性,因此,参照图4,该方法还包括:
401、获取应用程序中第二进程实例的网络连接请求。
可选的,通过拦截操作系统中关于第二进程实例的网络连接请求,来获取应用程序中第一进程实例的网络连接请求。
作为一个示例,当第二进程实例进行网络连接时,会向操作系统发起网络连接请求,Windows驱动服务端通过操作系统的应用程序编程接口(Application ProgrammingInterface,API)拦截该网络连接请求,从而获取该第二进程实例的网络连接请求。
402、若第一进程实例和第二进程实例在同一时刻发起各自的网络连接请求,则在多个网卡中为第一进程实例和第二进程实例分配同一网卡。
可选的,若第一进程实例和第二进程实例在同一时刻发起各自的网络连接请求,则基于多个网卡的负载情况,在多个网卡中为第一进程实例和第二进程实例分配同一网卡。
在实际应用中,假如一个网卡在负责第一进程实例或者第二进程实例的数据传输后,导致负载量超过预设阈值,则可以将另一进程实例分配于其他网卡中。换言之,即便第一进程实例与第二进程实例在同一时刻发起各自的网络连接请求,第一进程实例和第二进程实例也可以分配于不同的网卡,本申请实施例对此不作限定。
在一些实施例中,若第一进程实例和第二进程实例在不同时刻发起各自的网络连接请求,则基于多个网卡的负载情况,在多个网卡中为第一进程实例和第二进程实例分配各自的网卡。
可以理解的是,即便第一进程实例和第二进程实例在不同时刻发起各自的网络连接请求,也可以分配同一网卡。例如,先给第一进程实例分配网卡1后,接收到第二进程实例的网络连接请求,假如网卡1的负载量未超过预设阈值,则可以将网卡1同样分配给第二进程实例。
403、利用同一网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输,以及利用同一网卡与第二进程实例之间的数据传输路径对第二进程实例进行数据传输。
可以理解的是,应用程序中同一时刻发起的网络连接请求不限于第一进程实例和第二进程实例,还可以包含该应用程序的其他进程实例。
在一种可能的实现方式中,针对不同的应用程序,可以将同一程序类别(如聊天类、游戏类等)的应用程序所运行的进程实例均划分为同一网卡,对其进行数据传输。
可选的,针对新安装的应用程序,在应用程序安装时,可以通过操作系统的API接口获取该应用程序的标识数据,通过人工智能(Artificial Intelligence,AI)查询到该应用程序的标识所对应的程序类别,之后根据该应用程序的程序类别,将相应类别的网卡分配于该应用程序的进程实例。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。
图5为本申请一个实施例的网络通信装置的方框示意图。
如图5所示,网络通信装置包括:获取模块501、网卡分配模块502、数据传输模块503以及数据处理模块504,其中,
获取模块501,用于获取应用程序中第一进程实例的网络连接请求。
网卡分配模块502,用于响应于第一进程实例的网络连接请求,根据多个网卡的负载情况在多个网卡中为第一进程实例分配网卡。
数据传输模块503,利用为第一进程实例分配的网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输。
在一些实施例中,网卡分配模块502,具体用于,
在全局记录链表中查询是否存在第一进程实例的配置数据;全局记录链表至少用于记录各进程实例的配置数据,配置数据包括处于运行状态的进程实例的进程信息与为进程实例所分配网卡的网卡信息之间的对应关系。
若存在,则基于第一进程实例的配置数据中网卡的负载情况,在多个网卡中为第一进程实例分配网卡。
若不存在,则在多个网卡中负载量不超过预设阈值的一个或多个网卡中,为第一进程实例分配网卡。
在一些实施例中,网卡分配模块502,具体用于,
在确定第一进程实例的配置数据中网卡的负载量不超过预设阈值的情况下,则将第一进程实例的配置数据中的网卡分配于第一进程实例。
在确定第一进程实例的配置数据中网卡的负载量超过预设阈值的情况下,则根据一个或多个其他网卡的负载情况,在一个或多个其他网卡中为第一进程实例分配网卡;一个或多个其他网卡为多个网卡中未对第一进程实例进行配置的网卡。
在一些实施例中,数据处理模块504,用于,
在第一进程实例运行的过程中,将包含了第一进程实例的进程信息以及为第一进程实例分配的网卡的网卡信息的配置数据写入全局记录链表中。
在第一进程实例退出时,执行全局记录链表中针对第一进程实例与网卡的配置数据的删除操作。
在一些实施例中,数据处理模块504,具体用于,
在第一进程实例退出时,调用第一进程实例的第一回调函数判断全局记录链表中是否已记录第一进程实例的配置数据。
若是,则对全局记录链表中记录的第一进程实例的配置数据进行删除操作。
在一些实施例中,数据传输模块503,具体用于将第一进程实例在发起网络连接请求时的套接字中的关联路由指向设置为与第一进程实例所分配网卡对应的数据,得到第一进程实例分配的网卡与第一进程实例之间的数据传输路径;利用数据传输路径对第一进程实例进行数据传输。
在一些实施例中,获取模块501,还用于获取应用程序中第二进程实例的网络连接请求。
网卡分配模块502,还用于若第一进程实例和第二进程实例在同一时刻发起各自的网络连接请求,则在多个网卡中为第一进程实例和第二进程实例分配同一网卡。
数据传输模块503,还用于利用同一网卡与第一进程实例之间的数据传输路径对第一进程实例进行数据传输,以及利用同一网卡与第二进程实例之间的数据传输路径对第二进程实例进行数据传输。
应当理解,网络通信装置中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于网络通信装置及其中包含的单元,在此不再赘述。网络通信装置可以预先实现在计算机设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到计算机设备的浏览器或其安全应用中。网络通信装置中的相应单元可以与计算机设备中的单元相互配合以实现本申请实施例的方案。
在上文详细描述中提及的若干模块或者单元,这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
需要说明的是,本申请实施例的网络通信装置中未披露的细节,请参照本申请上述实施例中所披露的细节,这里不再赘述。
下面参考图6,图6示出了适于用来实现本申请实施例的计算机设备的结构示意图,如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有系统的操作指令所需的各种程序和数据。CPU601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605;包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请的实施例,上文参考流程图图2或图4描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以为的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作指令。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连接表示的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作指令的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括违规人物检测单元、多模态检测单元以及识别单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的计算机设备中所包含的,也可以是单独存在,而未装配入该计算机设备中的。上述计算机可读存储介质存储有一个或多个程序,当上述程序被一个或者一个以上的处理器用来执行本申请所述的网络通信方法或者。例如,可以执行图2所示的网络通信方法的各个步骤。
本申请实施例提供一种计算机程序产品,该计算机程序产品包括指令,当该指令被运行时,使得如本申请实施例描述的方法被执行。例如,可以执行图2所示的网络通信方法的各个步骤。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其他技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种网络通信方法,其特征在于,包括:
获取应用程序中第一进程实例的网络连接请求;
响应于所述第一进程实例的所述网络连接请求,根据多个网卡的负载情况在所述多个网卡中为所述第一进程实例分配网卡;
利用为所述第一进程实例分配的网卡与所述第一进程实例之间的数据传输路径对所述第一进程实例进行数据传输。
2.根据权利要求1所述的网络通信方法,其特征在于,所述根据多个网卡的负载情况在所述多个网卡中为所述第一进程实例分配网卡,包括:
在全局记录链表中查询是否存在所述第一进程实例的配置数据;所述全局记录链表至少用于记录各进程实例的配置数据,所述配置数据包括处于运行状态的进程实例的进程信息与为所述进程实例所分配网卡的网卡信息之间的对应关系;
若存在,则基于所述第一进程实例的配置数据中网卡的负载情况,在所述多个网卡中为所述第一进程实例分配所述网卡;
若不存在,则在所述多个网卡中负载量不超过预设阈值的一个或多个网卡中,为所述第一进程实例分配所述网卡。
3.根据权利要求2所述的网络通信方法,其特征在于,所述基于所述第一进程实例的配置数据中的网卡的负载情况,在所述多个网卡中为所述第一进程实例分配所述网卡,包括:
在确定所述第一进程实例的配置数据中网卡的负载量不超过预设阈值的情况下,则将所述第一进程实例的配置数据中的网卡分配于所述第一进程实例;
在确定所述第一进程实例的配置数据中网卡的负载量超过所述预设阈值的情况下,则根据一个或多个其他网卡的负载情况,在所述一个或多个其他网卡中为所述第一进程实例分配网卡;所述一个或多个其他网卡为所述多个网卡中未对所述第一进程实例进行配置的网卡。
4.根据权利要求2所述的网络通信方法,其特征在于,所述方法还包括:
在所述第一进程实例运行的过程中,将包含了所述第一进程实例的进程信息以及为所述第一进程实例分配的所述网卡的网卡信息的配置数据写入所述全局记录链表中;
在所述第一进程实例退出时,执行所述全局记录链表中针对所述第一进程实例与所述网卡的配置数据的删除操作。
5.根据权利要求4所述的网络通信方法,其特征在于,所述在所述第一进程实例退出时,执行所述全局记录链表中针对所述第一进程实例与所述网卡的配置数据的删除操作,包括:
在所述第一进程实例退出时,调用所述第一进程实例的第一回调函数判断所述全局记录链表中是否已记录所述第一进程实例的配置数据;
若是,则对所述全局记录链表中记录的所述第一进程实例的配置数据进行删除操作。
6.根据权利要求1所述的网络通信方法,其特征在于,所述利用为所述第一进程实例分配的网卡与所述第一进程实例之间的数据传输路径对所述第一进程实例进行数据传输,包括:
将所述第一进程实例在发起所述网络连接请求时的套接字中的关联路由指向设置为与所述第一进程实例所分配网卡对应的数据,得到所述第一进程实例分配的网卡与所述第一进程实例之间的数据传输路径;
利用所述数据传输路径对所述第一进程实例进行数据传输。
7.根据权利要求1所述的网络通信方法,其特征在于,所述方法还包括:
获取应用程序中第二进程实例的网络连接请求;
若所述第一进程实例和所述第二进程实例在同一时刻发起各自的网络连接请求,则在所述多个网卡中为所述第一进程实例和所述第二进程实例分配同一网卡;
利用所述同一网卡与所述第一进程实例之间的数据传输路径对所述第一进程实例进行数据传输,以及利用所述同一网卡与所述第二进程实例之间的数据传输路径对所述第二进程实例进行数据传输。
8.一种网络通信装置,其特征在于,包括:
获取模块,用于获取应用程序中第一进程实例的网络连接请求;
网卡分配模块,用于响应于所述第一进程实例的所述网络连接请求,根据多个网卡的负载情况在所述多个网卡中为所述第一进程实例分配网卡;
数据传输模块,用于利用为所述第一进程实例分配的网卡与所述第一进程实例之间的数据传输路径对所述第一进程实例进行数据传输。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202410533340.4A 2024-04-30 2024-04-30 网络通信方法、装置、计算机设备以及存储介质 Active CN118118423B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410533340.4A CN118118423B (zh) 2024-04-30 2024-04-30 网络通信方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410533340.4A CN118118423B (zh) 2024-04-30 2024-04-30 网络通信方法、装置、计算机设备以及存储介质

Publications (2)

Publication Number Publication Date
CN118118423A true CN118118423A (zh) 2024-05-31
CN118118423B CN118118423B (zh) 2024-07-23

Family

ID=91221207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410533340.4A Active CN118118423B (zh) 2024-04-30 2024-04-30 网络通信方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN118118423B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217172A1 (en) * 2002-03-29 2003-11-20 Intel Corporation Method for transmitting load balancing in mixed speed environments
CN103067976A (zh) * 2013-02-07 2013-04-24 深圳市磊科实业有限公司 一种具有多接口的无线接入点的负载均衡方法和实现装置
US20150029848A1 (en) * 2013-07-24 2015-01-29 Dell Products L.P. Systems And Methods For Native Network Interface Controller (NIC) Teaming Load Balancing
WO2015027771A1 (zh) * 2013-09-02 2015-03-05 华为技术有限公司 一种虚拟机的资源配置方法和通信设备
CN104580391A (zh) * 2014-12-18 2015-04-29 国云科技股份有限公司 一种适用于云计算的提高服务器带宽的方法
US20160212696A1 (en) * 2013-09-26 2016-07-21 Huawei Technologies Co., Ltd. Data Packet Processing Method, Network Traffic Management Method, Apparatus, and System
CN107592370A (zh) * 2017-10-31 2018-01-16 郑州云海信息技术有限公司 一种网络负载均衡方法及装置
CN108023829A (zh) * 2017-11-14 2018-05-11 东软集团股份有限公司 报文处理方法及装置、存储介质、电子设备
WO2020236291A1 (en) * 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating efficient load balancing in a network interface controller (nic)

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217172A1 (en) * 2002-03-29 2003-11-20 Intel Corporation Method for transmitting load balancing in mixed speed environments
CN103067976A (zh) * 2013-02-07 2013-04-24 深圳市磊科实业有限公司 一种具有多接口的无线接入点的负载均衡方法和实现装置
US20150029848A1 (en) * 2013-07-24 2015-01-29 Dell Products L.P. Systems And Methods For Native Network Interface Controller (NIC) Teaming Load Balancing
WO2015027771A1 (zh) * 2013-09-02 2015-03-05 华为技术有限公司 一种虚拟机的资源配置方法和通信设备
US20160212696A1 (en) * 2013-09-26 2016-07-21 Huawei Technologies Co., Ltd. Data Packet Processing Method, Network Traffic Management Method, Apparatus, and System
CN104580391A (zh) * 2014-12-18 2015-04-29 国云科技股份有限公司 一种适用于云计算的提高服务器带宽的方法
CN107592370A (zh) * 2017-10-31 2018-01-16 郑州云海信息技术有限公司 一种网络负载均衡方法及装置
CN108023829A (zh) * 2017-11-14 2018-05-11 东软集团股份有限公司 报文处理方法及装置、存储介质、电子设备
WO2020236291A1 (en) * 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating efficient load balancing in a network interface controller (nic)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YANFANG LE等: ""UNO: uniflying host and smart NIC offload for flexible packet processing"", 《HTTPS://DL.ACM.ORG/DOI/ABS/10.1145/3127479.3132252》, 31 December 2017 (2017-12-31) *
何维等: ""一种新的教学用轻量级网络数据包抓取方法"", 《实验技术与管理》, 26 April 2016 (2016-04-26) *

Also Published As

Publication number Publication date
CN118118423B (zh) 2024-07-23

Similar Documents

Publication Publication Date Title
US11706158B2 (en) Technologies for accelerating edge device workloads
JP3382953B2 (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
US10574758B2 (en) Server connection capacity management
CN107135279B (zh) 一种处理长连接建立请求的方法和装置
US20210273990A1 (en) Secure multi-directional data pipeline for data distribution systems
CN111787069A (zh) 业务接入请求的处理方法、装置、设备及计算机存储介质
US11689646B2 (en) Network packet processing method and apparatus and network server
CN111917586A (zh) 容器带宽的调整方法、服务器及存储介质
CN101662414B (zh) 一种数据访问的处理方法、系统和装置
KR20170060118A (ko) 분류된 네트워크 스트림의 관리
US10178033B2 (en) System and method for efficient traffic shaping and quota enforcement in a cluster environment
KR20210023194A (ko) Mec 시스템 및 그 제어방법
US9363199B1 (en) Bandwidth management for data services operating on a local network
CN109379208B (zh) 网络对象管理方法及其装置
CN112104679B (zh) 处理超文本传输协议请求的方法、装置、设备和介质
CN114296953B (zh) 一种多云异构系统及任务处理方法
CN114466226A (zh) 带宽时长占比确定方法、装置、设备和计算机可读介质
US11576181B2 (en) Logical channel management in a communication system
CN118118423B (zh) 网络通信方法、装置、计算机设备以及存储介质
CN113904871B (zh) 网络切片的接入方法、pcf实体、终端和通信系统
CN111245794B (zh) 数据传输方法和装置
CN115878309A (zh) 资源分配方法、装置、处理核、设备和计算机可读介质
CN114189893A (zh) O-ran能力开放方法、通信系统、装置及存储介质
CN117041147B (zh) 智能网卡设备、主机设备和方法及系统
CN113225257B (zh) 一种upf数据处理的方法、系统及存储介质

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