掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及RDMA长距离通信技术领域,特别是一种RDMA长距离通信重传方法及系统。

背景技术

数据中心网络是支持海量数据快速存储和高效处理的基础设施。随着数据中心计算集群规模的扩大,对集群之间互联的网络性能提出了越来越高的要求。然而,传统的TCP/IP协议栈处理方式带来的高延迟和高CPU负载逐渐无法满足高性能计算业务的需求。为了降低数据中心网络的时延和CPU负载,出现了RDMA技术。

RDMA技术实现了两个节点之间数据缓冲区直接传输,无需CPU、操作系统和网络协议栈的参与,从而实现低延迟的数据处理和高吞吐量的数据传输。目前,RDMA技术已广泛应用于数据中心网络中,但仅局限于数据中心网络内部,即通信距离在1km范围内。

然而,在当前的跨数据中心通信中(通信距离约为1000km),仍需要借助WAN(广域网)通信,并伴随两层RDMA与TCP/IP协议之间的转换。这种转换带来了巨大的开销,导致网络传输效率非常低下。为了解决这个问题,一种解决方法是直接采用长距离链路直连方式进行RDMA通信,即采用RDMA长距离通信。通过这种方式,可以避免转换开销,提高网络传输效率。RDMA长距离通信的实现可以为跨数据中心通信带来更低的延迟和更高的吞吐量,进一步满足数据中心网络的高性能需求。

发明内容

鉴于现有的丢包重传机制会出现过度反应和发送方长时间等待的情况,而导致额外的性能开销和降低带宽的利用率,提出了本发明。

因此,本发明所要解决的问题在于如何在RDMA长距离通信中改进重传方法以提高网络传输的效率和性能。

为解决上述技术问题,本发明提供如下技术方案:

第一方面,本发明实施例提供了一种RDMA长距离通信重传方法,其包括接收方接收数据包,并检查数据包的序列号;将数据包的序列号与预期序列号es进行对比,以判断数据包是否按顺序到达;若数据包是有序的,则接收方对预期序列号es执行递增操作,并发送ACK给发送方,表示数据包已成功接收;若数据包是无序,则将数据包放入重排序区的队列中,采用判断机制判定队列内的数据包是否能通过重排序恢复为有序状态。

作为本发明所述RDMA长距离通信重传方法的一种优选方案,其中:判断机制包括队列长度判断、序列号起始判断和序列号连续性判断,队列长度判断的具体公式如下:

cur_size

其中,cur_size表示重排序队列内当前的数据包数量,Thresh表示重排序队列的最大容纳长度。

序列号起始判断的具体公式如下:

min_seq=expect_seq

其中,min_seq表示队列中最小的数据包序列号,expect_seq表示接收到无序数据包时记录的预期序列号es。

序列号连续性判断的具体公式如下:

max_seq-min_seq+1=cur_size

其中,cur_size表示重排序队列内当前的数据包数量,min_seq表示队列中最小的数据包序列号,max_seq表示队列中最大的数据包序列号。

若满足队列长度判断,且同时满足序列号起始判断和序列号连续性判断,则判定为可重排序状态,此时采用快速排序算法对队列内的数据包进行重排序;若满足队列长度判断,但不满足序列号起始判断和序列号连续性判断,则判定为继续等待状态,在此状态下,队列随着新数据包的进入继续进行下一轮的判断;若不满足队列长度判断,则判定为不可重排序状态,此时清空重排序队列,并发送PSN为expect_seq的NACK给发送方,PSN表示数据包序列号;在面对高并发流数量的情况时,乱序流的数量超过了预设的重排序区队列容量,此时采取适当的置换算法对队列进行管理;接收方进入等待重传模式,在此模式下丢弃所有PSN不等于expect_seq的数据包;直到收到PSN等于expect_seq的数据包后,退出等待重传模式,恢复到正常的收发模式。

作为本发明所述RDMA长距离通信重传方法的一种优选方案,其中:采用判断机制判定队列内的数据包是否能通过重排序恢复为有序状态包括以下步骤:若判断能通过重排序恢复有序,接收方则对数据包进行重排序,并将数据包放入缓冲区;清空当前的重排序队列,并向发送方发送ACK以确认数据包成功接收;若无法通过重排序恢复有序,接收方则向发送方发送NACK,并清空当前的重排序队列;对于随后接收到的所有数据包,接收方继续将数据包的序列号与预期序号es进行对比;若序列号匹配,则将数据包放入缓冲区,若序列号不匹配,则直接丢弃这些数据包。

