CN117692109A - 远程直接内存访问的数据重传方法及相关设备 - Google Patents
远程直接内存访问的数据重传方法及相关设备 Download PDFInfo
- Publication number
- CN117692109A CN117692109A CN202311775361.9A CN202311775361A CN117692109A CN 117692109 A CN117692109 A CN 117692109A CN 202311775361 A CN202311775361 A CN 202311775361A CN 117692109 A CN117692109 A CN 117692109A
- Authority
- CN
- China
- Prior art keywords
- retransmission
- data
- retransmitted
- subgroups
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 30
- 238000012545 processing Methods 0.000 abstract description 10
- 230000002411 adverse Effects 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 239000000306 component Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- H04L1/1854—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/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
本公开提供了一种远程直接内存访问的数据重传方法及相关设备,涉及数据处理技术领域。该方法包括:获取多条待重传任务,多条待重传任务的元数据存储于未完成请求表中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对至少两个重传子组的重传数据包执行数据重传,从而解决大小包的传输问题,提升业务质量,提升重传效率,缓解重传等待对拥塞造成的不利影响。
Description
技术领域
本公开涉及数据传输网络技术领域,尤其涉及一种远程直接内存访问的数据重传方法、远程直接内存访问的数据重传装置、电子设备及计算机可读存储介质。
背景技术
随着人工智能、云计算、分布式计算等技术的快速发展,面向人工大模型训推的智算中心采用基于远程直接内存访问(Remote Direct Memory Access,RDMA)的高性能网络,随着大模型的参数体量不断发展以及智算业务租户化发展,智算中心节点也呈现规模化扩张,这对RDMA高性能网络的大规模组网能力也提出更高的要求,如何在大规模组网下避免网络报文乱序以及丢包,是其中的一个关键要求。
在相关技术中,通过RDMA网卡上的报文重传机制解决包乱序以及丢包问题。然而,当频繁出现丢包、乱序包重传时,大数据包对传输通道队列对(Queue Pair,QP)的持续占用致使小数据包无法及时送达,影响业务。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种远程直接内存访问的数据重传方法及相关设备,至少在一定程度上克服相关技术中数据重传导致网络性能下降的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种远程直接内存访问的数据重传方法,包括:获取多条待重传任务,其中,所述多条待重传任务的元数据存储于未完成请求表ORT中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,其中,所述重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对所述至少两个重传子组的重传数据包执行数据重传。
在本公开的一个实施例中,所述预设规则包括按照数据量由小到大的顺序执行数据重传;其中,所述按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:对于不同的重传子组,按照重传子组内的重传数据包的总数据量由小到大的顺序执行数据重传;对于同一重传子组,按照所述同一重传子组内的至少一个重传数据包的数据量由小到大的顺序执行数据重传。
在本公开的一个实施例中,所述预设规则包括按照重传数据包的优先级别执行数据重传;其中,所述按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:为所述各个重传子组分配相同的缓存空间地址,将所述缓存空间地址写入组合复用表中;根据组合复用表中各个重传子组内重传数据包的数据量之和,编排各个重传数据包的优先级别。
在本公开的一个实施例中,所述按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:根据各个重传数据包的优先级别,向发送端返回确认字符ACK重传应答,以指示所述发送端重传数据包;接收所述发送端的数据包,将所述数据包写入与所述缓存空间地址对应的重传缓存区,以使所述重传缓存区将重传数据包写入应用数据缓存;向所述发送端发送重传数据完成消息。
在本公开的一个实施例中,在所述向所述发送端发送重传数据完成消息之前,所述方法还包括:释放所述重传缓存区的缓存空间,更新所述组合复用表和所述ORT。
在本公开的一个实施例中,在所述获取多条待重传任务之前,包括:当检测到丢包或乱序时,将存在丢包或乱序的报文的元数据存储至所述ORT中,以生成待重传任务。
在本公开的一个实施例中,所述获取多条待重传任务,包括:周期性扫描所述ORT获得所述多条待重传任务。
在本公开的一个实施例中,所述根据各条待重传任务的元数据确定对应的重传数据包的数据量,包括:基于所述待重传任务的元数据,在缓存池中查找对应的工作队列元素WQE,解析查找到的WEQ,得到所述重传数据包的数据量。
在本公开的一个实施例中,所述重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件,包括:将数据量最大的重传数据包作为一个重传子组,各个重传子组内的重传数据包的数据量之和小于或等于所述重传数据包的数据量最大值。
根据本公开的另一个方面,提供一种一种远程直接内存访问的数据重传装置,包括:任务获取模块,用于获取多条待重传任务,其中,所述多条待重传任务的元数据存储于未完成请求表ORT中;信息确定模块,用于根据各条待重传任务的元数据确定对应的重传数据包的数据量;重传分组模块,用于根据多个重传数据包的数据量确定重传组合,其中,所述重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;数据重传模块,用于按照预设规则对所述至少两个重传子组的重传数据包执行数据重传。
根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的远程直接内存访问的数据重传方法。
根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的远程直接内存访问的数据重传方法。
根据本公开的另一个方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令由处理器加载并执行,以使计算机实现上述的远程直接内存访问的数据重传方法。
在本公开实施方式中,获取多条待重传任务,多条待重传任务的元数据存储于未完成请求表中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对至少两个重传子组的重传数据包执行数据重传,通过对未完成请求表扫描获得批量待重传任务,根据数据包的大小切分不同的重传组合,从而解决大小包的传输问题,提升业务质量,提升重传效率,缓解重传等待对拥塞造成的不利影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种远程直接内存访问的数据重传方法的一示例性架构的示意图。
图2示出本公开实施例中一种远程直接内存访问的数据重传方法流程图。
图3示出本公开实施例中另一种远程直接内存访问的数据重传方法流程图。
图4示出本公开实施例中一种重传数据包优先级别确定方法流程图。
图5示出本公开实施例中又一种远程直接内存访问的数据重传方法流程图。
图6示出本公开实施例中一种远程直接内存访问的数据重传系统示例的结构示意图。
图7示出本公开实施例中另一种远程直接内存访问的数据传输系统示例的结构示意图。
图8示出本公开实施例中一种远程直接内存访问的数据传输方法示例的流程图。
图9示出本公开实施例中一种远程直接内存访问的数据重传装置的结构示意图。
图10示出本公开实施例中一种电子设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用于本公开实施例的远程直接内存访问的数据重传方法的示例性系统架构的示意图。
如图1所示,系统架构可以包括两个具有远程直接内存访问(Remote DirectMemory Access,RDMA)功能终端的连接拓扑图,RDMA需要在硬件上实现可靠的传输协议,可靠服务保证消息从请求者到响应者最多传递依次,有序且无损坏。RDMA功能终端可以包括接收端和发送端。
RDMA功能终端包括RDMA网卡、存储器和中央处理器CPU,RDMA网卡、存储器和CPU之间通过总线BUS进行信息交互,接收端的RDMA网卡和发送端的RDMA网卡之间通过网络进行交互,网络可以是有线网络,也可以是无线网络。
可选地,上述的无线接入网或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
可以理解的是,对于无线通信系统,其是一种提供无线通信功能的网络。通信系统可以采用不同的通信技术,例如码分多址、带宽码分多址、时分多址、频分多址、正交频分多址、单载波频分多址、载波侦听多路访问/冲突避免。根据不同网络的容量、速率、时延等因素可以将网络分为2G(generation)网络、3G网络、4G网络或者未来演进网络,如5G网络,5G网络简称为网络或系统。本公开中,无线接入网中包括网络设备,该网络设备例如可以是无线接入网实体;核心网包括核心网设备。其中,无线接入网实体也可以成为基站。无线接入网可以通过网络设备为终端设备110提供网络服务,不同的运营商可以为终端设备110提供不同的网络服务,也可以理解为不同的运营商对应有不同的运行商网络。
终端设备,或者称为终端、用户终端、用户设备(Use Equipment,UE)等,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机等。
可选地,不同的终端设备中安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端等。
RDMA网卡简称RNIC,通过RDMA,接收端节点可以直接访问远端的发送端节点的内存,两端的CPU几乎不用参与数据传输过程。本端的网卡直接从内存的空间拷贝数据到内部存储空间,然后硬件进行各层报文的组装后,通过物理链路发送到对端网卡。对端的RDMA网卡收到数据包后,剥离各层报文头和校验码,通过直接内存访问(Direct Memory Access,DMA)将数据存储至用户空间内存中。
RDMA协议规定的回退N重传方案需要重传从丢包处后面所有的数据包。
在大规模组网场景下,报文重传机制的核心组件,如未完成请求表、重排序缓冲区和跟踪位列等,需要使用数GB以上缓存,而一般网卡的片上静态随机存取存储器(StaticRandom-Access Memory,SRAM)提供不了足够的容量,需要使用主机侧的内存,因此,报文重传机制需要通过PCIE(Peripheral Component Interconnect Express,一种高速串行计算机扩展总线标准)频繁在网卡和主机内存间换入换出以存取重传数据,势必影响组网性能;另外,重传机制不感知业务数据流包大小且并发处理重传任务,一旦网络出现拥塞,随着重传也增多,容易出现不同业务数据流相互阻塞以及重传剧增等加剧网络性能下降的问题。
为了至少部分地解决上述技术问题,本公开采用重排序缓冲区数据存储的方式,解决片上内存不足的问题。
基于此,本公开提供的远程直接内存访问的数据重传方法,获取多条待重传任务,多条待重传任务的元数据存储于未完成请求表ORT中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对至少两个重传子组的重传数据包执行数据重传,通过对ORT扫描获得批量待重传任务,根据数据包的大小切分不同的重传组合,从而解决大小包的传输问题,提升业务质量,提升重传效率,缓解重传等待对拥塞造成的不利影响。
下面结合附图及实施例对本示例实施方式进行详细说明。
首先,本公开实施例中提供了一种远程直接内存访问的数据重传方法,该方法可以由任意具备计算处理能力的电子设备执行。在一些实施例中,该方法可以由终端设备执行,例如可以由接收端RDMA功能终端执行,也可以由发送端RDMA功能终端执行,或者由接收端和发送端RDMA功能终端进行信息交互实现。
图2示出本公开实施例中一种远程直接内存访问的数据重传方法流程图,如图2所示,本公开实施例中提供的远程直接内存访问的数据重传方法,包括如下步骤:
S202、获取多条待重传任务,其中,所述多条待重传任务的元数据存储于未完成请求表中。
上述待重传任务可以为丢包的报文对应的数据包,也可以为乱序的报文对应的数据包,还可以为其他异常原因导致的重传情况。
在一个实施例中,RDMA网卡根据工作队列元素(Work Queue Element,WQE)可以获取待收发的内存缓存区的报文,每个WQE内记录了待收发报文的元数据信息,WQE是队列对(Queue Pair,QP)的基本构成元素,QP是RDMA通信的基本单元,通常的,一个进程或者线程消耗一个QP,用于报文收发,一个QP又发送队列SQ和接收队列RQ等组成。
当发送端通过SQ向接收端发起QP连接请求时,WQE缓存池生成WQE,通过SQ下发到缓存池,进而将QP连接请求下发至传输模块Transport模块进行数据发送,此时,接收端通过RQ接收QP连接请求,生成WQE通过RQ下发到WQE缓存池。
在一个实施例中,在所述获取多条待重传任务之前,包括:当检测到丢包或乱序时,将存在丢包或乱序的报文的元数据存储至未完成请求表(Outstanding Request,ORT)中,以生成待重传任务。
在网络通信中,报文传输是一种常见的数据交换方式,可以是文字、图片、音频等多种形式,解析报文则是将接收到的报文按照一定的规则进行分析和处理的过程。
报文包括报文头和报文体,报文头用来存储与报文相关的元数据,比如源地址、目的地址、报文长度、报文类型、报文编码方式等信息,报文体是实际传输的数据内容,报文的结构可以根据具体的通信协议和应用需求而有所不同。
报文的元数据用于记录与传输数据无关的报文关键信息,报文的元数据可以存储至报文头中。
报文的元数据可以包括源地址和目的地址,源地址为消息的发送端地址,目的地址表示消息的接收端地址,用于确定数据传输的路径。
报文的元数据还可以包括传输协议,传输协议是报文在传输过程中采用的协议,如TCP、UDP等,影响数据传输的可靠性和速度。
报文的元数据还可以包括报文长度,表示整个报文的长度,包括报文头和数据两部分,在传输过程中可以将一个报文拆分为多个小块进行传输。
报文的元数据包括校验和,是一种数据完整性校验技术,用来检测传输过程中是否发生错误,校验和是由发送端计算得到并附加在报文头中,接收端可以根据校验和对报文头和数据进行校验,从而确定是否存在丢包或乱序等情况。
除此之外,元数据还可以包括时间戳、序列号、优先级等,本公开不做具体限定。
在一个实施例中,可以通过周期性扫描未完成请求表获得多条待重传任务。扫描周期可以根据实际情况而定,例如当检测到丢包或乱序包时,每隔5min扫描一次未完成请求表,从而获得多条待重传任务。需要说明的是,扫描周期可以根据实际情况而定。通过周期性扫描未完成请求表获取待重传任务能够有效防止重传数据量过大,导致不同业务的数据流出现堵塞的情况发生,提升业务传输效率。
在一些实施例中,还可以获取未完成请求表中的报文的元数据的条数确定获取多条待重传任务的获取时机,例如,当未完成请求表中的报文的元数据的条数达到预设条数阈值时,获取一次待重传任务,预设条数阈值本公开不做具体限定。
S204、根据各条待重传任务的元数据确定对应的重传数据包的数据量。
一条待重传任务对应一个待重传报文,一个待重传报文中包含对应的重传数据包,根据待重传任务的元数据可以确定一个待重传任务的重传数据包的数据量。
重传数据包的数据量可以通过字节表征,用于确定重传数据包的大小。
在一个实施例中,S204根据各条待重传任务的元数据确定对应的重传数据包的数据量,包括:基于待重传任务的元数据,在缓存池中查找对应的工作队列元素WQE,解析查找到的WEQ,得到重传数据包的数据量。
S206、根据多个重传数据包的数据量确定重传组合,其中,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件。
在一个实施例中,将数据量最大的重传数据包作为一个重传子组。上述S206中不同重传子组内的重传数据包的数据量满足预设条件可以包括:各个重传子组内的重传数据包的数据量之和小于或等于重传数据包的数据量最大值。
对于多个重传数据包,根据数据量的大小划分为多个重传子组。例如,可以将多个重传数据包按照数据量由大到小或由小到大进行排序,将数据量最大的重传数据包划分到一个重传子组后,分别计算剩余重传数据包的数据量的和是否大于上述重传数据包的数据量最大值,从而实现对剩余重传数据包的分组,得到多个重传子组。
在一个实施例中,各个重传子组内的重传数据包的数量可以根据实际情况而定,只要各个重传子组内的重传数据包的数据量之和不超过重传数据包的数据量最大值即可。
在一些情况下,各个重传数据包的数据量比较接近,此时,可以将各个重传数据包分别分至对应的重传子组即可。
对于传输视频、音频等数据,重传数据包的数据量远远大于文字、图片等数据的数据量,此时,可能出现至少一个重传子组包括一个重传数据包,其他重传子组包括多个重传数据包的情况。
S208、按照预设规则对至少两个重传子组的重传数据包执行数据重传。
在一个实施例中,预设规则可以预先配置于接收端RDMA功能终端中,预设规则可以包括按照重传数据包的数据量由小到大的顺序执行数据重传;预设规则还可以包括根据各个重传子组的优先级执行数据重传,本公开不做具体限定。
在本公开实施方式中,获取多条待重传任务,多条待重传任务的元数据存储于未完成请求表中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对至少两个重传子组的重传数据包执行数据重传,通过对未完成请求表扫描获得批量待重传任务,根据数据包的大小切分不同的重传组合,从而解决大小包的传输问题,提升业务质量,提升重传效率,缓解重传等待对拥塞造成的不利影响。
在一个实施例中,预设规则包括按照数据量由小到大的顺序执行数据重传。
图3示出本公开实施例中另一种远程直接内存访问的数据重传方法流程图。在图2实施例的基础上,将S208进一步细化为S2082,对数据重传的执行规则进行限定。如图3所示,在一个实施例中,上述按照预设规则对至少两个重传子组的重传数据包执行数据重传,包括:S2082、对于不同的重传子组,按照重传子组内的重传数据包的总数据量由小到大的顺序执行数据重传;对于同一重传子组,按照同一重传子组内的至少一个重传数据包的数据量由小到大的顺序执行数据重传,从而通过设定不同重传子组的重传顺序以及各个重传子组内重传数据包的重传顺序,解决大小包的优先问题,提升业务质量。
在一个实施例中,预设规则包括按照重传数据包的优先级别执行数据重传;其中,S208按照预设规则对至少两个重传子组的重传数据包执行数据重传,包括:
S402、为各个重传子组分配相同的缓存空间地址,将缓存空间地址写入组合复用表中;
S404、根据组合复用表中各个重传子组内重传数据包的数据量之和,编排各个重传数据包的优先级别。
组合复用表用于记录各个重传子组的信息、存储首地址、以及记录各个重传子组内各个重传数据包的相关信息,例如,各个重传数据包的相关信息包括但不限于WQE的ID和WQE的大小等,各个重传子组的信息包括但不限于重传子组的ID等,存储首地址用于记录各个WQE数据包按照总数据量由小到大的顺序。
缓存空间地址用于表示接收重传数据后能够存储到对应地址的复用空间上。
在一个实施例中,根据不同的重传子组,可以在重传缓冲区开辟复用空间,即上述的缓冲空间地址,以供多个重传子组复用,开辟复用空间包括对复用空间的创建、读写和销毁等。
需要说明的是,上述复用空间可以为数据量最大的重传数据包开辟的存储空间,其他WQE重传子组可以复用上述存储空间。
每扫描一次ORS就会产生一系列重传子组,可以按照各个重传子组内各个重传数据包的数据量之和编排重传优先级别,实现优先级编排功能。重传优先级可以按照重传复用表从小到大排序优先完成重传,按照存储首地址和WQE大小的方式复用存储空间。
在本公开实施方式中,为各个重传子组分配相同的缓存空间地址,将缓存空间地址写入组合复用表中;根据组合复用表中各个重传子组内重传数据包的数据量之和,编排各个重传数据包的优先级别,从而实现重传数据包由小到大传输,通过缓存复用方式节省片上内存的使用量,提高重传效率,有效缓解重传等待对拥塞造成的不利影响,提升重传效率。
图5示出本公开实施例中有一种远程直接内存访问的数据重传方法流程图。如图5所示,在一个实施例中,上述S208按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:
S502、根据各个重传数据包的优先级别,向发送端返回确认字符(AcknowledgeCharacter,ACK)重传应答,以指示发送端重传数据包;
S504、接收发送端的数据包,将数据包写入与缓存空间地址对应的重传缓存区,以使重传缓存区将重传数据包写入应用数据缓存;
S506、向发送端发送重传数据完成消息。
ACK在数据通信中是接收端发送至发送端的一种传输类的控制字符。
在一种情形中,ACK表示接收端确认应答,当产生丢包时,预发确认应答,与正常收包相同,指示发送端的数据延迟发送,避免原生重传方式的多次重发ACK等待,同时,确保ORS扫描时能够及时获取待重传任务,从而提升重传缓存复用率。
在一种情形中,ACK用于发送端重发管控,接管并去除原生重传方式的多次重发ACK等待,当接收到确认应答或经过一次ACK等待后,指示接收端发送下一WQE数据,一次ACK等待后的WQE,接收端会作为重传数据包处理,并主动通知发送端。
在另一种情形中,ACK用于接收端重传应答,发送发不再通过多次延迟等待的重传方式来补发数据包,需要主动发送重传ACK通知发送端,ACK携带对应的WQE的索引号。
在一个实施例中,接收端根据各个重传数据包的优先级别,向发送端返回ACK重传应答,以指示发送端重传数据包;发送端接收ACK重传应答并补发重传数据包。接收端接收发送端的数据包,将数据包写入与缓存空间地址对应的重传缓存区,重传缓存区取得重传数据,并将补全的数据写入应用数据缓存,所有重传数据接收完毕后,接收端向发送端发送重传数据完成消息。
在一个实施例中,在向发送端发送重传数据完成消息之前,该方法还包括:释放重传缓存区的缓存空间,更新组合复用表和未完成请求表,从而实现数据重传,提升数据重传的有效性和可靠性。
在本公开实施方式中,接收端以重传应答应答替代原生的发送端延迟重发方式,通过有计划主动的重传触发机制,解决并发重传导致的网络性能下降。
为了加深对本公开实现过程的理解,下面结合图6和图7进行详细说明。
图6示出本公开实施例中一种远程直接内存访问的数据重传系统示例的结构示意图。如图6所示,本公开实施例中的一种远程直接内存访问的数据重传系统包括CPU和网卡RNIC,CPU用于QP连接控制,CPU和网卡RNIC之间通过PCI-e进行信息交互。
RNIC包括直接内存访问设备(Direct Memory Access,DMA Engine)、传输设备(Transport)和物理网卡层,DMA Engine作为WQE缓存池,用于存储待收发WQE,Transport用于存储未完成请求表、作为重传缓存区、跟踪队列,物理网卡层用于在接收端和发送端之间作为数据发送层。
在本公开中,在RNIC中增加未完成请求扫描模块(Outstanding Request Scan,ORS模块)、缓存复用控制模块(Cache Multiplex Control,CMC模块)和数据传输控制模块(Data Transmission Control,DTC模块)。
如图7所示,ORS模块用于改变原生先进先出的重传执行方案,在大量丢包产生重传情况下,按时周期性扫描未完成请求表,获得批量重传任务,实现批量扫描功能;通过未完成请求表中的元数据在WQE缓存池中查找对应的WQE,解析WQE获得重传数据包的数据量以及WQE索引号,实现WQE解析功能;ORS模块还用于根据未完成请求表获得的待重传数据包的数据量大小划分重传组合,得到多个重传子组,将多个重传子组传输至CMC模块,实现ORT分组功能,上述重传组合中,不同WQE数据量大小不同,将数据量最大的WQE划分至一个重传子组,数据量中、小的WQE按需分组,可以单独成一个重传子组,也可以混合成一个重传子组,需要说明的是,混合而成的重传子组的总数据量大小不超过数据量最大的重传子组的数据量。
CMC模块根据不同的重传子组,在重传缓冲区开辟复用空间,包括对复用空间的创建、读写和销毁,实现重传调度功能,缓存复用指的是只为数据量最大的重传子组开辟存储空间,其他WQE重传子组复用上述存储空间。
CMC模块将组合复用的空间地址记录到复用组合表中,用于接收重传数据后能够存储到对应地址的复用空间上,实现复用组合表功能。复用组合表的结构为:分割标志位+存储首地址+[WQE数量N+(WQE的ID+WQE的数据量)×N],其中N为获得的待重传任务或者待重传数据包的数量,WQE的ID可以为WQE的序列号,分割标志位用于切分不同重传子组,(WQE的ID+WQE的数据量)×N用于记录各个WQE数据包按照总数据量大小从小到大排序。
每扫描一次ORS即可产生一组重传子组,CMC模块按照组合复用的层级,编排重传优先级别,实现优先级编排功能,重传优先级别按照复用组合表从小到大排序优先完成重传,按照“存储首地址+WQE大小”的方式复用存储空间。
CMC模块通过DTC模块通知接口,对DTC侧下发重传应答申请,实现DTC控制功能。
对于DTC模块,当产生丢包时,预发确认应答,与正常收包相同,指示发送端数据延迟发送,避免原生重传方案的多次重传ACK等待,同时,确保ORS扫描时能够及时获得待重传任务,提升重传缓存复用率,实现接收端确认应答。
DTC模块用于重传应答,发送方不再通过多次延迟等待的重传方式来补发数据包,需要接收端主动发送重传ACK通知发送端,ACK携带对应WQE的索引号。
DTC模块用于数据重传管控,接管并去除原生重传方案的多次重发ACK等待,当接收到确认应答或经过一次ACK等待后,发送下个WQE数据。一次ACK等待后的WQE,接收端会作为重传包处理并主动通知发送端,实现发送端重发管控。
图8示出本公开实施例中一种远程直接内存访问的数据传输方法示例的流程图。如图8所示,本公开的数据传输方法示例流程图包括:
发送端通过SQ发起请求,根据请求生成WQE,通过SQ下发到WQE缓存池,以及下发至Transport进行数据发送。
接收端通过RQ接收请求,根据请求生成WQE,通过RQ下发到WQE缓存池。
当DTC模块检测到出现丢包或乱序包导致不能正常接收时,将丢包或乱序包对应的WQE的元数据存储至ORT表中。
ORS模块定期扫描ORT表,批量读取未完成的WQE元数据。
根据未完成的WQE元数据在WQE缓存池中找到对应的WQE,并解析消息,得到WQE的重传数据包的数据量。
ORS模块提取复用所需信息并按大小分组,得到多个重传子组,将多个重传子组传至CMC模块。
CMC模块对WQE组合(多个重传子组)重传次序进行编排并将编排结果存储至复用组合表中。
根据复用组合表在重传缓冲区中开辟复用缓存区空间,用于存放补发的重传数据。
CMC模块根据重传组合中的重传优先级通知DTC模块。
DTC模块根据优先级别先后向不同的QP连接返回ACK重传应答。
发送端得到ACK重传应答,补发数据包。
DTC模块接收数据并写入重传缓存区,更新跟踪队列,确保所有数据接收完成。
删除ORT表中已完成重传请求的WQE元数据。
重传缓存区取得重传数据,将补全的数据写入应用数据缓存,释放复用的缓存空间,WQE缓存池根据WQE中存储的地址将数据写到应用缓存中,完成传输后通过CQ通知接收端。
在本公开中,通过ORS模块定时对重传请求表的扫描取得批量请求任务,并根据数据包大小切分不同的重传组合再按序重传,解决大小包的优先问题。CMC模块可以通过缓存复用的方式,节省片上内存的使用量,提高重传效率,缓解重传等待对拥塞造成的不利影响。DTC模块能够使接收端以重传应答替代原生的发送端延迟重发方式,通过有计划主动的重传触发机制,解决并发重传导致的网络性能下降。
基于同一发明构思,本公开实施例中还提供了一种远程直接内存访问的数据重传装置,如下面的实施例。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图9示出本公开实施例中一种算力路由节点示意图,如图9所示,该算力路由节点包括:任务获取模块910、信息确定模块920、重传分组模块930和数据重传模块940。
其中,任务获取模块910,用于获取多条待重传任务,其中,多条待重传任务的元数据存储于未完成请求表ORT中;
信息确定模块920,用于根据各条待重传任务的元数据确定对应的重传数据包的数据量;
重传分组模块930,用于根据多个重传数据包的数据量确定重传组合,其中,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;
数据重传模块940,用于按照预设规则对至少两个重传子组的重传数据包执行数据重传。
在一个实施例中,预设规则包括按照数据量由小到大的顺序执行数据重传;数据重传模块940,用于对于不同的重传子组,按照重传子组内的重传数据包的总数据量由小到大的顺序执行数据重传;对于同一重传子组,按照同一重传子组内的至少一个重传数据包的数据量由小到大的顺序执行数据重传。
在一个实施例中,预设规则包括按照重传数据包的优先级别执行数据重传;数据重传模块940,用于为各个重传子组分配相同的缓存空间地址,将缓存空间地址写入组合复用表中;根据组合复用表中各个重传子组内重传数据包的数据量之和,编排各个重传数据包的优先级别。
在一个实施例中,数据重传模块940,还用于根据各个重传数据包的优先级别,向发送端返回确认字符ACK重传应答,以指示发送端重传数据包;接收发送端的数据包,将数据包写入与缓存空间地址对应的重传缓存区,以使重传缓存区将重传数据包写入应用数据缓存;向发送端发送重传数据完成消息。
在一个实施例中,数据重传模块940,还用于在向发送端发送重传数据完成消息之前,释放重传缓存区的缓存空间,更新组合复用表和ORT。
在一个实施例中,该装置还包括未显示于附图中的任务生成模块,任务生成模块用于在获取多条待重传任务之前,当检测到丢包或乱序时,将存在丢包或乱序的报文的元数据存储至ORT中,以生成待重传任务。
在一个实施例中,任务获取模块910,用于周期性扫描ORT获得多条待重传任务。
在一个实施例中,信息确定模块920,用于基于待重传任务的元数据,在缓存池中查找对应的工作队列元素WQE,解析查找到的WEQ,得到重传数据包的数据量。
在一个实施例中,重传分组模块930,用于将数据量最大的重传数据包作为一个重传子组,各个重传子组内的重传数据包的数据量之和小于或等于重传数据包的数据量最大值。
在本公开实施方式中,获取多条待重传任务,多条待重传任务的元数据存储于未完成请求表ORT中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对至少两个重传子组的重传数据包执行数据重传,通过对ORT扫描获得批量待重传任务,根据数据包的大小切分不同的重传组合,从而解决大小包的传输问题,提升业务质量,提升重传效率,缓解重传等待对拥塞造成的不利影响。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030。
其中,存储单元存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
示例性的,处理单元1010可以执行如图2中的方法实施例的如下步骤:获取多条待重传任务,多条待重传任务的元数据存储于未完成请求表ORT中;根据各条待重传任务的元数据确定对应的重传数据包的数据量;根据多个重传数据包的数据量确定重传组合,重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;按照预设规则对至少两个重传子组的重传数据包执行数据重传。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1040(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。该计算机可读存储介质上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在网络设备上运行时,程序代码用于使网络设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (12)
1.一种远程直接内存访问的数据重传方法,其特征在于,包括:
获取多条待重传任务,其中,所述多条待重传任务的元数据存储于未完成请求表中;
根据各条待重传任务的元数据确定对应的重传数据包的数据量;
根据多个重传数据包的数据量确定重传组合,其中,所述重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;
按照预设规则对所述至少两个重传子组的重传数据包执行数据重传。
2.根据权利要求1所述的远程直接内存访问的数据重传方法,其特征在于,所述预设规则包括按照数据量由小到大的顺序执行数据重传;
其中,所述按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:
对于不同的重传子组,按照重传子组内的重传数据包的总数据量由小到大的顺序执行数据重传;
对于同一重传子组,按照所述同一重传子组内的至少一个重传数据包的数据量由小到大的顺序执行数据重传。
3.根据权利要求1或2所述的远程直接内存访问的数据重传方法,其特征在于,所述预设规则包括按照重传数据包的优先级别执行数据重传;
其中,所述按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:
为所述各个重传子组分配相同的缓存空间地址,将所述缓存空间地址写入组合复用表中;
根据组合复用表中各个重传子组内重传数据包的数据量之和,编排各个重传数据包的优先级别。
4.根据权利要求3所述的远程直接内存访问的数据重传方法,其特征在于,所述按照预设规则对所述至少两个重传子组的重传数据包执行数据重传,包括:
根据各个重传数据包的优先级别,向发送端返回确认字符ACK重传应答,以指示所述发送端重传数据包;
接收所述发送端的数据包,将所述数据包写入与所述缓存空间地址对应的重传缓存区,以使所述重传缓存区将重传数据包写入应用数据缓存;
向所述发送端发送重传数据完成消息。
5.根据权利要求4所述的远程直接内存访问的数据重传方法,其特征在于,在所述向所述发送端发送重传数据完成消息之前,所述方法还包括:
释放所述重传缓存区的缓存空间,更新所述组合复用表和所述未完成请求表。
6.根据权利要求1所述的远程直接内存访问的数据重传方法,其特征在于,在所述获取多条待重传任务之前,包括:
当检测到丢包或乱序时,将存在丢包或乱序的报文的元数据存储至所述未完成请求表中,以生成待重传任务。
7.根据权利要求1所述的远程直接内存访问的数据重传方法,其特征在于,所述获取多条待重传任务,包括:
周期性扫描所述未完成请求表获得所述多条待重传任务。
8.根据权利要求1所述的远程直接内存访问的数据重传方法,其特征在于,所述根据各条待重传任务的元数据确定对应的重传数据包的数据量,包括:
基于所述待重传任务的元数据,在缓存池中查找对应的工作队列元素WQE,解析查找到的WEQ,得到所述重传数据包的数据量。
9.根据权利要求1所述的远程直接内存访问的数据重传方法,其特征在于,所述重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件,包括:
将数据量最大的重传数据包作为一个重传子组,各个重传子组内的重传数据包的数据量之和小于或等于所述重传数据包的数据量最大值。
10.一种远程直接内存访问的数据重传装置,其特征在于,包括:
任务获取模块,用于获取多条待重传任务,其中,所述多条待重传任务的元数据存储于未完成请求表中;
信息确定模块,用于根据各条待重传任务的元数据确定对应的重传数据包的数据量;
重传分组模块,用于根据多个重传数据包的数据量确定重传组合,其中,所述重传组合中包括至少两个重传子组,各个重传子组内包括至少一个重传数据包,不同重传子组内的重传数据包的数据量满足预设条件;
数据重传模块,用于按照预设规则对所述至少两个重传子组的重传数据包执行数据重传。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~9中任意一项所述的远程直接内存访问的数据重传方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~9中任意一项所述的远程直接内存访问的数据重传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311775361.9A CN117692109A (zh) | 2023-12-21 | 2023-12-21 | 远程直接内存访问的数据重传方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311775361.9A CN117692109A (zh) | 2023-12-21 | 2023-12-21 | 远程直接内存访问的数据重传方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117692109A true CN117692109A (zh) | 2024-03-12 |
Family
ID=90126269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311775361.9A Pending CN117692109A (zh) | 2023-12-21 | 2023-12-21 | 远程直接内存访问的数据重传方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117692109A (zh) |
-
2023
- 2023-12-21 CN CN202311775361.9A patent/CN117692109A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111786748B (zh) | 数据重传方法和系统、网卡、装置、服务器和存储介质 | |
US10430374B2 (en) | Selective acknowledgement of RDMA packets | |
EP3482298B1 (en) | Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks | |
KR101941416B1 (ko) | 네트워킹 기술들 | |
US6393023B1 (en) | System and method for acknowledging receipt of messages within a packet based communication network | |
US20070294426A1 (en) | Methods, systems and protocols for application to application communications | |
US20040258076A1 (en) | Setting up a delegated TCP connection | |
US6543005B1 (en) | Transmitting data reliably and efficiently | |
US9130740B2 (en) | Variable acknowledge rate to reduce bus contention in presence of communication errors | |
CN105141603A (zh) | 通信数据传输方法及系统 | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
CN115066844A (zh) | 具有优化存储器路径的动态上行链路端到端数据传输方案 | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN113973091A (zh) | 一种报文处理方法、网络设备以及相关设备 | |
US9450706B2 (en) | Communication apparatus and packet transfer method | |
US20240146806A1 (en) | Intermediate apparatus, communication method, and program | |
CN117692109A (zh) | 远程直接内存访问的数据重传方法及相关设备 | |
CN109861967A (zh) | 基于Spark Shuffle的远程直接内存访问系统 | |
CN111698274A (zh) | 数据处理方法及装置 | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 | |
CN113422792B (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
KR20140125311A (ko) | 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 | |
JP2014147011A5 (zh) | ||
CN109688085B (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 |