CN111786748A - 数据重传方法和系统、网卡、装置、服务器和存储介质 - Google Patents

数据重传方法和系统、网卡、装置、服务器和存储介质 Download PDF

Info

Publication number
CN111786748A
CN111786748A CN201910805811.1A CN201910805811A CN111786748A CN 111786748 A CN111786748 A CN 111786748A CN 201910805811 A CN201910805811 A CN 201910805811A CN 111786748 A CN111786748 A CN 111786748A
Authority
CN
China
Prior art keywords
data
receiving window
packet sequence
message
sender
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
CN201910805811.1A
Other languages
English (en)
Other versions
CN111786748B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910805811.1A priority Critical patent/CN111786748B/zh
Publication of CN111786748A publication Critical patent/CN111786748A/zh
Application granted granted Critical
Publication of CN111786748B publication Critical patent/CN111786748B/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK

Landscapes

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

Abstract

本公开涉及一种数据重传方法和系统、网卡、装置、服务器和存储介质。该数据重传方法包括:在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。本公开通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。

Description

数据重传方法和系统、网卡、装置、服务器和存储介质
技术领域
本公开涉及通信领域,特别涉及一种数据重传方法和系统、网卡、装置、服务器和存储介质。
背景技术
传统TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)以太网络在报文处理过程中,需要将报文在网络控制器缓存、内核态系统主存、用户态系统主存之间多次拷贝。这一方面给主机的CPU(central Processing unit,中央处理器)和内存造成了沉重负担,另一方面加剧了网络延迟效应。
RDMA(Remote Direct Memory Access)是一种新的远程直接内存访问技术,利用该技术,PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)网络外设能够直接访问远端主机上的用户态系统主存,在访问系统主存的过程中不需要占用CPU资源也不需要内存拷贝。因此,使用RDMA技术一方面可以释放主机CPU资源,另一方面可以降低网络延迟。
RoCE(RDMA over Converged Ethernet)是一种通过以太网进行RDMA的网络协议,目前已经发展到第二版RoCEv2。随着网络带宽的持续增长以及用户对低网络延迟的要求越来越高,RoCEv2协议被越来越多地应用部署到高性能计算集群、云计算、数据中心网络中。
发明内容
发明人通过研究发现:RoCEv2协议中,发送方在发送报文中插入连续递增的PSN(Packet Sequence Number,数据包序列号)表明报文序号,接收方检查收到报文中的PSN号,如果发现PSN号不连续,则说明有报文丢失,接收方发送NAK(NegativeAcknowledgement,负确认应答)给发送方,请求发送方重传丢失报文。接收方在再次收到符合预期PSN号的报文之前,丢弃后续所有接收到的报文。
鉴于以上技术问题中的至少一项,本公开提供了一种数据重传方法和系统、网卡、装置、服务器和存储介质,批量对接收窗口中的报文进行NAK确认,提升了确认效率。
根据本公开的一个方面,提供一种数据重传方法,包括:
在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
在本公开的一些实施例中,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号包括:
在数据包接收开始后,更新结束指针;
判断结束指针和起始指针之差是否大于等于预定窗口大小,其中,预定窗口大小为预定接收窗口的大小,其中,起始指针为第一个接收到的数据报文的数据包序列号,结束指针为最后一个接收到的数据报文的数据包序列号;
在结束指针和起始指针之差大于等于预定窗口大小的情况下,判断是否有缺失的数据包序列号;
在有缺失的数据包序列号的情况下,执行向发送方装置发送负确认应答消息的步骤。
在本公开的一些实施例中,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号还包括:
在没有缺失的数据包序列号的情况下,向发送方装置发送确认应答消息。
在本公开的一些实施例中,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号还包括:
在结束指针和起始指针之差小于预定窗口大小的情况下,判断发送方装置是否要求发送确认应答;
在发送方装置要求发送确认应答的情况下,执行判断是否有缺失的数据包序列号的步骤;
在发送方装置不要求发送确认应答的情况下,记录数据包序列号的丢失情况,返回数据包接收开始状态。
在本公开的一些实施例中,所述数据重传方法还包括:
在向发送方装置发送负确认应答消息后,判断所有丢失数据报文是否均已重传完成;
在所有丢失数据报文是否均已均已重传完成的情况下,若接收到新的数据报文,则更新起始指针和结束指针。
在本公开的一些实施例中,发送方装置发送的为数据包序列号递增的数据报文。
根据本公开的另一方面,提供一种数据重传方法,包括:
向接收方装置发送数据报文,其中,接收方装置在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
在接收到接收方装置发送的负确认应答消息的情况下,向接收方装置重传所述所有丢失的数据报文,其中,接收方装置在预定接收窗口后,向发送方装置发送负确认应答消息,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
根据本公开的另一方面,提供一种接收方装置,包括:
数据检查模块,用于在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
确认报文发送模块,用于在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
在本公开的一些实施例中,所述接收方装置用于执行实现如上述任一实施例所述的数据重传方法的操作。
根据本公开的另一方面,提供一种发送方装置,包括:
数据发送模块,用于向接收方装置发送数据报文,其中,接收方装置在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
数据重传模块,用于在接收到接收方装置发送的负确认应答消息的情况下,向接收方装置重传所述所有丢失的数据报文,其中,接收方装置在预定接收窗口后,向发送方装置发送负确认应答消息,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
根据本公开的另一方面,提供一种网卡,包括如上述任一实施例所述的发送方装置、和如上述任一实施例所述的接收方装置。
根据本公开的另一方面,提供一种网卡,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述网卡执行实现如上述任一实施例所述的数据重传方法的操作。
根据本公开的另一方面,提供一种接收方服务器,包括网卡,其中,所述网卡包括如上述任一实施例所述的接收方装置,或所述网卡为如上述任一实施例所述的网卡。
根据本公开的另一方面,提供一种发送方服务器,包括网卡,其中,所述网卡包括如上述任一实施例所述的发送方装置,或所述网卡为如上述任一实施例所述的网卡。
根据本公开的另一方面,提供一种数据重传系统,包括如上述任一实施例所述的接收方服务器和如上述任一实施例所述的发送方服务器。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的数据重传方法。
本公开通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术RoCEv2协议丢包重传机制的示意图。
图2为本公开数据重传系统一些实施例的示意图。
图3为本公开数据重传系统另一些实施例的示意图。
图4为本公开数据重传方法一些实施例的示意图。
图5为本公开一个实施例中NAK报文的格式示意图。
图6为本公开数据重传方法另一些实施例的示意图。
图7为本公开数据重传方法另一些实施例的示意图。
图8为本公开接收方装置一些实施例的示意图。
图9为本公开数据重传方法另一些实施例的示意图。
图10为本公开数据重传方法又一些实施例的示意图。
图11为本公开发送方装置一些实施例的示意图。
图12为本公开网卡一些实施例的示意图。
图13为本公开网卡另一些实施例的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
发明人通过研究发现:相关技术的RoCEv2协议丢包重传机制存在相应的问题。
例如:图1为相关技术RoCEv2协议丢包重传机制的示意图。如图1所示,发送方依次发送PSN=1,2,3…6的报文,由于链路故障,PSN=3的报文没有到达接收方。接收方收到PSN=4的报文时,发送NAK给发送方,通知发送方PSN=3的报文没有被正确接收。与此同时,接收方将后续收到的PSN=4,5,6的报文均丢弃。发送方收到NAK后,得知PSN=3的报文没有被对方接收,从PSN=3开始,重传后续报文。
从图1可见,由于NAK报文需要一定时间才能到达发送方,在此期间会有不少新报文发送到接收方。相关技术实现机制将这些报文都丢弃然后重传,这种实现机制浪费了带宽,也增加了处理延时。
鉴于以上技术问题中的至少一项,本公开提供了一种数据重传方法和系统、网卡、装置、服务器和存储介质,下面通过具体实施例进行描述。
图2为本公开数据重传系统一些实施例的示意图。如图2所示,所述数据重传系统可以包括发送方服务器201和接收方服务器211,其中:
发送方服务器201,用于向接收方服务器211发送数据报文;在接收到接收方服务器211发送的负确认应答消息的情况下,向接收方服务器211重传预定接收窗口内所有丢失的数据报文。
接收方服务器211,用于在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;在预定接收窗口后,向发送方服务器201发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
图3为本公开数据重传系统另一些实施例的示意图。与图2实施例相比,图3实施例的数据重传系统除了包括发送方服务器201和接收方服务器211,还包括网络221,其中:
发送方服务器201上安装一块支持RoCEv2协议的网卡202,该网卡中实现了本公开上述实施例提出的数据重传方法。接收方服务器211上也安装有一块支持RoCEv2协议的网卡212,该网卡中同样实现了本公开上述实施例提出的数据重传方法。
发送方发出的报文通过网络221发送到接收服务器,接收服务器的应答报文通过网络221反馈给发送方服务器。网络221由交换机和/或路由器组成。
在本公开的一些实施例中,图2实施例的网卡202和网卡212可以基于FPGA(FieldProgrammable Gate Array,现场可编程门阵列)实现本公开上述实施例所提出的数据重传方法。
基于本公开上述实施例提供的数据重传系统,是一种改进RoCEv2协议数据重传效率的系统,通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。
本公开上述实施例提供的数据重传系统,针对RoCEv2协议中重传效率低的问题以及由此带来的高延时问题,设计了一种改进方案。该方案与相关技术重传方案相比,由于采用了选择性重传的方式,节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
图4为本公开数据重传方法一些实施例的示意图。优选的,本实施例可由本公开数据重传系统执行。
如图4所示,发送方发送PSN递增的报文,接收方设置一个接收窗口,窗口的起始指针为第一个接收到的报文的PSN号,窗口的结束指针为最后一个接收到的报文的PSN号。
窗口大小为结束指针–起始指针。接收方持续对收到的报文进行检查,发现有PSN号错误时,不像标准RoCEv2协议那样立即发送NAK报文给发送方,而是等到条件满足时才发送NAK报文。设定的条件为:1.发送方要求确认(发送报文中BTH.ACKREQ=1);或者,2.接收窗口大小达到最大阈值。
例如:图4中,当PSN=4的报文丢失后,接收方没有立即发送NAK报文给发送方,而是等到到达接收窗口大小的最大阈值(n-1)才将窗口内所有丢失的报文的PSN号通过NAK告知发送方。
发送方收到NAK报文后,重传丢失的报文,等待所有丢失报文都重传完成后,继续之前的PSN号进行发送。接收方收到新的数据报文后,更新起始指针和结束指针。
在本公开的一些实施例中,所述NAK报文(负确认应答消息)可以包括预定接收窗口内丢失数据报文的数量、以及预定接收窗口内所有丢失数据报文的数据包序列号。
图5为本公开一个实施例中NAK报文的格式示意图。本公开构造的NAK报文格式与RoCEv2协议中的格式不一致(参考图5),本发明扩充了NAK报文,在AETH报文头之后增加了一个ACK_MSG域。这个域是变长域,第一个参数为8比特的num,说明后续包含了几个缺失PSN号,接着是num个24比特的PSN号,说明接收窗口内丢失的报文。
本公开上述实施例提出了一种改进的NAK报文格式,该格式批量对接收窗口中的报文进行NAK确认,从而提升了确认效率。
图6为本公开数据重传方法另一些实施例的示意图。优选的,本实施例可由本公开接收方装置、网卡或接收方服务器执行。该方法包括以下步骤:
步骤61,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号。
在本公开的一些实施例中,发送方装置发送的为数据包序列号递增的数据报文。
步骤62,在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
在本公开的一些实施例中,所述数据重传方法还可以包括:在向发送方装置发送负确认应答消息后,判断所有丢失数据报文是否均已重传完成;在所有丢失数据报文是否均已均已重传完成的情况下,若接收到新的数据报文,则更新起始指针和结束指针。
基于本公开上述实施例提供的数据重传方法,是一种改进RoCEv2协议数据重传效率的方法,通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。
图7为本公开数据重传方法另一些实施例的示意图。优选的,本实施例可由本公开接收方装置、网卡或接收方服务器执行。该方法包括以下步骤:
步骤71,数据包接收开始。
步骤72,收到数据报文后,更新结束指针。
步骤73,判断结束指针和起始指针之差是否大于等于预定窗口大小,其中,预定窗口大小为预定接收窗口的大小,其中,起始指针为第一个接收到的数据报文的数据包序列号,结束指针为最后一个接收到的数据报文的数据包序列号。在结束指针和起始指针之差大于等于预定窗口大小的情况下,执行步骤74;否则,在结束指针和起始指针之差小于预定窗口大小的情况下,执行步骤77。
步骤74,判断是否有缺失的数据包序列号;在有缺失的数据包序列号的情况下,执行步骤75;否则,在没有缺失的数据包序列号的情况下,执行步骤76。
步骤75,构造NAK数据报文,向发送方装置发送负确认应答消息。之后返回步骤71的状态,接收发送方装置重传的数据报文,等待所有丢失报文都重传完成后,在收到新的数据报文后,更新起始指针和结束指针,执行步骤72。
步骤76,构造ACK数据报文,向发送方装置发送确认应答消息。之后返回步骤71的状态,在收到新的数据报文后,更新起始指针和结束指针,执行步骤72。
步骤77,判断发送方装置是否要求发送确认应答。在发送方装置要求发送确认应答的情况下,执行步骤74;否则,在发送方装置不要求发送确认应答的情况下,执行步骤78。
步骤78,记录数据包序列号的丢失情况,之后返回步骤71的状态,针对下一个数据报文执行步骤72。
本公开上述实施例提供的数据重传方法,针对RoCEv2协议中重传效率低的问题,设计了一种改进方法。与相关技术重传方案相比,本公开上述实施例由于采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
图8为本公开接收方装置一些实施例的示意图。本公开接收方装置可以设置在本公开上述实施例的网卡(例如图3实施例接收方服务器的网卡)或接收方服务器(例如图2或图3实施例的接收方服务器)中,如图8所示,本公开接收方装置可以包括数据检查模块81和确认报文发送模块82,其中:
数据检查模块81,用于在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号。
确认报文发送模块82,用于在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息可以包括预定接收窗口内所有丢失数据报文的数据包序列号。
在本公开的一些实施例中,所述接收方装置用于执行实现如上述任一实施例(例如图6或图7实施例)所述的数据重传方法的操作。
在本公开的一些实施例中,如图8所示,本公开接收方装置还可以包括数据接收模块83和数据写入模块84,其中:
数据接收模块83,用于接收对端发送过来的报文,并提取出报文里面数据内容。
数据写入模块84,用于将上述数据内容通过DMA ADirect Memory Access,直接内存存取)方式写入主机内存。
数据检查模块81,用于持续检查接收报文的PSN号,并根据要求产生确认应答请求。
确认报文发送模块82,用于在接收到确认应答请求后,根据不同情况发送ACK/NAK确认报文给对方。
基于本公开上述实施例提供的接收方装置,通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。
本公开上述实施例针对RoCEv2协议中重传效率低的问题,本公开上述实施例采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
图9为本公开数据重传方法另一些实施例的示意图。优选的,本实施例可由本公开发送方装置、网卡或接收方服务器执行。该方法包括以下步骤:
步骤91,向接收方装置发送数据报文,其中,接收方装置在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号。
步骤92,在接收到接收方装置发送的负确认应答消息的情况下,向接收方装置重传所述所有丢失的数据报文,其中,接收方装置在预定接收窗口后,向发送方装置发送负确认应答消息,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
图10为本公开数据重传方法又一些实施例的示意图。优选的,本实施例可由本公开发送方装置、网卡或接收方服务器执行。该方法包括以下步骤:
步骤101,报文发送开始。
步骤102,发送数据报文。
步骤103,判断是否接收到对方(接收方)确认报文。如果没有收到接收方确认报文,则返回到状态101,继续执行步骤102,继续数据报文发送;否则,如果收到确认报文,则执行步骤104。
步骤104,判断确认报文是否为ACK报文。如果是,则执行步骤105;否则,如果不是ACK报文,则为NAK报文,执行步骤106。
步骤105,更新确认指针,并返回到状态101,继续执行步骤102。
步骤106,重传NAK报文所述缺失的报文。
步骤107,单个报文重传完成后,判断所有报文重传是否完成,如果所有报文重传已完成,则返回到状态101,继续执行步骤102;否则,执行步骤106,继续重传。
基于本公开上述实施例提供的数据重传方法,针对RoCEv2协议中重传效率低的问题,采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
图11为本公开发送方装置一些实施例的示意图。本公开发送方装置可以设置在本公开上述实施例的网卡(例如图3实施例发送方服务器的网卡)或发送方服务器(例如图2或图3实施例的发送方服务器)中,如图11所示,本公开发送方装置可以包括数据发送模块111和数据重传模块112,其中:
数据发送模块111,用于向接收方装置发送数据报文,其中,接收方装置在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号。
数据重传模块112,用于在接收到接收方装置发送的负确认应答消息的情况下,向接收方装置重传所述所有丢失的数据报文,其中,接收方装置在预定接收窗口后,向发送方装置发送负确认应答消息,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
在本公开的一些实施例中,本公开发送方装置用于执行实现如上述任一实施例(例如图9或图10实施例)所述的数据重传方法的操作。
在本公开的一些实施例中,如图11所示,本公开发送方装置还可以包括数据读取模块113和确认报文接收模块114,其中:
数据读取模块113,用于通过DMA方式从主机内存中读取待发送数据。
数据发送模块111,用于将上述数据封装成RoCEv2格式的报文通过网络接口发送到接收方。
确认报文接收模块114,用于持续接收对方发送过来的确认报文,记录对方反馈回来的报文丢失情况。
数据重传模块112,用于通过查询确认报文接收模块的状态获知报文丢失情况,并重传丢失报文。
基于本公开上述实施例提供的发送方装置,针对RoCEv2协议中重传效率低的问题,采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
根据本公开的另一方面,提供一种网卡,包括如上述任一实施例(例如图11实施例)所述的发送方装置、和如上述任一实施例(例如图8实施例)所述的接收方装置。
图12为本公开网卡一些实施例的示意图。图12实施例为图3实施例中,发送方服务器201的网卡202和接收方服务器211的网卡212的具体结构。如图12所示,网卡202可以包括如图11实施例所述的发送方装置,网卡212可以包括如图8实施例所述的接收方装置。
图13为本公开网卡另一些实施例的示意图。本公开网卡(例如图2实施例中发送方服务器201的网卡202或接收方服务器211的网卡212)可以包括存储器131和处理器132,其中:
存储器131,用于存储指令。
处理器132,用于执行所述指令,使得所述网卡执行实现如上述任一实施例(例如图4、图6、图7、图9和图10中任一实施例)所述的数据重传方法的操作。
基于本公开上述实施例提供的网卡,在接收方通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。
本公开上述实施例在发送方针对RoCEv2协议中重传效率低的问题,采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
根据本公开的另一方面,提供一种接收方服务器(例如图2或图3实施例的接收方服务器211)可以包括如上述任一实施例(例如图8实施例)所述的接收方装置、或如上述任一实施例(例如图12或图13实施例)所述的网卡。
基于本公开上述实施例提供的接收方服务器,可以通过批量对接收窗口中的报文进行NAK确认,从而提升了确认效率。
根据本公开的另一方面,提供一种发送方服务器(例如图2或图3实施例的接收方服务器211)可以包括如上述任一实施例(例如图11实施例)所述的发送方装置、或如上述任一实施例(例如图12或图13实施例)所述的网卡。
基于本公开上述实施例提供的发送方服务器,可以针对RoCEv2协议中重传效率低的问题,采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例(例如图4、图6、图7、图9和图10中任一实施例)所述的数据重传方法。
基于本公开上述实施例提供的计算机可读存储介质,在接收方通过批量对接收窗口中的报文进行NAK确认,提升了确认效率。
本公开上述实施例在发送方针对RoCEv2协议中重传效率低的问题,采用了选择性重传的方式,从而节省了重传数据包所占用带宽,提高了重传效率,进而改进了系统延时。
在上面所描述的发送方装置、接收方装置和网卡可以实现为用于执行本申请所描述功能的通用处理器、可编程逻辑控制器(PLC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

Claims (16)

1.一种数据重传方法,其特征在于,包括:
在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
2.根据权利要求1所述的数据重传方法,其特征在于,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号包括:
在数据包接收开始后,更新结束指针;
判断结束指针和起始指针之差是否大于等于预定窗口大小,其中,预定窗口大小为预定接收窗口的大小,其中,起始指针为第一个接收到的数据报文的数据包序列号,结束指针为最后一个接收到的数据报文的数据包序列号;
在结束指针和起始指针之差大于等于预定窗口大小的情况下,判断是否有缺失的数据包序列号;
在有缺失的数据包序列号的情况下,执行向发送方装置发送负确认应答消息的步骤。
3.根据权利要求2所述的数据重传方法,其特征在于,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号还包括:
在没有缺失的数据包序列号的情况下,向发送方装置发送确认应答消息。
4.根据权利要求2所述的数据重传方法,其特征在于,在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号还包括:
在结束指针和起始指针之差小于预定窗口大小的情况下,判断发送方装置是否要求发送确认应答;
在发送方装置要求发送确认应答的情况下,执行判断是否有缺失的数据包序列号的步骤;
在发送方装置不要求发送确认应答的情况下,记录数据包序列号的丢失情况,返回数据包接收开始状态。
5.根据权利要求2-4中任一项所述的数据重传方法,其特征在于,还包括:
在向发送方装置发送负确认应答消息后,判断所有丢失数据报文是否均已重传完成;
在所有丢失数据报文是否均已均已重传完成的情况下,若接收到新的数据报文,则更新起始指针和结束指针。
6.根据权利要求1-4中任一项所述的数据重传方法,其特征在于,
发送方装置发送的为数据包序列号递增的数据报文。
7.一种数据重传方法,其特征在于,包括:
向接收方装置发送数据报文,其中,接收方装置在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
在接收到接收方装置发送的负确认应答消息的情况下,向接收方装置重传所述所有丢失的数据报文,其中,接收方装置在预定接收窗口后,向发送方装置发送负确认应答消息,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
8.一种接收方装置,其特征在于,包括:
数据检查模块,用于在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
确认报文发送模块,用于在预定接收窗口后,向发送方装置发送负确认应答消息,其中,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
9.根据权利要求8所述的接收方装置,其特征在于,所述接收方装置用于执行实现如权利要求1-6中任一项所述的数据重传方法的操作。
10.一种发送方装置,其特征在于,包括:
数据发送模块,用于向接收方装置发送数据报文,其中,接收方装置在预定接收窗口内,持续对接收到的数据报文进行检查,记录预定接收窗口内所有丢失数据报文的数据包序列号;
数据重传模块,用于在接收到接收方装置发送的负确认应答消息的情况下,向接收方装置重传所述所有丢失的数据报文,其中,接收方装置在预定接收窗口后,向发送方装置发送负确认应答消息,所述负确认应答消息包括预定接收窗口内所有丢失数据报文的数据包序列号。
11.一种网卡,其特征在于,包括如权利要求10所述的发送方装置、和如权利要求8或9所述的接收方装置。
12.一种网卡,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述网卡执行实现如权利要求1-7中任一项所述的数据重传方法的操作。
13.一种接收方服务器,其特征在于,包括网卡,其中:
所述网卡包括如权利要求8或9所述的接收方装置;
或,
所述网卡为如权利要求11或12所述的网卡。
14.一种发送方服务器,其特征在于,包括网卡,其中:
所述网卡包括如权利要求10所述的发送方装置;
或,
所述网卡为如权利要求11或12所述的网卡。
15.一种数据重传系统,其特征在于,包括如权利要求13所述的接收方服务器和如权利要求14所述的发送方服务器。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1-7中任一项所述的数据重传方法。
CN201910805811.1A 2019-08-29 2019-08-29 数据重传方法和系统、网卡、装置、服务器和存储介质 Active CN111786748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910805811.1A CN111786748B (zh) 2019-08-29 2019-08-29 数据重传方法和系统、网卡、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910805811.1A CN111786748B (zh) 2019-08-29 2019-08-29 数据重传方法和系统、网卡、装置、服务器和存储介质

Publications (2)

Publication Number Publication Date
CN111786748A true CN111786748A (zh) 2020-10-16
CN111786748B CN111786748B (zh) 2023-05-30

Family

ID=72755580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910805811.1A Active CN111786748B (zh) 2019-08-29 2019-08-29 数据重传方法和系统、网卡、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN111786748B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112615760A (zh) * 2020-12-18 2021-04-06 京信网络系统股份有限公司 数据传输方法、装置、基站和存储介质
CN112637015A (zh) * 2020-12-23 2021-04-09 盛科网络(苏州)有限公司 一种基于psn实现rdma网络的丢包检测方法及装置
CN113259062A (zh) * 2021-05-31 2021-08-13 恒生电子股份有限公司 丢包重传的方法、装置、可读介质以及设备
CN113300818A (zh) * 2021-02-08 2021-08-24 阿里巴巴集团控股有限公司 数据传输系统及方法
CN114090484A (zh) * 2021-11-15 2022-02-25 深圳云豹智能有限公司 远程直接数据存取方法及装置
CN114221918A (zh) * 2022-02-22 2022-03-22 南京大学 一种rdma网络rc通信模式的数据流长尾优化方法
CN114337942A (zh) * 2021-12-29 2022-04-12 伟乐视讯科技股份有限公司 一种报文重传方法、装置及电子设备
CN114520711A (zh) * 2020-11-19 2022-05-20 迈络思科技有限公司 数据包的选择性重传
CN115065442A (zh) * 2022-08-16 2022-09-16 深圳星云智联科技有限公司 数据传输方法及相关装置
CN115296900A (zh) * 2022-08-03 2022-11-04 北京天融信网络安全技术有限公司 一种网络报文修正方法、装置、电子设备及存储介质
CN115426317A (zh) * 2022-11-03 2022-12-02 新华三信息技术有限公司 数据传输速率控制方法、装置及电子设备
WO2023020202A1 (zh) * 2021-08-16 2023-02-23 北京希姆计算科技有限公司 集成电路、通信方法和通信系统
CN117527641A (zh) * 2024-01-04 2024-02-06 柏科数据技术(深圳)股份有限公司 数据报文的丢包观测方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030081664A1 (en) * 2001-08-29 2003-05-01 Xiaolin Lu Transmit and receive window synchronization
CN101494531A (zh) * 2009-02-24 2009-07-29 华为技术有限公司 调整滑动窗口的方法和装置
CN101924620A (zh) * 2009-06-17 2010-12-22 中兴通讯股份有限公司 报文重传方法和装置
CN102469088A (zh) * 2010-11-17 2012-05-23 郑州威科姆科技股份有限公司 基于udp协议的大量数据传输方法
CN107147481A (zh) * 2017-07-19 2017-09-08 北京数码视讯科技股份有限公司 丢包重传方法、装置及电子设备
CN107204834A (zh) * 2017-05-25 2017-09-26 复旦大学 一种基于udt协议的高速网络可靠传输的控制方法
CN108809496A (zh) * 2017-05-05 2018-11-13 华为技术有限公司 一种信息处理方法以及设备
US20190109678A1 (en) * 2016-06-03 2019-04-11 Mitsubishi Electric Corporation Requesting retransmission of data in a multicast network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030081664A1 (en) * 2001-08-29 2003-05-01 Xiaolin Lu Transmit and receive window synchronization
CN101494531A (zh) * 2009-02-24 2009-07-29 华为技术有限公司 调整滑动窗口的方法和装置
CN101924620A (zh) * 2009-06-17 2010-12-22 中兴通讯股份有限公司 报文重传方法和装置
CN102469088A (zh) * 2010-11-17 2012-05-23 郑州威科姆科技股份有限公司 基于udp协议的大量数据传输方法
US20190109678A1 (en) * 2016-06-03 2019-04-11 Mitsubishi Electric Corporation Requesting retransmission of data in a multicast network
CN108809496A (zh) * 2017-05-05 2018-11-13 华为技术有限公司 一种信息处理方法以及设备
CN107204834A (zh) * 2017-05-25 2017-09-26 复旦大学 一种基于udt协议的高速网络可靠传输的控制方法
CN107147481A (zh) * 2017-07-19 2017-09-08 北京数码视讯科技股份有限公司 丢包重传方法、装置及电子设备

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114520711B (zh) * 2020-11-19 2024-05-03 迈络思科技有限公司 数据包的选择性重传
CN114520711A (zh) * 2020-11-19 2022-05-20 迈络思科技有限公司 数据包的选择性重传
US11870590B2 (en) 2020-11-19 2024-01-09 Mellanox Technologies, Ltd. Selective retransmission of packets
CN112615760A (zh) * 2020-12-18 2021-04-06 京信网络系统股份有限公司 数据传输方法、装置、基站和存储介质
WO2022135542A1 (zh) * 2020-12-23 2022-06-30 苏州盛科通信股份有限公司 一种基于psn实现rdma网络丢包检测的方法及装置
CN112637015A (zh) * 2020-12-23 2021-04-09 盛科网络(苏州)有限公司 一种基于psn实现rdma网络的丢包检测方法及装置
CN113300818A (zh) * 2021-02-08 2021-08-24 阿里巴巴集团控股有限公司 数据传输系统及方法
CN113259062A (zh) * 2021-05-31 2021-08-13 恒生电子股份有限公司 丢包重传的方法、装置、可读介质以及设备
CN113259062B (zh) * 2021-05-31 2021-10-29 恒生电子股份有限公司 丢包重传的方法、装置、可读介质以及设备
WO2023020202A1 (zh) * 2021-08-16 2023-02-23 北京希姆计算科技有限公司 集成电路、通信方法和通信系统
CN114090484A (zh) * 2021-11-15 2022-02-25 深圳云豹智能有限公司 远程直接数据存取方法及装置
CN114090484B (zh) * 2021-11-15 2023-08-08 深圳云豹智能有限公司 远程直接数据存取方法及装置
CN114337942A (zh) * 2021-12-29 2022-04-12 伟乐视讯科技股份有限公司 一种报文重传方法、装置及电子设备
CN114337942B (zh) * 2021-12-29 2023-06-13 伟乐视讯科技股份有限公司 一种报文重传方法、装置及电子设备
CN114221918A (zh) * 2022-02-22 2022-03-22 南京大学 一种rdma网络rc通信模式的数据流长尾优化方法
CN115296900A (zh) * 2022-08-03 2022-11-04 北京天融信网络安全技术有限公司 一种网络报文修正方法、装置、电子设备及存储介质
CN115296900B (zh) * 2022-08-03 2024-01-23 北京天融信网络安全技术有限公司 一种网络报文修正方法、装置、电子设备及存储介质
CN115065442A (zh) * 2022-08-16 2022-09-16 深圳星云智联科技有限公司 数据传输方法及相关装置
CN115065442B (zh) * 2022-08-16 2022-11-18 深圳星云智联科技有限公司 数据传输方法及相关装置
CN115426317B (zh) * 2022-11-03 2023-03-24 新华三信息技术有限公司 数据传输速率控制方法、装置及电子设备
CN115426317A (zh) * 2022-11-03 2022-12-02 新华三信息技术有限公司 数据传输速率控制方法、装置及电子设备
CN117527641A (zh) * 2024-01-04 2024-02-06 柏科数据技术(深圳)股份有限公司 数据报文的丢包观测方法、装置、设备及存储介质
CN117527641B (zh) * 2024-01-04 2024-03-15 柏科数据技术(深圳)股份有限公司 数据报文的丢包观测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111786748B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN111786748A (zh) 数据重传方法和系统、网卡、装置、服务器和存储介质
WO2019129147A1 (zh) 一种数据传输方法及第一设备
US10430374B2 (en) Selective acknowledgement of RDMA packets
CN109690510B (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
US8549170B2 (en) Retransmission system and method for a transport offload engine
WO2019118255A1 (en) Multi-path rdma transmission
US20230156102A1 (en) Packet processing method, network device, and related device
TW202105375A (zh) 用於資料傳輸的方法和遠程直接記憶存取網卡
US11736567B2 (en) Data transmission and network interface controller
CN113852445B (zh) 一种提高数据传输可靠性的方法、系统、设备和存储介质
US7817572B2 (en) Communications apparatus and communication method
CN109067506A (zh) 一种基于多滑动窗口并发的轻量级异步消息实现方法
US8769137B2 (en) Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP)
CN109586931B (zh) 组播方法及终端设备
US20140047124A1 (en) Trivial file transfer protocol (tftp) data transferring prior to file transfer completion
US9450706B2 (en) Communication apparatus and packet transfer method
JP2014147011A5 (zh)
US11956151B2 (en) Transmission control protocol flow control method and device for performing the method
US20230224084A1 (en) Packet Retransmission Method and Apparatus
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
WO2024060915A1 (zh) 核心网数据传输方法、电子设备及计算机可读存储介质
JP2001298485A (ja) トランスポート層におけるデータ転送方法
JP3148733B2 (ja) 信号処理装置及び信号処理システム
CN114285747A (zh) 一种tcp数据接收方法、装置、设备及存储介质
US10601601B2 (en) Information processing system, information processing method, non-transitory storage medium storing program, and information processing device

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