作为本发明所述RDMA长距离通信重传方法的一种优选方案,其中:Thresh的设置包括以下步骤:通过RTT和RTT的抖动估算出数据包的乱序程度Thresh

Thresh

其中,RTT表示往返时延,Var表示RTT的方差,MSS表示最大报文段长度,α表示乘性因子,β表示加性因子。

通过EWMA消除由于某个过大的Thresh

Thresh(k+1)=(1-δ)·Thresh

其中,Thresh(k+1)表示在k+1时刻的Thresh值,Thresh(k)表示k时刻的Thresh值,δ表示权重,Thresh

作为本发明所述RDMA长距离通信重传方法的一种优选方案,其中:置换算法包括以下步骤:在RDMA通信的重排序区内,对每个队列实施一个综合评分机制,此评分机制基于三个关键维度包括队列内首包的存在性、数据包的总数和队列内最新数据包的时间戳;在RDMA Write操作中,首个数据包包含关键的RETH,若队列中包含首包,则此队列在评分机制中被赋予高评分;队列内最新数据包的时间戳决定队列的时效性,通过对时间戳进行降序排序以识别长时间未更新的队列;若队列长时间未更新,则此队列在评分机制中被赋予低评分,并优先考虑淘汰;根据上述评分机制对重排序区内的队列进行评估,以决定各个队列是否保留或淘汰。

作为本发明所述RDMA长距离通信重传方法的一种优选方案,其中:评分机制的具体公式如下:

其中,λ

作为本发明所述RDMA长距离通信重传方法的一种优选方案,其中:发送方的处理流程如下:发送方初始化数据传输,为每个数据包指派唯一序列号,并依序发送至接收方;待发送完成后,等待接收方反馈ACK或NACK,其中ACK表示数据包顺利接收,NACK表示针对特定序列号后的数据包执行重传;在收到NACK的情况下,发送方根据提供的序列号重新传输相应数据包;发送方根据网络状况和接收方反馈动态调整发送策略,并持续监测网络条件以实时调整重传策略;设定超时机制,若在预定的超时范围内未收到接收方的ACK,则触发重传;确认所有数据包被接收后,完成当前传输任务;若有后续数据,继续执行上述流程。

第二方面,本发明实施例提供了RDMA长距离通信重传系统,其包括接收模块,用于接收方接收数据包,并检查数据包的序列号;对比模块,用于将数据包的序列号与预期序列号es进行对比,以判断数据包是否按顺序到达;有序模块,用于对预期序列号es执行递增操作,并发送ACK给发送方,表示数据包已成功接收;无序模块,用于将数据包放入重排序区的队列中,采用判断机制判定队列内的数据包是否能通过重排序恢复为有序状态。

第三方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中:所述计算机程序指令被处理器执行时实现如本发明第一方面所述的RDMA长距离通信重传方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中:所述计算机程序指令被处理器执行时实现如本发明第一方面所述的RDMA长距离通信重传方法的步骤。

本发明的有益效果为:本发明通过精确比对接收到的数据包序列号与预期序列号减少不必要的重传,避免了传统go-back-n机制中的过度重传;设计的存储置换算法可以有效管理乱序队列中的数据包,通过智能评分和置换机制,提高了有限空间的利用效率,保证了更高的处理能力;通过线性相关的概率机制来决定发送不可累积确认信号的行为,允许更加灵活和迅速地处理乱序和丢失的数据包;通过只重传需要的数据包序列,而不是整个窗口的数据包,大幅减少了不必要的网络流量和重传次数,优化了网络资源的使用;引入三次重传限制的策略减少了发送方的等待时间,使发送方可以尽早继续发送新数据,从而有效提升了带宽的利用率和整体通信的可靠性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为RDMA长距离通信重传方法的整体流程图。

图2为RDMA长距离通信重传方法的默认的go-back-n重传方法。

