CN116633886A - 数据传输方法、数据接收端的网卡、电子设备及存储介质 - Google Patents

数据传输方法、数据接收端的网卡、电子设备及存储介质 Download PDF

Info

Publication number
CN116633886A
CN116633886A CN202310582034.5A CN202310582034A CN116633886A CN 116633886 A CN116633886 A CN 116633886A CN 202310582034 A CN202310582034 A CN 202310582034A CN 116633886 A CN116633886 A CN 116633886A
Authority
CN
China
Prior art keywords
data
network card
memory
buffer
target
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
CN202310582034.5A
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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310582034.5A priority Critical patent/CN116633886A/zh
Publication of CN116633886A publication Critical patent/CN116633886A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了数据传输方法、数据接收端的网卡、电子设备及存储介质,其中,数据传输方法应用于数据接收端的网卡,网卡通过总线向数据接收端的主机内存写入数据,该数据传输方法包括:如果网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源,则将目标数据中的部分数据写入至网卡的网卡缓冲区;网卡缓冲区包括依据网卡的片上内存为网卡配置的第一内存缓冲区以及依据网卡的板载内存为网卡配置的第二内存缓冲区;数据发送端通过远程直接内存访问方式向数据接收端发送目标数据;将部分数据从网卡缓冲区写入至主机内存。本申请的方案,在面临突发流量场景时,能够更好的避免数据丢包问题的出现。

Description

