CN115633104A - 数据发送方法、数据接收方法、装置及数据收发系统 - Google Patents

数据发送方法、数据接收方法、装置及数据收发系统 Download PDF

Info

Publication number
CN115633104A
CN115633104A CN202211112038.9A CN202211112038A CN115633104A CN 115633104 A CN115633104 A CN 115633104A CN 202211112038 A CN202211112038 A CN 202211112038A CN 115633104 A CN115633104 A CN 115633104A
Authority
CN
China
Prior art keywords
wqe
message
rdma
offset
rdma message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211112038.9A
Other languages
English (en)
Other versions
CN115633104B (zh
Inventor
刘运渠
蔡伟泽
李知隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Weishi Technology Co ltd
Original Assignee
Jiangsu Weishi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Weishi Technology Co ltd filed Critical Jiangsu Weishi Technology Co ltd
Priority to CN202211112038.9A priority Critical patent/CN115633104B/zh
Publication of CN115633104A publication Critical patent/CN115633104A/zh
Application granted granted Critical
Publication of CN115633104B publication Critical patent/CN115633104B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • H04L1/0008Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length by supplementing frame payload, e.g. with padding bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请公开了一种数据发送方法、数据接收方法、装置及数据收发系统,该数据发送方法包括:当第一设备向第二设备按序发送工作队列元素中的N个RDMA报文时,确定当前待发送的RDMA报文的扩展信息;并将所确定的扩展信息插入所述当前待发送的RDMA报文后发送;其中,所述N为大于或等于1的正整数;所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度;所述扩展信息位于RDMA扩展传输报文头;所述扩展信息用于当所述第二设备判定发生丢包或乱序情况时,根据所述扩展信息缓存所述RDMA报文。

Description

数据发送方法、数据接收方法、装置及数据收发系统
技术领域
本申请涉及远程直接内存访问(RDMA:Remote Direct Memory Access)技术领域,尤指一种数据发送方法、数据接收方法、装置及数据收发系统。
背景技术
数据中心网络需要有更高的带宽及更低的延迟,随着网络带宽的增加传统的网络协议栈会消耗大量的CPU资源,以及较高的时延。而RDMA网络绕过了主机协议栈,通过直接内存访问技术提高了网络带宽及降低了网络延迟。
目前,大致有三类RDMA网络,分别是Infiniband(直译为“无线带宽”技术,缩写为IB)、RoCE(RDMA over Converged Ethernet,运行在以太网中的RDMA技术)、iWARP。其中,RoCE协议定义了如何在以太网中运行RDMA。但是由于以太网本身的不可靠性,且由于RDMA协议采用Go-Back-N(译为“回退N帧协议”)重传机制对丢失报文进行重传,因此当网络产生丢包或接收到的数据包乱序时,接收端在没有接收到预期包序号(PSN:packet sequencenumber)的数据包时,会将其余可正常到达的数据包丢弃,并发送否定确定(NACK:negativeacknowledgment)数据包至发送端,发送端接收到NACK数据包后从接收端预期的PSN数据包开始重新发送后续所有的数据包,接收端从预期PSN的数据包开始重新接收,这将导致网络带宽被重传数据包占用,接收流程变长,影响传输效率。所以RoCE NIC只有在不丢包的网络上运行时才能取得良好的端到端性能。为了提高网络中数据包丢失或乱序时的传输效率,必须对现有的接收端接收数据包及发送端发送重传数据包的机制进行调整。
发明内容
本申请提供了一种数据发送方法、数据接收方法、装置及数据收发系统,能够提高传输过程中发生丢包或乱序后的数据传输效率。
本申请提供了一种数据发送方法,包括:
当第一设备向第二设备按序发送工作队列元素中的N个RDMA报文时,确定当前待发送的RDMA报文的扩展信息;并将所确定的扩展信息插入所述当前待发送的RDMA报文后发送;
其中,所述N为大于或等于1的正整数;所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度;所述扩展信息位于RDMA扩展传输报文头;所述扩展信息用于当所述第二设备判定发生丢包或乱序情况时,根据所述扩展信息缓存所述RDMA报文。
在一种示例性的实施例中,在将所确定的扩展信息插入所述当前待发送的RDMA报文后发送之后,还包括:
当接收到所述第二设备发送的重传指示报文时,重传所述重传指示报文中携带的报文序列号对应的RDMA报文。
在一种示例性的实施例中,确定当前待发送的RDMA报文的扩展信息,包括:
将预设计数器的当前值作为当前待发送的RDMA报文的WQE序号;其中,所述计数器设置为每发送一个工作队列元素,所述计数器的值加一。
在一种示例性的实施例中,确定当前待发送的RDMA报文的扩展信息,包括:
将同一工作队列元素中的上一个报文发送后计算出的偏移量作为当前待发送的RDMA报文的WQE偏移量;
其中,同一工作队列元素中的上一个报文发送后按照如下方式计算偏移量:
若不存在上一个报文,则将偏移量设为0;
若存在上一个报文,则将上一个报文的WQE偏移量与最大传输单元的字节数的和作为偏移量。
本申请提供了一种数据接收方法,包括:
当第二设备接收到RDMA报文后,即判断是否发生丢包或乱序情况;
当判定发生丢包或乱序情况时,第二设备根据所述RDMA报文所携带的扩展信息缓存所述RDMA报文;所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度。
在一种示例性的实施例中,所述第二设备根据所述RDMA报文所携带的扩展信息缓存所述RDMA报文,所述扩展信息包括WQE序号、WQE偏移量和WQE总长度,包括:
当不存在与所述RDMA报文所携带的WQE序号对应的缓存空间且也不存在与所述RDMA报文所携带的WQE序号对应的主机内存地址时,根据所述RDMA报文所携带的WQE总长度申请缓存空间;根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置;
当存在与所述RDMA报文所携带的WQE序号对应的缓存空间时,根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置。
在一种示例性的实施例中,根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置,包括:
根据所述RDMA报文所携带的WQE序号获取缓存空间的基地址;
将获取到的基地址与所述RDMA报文所携带的WQE偏移量相加得到所述RDMA报文的存储地址;
将所述RDMA报文缓存到所述RDMA报文的存储地址。
在一种示例性的实施例中,判断是否存在所述RDMA报文的WQE序号对应的位图表;
如果判定是,则根据所述RDMA报文的WQE偏移量确定记录所述RDMA报文的接收状态的比特位,并在所确定的比特位记录接收状态;其中,所述接收状态为接收成功或接收失败;
如果判定否,则为所述RDMA报文对应的WQE创建相应的位图表,并在所创建的位图表的相应位置记录所述RDMA报文的接收状态。
在一种示例性的实施例中,将所述RDMA报文的WQE序号对应的位图表中接收失败的比特位对应的报文序列号通过重传指示报文发送给第一设备。
在一种示例性的实施例中,当所述第二设备接收到第一设备的重传的报文后,判定同一工作队列元素的全部RDMA报文都成功接收且获取到该工作队列元素在第二设备的目的存储地址后,则将同一工作队列元素的全部RDMA报文写入主机空间并释放该工作队列元素的缓存空间。
本申请提供了一种数据发送装置,包括存储器和处理器,
所述存储器,用于保存用于数据发送的程序;
所述处理器,用于读取执行所述用于数据发送的程序,执行上述的数据发送方法。
本申请提供了一种数据接收装置,包括存储器和处理器,
所述存储器,用于保存用于数据接收的程序;
所述处理器,用于读取执行所述用于数据接收的程序,执行上述的数据接收方法。
本申请提供了一种数据收发系统,包括数据发送装置和数据接收装置,
所述数据发送装置为上述的数据发送装置;
所述数据接收装置为上述的数据接收装置。
本申请包括以下优点:
本申请至少一个实施例通过发送端不需要在某包数据传输失败后重传该数据包之后的所有的数据包,通过接收端指示的错误PSN重传对应的数据包,提高了丢包后的传输效率。
本申请实施例的一种实现方式中,传输过程中发生丢包或乱序时接收端不需要将后续所有的数据包进行缓存,只需要缓存无法立即获取工作队列元素(即WQE:Work QueueElement)目的地址的数据包或不完整的工作队列元素的数据包,减少乱序或丢包后接收端的缓存空间。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例的数据发送方法的流程图;
图2为本申请实施例的RDMA报文格式的示意图;
图3为本申请实施例的数据接收方法的流程图;
图4为本申请实施例的基于RDMA乱序接收及选择性重传的处理方法的流程图。
具体实施方式
图1为本申请实施例的数据发送方法的示意图,如图1所示,本实施例的数据发送方法,包括S11-S12步骤:
S11、当第一设备向第二设备按序发送工作队列元素中的N个RDMA报文时,确定当前待发送的RDMA报文的扩展信息;
S12、将所确定的扩展信息插入所述当前待发送的RDMA报文后发送。
其中,所述N为大于或等于1的正整数;所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度;所述扩展信息用于当所述第二设备判定发生丢包或乱序情况时,根据所述扩展信息缓存所述RDMA报文。
在一种示例性的实施例中,扩展信息位于RDMA扩展传输报文头(ETH:extendedtransport header),ETH是RDMA报文格式中的一个字段(如图2所示),原IB协议中的AETH、RETH等都属于ETH的一种,本申请在原有的ETH基础上继续扩展,扩展后该字段携带了WQE序号、WQE偏移量和WQE总长度。基本传输报文头(BTH:base transport header)是RDMA报文格式中的一个字段,其中包括PSN。
在一种示例性的实施例中,在将所确定的扩展信息插入所述当前待发送的RDMA报文后发送之后,还包括:当接收到所述第二设备发送的重传指示报文时,重传所述重传指示报文中携带的报文序列号对应的RDMA报文。
每一个RDMA报文均有一个对应的报文序列号(PSN:packet sequence number)。
在一种示例性的实施例中,确定当前待发送的RDMA报文的扩展信息,包括:
将预设计数器的当前值作为当前待发送的RDMA报文的WQE序号;其中,所述计数器设置为每发送一个工作队列元素,所述计数器的值加一。
在一种示例性的实施例中,确定当前待发送的RDMA报文的扩展信息,包括:
将同一工作队列元素中的上一个报文发送后计算出的偏移量作为当前待发送的RDMA报文的WQE偏移量;
其中,同一工作队列元素中的上一个报文发送后按照如下方式计算偏移量:
若不存在上一个报文,则将偏移量设为0;
若存在上一个报文,则将上一个报文的WQE偏移量与最大传输单元的字节数的和作为偏移量。
最大传输单元(MTU:maximum transmission unit)是RDMA协议中每一次RDMA传输可以传输的最大数据包大小,上述RDMA报文的数量N可以根据待发送数据的数据量大小和MTU确定。
报文序列号最小的报文的WQE偏移量为0,报文序列号比最小的报文序列号加一所对应的报文的WQE偏移量为一个MTU,依此类推。假设MTU为1024字节,则报文序列号比最小的报文序列号加一所对应的报文的WQE偏移量为1024字节。
在原始IB协议中,工作队列元素(WQE)包含WQE总长度信息。但是在发送端的内部使用,没有携带在所有报头中。因此,本申请只需获取WQE总长度信息,并添加到报头中即可。
本申请实施例通过在发送端为每个报文增加WQE序号、WQE偏移量和WQE总长度信息,使得接收端可以在判定存在丢包或乱序时根据这些信息基于WQE缓存及排序接收到的报文,从而无需从接收端预期的PSN数据包开始重新发送后续所有的数据包。因此,本申请实施例为提高数据传输过程中发生丢包或乱序后的传输效率奠定了基础。
图3为本申请实施例的数据接收方法的流程图,如图3所示,包括S31-S32步骤:
S31、当第二设备接收到RDMA报文后,即判断是否发生丢包或乱序情况;
S32、当判定发生丢包或乱序情况时,第二设备根据所述RDMA报文所携带的扩展信息缓存所述RDMA报文。
其中,所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度。
在步骤S31中,在原始的IB协议中,接收端会维护一个预期的PSN,当接收到的报文所携带的PSN大于预期的PSN时,则判定发生了丢包或乱序。例如,当预期的PSN为5,但是此时接收到PSN为6的报文,那么可能是丢包也可能是乱序。但是乱序的报文在不重传的情况下,之后还能被第二设备接收到,而丢包的报文只有在触发重传后才能被第二设备接收。
在一种示例性的实施例中,第二设备根据所述RDMA报文所携带的WQE序号、WQE偏移量和WQE总长度缓存所述RDMA报文,包括:
当不存在与所述RDMA报文所携带的WQE序号对应的缓存空间且不存在与所述RDMA报文所携带的WQE序号对应的主机内存空间时,根据所述RDMA报文所携带的WQE总长度申请缓存空间;根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置;
当存在与所述RDMA报文所携带的WQE序号对应的缓存空间时,根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置。
需要说明的是,之前已经接收的没有问题的报文是按照IB协议的正常流程处理的。当发生乱序或者丢包后可以根据WQE序号得知当前接收的报文与之前正常接收的报文是否属于同一个WQE,如果属于同一个WQE,由于之前正常接收的报文已经存储在第二设备中,因此会有一个主机内存地址(该主机内存地址在第二设备收到WQE的第一个报文时已经得到),那么根据WQE偏移量可计算得到报文在主机中的存储地址。这种情况下,当发生乱序或者丢包后直接将报文保存到主机中的存储地址,就不需要缓存排序了。
在一种示例性的实施例中,根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置,包括:
根据所述RDMA报文所携带的WQE序号获取缓存空间的基地址;
将获取到的基地址与所述RDMA报文所携带的WQE偏移量相加得到所述RDMA报文的存储地址;
将所述RDMA报文缓存到所述RDMA报文的存储地址。
在一种示例性的实施例中,判断是否存在所述RDMA报文的WQE序号对应的位图表;
如果判定是,则根据所述RDMA报文的WQE偏移量确定记录所述RDMA报文的接收状态的比特位,并在所确定的比特位记录接收状态;其中,所述接收状态为接收成功或接收失败;
如果判定否,则为所述RDMA报文对应的WQE创建相应的位图表,并在所创建的位图表的相应位置记录所述RDMA报文的接收状态。
在一种示例性的实施例中,可以根据WQE总长度、以及最大传输单元(MTU)计算为位图表需要的比特位数。比特位数与WQE中的报文个数是一致的。根据同一工作队列元素(WQE)的每一个RDMA报文的接收情况确定相应的位图表中每一个比特位的接收状态。
在一种示例性的实施例中,当接收状态为接收成功时可以将位图表中的对应比特位的值设置为1,当接收状态为接收失败时,可以将位图表中的对应比特位的值设置为0。一般在预设时段内未接收到预期报文,就认为是接收失败。
同一工作队列元素的每一个RDMA报文的报文序列号与所述相应的位图表中的每一个比特位一一对应。在同一工作队列元素中,可以根据接收成功的报文的报文序列号可推知接收失败的报文的报文序列号。
在一种示例性的实施例中,将所述RDMA报文的WQE序号对应的位图表中接收失败的比特位对应的报文序列号通过重传指示报文发送给第一设备。
在一种示例性的实施例中,当所述第二设备接收到第一设备的重传的报文后,判定同一工作队列元素的全部RDMA报文都成功接收且获取到工作队列元素在第二设备的目的存储地址后,则将同一工作队列元素的全部RDMA报文写入主机空间并释放该工作队列元素的缓存空间。
RDMA有read、write、send三种操作方式,send操作时发送端发送的send操作顺序需要与接收端接收send后使用的receive WQE顺序一致。Send操作的数据包无法通过数据包中的内容获取存储地址,需要等到之前的数据包都到达之后才能确定send操作要查找的receive WQE,从而获取存储地址。send操作的receive WQE获取不在本申请中描述。write操作在接收到WQE中的第一个数据包之后就能得到整个WQE的存储地址。
本申请实施例通过在发生丢包或乱序时,根据所述RDMA报文所携带的WQE序号、WQE偏移量和WQE总长度缓存所述RDMA报文,同时在位图表中记录RDMA报文的接收情况,可以向发送端反馈需要重传的报文的PSN,无需在丢包或乱序时丢弃可正常到达的数据包,且无需从接收端预期的PSN数据包开始重新发送后续所有的数据包,提高了丢包或乱序后的传输效率。
图4为本申请实施例的基于RDMA乱序接收及选择性重传的处理方法的流程图,该处理方法包括S41-S49步骤:
S41、第一设备计算发送的WQE序列号。
S42、第一设备计算数据包在WQE中的偏移量。
S43、第一设备在每个发送数据包中增加WQE序号、数据包在WQE中的偏移量、WQE总长度,并发送至第二设备。
S44、第二设备接收到乱序数据包或者传输产生丢包时,根据数据包中的WQE总长度申请空间。
S45、第二设备根据数据包在WQE中的偏移量将数据包放在缓存的对应位置。
S46、第二设备接收到的后续数据包,根据WQE序号索引缓存空间并通过数据包在WQE中的偏移量将数据放置到对应缓存位置。
S47、第二设备检索缓存中丢失的数据包并发送丢失的PSN号至第一设备。
S48、第一设备根据第二设备发送的PSN号重新发送对应PSN的数据包。
S49、第二设备接收到完整的WQE且获取到第二设备的目的存储地址之后将数据写入主机空间,并释放缓存空间。
需要说明,本实施例中的数据包即为前述的RDMA报文。
在步骤S41中,可以采用如下方法计算发送的WQE序列号:
第一设备需要为发送的WQE维护一个计数器,每发送一个WQE计数器加一。
在步骤S42中,第一设备可以采用如下方式计算数据包在WQE中的偏移量:
(1)WQE获取的payload根据RDMA传输协议将其根据MTU切割成多个数据包进行传输。
(2)WQE中产生的第一个数据包的偏移量为0,每发送一个数据包后偏移量增加MTU作为WQE中下一个数据包的偏移量。
在步骤S43中,第一设备可以在每个发送数据包中自定义字段,在自定义字段中填入该数据包所属的WQE序号、数据包在WQE中的偏移量及WQE总长度。
在步骤S44中,第二设备接收到乱序数据包或数据包在传输中丢失,第二设备需要正常校验除PSN不连续外的所有信息。第二设备第一次接收到属于某个WQE的数据包时为该WQE申请缓存空间。申请的缓存空间大小与数据包中携带的WQE总长度一致。
在步骤S45中,第二设备需要通过偏移量计算数据包的存储地址。数据包的存储地址通过申请的WQE缓存空间基地址加上数据包在WQE中的偏移量得到。
在步骤S46中,第二设备接收到后续的数据包需要通过WQE序号查找该WQE是否已经创建了缓存空间,若未创建缓存空间则需要通过步骤S44中的方式执行。若该WQE已经创建缓存空间则检索WQE缓存空间的基地址。通过WQE缓存空间基地址加上数据包在WQE中的偏移量得到数据包的缓存存储地址。通过计算后的缓存存储地址将数据包存储到缓存空间的同时完成了数据包顺序排序。
在步骤S47中,第二设备在缓存数据包的同时通过位图表记录每个WQE中已经到达的数据包。第二设备根据位图表中缺失的位置将缺失数据包的PSN号传输至第一设备。
在步骤S48中,第一设备接收到PSN缺失的响应数据包之后停止后续数据包的传输。第一设备重新传输第二设备未接收到的PSN的数据包。
在步骤S49中,第二设备通过第一设备重新传输的数据包补全WQE中的剩余payload。收到WQE中所有的数据包后获取数据包写入主机空间的物理地址。将该WQE的payload写入主机空间之后释放WQE的缓存空间。
本申请实施例的基于RDMA乱序接收及选择性重传的处理方法,当网络传输的过程中发生丢包或者乱序时,对于非预期PSN的数据包不进行丢弃,接收端根据包头中增加的字段将数据包基于整个WQE进行缓存及排序,接收到完整的WQE之后将数据写入目的地址。接收端判断未接收到的数据包序号,将未接收到的数据包PSN号通过NACK发送到发送端,发送端根据接收到的NACK中的PSN号传输缺失的数据包。
本申请实施例具有如下优点:发送端不需要在某包数据传输失败后重传该数据包之后所有的数据包,通过响应端指示的错误PSN重传对应的数据包,提高了丢包后的传输效率;传输的过程中发生丢包或者乱序时接收端不需要将后续所有的数据包进行缓存,只需要缓存不完整的WQE数据包以及暂时无法获取第二设备目的存储地址的WQE数据包,减少乱序或丢包后接收端的缓存空间。
本申请实施例提出了一种数据发送装置,包括存储器和处理器,
所述存储器,用于保存用于数据发送的程序;
所述处理器,用于读取执行所述用于数据发送的程序,执行上述的数据发送方法。
本申请实施例提出了一种数据接收装置,包括存储器和处理器,
所述存储器,用于保存用于数据接收的程序;
所述处理器,用于读取执行所述用于数据接收的程序,执行上述的数据接收方法。
本申请提供了一种数据收发系统,包括数据发送装置和数据接收装置,
所述数据发送装置为上述的数据发送装置;
所述数据接收装置为上述的数据接收装置。
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (13)

1.一种数据发送方法,其特征在于,
当第一设备向第二设备按序发送工作队列元素中的N个RDMA报文时,确定当前待发送的RDMA报文的扩展信息;并将所确定的扩展信息插入所述当前待发送的RDMA报文后发送;
其中,所述N为大于或等于1的正整数;所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度;所述扩展信息位于RDMA扩展传输报文头;所述扩展信息用于当所述第二设备判定发生丢包或乱序情况时,根据所述扩展信息缓存所述RDMA报文。
2.如权利要求1所述的发送方法,其特征在于,
在将所确定的扩展信息插入所述当前待发送的RDMA报文后发送之后,还包括:
当接收到所述第二设备发送的重传指示报文时,重传所述重传指示报文中携带的报文序列号对应的RDMA报文。
3.如权利要求1所述的发送方法,其特征在于,
确定当前待发送的RDMA报文的扩展信息,包括:
将预设计数器的当前值作为当前待发送的RDMA报文的WQE序号;其中,所述计数器设置为每发送一个工作队列元素,所述计数器的值加一。
4.如权利要求1所述的发送方法,其特征在于,
确定当前待发送的RDMA报文的扩展信息,包括:
将同一工作队列元素中的上一个报文发送后计算出的偏移量作为当前待发送的RDMA报文的WQE偏移量;
其中,同一工作队列元素中的上一个报文发送后按照如下方式计算偏移量:
若不存在上一个报文,则将偏移量设为0;
若存在上一个报文,则将上一个报文的WQE偏移量与最大传输单元的字节数的和作为偏移量。
5.一种数据接收方法,其特征在于,
当第二设备接收到RDMA报文后,即判断是否发生丢包或乱序情况;
当判定发生丢包或乱序情况时,第二设备根据所述RDMA报文所携带的扩展信息缓存所述RDMA报文;所述扩展信息包括WQE序号、WQE偏移量和WQE总长度;WQE序号为当前工作队列元素的序号;WQE偏移量为所述N个RDMA报文中的每一个报文在工作队列元素中的偏移量;WQE总长度为所述N个RDMA报文的总长度。
6.如权利要求5所述的接收方法,其特征在于,
所述第二设备根据所述RDMA报文所携带的扩展信息缓存所述RDMA报文,所述扩展信息包括WQE序号、WQE偏移量和WQE总长度,包括:
当不存在与所述RDMA报文所携带的WQE序号对应的缓存空间且也不存在与所述RDMA报文所携带的WQE序号对应的主机内存地址时,根据所述RDMA报文所携带的WQE总长度申请缓存空间;根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置;
当存在与所述RDMA报文所携带的WQE序号对应的缓存空间时,根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置。
7.如权利要求6所述的接收方法,其特征在于,
根据所述RDMA报文所携带的WQE偏移量将所述RDMA报文缓存到所述RDMA报文所携带的WQE序号对应的缓存空间的对应位置,包括:
根据所述RDMA报文所携带的WQE序号获取缓存空间的基地址;
将获取到的基地址与所述RDMA报文所携带的WQE偏移量相加得到所述RDMA报文的存储地址;
将所述RDMA报文缓存到所述RDMA报文的存储地址。
8.如权利要求5所述的接收方法,其特征在于,还包括:
判断是否存在所述RDMA报文的WQE序号对应的位图表;
如果判定是,则根据所述RDMA报文的WQE偏移量确定记录所述RDMA报文的接收状态的比特位,并在所确定的比特位记录接收状态;其中,所述接收状态为接收成功或接收失败;
如果判定否,则为所述RDMA报文对应的WQE创建相应的位图表,并在所创建的位图表的相应位置记录所述RDMA报文的接收状态。
9.如权利要求8所述的接收方法,其特征在于,
将所述RDMA报文的WQE序号对应的位图表中接收失败的比特位对应的报文序列号通过重传指示报文发送给第一设备。
10.如权利要求9所述的接收方法,其特征在于,
当所述第二设备接收到第一设备的重传的报文后,判定同一工作队列元素的全部RDMA报文都成功接收且获取到该工作队列元素在第二设备的目的存储地址后,则将同一工作队列元素的全部RDMA报文写入主机空间并释放该工作队列元素的缓存空间。
11.一种数据发送装置,其特征在于,包括存储器和处理器,
所述存储器,用于保存用于数据发送的程序;
所述处理器,用于读取执行所述用于数据发送的程序,执行如权利要求1-4任一项所述的方法。
12.一种数据接收装置,其特征在于,包括存储器和处理器,
所述存储器,用于保存用于数据接收的程序;
所述处理器,用于读取执行所述用于数据接收的程序,执行如权利要求5-10任一项所述的方法。
13.一种数据收发系统,其特征在于,包括数据发送装置和数据接收装置,
所述数据发送装置为权利要求11所述的装置;
所述数据接收装置为权利要求12所述的装置。
CN202211112038.9A 2022-09-13 2022-09-13 数据发送方法、数据接收方法、装置及数据收发系统 Active CN115633104B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211112038.9A CN115633104B (zh) 2022-09-13 2022-09-13 数据发送方法、数据接收方法、装置及数据收发系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211112038.9A CN115633104B (zh) 2022-09-13 2022-09-13 数据发送方法、数据接收方法、装置及数据收发系统

Publications (2)

Publication Number Publication Date
CN115633104A true CN115633104A (zh) 2023-01-20
CN115633104B CN115633104B (zh) 2024-02-13

Family

ID=84902412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211112038.9A Active CN115633104B (zh) 2022-09-13 2022-09-13 数据发送方法、数据接收方法、装置及数据收发系统

Country Status (1)

Country Link
CN (1) CN115633104B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303173A (zh) * 2023-05-19 2023-06-23 深圳云豹智能有限公司 减少rdma引擎片上缓存的方法、装置、系统及芯片

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647807A (zh) * 2013-11-27 2014-03-19 华为技术有限公司 一种信息缓存方法、装置和通信设备
CN109691039A (zh) * 2018-01-16 2019-04-26 华为技术有限公司 一种报文传输的方法及装置
CN109936510A (zh) * 2017-12-15 2019-06-25 微软技术许可有限责任公司 多路径rdma传输
CN109981480A (zh) * 2017-12-27 2019-07-05 华为技术有限公司 一种数据传输方法及第一设备
CN112637015A (zh) * 2020-12-23 2021-04-09 盛科网络(苏州)有限公司 一种基于psn实现rdma网络的丢包检测方法及装置
CN113300967A (zh) * 2021-02-05 2021-08-24 阿里巴巴集团控股有限公司 Rdma网络传输方法、装置以及rdma网络通信系统
WO2022002043A1 (zh) * 2020-06-30 2022-01-06 中兴通讯股份有限公司 数据重传方法、网络设备和计算机可读存储介质
CN114490462A (zh) * 2020-10-28 2022-05-13 华为技术有限公司 网络接口卡、控制器、存储装置和报文发送方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647807A (zh) * 2013-11-27 2014-03-19 华为技术有限公司 一种信息缓存方法、装置和通信设备
CN109936510A (zh) * 2017-12-15 2019-06-25 微软技术许可有限责任公司 多路径rdma传输
CN109981480A (zh) * 2017-12-27 2019-07-05 华为技术有限公司 一种数据传输方法及第一设备
CN111512603A (zh) * 2017-12-27 2020-08-07 华为技术有限公司 一种数据传输方法及第一设备
CN109691039A (zh) * 2018-01-16 2019-04-26 华为技术有限公司 一种报文传输的方法及装置
WO2022002043A1 (zh) * 2020-06-30 2022-01-06 中兴通讯股份有限公司 数据重传方法、网络设备和计算机可读存储介质
CN114490462A (zh) * 2020-10-28 2022-05-13 华为技术有限公司 网络接口卡、控制器、存储装置和报文发送方法
CN112637015A (zh) * 2020-12-23 2021-04-09 盛科网络(苏州)有限公司 一种基于psn实现rdma网络的丢包检测方法及装置
CN113300967A (zh) * 2021-02-05 2021-08-24 阿里巴巴集团控股有限公司 Rdma网络传输方法、装置以及rdma网络通信系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303173A (zh) * 2023-05-19 2023-06-23 深圳云豹智能有限公司 减少rdma引擎片上缓存的方法、装置、系统及芯片
CN116303173B (zh) * 2023-05-19 2023-08-08 深圳云豹智能有限公司 减少rdma引擎片上缓存的方法、装置、系统及芯片

Also Published As

Publication number Publication date
CN115633104B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US7236494B2 (en) Limited automatic repeat request protocol for frame-based communications channels
US7548562B2 (en) High speed acquisition system that allows capture from a packet network and streams the data to a storage medium
US9049017B2 (en) Efficient TCP ACK prioritization in wireless networks
US9043486B2 (en) Data transfer method, system and protocol
US20050152350A1 (en) System and method for transmitting/receiving automatic repeat request
US20100232437A1 (en) Method and node for transmitting data over a communication network using negative acknowledgment
US7653060B2 (en) System and method for implementing ASI over long distances
US20090303871A1 (en) Method and apparatus for packet aggregation according to traffic characteristics
CN115633104B (zh) 数据发送方法、数据接收方法、装置及数据收发系统
CA3201718C (en) Utilizing leftover return channel bandwidth in a satellite system
JP2004080070A (ja) データ転送方法及びデータ転送システム並びにコンテンツ配信システム
US20050286527A1 (en) TCP segment re-ordering in a high-speed TOE device
CN117544571A (zh) 大报文安全可靠传输方法及装置
KR100612654B1 (ko) 자동 재송신 요청을 위한 프레임 생성 장치 및 방법
CN113541874A (zh) 一种数据传输方法及网络设备
CN114500672A (zh) 数据传输方法及系统
US10051436B2 (en) Compression with multicast dictionary
US20220158771A1 (en) Method of enabling harq, network entity and computer program
JP2013074336A (ja) 通信装置及び通信方法
EP3809748A1 (en) Data transmitting method and device, and data receiving method and device
EP2306666B1 (en) Reduction of frame error rate in a node of a wireless packet-switched communication network
US7764624B2 (en) Methods and devices for preventing protocol stalling
US6957374B1 (en) Method of acknowledging receipt of data packets
CN115834002B (zh) 高速传输系统及方法
CN114629599B (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