图3为RDMA长距离通信重传方法的重新设计的重传方法。

图4为RDMA长距离通信重传方法的整体框架图。

图5为RDMA长距离通信重传方法的用于判断能否通过重排序恢复有序的算法伪代码。

图6为RDMA长距离通信重传方法的发送方重传机制和go-back-n的对比。

图7为RDMA长距离通信重传方法的针对重排序区设计的置换算法的实例。

图8为RDMA长距离通信重传方法的一个实施例的接收方状态转换图。

图9为RDMA长距离通信重传方法的在重排序成功情况下,发送缓冲区和重排序区变化的示意图。

图10为RDMA长距离通信重传方法的计算发送NACK概率的方法示意图。

图11为RDMA长距离通信重传方法的网络拓扑图。

图12为RDMA长距离通信重传方法的仿真实验结果中两种方法各数据包所占比例对比图。

图13为RDMA长距离通信重传方法的仿真实验结果中两种方法吞吐量对比图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。

实施例1

参照图1~图10,为本发明第一个实施例,该实施例提供了一种RDMA长距离通信重传方法,包括,

S1:接收方接收数据包,并检查数据包的序列号。

优选的,相比于默认的go-back-n重传机制,本发明的重传机制在图2和图3中进行了对比。明显可见,本发明的重传机制减少了重传的次数,从而减少了性能开销。

进一步的,本发明的RDMA长距离通信重传方法的基本框架如图4所示。在该框架中,提前在RDMA网卡的SRAM内划分出一块重排序区域。由于重排序区域位于SRAM内,可以实现非常低的随机访问延迟,达到纳秒级的速度。然而,RDMA网卡上的SRAM空间非常有限,因此只能分配大约几百KB的空间,具体大小取决于SRAM的容量。

进一步的,在重排序区域中,有多个重排序队列,每个队列对应一条数据流。这些队列用于存储乱序的数据包,并通过一种新的存储置换算法来管理存储资源。该算法的设计旨在优化存储资源的利用效率,以满足长距离通信中的高性能要求。

S2:将数据包的序列号与预期序列号es进行对比,以判断数据包是否按顺序到达。

具体的,当接收方缓冲区接收到发送方发送的数据包后,首先检查数据包的数据包序列号PSN(Packet Sequence Number)是否和预期收到的数据包序列号es相同,如果相同就表明收到的数据包是有序的。

S3:若数据包是有序的,则接收方对预期序列号es执行递增操作,并发送ACK给发送方,表示数据包已成功接收。

S4:若数据包是无序,则将数据包放入重排序区的队列中,采用判断机制判定队列内的数据包是否能通过重排序恢复为有序状态。

需要说明的是,采用判断机制判定队列内的数据包是否能通过重排序恢复为有序状态包括以下步骤:若判断可以通过重排序恢复有序,接收方则对数据包进行重排序,并将数据包放入缓冲区;清空当前的重排序队列,并向发送方发送ACK以确认数据包成功接收;若无法通过重排序恢复有序,接收方则向发送方发送NACK,并清空当前的重排序队列;对于随后接收到的所有数据包,接收方继续将数据包的序列号与预期序号es进行对比;若序列号匹配,则将数据包放入缓冲区,若序列号不匹配,则直接丢弃这些数据包。

优选的,判断机制包括队列长度判断(条件1)、序列号起始判断(条件2)和序列号连续性判断(条件3),具体如下:

条件1:cur_size

条件2:min_seq=expect_seq;

条件3:max_seq-min_seq+1=cur_size;

其中,cur_size表示重排序队列内当前的数据包数量,Thresh表示重排序队列的最大容纳长度,min_seq表示队列中最小的数据包序列号,max_seq表示队列中最大的数据包序列号,expect_seq表示接收到无序数据包时记录的预期序列号es。

需要说明的是,cur_size是随着数据包进入队列而变大的,每次有新的数据包进入重排序队列,就会进行一次判断。

