CN118611833A - 数据选择重传方法、相关装置和介质 - Google Patents

数据选择重传方法、相关装置和介质 Download PDF

Info

Publication number
CN118611833A
CN118611833A CN202410749157.8A CN202410749157A CN118611833A CN 118611833 A CN118611833 A CN 118611833A CN 202410749157 A CN202410749157 A CN 202410749157A CN 118611833 A CN118611833 A CN 118611833A
Authority
CN
China
Prior art keywords
discarded
data packet
data
remote direct
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
Application number
CN202410749157.8A
Other languages
English (en)
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.)
Guangzhou University
Peng Cheng Laboratory
Original Assignee
Guangzhou University
Peng Cheng Laboratory
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 Guangzhou University, Peng Cheng Laboratory filed Critical Guangzhou University
Priority to CN202410749157.8A priority Critical patent/CN118611833A/zh
Publication of CN118611833A publication Critical patent/CN118611833A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例提供了一种数据选择重传方法、相关装置和介质。该方法包括:接收数据源端发送的待检测数据包;如果待检测数据包是拟丢弃数据包,对拟丢弃数据包进行类型判断;当确定拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;直至检测到新接收到的待检测数据包不是拟丢弃数据包,获取针对拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据拟丢弃信息构建待检测数据包的否定应答信息并发送,以通知数据源端重新发送拟丢弃的远程直接数据存储数据包。本公开实施例能够减少RDMA传输延迟。本公开实施例可应用于数据中心网络、云计算、机器学习、分布式存储等场景。

Description

数据选择重传方法、相关装置和介质
技术领域
本公开涉及通信领域,尤其是一种数据选择重传方法、相关装置和介质。
背景技术
远程直接内存访问技术(Remote Direct Memory Access,RDMA)是一种高效的网络通信技术,它允许网络上的计算机直接在彼此的内存中进行数据交换,而不需要CPU的介入,这大大提高了数据传输的速度并减少了延迟。RDMA技术是现代数据中心和高性能计算环境中的关键组件,尤其是在需要高吞吐量和低延迟网络的场景下。
相关技术中,RDMA选择重传技术主要在接收端RNIC网卡上实施,以改进回退N帧(Go-Back-N,GBN)算法的带宽浪费以及延迟增大问题。由于基于RNIC网卡的选择重传技术中丢失的报文在选择重传时至少要经过1个RTT时间才能开始重传,传输延迟太大,尤其在长距离广域网上更加明显。如何减少RDMA传输延迟,是当下亟待讨论的问题。
发明内容
本公开实施例提供一种数据选择重传方法、相关装置和介质,旨在能够减少RDMA传输延迟。
第一方面,本公开实施例提供一种数据选择重传方法,所述方法包括:
接收数据源端发送的待检测数据包;
如果所述待检测数据包是拟丢弃数据包,对所述拟丢弃数据包进行类型判断;
当确定所述拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;
直至检测到新接收到的所述待检测数据包不是拟丢弃数据包,获取针对所述拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据所述拟丢弃信息构建所述待检测数据包的否定应答信息;
将所述否定应答信息发送至所述数据源端,所述否定应答信息用于通知所述数据源端重新发送所述拟丢弃的远程直接数据存储数据包。
第二方面,本公开实施例提供一种数据选择重传装置,包括:
数据包获取单元,用于接收数据源端发送的待检测数据包;
类型判断单元,用于如果所述待检测数据包是拟丢弃数据包,对所述拟丢弃数据包进行类型判断;
信息缓存单元,用于当确定所述拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;
信息构建单元,用于直至检测到新接收到的所述待检测数据包不是拟丢弃数据包,获取针对所述拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据所述拟丢弃信息构建所述待检测数据包的否定应答信息;
应答发送单元,用于将所述否定应答信息发送至所述数据源端,所述否定应答信息用于通知所述数据源端重新发送所述拟丢弃的远程直接数据存储数据包。
可选地,所述信息缓存单元具体用于:
每当识别到一个所述拟丢弃的远程直接数据存储数据包,提取所述拟丢弃的远程直接数据存储数据包的标识;
将所述标识放入缓存队列中,并将所述拟丢弃的远程直接数据存储数据包的计数数量加一。
可选地,所述信息构建单元具体用于:
从所述缓存队列中取出全部所述标识;
获取构建所述否定应答信息时的所述计数数量;
根据全部所述标识和所述计数数量,构建所述否定应答信息;
所述信息构建单元具体还用于:
将所述缓存队列清空;
将所述计数数量置0。
可选地,所述信息构建单元具体用于:
在所述计数数量大于预设阈值的情况下,接收所述数据源端发送的下一个数据包;
如果所述下一个数据包是拟丢弃数据包,对所述拟丢弃数据包进行类型判断;
当所述拟丢弃数据包是所述远程直接数据存储数据包,获取所述缓存队列中的全部所述标识,获取当前的所述计数数量并加一得到第一数量,根据全部所述标识和所述第一数量构建所述下一个数据包的所述否定应答信息;
如果所述下一个数据包不是拟丢弃数据包,获取所述缓存队列中的全部所述标识,获取当前的所述计数数量,根据全部所述标识和所述计数数量构建所述下一个数据包的所述否定应答信息。
可选地,所述信息构建单元具体用于:
当所述缓存队列满队,获取当前的所述拟丢弃的远程直接数据存储数据包;
根据所述缓存队列中的全部所述标识和所述计数数量,构建当前的所述拟丢弃的远程直接数据存储数据包的所述否定应答信息;
清空所述缓存队列,并将所述计数数量置0。
可选地,所述装置还包括丢弃标记单元,所述丢弃标记单元用于:
根据当前网络拥塞情况计算所述待检测数据包的拟丢弃概率;
当所述拟丢弃概率大于概率阈值,在所述待检测数据包的头部添加拟丢弃标志,所述拟丢弃标志用于指示所述交换机对应的所述待检测数据包将会被丢弃。
可选地,所述类型判断单元具体用于:
对所述拟丢弃数据包进行解析,获取所述拟丢弃数据包的以太类型;
如果所述以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,则确定所述拟丢弃数据包是所述远程直接数据存储数据包;
如果所述以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型不匹配,判断所述以太类型是否与IPv4或者IPv6类型匹配;
如果所述以太类型与网际互连协议第四版或者网际互连协议第六版类型匹配,获取所述拟丢弃数据包的网际互连协议头部后是否为用户数据报协议头部;
如果所述网际互连协议头部后是所述用户数据报协议头部,获取所述用户数据报协议头部中的目的端口地址;
如果所述目的端口地址与第二版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,确定所述拟丢弃数据包是所述远程直接数据存储数据包。
第三方面,本公开实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中的数据选择重传方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行所述计算机程序时实现如第一方面中的数据选择重传方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序或计算机指令,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述计算机设备执行如第一方面中的数据选择重传方法。
本公开实施例中在交换机中对数据源端发送的数据包进行过滤筛选,将可能会被丢弃的远程直接数据存储数据包过滤出来,在交换机端就向发送的数据源端申请RDMA数据重传。相比于现有技术中由数据接收端根据接收到的数据包情况逐个发送应答信息和否定应答信息来通知数据发送端哪些数据发生了丢失需要重传,本公开通过在交换机中就对数据接收端可能会丢失的远程直接数据存储数据包筛选出来以向数据源端申请重传,能够节省重传流程,缩短重传时间,不需要等数据到了数据接收端才确定是否需要重传,减少RDMA传输延迟。本公开还通过对拟丢弃的远程直接数据存储数据包进行缓存和计数,再通过在正常数据包的接收应答中加入该正常数据包之前收到的拟丢弃的远程直接数据存储数据包对应的拟丢弃信息,生成否定应答信息。这样子通过一个应答信息携带之前的多个拟丢弃的远程直接数据存储数据包对应的拟丢弃信息以通知数据源端重传数据,相比于逐个构建拟丢弃的远程直接数据存储数据包的否定应答信息,减少了否定应答信息构建次数,节约系统资源,也减少了否定应答信息的数量,从而减少带宽浪费。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
图1为根据本公开的实施例的数据选择重传方法所应用的系统构架图;
图2为本公开的实施例应用在以太网端到端通信的场景下的示意图;
图3为根据本公开的一个实施例的数据选择重传方法的流程图;
图4为图3中步骤310之后的添加拟丢弃标志的流程图;
图5为图4中添加拟丢弃标志后的RDMA数据包格式的示意图;
图6为图3中步骤320对拟丢弃数据包进行类型判断的流程图;
图7为本公开一个实施例的RDMA数据包格式的示意图;
图8为图7中RDMA数据包格式中的以太网头部格式的示意图;
图9为图7中RDMA数据包格式中的UDP头部格式的示意图;
图10为图6中对拟丢弃数据包进行类型判断的示意图;
图11为图3中步骤330将拟丢弃的远程直接数据存储数据包进行缓存和计数的流程图;
图12为图3中步骤340获取针对拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据拟丢弃信息构建待检测数据包的否定应答信息的流程图;
图13是根据本公开的实施例的数据选择重传装置的模块图;
图14是根据本公开的实施例图3所示的数据选择重传方法的终端结构图;
图15是根据本公开的实施例图3所示的数据选择重传方法的服务器结构图。
具体实施方式
为了使本公开的目的、技术方法及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本公开实施例的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本公开实施例中的具体含义。本公开实施例中,“进一步地”、“示例性地”或者“可选地”等词用于表示作为例子、例证或说明,不应被解释为比其它实施例或设计方案更优选或更具有优势。使用“进一步地”、“示例性地”或者“可选地”等词旨在以具体方式呈现相关概念。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
以太网:以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3~10Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现。
网际协议版本4(Internet Protocol version 4,IPv4):又称互联网通信协议第四版,是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署的版本。IPv4是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6。IPv4是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议(如传输控制协议)处理的。
网际协议版本6(Internet Protocol Version 6,IPv6):是互联网工程任务组设计的用于替代IPv4的下一代IP协议。由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
远程直接数据存取(Remote Direct Memory Access,RDMA):RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和中央处理器(Central Processing Unit,CPU)周期用于改进应用系统性能。
RoCE(RDMAover Converged Ethernet):是一种基于以太网的RDMA(RemoteDirect Memory Access)协议,它允许在以太网网络上进行高效的数据传输和内存访问。RoCE协议的出现,使得以太网网络不仅可以用于传统的数据传输,还可以支持高性能计算和存储应用,极大地拓展了以太网网络的应用范围。其中,RoCE协议存在两个版本,分别为RoCEv1和RoCEv2。
往返时间(Round-Trip Time,RTT):是指数据从发送端到接收端再返回发送端所需要的时间,是衡量网络延迟的重要指标。
相关技术中,远程直接内存访问技术(Remote Direct Memory Access,RDMA)是一种高效的网络通信技术,它允许网络上的计算机直接在彼此的内存中进行数据交换,而不需要CPU的介入,这大大提高了数据传输的速度并减少了延迟。RDMA技术是现代数据中心和高性能计算环境中的关键组件,尤其是在需要高吞吐量和低延迟网络的场景下。
现有的RDMA技术相关协议规范规定采用了回退N帧(Go-Back-N,GBN)的选择重传算法进行丢包重传,但是在发生乱序(RDMA的报文有一个序号,报文未按序号到达接收端)、丢包(数据包在网络中丢失或者超过规定的时间到达)等情况下,GBN算法将会引起已到达接收端的N个报文重传,造成带宽浪费和在报文乱序、少数丢包条件下的平均传输延迟显著增加等性能问题。现有的RDMA选择重传技术主要在接收端RNIC(RDMANetwork InterfaceCard,支持RDMA协议的网卡)网卡上实施,以改进GBN算法的带宽浪费以及延迟增大问题。由于基于RNIC网卡的选择重传技术中丢失的报文在选择重传时至少要经过1个RTT时间才能开始重传,传输延迟依然太大;尤其在长距离广域网上,该技术依然存在传输延迟过大的缺陷。
基于此,本公开实施例提供一种数据选择重传方法、相关装置和介质。本公开实施例提供的数据选择重传方法在交换机中就对可能会被丢弃的RDMA数据包进行过滤缓存,再利用正常数据包的应答信息携带这些过滤出来的拟丢弃RDMA数据包的标识和数量形成否定应答信息,并将该否定应答信息发送给数据源端使其执行RDMA数据包的重传。这样子,不需要等数据到了接收端再有接收端反馈是否需要重传,能够节省重传流程,缩短重传时间,减少RDMA传输延迟。
本公开实施例应用的系统体系架构及场景说明
图1是根据本公开的实施例的数据选择重传方法所应用的系统构架图。它包括发送端110、交换机120、接收端130等。
发送端110是指能够向交换机120、接收端130提供数据发送服务,根据需求发送数据包的计算机系统。发送端110通常为服务器,服务器在稳定性、安全性、性能等方面都要求更高。发送端110还可以是能对交换机120、接收端130提供数据获取服务的数据库。服务器可以是网络平台中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。发送端110也可以以有线或无线的方式与交换机130进行通信,交换数据。
交换机120是指能够向发送端110和接收端130提供数据转发、过滤服务的网络设备。发送端110发送的数据要通过交换机120发送到对应的接收端130。
接收端130是指用于接收发送端110通过交换机120发送的数据的计算机系统,接收端130可以是服务器,也可以是终端。接收端130为终端时,其可以包括桌面电脑、膝上型电脑、PDA(个人数字助理)、手机、车载终端、家庭影院终端、专用终端、数位板等多种形式。另外,它可以是单台设备,也可以是多台设备组成的集合。例如,多台设备通过局域网连接,公用一台显示设备进行协同工作,共同构成一个终端。接收端130也可以以有线或无线的方式与交换机120进行通信,交换数据。
需要说明的是,发送端110与接收端130之间可以互为发送方和接收方,发送端100、交换机120、接收端130之间通过RDMA技术进行数据传输。
本公开实施例可以应用在多种场景下,例如图2所示的应用在以太网端到端通信的场景下的示意图。
如图2所示,存在两个服务器分别为发送端和接收端进行通信,发送端与接收端之间通过交换机进行数据转达与过滤。
发送端向交换机发送以太网帧,交换机中基于自身接收端口和发送端口的缓存情况以及网络拥塞情况对以太网帧进行丢弃预测,对可能会被丢弃的以太网帧添加拟丢弃标志。
交换机对以太网帧先进行标志判断,判断以太网帧是否存在拟丢弃标志。若是不存在该标志,则将以太网帧正常转发给对应的接收端。若是存在拟丢弃标志,则对存在拟丢弃的以太网帧进行类型判断,判断是以太网帧对应的数据包是否为RDMA数据包,如果是,这通过寄存器进行缓存和计数,如果不是,则直接丢弃该数据包。
交换机中在连续接收到多个拟丢弃的RDMA数据包的情况下,若是收到了没有拟丢弃标志的正常以太网帧,则基于寄存器中缓存的拟丢弃RDMA数据包的特征标识和计数数量,构建该正常以太网帧的否定应答信息,并将该否定应答信息发送给发送端。
发送端接收到该否定应答信息之后,根据该否定应答信息中携带的数量和特征标识,确定需要进行重传的RDMA数据包,并执行重传。
在上述示例中,在交换机中对发送端发送的数据包进行过滤筛选,将可能会被丢弃的RDMA数据包过滤出来,在交换机端就向发送端申请RDMA数据重传。相比于现有技术中由接收端根据接收到的数据包情况逐个发送应答信息和否定应答信息来通知数据发送端哪些数据发生了丢失需要重传,本示例通过在交换机中就对接收端可能会丢失的RDMA数据包筛选出来以向发送端申请重传,能够节省重传流程,缩短重传时间,不需要等数据到了数据接收端才确定是否需要重传,减少RDMA传输延迟。本示例中还通过对拟丢弃的RDMA数据包进行缓存和计数,再通过在正常数据包的接收应答中加入该正常数据包之前收到的拟丢弃的RDMA数据包对应的拟丢弃信息,生成否定应答信息。这样子通过一个应答信息携带之前的多个拟丢弃的RDMA数据包对应的拟丢弃信息以通知发送端重传数据,相比于逐个构建拟丢弃的RDMA数据包的否定应答信息,减少了否定应答信息构建次数,节约系统资源,也减少了否定应答信息的数量,从而减少带宽浪费。
应理解,以上内容仅示出了对本公开部分应用场景的说明。本公开能够应用的业务场景可以包括但不限于上述举出的具体实施例。
本公开实施例的总体说明
需要强调的是,本公开实施例能够适用于多种应用场景,例如数据中心网络、云计算、机器学习、分布式存储等场景。相关技术中,基于RNIC网卡的选择重传技术中丢失的报文在选择重传时至少要经过1个RTT时间才能开始重传,传输延迟太大,尤其在长距离广域网上更加明显。本公开的一些实施例,提供了一种数据选择重传方法、相关装置和介质,旨在能够减少RDMA传输延迟。
数据选择重传方法是在基于RDMA技术进行端到端的数据通信交互过程中,针对由于网络拥塞导致的数据包丢失、乱序等情况,选择数据进行重传的方法。
本公开实施例的数据选择重传方法可以在服务器执行,也可以在终端执行,还可以部分在服务器执行,部分在终端执行。
如图3所示,根据本公开的一个实施例,应用于交换机,数据选择重传方法包括:
步骤310、接收数据源端发送的待检测数据包;
步骤320、如果待检测数据包是拟丢弃数据包,对拟丢弃数据包进行类型判断;
步骤330、当确定拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;
步骤340、直至检测到新接收到的待检测数据包不是拟丢弃数据包,获取针对拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据拟丢弃信息构建待检测数据包的否定应答信息;
步骤350、将否定应答信息发送至数据源端,否定应答信息用于通知数据源端重新发送拟丢弃的远程直接数据存储数据包。
下面对步骤310至步骤350进行简要描述。
在步骤310中,数据源端是指发送数据的服务器或终端。待检测数据包是指数据源端发送至交换机中,还未进行标志判断和类型判断的数据包。
在步骤320中,拟丢弃数据包是指交换机对数据源端发送的数据包进行过滤识别后筛选出来的可能会被丢弃的数据包。对于不是拟丢弃的数据包,直接按照一般通信过程由交换机转发至对应的数据接收端。
在步骤330中,由于本公开是针对基于RDMA协议进行数据传输的场景,是基于RDMA选择重传改进,因此对拟丢弃数据包进行类型判断。当确定拟丢弃数据包是RDMA数据包,则需要对其进行重传,从而将这些拟丢弃的RDMA数据包的特征标识进行缓存,用于后续构建否定应答信息,以使数据源端能够从否定应答信息中确定哪些RDMA数据包进行重传。
计数是指在连续收到多个拟丢弃的RDMA数据包时,对其进行计数。计数用于后续构建否定应答信息,以使数据源端能够从否定应答信息中确定需要重传的RDMA数据包的数量。
在本步骤中,对于不是RDMA数据包的拟丢弃数据包,直接丢弃。
在步骤340中,新接收到的待检测数据包不是拟丢弃数据包是指交换机新收到的数据包是正常转发处理的数据包。拟丢弃信息是指将新收到的正常数据包与上一次收到的正常数据包之间的全部拟丢弃的RDMA数据包的特征标识和计数信息整合的信息。
否定应答信息是指在新收到的正常数据包的应答信息的基础上添加拟丢弃信息生成的否定应答信息,用于告知数据源端哪些RDMA数据包被丢弃需要进行重传。
在步骤350中,数据源端接收到否定应答信息后,数据源端能够根据否定应答信息确定交换机过滤得到的拟丢弃的RDMA数据包,并重新向交换机发送这些拟丢弃的RDMA数据包。
上述步骤310至步骤350的实施例,在交换机中对数据源端发送的数据包进行过滤筛选,将可能会被丢弃的RDMA数据包过滤出来,在交换机端就向发送的数据源端申请RDMA数据重传。相比于现有技术中由数据接收端根据接收到的数据包情况逐个发送应答信息和否定应答信息来通知数据发送端哪些数据发生了丢失需要重传,本公开实施例通过在交换机中就对数据接收端可能会丢失的RDMA数据包筛选出来以向数据源端申请重传,能够节省重传流程,缩短重传时间,不需要等数据到了数据接收端才确定是否需要重传,减少RDMA传输延迟。本公开实施例还通过对拟丢弃的RDMA数据包进行缓存和计数,再通过在正常数据包的接收应答中加入该正常数据包之前收到的拟丢弃的RDMA数据包对应的拟丢弃信息,生成否定应答信息。这样子通过一个应答信息携带之前的多个拟丢弃的RDMA数据包对应的拟丢弃信息以通知数据源端重传数据,相比于逐个构建拟丢弃的RDMA数据包的否定应答信息,减少了否定应答信息构建次数,节约系统资源,也减少了否定应答信息的数量,从而减少带宽浪费。
以上是对步骤310至步骤350总体描述,下面对步骤310、320、330、340的具体实施过程进行详细描述。
在步骤310中,接收数据源端发送的待检测数据包。
在一实施例中,参照图4,步骤310之后,数据选择重传方法还包括:
步骤410、根据当前网络拥塞情况计算待检测数据包的拟丢弃概率;
步骤420、当拟丢弃概率大于概率阈值,在待检测数据包的头部添加拟丢弃标志,拟丢弃标志用于指示交换机对应的待检测数据包将会被丢弃。
在步骤410中,网络拥塞是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当前网络拥塞情况是指交换机接收到待检测数据包时的网络拥塞情况。
网络拥塞情况可以通过以下方式表示:
(1)通过网络中的数据传输量与网络的带宽容量的比值表示。示例性地,可以通过构建线性函数来根据比值计算待检测数据包的丢弃概率,其中比值越大,丢弃概率越大。
(2)通过交换机的输入端口和输出端口的剩余缓存空间来表示网络拥塞情况。当剩余缓存空间为0时,则认为丢弃概率为100%。
在步骤420中,概率阈值是指预设置的概率,当拟丢弃概率大于该预设置的概率,则可以认为对应的待检测数据包会被丢弃,因此对该待检测数据包的头部添加拟丢弃标志。
拟丢弃标志是指添加在数据包头部的操作项附加控制标志头,用于指示该标志所属的数据包是拟丢弃数据包。示例性地,添加拟丢弃标志的数据包格式如图5所示。
在一示例中,当收到一个任意的以太网帧包头以及在交换机前期处理过程中添加的操作项附加控制标志头时,交换机的标志判断模块提取以太网帧的附加控制标志头,判断该以太网帧是否为一个拟丢弃帧。若为拟丢弃帧则进入类型判断过程。
上述步骤410和步骤420,通过根据网络拥塞情况判断待检测数据包可能被丢弃的概率,并给确定可能被丢弃的待检测数据包包头添加拟丢弃标志,从而后续能够快速进行拟丢弃数据包的过滤判断。
在步骤320中,如果待检测数据包是拟丢弃数据包,对拟丢弃数据包进行类型判断。
在一实施例中,参照图6,步骤320包括:
步骤610、对拟丢弃数据包进行解析,获取拟丢弃数据包的以太类型;
步骤620、如果以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,则确定拟丢弃数据包是远程直接数据存储数据包;
步骤630、如果以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型不匹配,判断以太类型是否与网际互连协议第四版或者网际互连协议第六版类型匹配;
步骤640、如果以太类型与网际互连协议第四版或者网际互连协议第六版类型匹配,获取拟丢弃数据包的网际互连协议头部后是否为用户数据报协议头部;
步骤650、如果网际互连协议头部后是用户数据报协议头部,获取用户数据报协议头部中的目的端口地址;
步骤660、如果目的端口地址与第二版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,确定拟丢弃数据包是远程直接数据存储数据包。
在步骤610中,如图7所示,一般情况下,RDMA数据包结构包括:以太网头部、IP头部、用户数据报协议(User Datagram Protoco l,UDP)头部、RDMA头部、RDMA负载、校验码。
其中,参照图8,以太网头部中包括源地址、目的地址、以太类型(即以太类型)。通过以太类型能够确定该待检测数据包的帧数据字段协议。
在步骤620中,第一版基于以太网的远程直接内存访问协议的远程直接数据存储是指RoCEv1协议。通过拟丢弃数据包的以太类型字段的具体值与RoCEv1协议对应值是否相同,从而判断是否匹配。
在步骤630中,网际互连协议第四版是指IPv4协议,网际互连协议第六版IPv6协议。如果以太类型与IPv4或者IPv6类型不匹配,则说明该拟丢弃数据包不可能是RDMA数据包,所以直接丢弃该拟丢弃数据包。
在步骤640中,用户数据包协议头部即是UDP头部。如图7所示,在一般的RDMA数据包格式中,IP头部后面就是UPD头部字段。因此当确定该拟丢弃数据包的以太类型为IPv4或者IPv6后,通过判断IP头部后是否为UPD头部,则可以判断该拟丢弃数据包的格式是否符合RDMA数据包的格式。
如果IP头部后不是UPD头部,则说明该拟丢弃数据包的格式不符合RDMA数据包的格式,其不是RDMA数据包,故直接丢弃。
在步骤650中,当确定拟丢弃数据包的IP头部后是UPD头部,则可以初步确定其符合RDMA数据包格式规范。进一步提取UPD头部中的目的端口地址,以最终判断其是否为RDMA数据包。
在步骤660中,第二版基于以太网的远程直接内存访问协议的远程直接数据存储是指RoCEv2协议。通过拟丢弃数据包的目的端口地址字段的具体值与RoCEv2协议对应值是否相同,从而判断是否匹配。
参照图10,结合图10对判断数据包是否为RDMA数据包的过程进行解释说明。
(1)当交换机的类型判断模块收到一个以太网帧时,首先判断它的以太类型是否为0x8915。该类型是RoCE v1协议规定的RDMA数据包类型。若类型匹配,则执行步骤(2);若类型不匹配,则执行步骤(3)。
(2)若以太类型与RoCEv1协议规定的RDMA数据包类型匹配,则该数据包为RDMA数据包。
(3)若以太类型与RoCE v1协议规定的RDMA数据包类型不匹配,则该判断它的以太类型是否为0x0800,即IPv4类型。若是IPv4数据包,则执行步骤(6);否则执行步骤(4)。
(4)若该以太类型不是IPv4,需要判断以太类型是否为0x86DD,即IPv6类型。若不是则执行步骤(5);若是则执行步骤(6)。
(5)若该数据包的以太类型不是IPv4或者IPv6类型,则该数据包不可能为RDMA协议规范的RDMA数据包,故丢弃。
(6)若该数据包是IPv4或者IPv6类型,则判断它的下一个字段是否为UDP头部(判断IPv4的Protoco l字段是否为17,IPv6的Next header字段是否为17)。若是则执行步骤(8);若不是,则执行步骤(7)。其中,Protoco l(协议)字段用于指示IP数据包中封装的上层协议类型,即传输层协议类型;Next Header(下一个头部)字段是一个8位字段,用于标识下一个头部的类型。
(7)若该数据包IP头部的后方不是UDP头部,则该数据包不是RDMA数据包,丢弃。
(8)若该数据包IP头部的后方是UDP头部,则判断UDP头部中,目的端口地址是否为4791,即RoCEv2协议规范的RDMA数据包类型。若是,则该数据包是RDMA数据包。否则,该数据包不是基于RoCEv2协议的RDMA数据包,丢弃该包。
上述步骤610至步骤660的实施例,通过根据拟丢弃数据包的各个字段进行类型匹配,能够兼容所有RoCE协议,并准确过滤出拟丢弃的RDMA数据包。
在步骤330中,当确定拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数。
在一实施例中,参照图11,步骤330包括:
步骤1110、每当识别到一个拟丢弃的远程直接数据存储数据包,提取拟丢弃的远程直接数据存储数据包的标识;
步骤1120、将标识放入缓存队列中,并将拟丢弃的远程直接数据存储数据包的计数数量加一。
在步骤1110中,拟丢弃的远程直接数据存储数据包的标识是指拟丢弃的RDMA数据包中用于表示其的特征字段。例如,在RoCEv2协议的RDMA数据包中存在BTH(BaseTransport Header,基本传输标头)字段,其中的序列值能够用来作为该RDMA数据包的标识。
在步骤1120中,缓存队列是指交换机中用于对拟丢弃的RMDA数据的标识进行临时存储的数据空间。示例性地,可以通过在交换机中设置一个寄存器进行标识的缓存和计数数量的缓存。
上述步骤1110至步骤1120的实施例,对过滤出来的拟丢弃RDMA数据包的标识进行缓存并计数,以用于后续构架否定应答信息。相较于得到一个拟丢弃的RDMA数据包就构建一个否定应答信息,减少了否定应答信息的构建数量,节约系统资源,减少了发送否定应答信息占用的带宽。
在步骤340中,直至检测到新接收到的待检测数据包不是拟丢弃数据包,获取针对拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据拟丢弃信息构建待检测数据包的否定应答信息。
在一实施例中,参照图12,步骤340包括:
步骤1210、从缓存队列中取出全部标识;
步骤1220、获取构建否定应答信息时的计数数量;
步骤1230、根据全部标识和计数数量,构建否定应答信息;
在步骤340之后,方法还包括:
步骤1240、将缓存队列清空;
步骤1250、将计数数量置0。
在步骤1210中,标识是指之前缓存的拟丢弃的RDMA数据包的特征标识。全部标识是指在当前接收到的正常数据包与上一次接收到的正常数据包之间,接收到的多个拟丢弃的RDMA数据包的标识。
在步骤1220中,计数数量是指在当前接收到的正常数据包与上一次接收到的正常数据包之间,接收到的多个拟丢弃的RDMA数据包的数量。
在步骤1230中,在RDMA传输中,数据的接收端收到发送端发送的数据时,会返回一个应答信息告知发送端已收到对应的数据。本公开实施例利用正常数据包的应答信息,在其中增加拟丢弃的RDMA数据包的标识和计数数量以生成否定应答信息,不会增加额外的信息发送量。
在步骤1240和步骤1250中,在构建完否定应答信息之后,清空缓存队列和将计数数量清零,以重新开始对新收到的拟丢弃的RDMA数据进行新一轮的缓存和计数,直至收到下一个新的正常数据包。其中,本公开实施例中的正常数据包就是指没有拟丢弃标志的数据包。
示例性地,假设存在1-11个数据包,其中数据包1至数据包5为拟丢弃的RDMA数据包,数据包6为正常数据包,数据包7至数据包9为拟丢弃的RDMA数据包,数据包10、11为正常数据包。交换机接收到数据包1至5时,识别出它们是拟丢弃的RDMA数据包,将数据包1至5的标识放入缓存队列,此时计数数量为5。当交换机接收到数据包6,识别出数据包6为正常数据包。此时,将缓存队列中数据包1至5的标识取出,并获取计数数量为5。交换机在数据包6的应答信息的基础上增加数据包1至5的标识和计数数量5,生成否定应答信息。同时清空缓存队列,并且将计数数量置0。交换机将该否定应答信息发送给数据源端。数据源端能够根据该否定应答信息知悉有5个RDMA数据包需要重传,分别为数据包1至5。交换机继续接收数据包,接收到数据包7至9,并且识别出它们是拟丢弃的RDMA数据包,将数据包7至9的标识放入缓存队列,此时计数数量为3。
在步骤1210至步骤1250的实施例,通过对拟丢弃的RDMA数据包进行缓存和计数,再通过在正常数据包的接收应答中加入该正常数据包之前收到的拟丢弃的RDMA数据包对应的拟丢弃信息,生成否定应答信息。这样子通过一个应答信息携带之前的多个拟丢弃的RDMA数据包对应的拟丢弃信息以通知数据源端重传数据,相比于逐个构建拟丢弃的RDMA数据包的否定应答信息,减少了否定应答信息构建次数,节约系统资源,也减少了否定应答信息的数量,从而减少带宽浪费。
在一实施例中,数据选择重传方法还包括:
在计数数量大于预设阈值的情况下,接收数据源端发送的下一个数据包;
如果下一个数据包是拟丢弃数据包,对拟丢弃数据包进行类型判断;
当拟丢弃数据包是RDMA数据包,获取缓存队列中的全部标识,获取当前的计数数量并加一得到第一数量,根据全部标识和第一数量构建下一个数据包的否定应答信息;
如果下一个数据包不是拟丢弃数据包,获取缓存队列中的全部标识,获取当前的计数数量,根据全部标识和计数数量构建下一个数据包的否定应答信息。
在本公开实施例汇总,预设阈值是指预先设置的拟丢弃的RDMA数据包的计数最大数量;预设阈值可以基于专家经验或者实际网络环境的需求进行设置。
当计数数量大于预设阈值时,即表示当前已缓存和计数的拟丢弃的RDMA数据包的数量已达到预设上限,需要向数据源端请求数据重传。
如果接收到的下一个数据包是拟丢弃的数据包,但不是RDMA数据包,则直接丢弃,继续接收再下一个数据包。
如果接收到的下一个数据包是拟丢弃的RDMA数据包,则连同该拟丢弃的RDMA数据包的标识与缓存队列中的标识一起,并且在计数数量上加一,以构建该拟丢弃的RDMA数据包的否定应答信息。
如果接收到的下一个数据包是正常数据包,则从缓存队列中取出全部标识,以及当前的计数数量,以构建该正常数据包的否定应答信息。
示例性地,假设当前存在数据包1至6,其中,数据包1至5为拟丢弃的RDMA数据包。预设阈值为4。
交换机接收到数据包1至5,并且识别到它们是拟丢弃的RDMA数据包,将数据包1至5的标识放入缓存队列,此时计数数量为5。由于计数数量为5,超过预设阈值4。
交换机接收数据包6。如果数据包6是拟丢弃的RDMA数据包,则从缓存队列中取出数据包1至5的标识,并对计数数量加一(6),根据数据1至6的标识和数量6构建数据包6的否定应答信息。
如果数据包6是正常数据包,则从缓存队列中取出数据包1至5的标识,并确定计数数量为5,根据数据1至5的标识和数量5构建数据包6的否定应答信息。
上述实施例通过设置计数阈值来触发RDMA数据包的重传请求,避免了由于网络极度拥塞等情况下,交换机一直接收到的都是拟丢弃的RDMA数据包而迟迟接收不到正常数据包,从而无法触发拟丢弃的RDMA数据包的否定应答信息构建,导致缓存队列过大,同时请求重传的RDMA数据包过多的问题。
在一实施例中,数据选择重传方法还包括:
当缓存队列满队,获取当前的拟丢弃的远程直接数据存储数据包;
根据缓存队列中的全部标识和计数数量,构建否定应答信息;
清空缓存队列,并将计数数量置0。
在本公开实施例中,当前的拟丢弃的远程直接数据存储数据包是指缓存队列中最后一个标识对应的拟丢弃的RDMA数据包。
示例性地,假设当前存在数据包1至6,其中,数据包1至6为拟丢弃的RDMA数据包,缓存队列中能够存储的标识上限为5,即存储5个标识后缓存队列就为满队状态。
交换机接收到数据包1至5,并且识别到它们是拟丢弃的RDMA数据包,将数据包1至5的标识放入缓存队列,此时计数数量为5。此时缓存队列处于满队状态。
此时,当前的拟丢弃的RDMA数据包为数据包5,交换机从缓存队列中取出数据包1至5的标识,并确定计数数量为5,根据数据1至5的标识和数量5构建数据包5的否定应答信息,并且清空缓存队列,将计数数量置0。
交换机接收数据包6,识别到数据包6是拟丢弃的RDMA数据包,将数据包6的标识放入缓存队列中,由于缓存队列之前被清空,数据包6的标识放在缓存队列中的第一位。此时的计数数量为1。
上述实施例通过判断缓存队列是否满队来触发RDMA数据包的重传请求,避免了由于网络极度拥塞等情况下,交换机一直接收到的都是拟丢弃的RDMA数据包而迟迟接收不到正常数据包,从而无法触发拟丢弃的RDMA数据包的否定应答信息构建,导致缓存队列过大,同时请求重传的RDMA数据包过多的问题。
本公开实施例的装置和设备描述
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的表征依次显示,但是这些步骤并不是必然按照箭头表征的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图13为本公开实施例提供的数据选择重传装置的结构示意图。该数据选择重传装置1300,包括:
数据包获取单元1310,用于接收数据源端发送的待检测数据包;
类型判断单元1320,用于如果待检测数据包是拟丢弃数据包,对拟丢弃数据包进行类型判断;
信息缓存单元1330,用于当确定拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;
信息构建单元1340,用于直至检测到新接收到的待检测数据包不是拟丢弃数据包,获取针对拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据拟丢弃信息构建待检测数据包的否定应答信息;
应答发送单元1350,用于将否定应答信息发送至数据源端,否定应答信息用于通知数据源端重新发送拟丢弃的远程直接数据存储数据包。
可选地,信息缓存单元1330具体用于:
每当识别到一个拟丢弃的远程直接数据存储数据包,提取拟丢弃的远程直接数据存储数据包的标识;
将标识放入缓存队列中,并将拟丢弃的远程直接数据存储数据包的计数数量加一。
可选地,信息构建单元1340具体用于:
从缓存队列中取出全部标识;
获取构建否定应答信息时的计数数量;
根据全部标识和计数数量,构建否定应答信息;
信息构建单元1340具体还用于:
将缓存队列清空;
将计数数量置0。
可选地,信息构建单元1340具体用于:
在计数数量大于预设阈值的情况下,接收数据源端发送的下一个数据包;
如果下一个数据包是拟丢弃数据包,对拟丢弃数据包进行类型判断;
当拟丢弃数据包是远程直接数据存储数据包,获取缓存队列中的全部标识,获取当前的计数数量并加一得到第一数量,根据全部标识和第一数量构建下一个数据包的否定应答信息;
如果下一个数据包不是拟丢弃数据包,获取缓存队列中的全部标识,获取当前的计数数量,根据全部标识和计数数量构建下一个数据包的否定应答信息。
可选地,信息构建单元1340具体用于:
当缓存队列满队,获取当前的拟丢弃的远程直接数据存储数据包;
根据缓存队列中的全部标识和计数数量,构建当前的拟丢弃的远程直接数据存储数据包的否定应答信息;
清空缓存队列,并将计数数量置0。
可选地,数据选择重传装置1300还包括丢弃标记单元(图中未示出),丢弃标记单元用于:
根据当前网络拥塞情况计算待检测数据包的拟丢弃概率;
当拟丢弃概率大于概率阈值,在待检测数据包的头部添加拟丢弃标志,拟丢弃标志用于指示交换机对应的待检测数据包将会被丢弃。
可选地,类型判断单元1320具体用于:
对拟丢弃数据包进行解析,获取拟丢弃数据包的以太类型;
如果以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,则确定拟丢弃数据包是远程直接数据存储数据包;
如果以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型不匹配,判断以太类型是否与IPv4或者IPv6类型匹配;
如果以太类型与网际互连协议第四版或者网际互连协议第六版类型匹配,获取拟丢弃数据包的网际互连协议头部后是否为用户数据报协议头部;
如果网际互连协议头部后是用户数据报协议头部,获取用户数据报协议头部中的目的端口地址;
如果目的端口地址与第二版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,确定拟丢弃数据包是远程直接数据存储数据包。
参照图14,图14为实现本公开实施例的数据选择重传方法的终端的部分的结构框图,该终端包括:射频(Radio Frequency,简称RF)电路1410、存储器1414、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(wireless fidelity,简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图14示出的终端结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
存储器1414可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1414的软件程序以及模块,从而执行内容终端的各种功能应用以及数据处理。
输入单元1430可用于接收输入的数字或字符信息,以及产生与内容终端的设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入装置1432。
显示单元1440可用于显示输入的信息或提供的信息以及内容终端的各种菜单。显示单元1440可包括显示面板1414。
音频电路1460、扬声器1461,传声器1462可提供音频接口。
在本实施例中,该终端所包括的处理器1480可以执行前面实施例的数据选择重传方法。
本公开实施例的终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本公开实施例可应用于各种场景,包括但不限于内容推荐、数据筛选等。
图15为实施本公开实施例的数据选择重传方法的服务器的部分的结构框图。服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1515或数据1544的存储介质1530(例如一个或一个以上海量存储装置)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器上执行存储介质1530中的一系列指令操作。
服务器还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,Un ixTM,LinuxTM,FreeBSDTM等等。
服务器中的中央处理器1522可以用于执行本公开实施例的数据选择重传方法。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的数据选择重传方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的数据选择重传方法。
本公开的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的内容,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联内容的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联内容是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-On ly Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本公开实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本公开的实施方式的具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本公开权利要求所限定的范围内。

Claims (11)

1.一种数据选择重传方法,其特征在于,应用于交换机,所述方法包括:
接收数据源端发送的待检测数据包;
如果所述待检测数据包是拟丢弃数据包,对所述拟丢弃数据包进行类型判断;
当确定所述拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;
直至检测到新接收到的所述待检测数据包不是拟丢弃数据包,获取针对所述拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据所述拟丢弃信息构建所述待检测数据包的否定应答信息;
将所述否定应答信息发送至所述数据源端,所述否定应答信息用于通知所述数据源端重新发送所述拟丢弃的远程直接数据存储数据包。
2.根据权利要求1所述的方法,其特征在于,所述将拟丢弃的远程直接数据存储数据包进行缓存和计数,包括:
每当识别到一个所述拟丢弃的远程直接数据存储数据包,提取所述拟丢弃的远程直接数据存储数据包的标识;
将所述标识放入缓存队列中,并将所述拟丢弃的远程直接数据存储数据包的计数数量加一。
3.根据权利要求2所述的方法,其特征在于,所述获取针对所述拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据所述拟丢弃信息构建所述待检测数据包的否定应答信息,包括:
从所述缓存队列中取出全部所述标识;
获取构建所述否定应答信息时的所述计数数量;
根据全部所述标识和所述计数数量,构建所述否定应答信息;
在所述根据所述拟丢弃信息构建所述待检测数据包的否定应答信息之后,所述方法还包括:
将所述缓存队列清空;
将所述计数数量置0。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述计数数量大于预设阈值的情况下,接收所述数据源端发送的下一个数据包;
如果所述下一个数据包是拟丢弃数据包,对所述拟丢弃数据包进行类型判断;
当所述拟丢弃数据包是所述远程直接数据存储数据包,获取所述缓存队列中的全部所述标识,获取当前的所述计数数量并加一得到第一数量,根据全部所述标识和所述第一数量构建所述下一个数据包的所述否定应答信息;
如果所述下一个数据包不是拟丢弃数据包,获取所述缓存队列中的全部所述标识,获取当前的所述计数数量,根据全部所述标识和所述计数数量构建所述下一个数据包的所述否定应答信息。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述缓存队列满队,获取当前的所述拟丢弃的远程直接数据存储数据包;
根据所述缓存队列中的全部所述标识和所述计数数量,构建当前的所述拟丢弃的远程直接数据存储数据包的所述否定应答信息;
清空所述缓存队列,并将所述计数数量置0。
6.根据权利要求1所述的方法,其特征在于,在所述接收数据源端发送的数据包之后,所述方法还包括:
根据当前网络拥塞情况计算所述待检测数据包的拟丢弃概率;
当所述拟丢弃概率大于概率阈值,在所述待检测数据包的头部添加拟丢弃标志,所述拟丢弃标志用于指示所述交换机对应的所述待检测数据包将会被丢弃。
7.根据权利要求1所述的方法,其特征在于,所述对所述拟丢弃数据包进行类型判断,包括:
对所述拟丢弃数据包进行解析,获取所述拟丢弃数据包的以太类型;
如果所述以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,则确定所述拟丢弃数据包是所述远程直接数据存储数据包;
如果所述以太类型与第一版基于以太网的远程直接内存访问协议的远程直接数据存储类型不匹配,判断所述以太类型是否与网际互连协议第四版或者网际互连协议第六版类型匹配;
如果所述以太类型与网际互连协议第四版或者网际互连协议第六版类型匹配,获取所述拟丢弃数据包的网际互连协议头部后是否为用户数据报协议头部;
如果所述网际互连协议头部后是所述用户数据报协议头部,获取所述用户数据报协议头部中的目的端口地址;
如果所述目的端口地址与第二版基于以太网的远程直接内存访问协议的远程直接数据存储类型匹配,确定所述拟丢弃数据包是所述远程直接数据存储数据包。
8.一种数据质量提升装置,其特征在于,所述装置包括:
数据包获取单元,用于接收数据源端发送的待检测数据包;
类型判断单元,用于如果所述待检测数据包是拟丢弃数据包,对所述拟丢弃数据包进行类型判断;
信息缓存单元,用于当确定所述拟丢弃数据包的类型是远程直接数据存储数据包,将拟丢弃的远程直接数据存储数据包进行缓存和计数;
信息构建单元,用于直至检测到新接收到的所述待检测数据包不是拟丢弃数据包,获取针对所述拟丢弃的远程直接数据存储数据包进行缓存和计数得到的拟丢弃信息,并根据所述拟丢弃信息构建所述待检测数据包的否定应答信息;
应答发送单元,用于将所述否定应答信息发送至所述数据源端,所述否定应答信息用于通知所述数据源端重新发送所述拟丢弃的远程直接数据存储数据包。
9.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的数据选择重传方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行所述计算机程序时实现如权利要求1至7任一项所述的数据选择重传方法。
11.一种计算机程序产品,包括计算机程序或计算机指令,其特征在于,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述计算机设备执行如权利要求1至7中任意一项所述的数据选择重传方法。
CN202410749157.8A 2024-06-11 2024-06-11 数据选择重传方法、相关装置和介质 Pending CN118611833A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410749157.8A CN118611833A (zh) 2024-06-11 2024-06-11 数据选择重传方法、相关装置和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410749157.8A CN118611833A (zh) 2024-06-11 2024-06-11 数据选择重传方法、相关装置和介质

Publications (1)

Publication Number Publication Date
CN118611833A true CN118611833A (zh) 2024-09-06

Family

ID=92560739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410749157.8A Pending CN118611833A (zh) 2024-06-11 2024-06-11 数据选择重传方法、相关装置和介质

Country Status (1)

Country Link
CN (1) CN118611833A (zh)

Similar Documents

Publication Publication Date Title
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
US20230216767A1 (en) Technologies for out-of-order network packet management and selective data flow splitting
US8412160B2 (en) Method for discarding all segments corresponding to the same packet in a buffer
EP2183890B1 (en) Aggregate data frame generation
US20120140686A1 (en) Method and apparatus for sending, receiving, and transmission of data packets (as amended)
CN110943933A (zh) 一种实现数据传输的方法、装置和系统
US10701189B2 (en) Data transmission method and apparatus
CN107222403A (zh) 一种数据传输方法、系统和电子设备
CN105763375B (zh) 一种数据包发送方法、接收方法及微波站
CN114051013A (zh) 一种通信数据传输方法及装置
CN114301576A (zh) 用于在ieee 802.15.4网络中生成和发送应答帧的方法及通信装置
CN113612698A (zh) 一种数据包发送方法及装置
CN103795648A (zh) 一种队列调度方法、装置及系统
JP5124591B2 (ja) Ranにおける連続するデータユニットの表示の方法
KR102601348B1 (ko) 데이터 송신 방법, 송신 장치, 데이터 수신 방법 및 수신 장치
CN114337942B (zh) 一种报文重传方法、装置及电子设备
CN116095197B (zh) 数据传输方法及相关装置
CN118611833A (zh) 数据选择重传方法、相关装置和介质
CN107222299A (zh) 一种数据传输方法、系统和电子设备
CN113424578B (zh) 一种传输控制协议加速方法和装置
CN107548105B (zh) 一种基于udp的数据传输确认方法和基站
US6785731B1 (en) Methods for efficient transmission of signaling messages in a packet-based network
CN110995680A (zh) 虚拟机报文接收方法、系统、装置及计算机可读存储介质
CN111865884A (zh) 一种报文处理方法、装置及设备
CN112737737B (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