CN114520711A - 数据包的选择性重传 - Google Patents
数据包的选择性重传 Download PDFInfo
- Publication number
- CN114520711A CN114520711A CN202011302227.3A CN202011302227A CN114520711A CN 114520711 A CN114520711 A CN 114520711A CN 202011302227 A CN202011302227 A CN 202011302227A CN 114520711 A CN114520711 A CN 114520711A
- Authority
- CN
- China
- Prior art keywords
- packet
- transaction
- data
- computer
- data packet
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012546 transfer Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 11
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/1829—Arrangements specially adapted for the receiver end
-
- 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/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请涉及数据包的选择性重传。一种用于数据传送的方法包括在单个RDMA数据传送事务中通过网络将数据包的序列从第一计算机传输到第二计算机。在接收到序列中的第二数据包而先前没有接收到第一数据包时,第二计算机通过网络向第一计算机发送NAK数据包,指示没有接收到第一数据包。响应于事务的类型选择重传模式,使得当事务是第一类型时,响应于NAK数据包,将第一数据包从第一计算机重传到第二计算机,而不重传第二数据包,并且当事务是第二类型时,响应于NAK数据包,将第一数据包和第二数据包都从第一计算机重传到第二计算机。
Description
发明领域
本发明大体上涉及计算机系统,特别地涉及通过远程直接存储器访问(remotedirect memory access,RDMA)在计算机之间通过网络进行的数据交换。
背景
一些数据包传输协议,诸如传输控制协议(TCP),使用确认(ACK)和重传的机制来确保消息整体被可靠输送。数据包在TCP连接上的接收方将ACK数据包发送回发送方,以指示接收方收到了哪些数据包。当发送方在某个超时周期内未能接收到肯定确认时,发送方会重传未确认的一个或更多个数据包。
Mathis等人在1996年10月由互联网工程任务组(IETF)发布为征求意见(RFC)2018的“TCP Selective Acknowledgment Options”中定义了对于TCP的选择性确认(SACK)机制。根据作者的说法,通过选择性确认,数据接收方可以通知发送方已经成功到达的所有数据段,因此发送方只需要重传那些实际上已经丢失的数据段。
RDMA协议使一台计算机的网络接口控制器(NIC)能够通过在网络上发送和接收数据包而无需任何一台计算机的操作系统参与存储器访问操作,而在网络上从另一台计算机的存储器中读取数据并且向该另一台计算机的存储器写入数据。这些RDMA事务通常是响应于主机处理器上运行的应用进程提交给NIC的工作请求来执行的,因此使网络的不同节点上的应用能够以高带宽和低延迟高效地交换数据。(术语“事务”在本说明书和权利要求书的上下文中使用,以指代一种操作,在该操作中,通过在计算机的相应NIC之间的网络上传输数据包,将选定范围的数据从一台计算机的存储器传送到另一台计算机的存储器。)常见的RDMA事务包括RDMA写操作和发送操作以及RDMA读操作,在RDMA写操作和发送操作中,数据从请求计算机的存储器被传送到接收计算机的存储器(分别称为“请求方”和“响应方”),在RDMA读操作中,响应方将数据传送到请求方。在RDMA写操作中,请求方指定响应方将数据写入的存储器范围;而在发送操作中,存储器范围由从主机处理器提交给应答方的NIC的工作请求(称为工作队列元素(work queue element)或“WQE”)指定。
本领域中已知许多RDMA协议,诸如在IB交换架构上使用的InfiniBandTM(IB)RDMA协议,以及被设计成在以太网上运行的融合以太网上的RDMA(RoCE)。在RoCE中,IB RDMA层直接通过(在RoCE版本1中)以太网链路层或通过(在RoCE版本2中)互联网协议(IP)网络上的用户数据报协议(UDP)传输层运行。
公开内容通过引用并入本文的美国专利10,430,374描述了一种用于数据传送的方法,该方法包括在单个远程直接存储器存取(RDMA)数据传送事务中,通过网络从第一计算机向第二计算机传输数据包的序列,该数据包的序列至少包括第一数据包和在第一数据包之后传输的第二数据包。在第二计算机处接收到第二数据包而先前没有接收到第一数据包时,通过网络从第二计算机向第一计算机发送否定确认(NAK)数据包,指示没有接收到第一数据包。响应于NAK数据包,将第一数据包从第一计算机重传到第二计算机,而不重传第二数据包。
概述
下文描述的本发明的实施例提供了促进有效RDMA数据传送的方法和装置。
因此,根据本发明的实施例提供了一种用于数据传送的方法,该方法包括在从第一类型事务和第二类型事务中选择的给定类型的单个远程直接存储器访问(RDMA)数据传送事务中,通过网络将数据包的序列从第一计算机传输到第二计算机,数据包的序列至少包括第一数据包和在第一数据包之后的第二数据包。在第二计算机处接收到第二数据包而先前没有接收到第一数据包时,通过网络从第二计算机向第一计算机发送否定确认(NAK)数据包,指示没有接收到第一数据包。响应于事务的类型选择重传模式,使得当事务是第一类型时,响应于NAK数据包,将第一数据包从第一计算机重传到第二计算机,而不重传第二数据包,并且当事务是第二类型时,响应于NAK数据包,将第一数据包和第二数据包二者从第一计算机重传到第二计算机。响应于NAK数据包,根据所选择的重传模式将数据包中的一个或更多个数据包从第一计算机重传到第二计算机。
在所公开的实施例中,第一类型事务包括RDMA写事务和RDMA读事务,并且第二类型事务包括发送事务。在一个实施例中,第二类型事务还包括RDMA立即写入事务(RDMAWrite with Immediate transaction)。附加地或可替代地,第一类型事务还包括RDMA原子事务。
在一个实施例中,发送数据包的序列包括,在第一类型事务中重传第一数据包之后,通过从第一计算机向第二计算机发送序列中的第二数据包之后的至少第三数据包来完成RDMA数据传送事务。
附加地或可替代的,重传数据包中的一个或更多个数据包包括,在第二类型事务中重传第一数据包之后,重传序列中在第一数据包之后传输的包括第二数据包在内的所有数据包。
典型地,NAK数据包指示第一数据包的第一数据包序列号。在所公开的实施例中,重传数据包中的一个或更多个数据包包括重传第一数据包和至少第三数据包,第三数据包具有比第一数据包序列号更高的第三数据包序列号,以便使第二计算机确认第三数据包的接收。
在所公开的实施例中,第一计算机和第二计算机通过各自的第一网络接口控制器(NIC)和第二网络接口控制器连接到网络,并且选择重传模式包括响应于第二NIC处理无序接收的数据包的能力来决定要重传哪些数据包。附加地或可替代地,该方法包括:当事务是第二类型时,丢弃先前没有接收到第一数据包而被接收的第二数据包,并且在接收到重传的第一数据包和第二数据包之后,将来自第一数据包和第二数据包的数据写入第二计算机的存储器。
根据本发明的实施例还提供了一种数据传送装置,包括:第一网络接口控制器(NIC),其将第一计算机耦合到网络,并且被配置成在从第一类型事务和第二类型事务中选择的给定类型的单个远程直接存储器存取(RDMA)数据传送事务中,通过网络将数据包的序列从第一计算机传输到第二计算机,数据包的序列至少包括第一数据包和在所述第一数据包之后传输的第二数据包。第二NIC将第二计算机耦合到网络,并且被配置成在接收到第二数据包而先前没有接收到第一数据包时,通过网络向第一计算机发送否定确认(NAK)数据包,指示没有接收到第一数据包。第一NIC被配置成响应于事务的类型来选择重传模式,使得当事务是第一类型时,第一NIC响应于NAK数据包而重传第一数据包,而不重传第二数据包,并且当事务是第二类型时,第一NIC响应于NAK数据包而重传第一数据包和第二数据包,并且根据所选择的重传模式响应于NAK数据包来重传数据包中的一个或更多个数据包。
根据结合附图进行的本发明的实施例的以下详细描述,本发明将得到更完全地理解,其中:
附图简述
图1是根据本发明实施例的示意地示出了计算机系统的框图;
图2是根据本发明实施例的示意性地示出了具有网络接口控制器(NIC)的主计算机的细节的框图;以及
图3-6是根据本发明实施例的示意性地示出了用于RDMA数据包的选择性确认和重传的方法的梯形图。
实施例的详细描述
概要
RDMA事务的性能对数据包丢失可以很敏感,因此RDMA协议(诸如,IB协议和RoCE协议)被设计成在通常无损的网络上运行。(通常,链路级流量控制用于确保IB和融合以太网的无损传输)。为此,在这些RDMA协议中,对于数据包接收的确认和对于数据丢失情况下的重传机制很简单:当未能接收到肯定确认时,发送方会在接收方确认的最后一个数据包之后立即开始重传送所有数据包。换句话说,单个数据包的丢失会导致许多后续数据包的重复传输。在无损网络中,这种低效率是无关紧要的,但是当大量丢失事件发生时,RDMA重传方法可能会对性能产生负面影响。
下文描述的本发明的实施例提供了用于RDMA数据包的选择性确认和重传的机制,这大大减少了在数据包丢失的情况下必须重传的数据包的数量。这些机制是由NIC自主实现的,该NIC将参与的主计算机联接到网络并执行事务,使得主机处理器和操作系统不会参与或甚至不会意识到重传。所公开的机制减少了由于重传对网络造成的负载,并且能够从数据包丢失中更快速地恢复。
但是,一般来说,选择性重传的实现要求接收NIC能够处理并缓冲它无序(out oforder,OOO)接收的数据包:当多数据包RDMA事务中的给定数据包丢失,但后续数据包被接收到时,NIC必须将后续数据包保存在存储器(主机存储器或专用缓冲区)中,同时请求并等待丢失数据包的重传。当重传的数据包到达时,NIC必须以正确的顺序将所有数据包加载到主机存储器中,并例如通过向主机存储器写入完成队列元素(completion queue element,CQE)来通知主机处理器事务已经完成。
在RDMA写事务中,传入的数据包指示数据包数据将被写入的应答方的主机存储器中的地址范围,从而为接收NIC提供它需要的所有信息,以便即使数据包无序到达也能够为主机存储器中的数据找到适当的“槽位(slot)”。NIC可以使用该信息将从无序到达的数据包中接收到的数据直接写入主机存储器,从而能够只请求重传丢失的数据包,而不请求后续的数据包。接收到重传的数据包后,NIC会将数据写入空槽位,并写入CQE以通知主机处理器事务已完成。RDMA读响应数据包可以用类似的方式处理。
另一方面,在处理发送事务中接收的数据时,接收NIC必须将数据包数据写入的地址范围由在本地主机处理器上运行的应答方应用发布的WQE指示。接收NIC按顺序读取和耗用WQE,然后针对它耗用的每个WQE向主机存储器写入相应的CQE。为此,如NIC要处理无序接收的发送数据包,则NIC通常必须维护它自己的重新排序缓冲区,只有在发送事务中的所有数据包都到达后,NIC才会从该缓冲区将数据包数据写入主机存储器。就NIC所需的逻辑和存储器资源而言,这种方法成本很高。RDMA立即写入事务也面临类似的困难。
本发明的实施例通过根据事务的类型选择性地处理丢失数据包来解决这个问题。当数据包的序列在给定RDMA事务中从发送计算机通过网络发送到接收计算机,并且接收计算机接收到序列中的给定数据包而没有首先接收到序列中的某个先前数据包时,这种选择性被调用。接收计算机发送NAK数据包,但NAK之后的重传模式取决于事务类型:对于第一类型的事务,诸如RMDA写、RDMA读和RDMA原子事务,丢失的(先前)数据包被重传,而不重传给定数据包和已经传输的任何后续数据包。另一方面,对于第二类型的事务,诸如发送和RDMA立即写入事务,事务中丢失的数据包和所有后续数据包都会被重传。因此,第一类型的事务中的数据包丢失可以以最佳效率来处理,而不会给接收NIC带来第二类型的事务中数据包重新排序的困难。
系统描述
图1是根据本发明实施例示意性地示出了计算机系统20的框图,在该计算机系统20中主计算机22、24、26经由数据包网络28进行通信。每个计算机22、24、26包括主处理子系统30并且通过各自的NIC 32或34耦合到网络28,该主处理子系统30包括主机处理器和存储器。出于以下描述的目的,假设NIC 32支持对于所有类型的RDMA事务的完全选择性重传和数据包重新排序,而NIC 34对某些类型的事务(诸如,RDMA写和读)提供选择性重传支持,但不对其他事务(诸如,发送事务)提供选择性重传支持。在本实施例中,假设网络28是以太网,NIC 32、34通过该网络28使用RoCE协议交换数据,但是本发明的原理同样适用于通过其他类型的网络和/或使用其他RDMA协议执行的RDMA操作。
NIC 32和34可以相互通知它们在重传支持方面的能力,例如通过在RDMA传输开始之前在NIC之间交换的合适的信令数据包。因此,在NIC32之间的通信中,选择性重传将应用于所有RDMA事务,这意味着只有那些实际丢失的数据包才会被重传。另一方面,在NIC 32和NIC 34之间的通信中,选择性重传是选择性应用的,这意味着在某些情况下,只有实际丢失的数据包将被重传,而在其他情况下,丢失的数据包和所有后续数据包将被重传,这取决于事务类型。系统20还可以包括根本不支持选择性重传的传统NIC,在这种情况下,丢失的数据包和所有后续数据包被重传,而不管事务类型如何。
在图1所示的示例中,在RDMA数据传送事务中,计算机22的NIC 32通过网络28向计算机24的NIC 32发送数据包36的序列。序列中的第三数据包36(在图中标识为“RDMA3”)由于例如在网络28中的交换机处遇到拥塞而在运送中丢失。因此,计算机24的NIC 32接收序列中的下一个数据包(标记为“RDMA4”),而先前并没有接收到RDMA3。(例如,由于路由延迟,当RDMA4在RDMA3之前到达其目的地时,也可能发生这种情况。)
在计算机24处接收到数据包RDMA4而先前没有接收到RDMA3之后,计算机24的NIC32通过网络28向计算机22发送失序(out-of-sequence,OOS)NAK数据包38,指示它没有接收到数据包RDMA3。NIC 32可以在接收到数据包RDMA4后立即发送NAK数据包38,或者可以等待直到已经过了某个超时为止。在后一种情况下,NAK数据包38可以识别序列中没有在计算机24处接收到的多个数据包36(包括数据包RDMA3)。在任一种情况下,计算机22的NIC 32将通过重传被NAK数据包38指示为已经丢失的数据包39来响应,而不重传数据包RDMA4或计算机24的NIC32没有明确请求的其他数据包。附加地或可替代地,NAK数据包38可以将数据包RDMA3(以及可能的其他数据包)标识为没有被接收,并且将数据包RDMA4(或另一数据包)标识为在计算机24处接收的序列中的最后一个数据包36。
如果在计算机22和26之间执行相同的事务,则NIC 34同样会在未能接收到数据包RDMA3后发送OOS NAK数据包38。在RDMA写事务的情况下,计算机22的NIC 32将只重传数据包RDMA3,如图示的示例所示。另一方面,在发送事务的情况下,计算机22的NIC 32将在传输序列中返回到RDMA3,从而重传RDMA3和RDMA4。下面将参照图4和图6详细描述这种情景。
图2是根据本发明实施例示意性地示出了主计算机22特别是NIC 32的细节的框图。典型地,主计算机24和26以及它们各自的NIC 32和34具有与图2所示相似的结构和功能。主计算机22包括主处理子系统30,该主处理子系统30包括主处理器40和系统存储器42,该主处理器40通常包括至少一个中央处理单元(CPU),该系统存储器42通过外围组件总线44(诸如,PCI(PCIe)总线)链接到NIC 32。运行在主处理器40上的软件中的进程通过向NIC驱动软件提交工作请求与NIC 32交互,该NIC驱动软件将相应的工作项(称为工作队列元素(WQE))放入存储器42中的工作队列46中。通常,工作队列被排列成队列对(queuepair,QP),每个队列对包括发送队列和接收队列。
为了启动RDMA事务,诸如RDMA写事务或读事务,或者从计算机24或计算机26收发事务,主处理器40在适当的工作队列46中发布WQE,并通知NIC 32WQE正在等待执行。WQE标识存储器42中的数据缓冲器48,NIC 32从该数据缓冲器中读取RDMA数据以传输到计算机24,或者NIC 32在从计算机24接收数据时将该数据写入该数据缓冲器。当事务涉及大量数据时,NIC 32将通过发送或接收多个数据包来执行事务,每个数据包以缓冲器48中相应的数据段50作为其有效载荷。在事务完成后,NIC32将CQE发布到存储器42中的完成队列51,以传送到主处理器40上的适当软件进程。
NIC 32包括连接到总线44的主机接口52和网络接口56,该网络接口56具有连接到网络28的一个或更多个端口。耦合在主机接口52和网络接口56之间的数据包处理逻辑54通常通过经由总线44的直接存储器存取(DMA)从工作队列46读取和执行WQE。发送管线58根据WQE提供的指令,生成数据包并经由网络接口56将其发送到网络28。例如,在RDMA写或发送请求的情况下,发送管线58将生成一个RDMA数据包36或RDMA数据包36的序列,每个数据包包含其各自的数据段50,由DMA从缓冲器48读取。
数据包处理逻辑54中的接收管线60接收并处理来自网络28的数据包。在传入的RDMA写或RDMA读响应数据包的情况下,接收管线60将把包含在数据包有效载荷中的数据段写入缓冲器48中的适当位置。当序列中的数据包被无序接收时,接收管线60仍然可以将段50写入缓冲器48中适当的有序位置,但是将禁止向主处理器40报告事务已经完成,直到该序列中的所有数据包都被实际接收为止。(例如,在美国专利10,110,518中描述了可在本上下文中用于处理无序RDMA数据包和事务的技术,其公开内容通过引用并入本文。)
接收管线60跟踪数据包接收,特别是验证在RDMA数据传送事务中接收的数据包的序列是否按顺序到达。只要数据包被按顺序接收,接收管线60中或与接收管线60相关联的确认引擎62就生成标识最后的数据包被接收到的ACK数据包,并指示发送管线58将这些ACK数据包发送到发送计算机。另一方面,当在RDMA事务中接收到具有给定数据包序列号(packet serial number,PSN)的数据包,而先前没有接收到具有先前序列号的事务中的所有数据包时,确认引擎62将标识OOS事件的发生。然后,确认引擎将指示发送管线58向发送计算机发送相应的NAK数据包38,标识丢失了一个或更多个数据包。下面的附图中说明了这类示例场景。
当网络接口56接收到输入的NAK数据包38时,确认引擎62解析该NAK数据包,以便识别在传输到计算机24的过程中丢失的一个或更多个数据包,从而识别需要重传的相应段50。确认引擎62将重传指令传递给发送管线58,使得发送管线从缓冲器48读取适当的数据,并重传所请求的RDMA数据包36。重传指令的类型取决于事务的类型和发送NAK数据包38的NIC的重新排序能力:如果只有特定的丢失数据包要被重传,则确认引擎62将数据包选择性重传指令64传递给发送管线58。如果从丢失数据包开始的所有数据包都要被重传,则确认引擎62传递“返回N”指令66,这意味着发送管线58应该在事务中返回到丢失数据包,并从该点开始按顺序恢复所有数据包的传输。在任一种情况下,一旦接收NIC接收到重传的一个数据包或更多个数据包,RDMA事务就可以完成。
操作方法
图3是根据本发明实施例示意性地示出了用于RDMA写数据包的选择性确认和重传的方法的梯形图。在本说明书和随后的附图中,为了具体和清楚起见,假设计算机22是在RDMA写操作中发送RDMA数据包的请求方,而计算机26是接收和确认数据包(如图1所示的系统20中)的应答方。在图4和图6所示的事务中,进一步假设计算机26的NIC 34支持RDMA写数据包的选择性重传,但不支持发送数据包的选择性重传。可替代地,两台计算机的角色可以互换,或者可以涉及具有适当配置的NIC32、34的其他计算机。
计算机22的NIC 32以图3所示的序列发送RDMA写数据包70,但计算机26的NIC 34在接收数据包#4之前接收数据包#5(数据包#4可能稍后到达或根本不到达)。由于计算机22的NIC 32还不知道任何数据包未能以正确序列到达其目的地,因此NIC 32继续传输数据包#4之后的RDMA写数据包。
当接收到数据包#5时,计算机26的NIC 34向计算机22发回NAK数据包72,指示未接收到数据包#4。同时,NIC 34继续接收序列中的附加RDMA写数据包,并将这些数据包中的数据存储在计算机26的存储器42中。在接收到NAK数据包72后,计算机22的NIC 32暂停传输其他的数据包,并通过生成和发送重传数据包74来响应NAK数据包72。这个重传数据包通常用与在NAK数据包72中识别的数据包相同的数据包序列号(PSN)来标记,即在本例中为#4。数据包74被无序地传输,而没有重传在计算机26处被成功接收的后续RDMA写数据包(在该示例中为#6、#7和#8)。
在重传数据包74之后,计算机22的NIC 32通过发送在已经被发送的数据包之后的序列中剩余的任何其他数据包70来完成RDMA数据传送事务。NIC 32在恢复传输之前不需要等待对重传数据包74的确认,而是继续传输数据包70,直到整个序列被传输和确认为止。因此,在本示例中,计算机22的NIC 32继续发送RDMA写数据包#9,这是序列中的最后一个数据包。
计算机26的NIC 34将接收到的数据包数据安排在存储器42中,并通过网络28向计算机22返回肯定的ACK数据包76。ACK数据包76通常标识在计算机26处成功接收的序列中的最新的数据包。因此,在本示例中,ACK数据包76确认数据包#9。
图4是根据本发明另一实施例示意性地示出了用于RDMA写数据包和发送数据包二者的选择性确认和重传的方法的梯形图。在该实施例中,计算机22的NIC 32在RDMA写事务中发送RDMA写数据包70的序列,然后在发送事务中发送发送数据包80的序列。在连续的事务中,数据包被连续编号,例如由PSN编号。假设计算机26的NIC 34支持在RDMA写事务中选择性重传,但不支持在发送事务中选择性重传,因为上面解释了数据包重新排序的困难。
在图示的场景中,RDMA写数据包#1在传输中丢失。当接收到RDMA写数据包#2时,计算机26的NIC 34返回NAK数据包72,报告数据包#1的丢失。同时,计算机22已经通过传输发送数据包#3和#4开始发送事务,然后在接收到NAK数据包72之前传输另一个RDMA写数据包#5。计算机26的NIC 34丢弃发送数据包#3和#4(如右边距处的X标记所示),因为它不支持发送事务的OOO处理。
在接收到NAK数据包72之后,计算机22的NIC 32重传RDMA写数据包#1(图4中的重传数据包74),但是不重传后续的RDMA写数据包。计算机26的NIC 34通知NIC 32它不支持发送事务的OOO接收和处理。因此,计算机22的NIC 32通过重传发送数据包82来重新启动先前的发送事务,其中发送数据包82具有它们的原始序列号#3和#4。然而,这一次,重传的发送数据包#3丢失,导致计算机26的NIC 34丢弃后续重传的发送数据包#4,并向计算机22返回另一个NAK数据包84,以报告发送数据包#3的丢失。作为响应,计算机22的NIC 32重传发送事务的所有数据包86,即数据包#3和数据包#4。
一旦计算机26的NIC 34最终接收到重传的发送数据包86,它就向计算机22返回ACK数据包88。ACK数据包88指示序列中被成功接收的最后一个RDMA数据包的序列号,在本示例中是RDMA写数据包#5,它具有迄今为止最高的PSN,即使它不是最新接收的。
图5是根据本发明又一实施例示意性地示出了用于RDMA数据包的选择性确认和重传的方法的梯形图。该实施例说明了RDMA写数据包和RDMA读数据包的选择性重传的应用。计算机22的NIC 32向计算机26发送RDMA读请求数据包90,随后是包括RDMA写数据包#2和#3的RDMA写事务。计算机26的NIC 34通过传输包括数据包#0和数据包#1的RDMA读响应数据包92来响应RDMA读请求数据包90。RDMA写数据包#2和RDMA读响应数据包#0都在传输过程中丢失。
当接收到RDMA写数据包#3而没有接收到数据包#2时,计算机26的NIC 34发送NAK数据包72,请求重传数据包#2。作为响应,计算机22的NIC 32重传RDMA写数据包#2(如图示中的重传数据包74)。在接收到数据包74后,计算机26的NIC 34将数据包数据写入计算机26的存储器42中的适当地址,然后发送ACK数据包76,确认RDMA写数据包#3。
与RDMA写事务同时地,在接收到RDMA读响应数据包#1而没有接收到数据包#0时,计算机22的NIC 32发送新的RDMA读请求数据包94,这次只请求传输RDMA读响应数据包#0。在接收到数据包94后,计算机26的NIC 34重传数据包#0作为重传的RDMA读响应数据包96。NIC 32接收RDMA读数据并将其排列在计算机22的存储器42中的适当地址。
图6是根据本发明又一实施例示意性地示出了用于RDMA写和发送数据包的选择性确认和重传的方法的梯形图。这个实施例解决了在不同类型的RDMA事务(诸如,RDMA写和发送事务)中不同地处理重传时可能出现的实施上的问题:因为发送事务中的OOS NAK调用事务中丢失数据包和所有后续数据包的重传,所以应答方应该等待,直到所有重传的数据包都被接收,才发送任何进一步的OOS NAK数据包。因此,如果另一个数据包与此同时在另一个并发RDMA事务中丢失,响应方将无法发送另一个OOS ANK,响应方也无法确认另一个事务的成功完成。这种死锁的结果是,从请求方到响应方的数据包传输可能会被中断,通常会持续漫长的超时时间。直到那时,请求方才会开始重传尚未收到确认的数据包。
在本实施例中,为了避免这种情况及其带来的传输带宽的浪费,请求方在完成发送数据包的序列的重传之后,立即重传来自另一个并发事务(诸如,上面提到的RDMA写事务)的数据包,该数据包具有比重传的发送数据包更高的PSN。具体来说,希望请求方重传另一个事务中的最后一个数据包。一旦接收到这个重传的数据包,应答方就将或者确认所有传输的数据包(通常用单个ACK数据包指示接收到的最高PSN),或者将发送OOS NAK,指示丢失的并且还没有被重传的最早数据包的号码。
现在转到图6中的示例,计算机22的NIC 32向计算机26传输发送数据包80。发送数据包#1丢失,导致计算机26的NIC 34传输NAK数据包100并丢弃数据包#2和#3。在接收到NAK数据包100后,计算机22的NIC 32重传发送数据包102,包括事务中丢失的数据包#1和所有后续数据包。
同时,计算机22的NIC 32通过传输RDMA写数据包70启动RDMA写事务。RDMA写数据包#4也在传输中丢失,但是只要先前的NAK数据包100仍在处理中,计算机26的NIC 34就不能发送另一个OOS NAK数据包。因此,为了避免上面解释的那种死锁,在发送了最后一个重传的发送数据包102(数据包#3)之后,计算机22的NIC 32重传RDMA写数据包104,在这种情况下是RDMA写数据包#6,它是在NIC 32开始重传发送数据包102之前传输的事务中的最后一个数据包。
在接收到重传的RDMA写数据包104之后,计算机26的NIC 34现在可以传输下一个OOS NAK数据包106,在这种情况下,指示先前的RDMA写数据包#4丢失。响应于NAK数据包106,计算机22的NIC32重传对应于丢失的数据包#4的RDMA写数据包108。计算机26的NIC 34接收数据包108,并通过传输ACK数据包110做出响应,指示在RDMA写事务中接收的最后一个数据包的序列号,在本例中为数据包#6。计算机22和24之间的通信现在可以继续而不会进一步中断。
尽管为了说明本发明的某些特征和原理,附图中呈现的示例示出了某些特定场景,但是这些特征和原理可以类似地在其他场景中实现,包括不同种类的事务和数据包传输模式。例如,如上所述,RDMA立即写入事务可以有利地以类似于发送事务的方式来处理。可选地,可以实现将RDMA事务分成使用选择性重传的类型和使用多数据包“返回N”重传的其他类型的其他划分。所有这些事务处理的替代模式都被认为在本发明的范围内。
因此,将认识到的是,以上描述的实施方式是通过示例引用的,并且本发明并不限于上文已具体示出和描述的内容。更确切地,本发明的范围包括在上文中所述的各种特征的组合和子组合以及本领域中的技术人员在阅读了前述描述时将想到的且在现有技术中未公开的其变形和修改。
Claims (18)
1.一种用于数据传送的方法,包括:
在从第一类型的事务和第二类型的事务中选择的给定类型的单个远程直接存储器访问(RDMA)数据传送事务中,通过网络将数据包的序列从第一计算机传输到第二计算机,所述数据包的序列至少包括第一数据包和在所述第一数据包之后传输的第二数据包;
在所述第二计算机处接收到所述第二数据包而先前没有接收到所述第一数据包时,通过所述网络从所述第二计算机向所述第一计算机发送否定确认(NAK)数据包,指示没有接收到所述第一数据包;
响应于所述事务的类型选择重传模式,使得当所述事务是所述第一类型时,响应于所述NAK数据包,将所述第一数据包从所述第一计算机重传到所述第二计算机而不重传所述第二数据包,并且当所述事务是所述第二类型时,响应于所述NAK数据包,将所述第一数据包和第二数据包都从所述第一计算机重传到所述第二计算机;以及
响应于所述NAK数据包,根据所选择的重传模式将所述数据包中的一个或更多个数据包从所述第一计算机重传到所述第二计算机。
2.根据权利要求1所述的方法,其中,所述第一类型的事务包括RDMA写事务和RDMA读事务,并且所述第二类型的事务包括发送事务。
3.根据权利要求2所述的方法,其中,所述第二类型的事务还包括RDMA立即写入事务。
4.根据权利要求2所述的方法,其中,所述第一类型的事务还包括RDMA原子事务。
5.根据权利要求1所述的方法,其中,传输所述数据包的序列包括,在所述第一类型的事务中重传所述第一数据包之后,通过从所述第一计算机向所述第二计算机传输所述序列中的所述第二数据包之后的至少第三数据包来完成RDMA数据传送事务。
6.根据权利要求1所述的方法,其中,重传所述数据包中的一个或更多个数据包包括,在所述第二类型的事务中重传所述第一数据包之后,重传所述序列中在所述第一数据包之后传输的包括所述第二数据包的所有数据包。
7.根据权利要求1所述的方法,其中所述NAK数据包指示所述第一数据包的第一数据包序列号,并且其中重传所述数据包中的一个或更多个数据包包括重传所述第一数据包和至少第三数据包,所述第三数据包具有比所述第一数据包序列号更高的第三数据包序列号,以便使所述第二计算机确认所述第三数据包的接收。
8.根据权利要求1所述的方法,其中,所述第一计算机和第二计算机通过各自的第一网络接口控制器(NIC)和第二网络接口控制器(NIC)连接到所述网络,并且其中选择所述重传模式包括响应于所述第二NIC处理被无序接收的数据包的能力来决定要重传哪些数据包。
9.根据权利要求1所述的方法,其中,所述第一计算机和第二计算机通过各自的第一网络接口控制器(NIC)和第二网络接口控制器(NIC)连接到所述网络,并且其中所述方法包括:
当所述事务是所述第一类型时,在接收到所重传的第一数据包之前,将来自所述第二数据包的数据写入所述第二计算机的存储器;以及
当所述事务是所述第二类型时,丢弃先前没有接收到所述第一数据包而被接收的所述第二数据包,并且在接收到所重传的第一数据包和第二数据包之后,将来自所述第一数据包和第二数据包的数据写入所述第二计算机的存储器。
10.一种数据传送装置,包括:
第一网络接口控制器(NIC),其将第一计算机耦合到网络,并且被配置成在从第一类型的事务和第二类型的事务中选择的给定类型的单个远程直接存储器存取(RDMA)数据传送事务中,通过网络将数据包的序列从第一计算机传输到第二计算机,所述数据包的序列至少包括第一数据包和在所述第一数据包之后传输的第二数据包;以及
第二NIC,其将所述第二计算机耦合到所述网络,并且被配置成在接收到所述第二数据包而先前没有接收到所述第一数据包时,通过所述网络向所述第一计算机发送否定确认(NAK)数据包,指示没有接收到所述第一数据包,
其中,所述第一NIC被配置成响应于所述事务的类型来选择重传模式,使得当所述事务是所述第一类型时,所述第一NIC响应于所述NAK数据包重传所述第一数据包,而不重传所述第二数据包,并且当所述事务是所述第二类型时,所述第一NIC响应于所述NAK数据包重传所述第一数据包和第二数据包,并且根据所选择的重传模式响应于所述NAK数据包重传所述数据包中的一个或更多个数据包。
11.根据权利要求10所述的装置,其中,所述第一类型的事务包括RDMA写事务和RDMA读事务,并且所述第二类型的事务包括发送事务。
12.根据权利要求11所述的装置,其中,所述第二类型的事务还包括RDMA立即写入事务。
13.根据权利要求11所述的装置,其中,所述第一类型的事务还包括RDMA原子事务。
14.根据权利要求10所述的装置,其中,所述第一NIC被配置成在所述第一类型的事务中重传所述第一数据包之后,通过向所述第二计算机发送所述序列中的所述第二数据包之后的至少第三数据包来完成RDMA数据传送事务。
15.根据权利要求10所述的装置,其中,所述第一NIC被配置成在所述第二类型的事务中重传所述第一数据包之后,重传所述序列中在所述第一数据包之后传输的包括所述第二数据包的所有数据包。
16.根据权利要求10所述的装置,其中所述NAK数据包指示所述第一数据包的第一数据包序列号,并且其中所述第一NIC被配置成重传所述第一数据包和至少第三数据包,所述第三数据包具有比所述第一数据包序列号更高的第三数据包序列号,以便使所述第二NIC确认所述第三数据包的接收。
17.根据权利要求10所述的装置,其中,所述第一NIC被配置成响应于所述第二NIC处理被无序接收的数据包的能力来选择所述重传模式。
18.根据权利要求10所述的装置,其中,所述第二NIC被配置成,当所述事务是所述第一类型时,在接收到所重传的第一数据包之前,将来自所述第二数据包的数据写入所述第二计算机的存储器,并且当所述事务是所述第二类型时,丢弃在先前没有接收到所述第一数据包的情况下接收到的第二数据包,并且在接收到所重传的第一数据包和第二数据包之后,将来自所述第一数据包和第二数据包的数据写入所述第二计算机的存储器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011302227.3A CN114520711B (zh) | 2020-11-19 | 2020-11-19 | 数据包的选择性重传 |
US17/107,990 US11870590B2 (en) | 2020-11-19 | 2020-12-01 | Selective retransmission of packets |
EP21208823.1A EP4002734A1 (en) | 2020-11-19 | 2021-11-17 | Selective retransmission of packets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011302227.3A CN114520711B (zh) | 2020-11-19 | 2020-11-19 | 数据包的选择性重传 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114520711A true CN114520711A (zh) | 2022-05-20 |
CN114520711B CN114520711B (zh) | 2024-05-03 |
Family
ID=81586921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011302227.3A Active CN114520711B (zh) | 2020-11-19 | 2020-11-19 | 数据包的选择性重传 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11870590B2 (zh) |
CN (1) | CN114520711B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171083A (zh) * | 2023-06-07 | 2023-12-05 | 沐曦集成电路(南京)有限公司 | 基于nak的自适应修复pcie接口互连链路的系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11108704B2 (en) | 2018-12-04 | 2021-08-31 | Nvidia Corp. | Use of stashing buffers to improve the efficiency of crossbar switches |
US11546238B1 (en) * | 2021-06-14 | 2023-01-03 | Netapp, Inc. | Methods and systems for resending missing network data packets |
US11770215B2 (en) * | 2022-02-17 | 2023-09-26 | Nvidia Corp. | Transceiver system with end-to-end reliability and ordering protocols |
US11765237B1 (en) | 2022-04-20 | 2023-09-19 | Mellanox Technologies, Ltd. | Session-based remote direct memory access |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001091357A1 (fr) * | 2000-05-22 | 2001-11-29 | Mitsubishi Denki Kabushiki Kaisha | Systeme de transmission de donnees |
WO2002023791A2 (en) * | 2000-09-12 | 2002-03-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Retransmission for broadcast information |
CN103546258A (zh) * | 2013-10-29 | 2014-01-29 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN104126179A (zh) * | 2012-02-17 | 2014-10-29 | 诺基亚公司 | 用于多核处理器中的核心间通信的方法、装置和计算机程序产品 |
US20150172226A1 (en) * | 2013-12-18 | 2015-06-18 | Mellanox Technologies Ltd. | Handling transport layer operations received out of order |
US20150293881A1 (en) * | 2014-04-10 | 2015-10-15 | Mellanox Technologies Ltd. | Network-attached memory |
US20160026605A1 (en) * | 2014-07-28 | 2016-01-28 | Emulex Corporation | Registrationless transmit onload rdma |
CN105993148A (zh) * | 2013-10-18 | 2016-10-05 | 索莫亚私人有限公司 | 网络接口 |
US20170187621A1 (en) * | 2015-12-29 | 2017-06-29 | Amazon Technologies, Inc. | Connectionless reliable transport |
US20180004705A1 (en) * | 2016-06-29 | 2018-01-04 | Mellanox Technologies Ltd. | Selective acknowledgment of RDMA packets |
US20190332314A1 (en) * | 2016-12-29 | 2019-10-31 | Intel Corporation | Network interface controller with non-volatile random access memory write packet log |
CN110460412A (zh) * | 2019-07-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 用于数据传输的方法和rdma网卡 |
CN111512603A (zh) * | 2017-12-27 | 2020-08-07 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
CN111786748A (zh) * | 2019-08-29 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
CN111917815A (zh) * | 2019-05-08 | 2020-11-10 | 慧与发展有限责任合伙企业 | 支持有序和无序事务类的设备 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6333929B1 (en) * | 1997-08-29 | 2001-12-25 | Intel Corporation | Packet format for a distributed system |
US7383483B2 (en) | 2003-12-11 | 2008-06-03 | International Business Machines Corporation | Data transfer error checking |
US8270550B2 (en) | 2004-12-22 | 2012-09-18 | Qualcomm Incorporated | Methods and apparatus for efficiently synchronizing a transmitter and a receiver in a communication system |
US8098667B2 (en) | 2005-06-16 | 2012-01-17 | Qualcomm Incorporated | Methods and apparatus for efficient providing of scheduling information |
JP4662273B2 (ja) | 2006-03-24 | 2011-03-30 | 富士通株式会社 | 通信装置、方法及びプログラム |
US8310920B2 (en) | 2007-03-02 | 2012-11-13 | Saratoga Data Systems, Inc. | Method and system for accelerating transmission of data between network devices |
US8909803B2 (en) | 2009-03-16 | 2014-12-09 | Apple Inc. | Accessory identification for mobile computing devices |
GB0908038D0 (en) | 2009-05-11 | 2009-06-24 | Bluebox Avionics Ltd | A content distribution system and method |
US20110078291A1 (en) | 2009-09-30 | 2011-03-31 | International Business Machines Corporation | Distributed performance monitoring in soft real-time distributed systems |
US10459864B2 (en) | 2010-06-27 | 2019-10-29 | Valens Semiconductor Ltd. | USB isochronous transfer over a non-USB network |
US9049041B2 (en) | 2010-06-27 | 2015-06-02 | Valens Semiconductor Ltd. | Method and system for distributed initiation of USB over network data plane connections |
US10439833B1 (en) | 2010-11-24 | 2019-10-08 | Nyse Arca Llc | Methods and apparatus for using multicast messaging in a system for implementing transactions |
US8645785B2 (en) | 2011-03-14 | 2014-02-04 | Freescale Semiconductor, Inc. | Method of re-ordering received data blocks in hybrid automatic repeat request telecommunication system |
US9294235B2 (en) | 2011-06-07 | 2016-03-22 | Qualcomm Incorporated | Methods and apparatuses for user equipment-based enhancements of radio link control for multi-point wireless transmission |
GB2494382B (en) | 2011-08-31 | 2018-07-18 | Metaswitch Networks Ltd | Data link protection |
EP2645688A1 (en) | 2012-03-28 | 2013-10-02 | Televic Conference NV | Conference system |
US8762718B2 (en) | 2012-08-03 | 2014-06-24 | Palo Alto Research Center Incorporated | Broadcast deduplication for satellite broadband |
WO2014138446A1 (en) | 2013-03-06 | 2014-09-12 | Hospira,Inc. | Medical device communication method |
US9549371B2 (en) | 2013-03-14 | 2017-01-17 | Qualcomm Incorporated | Access point proxy and multi-hop wireless communication |
US9661685B2 (en) | 2013-05-08 | 2017-05-23 | Panasonic Intellectual Property Management Co., Ltd. | Wireless communication system and communication device therefor |
US20150085720A1 (en) | 2013-09-26 | 2015-03-26 | Qualcomm Incorporated | Reduced delay harq process timeline for fdd-tdd carrier aggregation |
US20150103822A1 (en) | 2013-10-15 | 2015-04-16 | Netspeed Systems | Noc interface protocol adaptive to varied host interface protocols |
US20150117201A1 (en) | 2013-10-28 | 2015-04-30 | Saratoga Data Systems, Inc. | Data transmission system for networks with non-full-duplex or asymmetric transport |
US9118478B2 (en) | 2013-10-28 | 2015-08-25 | Saratoga Data Systems, Inc. | Fault-tolerant data transmission system for networks with non-full-duplex or asymmetric transport |
US9451417B2 (en) | 2013-11-27 | 2016-09-20 | Qualcomm Incorporated | System and method for multicast communications in Wi-Fi networks |
WO2015119934A1 (en) | 2014-02-04 | 2015-08-13 | Dipankar Sarkar | System and method for reliable multicast data transport |
US9338259B2 (en) | 2014-02-05 | 2016-05-10 | Sergio Ammirata | User defined protocol for zero-added-jitter and error free transmission of layer-2 datagrams across lossy packet-switched network links |
US10320549B2 (en) | 2014-04-11 | 2019-06-11 | Qualcomm Incorporated | Methods and apparatus for sending fast negative acknowledgements (NACKs) |
US9692560B1 (en) * | 2014-07-10 | 2017-06-27 | Qlogic Corporation | Methods and systems for reliable network communication |
US10324513B2 (en) | 2014-08-31 | 2019-06-18 | Mellanox Technologies, Ltd. | Control of peripheral device data exchange based on CPU power state |
US10459791B2 (en) * | 2015-02-26 | 2019-10-29 | Hitachi, Ltd. | Storage device having error communication logical ports |
US9985904B2 (en) * | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
US10707986B2 (en) | 2016-01-08 | 2020-07-07 | Qualcomm Incorporated | Systems and methods for variable length block acknowledgment |
US10776272B2 (en) * | 2016-03-02 | 2020-09-15 | Mellanox Technologies, Ltd. | Control of persistent memory via a computer bus |
US10541927B2 (en) * | 2016-12-29 | 2020-01-21 | Google Llc | System and method for hardware-independent RDMA |
US20220094646A1 (en) * | 2019-01-17 | 2022-03-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for central processing unit efficient storing of data in a data center |
US10922250B2 (en) * | 2019-04-30 | 2021-02-16 | Microsoft Technology Licensing, Llc | Monitoring and steering service requests to acceleration components |
US10785306B1 (en) * | 2019-07-11 | 2020-09-22 | Alibaba Group Holding Limited | Data transmission and network interface controller |
US20210119930A1 (en) * | 2019-10-31 | 2021-04-22 | Intel Corporation | Reliable transport architecture |
EP3939191B1 (en) * | 2020-06-05 | 2023-11-22 | Huawei Technologies Co., Ltd. | Device and method for delivering acknowledgment in network transport protocols |
US11283719B2 (en) * | 2020-07-13 | 2022-03-22 | Google Llc | Content addressable memory (CAM) based hardware architecture for datacenter networking |
-
2020
- 2020-11-19 CN CN202011302227.3A patent/CN114520711B/zh active Active
- 2020-12-01 US US17/107,990 patent/US11870590B2/en active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001091357A1 (fr) * | 2000-05-22 | 2001-11-29 | Mitsubishi Denki Kabushiki Kaisha | Systeme de transmission de donnees |
WO2002023791A2 (en) * | 2000-09-12 | 2002-03-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Retransmission for broadcast information |
CN104126179A (zh) * | 2012-02-17 | 2014-10-29 | 诺基亚公司 | 用于多核处理器中的核心间通信的方法、装置和计算机程序产品 |
CN105993148A (zh) * | 2013-10-18 | 2016-10-05 | 索莫亚私人有限公司 | 网络接口 |
CN103546258A (zh) * | 2013-10-29 | 2014-01-29 | 华为技术有限公司 | 一种数据传输方法及装置 |
US20150172226A1 (en) * | 2013-12-18 | 2015-06-18 | Mellanox Technologies Ltd. | Handling transport layer operations received out of order |
US20150293881A1 (en) * | 2014-04-10 | 2015-10-15 | Mellanox Technologies Ltd. | Network-attached memory |
US20160026605A1 (en) * | 2014-07-28 | 2016-01-28 | Emulex Corporation | Registrationless transmit onload rdma |
US20170187621A1 (en) * | 2015-12-29 | 2017-06-29 | Amazon Technologies, Inc. | Connectionless reliable transport |
US20180004705A1 (en) * | 2016-06-29 | 2018-01-04 | Mellanox Technologies Ltd. | Selective acknowledgment of RDMA packets |
US20190332314A1 (en) * | 2016-12-29 | 2019-10-31 | Intel Corporation | Network interface controller with non-volatile random access memory write packet log |
CN111512603A (zh) * | 2017-12-27 | 2020-08-07 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
CN111917815A (zh) * | 2019-05-08 | 2020-11-10 | 慧与发展有限责任合伙企业 | 支持有序和无序事务类的设备 |
CN110460412A (zh) * | 2019-07-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 用于数据传输的方法和rdma网卡 |
CN111786748A (zh) * | 2019-08-29 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
Non-Patent Citations (3)
Title |
---|
FAN SUNA;ZHANG YI;HUANG XIANGYU;GENG LIHONG;SHAO HUILI;HU XUECHAO;ZHANG YAOPENG;: "Silk materials for medical, electronic and optical applications", SCIENCE CHINA(TECHNOLOGICAL SCIENCES), no. 06, 18 April 2019 (2019-04-18) * |
彭永余;: "浅谈交换机端口的安全配置方法", 无线互联科技, no. 23, 10 December 2016 (2016-12-10) * |
朱正平;宁百齐;袁洪;肖山竹;: "基于USB2.0接口芯片FX2的高速数据采集板的设计实现", 微计算机应用, no. 03, 15 May 2006 (2006-05-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171083A (zh) * | 2023-06-07 | 2023-12-05 | 沐曦集成电路(南京)有限公司 | 基于nak的自适应修复pcie接口互连链路的系统 |
CN117171083B (zh) * | 2023-06-07 | 2024-05-03 | 沐曦集成电路(南京)有限公司 | 基于nak的自适应修复pcie接口互连链路的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114520711B (zh) | 2024-05-03 |
US11870590B2 (en) | 2024-01-09 |
US20220158772A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430374B2 (en) | Selective acknowledgement of RDMA packets | |
CN114520711B (zh) | 数据包的选择性重传 | |
US11792114B2 (en) | System and method for facilitating efficient management of non-idempotent operations in a network interface controller (NIC) | |
US10148581B2 (en) | End-to-end enhanced reliable datagram transport | |
US8213315B2 (en) | Dynamically-connected transport service | |
US6760307B2 (en) | Method and apparatus for controlling the flow of data between servers using optimistic transmitter | |
US7966417B2 (en) | Method and system for transparent TCP offload (TTO) with a user space library | |
US7171484B1 (en) | Reliable datagram transport service | |
US8190960B1 (en) | Guaranteed inter-process communication | |
US11381514B2 (en) | Methods and apparatus for early delivery of data link layer packets | |
US7817634B2 (en) | Network with a constrained usage model supporting remote direct memory access | |
US7733875B2 (en) | Transmit flow for network acceleration architecture | |
US8233483B2 (en) | Communication apparatus, communication system, absent packet detecting method and absent packet detecting program | |
US8316276B2 (en) | Upper layer protocol (ULP) offloading for internet small computer system interface (ISCSI) without TCP offload engine (TOE) | |
US20070255866A1 (en) | Method and system for a user space TCP offload engine (TOE) | |
WO2000072575A2 (en) | Reliable datagram transport service | |
WO2021004056A1 (zh) | 用于数据传输的方法和rdma网卡 | |
TW200537877A (en) | Retransmission system and method for a transport offload engine | |
KR20060123236A (ko) | 완료 프로세스 처리 시스템 및 방법 | |
EP4002734A1 (en) | Selective retransmission of packets | |
US8769137B2 (en) | Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP) | |
US8150996B2 (en) | Method and apparatus for handling flow control for a data transfer | |
US20020057687A1 (en) | High speed interconnection for embedded systems within a computer network | |
CN114826496A (zh) | 乱序分组处理 | |
WO2022056791A1 (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 |