进一步的,若满足队列长度判断(条件1),且同时满足序列号起始判断(条件2)和序列号连续性判断(条件3),则判定为可重排序状态,此时采用快速排序算法对队列内的数据包进行重排序;若满足队列长度判断(条件1),但不满足序列号起始判断(条件2)和序列号连续性判断(条件3),则判定为继续等待状态,在此状态下,队列随着新数据包的进入继续进行下一轮的判断;若不满足队列长度判断(条件1),则判定为不可重排序状态,此时清空重排序队列,并发送PSN为expect_seq的NACK给发送方;在面对高并发流数量的情况时,乱序流的数量超过了预设的重排序区队列容量,此时采取适当的置换算法对队列进行管理;接收方进入等待重传模式,在此模式下丢弃所有PSN不等于expect_seq的数据包;直到收到PSN等于expect_seq的数据包后,退出等待重传模式,恢复到正常的收发模式;其中PSN表示数据包序列号。

优选的,快速排序算法具有三个显著的优点。首先,它是一种原地排序算法,即不需要使用其他内存空间来存储中间结果,这使得其非常适合于SRAM空间非常稀缺的情况。其次,快速排序算法采用分治法的策略,将排序问题分解成多个子问题,因此其排序速度非常快,时间复杂度为O(nlogn)。最后,这种算法的实现相对简单,使用起来非常方便。

进一步的,根据图9所示操作流程,首先,重排序操作将有序的数据包放回到接收缓冲区内,并清空原始的重排序队列。随后,接收方向发送方发送具有最大序列号(PacketSequence Number,PSN)的累积确认机制(ACK),用以确认接收方已经成功接收并处理该数据包。此时,通信双方将恢复正常的数据收发模式,并继续进行后续的数据传输。

需要说明的是,条件1中,队列的最大长度Thresh的取值代表了本发明中重传判断机制对于乱序数据包的容忍度。当队列达到Thresh时,若判断为无法进行重排序的状态,即无法对乱序数据包进行有效整理,那么将直接舍弃当前队列中的数据包,并清空队列。随后,接收方将向发送方发送不可累积确认机制(NACK)以示重传需求。

进一步的,Thresh值的设置非常关键,在一条稳定的网络链路上,在不丢包的情况下,通过RTT和RTT的抖动估算出数据包的乱序程度Thresh

Thresh

其中,RTT表示往返时延,Var表示RTT的方差,MSS表示最大报文段长度,α表示乘性因子,β表示加性因子,默认设置为0.6和3。

需要说明的是,通过调节这α因子和β因子可以使估算值不断逼近真实值,而真实值我们可以在数据包传输过程中,通过收集乱序数据包数量和总数据包数量得到。

进一步的,在乱序程度的基础上,通过EWMA(指数加权移动平均算法)消除由于某个过大的Thresh

Thresh(k+1)=(1-δ)·Thresh

其中,Thresh(k+1)表示在k+1时刻的Thresh值,Thresh(k)表示k时刻的Thresh值,δ表示权重(一般取[0.4,0.6]),Thresh

需要注意的是,在上述的方法中,当队列长度超过阈值Thresh时才会发送不可累积确认机制(NACK),否则不发送。

进一步的,根据图10所示,引入两个阈值kmin和kmax,并通过线性相关的概率来确定是否发送不可累积确认机制(NACK)。具体而言,当队列长度小于kmin时,发送NACK的概率为0;一旦队列长度超过kmin,将根据队列长度的线性相关性来计算发送NACK的概率;当队列长度达到kmax时,发送NACK的概率将为100%。通过采用基于发送NACK概率的机制,可以实现更加灵活和迅速的NACK触发方式。

进一步的,由于重排序区的存储空间有限(通常为几百KB),必须采用适当的存储管理方法。前述的一种方法是当队列长度超过阈值时,直接清空整个队列来进行存储淘汰。然而,仅有淘汰方法是不够的,特别是当面对高并发流的情况时,可能会出现乱序数据包数量大于重排序区队列容量的情况。因此,在这种情况下,需要采用相应的置换算法对队列进行置换操作,以清空旧的队列内的数据包,并将新的数据包放入其中。