数据传输方法、数据接收端的网卡、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及数据传输方法、数据接收端的网卡、电子设备及存储介质。
背景技术
在利用RDMA(Remote Direct Memory Access,远程直接内存访问)技术进行数据传输时,由于数据传输过程中数据发送端以及数据接收端双方操作系统的介入相对较少,因此,数据传输过程中的通讯时延以及所占用的CPU(Central Processing Unit,中央处理器)资源往往都会相对较低。
但在数据发送端通过RDMA方式向数据接收端进行数据发送过程中,如果面临突发流量场景,即,数据发送端在短时间内向数据接收端发送大量的目标数据,此时,数据接收端在接收数据发送端发送的目标数据的过程中,数据接收端的网卡(Network InterfaceCard,网卡)将目标数据写入至主机内存所需消耗的总线带宽资源往往会超出网卡可获取到的总线带宽资源。在所需消耗的总线带宽资源超出可获取到的总线带宽资源时,网卡无法通过总线将目标数据中的部分数据写入至数据接收端的主机内存,在此情况下,时常会有数据丢包问题的出现。而数据丢包问题的出现,往往会影响到数据发送的通讯时延以及数据传输速率。因此,如何尽可能的避免数据丢包问题的出现,成为了相关技术人员亟待解决的技术问题。
发明内容
本申请实施例提供了数据传输方法、数据接收端的网卡、电子设备及存储介质,以解决上述一个或多个技术问题。
第一方面,本申请实施例提供了一种数据传输方法,应用于数据接收端的网卡,该网卡通过总线向数据接收端的主机内存写入数据,该方法包括:
在数据接收端接收数据发送端发送的目标数据的过程中,如果网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源,则将目标数据中的部分数据写入至网卡的网卡缓冲区;网卡缓冲区包括依据网卡的片上内存为网卡配置的第一内存缓冲区以及依据网卡的板载内存为网卡配置的第二内存缓冲区;数据发送端通过远程直接内存访问方式向数据接收端发送目标数据;
将部分数据从网卡缓冲区写入至主机内存。
第二方面,本申请实施例提供了一种数据接收端的网卡,该网卡通过总线向数据接收端的主机内存写入数据,该网卡包括:
第一数据写入模块,用于在数据接收端接收数据发送端发送的目标数据的过程中,如果网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源,则将目标数据中的部分数据写入至网卡的网卡缓冲区;网卡缓冲区包括依据网卡的片上内存为网卡配置的第一内存缓冲区以及依据网卡的板载内存为网卡配置的第二内存缓冲区;数据发送端通过远程直接内存访问方式向数据接收端发送目标数据;
第二数据写入模块,用于将部分数据从网卡缓冲区写入至主机内存。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器在执行计算机程序时实现本申请任一实施例提供的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本申请任一实施例提供的方法。
与现有技术相比,本申请具有如下优点:
本申请的技术方案,由于网卡的网卡缓冲区除了包括依据网卡的片上内存为网卡配置的第一内存缓冲区外,还包括依据网卡的板载内存为网卡配置的第二内存缓冲区,因此,网卡的网卡缓冲区相较于依据网卡的片上内存为网卡配置的第一内存缓冲区具有更高的内存容量。也即是说,相较于依据网卡的片上内存为网卡配置的第一内存缓冲区,网卡的网卡缓冲区能够存储更多的数据。由于网卡的网卡缓冲区能够存储更多的数据,这样,在网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源时,先将目标数据中的部分数据写入至网卡的网卡缓冲区,然后,再将部分数据从网卡缓冲区写入至主机内存,能够更好的避免在所需消耗的总线带宽资源超出可获取到的总线带宽资源时出现数据丢包。也即是说,在因面临突发流量场景导致所需消耗的总线带宽资源超出可获取到的总线带宽资源时,能够更好的避免数据丢包问题的出现,进而能够降低数据丢包问题对数据发送的通讯时延以及数据传输速率的影响。
另外,由于网卡的板载内存配置在网卡内,并且成本相对较低,因此,将网卡的板载内存配置为网卡的第二内存缓冲区,能够降低网卡的网卡缓冲区的配置成本以及配置复杂度。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1示出了本申请实施例中提供的一种数据传输过程的示意图;
图2示出了本申请实施例中提供的一种数据传输方法的流程图;
图3示出了本申请实施例中提供的第二种数据传输过程的示意图;
图4示出了本申请实施例中提供的第三种数据传输过程的示意图;
图5示出了本申请一实施例的数据传输装置的结构框图;以及
图6示出了用来实现本申请实施例的电子设备的框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。
为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
本申请实施例中涉及到数据传输方案,该数据传输方案应用于数据接收端的网卡。其中,网卡是数据接收端中用于负责网络通信的硬件设备,网卡通过总线与数据接收端的主机相连,同时,网卡也通过总线与数据接收端的其他硬件设备相连。若数据发送端通过远程直接内存访问方式向数据接收端进行数据发送,即,通过远程直接内存访问方式向数据接收端发送目标数据,数据接收端的网卡在接收到数据发送端传输的目标数据后会通过总线向主机内存中写入数据(目标数据)。。
本申请实施例中,总线的类型一般是PCIe(PCI Express,高速串行计算机扩展总线标准)总线,也可以是其他类型的总线,网卡的类型一般是Smart NIC(Smart NetworkInterface Card,智能网卡),也可以是其他类型的网卡。另外,需要说明的是,通过远程直接内存访问方式向数据接收端进行数据发送的数据发送端的数目一般是多个,也可以仅仅只有一个。以下具体以总线的类型是PCIe总线、网卡的类型是Smart NIC以及数据发送端的数目是多个为例,来对本申请实施例中提供的数据传输方法进行说明。
本申请实施例中涉及到的数据传输方案,在数据接收端接收数据发送端发送的目标数据的过程中,如果网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源,则先将目标数据中的部分数据写入至网卡的网卡缓冲区,然后,再将部分数据从网卡缓冲区写入至主机内存。
具体的,在网卡通过总线向数据接收端的主机内存写入数据时,要先获取流量控制信用额度(Flow Control Credit)。而在面临突发流量场景导致网卡将目标数据写入至主机内存所需获取的流量控制信用额度超出网卡可获取的流量控制信用额度时,网卡将无法获取足够的流量控制信用额度将目标数据中的部分数据写入至主机内存,此时,即出现了网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源的情况。在所需消耗的总线带宽资源超出可获取到的总线带宽资源的情况出现时,可先将上述部分数据暂时写入至网卡的网卡缓冲区,然后,在网卡能够获取到足够的流量控制信用额度支持部分数据的传输时,再将部分数据从网卡缓冲区写入至主机内存。
本申请实施例中,网卡缓冲区包括第一内存缓冲区以及第二内存缓冲区。其中,第一内存缓冲区是依据网卡的片上内存为该网卡配置的默认内存缓冲区,例如,依据网卡的片上内存为该网卡配置的共享内存缓冲区,第二内存缓冲区是指利用网卡的板载内存为该网卡配置的扩展内存缓冲区。
由于网卡的网卡缓冲区除了包括依据网卡的片上内存为网卡配置的第一内存缓冲区外,还包括依据网卡的板载内存为网卡配置的第二内存缓冲区,因此,网卡的网卡缓冲区相较于依据网卡的片上内存为网卡配置的第一内存缓冲区具有更高的内存容量。也即是说,相较于依据网卡的片上内存为网卡配置的第一内存缓冲区,网卡的网卡缓冲区能够存储更多的数据。由于网卡的网卡缓冲区能够存储更多的数据,这样,在网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源时,先将目标数据中的部分数据写入至网卡的网卡缓冲区,然后,再将部分数据从网卡缓冲区写入至主机内存,能够更好的避免在所需消耗的总线带宽资源超出可获取到的总线带宽资源时出现数据丢包。也即是说,在因面临突发流量场景导致所需消耗的总线带宽资源超出可获取到的总线带宽资源时,能够更好的避免数据丢包问题的出现,进而能够降低数据丢包问题对数据发送的通讯时延以及数据传输速率的影响。
另外,由于网卡的板载内存配置在网卡内,并且成本相对较低,因此,将网卡的板载内存配置为网卡的第二内存缓冲区,能够降低网卡的网卡缓冲区的配置成本以及配置复杂度。
为了更清楚地展示本申请实施例中提供的数据传输方法,首先介绍一下本申请实施例中提供的数据传输方法的一个应用示例,该数据传输方法应用于数据接收端的网卡,并且该网卡通过总线向数据接收端的主机内存写入数据。该应用示例的具体实现过程可参照图1,示出的数据传输过程如下:
在多数情况下,当多个数据发送端在短时间内向网卡发送大量的目标数据时,网卡将目标数据写入至主机内存所需获取的流量控制信用额度会超出网卡可获取的流量控制信用额度。在所需获取的流量控制信用额度超出网卡可获取的流量控制信用额度时,网卡无法获取足够的流量控制信用额度将目标数据中的部分数据写入至主机内存,此时,就出现了网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源的情况,在该情况出现时,要先将目标数据中的部分数据写入至网卡的网卡缓冲区,然后,在网卡能够获取到足够的流量控制信用额度支持部分数据的传输时,再将部分数据从网卡缓冲区写入至主机内存,具体的,在网卡能够获取到足够的流量控制信用额度支持部分数据的传输时,从网卡缓冲区中读取部分数据,并将部分数据写入至主机内存。
由于网卡的网卡缓冲区除了包括依据网卡的片上内存为网卡配置的第一内存缓冲区外,还包括依据网卡的板载内存为网卡配置的第二内存缓冲区,因此,网卡的网卡缓冲区相较于依据网卡的片上内存为网卡配置的第一内存缓冲区具有更高的内存容量。也即是说,相较于依据网卡的片上内存为网卡配置的第一内存缓冲区,网卡的网卡缓冲区能够存储更多的数据。这样,即便当数据发送端在短时间内向网卡异常发送大量的目标数据,导致所需消耗的总线带宽资源超出可获取到的总线带宽资源时,也能够通过先将目标数据中的部分数据写入至网卡的网卡缓冲区,然后,再将部分数据从网卡缓冲区写入至主机内存的方式,来更好的避免数据丢包问题的出现。由于可以更好的避免数据丢包问题的出现,因此,本申请实施例中提供的数据传输方法还能够降低数据丢包问题对数据发送的通讯时延以及数据传输速率的影响。
需要说明的是,本申请实施例中提供的数据传输方法的上述应用示例,是为了便于理解而并非用于限定本申请实施例中提供的数据传输方法。具体的,本申请实施例中提供的数据传输方法的应用场景不做具体限定。
另外,数据接收端以及数据发送端的存在形式可以为具有数据传输功能的硬件设备,例如,服务器以及终端设备等。
下面以具体实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2示出了本申请实施例中提供的一种数据传输方法200的流程图,图2示出的数据传输方法应用于数据接收端的网卡,网卡通过总线向数据接收端的主机内存写入数据,该方法可以包括步骤S201-S202。
在步骤S201中,在数据接收端接收数据发送端发送的目标数据的过程中,如果网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源,则将目标数据中的部分数据写入至网卡的网卡缓冲区;网卡缓冲区包括依据网卡的片上内存为网卡配置的第一内存缓冲区以及依据网卡的板载内存为网卡配置的第二内存缓冲区;数据发送端通过远程直接内存访问方式向数据接收端发送目标数据。
网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源情况的出现,一般是由数据发送端在短时间内向网卡发送大量的目标数据导致,例如,由多个数据发送端在短时间内同时向网卡发送大量的目标数据导致。具体的,在网卡将目标数据写入至主机内存所需获取的流量控制信用额度超出网卡可获取的流量控制信用额度时,网卡将无法获取足够的流量控制信用额度将目标数据中的部分数据写入至主机内存,此时,就出现了网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源的情况。
将目标数据中的部分数据写入至网卡的网卡缓冲区可以是指,先在网卡缓冲区中获取一段可用内存空间作为目标可用内存空间,然后,再将部分数据写入至目标可用内存空间。
在一种可能的实现方式中,为了便于对网卡缓冲区的内存空间进行管理,提高网卡缓冲区的内存空间的利用率以及将目标数据中的部分数据写入至网卡的网卡缓冲区的效率,在将目标数据中的部分数据写入至网卡的网卡缓冲区时,可以先在预先配置的缓冲区队列(Buffer Queue,BQ)中存在剩余缓冲区队列元素时,读取剩余缓冲区队列元素中的目标缓冲区队列元素,然后,再将部分数据写入至目标缓冲区队列元素标识的目标可用内存空间。其中,缓冲区队列用于存储依据网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间。
缓冲区队列由运行在数据接收端的应用程序以及相应的驱动负责创建,一般情况下,在进行数据传输之前,应用程序以及相应的驱动会预先在第二内存缓冲区中预先创建缓冲区队列。如图3所示,应用程序以及相应的驱动预先在第二内存缓冲区中创建缓冲区队列之后,数据接收端的主机(具体可以是指运行在主机上的应用程序)会先依据网卡缓冲区对应的可用内存空间配置多个缓冲区队列元素(Buffer Queue Entry,BQE),然后,再将多个缓冲区队列元素写入至缓冲区队列。其中,依据网卡缓冲区对应的可用内存空间配置多个缓冲区队列元素可以是指,先将网卡缓冲区中的第二内存缓冲区对应的可用内存空间划分为多段可用内存空间,然后,再针对多段可用内存空间分别生成对应的缓冲区队列元素。其中,各段可用内存空间对应连续的物理地址,各缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间,也即是说,各缓冲区队列元素用于标识网卡缓冲区中一段连续的物理地址,具体的,各缓冲区队列元素用于标识第二内存缓冲区中一段连续的物理地址。
在一示例中,第二内存缓冲区对应的可用内存空间为50MB(Mega Byte,兆字节),此时,可以在第二内存缓冲区对应的可用内存空间中选定40MB的可用内存空间,并将这40MB的可用内存空间平均划分为20段可用内存空间,然后,再针对这20段可用内存空间分别生成对应的缓冲区队列元素,即,生成20个缓冲区队列元素,各缓冲区队列元素用于标识第二内存缓冲区中的一段大小为2MB的可用内存空间。
在将多个缓冲区队列元素写入至缓冲区队列之后,由于缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间,在缓冲区队列中存在剩余缓冲区队列元素时,则证明网卡缓冲区中存在至少一段可用内存空间。请再参照图3,在网卡的缓冲区队列中存在剩余缓冲区队列元素时,网卡即可进一步从剩余缓冲区队列元素中读取目标缓冲区队列元素,获取目标缓冲区队列元素标识的目标可用内存空间,并将部分数据写入至目标可用内存空间,以实现将部分数据写入至网卡的网卡缓冲区。
在一种可能的实现方式中,为了能够使剩余缓冲区队列元素可以准确的标识网卡缓冲区中剩余的可用内存空间,在将部分数据写入至目标缓冲区队列元素标识的目标可用内存空间之后,还要进一步在剩余缓冲区队列元素中删除目标缓冲区队列元素。
在一示例中,剩余缓冲区队列元素包括缓冲区队列元素1、缓冲区队列元素2以及缓冲区队列元素3,在缓冲区队列元素1为目标缓冲区队列元素,并且网卡已将部分数据写入至缓冲区队列元素1标识的目标可用内存空间之后,可以从剩余缓冲区队列元素中删除缓冲区队列元素1,以对剩余缓冲区队列元素进行更新,得到更新后的剩余缓冲区队列元素,此时,更新后的剩余缓冲区队列元素包括缓冲区队列元素2以及缓冲区队列元素3。
另外,为了使数据接收端的主机可以及时了解到部分数据的数据存储情况(至少包括该部分数据已被存储在网卡缓冲区中,以及该部分数据在网卡缓冲区中的存储位置),以便在所需消耗的总线带宽资源超出可获取到的总线带宽资源时,将部分数据从网卡缓冲区写入至主机内存,如图3所示,在将部分数据写入至目标缓冲区队列元素标识的目标可用内存空间之后,网卡还可以进一步在预先配置的完成队列(Completion Queue,CQ)中写入第一完成队列元素(Completion Queue Entry,CQE),并将第一完成队列元素发送至数据接收端的主机。为了更好地标识所完成的IO(Input/Output,输入/输出)任务,在将第一完成队列元素发送至数据接收端的主机的同时,还可以发送将部分数据写入至目标可用内存空间的IO任务对应的IO任务标识至数据接收端的主机。其中,完成队列由运行在数据接收端的应用程序以及相应的驱动负责创建,一般情况下,在进行数据传输之前,应用程序以及相应的驱动会预先对完成队列进行创建,第一完成队列元素用于标识将部分数据写入至目标可用内存空间的IO任务已完成。
本申请实施例中提供的数据传输方法,在部分数据写入至网卡的网卡缓冲区之后,要进一步执行步骤S202,在步骤S202中,将部分数据从网卡缓冲区写入至主机内存。
将部分数据从网卡缓冲区写入至主机内存可以是指,从网卡缓冲区中读取部分数据,并将部分数据写入至主机内存。具体的,在网卡能够获取到足够的流量控制信用额度支持部分数据的传输时,即可从网卡缓冲区中读取部分数据,并将部分数据写入至主机内存。
在一种可能的实现方式中,为了能够精准的将部分数据从网卡缓冲区写入至主机内存,在将部分数据从网卡缓冲区写入至主机内存时,可以先获取部分数据在网卡缓冲区中对应的存储物理地址,以及部分数据在主机内存中对应的待写入物理地址,然后,再从存储物理地址对应的内存中读取部分数据,并将部分数据写入至待写入物理地址对应的内存中。
获取部分数据在网卡缓冲区中对应的存储物理地址可以是指,在预先创建的发送队列(Send Queue,SQ)中读取针对部分数据的目标发送队列元素(Send Queue Entry,SQE),获取存储物理地址。其中,目标发送队列元素依据数据接收端的主机(具体可以是指运行在主机上的应用程序)针对部分数据提供的数据发送请求生成,发送队列由运行在数据接收端的应用程序以及相应的驱动负责创建,一般情况下,在进行数据传输之前,应用程序以及相应的驱动会预先对发送队列进行创建。
获取部分数据在主机内存中对应的待写入物理地址可以是指,在网卡的接收队列(Receive Queue,RQ)中读取针对部分数据的目标接收队列元素(Receive Queue Entry,RQE),获取待写入物理地址。其中,目标接收队列元素依据数据接收端的主机(具体可以是指运行在主机上的应用程序)针对部分数据提供的数据接收请求生成,接收队列由运行在数据接收端的应用程序以及相应的驱动负责创建,一般情况下,在进行数据传输之前,应用程序以及相应的驱动会预先对接收队列进行创建。
在一示例中,将部分数据从网卡缓冲区写入至主机内存的过程如图4所示,该过程如下:在网卡将部分数据写入至网卡的网卡缓冲区之后,当网卡读取到用于指示将部分数据从网卡缓冲区发送至主机内存的目标发送队列元素时,网卡会获取部分数据在网卡缓冲区中对应的存储物理地址。当网卡读取到用于指示接收从网卡缓冲区写入至主机内存的部分数据的目标接收队列元素时,网卡会获取部分数据在主机内存中对应的待写入物理地址。在获取到存储物理地址以及待写入物理地址之后,网卡会进一步从存储物理地址对应的内存中读取部分数据,并将部分数据写入至待写入物理地址对应的内存中。其中,目标发送队列元素由数据接收端的主机(具体可以是指运行在主机上的应用程序)在发送队列中写入,目标接收队列元素由数据接收端的主机(具体可以是指运行在主机上的应用程序)在接收队列中写入。另外,为了使数据接收端的主机可以及时了解到部分数据的数据存储情况(至少包括该部分数据已被存储在主机内存中,以及该部分数据在主机内存中的存储位置),在从存储物理地址对应的内存中读取部分数据,并将部分数据写入至待写入物理地址对应的内存中之后,网卡还可以进一步在完成队列中写入第二完成队列元素,并将第二完成队列元素发送至数据接收端的主机。其中,第二完成队列元素用于标识将部分数据从网卡缓冲区写入至主机内存的IO任务已完成,具体的,第二完成队列元素用于标识从存储物理地址中读取部分数据,以及将部分数据写入至写入物理地址的IO任务已完成。为了更好地标识所完成的IO任务,在将第二完成队列元素发送至数据接收端的主机的同时,还可以发送将部分数据从网卡缓冲区写入至主机内存的IO任务对应的IO任务标识至数据接收端的主机。
在一示例中,为了能够使剩余缓冲区队列元素可以准确的标识网卡缓冲区中剩余的可用内存空间,以及后续可以依据剩余缓冲区队列元素对应的元素数目,准确的确定出标注概率,在从存储物理地址中读取部分数据,并将部分数据写入至写入物理地址之后,还需要进一步针对存储物理地址,在网卡的缓冲区队列中配置目标缓冲区队列元素,并将目标缓冲区队列元素添加至缓冲区队列中,以更新剩余缓冲区队列元素。其中,缓冲区队列用于存储依据网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间。也即是说,在将部分数据从网卡缓冲区写入至主机内存之后,需要在缓冲区队列中及时补充目标缓冲区队列元素。
在一种可能的实现方式中,为了准确且及时的控制数据发送端对数据发送速率进行降速,以避免数据丢包问题的出现,在将目标数据中的部分数据写入至网卡的网卡缓冲区之后,还可以先针对目标数据中已写入至主机内存的已写入数据,确定显式拥塞通知的标注概率,然后,再基于标注概率,对已写入数据分别对应的数据确收报文进行显式拥塞通知标注,得到待发送的数据确收报文,之后,将待发送的数据确收报文发送至数据发送端。其中,标注概率用于标识数据接收端对数据发送速率的降速程度,一般情况下,标注概率越大降速程度越大。具体的,标注概率越大,则待发送的数据确收报文中标注有显式拥塞通知的数据确收报文越多,也即是说,标注概率越大,数据接收端接收到的标注有显式拥塞通知的数据确收报文越多。数据接收端接收到的标注有显式拥塞通知的数据确收报文越多,则证明网卡缓冲区中剩余的可用内存空间越少,此时,数据发送端对数据发送速率的降速程度应当越大。
对于已写入至主机内存的已写入数据,数据接收端需要通过网卡向数据接收端发送数据确收报文,以告知数据发送端已写入数据已被数据接收端成功接收。在一示例中,发送数据确收报文的存在形式为ACK(Acknowledgement,确认字符)报文。另外,显式拥塞通知(Explicit Congestion Notification,ECN)的标注概率用于表示对已写入数据分别对应的数据确收报文进行显式拥塞通知标注的概率。
在一种可能的实现方式中,在针对目标数据中已写入至主机内存的已写入数据,确定显式拥塞通知的标注概率时,可先获取网卡的缓冲区队列中存在的剩余缓冲区队列元素,然后,再依据剩余缓冲区队列元素对应的元素数目,确定标注概率。
缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间,剩余缓冲区队列元素可以准确的标识网卡缓冲区中剩余的可用内存空间,而在网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源时,总线已处于满负载状态,在此情况下,如果剩余缓冲区队列元素越少,则表明网卡缓冲区中剩余的可用内存空间越少。为了避免数据丢包问题的出现,在网卡缓冲区中剩余的可用内存空间越少时,则需要数据发送端对数据发送速率进行更大程度的降速。因此,依据剩余缓冲区队列元素对应的元素数目,确定标注概率,可以使标注概率准确的反映出数据发送端要对数据发送速率的降速程度。具体的,在网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源时,网卡缓冲区中剩余的可用内存空间越少,标注概率越大,在此情况下,数据发送端要对数据发送速率的降速程度也越大。
在一示例中,在依据剩余缓冲区队列元素对应的元素数目,确定标注概率时,可以先在针对多个缓冲区队列元素配置的多个数值范围中,确定元素数目对应的数值范围,然后,再在多个数值范围分别对应的标注概率计算模型中,依据元素数目对应的数值范围,确定元素数目对应的标注概率计算模型,之后,利用元素数目以及标注概率计算模型,计算得到标注概率。例如,针对多个缓冲区队列元素(多个缓冲区队列元素的数目为N,N为正整数)配置了三个数值范围,分别记为数值范围1、数值范围2以及数值范围3,其中,数值范围1为大于P(P为小于N的正整数)、小于等于N,数值范围2为小于等于P、大于等于Q(Q为小于P的正整数),数值范围2为大于等于0、小于Q。另外,针对多个数值范围分别配置的标注概率计算模型为数值范围1对应标注概率计算模型1,数值范围2对应标注概率计算模型2以及数值范围3对应标注概率计算模型3,其中,标注概率计算模型1对应的计算公式可以为Y=0,(P<M≤N);标注概率计算模型2对应的计算公式可以为Y=(P-M)/(P-Q),(Q≤M≤P);标注概率计算模型3对应的计算公式可以为Y=1,(0≤M<Q)。其中,M用于表示剩余缓冲区队列元素对应的元素数目,Y表示标注概率。
本申请实施例提供的数据传输方法,由于网卡的网卡缓冲区除了包括依据网卡的片上内存为网卡配置的第一内存缓冲区外,还包括依据网卡的板载内存为网卡配置的第二内存缓冲区,因此,网卡的网卡缓冲区相较于依据网卡的片上内存为网卡配置的第一内存缓冲区具有更高的内存容量。也即是说,相较于依据网卡的片上内存为网卡配置的第一内存缓冲区,网卡的网卡缓冲区能够存储更多的数据。由于网卡的网卡缓冲区能够存储更多的数据,这样,在网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源时,先将目标数据中的部分数据写入至网卡的网卡缓冲区,然后,再将部分数据从网卡缓冲区写入至主机内存,能够更好的避免在所需消耗的总线带宽资源超出可获取到的总线带宽资源时出现数据丢包。也即是说,在因面临突发流量场景导致所需消耗的总线带宽资源超出可获取到的总线带宽资源时,能够更好的避免数据丢包问题的出现,进而能够降低数据丢包问题对数据发送的通讯时延以及数据传输速率的影响。
另外,由于网卡的板载内存配置在网卡内,并且成本相对较低,因此,将网卡的板载内存配置为网卡的第二内存缓冲区,能够降低网卡的网卡缓冲区的配置成本以及配置复杂度。
与本申请实施例提供的方法的应用示例以及方法相对应地,本申请实施例还提供一种应用于数据接收端的网卡,该应用于数据接收端的网卡如图5所示。图5示出了本申请实施例中提供的一种应用于数据接收端的网卡500的结构框图,该应用于数据接收端的网卡500该网卡通过总线向数据接收端的主机内存写入数据,可以包括:
第一数据写入模块501,用于在数据接收端接收数据发送端发送的目标数据的过程中,如果网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源,则将目标数据中的部分数据写入至网卡的网卡缓冲区;网卡缓冲区包括依据网卡的片上内存为网卡配置的第一内存缓冲区以及依据网卡的板载内存为网卡配置的第二内存缓冲区;数据发送端通过远程直接内存访问方式向数据接收端发送目标数据;
第二数据写入模块502,用于将部分数据从网卡缓冲区写入至主机内存。
在一种可能的实现方式中,网卡将目标数据写入至主机内存所需消耗的总线带宽资源超出网卡可获取到的总线带宽资源包括:网卡将目标数据写入至主机内存所需获取的流量控制信用额度超出网卡可获取的流量控制信用额度。
在一种可能的实现方式中,第一数据写入模块501包括:
目标缓冲区队列元素读取子模块,用于在预先配置的缓冲区队列中存在剩余缓冲区队列元素时,读取剩余缓冲区队列元素中的目标缓冲区队列元素;缓冲区队列用于存储依据网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间;
第一数据写入子模块,用于将部分数据写入至目标缓冲区队列元素标识的目标可用内存空间。
在一种可能的实现方式中,该应用于数据接收端的网卡还包括:
目标缓冲区队列元素删除模块,用于在将部分数据写入至目标缓冲区队列元素标识的目标可用内存空间之后,在剩余缓冲区队列元素中删除目标缓冲区队列元素;
和/或,第一完成队列元素写入模块,用于在预先配置的完成队列中写入第一完成队列元素;第一完成队列元素用于标识将部分数据写入至目标可用内存空间的IO任务已完成;
第一完成队列元素发送模块,用于将第一完成队列元素发送至数据接收端的主机。
在一种可能的实现方式中,第二数据写入模块502包括:
物理地址获取子模块,用于获取部分数据在网卡缓冲区中对应的存储物理地址,以及部分数据在主机内存中对应的待写入物理地址;
第二数据写入子模块,用于从存储物理地址对应的内存中读取部分数据,并将部分数据写入至待写入物理地址对应的内存中。
在一种可能的实现方式中,物理地址获取子模块包括:
存储物理地址获取子模块,用于在预先配置的发送队列中读取针对部分数据的目标发送队列元素,获取存储物理地址;目标发送队列元素依据数据接收端的主机针对部分数据提供的数据发送请求生成。
在一种可能的实现方式中,该应用于数据接收端的网卡还包括:
第二完成队列元素写入模块,用于在从存储物理地址对应的内存中读取部分数据,并将部分数据写入至待写入物理地址对应的内存中之后,在网卡的完成队列中写入第二完成队列元素;第二完成队列元素用于标识将部分数据从网卡缓冲区写入至主机内存的IO任务已完成;
第二完成队列元素发送模块,用于将第二完成队列元素发送至数据接收端的主机。
在一种可能的实现方式中,该应用于数据接收端的网卡还包括:
目标缓冲区队列元素配置模块,用于在从存储物理地址中对应的内存读取部分数据,并将部分数据写入至待写入物理地址对应的内存中之后,针对存储物理地址,在预先配置的缓冲区队列中配置目标缓冲区队列元素;缓冲区队列用于存储依据网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间;
目标缓冲区队列元素写入模块,用于将目标缓冲区队列元素添加至缓冲区队列中。
在一种可能的实现方式中,该应用于数据接收端的网卡还包括:
标注概率确定模块,用于在将目标数据中的部分数据写入至网卡的网卡缓冲区之后,针对目标数据中已写入至主机内存的已写入数据,确定显式拥塞通知的标注概率;标注概率用于标识数据接收端对数据发送速率的降速程度;
标注模块,用于基于标注概率,对已写入数据分别对应的数据确收报文进行显式拥塞通知标注,得到待发送的数据确收报文;
报文发送模块,用于将待发送的数据确收报文发送至数据发送端。
在一种可能的实现方式中,标注概率确定模块包括:
剩余缓冲区队列元素获取子模块,用于获取网卡的缓冲区队列中存在的剩余缓冲区队列元素;缓冲区队列用于存储依据网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识网卡缓冲区中的一段可用内存空间;
标注概率确定子模块,用于依据剩余缓冲区队列元素对应的元素数目,确定标注概率。
在一种可能的实现方式中,标注概率确定子模块包括:
数值范围确定子模块,用于在针对多个缓冲区队列元素配置的多个数值范围中,确定元素数目对应的数值范围;
标注概率计算模型确定子模块,用于在多个数值范围分别对应的标注概率计算模型中,依据元素数目对应的数值范围,确定对应的标注概率计算模型;
标注概率计算子模块,用于利用元素数目以及标注概率计算模型,计算得到标注概率。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。
图6为用来实现本申请实施例的电子设备的框图。如图6所示,该电子设备包括:存储器601和处理器602,存储器601内存储有可在处理器602上运行的计算机程序。处理器602执行该计算机程序时实现上述实施例中的方法。存储器601和处理器602的数量可以为一个或多个。
该电子设备还包括:
通信接口603,用于与外界设备进行通信,进行数据交互传输。
如果存储器601、处理器602和通信接口603独立实现,则存储器601、处理器602和通信接口603可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器601、处理器602及通信接口603集成在一块芯片上,则存储器601、处理器602及通信接口603可以通过内部接口完成相互间的通信。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。
本申请实施例还提供了一种芯片,该芯片包括,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。

Claims (14)

1.一种数据传输方法,应用于数据接收端的网卡,所述网卡通过总线向所述数据接收端的主机内存写入数据,所述方法包括:
在所述数据接收端接收数据发送端发送的目标数据的过程中,如果所述网卡将所述目标数据写入至所述主机内存所需消耗的总线带宽资源超出所述网卡可获取到的总线带宽资源,则将所述目标数据中的部分数据写入至所述网卡的网卡缓冲区;所述网卡缓冲区包括依据所述网卡的片上内存为所述网卡配置的第一内存缓冲区以及依据所述网卡的板载内存为所述网卡配置的第二内存缓冲区;所述数据发送端通过远程直接内存访问方式向所述数据接收端发送所述目标数据;
将所述部分数据从所述网卡缓冲区写入至所述主机内存。
2.根据权利要求1所述的方法,其中,所述网卡将所述目标数据写入至所述主机内存所需消耗的总线带宽资源超出所述网卡可获取到的总线带宽资源包括:所述网卡将所述目标数据写入至所述主机内存所需获取的流量控制信用额度超出所述网卡可获取的流量控制信用额度。
3.根据权利要求1所述的方法,其中,所述将所述目标数据中的部分数据写入至所述网卡的网卡缓冲区包括:
在预先配置的缓冲区队列中存在剩余缓冲区队列元素时,读取所述剩余缓冲区队列元素中的目标缓冲区队列元素;所述缓冲区队列用于存储依据所述网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识所述网卡缓冲区中的一段可用内存空间;
将所述部分数据写入至所述目标缓冲区队列元素标识的目标可用内存空间。
4.根据权利要求3所述的方法,其中,在所述将所述部分数据写入至所述目标缓冲区队列元素标识的目标可用内存空间之后,所述方法还包括:
在所述剩余缓冲区队列元素中删除所述目标缓冲区队列元素;
在所述将所述部分数据写入至所述目标缓冲区队列元素标识的目标可用内存空间之后,所述方法还包括:
在预先配置的完成队列中写入第一完成队列元素;所述第一完成队列元素用于标识将所述部分数据写入至所述目标可用内存空间的IO任务已完成;
将所述第一完成队列元素发送至所述数据接收端的主机。
5.根据权利要求1所述的方法,其中,所述将所述部分数据从所述网卡缓冲区写入至所述主机内存包括:
获取所述部分数据在所述网卡缓冲区中对应的存储物理地址,以及所述部分数据在所述主机内存中对应的待写入物理地址;
从所述存储物理地址对应的内存中读取所述部分数据,并将所述部分数据写入至所述待写入物理地址对应的内存中。
6.根据权利要求5所述的方法,其中,所述获取所述部分数据在所述网卡缓冲区中对应的存储物理地址包括:
在预先配置的发送队列中读取针对所述部分数据的目标发送队列元素,获取所述存储物理地址;所述目标发送队列元素依据所述数据接收端的主机针对所述部分数据提供的数据发送请求生成。
7.根据权利要求5所述的方法,其中,在所述从所述存储物理地址对应的内存中读取所述部分数据,并将所述部分数据写入至所述待写入物理地址对应的内存中之后,所述方法还包括:
在预先配置的完成队列中写入第二完成队列元素;所述第二完成队列元素用于标识将所述部分数据从所述网卡缓冲区写入至所述主机内存的IO任务已完成;
将所述第二完成队列元素发送至所述数据接收端的主机。
8.根据权利要求5所述的方法,其中,在所述从所述存储物理地址对应的内存中读取所述部分数据,并将所述部分数据写入至所述待写入物理地址对应的内存中之后,所述方法还包括:
针对所述存储物理地址,在预先配置的缓冲区队列中配置目标缓冲区队列元素;所述缓冲区队列用于存储依据所述网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识所述网卡缓冲区中的一段可用内存空间;
将所述目标缓冲区队列元素添加至所述缓冲区队列中。
9.根据权利要求1所述的方法,其中,在所述将所述目标数据中的部分数据写入至所述网卡的网卡缓冲区之后,所述方法还包括:
针对所述目标数据中已写入至所述主机内存的已写入数据,确定显式拥塞通知的标注概率;所述标注概率用于标识所述数据接收端对所述数据发送速率的降速程度;
基于所述标注概率,对所述已写入数据分别对应的数据确收报文进行显式拥塞通知标注,得到待发送的数据确收报文;
将所述待发送的数据确收报文发送至所述数据发送端。
10.根据权利要求9所述的方法,其中,所述针对所述目标数据中已写入至所述主机内存的已写入数据,确定显式拥塞通知的标注概率包括:
获取预先配置的缓冲区队列中存在的剩余缓冲区队列元素;所述缓冲区队列用于存储依据所述网卡缓冲区对应的可用内存空间配置的多个缓冲区队列元素;缓冲区队列元素用于标识所述网卡缓冲区中的一段可用内存空间;
依据所述剩余缓冲区队列元素对应的元素数目,确定所述标注概率。
11.根据权利要求10所述的方法,其中,所述依据所述剩余缓冲区队列元素对应的元素数目,确定所述标注概率包括:
在针对所述多个缓冲区队列元素配置的多个数值范围中,确定所述元素数目对应的数值范围;
在所述多个数值范围分别对应的标注概率计算模型中,依据所述元素数目对应的数值范围,确定对应的标注概率计算模型;
利用所述元素数目以及所述标注概率计算模型,计算得到所述标注概率。
12.一种数据接收端的网卡,所述网卡通过总线向所述数据接收端的主机内存写入数据,所述网卡包括:
第一数据写入模块,用于在所述数据接收端接收数据发送端发送的目标数据的过程中,如果所述网卡将所述目标数据写入至所述主机内存所需消耗的总线带宽资源超出所述网卡可获取到的总线带宽资源,则将所述目标数据中的部分数据写入至所述网卡的网卡缓冲区;所述网卡缓冲区包括依据所述网卡的片上内存为所述网卡配置的第一内存缓冲区以及依据所述网卡的板载内存为所述网卡配置的第二内存缓冲区;所述数据发送端通过远程直接内存访问方式向所述数据接收端发送所述目标数据;
第二数据写入模块,用于将所述部分数据从所述网卡缓冲区写入至所述主机内存。
13.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-11中任一项所述的方法。
CN202310582034.5A 2023-05-22 2023-05-22 数据传输方法、数据接收端的网卡、电子设备及存储介质 Pending CN116633886A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310582034.5A CN116633886A (zh) 2023-05-22 2023-05-22 数据传输方法、数据接收端的网卡、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310582034.5A CN116633886A (zh) 2023-05-22 2023-05-22 数据传输方法、数据接收端的网卡、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116633886A true CN116633886A (zh) 2023-08-22

