CN113595694B - 数据的传输方法、计算设备及存储介质 - Google Patents
数据的传输方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN113595694B CN113595694B CN202111146458.4A CN202111146458A CN113595694B CN 113595694 B CN113595694 B CN 113595694B CN 202111146458 A CN202111146458 A CN 202111146458A CN 113595694 B CN113595694 B CN 113595694B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- sent
- physical machine
- network card
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1841—Resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本申请实施例提供一种数据的传输方法、计算设备及存储介质。在本申请实施例中,从物理机上获取待发送数据,并对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,生成对应的待发送数据包;发送对应的待发送数据包至接收端物理机的智能网卡,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。从而实现在数据传输过程中,网络随路计算的功能,并将与网络传输相关的数据的计算卸载到智能网卡上,改善物理机的CPU负载,提高其利用率。当丢包发生后,可以减少智能网卡发送开销,降低网络性能的恶化。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据的传输方法、计算设备及存储介质。
背景技术
在分布式应用中,运行在不同计算节点之上的进程之间需要频繁的进行网络数据交换。其中,由于频繁的网络数据的交换,会因为有限的缓冲区,导致数据丢包的问题发生,以及计算节点具有较大的计算开销。
然而,在发生丢包后,需要将该丢失的数据包后的所有数据进行发送,这样可能导致网络性能进一步的恶化。
发明内容
本申请的多个方面提供一种数据的传输方法、计算设备及存储介质,用以能够较为灵活地发送丢失的数据包,降低网络性能的恶化,减少计算开销。
本申请实施例提供一种数据的传输方法,该方法可应用于智能网卡,所述智能网卡设置在用于传输数据的物理机,该方法包括:基于直接内存访问,从所述物理机上获取待发送数据,并对所述待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,所述标识可确定出划分后的数据和/或对应的待发送数据包;发送对应的待发送数据包至接收端物理机的智能网卡,以使所述接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
本申请实施例提供一种数据的传输方法,该方法可应用于智能网卡,所述智能网卡设置在用于传输数据的物理机,该方法包括:接收物理机的智能网卡发送端发送的数据包,并获取所述数据包中的发送数据、发送数据的标识以及数据包的标识;根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据所述信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
本申请实施例还提供一种计算设备,设置在用于传输数据的物理机,该计算设备包括:存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述通信组件,用于基于直接内存访问,从所述物理机上获取待发送数据;所述处理器,执行所述计算机程序,以用于:对所述待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,所述标识可确定出划分后的数据和/或对应的待发送数据包;所述通信组件,用于发送对应的待发送数据包至接收端物理机的智能网卡,以使所述接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
在本申请实施例中,基于直接内存访问,从物理机上获取待发送数据,并对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,标识可确定出划分后的数据和/或对应的待发送数据包;发送对应的待发送数据包至接收端物理机的智能网卡,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
其中,对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分,确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,标识可确定出划分后的数据和/或对应的待发送数据包,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。使得,通过对待发送数据进行计算处理,实现在数据传输过程中,对传输中的数据进行在线处理,从而可以实现网络随路计算(In-Network Computing,在数据传输过程中,进行数据的在线计算处理,以达到降低通信延迟、提升整体计算效率等)的功能,并将与网络传输相关的数据的计算卸载到智能网卡上,可以改善物理机的CPU负载,提高物理机的CPU利用率。
此外,能够确定是否存在丢包的情况。同时,当丢包发生后,可以根据标识来定位丢失的数据包,并重新进行丢失的数据包的发送,无需重新发送多个数据包,也无需对整个待发送数据对应的数据包重新发送,减少智能网卡发送开销,降低发生网络丢包时网络性能的恶化。同时,减少实现中所需要的硬件缓冲和对重传多个包所需要的开销。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例的数据的传输方法的流程示意图;
图2为本申请一示例性实施例的数据传输的示意图;
图3为本申请一示例性实施例的数据包传输的示意图;
图4为本申请一示例性实施例的数据包结构的示意图;
图5为本申请一示例性实施例的数据包处理的示意图;
图6为本申请一示例性实施例的数据的传输过程的示意图;
图7为本申请一示例性实施例的数据的传输方法的流程示意图;
图8为本申请一示例性实施例的数据的传输系统的结构示意图;
图9为本申请一示例性实施例提供的数据的传输装置的结构示意图;
图10为本申请一示例性实施例提供的数据的传输装置的结构示意图;
图11为本申请一示例性实施例提供的计算设备的结构示意图;
图12为本申请一示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
根据前文所述可知,在分布式应用中,由于频繁的网络数据的交换,会因为有限的缓冲区,导致数据丢包的问题发生,以及计算节点具有较大的计算开销。然而,在发生丢包后,需要将该丢失的数据包后的所有数据进行发送,则可能需要重传多个数据包,除了可能导致网络性能进一步恶化外,还需要在网络硬件中设置较大的缓冲区,以容纳乱序接收到的网络数据包,这样也会导致网络性能进一步的恶化。
基于此,本申请实施例提供了一种数据的传输方法、计算设备及存储介质,可以能够灵活地发送丢失的数据包,降低网络性能的恶化。
下面结合方法实施例,针对数据的传输过程进行详细说明。
图1为本申请一示例性实施例的一种数据的传输方法的流程示意图。本申请实施例提供的该方法100由智能设备执行,如,智能网卡等。所以该方法100可应用于智能网卡,该智能网卡设置在用于传输数据的物理机,该方法100包括以下步骤:
101:基于直接内存访问,从物理机上获取待发送数据,并对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分。
102:确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包。
标识可确定出划分后的数据和/或对应的待发送数据包。
103:发送对应的待发送数据包至接收端物理机的智能网卡,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
需要说明的是,本申请实施例的执行主体是智能设备,可以是智能网卡。智能设备是与物理机相连接的,或者说相关联的。对于智能设备而言,其具有计算能力以及计算资源,除此以外,其还具有通信能力,可以为物理机进行通信,并且为物理机分担一些处理任务,如本申请实施例中涉及到的数据包的发送、划分等。此外,对于接收端而言,其也可以是物理机和智能设备的配置,然后通过智能设备接收到数据包,从而将数据包中的数据发送至物理机。此外,这里的多个物理机可以组成一个集群,进行分布式任务的处理。或者也可以是非集群的多个物理机之间的通信。具体的实施过程请参考下文描述。
以下针对上述步骤进行详细地阐述:
101:基于直接内存访问,从物理机上获取待发送数据,并对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分。
其中,在本申请实施例中,可以智能网卡为例进行说明,该智能网卡设置在物理机上。其具有CPU(central processing unit,中央处理器)以及内存、网络等资源。其可以进行数据包的发送、处理等。可以帮助其对应的物理机减少由于对数据包的处理等带来CPU等资源的开销。使得物理机可以利用节省出来的CPU资源处理其它任务,提高物理机的处理效率。
除此以外,智能网卡还可以对数据进行计算处理,如对数据进行加解密、对数据进行压缩或编码。只要符合在智能网卡线上数据处理的都可以进行。
例如,物理机在需要向其它物理机进行数据发送的时候,物理机可以先通过智能网卡,将数据发送给智能网卡,或者说,智能网卡将待发送数据从物理机上获取到。智能网卡可以通过自身CPU的处理来获取到待发送数据。智能网卡可以通过直接内存访问的方式(即DMA,Direct Memory Access,直接存储器访问)或者,远程直接内存访问的方式,获取到待发送数据后,智能网卡可以对待发送数据进行编码,生成编码后的数据,并将编码后的待发送数据进行划分成多份,每份数据对应一个待发送数据包,然后才能进行发送。
具体的,对待发送数据进行对应的计算处理,包括:通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
其中,算子是指进行操作的动作。
例如,根据前文所述,智能网卡可以通过算子,如加速算子,对待发送数据进行编码,生成编码后的数据。
此外,在智能网卡上可以具有至少一个算子,由此可以对算子进行选择。具体的,该方法100还包括:根据待发送数据携带的算子信息,选择对应的算子。
例如,根据前文所述,智能网卡可以在获取待发送数据的时候,同时获取到该待发送数据携带的算子信息,如算子名称或ID等标识信息,从而确定对应的加速算子,然后通过对应的加速算子对待发送数据进行编码,生成编码后的数据。
需要说明的是,还可以默认选择对应的算子,如只有一个算子,那么该算子则默认的。或者根据该待发送数据的来源,如根据物理机上不同的应用程序,选择应用程序默认的算子即可,此时则可以根据待发送数据携带的应用程序信息来确定算子。该算子的选择也影响着后续接收端物理机的智能网卡上的算子的选择,其与发送数据包的智能网卡的算子是关联的,如可以相同,也可以是不同,但是彼此关联的,属于处理同一计算处理过程的算子。另,接收端物理机的智能网卡上也可以不具有算子,或者说,接收到的数据包中的数据无需进行算子的计算处理,则不用关心该算子的情况。
具体的,基于直接内存访问,从物理机上获取待发送数据,包括:接收物理机发送的远程直接内存访问请求,根据远程直接内存访问请求,从物理机对应的内存存储区域获取待发送数据。
其中,远程直接内存访问RDMA(Remote Direct Memory Access),是指通过网络把资料直接传入计算机的存储区,将数据从一个物理机快速移动到远程物理机存储器中,而不对物理机的操作系统造成太大的影响,这样就不需要用到多少物理机的处理功能。
例如,根据前文所述,如图2所示,前文所述发送数据的物理机,即源物理机201,其在需要发送数据的时候,可以通过RDMA接口向源智能网卡203发送RDMA请求。源智能网卡203接收到该请求后,可以通过RDMA接口从源物理机201中的源内存2011处获取到源消息2012,也可以称之为报文,该报文中具有待发送数据2031以及其它信息,如接收端物理地址等。源智能网卡203通过该报文获取到该待发送数据后,可以通过加速算子,如加速算子A2032对该待发送数据2031进行计算处理,并进行数据划分,或者说拆分成多份数据,每份数据对应一个数据包。
除此以外,智能网卡还可以从报文中获取到该待发送数据的目标存储信息。具体的,该方法100还包括:基于直接内存访问,从物理机(对应的内存存储区域)获取目标存储信息。
其中,目标存储信息是指待发送数据的目标内存信息,可以包括目标内存地址以及目标内存偏移等。
例如,根据前文所述,智能网卡可以从报文中获取到待发送数据的目标内存地址以及目标内存偏移等。
需要说明的是,在分布式应用中,运行在不同计算节点之上的进程之间需要频繁的进行网络数据交换,统计结果显示,网络数据交换,以及对这些传输数据的处理在计算节点中的整个CPU的运行时间上可以达到20%~30%,对CPU造成沉重的负担。然而通过智能设备,采用RDMA的方式实现远程节点内存之间的直接通信,改善CPU负载,提高CPU利用率。
102:确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包。
其中,标识可确定出划分后的数据和/或对应的待发送数据包。还需要说明的是,该待发送数据包的标识也意味着是划分后的数据的标识,或者说由于待发送数据包与划分后的数据是对应的,所以两者的标识可以一样。标识可以为ID(identification,标识号)。
例如,根据前文所述,智能网卡在划分完数据后,可以根据划分后的数据顺序,对其对应的数据包进行标识。即根据该顺序可以将划分后的数据拼成完成的数据。由此,智能网卡可以根据该顺序确定划分后的数据的标识,如ID。生成标识后,可以对该划分后的数据进行网络打包,生成对应的网络数据包进行发送。
例如,根据前文所述,如图2所示,智能网卡可以生成数据包的ID,以及进行数据包的打包,最终生成多个待发送数据包2033。
为了能够更加精准地确定丢失的数据包,除了上述确定数据包的标识外,还可以确定消息的标识。
具体的,确定划分后的数据对应的待发送数据包的标识,包括:根据划分后的数据,确定对应待发送数据包的标识。
其中,待发送数据的标识是指划分数据前的标识,即也可以是上述源消息的标识,即报文标识。
此外,该方法100还包括:确定获取到的待发送数据所属消息的消息标识。
例如,根据前文所述,智能网卡生成数据包的ID以及待发送数据的消息ID,并进行数据包的打包,最终生成多个待发送数据包。
其中,如图5所示,对获取到的信息501(即消息)进行处理,根据前文可知,该获取到的信息501包括目标内存地址、目标内存偏移以及原始数据(即待发送数据)。可以通过加速算子A 2032为获取到的信息501中的原始数据进行计算处理,得到处理后的数据,并进行划分就不再赘述了。然后智能网卡添加消息标识以及数据包的标识,并对这些信息进行打包,得到生成数据包503。
根据前文可知,由于在RDMA的数据发送中,需要明确接收端的存储信息,所以除了上述数据以及标识外,还需要存储信息。
具体的,生成对应的待发送数据包,包括:根据消息标识、对应待发送数据包的标识、目标存储信息以及划分后的数据,生成数据包的包体以及数据包的包头;根据包体以及包头生成待发送数据包。
例如,根据前文所述,智能网卡可以生成数据包的ID以及待发送数据的消息ID,并将获取到的目标内存地址以及目标内存偏移、以及划分后的数据以及上述ID进行数据包的打包,最终生成待发送数据包进行发送。
其中,如图4所示,图4示出了打包后的数据包格式400。其中,可以包括数据包头401和数据包体402。数据包头401中可以包括源物理机的物理地址,以及目标物理机的地址等信息。数据包体402中则包括有包体数据403,其中包括消息标识,如消息ID,数据包的标识,如数据包的ID,目标内存地址以及目标内存偏移,还有处理后的数据,如划分后的数据。
除此以外,该数据包格式还可以包括循环冗余验证CRC码,即循环冗余验证404等信息,以及通信信息等,由此在通信的过程中,可以确定对应的通信信息。
而为了更好地使得接收端进行存储,则可以对目标存储信息进行划分。
具体的,该方法100还包括:根据划分后的数据,对获取到目标存储信息进行划分,使得划分后的数据对应划分后的目标存储信息。
例如,根据前文所述,智能网卡在获取到报文后,也可以从报文中获取到待发送数据的目标内存地址以及目标内存偏移。智能网卡可以根据划分数据的方式,对应的将目标内存地址以及目标内存偏移进行划分,从而使得每个划分后的数据具有对应的划分后的目标内存地址以及目标内存偏移。
基于此,还需要将划分后的存储信息也进行发送。
具体的,生成对应的待发送数据包,包括:根据消息标识、对应待发送数据包的标识、划分后的目标存储信息以及划分后的数据,生成数据包的包体以及数据包的包头;根据包体以及包头生成待发送数据包。
例如,根据前文所述,智能网卡可以生成数据包的ID以及待发送数据的消息ID,并划分对应的目标内存地址以及目标内存偏移,并对应的进行数据包的打包,最终生成多个待发送数据包。
103:发送对应的待发送数据包至接收端物理机的智能网卡,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
例如,根据前文所述,如图2所示,源智能网卡203在生成网络的数据包后,将待发送数据包2033通过网络205发送目标物理机202的目标智能网卡204。
目标智能网卡204接收到待发送数据包2033后,即可以通过目标智能网卡204抽取待发送数据包2033中的数据包体,然后从中获取到消息ID和数据包的ID,如消息“1”和数据包“1”。由此,目标智能网卡204可以根据消息ID和数据包的ID的顺序,确定出是否存在丢包。如,目标智能网卡接收到标识为消息“1”和数据包“1”的数据包,以及消息“1”和数据包“3”的数据包以及消息“1”和数据包“4”的数据包。那么目标智能网卡204可以确定出丢失了数据包:消息“1”和数据包“2”的数据包。
其中,如图3所示,源智能网卡203在网络205中依次发送对应的数据包,如表示为:消息“1”数据包“1”的第一数据包2054、消息“1”数据包“2”的第二数据包2053、以及消息“1”数据包“3”的第三数据包2052等。当目标智能网卡204在接收到消息“1”数据包“1”的第一数据包2054的情况下,发送一个确认消息2051,该确认消息表示为消息“1”数据包“1”的第一数据包2054接收到,即也是该确认消息2051表示为:消息“1”确认指示“1”。
需要说明的是,如果源智能网卡发送多个消息的数据包时,可以根据不同的消息ID来确定丢失的数据包,以及数据包的重发。
由此,通过确定的标识,可以确定接收到了哪些数据包,同时确定是否存在丢包的情况。
在存在丢失数据包的情况下,该方法100还包括:接收接收端物理机的智能网卡发送的信息,根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据;重新发送标识对应的待发送数据包作为丢失的数据包至接收端物理机的智能网卡。
例如,根据前文所述,目标智能网卡可以向源智能网卡发送信息,该信息携带有丢失数据包的ID,如数据包“2”,此外还可以携带有待发送数据包的标识,即消息ID,如消息“1”。则可以表示为丢失了消息“1”和数据包“2”的数据包。源智能网卡接收到该信息后,根据其中的ID,确定对应的丢失的数据包,可以从智能网卡的缓存中查找对应的数据包,然后重新发送数据包。或者确定丢失的划分后的数据,然后可以重新发送对应的数据包(可以重新打包),至目标智能网卡。应理解,只通过丢失数据包的ID也可以确定对应的丢失的数据包,但是既通过丢失数据包的ID以及消息ID可以更加精准地确定丢失的数据包。
由此,可以不对整个消息的待处理数据进行重新的计算处理,减少了智能网卡的开销。
同时,源智能网卡也可以通过确定的标识,来进行数据包的重发,无需重新发送多个数据包,或者属于整个消息的数据包。
另,也可以对上述待发送数据进行重新计算,然后进行数据包的重新发送。具体的,该方法100还包括:对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,根据丢失的数据包的标识、确定的标识以及对应划分后的数据,生成对应的待发送数据包,以重新发送丢失的数据包。
由于前文已经阐述过了,此处就不再赘述。
除此以外,源智能网卡也可以作为接收端,接收来自其它物理机的数据包。
具体的,该方法100还包括:接收发送端物理机的智能网卡发送的数据包,并获取数据包中的发送数据、发送数据的标识以及数据包的标识;根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
例如,根据前文所述,源智能网卡接收到数据包后,可以先提取该数据包中的包体数据,从而得到其中的消息ID以及数据包ID,如消息“1”数据包“2”。此时,源智能网卡可以根据获取到的如消息“1”数据包“2”,与之前接收到的数据包中的标识信息进行对比,确定是否存在丢包的情况。如果之前接收到的标识信息为消息“1”数据包“1”,则不存在丢包的情况。如果之前并没有接收到消息“1”数据包“1”,或者说没有接收到消息“1”的数据包,则确定存在丢包的情况。当存在丢包,则源智能网卡可以向发送端物理机发送信息,以告知丢失了数据包,且丢失的数据包的ID等信息。如,发送一个未确认消息,该未确认消息表示为:数据包“1”的数据包未接收到,此外该消息还可以携带:消息“1”,从而更加精准地确定丢失的数据包。同时也可以发送一个确认信息,表示接收到了当前的数据包,就不再赘述了。
即使发生了丢包,也不会影响消息中其它网络数据包的传输,这样避免了发生网络丢包时导致网络性能恶化,同时减少实现中所需要的硬件缓冲和对重传多个包所需要的开销。
此外,对于目标智能网卡而言,其上述过程也是相似的,就不再赘述了。
另,除了需要确定是否丢失数据包外,还需要对接收到的数据进行存储,具体的,该方法100还包括:获取数据包中的划分后的目标存储信息,根据划分后的目标存储信息,将发送数据存储至对应物理机的存储区域中。
例如,根据前文所述,源智能网卡可以获取到接收到的数据,以及目标内存地址以及目标内存偏移。然后将接收到的数据,以及目标内存地址以及目标内存偏移发送到源智能网卡中的缓存区中(也可以称为缓冲区中)。然后由缓存区根据目标内存地址以及目标内存偏移,将接收到的数据通过RDMA接口发送至源物理机的内存中。由于同属于一个消息ID的数据包是按照顺序进行存储的,所以也可以按照顺序依次存储至对应的内存中的位置上即可。
当此处需要进行计算处理的时候,也可以进行计算处理。具体的,该方法还包括:对发送数据进行计算处理,得到计算处理后的数据;获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。
其中,根据对应算子,对所述发送数据进行计算处理,得到计算处理后的数据。
此外,对于目标智能网卡也是相似的,如图2所示,根据前文可知,当目标智能网卡204接收到数据包2033后,并获取到接收到的数据,以及目标内存地址以及目标内存偏移,并通过加速算子,如加速算子B 2042,对接收到的数据进行解码,得到解码后的数据2041,然后存储缓存区中。其中,接收到的数据对应的就是前文所述的划分后的数据。然后,再通过缓存区,根据目标内存地址以及目标内存偏移,将解码后的数据2041通过RDMA接口发送至目标物理机202中的目标内存2021中。以使等到属于该消息的所有数据包都接收到后,就可以在目标内存2021中组成目标消息2022。
另,如图5所示,目标智能网卡中对该生成数据包503进行处理,得到处理后的数据,即接收到的数据,然后通过的加速算子,如加速算子B 2042对接收到的处理后的数据进行计算处理。就不再赘述了。得到处理后的信息505,该处理后的信息505可以包括目标内存地址、目标内存偏移以及计算处理后的数据,即数据,然后进行存储。就不再赘述了。
所以对于源智能网卡和目标智能网卡之间的数据交互过程,可以如图6所示。其中,源智能网卡203执行步骤601:发送数据包“1”,至目标智能网卡204。目标智能网卡204接收到该数据包后,基于数据包中的标识,执行步骤602:发送确认信息“1”,至源智能网卡203。源智能网卡203继续执行步骤603:发送数据包“2”,至目标智能网卡204。然后,源智能网卡203继续执行步骤604:发送数据包“3”,至目标智能网卡204。目标智能网卡204,接收到数据包“2”后,基于数据包“2”中的标识,执行步骤605:发送确认信息“2”,至源智能网卡203。目标智能网卡204,接收到数据包“3”后,基于数据包“3”中的标识,执行步骤606:发送确认信息“3”,至源智能网卡203。源智能网卡203继续执行步骤607:发送数据包“4”,至目标智能网卡204。源智能网卡203继续执行步骤608:发送数据包“5”,至目标智能网卡204。目标智能网卡204,接收到数据包“5”后,基于数据包“5”中的标识,确定丢失数据包“4”,则执行步骤609:发送未确认信息“4”,至源智能网卡203。源智能网卡203接收到该未确认信息“4”后,需要重新发送数据包“4”,则执行步骤610:发送数据包“4”,至目标智能网卡204。
基于相似的发明构思,本申请一示例性实施例的一种数据的传输方法的流程示意图。如图7所示,本申请实施例提供的该方法700由智能设备执行,如,智能网卡等。该方法700可应用于智能网卡,智能网卡设置在用于传输数据的物理机,该方法700包括以下步骤:
701:接收发送端物理机的智能网卡发送的数据包,并获取数据包中的发送数据、发送数据的标识以及数据包的标识。
702:根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
需要说明的是,上述步骤701-702的具体实施方式与前文所述的内容相似,就不再赘述了。仅说明:发送数据是指数据包中的原始数据(即划分后的数据)、发送数据的标识是指消息ID。
此外,该方法700还包括:获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至对应物理机的存储区域中。
此外,该方法700还包括:对发送数据进行计算处理,得到计算处理后的数据;获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。
具体的,对发送数据进行计算处理,得到计算处理后的数据,包括:根据对应算子,对发送数据进行计算处理,得到计算处理后的数据。
此处由于前文已经阐述过了就不再赘述了。本方法700未能详尽的内容,请参考前文所述的内容。
图8为本申请一示例性实施例提供的一种数据的传输系统的结构示意图。如图8所示,该系统800可以包括:第一设备801以及第二设备802。在第一设备801上设置有第三设备803。在第二设备802上设置有第四设备804。
其中,第一设备801是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据传输、接收以及处理的设备。在物理实现上,第一设备801可以是任何能够提供计算服务,响应服务请求,并进行数据刷新和同步的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。
第二设备802是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据接收、传输以及处理的设备。在物理实现上,第二设备802可以是任何能够提供计算服务,响应服务请求,并进行数据刷新和同步的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第二设备802的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
此外,第三设备803是一种智能设备,其具有计算能力、存储能力等。可以进行数据的计算处理、划分、传输、接收以及打包等功能。其可以是一种智能网卡。
第四设备804是一种智能设备,其具有计算能力、存储能力等。可以进行数据的计算处理、划分、传输、接收以及打包等功能。其可以是一种智能网卡。
具体的,第三设备803,基于直接内存访问,从物理机上获取待发送数据,并对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,标识可确定出划分后的数据和/或对应的待发送数据包;发送对应的待发送数据包至第四设备804,以使第四设备804根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
此外,在第四设备804存在丢失数据包的情况下,第三设备803,接收第四设备804发送的信息,根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据;重新发送标识对应的待发送数据包作为丢失的数据包至第四设备804。
此外,第三设备803,对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,根据丢失的数据包的标识、确定的标识以及对应划分后的数据,生成对应的待发送数据包,以重新发送丢失的数据包。
具体的,第三设备803,通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
此外,第三设备803,根据待发送数据携带的算子信息,选择对应的算子。
具体的,第三设备803,接收第一设备801发送的远程直接内存访问请求,根据远程直接内存访问请求,从第一设备801对应的内存存储区域获取待发送数据。
此外,第三设备803,从第一设备801对应的内存存储区域获取目标存储信息。
具体的,第三设备803,根据划分后的数据,确定对应待发送数据包的标识。
此外,第三设备803,根据划分后的数据,对获取到目标存储信息进行划分,使得划分后的数据对应划分后的目标存储信息。
具体的,第三设备803,确定获取到的待发送数据所属消息的消息标识;根据消息标识、对应待发送数据包的标识、目标存储信息以及划分后的数据,生成数据包的包体以及数据包的包头;根据包体以及包头生成待发送数据包。
此外,第三设备803,接收第四设备804发送的数据包,并获取数据包中的发送数据、发送数据的标识以及数据包的标识;根据标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至第四设备804,以使第四设备804根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
此外,第三设备803,获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至第一设备801的存储区域中。
此外,第三设备803,对发送数据进行计算处理,得到计算处理后的数据;获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。
具体的,第四设备804,接收第三设备803发送的数据包,并获取数据包中的发送数据、发送数据的标识以及数据包的标识;根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至第三设备803,以使第三设备803根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的待数据,并进行丢失数据包的重新发送。
此外,第四设备804,获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至对应第二设备802的存储区域中。
此外,第四设备804,对发送数据进行计算处理,得到计算处理后的数据;获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。
需要说明的是,在系统800中未能完全阐述的内容请参见前文方法100中的内容,其具体的实施方式也请参见前文所述的方法100的具体实施方式,此处就不再赘述。
在本申请实施例的分布式数据同步的场景中,如图8所示,第一设备801,如源物理机,在需要进行数据同步的时候,可以通过RDMA接口向第三设备803,如源智能网卡,发送RDMA请求。源智能网卡接收到该请求后,可以通过RDMA接口从源物理机中的内存处获取到消息,也可以称之为报文,该报文中具有待发送数据以及其它信息,如第四设备804的物理地址等。即执行了步骤811:获取源数据。源智能网卡通过该报文获取到该待发送数据后,可以通过加速算子A对该数据进行编码处理,然后智能网卡对编码后的数据进行划分,或者说拆分成多份数据,每份数据对应一个数据包。源智能网卡可以从报文中获取到待发送数据的目标内存地址以及目标内存偏移等。
源智能网卡在划分完数据后,可以根据划分后的数据顺序,对其对应的数据包进行标识,如ID,以及待发送数据的消息ID。即根据该顺序可以将划分后的数据拼成完成的数据。由此,源智能网卡可以根据该顺序确定划分后的数据的标识,如ID以及待发送数据的消息ID。并将获取到的目标内存地址以及目标内存偏移、以及划分后的数据以及上述ID进行数据包的打包,最终生成多个待发送数据包进行发送,即执行了步骤812:发送数据包。
第四设备804,如目标智能网卡,接收到数据包后,即可以通过目标智能网卡,抽取数据包中的数据包体,然后从中获取到消息ID和数据包的ID,如消息“1”和数据包“1”。由此,目标智能网卡可以根据消息ID和数据包的ID的顺序,确定出是否存在丢包。如,目标智能网卡接收到标识为消息“1”和数据包“1”的数据包,以及消息“1”和数据包“3”的数据包以及消息“1”和数据包“4”的数据包。那么目标智能网卡可以确定出丢失了数据包:消息“1”和数据包“2”的数据包。目标智能网卡可以向源智能网卡发送信息,该信息携带有丢失数据包的ID以及消息ID,如消息“1”和数据包“2”,表示为丢失了消息“1”和数据包“2”的数据包。源智能网卡接收到该信息后,根据其中的ID,确定对应的丢失的数据包,然后重新发送数据包。或者确定丢失的划分后的数据,然后可以重新进行数据包的发送。如果确定未丢失数据包,则执行步骤814:发送确认信息,至源智能网卡。
目标智能网卡可以获取到接收到的数据,以及目标内存地址以及目标内存偏移。然后将接收到的数据通过加速算子B进行解码,得到解码后的数据,即计算处理后的数据,以及根据目标内存地址以及目标内存偏移将解码后的数据发送到目标智能网卡中的缓存区中(也可以称为缓冲区中)。然后由缓存区根据目标内存地址以及目标内存偏移,将解码后的数据通过RDMA接口发送至第二设备802,如目标物理机,的内存中。即执行了步骤813:发送计算处理后的数据。由于同属于一个消息ID的数据包是按照顺序进行存储的,所以也可以按照顺序依次存储至对应的内存中的位置上即可。
此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
在上述本实施例中,第三设备803、第四设备804进行网络连接。若第三设备803、第四设备804是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。
图9为本申请一示例性实施例提供的一种数据的传输装置的结构框架示意图。该装置900可以应用于智能设备中,具体的可以是智能网卡,智能网卡设置在用于传输数据的物理机。该装置900包括:获取模块901、确定模块902以及发送模块903;以下针对各个模块的功能进行详细的阐述:
获取模块901,用于基于直接内存访问,从物理机上获取待发送数据,并对所述待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分。
确定模块902,用于确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,标识可确定出划分后的数据和/或对应的待发送数据包;
发送模块903,用于发送对应的待发送数据包至接收端物理机的智能网卡,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
此外,在存在丢失数据包的情况下,确定模块902,还用于接收接收端物理机的智能网卡发送的信息,根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据;发送模块903,还用于重新发送标识对应的数据包作为丢失的数据包至接收端物理机的智能网卡。
此外,获取模块901,还用于对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定模块902,还用于确定划分后的数据对应的待发送数据包的标识,根据丢失的数据包的标识、确定的标识以及对应划分后的数据,生成对应的待发送数据包,以重新发送丢失的数据包。
具体的,获取模块901,用于接收物理机发送的远程直接内存访问请求,根据远程直接内存访问请求,从物理机对应的内存存储区域获取待发送数据。
具体的,获取模块901,用于通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
此外,获取模块901,用于根据待发送数据携带的算子信息,选择对应的算子。
此外,获取模块901,用于基于直接内存访问,从物理机(对应的内存存储区域)获取目标存储信息。
具体的,确定模块902,用于根据划分后的数据,确定对应待发送数据包的标识。
此外,该装置900还包括:划分模块,用于根据划分后的数据,对获取到目标存储信息进行划分,使得划分后的数据对应划分后的目标存储信息。
具体的,确定模块902,还用于确定获取到的待发送数据所属消息的消息标识;确定模块902,包括:生成单元,用于根据消息标识、对应待发送数据包的标识、目标存储信息以及划分后的数据,生成数据包的包体以及数据包的包头;根据包体以及包头生成待发送数据包。
此外,该装置900还包括:接收模块,用于接收发送端物理机的智能网卡发送的数据包,并获取数据包中的发送数据、发送数据的标识以及数据包的标识;发送模块903,还用于根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
此外,该装置900还包括:存储模块,用于获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至对应物理机的存储区域中。
具体的,该装置900还包括:处理模块,用于对发送数据进行计算处理,得到计算处理后的数据;获取模块901,用于获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。
本装置900中未能详尽的内容请参考前文所述,就不再赘述。
图10为本申请一示例性实施例提供的一种数据的传输装置的结构框架示意图。该装置1000可以应用于智能设备中,具体的可以是智能网卡,智能网卡设置在用于传输数据的物理机。该装置1000包括:接收模块1001、确定模块1002;以下针对各个模块的功能进行详细的阐述:
接收模块1001,用于接收发送端物理机的智能网卡发送的数据包,并获取数据包中的发送数据、发送数据的标识以及数据包的标识。
确定模块1002,用于根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
此外,该装置1000还包括:存储模块,用于获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至对应物理机的存储区域中。
此外,该装置1000还包括:处理模块,用于对发送数据进行计算处理,得到计算处理后的数据;获取模块,用于获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。
该装置1000未能详尽的内容请参考前文所述。
以上描述了图9所示的装置900的内部功能和结构,在一个可能的设计中,图9所示的装置900的结构可实现为计算设备,如,智能网卡,智能网卡设置在用于传输数据的物理机。如图11所示,该设备1100可以包括:存储器1101、处理器1102以及通信组件1103;
存储器1101,用于存储计算机程序。
通信组件1103,用于基于直接内存访问,从物理机上获取待发送数据。
处理器1102,执行所述计算机程序,以用于:对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,标识可确定出划分后的数据和/或对应的待发送数据包。
通信组件1103,用于发送对应的待发送数据包至接收端物理机的智能网卡,以使接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包。
此外,在存在丢失数据包的情况下,通信组件1103,还用于:接收接收端物理机的智能网卡发送的信息。此外,处理器1102,还用于:根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据。通信组件1103,还用于:重新发送标识对应的待发送数据包作为丢失的数据包至接收端物理机的智能网卡。
此外,处理器1102,还用于:对待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;确定划分后的数据对应的待发送数据包的标识,根据丢失的数据包的标识、确定的标识以及对应划分后的数据,生成对应的待发送数据包,以重新发送丢失的数据包。
具体的,通信组件1103,具体用于:接收物理机发送的远程直接内存访问请求。处理器1102,具体用于:根据远程直接内存访问请求,从物理机对应的内存存储区域获取待发送数据。
此外,处理器1102,还用于:基于直接内存访问,从物理机(对应的内存存储区域)获取目标存储信息。
具体的,处理器1102,具体用于:通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
此外,处理器1102,还用于:根据待发送数据携带的算子信息,选择对应的算子。
具体的,处理器1102,具体用于:根据划分后的数据,确定对应待发送数据包的标识。
此外,处理器1102,还用于:根据划分后的数据,对获取到目标存储信息进行划分,使得划分后的数据对应划分后的目标存储信息。
此外,处理器1102,还用于:确定获取到的待发送数据所属消息的消息标识;具体的,处理器1102,具体用于:根据消息标识、对应待发送数据包的标识、目标存储信息以及划分后的数据,生成数据包的包体以及数据包的包头;根据包体以及包头生成待发送数据包。
此外,通信组件1103,还用于:接收发送端物理机的智能网卡发送的数据包。处理器1102,还用于:获取数据包中的发送数据、发送数据的标识以及数据包的标识;根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识。通信组件1103,还用于:发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
此外,处理器1102,还用于:获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至对应物理机的存储区域中。
此外,处理器1102,还用于:对发送数据进行计算处理,得到计算处理后的数据;获取数据包中的目标存储信息,根据目标存储信息,将计算处理后的数据存储至对应物理机的存储区域中。 此处未能详尽的内容请参考前文所述的方式。就不再过多赘述了。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1-图6方法实施例中一种数据的传输方法的步骤。
以上描述了图10所示的装置1000的内部功能和结构,在一个可能的设计中,图10所示的装置1000的结构可实现为计算设备,如,智能网卡,设置在用于传输数据的物理机。如图12所示,该设备1200可以包括:存储器1201、处理器1202以及通信组件1203;
存储器1201,用于存储计算机程序。
通信组件1203,用于接收发送端物理机的智能网卡发送的数据包。
处理器1202,用于获取数据包中的发送数据、发送数据的标识以及数据包的标识。根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识。
通信组件1203,用于发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
此外,处理器1202,用于获取数据包中的目标存储信息,根据目标存储信息,将发送数据存储至对应物理机的存储区域中。
此外,处理器1202,用于对发送数据进行计算处理,得到计算处理后的数据;获取数据包中的目标存储信息,根据目标存储信息,将所述计算处理后的数据存储至对应物理机的存储区域中。
此处未能详尽的内容请参考前文所述的方式。就不再过多赘述了。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图7方法实施例中一种数据的传输方法的步骤。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种数据的传输方法,其特征在于,所述方法可应用于智能网卡,所述智能网卡设置在用于传输数据的物理机,所述方法包括:
基于直接内存访问,从所述物理机上获取待发送数据,并对所述待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;
确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,所述标识可确定出划分后的数据和/或对应的待发送数据包;
发送对应的待发送数据包至接收端物理机的智能网卡,以使所述接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包;
基于直接内存访问,从物理机上获取待发送数据,包括:接收物理机发送的远程直接内存访问请求,根据远程直接内存访问请求,从物理机对应的内存存储区域获取待发送数据;
所述对所述待发送数据进行对应的计算处理,包括:
通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
2.根据权利要求1所述的方法,其特征在于,在存在丢失数据包的情况下,所述方法还包括:
接收所述接收端物理机的智能网卡发送的信息,根据所述信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据;
重新发送所述标识对应的待发送数据包作为丢失的数据包至接收端物理机的智能网卡。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;
确定划分后的数据对应的待发送数据包的标识,根据丢失的数据包的标识、确定的标识以及对应划分后的数据,生成对应的待发送数据包,以重新发送丢失的数据包。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据待发送数据携带的算子信息,选择对应的算子。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于直接内存访问,从所述物理机获取目标存储信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定获取到的待发送数据所属消息的消息标识;
其中,所述生成对应的待发送数据包,包括:
根据消息标识、对应待发送数据包的标识、目标存储信息以及划分后的数据,生成数据包的包体以及数据包的包头;
根据所述包体以及包头生成待发送数据包。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收发送端物理机的智能网卡发送的数据包,并获取所述数据包中的发送数据、发送数据的标识以及数据包的标识;
根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据所述信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述数据包中的目标存储信息,根据目标存储信息,将所述发送数据存储至对应物理机的存储区域中。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
对所述发送数据进行计算处理,得到计算处理后的数据;
获取所述数据包中的目标存储信息,根据目标存储信息,将所述计算处理后的数据存储至对应物理机的存储区域中。
10.一种数据的传输方法,其特征在于,所述方法可应用于智能网卡,所述智能网卡设置在用于传输数据的物理机,所述方法包括:
接收发送端物理机的智能网卡发送的数据包,并获取所述数据包中的发送数据、发送数据的标识以及数据包的标识;
根据发送数据的标识以及数据包的标识确定是否存在丢失数据包的情况,当存在丢失数据包的情况,确定丢失的数据包的标识,并发送信息至发送端物理机的智能网卡,以使发送端物理机的智能网卡根据所述信息携带有丢失的数据包的标识,确定丢失的数据包和/或对应的划分后的数据,并进行丢失数据包的重新发送;
发送端物理机的智能网卡接收发送端物理机发送的远程直接内存访问请求,根据远程直接内存访问请求,从发送端物理机对应的内存存储区域获取待发送数据;
发送端物理机的智能网卡通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取所述数据包中的目标存储信息,根据目标存储信息,将所述发送数据存储至对应物理机的存储区域中。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
对所述发送数据进行计算处理,得到计算处理后的数据;
获取所述数据包中的目标存储信息,根据目标存储信息,将所述计算处理后的数据存储至对应物理机的存储区域中。
13.一种计算设备,设置在用于传输数据的物理机,所述计算设备包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述通信组件,用于基于直接内存访问,从所述物理机上获取待发送数据;
所述处理器,执行所述计算机程序,以用于:
对所述待发送数据进行对应的计算处理,对计算处理后的待发送数据进行划分;
确定划分后的数据对应的待发送数据包的标识,并生成对应的待发送数据包,所述标识可确定出划分后的数据和/或对应的待发送数据包;
所述通信组件,用于发送对应的待发送数据包至接收端物理机的智能网卡,以使所述接收端物理机的智能网卡根据接收到的数据包的标识,在存在数据包丢失的情况下,请求重新发送丢失的数据包;
接收物理机发送的远程直接内存访问请求,根据远程直接内存访问请求,从物理机对应的内存存储区域获取待发送数据;
通过算子,对待发送数据进行计算处理,生成计算处理后的待发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146458.4A CN113595694B (zh) | 2021-09-28 | 2021-09-28 | 数据的传输方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146458.4A CN113595694B (zh) | 2021-09-28 | 2021-09-28 | 数据的传输方法、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113595694A CN113595694A (zh) | 2021-11-02 |
CN113595694B true CN113595694B (zh) | 2022-04-01 |
Family
ID=78242508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111146458.4A Active CN113595694B (zh) | 2021-09-28 | 2021-09-28 | 数据的传输方法、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113595694B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116301663B (zh) * | 2023-05-12 | 2024-06-21 | 新华三技术有限公司 | 一种数据存储方法、装置及主机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103945282A (zh) * | 2014-05-16 | 2014-07-23 | 成都凯智科技有限公司 | 文件读取方法和装置 |
US9083541B1 (en) * | 2010-07-29 | 2015-07-14 | Crimson Corporation | Retransmitting lost packets for multicast data distribution |
CN109218308A (zh) * | 2018-09-14 | 2019-01-15 | 上海赋华网络科技有限公司 | 一种基于智能网卡的数据高速安全交换方法 |
CN109474642A (zh) * | 2019-01-08 | 2019-03-15 | 郑州云海信息技术有限公司 | 基于以太网udp协议数据传输方法、装置、设备及介质 |
CN112787913A (zh) * | 2021-01-26 | 2021-05-11 | 北京百度网讯科技有限公司 | 智能网卡组件、物理机、云服务系统以及报文发送方法 |
CN112929183A (zh) * | 2021-01-26 | 2021-06-08 | 北京百度网讯科技有限公司 | 智能网卡、报文传输方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878191B (zh) * | 2015-12-14 | 2018-11-16 | 华为技术有限公司 | 一种数据传送方法、发送节点、接收节点及数据传送系统 |
-
2021
- 2021-09-28 CN CN202111146458.4A patent/CN113595694B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9083541B1 (en) * | 2010-07-29 | 2015-07-14 | Crimson Corporation | Retransmitting lost packets for multicast data distribution |
CN103945282A (zh) * | 2014-05-16 | 2014-07-23 | 成都凯智科技有限公司 | 文件读取方法和装置 |
CN109218308A (zh) * | 2018-09-14 | 2019-01-15 | 上海赋华网络科技有限公司 | 一种基于智能网卡的数据高速安全交换方法 |
CN109474642A (zh) * | 2019-01-08 | 2019-03-15 | 郑州云海信息技术有限公司 | 基于以太网udp协议数据传输方法、装置、设备及介质 |
CN112787913A (zh) * | 2021-01-26 | 2021-05-11 | 北京百度网讯科技有限公司 | 智能网卡组件、物理机、云服务系统以及报文发送方法 |
CN112929183A (zh) * | 2021-01-26 | 2021-06-08 | 北京百度网讯科技有限公司 | 智能网卡、报文传输方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113595694A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147564B (zh) | 数据文件传输方法、系统及通信终端 | |
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
CN110177082B (zh) | 一种数据处理方法、设备、介质以及装置 | |
WO2017069845A1 (en) | Random linear network encoded data transmission | |
US9794354B1 (en) | System and method for communication between networked applications | |
US9883420B2 (en) | Random linear network encoded data transmission from user equipment | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN113595694B (zh) | 数据的传输方法、计算设备及存储介质 | |
CN113301007A (zh) | 一种数据的传输方法、计算设备及存储介质 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
CN109120385B (zh) | 一种基于数据传输系统的数据传输方法、装置及系统 | |
CN109391605B (zh) | 数据传输方法、装置及系统 | |
CN108614820B (zh) | 实现流式源数据解析的方法和装置 | |
CN112118594A (zh) | 数据上传方法、下载方法、电子设备及存储介质 | |
CN114513418B (zh) | 一种数据处理方法及相关设备 | |
CN115733898A (zh) | 一种传输数据的方法以及相关设备 | |
CN109995589B (zh) | 日志采集方法及系统 | |
CN114125080A (zh) | 一种报文链终端协议栈构建方法和解析方法、装置及终端 | |
CN102004702B (zh) | 请求控制设备、请求控制方法及相关的处理器 | |
CN111064774A (zh) | 一种分布式数据存储的方法及装置 | |
CN111240867A (zh) | 一种信息通讯系统及方法 | |
CN115883458A (zh) | 一种数据传输方法、系统、设备及存储介质 | |
CN114978427B (zh) | 数据处理方法、装置、程序产品、计算机设备和介质 | |
CN109792332B (zh) | 反馈应答信息的传输方法、终端、网络设备和存储介质 | |
CN113132061B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |