CN113055131B - 数据处理方法、数据切分方法、计算设备和介质 - Google Patents
数据处理方法、数据切分方法、计算设备和介质 Download PDFInfo
- Publication number
- CN113055131B CN113055131B CN201911367064.4A CN201911367064A CN113055131B CN 113055131 B CN113055131 B CN 113055131B CN 201911367064 A CN201911367064 A CN 201911367064A CN 113055131 B CN113055131 B CN 113055131B
- Authority
- CN
- China
- Prior art keywords
- message
- data stream
- target
- identifier
- stream segment
- 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.)
- Active
Links
Images
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/1607—Details of the supervisory signal
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种数据处理方法、数据切分方法、计算设备和介质。该数据处理方法包括:接收报错消息,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识;确定在目标数据流段中目标消息对应的目标工作项;目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;按照目标首报文的起始存储地址,得到出错报文的起始存储地址;从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。根据本发明实施例,能够提高重传效率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据处理方法、数据切分方法、计算设备和介质。
背景技术
在数据传输过程中可能出现丢包现象,因此需要发送端重新传输之前丢包的数据内容。
目前,有些重传方法从丢包位置开始重传所有报文,导致已经被接收过的大量报文进行了重传,浪费了网络带宽,降低了重传效率。还有一些重传方法利用复杂的重传算法只重传丢失的报文,不便于硬件的实现。
因此,急需提供一种能够提高重传效率的重传方法。
发明内容
本发明实施例提供一种数据处理方法、数据切分方法、计算设备和介质,能够提高重传效率。
根据本发明实施例的第一方面,提供一种数据处理方法,包括:
接收报错消息,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识;
基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在数据流段中对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项;其中,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;
按照目标首报文的起始存储地址,得到出错报文的起始存储地址;
从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
根据本发明实施例的第二方面,提供一种数据切分方法,方法包括:
在发送待发送数据流的过程中,基于预设的数据切分条件,将待发送数据流切分成多个数据流段;其中,每个数据流段具有各自对应的数据流段标识;待发送数据流包括至少一个消息,消息包括至少一个报文;
对于每个数据流段,基于数据流段包括的报文以及获取的每个消息的原始工作项,确定数据流段包括的每个消息在数据流段中对应的工作项;
对于每个数据流段标识,存储数据流段标识与数据流段标识对应的数据流段包括的每个消息在数据流段中对应的工作项之间的关联关系。
根据本发明实施例的第三方面,提供一种数据处理方法,包括:
在从待发送数据流包括的消息中检测到出错报文的情况下,生成报错消息;
发送报错消息至发送端,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识,以使发送端:
基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在数据流段中对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;按照目标首报文的起始存储地址,得到出错报文的起始存储地址;从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
根据本发明实施例的第四方面,提供一种数据处理装置,包括:
报错消息接收模块,用于接收报错消息,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识;
目标工作项确定模块,用于基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在数据流段中对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项;其中,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;
出错报文地址确定模块,用于按照目标首报文的起始存储地址,得到出错报文的起始存储地址;
重传模块,用于从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
根据本发明实施例的第五方面,提供一种数据切分装置,包括:
切分模块,用于在发送待发送数据流的过程中,基于预设的数据切分条件,将待发送数据流切分成多个数据流段;其中,每个数据流段具有各自对应的数据流段标识;待发送数据流包括至少一个消息,消息包括至少一个报文;
第一工作项确定模块,用于对于每个数据流段,基于数据流段包括的报文以及获取的每个消息的原始工作项,确定数据流段包括的每个消息在数据流段中对应的工作项;
存储模块,用于对于每个数据流段标识,存储数据流段标识与数据流段标识对应的数据流段包括的每个消息在数据流段中对应的工作项之间的关联关系。
根据本发明实施例的第六方面,提供一种数据处理装置,包括:
报错消息生成模块,用于在从待发送数据流包括的消息中检测到出错报文的情况下,生成报错消息;
报错消息发送模块,用于发送报错消息至发送端,报错消息包括出错报文所属的目标数据流段的数据流段标识和出错报文所属的目标消息的消息序列标识,以使发送端:
基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在所述数据流段中对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;按照目标首报文的起始存储地址,得到出错报文的起始存储地址;从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
根据本发明实施例的第七方面,提供一种计算计算设备,设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如上述第一方面、第二方面或第三面提供的方法。
根据本发明实施例的第八方面,提供一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上述第一方面、第二方面或第三面提供的方法。
根据本发明实施例中的数据处理方法、数据切分方法、计算设备和介质,通过将待发送数据流切分成多个具有各自数据流段标识的数据流段,在进行数据重传时,从出错报文的起始存储地址处重传与出错报文具有相同数据流段标识的报文,重传仅限于出错报文所属数据流段,不用对大量已经接收的报文进行重传,提高了数据重传的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据处理系统的架构示意图;
图2为本发明一实施例提供的数据切分方法的流程示意图;
图3为本发明实施例提供的数据流段标识与WQE的关联关系的示意图;
图4为本发明一实施例提供的数据处理方法的流程示意图;
图5为本发明另一实施例提供的数据处理方法的流程示意图;
图6为本发明一实施例提供的数据处理装置的结构示意图;
图7为本发明一实施例提供的数据切分装置的结构示意图;
图8为本发明另一实施例提供的数据处理装置的结构示意图;
图9为本发明实施例的计算设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在网络通信中,可以将具有相同报文特征的多个报文定义为一个数据流。一个数据流可以被切分为至少一个消息,每个消息中包括至少一个报文。其中,每个消息具有对应的工作项(working queue entry,WQE)。对于每个消息的WQE,该WQE包括其对应的消息中的首报文在内存中的起始存储地址、该消息的总长度信息(该消息包括的所有报文的总长度信息)以及接收端的标识信息等信息。
图1示出本发明实施例提供的数据处理系统的结构示意图。如图1所示,数据处理系统包括发送端110和接收端120。
图2示出本发明实施例提供的一种应用于图1中的发送端110的数据切分方法的流程示意图。如图2所示,本发明实施例提供的数据切分方法包括:
S210,在发送待发送数据流的过程中,基于预设的数据切分条件,将所述待发送数据流切分成多个数据流段;其中,每个所述数据流段具有各自对应的数据流段标识;所述待发送数据流包括至少一个消息,所述消息包括至少一个报文。
S220,对于每个所述数据流段,基于所述数据流段包括的报文以及获取的每个所述消息的原始工作项,确定所述数据流段包括的每个消息在所述数据流段中对应的工作项。
需要说明的是,在切分数据流段的过程中,同一个消息的不同报文可能属于不同的数据流段,即具有不同的数据流段标识,则需要对该消息的原有WQE进行拆分,以得到该消息在每个数据流段中对应的工作项。
S230,对于每个所述数据流段标识,存储所述数据流段标识与所述数据流段标识对应的数据流段包括的每个消息在所述数据流段中对应的工作项之间的关联关系。
在本发明的实施例中,通过预先将待发送数据流拆分成多个数据流段,以实现在接收到报错消息时,可以从出错报文的起始存储地址处重传与出错报文具有相同数据流段标识的报文,而不是重传出错报文之后的所有报文,以提高数据重传的效率。
在本发明的一些实施例中,发送端110在发送待发送数据流的过程中,会逐一发送待发送数据流中的每个报文。
其中,发送每个报文包括以下步骤:
步骤A,为报文分配数据流段标识。
在本发明的一些实施例中,在发送每个报文之前,首先为每个报文分配一个数据流段标识。
第一种情况:发送端110可以基于发送数据量进行数据流段FlowSeg的划分。
首先,发送端110获取报文的报文长度。
作为一个示例,发送端110基于读取的原始WQE中消息的长度信息和预设的最大传输单元(Maximum Transmission Unit,MTU)值,可以得到该消息中每个报文的报文长度。
然后,发送端110判断第一和值与报文的报文长度之间的第二和值是否大于预设长度阈值,得到第一判断结果。
其中,第一和值为与最近一个已发送报文具有相同数据流段标识的、且已发送的所有报文的报文长度之和。
作为一个示例,可以设置一个长度参数FlowSeg_Size,初始值为0。设置数据流段标识参数FlowSegID,初始值为0。并且,设置一个预设长度阈值T。
假设发送端110已经发送了待发送数据流中第1个消息中的第1个报文和第2个报文,第1个报文的长度和第2个报文的长度已经累计入FlowSeg_Size,且FlowSeg_Size小于预设阈值T。则第1个报文和第2个报文的FlowSegID均为0。
若发送端110要为第1个消息中的第3个报文分配数据流段标识,则基于读取的第1个消息的WQE可以获取第1个消息中第3个报文的长度,然后将该报文的长度也累计入FlowSeg_Size,并判断FlowSeg_Size的取值是否大于预设长度阈值T。
其中,第1个消息中的第2个报文为最近一个已发送报文。第一和值为第1个消息中第1个报文和第2个报文的长度之和。第二和值即为第1个消息中第1个报文、第2个报文和第3个报文的长度之和。
若FlowSeg_Size的取值大于等于预设长度阈值T(即第一判断结果为是),则为第3个报文分配与最近一个已发送报文(第1个消息中的第2个报文)的数据流段标识不同的数据流段标识。作为一个示例,可以将FlowSegID加1,即为第3个报文分配的FlowSegID为1。
在第一判断结果为是的情况下,将FlowSeg_Size更新为第3个报文的长度。然后按照上述的方法继续为第1个消息中的第4个报文分配数据流段标识。
若FlowSeg_Size的取值小于预设长度阈值T(即第一判断结果为否),则为第3个报文分配与最近一个已发送报文(第1个消息中的第2个报文)的数据流段标识相同的数据流段标识,即为第3个报文分配的FlowSegID为0。
第二种情况:发送端110可以基于两个连续报文之间的时间间隔进行数据流段FlowSeg的划分。
对于同一个待发送数据流中的两个连续报文,会存在两个连续报文之间的发送时间间隔较大的情况,因此可以基于两个连续报文之间的时间间隔进行数据流段FlowSeg的划分。
假设发送端110已经发送了待发送数据流中第1个消息中的第1个报文和第2个报文,第1个报文和第2个报文的FlowSegID均为0。
若发送端110要为第1个消息中的第3个报文分配数据流段标识,判断当前时间与最近一个已发送报文的发送时间之间的时长是否大于预设时长,得到第二判断结果。
若第二判断结果为是,则为第3个报文分配与最近一个已发送报文(第1个消息中的第2个报文)的数据流段标识不同的数据流段标识。作为一个示例,可以将FlowSegID加1,即为第3个报文分配的FlowSegID为1。
若第二判断结果为否,则为第3个报文分配与最近一个已发送报文(第1个消息中的第2个报文)的数据流段标识相同的数据流段标识,即为第3个报文分配的FlowSegID为0。
作为一个示例,可以设置一个时间参数Timer,在待发送数据流进行发送的过程中,可以对Timer进行重置。当某一个报文发送之后,则对Timer进行重置,若超过预设时长Timer都没有被重置,则为第3个报文分配与第2个报文的数据流段标识不同的数据流段标识,否则,为第3个报文分配与第2个报文的数据流段标识相同的数据流段标识。
第三种情况,发送端110可以基于发送数据量和两个连续报文之间的时间间隔为报文分配数据流段标识。
当第一判断结果和第二判断结果中至少一个为是时,为报文分配与最近一个已发送报文的数据流段标识不同的数据流段标识。即在上述示例中,为第3个报文分配的数据流段标识为1。
当第一判断结果和第二判断结果均为否时,为报文分配与最近一个已发送报文的数据流段标识相同的数据流段标识。即在上述示例中,为第3个报文分配的数据流段标识为0。
步骤B,基于为报文分配的数据流段标识和最近一个已发送报文的数据流段标识,确定该报文所属消息在该报文所属数据流段中的首报文。
需要说明的是,对于一个消息,若该消息中所有报文长度之和均小于预设阈值T,和/或,该消息中任意相邻两个报文之间的发送时间间隔均小于预设时长,则该消息中的每个报文的数据流段标识均相同,则将获取的该消息的原始WQE与该数据流段标识关联,即该数据流段标识对应的数据流段包括该消息。
但是,假设在上述示例中,第1个消息对应的原始WQE包括该消息中第1个报文的起始存储地址和该消息的长度3.5K。第1个消息包括4个报文,第1个报文和第2个报文的数据流段标识为0,第3个报文和第4个报文的数据流段标识为1。
也就是说,数据流段标识为0的数据流段以及数据流段标识为1的数据流段都仅包括第1个消息的部分报文。因此需要对第1个消息的原始WQE进行切分,得到两个新的WQE,即第一WQE和第二WQE。
也就是说,当同一个消息属于不同的数据流段时,则需要对该消息的原始WQE进行拆分,得到该消息在每个数据流段中对应的工作项。
其中,第一WQE为数据流段标识为0的数据流段包括的第1个消息中的数据对应的WQE,即第一WQE为第1个消息在该数据流段中对应的WQE。第二WQE为数据流段标识为1的数据流段包括的第1个消息中的数据对应的WQE,即第二WQE为第1个消息在该数据流段中对应的WQE。
其中,第一WQE包括第1个消息中第1个报文的起始存储地址以及第1个报文和第2个报文的长度之和(即2K)。则第1个消息中的第1个报文为第1个消息在数据流段标识为0的数据流段中的首报文。
也就是说,在某一报文的数据流段标识与最近一个已发送报文的数据流段标识相同的情况下,该报文所属消息在该报文所属数据流段中的首报文为在该报文所属消息中第一个被分配该数据流段标识的报文。例如,第2个报文与第1个报文的数据流段标识相同,则第1个消息在数据流段标识为0的数据流段中的首报文为第1个报文。
第二WQE包括第1个消息中第3个报文的起始存储地址以及第3个报文和第4个报文的长度之和(即1.5K)。其中,第3个报文的起始存储地址可以由第1个报文的起始存储地址以及第1个报文的长度和第2个报文的长度确定。第1个消息中的第3个报文为第1个消息在数据流段标识为1的数据流段中的首报文。
也就是说,在某一报文的数据流段标识与最近一个已发送报文的数据流段标识不相同的情况下,则该报文所属消息在该报文所属数据流段中的首报文为该报文自身。例如第3个报文与第2个报文的数据流段标识不同,则第1个消息在数据流段标识为1的数据流段中的首报文为第3个报文。
在本发明的实施例中,在S230中,通过将数据流段标识与该数据流段标识对应的数据流段包括的每个消息在该数据流段中对应的WQE关联,可以得到数据流段标识与WQE的关联关系。图2示出每个FlowSegID与WQE的对应关系。如图2所示,共有n+1个FlowSegID,分别为0、1、……、n。其中,n为大于1的正整数。当FlowSegID=0时,该数据流段标识对应的WQE为WQE1和WQE2。当FlowSegID=1时,该数据流段标识对应的WQE为WQE3、WQE4和WQE5。当FlowSegID=n时,该数据流段标识对应的WQE为WQEm-1和WQEm。其中,m为大于1的整数。
在本发明的实施例中,发送端110除了为每个报文分配数据段流标识,还会计算每个报文相对于自身所属消息在该报文所属数据流段中的首报文的地址偏移信息。在计算地址偏移信息之前,需要确定报文所属消息在该报文所属数据流段中的首报文。
通过上述描述可知,通过利用为报文分配的数据流段标识以及最近一个已发送报文的数据流段标识,可以确定该报文所属消息在该报文所属数据流段中的首报文。
步骤C,基于报文所属消息在该报文所属数据流段中的首报文的消息序列标识、该报文的消息序列标识和预设的最大传输单元MTU值,计算该报文相对于自身所属消息在报文所属数据流段中的首报文的地址偏移信息。
作为一个示例,报文序列标识为报文序列号(Packet Sequence Number,PSN)。发送端110在发送待发送数据流时,会按照顺序为每个报文分配报文序列号,并且报文序列号是连续的。
通过报文的消息序列号与该报文所属消息在该报文所属数据流段中的首报文的消息序列号之间的差值,乘以MTU值,则得到该报文相对于自身所属消息在该报文所属数据流段中的首报文的地址偏移信息。
步骤D,利用为报文分配的数据流段标识和地址偏移信息生成报文头。
在本发明的实施例中,对于每个待发送报文,需要为该报文封装报文头。其中,对于某一个报文的报文头,该报文头包括为该报文分配的数据流段标识以及该报文相对于自身所属消息在该报文所属数据流段中的首报文的地址偏移信息。
在一些实施例中,报文头中还包括FlowSeg的开始标识信息和结束标识信息。作为一个示例,第1个消息中的第1个报文为FlowSegID为0的数据流段的首报文,则在该第1个报文的报文头中设置开始标识信息。若第1个消息中的第10个报文为FlowSegID为0的数据流段的最后一个报文,即FlowSegID为0的数据流段包括第1个消息中的前10个报文,则在第10个报文的报文头中设置结束标识信息。
步骤F,发送封装有报文头的报文。
作为一个示例,消息序列标识为消息序列号(Message Sequence Number,MSN)。发送端110在发送待发送数据流时,会按照顺序为每个消息分配消息序列号,并且消息序列号是连续的。
因此,在一些实施例中,每个报文的报文头中可以携带该报文所属数据流段的数据流段标识、该报文相对于自身所属消息在自身所属数据流段中的首报文的地址偏移信息offset、该报文的PSN以及该报文所属消息的MSN等信息。在FlowSeg的首报文的报文头中还包括FlowSeg的开始标识信息。在FlowSeg的最后一个报文的报文头中还包括FlowSeg的结束标识信息等信息。
接收端120若从待发送数据流包括的消息中检测到出错报文,则生成报错消息,并发送报错消息至发送端110。报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识。
发送端110接收报错消息,并基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在该数据流段中对应的工作项WQE之间的关联关系,确定在目标数据流段中目标消息对应的目标WQE。其中,目标WQE包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文。
发送端110按照目标首报文的起始存储地址,得到出错报文的起始存储地址,然后从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
在本发明的实施例中,在进行数据重传时,从出错报文的起始存储地址处重传与出错报文具有相同数据流段标识的报文,而不是重传出错报文之后的所有报文。也就是说,重传仅限于出错报文所属数据流段,不用对大量已经接收的报文进行重传,提高了数据重传的效率。并且,在数据重传时,不用浪费大量的硬件资源只重传丢失的报文,因此可以在降低硬件成本的基础上提高重传效率。
接收端120接收发送端110发送的封装有报文头的报文。接收端120对每个FlowSeg中的报文记录PSN。对于某一报文,若该报文的PSN相对于前一个已经接收的报文的PSN码而言没有乱序,则接收端120确认正确接收该报文。
在接收端120确认接收到待发送数据流中的任一报文的情况下,则生成针对该报文的确认(Acknowledgement,ACK)消息,并发送该ACK消息至发送端110。其中,ACK消息需要携带报文的报文头,即ACK消息包括报文相对于自身所属消息在报文所属数据流段中的首报文的地址偏移信息、报文所属数据流段的数据流段标识、报文的报文序列标识和报文所属消息的消息序列标识。
参见图3,每个FlowSegIDi均具有对应的地址偏移信息Δi、报文序列标识bi和消息序列标识ai。其中,i为大于等于0小于等于n的整数。其中,对于每个FlowSegID,该FlowSegID对应的初始地址偏移信息、初始报文序列标识和初始消息序列标识分别为0、该FlowSegID中对应的第一个WQE中的首报文的报文序列标识、该FlowSegID中第一个WQE所对应消息的消息序列标识。
当发送端110接收到被接收报文的ACK消息后,利用该ACK消息中的内容,确定该被接收报文所属第一数据流段的第一数据流段标识。然后,将第一数据流段标识对应的地址偏移信息、报文序列标识和消息序列标识分别更新为被接收报文相对于自身所属消息在第一数据流段中的首报文的地址偏移信息、被接收报文的报文序列标识和被接收报文所属消息的消息序列标识。
在本发明的实施例中,通过利用最新接收的ACK消息的内容去更新该ACK消息中包括的FlowSegID所对应的地址偏移信息、报文序列标识和消息序列标识,方便直接定位最新确认接收的报文的位置。
若接收的ACK消息对应的报文为该报文所属消息在该报文所属数据流段中的最后一个报文,则从关联关系中移除在报文所属数据流段中报文所属消息对应的WQE。
具体地,发送端110可以根据FlowSegID对应的WQE中存储的首报文的起始存储地址和消息长度信息,判断当前接收的ACK消息对应的报文是否为该报文所属消息在该报文所属数据流段中的最后一个报文。
作为一个示例,对于第一个FlowSegID,该FlowSegID对应两个WQE,若当前接收的ACK消息中被确认的报文是第一个WQE所对应的消息在第一个数据流段中最后一个报文,则从关联关系中移除第一个WQE。
若当前接收的ACK消息中被确认的报文是第一个数据流段的最后一个报文,则从关联关系中移除第一个数据流段的FlowSegID对应的所有WQE。
其中,接收端120可以根据报文头中的FlowSeg的结束标识信息,确定所接收的报文是否为数据流段的最后一个报文。若接收端120确定所接收的报文为一个数据流段的最后一个报文,则释放为该数据流段记录的PSN资源。
相类似的,发送端110也可以根据ACK消息中携带的报文头信息确认接收的报文是否为数据流段的最后一个报文。若发送端110确认数据流段的最后一个报文被正确接收,则移除该数据流段的FlowSegID所对应的所有WQE。
若接收端120检测出PSN乱序,则认为出现出错报文。作为一个示例,接收端120在接收FlowSegID为0的报文时,若当前接收的报文的序列号为18,接收的前一个报文序列号为16,则认为出现丢包,即第PSN为17的报文出现丢包,即PSN为17的报文为出错报文。
在从待发送数据流包括的消息中检测到出错报文的情况下,生成报错消息,并发送报错消息至发送端110。
其中,报错消息中包括出错报文的PSN、出错报文所属的目标消息的目标消息序列标识以及出错报文所属的目标数据流段的目标数据流段标识。
需要说明的是,若仅采用发送数据量进行数据流段的划分,则目标数据流段标识可以根据出错报文之前被接收的最近一个报文的报文头信息计算出来。若出错报文之前被接收的最近一个报文头的报文头中没有携带Flowseg的结束标识信息,则代表出错报文的FlowSegID与被接收的最近一个报文的FlowSegID相同。若出错报文之前被接收的最近一个报文头的报文头中携带了Flowseg的结束标识信息,则代表出错报文的FlowSegID为被接收的最近一个报文的FlowSegID加1。
需要说明的是,若进行数据流段划分时,若使用了两个连续报文之间的发送时间间隔信息,则有可能无法在Flowseg中的最后一个报文的报文头中设置该Flowseg的结束标识信息。因此报错消息中可以包括出错报文之前被接收的最近一个报文所属数据流段的第二数据流段标识以及与第二数据流段标识相邻的下一个数据流段标识。
若出错报文之前被接收的最近一个报文是该报文所属Flowseg的最后一个报文,则出错报文之前被接收的最近一个报文和出错报文不属于同一个Flowseg。根据上述描述,若发送端110确认FlowSeg的最后一个报文被正确接收,则移除该FlowSeg的FlowSegID对应的所有WQE。因此,若假设出错报文的数据流段标识为出错报文之前被接收的最近一个报文所属数据流段的第二数据流段标识,则无法在关联关系中查询到与第二数据流段标识对应的WQE。则可以将与第二数据流段标识相邻的下一个数据流段标识作为出错报文的目标数据流段标识。
若出错报文之前被接收的最近一个报文不是该报文所属Flowseg的最后一个报文,则出错报文之前被接收的最近一个报文和出错报文属于同一个Flowseg。则可以从关联关系中查询到与第二数据流段标识对应的WQE,则将第二数据流段标识作为目标数据流段标识。
需要说明的是,在从关联关系中查询WQE时,先利用第二数据流段标识进行查询,若在关联关系中能够查询到第二数据流段标识对应的WQE,则目标数据流段标识为第二数据流段标识。若查询不到第二数据流段标识对应的WQE,则将与第二数据流段标识相邻的下一个数据流段标识作为出错报文的目标数据流段标识。
当检测出出错报文之后,接收端120对下一个FlowSeg记录新的PSN,并基于新记录的PSN继续判断是否出现属于下一个FlowSeg的出错报文。
在本发明的实施例中,当发送端110接收到报错消息后,基于目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在该数据流段对应的工作项WQE之间的关联关系,可以得到目标数据流段标识对应的每个WQE。然后基于目标消息序列标识,可以确定在目标数据流段中目标消息对应的目标WQE。
然后,发送端110判断目标消息序列标识是否与目标数据流段标识对应的消息序列标识是否相同,得到第三判断结果。其中,目标数据流段标识对应的消息序列标识为在出错报文之前被接收的最近一个报文所属消息的消息序列标识。
若第三判断结果为是,则代表出错报文和在出错报文之前被接收的最近一个报文属于同一个消息,则基于目标数据流段标识对应的地址偏移信息以及预先设置的MTU值,可以计算出错报文相对于目标首报文的地址偏移信息。
具体地,目标数据流段标识对应的地址偏移信息加上MTU值,即为出错报文相对于目标首报文的地址偏移信息。
然后,根据出错报文相对于目标首报文的地址偏移信息以及目标首报文的起始存储地址,定位出出错报文的起始存储地址。
当第三判断结果为否时,则代表出错报文和在出错报文之前被接收的最近一个报文不属于同一个消息,即出错报文是位于下一个消息中。也就是说出错报文是目标消息中的首报文,则将目标首报文的起始存储地址作为出错报文的起始存储地址。
当定位出出错报文的起始存储地址时,则标记系统为重传状态,将整个数据处理系统的MSN和PSN初始化为出错报文的MSN和PSN,从出错报文的起始存储地址处开始重传目标数据流段中的报文。
在本发明的实施例中,通过将重传报文仅限在一个数据流段中,不仅降低了硬件的开销,而且还提高了重传效率。
基于上述过程,本发明实施例提供的应用于发送端110的数据处理方法,可以归纳为如图4示出的步骤。图4示出根据本发明实施例提供的应用于发送端110的数据处理方法400的流程示意图。如图4所示,本发明实施例中的数据处理方法包括以下步骤:
S410,接收报错消息,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识。
S420,基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在数据流段中对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项;其中,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文。
S430,按照目标首报文的起始存储地址,得到出错报文的起始存储地址。
S440,从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
可选地,在本发明的一些实施例中,数据处理方法400还包括:
S450,接收针对被接收报文的确认ACK消息,ACK消息包括被接收报文相对于自身所属消息在被接收报文所属第一数据流段中的首报文的地址偏移信息、第一数据流段的第一数据流段标识、被接收报文的报文序列标识和被接收报文所属消息的消息序列标识。
S460,将第一数据流段标识所对应的地址偏移信息、报文序列标识和消息序列标识分别更新为被接收报文相对于自身所属消息在第一数据流段中的首报文的地址偏移信息、被接收报文的报文序列标识和被接收报文所属消息的消息序列标识。
在本发明的实施例中,S430包括以下步骤:
判断目标消息序列标识是否与目标数据流段标识对应的消息序列标识是否相同,得到第三判断结果;
当第三判断结果为是时,则基于目标数据流段标识对应的地址偏移信息以及预先设置的MTU值,计算出错报文相对于目标首报文的地址偏移信息;
根据出错报文相对于目标首报文的地址偏移信息以及目标首报文的起始存储地址,定位出出错报文的起始存储地址;
当第三判断结果为否时,则将目标首报文的起始存储地址作为出错报文的起始存储地址。
在本发明的实施例中,数据处理方法还包括:
若接收的ACK消息对应的报文为该报文所属消息在报文所属数据流段中的最后一个报文,则从关联关系中移除在报文所属数据流段中报文所属消息对应的WQE。
在本发明的实施例中,报错消息包括在出错报文之前被接收的最近一个报文所属数据流段的第二数据流段标识以及与第二数据流段标识相邻的下一个数据流段标识。
在关联关系中能够查询到第二数据流段标识对应的WQE的情况下,目标数据流段标识为第二数据流段标识。
在关联关系中无法查询到第二数据流段标识对应的WQE的情况下,目标数据流段标识为第二数据流段标识相邻的下一个数据流段标识。
在本发明的实施例中,目标WQE还包括目标数据流段中的所有报文的总长度。
基于上述过程,本发明实施例提供的应用于接收端120的数据处理方法,可以归纳为如图5示出的步骤。图5示出根据本发明实施例提供的应用于接收端120的数据处理方法500的流程示意图。如图5所示,本发明实施例中的数据处理方法包括以下步骤:
S510,在从待发送数据流包括的消息中检测到出错报文的情况下,生成报错消息;
S520,发送报错消息至发送端110,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识,以使发送端110:
基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在数据流段中对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;按照目标首报文的起始存储地址,得到出错报文的起始存储地址;从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
在本发明的实施例中,数据处理方法500还包括:
在确认接收到待发送数据流中的任一报文的情况下,生成针对报文的确认消息,并发送确认消息至发送端110,确认消息包括报文相对于自身所属消息在报文所属第一数据流段中的首报文的地址偏移信息、第一数据流段的数据流段标识、报文的报文序列标识和报文所属消息的消息序列标识。
在本发明的实施例中,报错消息包括在出错报文之前被接收的最近一个报文所属数据流段的第二数据流段标识以及与第二数据流段标识相邻的下一个数据流段标识。
在本发明的实施例中,在进行数据重传时,从出错报文的起始存储地址处重传与出错报文具有相同数据流段标识的报文,重传仅限于出错报文所属数据流段,不用对大量已经接收的报文进行重传,提高了数据重传的效率。并且,在数据重传时,不用浪费大量的硬件资源只重传丢失的报文,因此可以在降低硬件成本的基础上提高重传效率。
图6示出本发明一实施例提供的数据处理装置600的结构示意图。如图6所示,本发明实施例提供的数据处理装置600包括:
报错消息接收模块610,用于接收报错消息,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识。
目标工作项确定模块620,用于基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息对应的工作项之间的关联关系,确定在目标数据流段中目标消息对应的目标工作项;其中,目标工作项包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文。
出错报文地址确定模块630,用于按照目标首报文的起始存储地址,得到出错报文的起始存储地址。
重传模块640,用于从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
在本发明的实施例中,数据处理装置还包括:
确认消息接收模块,用于接收针对被接收报文的确认消息,确认消息包括被接收报文相对于自身所属消息在被接收报文所属第一数据流段中的首报文的地址偏移信息、第一数据流段的第一数据流段标识、被接收报文的报文序列标识和被接收报文所属消息的消息序列标识。
更新模块,用于将第一数据流段标识所对应的地址偏移信息、报文序列标识和消息序列标识分别更新为被接收报文相对于自身所属消息在第一数据流段中的首报文的地址偏移信息、被接收报文的报文序列标识和被接收报文所属消息的消息序列标识。
在本发明的实施例中,出错报文地址确定模块630具体用于:
判断目标消息序列标识是否与目标数据流段标识对应的消息序列标识是否相同,得到第三判断结果;
当第三判断结果为是时,则基于目标数据流段标识对应的地址偏移信息以及预先设置的最大传输单元值,计算出错报文相对于目标首报文的地址偏移信息;
根据出错报文相对于目标首报文的地址偏移信息以及目标首报文的起始存储地址,定位出出错报文的起始存储地址;
当第三判断结果为否时,则将目标首报文的起始存储地址作为出错报文的起始存储地址。
在本发明的实施例中,数据处理装置还包括移除装置,该移除装置用于:
若接收的确认消息对应的报文为该报文所属消息在报文所属数据流段中的最后一个报文,则从关联关系中移除在报文所属数据流段中报文所属消息对应的工作项。
根据本发明实施例的数据处理装置600的其他细节与以上结合图4描述的根据本发明实施例的方法类似,在此不再赘述。
图7示出本发明一实施例提供的数据切分装置700的结构示意图。如图7所示,本发明实施例提供的数据切分装置700包括:
切分模块710,用于在发送待发送数据流的过程中,基于预设的数据切分条件,将所述待发送数据流切分成多个数据流段;其中,每个所述数据流段具有各自对应的数据流段标识;所述待发送数据流包括至少一个消息,所述消息包括至少一个报文。
第一工作项确定模块720,用于对于每个所述数据流段,基于所述数据流段包括的报文以及获取的每个所述消息的原始工作项,确定所述数据流段包括的每个消息在所述数据流段中对应的工作项。
存储模块730,用于对于每个所述数据流段标识,存储所述数据流段标识与所述数据流段标识对应的数据流段包括的每个消息在所述数据流段中对应的工作项之间的关联关系。
在本发明的实施例中,通过预先将待发送数据流拆分成多个数据流段,以实现在接收到报错消息时,可以从出错报文的起始存储地址处重传与出错报文具有相同数据流段标识的报文,而不是重传出错报文之后的所有报文,以提高数据重传的效率。
在本发明的实施例中,切分模块710包括:
标识分配单元,用于为报文分配数据流段标识。
首报文确定单元,用于基于为报文分配的数据流段标识和最近一个已发送报文的数据流段标识,确定报文所属消息在报文所属数据流段中的首报文。
地址偏移信息计算单元,用于基于报文所属消息在报文所属数据流段中的首报文的报文序列标识、报文的报文序列标识和预设的最大传输单元MTU值,计算报文相对于自身所属消息在报文所属数据流段中的首报文的地址偏移信息。
报文头生成单元,用于利用为报文分配的数据流段标识和地址偏移信息生成报文头。
报文发送单元,用于发送封装有报文头的报文。
在本发明的一些实施例中,标识分配单元用于:
获取报文的报文长度;
判断第一和值与报文的报文长度之间的第二和值是否大于等于预设长度阈值,得到第一判断结果,和,判断当前时间与最近一个已发送报文的发送时间之间的时长是否大于等于预设时长,得到第二判断结果;第一和值为与最近一个已发送报文具有相同数据流段标识的、且已发送的所有报文的报文长度之和;
当第一判断结果和第二判断结果中至少一个为是时,为报文分配与最近一个已发送报文的数据流段标识不同的数据流段标识;
当第一判断结果和第二判断结果均为否时,为报文分配与最近一个已发送报文的数据流段标识相同的数据流段标识。
在本发明的另一些实施例中,标识分配单元用于:
获取报文的报文长度;
判断第一和值与报文的报文长度之间的第二和值是否大于等于预设长度阈值,得到第一判断结果,或,判断当前时间与最近一个已发送报文的发送时间之间的时长是否大于等于预设时长,得到第二判断结果;第一和值为与最近一个已发送报文具有相同数据流段标识的、且已发送的所有报文的报文长度之和;
当第一判断结果或第二判断结果为是时,为报文分配与最近一个已发送报文的数据流段标识不同的数据流段标识;
当第一判断结果或第二判断结果为否时,为报文分配与最近一个已发送报文的数据流段标识相同的数据流段标识。
在本发明的实施例中,在报文的数据流段标识与最近一个已发送报文的数据流段标识相同的情况下,报文所属消息在报文所属数据流段中的首报文为在报文所属消息中第一个被分配数据流段标识的报文。
在报文的数据流段标识与最近一个已发送报文的数据流段标识不相同的情况下,则报文所属消息在报文所属数据流段中的首报文为该报文。根据本发明实施例的数据切分装置700的其他细节与以上结合图2描述的根据本发明实施例的数据切分方法类似,在此不再赘述。
图8示出本发明一实施例提供的数据处理装置800的结构示意图。如图8所示,本发明实施例提供的数据处理装置800包括:
报错消息生成模块810,用于在从待发送数据流包括的消息中检测到出错报文的情况下,生成报错消息。
报错消息发送模块820,用于发送报错消息至发送端110,报错消息包括出错报文所属的目标数据流段的目标数据流段标识和出错报文所属的目标消息的目标消息序列标识,以使发送端110:
基于目标消息序列标识、目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息对应的工作项WQE之间的关联关系,确定在目标数据流段中目标消息对应的目标WQE,目标WQE包括目标首报文的起始存储地址,目标首报文为目标消息在目标数据流段中的首报文;按照目标首报文的起始存储地址,得到出错报文的起始存储地址;从出错报文的起始存储地址处重传数据流段标识为目标数据流段标识的报文。
在本发明的实施例中,数据处理装置800还包括ACK消息处理模块,用于:
在确认接收到待发送数据流中的任一报文的情况下,生成针对报文的ACK消息,并发送ACK消息至发送端110,ACK消息包括报文相对于自身所属消息在报文所属第一数据流段中的首报文的地址偏移信息、第一数据流段的数据流段标识、报文的报文序列标识和报文所属消息的消息序列标识。
根据本发明实施例的数据处理装置800的其他细节与以上结合图5描述的根据本发明实施例的方法类似,在此不再赘述。
在本发明的实施例中,在进行数据重传时,重传仅限于出错报文所属数据流段,不用浪费大量的硬件资源只重传丢失的报文,因此可以在降低硬件成本的基础上提高重传效率。
结合图2至图8描述的根据本发明实施例的数据处理方法、数据切分方法、数据处理装置和数据切分装置可以由计算设备来实现。图9示出根据发明实施例的计算设备的硬件结构900示意图。
如图9所示,计算设备900包括输入设备901、输入接口902、中央处理器903、存储器904、输出接口905、以及输出设备906。其中,输入接口902、中央处理器903、存储器904、以及输出接口905通过总线910相互连接,输入设备901和输出设备906分别通过输入接口902和输出接口905与总线910连接,进而与计算设备900的其他组件连接。
具体地,输入设备901接收来自外部的输入信息,并通过输入接口902将输入信息传送到中央处理器903;中央处理器903基于存储器904中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器904中,然后通过输出接口905将输出信息传送到输出设备906;输出设备906将输出信息输出到计算设备900的外部供用户使用。
也就是说,图9所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图2至图5描述的数据处理方法或数据切分方法。
本发明实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的数据处理方法或数据切分方法。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不仅限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不仅限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
在发送待发送数据流的过程中,基于预设的数据切分条件,将所述待发送数据流切分成多个数据流段;其中,每个所述数据流段具有各自对应的数据流段标识;所述待发送数据流包括至少一个消息,所述消息包括至少一个报文;
对于每个所述数据流段,基于所述数据流段包括的报文以及获取的每个所述消息的原始工作项,确定所述数据流段包括的每个消息在所述数据流段中对应的工作项;
对于每个所述数据流段标识,存储所述数据流段标识与所述数据流段标识对应的数据流段包括的每个消息在所述数据流段中对应的工作项之间的关联关系;
接收报错消息,所述报错消息包括出错报文所属的目标数据流段的目标数据流段标识和所述出错报文所属的目标消息的目标消息序列标识,所述数据流段包括所述目标数据流段;
基于所述目标消息序列标识、所述目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在所述数据流段中对应的工作项之间的关联关系,确定在所述目标数据流段中所述目标消息对应的目标工作项;其中,所述目标工作项包括目标首报文的起始存储地址,所述目标首报文为所述目标消息在所述目标数据流段中的首报文;
按照所述目标首报文的起始存储地址,得到所述出错报文的起始存储地址;
从所述出错报文的起始存储地址处重传数据流段标识为所述目标数据流段标识的报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对被接收报文的确认消息,所述确认消息包括所述被接收报文相对于自身所属消息在所述被接收报文所属第一数据流段中的首报文的地址偏移信息、所述第一数据流段的第一数据流段标识、所述被接收报文的报文序列标识和所述被接收报文所属消息的消息序列标识;
将所述第一数据流段标识所对应的地址偏移信息、报文序列标识和消息序列标识分别更新为所述被接收报文相对于自身所属消息在所述第一数据流段中的首报文的地址偏移信息、所述被接收报文的报文序列标识和所述被接收报文所属消息的消息序列标识。
3.根据权利要求2所述的方法,其特征在于,所述按照所述目标首报文的起始存储地址,得到所述出错报文的起始存储地址,包括:
判断所述目标消息序列标识是否与所述目标数据流段标识对应的消息序列标识是否相同,得到第三判断结果;
当所述第三判断结果为是时,则基于所述目标数据流段标识对应的地址偏移信息以及预先设置的最大传输单元值,计算所述出错报文相对于所述目标首报文的地址偏移信息;
根据所述出错报文相对于所述目标首报文的地址偏移信息以及所述目标首报文的起始存储地址,定位出所述出错报文的起始存储地址;
当所述第三判断结果为否时,则将所述目标首报文的起始存储地址作为所述出错报文的起始存储地址。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若接收的确认消息对应的报文为该报文所属消息在所述报文所属数据流段中的最后一个报文,则从所述关联关系中移除在所述报文所属数据流段中所述报文所属消息在所述报文所属数据流段中对应的工作项。
5.根据权利要求1所述的方法,其特征在于,所述报错消息包括在所述出错报文之前被接收的最近一个报文所属数据流段的第二数据流段标识以及与所述第二数据流段标识相邻的下一个数据流段标识;其中,所述出错报文与所述在所述出错报文之前被接收的最近一个报文属于同一个报文;
在所述关联关系中能够查询到所述第二数据流段标识对应的工作项的情况下,所述目标数据流段标识为所述第二数据流段标识;
在所述关联关系中无法查询到所述第二数据流段标识对应的工作项的情况下,所述目标数据流段标识为所述第二数据流段标识相邻的下一个数据流段标识。
6.根据权利要求1所述的方法,其特征在于,所述目标工作项还包括所述目标数据流段中所有报文的总长度。
7.根据权利要求1所述的方法,所述在发送待发送数据流的过程中,基于预设的数据切分条件,将所述待发送数据流切分成多个数据流段,包括:
对于待发送数据流中的每个报文,执行以下步骤:
基于预设的数据切分条件,为所述报文分配数据流段标识;
基于为所述报文分配的数据流段标识和最近一个已发送报文的数据流段标识,确定所述报文所属消息在所述报文所属数据流段中的首报文;
基于所述报文所属消息在所述报文所属数据流段中的首报文的报文序列标识和所述报文的报文序列标识,计算所述报文相对于自身所属消息在所述报文所属数据流段中的首报文的地址偏移信息;
利用为所述报文分配的数据流段标识和所述地址偏移信息生成报文头;
发送封装有所述报文头的报文;
将具有相同数据流段标识的报文作为一个数据流段。
8.根据权利要求7所述的方法,其特征在于,所述基于预设的数据切分条件,为所述报文分配数据流段标识,包括:
获取所述报文的报文长度;
判断第一和值与所述报文的报文长度之间的第二和值是否大于等于预设长度阈值,得到第一判断结果,和,判断当前时间与最近一个已发送报文的发送时间之间的时长是否大于等于预设时长,得到第二判断结果;所述第一和值为与所述最近一个已发送报文具有相同数据流段标识的、且已发送的所有报文的报文长度之和;
当所述第一判断结果和所述第二判断结果中至少一个为是时,为所述报文分配与所述最近一个已发送报文的数据流段标识不同的数据流段标识;
当所述第一判断结果和所述第二判断结果均为否时,为所述报文分配与所述最近一个已发送报文的数据流段标识相同的数据流段标识。
9.根据权利要求7所述的方法,其特征在于,所述为所述报文分配数据流段标识,包括:
获取所述报文的报文长度;
判断第一和值与所述报文的报文长度之间的第二和值是否大于等于预设长度阈值,得到第一判断结果,或,判断当前时间与最近一个已发送报文的发送时间之间的时长是否大于等于预设时长,得到第二判断结果;所述第一和值为与所述最近一个已发送报文具有相同数据流段标识的、且已发送的所有报文的报文长度之和;
当所述第一判断结果或所述第二判断结果为是时,为所述报文分配与所述最近一个已发送报文的数据流段标识不同的数据流段标识;
当所述第一判断结果或所述第二判断结果为否时,为所述报文分配与所述最近一个已发送报文的数据流段标识相同的数据流段标识。
10.根据权利要求7所述的方法,其特征在于,在所述报文的数据流段标识与所述最近一个已发送报文的数据流段标识相同的情况下,所述报文所属消息在所述报文所属数据流段中的首报文为在所述报文所属消息中第一个被分配所述数据流段标识的报文;
在所述报文的数据流段标识与所述最近一个已发送报文的数据流段标识不相同的情况下,则所述报文所属消息在所述报文所属数据流段中的首报文为该报文。
11.一种数据处理装置,其特征在于,所述装置包括:
切分模块,用于在发送待发送数据流的过程中,基于预设的数据切分条件,将所述待发送数据流切分成多个数据流段;其中,每个所述数据流段具有各自对应的数据流段标识;所述待发送数据流包括至少一个消息,所述消息包括至少一个报文;
第一工作项确定模块,用于对于每个所述数据流段,基于所述数据流段包括的报文以及获取的每个所述消息的原始工作项,确定所述数据流段包括的每个消息在所述数据流段中对应的工作项;
存储模块,用于对于每个所述数据流段标识,存储所述数据流段标识与所述数据流段标识对应的数据流段包括的每个消息在所述数据流段中对应的工作项之间的关联关系;
报错消息接收模块,用于接收报错消息,所述报错消息包括出错报文所属的目标数据流段的目标数据流段标识和所述出错报文所属的目标消息的目标消息序列标识,所述数据流段包括所述目标数据流段;
目标工作项确定模块,用于基于所述目标消息序列标识、所述目标数据流段标识以及数据流段标识及其对应的数据流段中包括的每个消息在所述数据流段中对应的工作项之间的关联关系,确定在所述目标数据流段中所述目标消息对应的目标工作项;其中,所述目标工作项包括目标首报文的起始存储地址,所述目标首报文为所述目标消息在所述目标数据流段中的首报文;
出错报文地址确定模块,用于按照所述目标首报文的起始存储地址,得到所述出错报文的起始存储地址;
重传模块,用于从所述出错报文的起始存储地址处重传数据流段标识为所述目标数据流段标识的报文。
12.一种计算设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-10任意一项所述的方法。
13.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911367064.4A CN113055131B (zh) | 2019-12-26 | 2019-12-26 | 数据处理方法、数据切分方法、计算设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911367064.4A CN113055131B (zh) | 2019-12-26 | 2019-12-26 | 数据处理方法、数据切分方法、计算设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055131A CN113055131A (zh) | 2021-06-29 |
CN113055131B true CN113055131B (zh) | 2023-06-30 |
Family
ID=76505513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911367064.4A Active CN113055131B (zh) | 2019-12-26 | 2019-12-26 | 数据处理方法、数据切分方法、计算设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055131B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553431A (zh) * | 2022-01-27 | 2022-05-27 | 北京信息科技大学 | 一种具有记忆功能的通信方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065465A (zh) * | 2014-06-06 | 2014-09-24 | 华为技术有限公司 | 一种报文重传的方法、请求端、响应端以及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647807B (zh) * | 2013-11-27 | 2017-12-15 | 华为技术有限公司 | 一种信息缓存方法、装置和通信设备 |
-
2019
- 2019-12-26 CN CN201911367064.4A patent/CN113055131B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065465A (zh) * | 2014-06-06 | 2014-09-24 | 华为技术有限公司 | 一种报文重传的方法、请求端、响应端以及系统 |
Non-Patent Citations (1)
Title |
---|
Revisiting Network Support for RDMA;Radhika Mittal等;《SIGCOMM 2018》;20180621;正文第5章 * |
Also Published As
Publication number | Publication date |
---|---|
CN113055131A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110233881B (zh) | 业务请求处理方法、装置、设备及存储介质 | |
US8397119B2 (en) | Apparatus and method for generating automatic repeat request (ARQ) feedback message in wireless communication system | |
CN104518853B (zh) | 一种数据重传的方法、接收端及系统 | |
EP2978171B1 (en) | Communication method, communication device, and communication program | |
CN110831010B (zh) | 一种多通道数据发送及接收方法及装置和数据传输系统 | |
CN109525376B (zh) | 快速重传方法、装置及终端设备 | |
CN109716699B (zh) | 用于混合自动重复请求过程的方法、网络设备和终端设备 | |
CN113259391A (zh) | 应用于多级节点网络的数据传输方法和装置 | |
CN113055131B (zh) | 数据处理方法、数据切分方法、计算设备和介质 | |
CN111769915B (zh) | 数据传输方法及相关设备 | |
CN102957628A (zh) | 报文聚合方法、装置和接入设备 | |
JPWO2015174069A1 (ja) | 通信システム、受信側装置、送信側装置、および、通信方法 | |
CN111866202B (zh) | 报文发送方法、装置、电子设备和存储介质 | |
CN109560897B (zh) | 一种tcp重传方法和装置 | |
CN104717257A (zh) | 传输数据报文的方法及装置 | |
EP3240327B1 (en) | Resource allocation method and device and information feedback method and device | |
CN113259490B (zh) | 基于udp传输协议的多级节点网络数据传输方法 | |
CN109905209B (zh) | 一种设置网络乱序值的方法和装置 | |
Georgiadis et al. | Stability and capacity through evacuation times | |
CN112351049B (zh) | 数据传输方法、装置、设备及存储介质 | |
EP3496489A1 (en) | Communication method, terminal and network device | |
CN111405609B (zh) | 一种数据传输方法、装置、系统、介质和设备 | |
CN111225019B (zh) | 会话控制处理方法、装置、设备及介质 | |
CN113972976A (zh) | 基于无线通信系统的水文监测数据收集方法及装置 | |
JP2009273094A (ja) | データ通信システム、データ通信端末、データ通信方法、およびプログラム |
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 |