Family

ID=87635961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310582034.5A Pending CN116633886A (zh) 2023-05-22 2023-05-22 数据传输方法、数据接收端的网卡、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116633886A (zh)

Similar Documents

Publication Publication Date Title
CN102460405B (zh) 用于通过存储器装置来控制主机存储器存取的方法及系统
US20230259468A1 (en) Multi-core processing system and inter-core communication method therefor, and storage medium
US20210200681A1 (en) Data storage method and apparatus, and server
CN111290973B (zh) 数据写入方法、装置、计算机设备及存储介质
CN113852563B (zh) 报文数据传输方法、装置、终端设备及可读存储介质
US6732249B1 (en) Host computer virtual memory within a network interface adapter
CN111190854A (zh) 通信数据处理方法、装置、设备、系统和存储介质
KR102219759B1 (ko) 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
CN115827506A (zh) 数据写入方法、数据读取方法、装置、处理核和处理器
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN112422485B (zh) 一种传输控制协议的通信方法及装置
CN116633886A (zh) 数据传输方法、数据接收端的网卡、电子设备及存储介质
CN113253939B (zh) 数据处理方法、装置、电子设备及存储介质
CN116032498A (zh) 一种内存区域注册方法、装置及设备
US20120166686A1 (en) Method, apparatus and system for aggregating interrupts of a data transfer
CN115878351B (zh) 消息的传输方法及装置、存储介质及电子装置
CN113422792A (zh) 数据传输方法、装置、电子设备及计算机存储介质
US11431648B2 (en) Technologies for providing adaptive utilization of different interconnects for workloads
CN111124987B (zh) 一种基于pcie的数据传输控制系统和方法
CN116775510B (zh) 数据访问方法、装置、服务器和计算机可读存储介质
CN117807000B (zh) 通道总线仲裁电路、加速装置、方法、系统、装置及介质
CN115982090B (zh) 软硬件协同实现远端内存访问的方法和装置
CN117435118A (zh) 数据远端读取方法、写入方法及相关产品
CN115080258A (zh) 数据传输系统及相关设备
CN116711282A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: Room 554, 5 / F, building 3, 969 Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231210

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province, 310030

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.