具体的,置换算法的基本思想是给每个队列打分,淘汰分数低的队列,具体包括以下步骤:在RDMA通信的重排序区内,对每个队列实施一个综合评分机制,此评分机制基于三个关键维度包括队列内首包的存在性、数据包的总数和队列内最新数据包的时间戳;在RDMA Write操作中,首个数据包包含关键的RETH,若队列中包含首包,则此队列在评分机制中被赋予高评分;队列内最新数据包的时间戳决定队列的时效性,通过对时间戳进行降序排序以识别长时间未更新的队列;若队列长时间未更新,则此队列在评分机制中被赋予低评分,并优先考虑淘汰;根据上述评分机制对重排序区内的队列进行评估,以决定各个队列是否保留或淘汰。

需要说明的是,选取这三个维度的原因如下:在RDMA Write操作中,该操作可能会被拆分成多个以MTU大小为限的数据包,而只有第一个包含远端地址信息的RETH(RDMAExtended Transport Header)。若首个数据包丢失,其他数据包将无法获取DMA的目的地址。因此,首个数据包的重要性相当高,将对队列的评分产生显著影响。在其他条件相同的情况下,队列所包含的数据包数量越多,丢包导致乱序的可能性就越高,因此队列的评分会降低。此外,每个队列将记录最近一个数据包的时间戳,并以时间戳的顺序对队列进行降序排序。排在后面的队列表明其内部数据包的更新时间较长,类似于最近最少使用(LRU)算法。因此,这样的队列应当被优先清空,因此其评分较低。

优选的,评分机制的具体公式如下:

其中,λ

具体的,图7是一个本文设计的置换算法的实例。队列1,2,4中的数据包7和队列3中的数据包6是队列内最近的一个数据包,队列4内的数据包1是RDMA数据包中的首包。将λ

进一步的,发送方的处理流程如下:发送方初始化数据传输,为每个数据包指派唯一序列号,并依序发送至接收方;待发送完成后,等待接收方反馈ACK或NACK,其中ACK表示数据包顺利接收,NACK表示针对特定序列号后的数据包执行重传;在收到NACK的情况下,发送方根据提供的序列号重新传输相应数据包;发送方根据网络状况和接收方反馈动态调整发送策略,并持续监测网络条件以实时调整重传策略;设定超时机制,若在预定的超时时间内未收到接收方的ACK,则触发重传;确认所有数据包被接收后,完成当前传输任务;若有后续数据,继续执行上述流程。

需要说明的是,在发送方的部分,本发明对发送方的重传机制做了改进,具体如图6所示。RDMA默认的go-back-n重传机制在收到RDMA后,重新发送当前窗口内的所有数据包,然后会启动一个超时计时器。超时时间根据网络延迟情况设定,具体公式如下:

RTO=RTT+4*RTTVar

其中,RTO表示所求的超时时间,RTT表示往返时间,RTTVar表示RTT的变化范围。

进一步的,重传完毕后,发送方会一直等待接收方的ACK。若在计时器超时之前都没有接收到ACK的话,就会重新发送窗口内的所有数据包,直到收到ACK为止。

进一步的,本发明在它的基础上做了两点改进:第一点是不再发送整个窗口内的数据包,而是发送NACK序号到MSPS范围内的数据包,这么做的原因是发送整个窗口的数据包会把已发送的数据包和未发送的数据包都进行重新发送。而发送NACK序号到MSPS范围内的数据包就只是重新发送已发送数据的部分,不需要将未发送的数据包也进行重发,可以大大减少重传的数据包数量,减少重传开销。第二点是连续重传三次后,直接退出重传,开始发送新数据,而不是等待ACK到来后再退出重传。这么做可以减少发送方的等待时间,更好地利用发送方带宽,提高带宽利用率。至于设置连续多少次重传后再退出重传,可以根据网络状况决定,对于大多数网络状况,三次重传足以保证其可靠性。

进一步的,本实施例还提供一种RDMA长距离通信重传系统,包括接收模块,用于接收方接收数据包,并检查数据包的序列号;对比模块,用于将数据包的序列号与预期序列号es进行对比,以判断数据包是否按顺序到达;有序模块,用于对预期序列号es执行递增操作,并发送ACK给发送方,表示数据包已成功接收;无序模块,用于将数据包放入重排序区的队列中,采用判断机制判定队列内的数据包是否能通过重排序恢复为有序状态。

本实施例还提供一种计算机设备,适用于RDMA长距离通信重传方法的情况,包括存储器和处理器;存储器用于存储计算机可执行指令,处理器用于执行计算机可执行指令,实现如上述实施例提出的RDMA长距离通信重传方法。

该计算机设备可以是终端,该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例提出的实现RDMA长距离通信重传方法。

综上,本发明通过精确比对接收到的数据包序列号与预期序列号减少不必要的重传,避免了传统go-back-n机制中的过度重传;设计的存储置换算法可以有效管理乱序队列中的数据包,通过智能评分和置换机制,提高了有限空间的利用效率,保证了更高的处理能力;通过线性相关的概率机制来决定发送不可累积确认信号的行为,允许更加灵活和迅速地处理乱序和丢失的数据包;通过只重传需要的数据包序列,而不是整个窗口的数据包,大幅减少了不必要的网络流量和重传次数,优化了网络资源的使用;引入三次重传限制的策略减少了发送方的等待时间,使发送方可以尽早继续发送新数据,从而有效提升了带宽的利用率和整体通信的可靠性。

实施例2

参照图11~图13,为本发明第二个实施例,该实施例提供了一种RDMA长距离通信重传方法,为了验证本发明的有益效果,通过经济效益计算和仿真实验进行科学论证。

进一步的,为进一步验证本发明的效果,本发明进行了基于NS3网络仿真平台的实验。NS3作为被广泛使用和认可的网络仿真平台之一,拥有强大的功能,被广泛应用于网络性能评估、协议优化等领域的研究和开发。

进一步的,实验中,设定了如下基本配置:网络拓扑采用图11所示结构,共有四个节点(A、B、C、D)。其中,节点A为发送节点,节点B和节点C为中间节点,节点D为接收节点;链路带宽设置为10Gbps,丢包率设置为0.01%,延迟设置为30ms;这些链路参数的设定旨在尽可能贴近真实场景,无论是在100Gbps带宽下,还是在丢包率和链路延迟更高的情况下,本发明同样能够得出类似的实验结果。

进一步的,本实验的主要指标包括两个方面:第一是重传数据包占总数据包的比例,该指标可以直观地反映本发明是否真正减少了重传情况;第二是发送节点的吞吐量,该指标可以直观地反映本发明是否提高了带宽的利用率。

具体的,实验的开始,从节点A到节点D持续发送数据包,数据包通过两个路径A→B→D和A→C→D到达节点D。在整个实验过程中,记录重传数据包的个数、总数据包的个数以及发送节点的吞吐量随时间变化的情况。

进一步的,根据图12显示的结果,在使用默认的go-back-n重传方法时,无效数据包(即重传数据包)占比为12.5%;而在使用本发明的重传方法后,无效数据包占比降至3.6%,相比默认方法减少了8.9%的无效数据包。

进一步的,根据图13显示的结果,在使用默认的go-back-n重传方法时,平均吞吐量为5.06Gbps;而在使用本发明的重传方法后,平均吞吐量提升至6.44Gbps,相比默认方法增加了27%的吞吐量;此外,从图中还可以观察到使用本发明的重传方法吞吐量的抖动幅度明显小于使用默认的go-back-n重传方法,表明本发明的吞吐量更稳定。

综上所述,以上的仿真实验结果充分证明了本发明相比默认方法在减少重传和提高带宽利用率方面具有巨大的优势,并且在真实环境中也能得到类似的实验结果。

优选的,本发明的优势主要体现在以下几个方面。首先,接收方不会立即发送NACK触发go-back-n重传机制,而是通过判断机制进一步判断乱序是否可以通过重排序恢复,从而有效减少了重传数据包(约8.9%),大幅提高了网络传输效率。其次,本发明在RDMA网卡上的SRAM上设置重排序区,实现数据读写速度的快速提升,并且引入一种新的存储置换算法来解决存储资源紧张的问题。最后,本发明改进了现有的发送方go-back-n重传机制,降低了重传开销,减少了发送方的等待时间,大大提高了吞吐量(约27%)。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

相关技术
  • 一种基于RDMA的通信方法、装置及存储介质
  • 一种基于多路RDMA和V2X的协同自动驾驶系统及方法
  • 一种RDMA通信加速集合通信的方法及系统
  • 一种RDMA通信加速集合通信的方法及系统
技术分类

06120116584943