一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法及装置与流程

2022-03-05 04:18:18 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种数据处理方法及装置。


背景技术:

2.云技术结合云端虚拟化技术和流媒体编码传输技术,利用越来越完善的云基建和移动通讯网络,将原来只有高配置/高资源主机才可能体验的游戏变得更加触手可及。
3.云游戏的过程中,用户在手机上对游戏进行操作(如点击屏幕或者滑动屏幕等),云游戏操作指令需要被快速准确的传递到云端,以便快速的对游戏画面进行响应。
4.为了更好的游戏体验,云游戏操作指令的端到端延时必须控制在短时间内,例如100ms等,才能保证游戏的流畅性。
5.其中,云游戏操作指令中包括多个数据包,数据包之间的具有预设发送顺序,也即,手机是按照预设发送顺序依次间隔地向云端发送云游戏操作指令中的各个数据包的。相应的,云端也是依次接收到各个数据包,并按照预设发送顺序适配的消费顺序依次消费各个数据包,从而完成对云游戏操作指令的响应。
6.然而,有时候多个数据包中的部分数据包在传输过程中会丢失,导致云端无法接收到该部分数据包,这样即使接收到在预设发送顺序上位于该部分数据包之后的数据包,也可以不消费在预设发送顺序上位于该部分数据包之后的数据包,而可以一直等待该部分数据包,直至接收到该部分数据包,再消费该部分数据包,然后再消费该在预设发送顺序上位于该部分数据包之后的数据包。
7.但是,在等待该部分数据包的过程中,该部分数据包以及在预设发送顺序上位于该部分数据包之后的数据包的延时可能会均超时,例如均超过100ms,导致该指令无法被及时响应,影响游戏的流畅性。


技术实现要素:

8.为解决上述技术问题,本技术示出了一种数据处理方法及装置。
9.第一方面,本技术示出了一种数据处理方法,应用于接收端,所述方法包括:在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定所述接收端是否已接收到第二数据包;所述第一数据包包括:所述多个数据包中的其中一个数据包,所述第二数据包包括:所述多个数据包中的在所述预设发送顺序上位于所述第一数据包之前的数据包;所述多个数据包被消费的消费顺序与所述预设发送顺序匹配;在未接收到所述第二数据包的情况下,确定所述第二数据包是否已过期;在所述第二数据包已过期的情况下,获取所述第二数据包的消费重要等级;在所述第二数据包的消费重要等级为预设消费重要等级的情况下,消费所述第一数据包。
10.第二方面,本技术示出了一种数据处理方法,应用于发送端,所述方法包括:在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于所述多个数据包中的每一个数据包,在所述数据包中的特定字段中至少设置用于指示在所
述预设发送顺序上的位于所述数据包之前的数据包的消费重要等级的标识;以及,在所述数据包中的预设字段中设置时间间隔;其中,所述时间间隔包括:发送所述数据包时的发送时刻与发送在所述预设发送顺序上与所述数据包相邻且与位于所述数据包之前的数据包时的发送时刻之间的时间间隔;按照所述预设发送顺序以及在各个数据包中设置的时间间隔,向接收端连续间隔地发送所述多个数据包中的各个数据包。
11.第三方面,本技术示出了一种数据处理方法,应用于发送端,所述方法包括:在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于所述多个数据包中的每一个数据包,获取所述数据包的消费重要等级;获取所述数据包的消费重要等级对应的有效生存时长;其中,越高的消费重要等级对应的有效生存时长大于越低的消费重要等级对应的有效生存时长;若还未向接收端发送过所述消费重要等级对应的有效生存时长,则向接收端发送所述消费重要等级与所述消费重要等级对应的有效生存时长。
12.第四方面,本技术示出了一种数据处理装置,应用于接收端,所述装置包括:第一确定模块,用于在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定所述接收端是否已接收到第二数据包;所述第一数据包包括:所述多个数据包中的其中一个数据包,所述第二数据包包括:所述多个数据包中的在所述预设发送顺序上位于所述第一数据包之前的数据包;所述多个数据包被消费的消费顺序与所述预设发送顺序匹配;第二确定模块,用于在未接收到所述第二数据包的情况下,确定所述第二数据包是否已过期;第一获取模块,用于在所述第二数据包已过期的情况下,获取所述第二数据包的消费重要等级;第一消费模块,用于在所述第二数据包的消费重要等级为预设消费重要等级的情况下,消费所述第一数据包。
13.第五方面,本技术示出了一种数据处理装置,应用于发送端,所述装置包括:设置模块,用于在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于所述多个数据包中的每一个数据包,在所述数据包中的特定字段中至少设置用于指示在所述预设发送顺序上的位于所述数据包之前的数据包的消费重要等级的标识;以及,在所述数据包中的预设字段中设置时间间隔;其中,所述时间间隔包括:发送所述数据包时的发送时刻与发送在所述预设发送顺序上与所述数据包相邻且与位于所述数据包之前的数据包时的发送时刻之间的时间间隔;第一发送模块,用于按照所述预设发送顺序以及在各个数据包中设置的时间间隔,向接收端连续间隔地发送所述多个数据包中的各个数据包。
14.第六方面,本技术示出了一种数据处理装置,应用于发送端,所述装置包括:消费重要等级获取模块,用于在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于所述多个数据包中的每一个数据包,获取所述数据包的消费重要等级;有效生存时长获取模块,用于获取所述数据包的消费重要等级对应的有效生存时长;其中,越高的消费重要等级对应的有效生存时长大于越低的消费重要等级对应的有效生存时长;有效生存时长发送模块,用于若还未向接收端发送过所述消费重要等级对应的有效生存时长,则向接收端发送所述消费重要等级与所述消费重要等级对应的有效生存时长。
15.第七方面,本技术示出了一种电子设备,所述电子设备包括:处理器;用于存储处
理器可执行指令的存储器;其中,所述处理器被配置为执行如前述的任一方面所示的方法。
16.第八方面,本技术示出了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如前述的任一方面所示的方法。
17.第九方面,本技术示出了一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如前述的任一方面所示的方法。
18.与现有技术相比,本技术包括以下优点:
19.在本技术中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定接收端是否已接收到第二数据包。第一数据包包括:多个数据包中的其中一个数据包,第二数据包包括:多个数据包中的在预设发送顺序上位于第一数据包之前的数据包。多个数据包被消费的消费顺序与预设发送顺序匹配。在未接收到第二数据包的情况下,确定第二数据包是否已过期。在第二数据包已过期的情况下,获取第二数据包的消费重要等级是否为预设消费重要等级。在第二数据包的消费重要等级为预设消费重要等级的情况下,消费第一数据包。
20.通过本技术,如果接收到的第二数据包的消费重要等级是预设消费重要等级,则说明第二数据包对多个数据包中的其他数据包的消费带来的影响很低或者不带来影响,且消费多个数据包中的除第二数据包以外的数据包并不影响消费结果,或者说,消费多个数据包中的除第二数据包以外的数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果相同或者相似,因此,在这种情况下,为了使得多个数据包对应的应用能够及时被响应,则需要满足对数据包消费的实时性要求,可以不再等待第二数据包,而可以直接消费消费顺序位于第二数据包之后的第一数据包。以使尽快能够得到消费结果,例如,使得多个数据包对应的应用能够及时被响应等,避免应用的响应被延迟,例如,可以提高应用的流畅性等。
附图说明
21.图1是本技术的一种数据处理系统的结构框图。
22.图2是本技术的一种场景示意图。
23.图3是本技术的一种数据处理方法的步骤流程图。
24.图4是本技术的一种确定数据包是否已过期的方法的步骤流程图。
25.图5是本技术的一种确定数据包是否已过期的方法的步骤流程图。
26.图6是本技术的一种数据处理方法的步骤流程图。
27.图7是本技术的一种数据处理装置的结构框图。
28.图8是本技术的一种数据处理装置的结构框图。
29.图9是本技术的一种数据处理装置的结构框图。
30.图10是本技术的一种装置的结构框图。
具体实施方式
31.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
32.参照图1,示出了本技术的一种数据处理系统的结构框图,该系统包括发送端01以及接收端02。发送端与接收端之间通信连接,发送端与接收端之间可以进行数据交互。发送端可以包括前端设备或后端设备等,接收端也可以包括前端设备或后端设备。在一个例子中,发送端可以包括前端设备,接收端可以包括后端设备。前端设备可以包括手机、平板电脑、笔记本电脑以及台式电脑等。后端设备可以包括后台服务器等。
33.参见图2,在一个可能的场景中,发送端可以为云游戏终端等,接收端可以为云游戏服务器等。在云游戏的过程中,用户可以在云游戏终端上针对云游戏输入云游戏操作指令(如点击屏幕的指令或者滑动屏幕的指令等),云游戏终端向云游戏服务器发送云游戏操作指令,云游戏服务器接收云游戏操作指令,针对云游戏响应云游戏操作指令,得到新的云游戏画面,并向云游戏终端发送新的云游戏画面,云游戏终端接收新的云游戏画面,并显示新的云游戏画面等。
34.其中,在一个可能的场景中,发送端需要按照预设发送顺序连续间隔地向接收端发送多个数据包中的各个数据包。通常,接收端会按照预设发送顺序对应的接收顺序依次接收到多个数据包中的各个数据包,并消费多个数据包中的各个数据包。然而,有时候多个数据包中的至少一个数据包在传输过程中会丢失,在这种情况下,接收端可以接收到多个数据包中的部分数据包。
35.在接收端接收到多个数据包中的部分数据包的情况下,如何处理可以参见之后所示的实施例。
36.在发送端确定出接收端未接收到多个数据包中的至少一个数据包的情况下,如何处理可以参见之后所述的实施例。
37.参照图3,示出了本技术的一种数据处理方法的步骤流程图,应用于图1所示的接收端中,该方法具体可以包括如下步骤:
38.在步骤s101中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定接收端是否已接收到第二数据包。
39.第一数据包包括:多个数据包中的其中一个数据包。第二数据包包括:多个数据包中的在预设发送顺序上位于第一数据包之前的数据包。多个数据包被消费的消费顺序与预设发送顺序匹配。
40.在本技术中,在发送端按照预设发送顺序连续间隔地发送的多个数据包之前,会在各个数据包分别设置各自的预设发送顺序,例如,以编号的形式在各个数据包中分别设置各自的预设发送顺序,例如,在位于预设发送顺序中的第1位的数据包中的设置编号01,在位于预设发送顺序中的第2位的数据包中的设置编号02,在位于预设发送顺序中的第3位的数据包中的设置编号03
……
以此类推,在位于预设发送顺序中的第n位的数据包中的设置编号n。n为多个数据包的数量。
41.如此,对于接收端而言,每当接收到多个数据包中的一个数据包的情况下,就可以提取该数据包中的编号,并提取出之前接收到的多个数据包中的其他数据包中的编号。
42.如果比该数据包中的编号小的编号与其他数据包中的编号一一对应,则说明多个数据包中的在预设发送顺序上位于该数据包以前的数据包均被接收端接收到了。
43.如果比该数据包中的编号小的编号中存在除其他数据包中的编号以外的编号,则接收端未接收到该以外的编号对应的数据包。
44.例如,对于接收端而言,在接收端接收到第一数据包的情况下,可以提取第一数据包中的编号,并提取出之前接收到的多个数据包中的其他数据包中的编号。
45.如果比第一数据包中的编号小的编号与其他数据包中的编号一一对应,则说明多个数据包中的在预设发送顺序上位于该数据包以前的数据包均被接收端接收到了,不存在第二数据包。如果比该数据包中的编号小的编号中存在除其他数据包中的编号以外的编号,则接收端未接收到该以外的编号对应的数据包,即接收到第二数据包。
46.在未接收到第二数据包的情况下,在步骤s102中,确定第二数据包是否已过期。
47.对于多个数据包中的任意一个数据包,从发送端向接收端发送该数据包的发送时刻时起,接收端需要在该数据包的有效生存时长内接收到该数据包并消费该数据包。也即,从发送端向接收端发送该数据包之后,在接收端的当前时刻与该发送时刻之间的差值大于该数据包的有效生存时长,且接收端还未接收到该数据包,则说明该数据包已过期。或者,在接收端的当前时刻与该发送时刻之间的差值小于或等于该数据包的有效生存时长,则说明该数据包还未过期。对于多个数据包中的其他每一个数据包,同样如此。
48.其中,确定第二数据包是否已过期可以参见之后如图4所示的实施例,在此不做详述。
49.在本技术另一实施例中,在已接收到第二数据包的情况下,则由于发送端向接收端发送第二数据包时的发送时刻早于发送端向接收端发送第一数据包时的发送时刻,因此,在接收端接收到第一数据包之前就会接收到第二数据包,接收端接收到第二数据包之后就会消费第二数据包,如此,在接收端接收到第一数据包的情况下,如果已接收到第二数据包,则第二数据包往往已经被接收端消费,这样,接收端就可以消费第一数据包,然后继续接收发送端按照预设发送顺序连续间隔地发送的多个数据包中的位于第一数据包之后的数据包,然后对接收到的位于第一数据包之后的数据包执行类似步骤s101的流程即可。
50.在第二数据包已过期的情况下,在步骤s103中,获取第二数据包的消费重要等级。
51.在本技术一个实施例中,如果默认多个数据包中的预设发送顺序为最后一位的数据包的消费重要等级为非预设消费重要等级,则无论第一数据包是否为预设发送顺序为最后一位的数据包,则均可以获取第二数据包的消费重要等级为预设消费重要等级。
52.在本技术另一实施例中,对于第一数据包而言,发送端在向接收端发送第一数据包之前,会在第一数据包中的特定字段中设置包括多个标识的标识集合,一个标识可以为一个字符等。
53.标识集合中的最后一个标识用于指示第一数据包的消费重要等级,例如,在标识为0时,表明对应的数据包的消费重要等级为预设消费重要等级,在标识为1时,表明对应的数据包的消费重要等级为非预设消费重要等级。
54.标识集合中的位于最后一个标识之前的各个标识按照从前之后的顺序依次分别用于指示预设消费顺序上的位于第一数据包以前的各个数据包的消费重要等级。
55.然后再向接收端发送了设置了标识集合的第一数据包。
56.如此,在本步骤中,接收端可以在第一数据包中的特定字段中提取出标识集合,然后在标识集合中确定第二数据包对应的标识(例如根据步骤s101中的接收到的数据包中设置的预设发送顺序对应的编号来在标识集合中确定第二数据包对应的标识等),然后根据第二数据包对应的标识获取第二数据包的消费重要等级。
57.例如,在第二数据包对应的标识为0时,可以获取第二数据包的消费重要等级为预设消费重要等级,在第二数据包对应的标识为1时,可以获取第二数据包的消费重要等级为非预设消费重要等级。
58.在本技术另一实施例中,在第二数据包未过期的情况下,间隔一段时间返回执行步骤s102,或者,实时地返回执行步骤s102,直至在接收端接收到第二数据包之前确定出第二数据包已过期为止,或者直至已消费第二数据包为止等。
59.在步骤s104中,在第二数据包的消费重要等级为预设消费重要等级的情况下,消费第一数据包。
60.其中,本技术中包括消费重要等级包括预设消费重要以及非预设消费重要等级。
61.在本技术中,多个数据包中各个数据包的消费重要等级不尽相同,例如,有些数据包的消费重要等级低,这些数据包的消费重要等级可以为预设消费重要等级。而有些数据包的消费重要等级高,这些数据包的消费重要等级可以为非预设消费重要等级。
62.对于多个数据包而言,如果接收端能够接收到发送端发送的多个数据包中的全部数据包,接收端在消费多个数据包时,是需要按照消费顺序依次消费多个数据包中的各个数据数据包的,然而,有时候,多个数据包中的至少一个数据包可能会在传输过程中丢失,导致接收端接收不到丢失的数据包。这样,接收端接收到的是多个数据包中的部分数据包,而接收不到丢失的至少一个数据包。
63.丢失的至少一个数据包的消费重要等级可能是预设消费重要等级(等级低),也可能是非预设消费重要等级(等级高)。
64.如果丢失的至少一个数据包的消费重要等级是预设消费重要等级,则说明丢失的至少一个数据包对多个数据包中的其他数据包的消费带来的影响很低或者不带来影响,且消费多个数据包中的部分数据包并不影响消费结果,或者说,消费多个数据包中的部分数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果相同或者相似,因此,在这种情况下,为了使得多个数据包对应的应用能够及时被响应,则需要满足对数据包消费的实时性要求,可以不再等待丢失的至少一个数据包,而可以直接消费已接收到的多个数据包中的部分数据包。
65.例如,在第二数据包的消费重要等级为预设消费重要等级的情况下,则可以不再等待第二数据包,可以直接消费消费顺序位于第二数据包之后的第一数据包,以使尽快能够得到消费结果,例如,使得多个数据包对应的应用能够及时被响应等。
66.在本技术中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定接收端是否已接收到第二数据包。第一数据包包括:多个数据包中的其中一个数据包,第二数据包包括:多个数据包中的在预设发送顺序上位于第一数据包之前的数据包。多个数据包被消费的消费顺序与预设发送顺序匹配。在未接收到第二数据包的情况下,确定第二数据包是否已过期。在第二数据包已过期的情况下,获取第二数据包的消费重要等级是否为预设消费重要等级。在第二数据包的消费重要等级为预设消费重要等级的情况下,消费第一数据包。
67.通过本技术,如果接收到的第二数据包的消费重要等级是预设消费重要等级,则说明第二数据包对多个数据包中的其他数据包的消费带来的影响很低或者不带来影响,且消费多个数据包中的除第二数据包以外的数据包并不影响消费结果,或者说,消费多个数
据包中的除第二数据包以外的数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果相同或者相似,因此,在这种情况下,为了使得多个数据包对应的应用能够及时被响应,则需要满足对数据包消费的实时性要求,可以不再等待第二数据包,而可以直接消费消费顺序位于第二数据包之后的第一数据包。以使尽快能够得到消费结果,例如,使得多个数据包对应的应用能够及时被响应等,避免应用的响应被延迟,例如,可以提高应用的流畅性等。
68.其中,图3所示的实施例的目的是在接收到第一数据包但是未接收到第二数据包的情况下,如果第二数据包的消费重要等级为预设消费重要等级,则可以不等待第二数据包,直接消费第一数据包,以使得多个数据包对应的应用能够及时被响应,然而,有时候多个数据包中的在预设发送顺序上还具有位于第一数据包之后的数据包,在消费完毕第一数据包之后,还需要依次消费完毕位于第一数据包之后的数据包,才能实现多个数据包对应的应用能够被响应。
69.在一个可能的情况下,第一数据包的重要等级为非预设消费重要等级,也即,第一数据包需要及时被消费(不能过期了还未被消费)。
70.既然第一数据包需要及时被消费(不能过期了还未被消费),那在本技术中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,如果还未接收到第二数据包,则需要立刻执行步骤s102,以尽可能地尽早消费第一数据包,实现多个数据包对应的应用能够被及时响应。
71.在另一个可能的情况下,第一数据包的重要等级为非预设消费重要等级,也即,第一数据包并不是需要及时被消费(可以过期后再被消费),而位于第一数据包之后的一个数据包的重要等级为非预设消费重要等级,其需要被及时消费(不能过期了还未被消费),但是此时接收端还未接收到位于第一数据包之后的该一个数据包,也就还无法消费位于第一数据包之后的该一个数据包。
72.既然第一数据包并不是需要及时被消费(可以过期后再被消费),那在本技术中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,如果还未接收到第二数据包,则可以等待第二数据包,而不立刻执行步骤s102,在不影响多个数据包对应的应用被及时响应的情况下,尽可能地能够消费第二数据包,满足多个数据包对应的应用被响应的完整性以及准确性等。
73.因此,在图3所示的实施例的基础之上,在本技术另一实施例中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,至在未接收到第二数据包的情况下,获取第一数据包的消费重要;在第一数据包的消费重要等级为非预设消费重要等级的情况下,再执行步骤s102:确定第二数据包是否已过期。
74.在本技术一个实施例中,如果默认多个数据包中的预设发送顺序为最后一位的数据包的消费重要等级为非预设消费重要等级,在第一数据包为预设发送顺序为最后一位的数据包的情况下,则可以获取第二数据包的消费重要等级为非预设消费重要等级。在第一数据包为预设发送顺序不为最后一位的数据包的情况下,则可以获取第二数据包的消费重要等级为预设消费重要等级。
75.在本技术另一实施例中,对于第一数据包而言,发送端在向接收端发送第一数据包之前,会在第一数据包中的特定字段中设置包括多个标识的标识集合,一个标识可以为
一个字符等。
76.标识集合中的最后一个标识用于指示第一数据包的消费重要等级,例如,在标识为0时,表明对应的数据包的消费重要等级为预设消费重要等级,在标识为1时,表明对应的数据包的消费重要等级为非预设消费重要等级。
77.标识集合中的位于最后一个标识之前的各个标识按照从前之后的顺序依次分别用于指示预设消费顺序上的位于第一数据包以前的各个数据包的消费重要等级。
78.然后再向接收端发送了设置了标识集合的第一数据包。
79.如此,在本步骤中,接收端可以在第一数据包中的特定字段中提取出标识集合,然后在标识集合中确定第一数据包对应的标识(例如根据步骤s101中的接收到的数据包中设置的预设发送顺序对应的编号来在标识集合中确定第一数据包对应的标识等),然后根据第一数据包对应的标识获取第一数据包的消费重要等级。
80.例如,在第一数据包对应的标识为0时,可以获取第一数据包的消费重要等级为预设消费重要等级,在第一数据包对应的标识为1时,可以获取第一数据包的消费重要等级为非预设消费重要等级。
81.另外,在本技术另一实施例中,如果丢失的至少一个数据包的消费重要等级是非预设消费重要等级,则说明丢失的至少一个数据包对多个数据包中的其他数据包的消费带来的影响高,且消费多个数据包中的部分数据包影响消费结果,或者说,消费多个数据包中的部分数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果差异较大,因此,在这种情况下,为了满足多个数据包对应的应用被响应的完整性以及准确性等,可以等待丢失的至少一个数据包,再等待得到至少一个数据包之后,再按照消费顺序多个数据包中的全部数据包。
82.例如,在第二数据包的消费重要等级为非预设消费重要等级的情况下,则可以等待第二数据包,直至接收到第二数据包之后,再消费第二数据包,然后再消费消费顺序位于第二数据包之后的第一数据包,使得多个数据包对应的应用能够被响应的完整以及准确等。
83.在本技术中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,可以周期性执行步骤s101~步骤s104的流程,可以周期可以设置地短,也即,行步骤s101~步骤s104的频率可以高,如此可以尽可能地避免非预设消费重要等级(重要)的数据包已经超期了还未执行的情况发生。
84.进一步地,为了使得多个数据包对应的应用能够及时被响应,在本技术另一实施例中,在接收到第三数据包的情况下,在消费第一数据之后,可以按照消费顺序消费第三数据包,第三数据包包括:接收端已接收到的多个数据包中的在预设发送顺序上位于第一数据包之后的数据包。
85.进一步地,在本技术另一实施例中,在接收端已消费第一数据包的情况下,如果接收到第二数据包(可能是在接收端确定出第二数据包已过期的情况下第二数据包还正在向接收端传输等),则由于已经消费了第一数据包,且多个数据包之间具有消费顺序,也由于不消费第二数据包也往往不会对多个数据包对应的应用被响应的完整性以及准确性带来较大影响,因此可以可以丢弃第二数据包。
86.在本技术一个实施例中,参加图4,步骤s102包括:
87.在步骤s201中,获取第一数据包的已延时时长,以及,获取第一数据包的有效生存时长。
88.在本技术一个实施例中,在获取第一数据包的已延时时长时,可以获取接收端的当前时刻,获取接收端在接收到第一数据包时的接收时刻,以及,获取第一数据包在从发送端传输至接收端的过程所耗费的传输时长。
89.然后根据接收端的当前时刻、接收端在接收到第一数据包时的接收时刻以及第一数据包在从发送端传输至接收端的过程所耗费的传输时长获取第一数据包的已延时时长,例如,可以计算接收端的当前时刻与接收端在接收到第一数据包时的接收时刻之间的差值,然后计算该差值与第一数据包在从发送端传输至接收端的过程所耗费的传输时长之间的和值,并作为第一数据包的已延时时长。
90.其中,在本技术中,数据包在发送端与接收端之间的往返时间为rtt(round-trip time,往返时间)。
91.接收端可以通过“接收端向发送端发送测试包,发送端接收测试包并向接收端返回测试包对应的反馈包,接收端发送反馈包”的流程计算出rtt,然后计算rtt与数值2之间的比值,并作为一个数据包在从发送端传输至接收端的过程所耗费的传输时长,然后在接收端中存储rtt与数值2之间的比值。
92.如此,在获取第一数据包在从发送端传输至接收端的过程所耗费的传输时长时,可以获取接收端中存储的rtt与数值2之间的比值,并作为第一数据包在从发送端传输至接收端的过程所耗费的传输时长。
93.其中,在获取第一数据包的有效生存时长时,可以根据第一数据包的消费重要等级获取第一数据包的有效生存时长。
94.在本技术中,在一个数据包的消费重要等级越高的情况下,则往往是因为该数据包越重要,需要尽可能的消费该数据包,否则可能无法满足多个数据包对应的应用被响应的完整性以及准确性等,因此可以将数据包的有效生存时长设置的越长。
95.在一个数据包的消费重要等级越低的情况下,往往是因为该数据包越不重要,可以不消费该数据包,也能够满足多个数据包对应的应用被响应的完整性以及准确性等,因此可以将数据包的有效生存时长设置的越短。
96.事先可以在接收端中设置消费重要等级与有效生存时长之间的对应关系,消费重要等级与有效生存时长之间的对应关系中记录有各个消费重要等级对应的有效生存时长。各个消费重要等级对应的有效生存时长可以是接收端与发送端事先协商的等。
97.例如,在本技术另一个实施例中,在发送端需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于多个数据包中的任意一个数据包,获取该数据包的消费重要等级;获取数据包的消费重要等级对应的有效生存时长;其中,越高的消费重要等级对应的有效生存时长大于越低的消费重要等级对应的有效生存时长;若还未向接收端发送过该消费重要等级对应的有效生存时长,则向接收端发送该消费重要等级与该消费重要等级对应的有效生存时长。以使接收端可以得到该消费重要等级与该消费重要等级对应的有效生存时长,从而可以在消费重要等级与有效生存时长之间的对应关系中记录该消费重要等级与该消费重要等级对应的有效生存时长。对于多个数据包中的其他每一个数据包,同样如此。
98.如此,在根据消费重要等级获取第一数据包的有效生存时长时,可以在消费重要等级与有效生存时长之间的对应关系中,查找与第一数据包的消费重要等级相对应的有效生存时长。其中,在对应关系中,越高的消费重要等级对应的有效生存时长越长,越低的消费重要等级对应的有效生存时长越低。
99.在步骤s202中,在第一数据包的有效生存时长与第一数据包的已延时时长之间的差值小于预设时长的情况下,确定第二数据包已过期。
100.预设时长可以根据实际情况而定,例如,包括5ms、10ms、15ms或20ms等,本技术对此不加以限定。
101.由于发送端向接收端发送第二数据包时的发送时刻早于发送端向接收端发送第一数据包时的发送时刻,因此,在第一数据包与第二数据包均已过期的情况下,则往往是第二数据包先过期,然后才是第一数据包过期。
102.这样,在第一数据包的有效生存时长与第一数据包的已延时时长之间的差值等于零情况下,则说明此时第一数据包进入过期与未过期的边缘,即将马上过期,此时第二数据包很可能已经过期了,在本技术中,可以当作第二数据包已经过期。
103.例如,在一个例子中,在预设时长与(发送端在发送第一数据包时的发送时刻与发送端在发送第二数据包时的发送时刻之间的)发送时间间隔相同或小于发送时间间隔的情况下,如果第一数据包的有效生存时长与第一数据包的已延时时长之间的差值小于预设时长,可确定第二数据包已过期。
104.在本技术一个实施例中,参加图5,步骤s102包括:
105.在步骤s301中,获取第二数据包的已延时时长,以及,获取第二数据包的有效生存时长。
106.在获取第二数据包的已延时时长时,可以通过如下流程实现,包括:
107.21)、获取第一数据包的已延时时长,以及,获取发送端在发送第一数据包时的发送时刻与发送端在发送第二数据包时的发送时刻之间的发送时间间隔。
108.其中,第一数据包的已延时时长可以参见之前步骤s201的相关描述,在此不做详述。
109.在本技术中,发送端是按照多个数据包中的各个数据包之间的预设发送顺序,连续间隔地向发送端发送各个数据包的。
110.如此,在分别发送预设发送顺序上相邻的两个数据包时的发送时刻之间是具有时间间隔的,在分别发送预设发送顺序上相邻的两个数据包时的发送时刻之间的时间间隔可能均相同,也可能不尽相同。
111.因此,发送端在向接收端发送多个数据包中的任意一个数据包之前,可以获取“将要发送该数据包时的发送时刻”与“发送在预设发送顺序上与该数据包相邻且与位于该数据包之前的数据包时的发送时刻”之间的差值,并作为“发送该数据包时的发送时刻”与“发送在预设发送顺序上与该数据包相邻且与位于该数据包之前的数据包时的发送时刻”之间的时间间隔;并在该数据包中存储该时间间隔,然后向接收端发送该数据包。发送端在向接收端发送多个数据包中的其他每一个数据包之前,同样如此。
112.如此,在获取“发送端在发送第一数据包时的发送时刻”与“发送端在发送第二数据包时的发送时刻”之间的发送时间间隔时,在第二数据包与第一数据包在预设发送顺序
上相邻的情况下,可以获取第一数据包的预设字段中记录的时间间隔,第一数据包的预设字段中的时间间隔是发送端在向接收端发送第一数据包之前获取的并在第一数据包的预设字段中记录的。根据第一数据包的预设字段中记录的时间间隔获取“发送端在发送第一数据包时的发送时刻”与“发送端在发送第二数据包时的发送时刻”之间的发送时间间隔,例如,可以将第一数据包的预设字段中记录的时间间隔作为“发送端在发送第一数据包时的发送时刻”与“发送端在发送第二数据包时的发送时刻”之间的发送时间间隔等。
113.或者,在第二数据包与第一数据包在预设发送顺序上不相邻的情况下,获取第一数据包的预设字段中记录的时间间隔,第一数据包的预设字段中的时间间隔是发送端在向接收端发送第一数据包之前获取的并在第一数据包的预设字段中记录的;确定在预设发送顺序上位于第二数据包与第一数据包之间的中间数据包,获取中间数据包的预设字段中记录的时间间隔,中间数据包的预设字段中的时间间隔是发送端在向接收端发送中间数据包之前获取的并在中间数据包的预设字段中记录的。根据第一数据包的预设字段中记录的时间间隔以及中间数据包的预设字段中记录的时间间隔获取发送端在发送第一数据包时的发送时刻”与“发送端在发送第二数据包时的发送时刻”之间的发送时间间隔,例如,可以将第一数据包的预设字段中记录的时间间隔以及中间数据包的预设字段中记录的时间间隔求和,得到“发送端在发送第一数据包时的发送时刻”与“发送端在发送第二数据包时的发送时刻”之间的发送时间间隔等。
114.22)、根据第一数据包的已延时时长以及“发送端在发送第一数据包时的发送时刻”与“发送端在发送第二数据包时的发送时刻”之间的发送时间间隔获取第二数据包的已延时时长。
115.在本技术中,可以将第一数据包的已延时时长以及发送时间间隔求和,得到第二数据包的已延时时长。
116.其中,在获取第二数据包的有效生存时长时,可以参见步骤s201中描述的获取第一数据包的有效生存时长的流程,在此不做详述。
117.在步骤s302中,在第二数据包的已延时时长大于第二数据包的有效生存时长的情况下,确定第二数据包已过期。
118.或者,在本技术另一实施例中,在第二数据包的已延时时长小于或等于第二数据包的有效生存时长的情况下,确定第二数据包未过期。
119.在一个例子中,在满足如下公式的条件的情况下,可以确定第二数据包已过期。
120.sentgap current_time-receive_time rtt/2》ttl。
121.其中,sentgap为发送端在发送第一数据包时的发送时刻与发送端在发送第二数据包时的发送时刻之间的发送时间间隔。
122.current_time为接收端的当前时刻。
123.receive_time接收端在接收到第一数据包时的接收时刻。
124.rtt/2为第二数据包在从发送端传输至接收端的过程所耗费的传输时长。
125.ttl为第二数据包的有效生存时长。
126.在一个例子中,假设多个数据包包括11个,分别为数据包1~数据包11。
127.发送端向接收端发送数据包1~数据包11的发送顺序为:数据包1早于数据包2,数据包2早于数据包3
……
数据包10早于数据包11。
128.接收端消费数据包1~数据包11的消费顺序为:数据包1早于数据包2,数据包2早于数据包3
……
数据包10早于数据包11。
129.发送端向接收端发送任意两个发送顺序相邻的数据包的发送时刻的发送时间间隔为10ms。
130.每一个数据包在从发送端传输至接收端的过程所耗费的传输时长均为60ms。
131.数据包1~数据包11的消费的延时需要小于或等于100ms,也即,有效生存时长为100ms。
132.则通常情况下,在数据包正常传输的情况下,发送端分别发送数据包1~数据包11的发送时刻,接收端分别接收数据包1~数据包11的接收时刻,接收端分别消费数据包1~数据包11的消费时刻以及数据包1~数据包11的延时可以参见如下表1所示。
133.表1
[0134] 发送时刻接收时刻消费时刻延时数据包10ms60ms60ms60ms数据包210ms70ms70ms60ms数据包320ms80ms80ms60ms数据包430ms90ms90ms60ms数据包540ms100ms100ms60ms数据包650ms110ms110ms60ms数据包760ms120ms120ms60ms数据包870ms130ms130ms60ms数据包980ms140ms140ms60ms数据包1090ms150ms150ms60ms数据包11100ms160ms160ms60ms
[0135]
其中,假设数据包6在从发送端向接收端传输的过程中丢失。
[0136]
接收端在110ms接收不到数据包6,会向发送端发送通知,以向发送端通知接收端未接收到数据包6,发送端根据该通知再重新向接收端发送数据包6,该通知从接收端传输至发送端的过程所耗费的传输时长为60ms。数据包6从发送端传输至接收端的过程所耗费的传输时长为60ms。
[0137]
因此,如果接收端接收到发送端重新发送的数据包6,则也是在230ms接收到的,并在230ms消费数据包6,且数据包7~数据包11也是最早能在230ms消费。
[0138]
如此,发送端分别发送数据包1~数据包11的发送时刻,接收端分别接收数据包1~数据包11的接收时刻,接收端分别消费数据包1~数据包11的消费时刻以及数据包1~数据包11的延时可以参见如下表2所示。
[0139]
表2
[0140] 发送时刻接收时刻消费时刻延时数据包10ms60ms60ms60ms数据包210ms70ms70ms60ms数据包320ms80ms80ms60ms数据包430ms90ms90ms60ms
数据包540ms100ms100ms60ms数据包650ms230ms230ms180ms数据包760ms120ms230ms170ms数据包870ms130ms230ms160ms数据包980ms140ms230ms150ms数据包1090ms150ms230ms140ms数据包11100ms160ms230ms130ms
[0141]
由于数据包1~数据包11的消费的延时需要小于或等于100ms等。
[0142]
通过表2可见,数据包6~数据包11的消费延时均超过100ms,不符合延时要求。
[0143]
如果数据包6的消费重要等级为预设消费重要等级,也即,在按照消费顺序消费数据包1~数据包11的情况下,如果数据包6并非一定需要被消费,则可以在数据包7的延时即将超过100ms的情况下,直接按照消费顺序消费数据包7~数据包11,以使数据包7~数据包11的延时小于或等于100ms等。
[0144]
具体地,发送端分别发送数据包1~数据包11的发送时刻,接收端分别接收数据包1~数据包11的接收时刻,接收端分别消费数据包1~数据包11的消费时刻以及数据包1~数据包11的延时可以参见如下表3所示。
[0145]
表3
[0146] 发送时刻接收时刻消费时刻延时数据包10ms60ms60ms60ms数据包210ms70ms70ms60ms数据包320ms80ms80ms60ms数据包430ms90ms90ms60ms数据包540ms100ms100ms60ms数据包650ms230ms230ms180ms数据包760ms120ms160ms100ms数据包870ms130ms160ms90ms数据包980ms140ms160ms80ms数据包1090ms150ms160ms90ms数据包11100ms160ms160ms60ms
[0147]
参照图6,示出了本技术的一种数据处理方法的步骤流程图,应用于图1所示的发送端中,该方法具体可以包括如下步骤:
[0148]
在步骤s401中,在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于数据包中的每一个数据包,在该数据包中的特定字段中设置用于指示在预设发送顺序上的位于该数据包之前的数据包的消费重要等级的标识;以及,在该数据包中的预设字段中设置时间间隔;时间间隔包括:发送该数据包时的发送时刻与发送在预设发送顺序上与该数据包相邻且与位于该数据包之前的数据包时的发送时刻之间的时间间隔。
[0149]
在步骤s402中,按照预设发送顺序以及在各个数据包中设置的时间间隔,向接收端连续间隔地发送多个数据包中的各个数据包。
[0150]
通过本技术,支持在接收端接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,可以确定接收端是否已接收到第二数据包。第一数据包包括:多个数据包中的其中一个数据包,第二数据包包括:多个数据包中的在预设发送顺序上位于第一数据包之前的数据包。多个数据包被消费的消费顺序与预设发送顺序匹配。在未接收到第二数据包的情况下,可以至少通过第一数据包中的预设字段中的时间间隔确定第二数据包是否已过期。在第二数据包已过期的情况下,可以根据第一数据包中的特定字段中设置的用于指示在预设发送顺序上位于第一数据包之前的数据包(包括第二数据包)的消费重要等级的标识获取第二数据包的消费重要等级是否为预设消费重要等级。并在第二数据包的消费重要等级为预设消费重要等级的情况下,消费第一数据包。
[0151]
其中,如果接收端接收到的第二数据包的消费重要等级是预设消费重要等级,则说明第二数据包对多个数据包中的其他数据包的消费带来的影响很低或者不带来影响,且消费多个数据包中的除第二数据包以外的数据包并不影响消费结果,或者说,消费多个数据包中的除第二数据包以外的数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果相同或者相似,因此,在这种情况下,为了使得多个数据包对应的应用能够及时被响应,则需要满足对数据包消费的实时性要求,可以不再等待第二数据包,而可以直接消费消费顺序位于第二数据包之后的第一数据包。以使尽快能够得到消费结果,例如,使得多个数据包对应的应用能够及时被响应等,避免应用的响应被延迟,例如,可以提高应用的流畅性等。
[0152]
在本技术中,对于多个数据包中的每一个数据包,在已向接收端发送该数据包的情况下,可以在重发队列中缓存该数据包,以使之后在确定出该数据包在传输过程中丢失而导致该数据包无法被接收端接收到的情况下再向接收端重新发送该数据包。
[0153]
例如,在发送端在向接收端发送该数据包之后的一段时长内接收到接收端返回的用于指示已收到该数据包的接收响应,则不再需要向接收端重新发送该数据包,
[0154]
在发送端在向接收端发送该数据包之后的一段时长内未接收到接收端返回的用于指示已收到该数据包的接收响应,则不再需要向接收端重新发送该数据包,则发送段可以向接收端重新发送该数据包。
[0155]
其次,发送端还可以记录向接收端发送数据包时的发送时刻。
[0156]
该数据包中的特定字段中还设置有用于指示该数据包的消费重要等级的标识。
[0157]
在该数据包中的特定字段中设置的用于指示该数据包的消费重要等级的标识为预设消费重要等级的标识的情况下,可以确定发送端的当前时刻与发送时刻之间的第一差值是否大于该数据包的有效生存时长与传输时长之间的第二差值,该传输时长包括该数据包在从发送端传输至接收端的过程所耗费的时长。
[0158]
在第一差值大于第二差值的情况下,即使立刻向接收端重新发送该数据包,则由于该数据包从发送端传输至接收端的过程还需要耗费传输时长,因此,在接收端接收到重新发送的该数据包之前该数据包就会过期,在本技术中,接收端在该数据包即将过期之前就会消费在预设发送顺序上位于该数据包之后的数据包,之后也不会再消费该数据包,因此,发送端也就没必要重新向接收端发送该数据包,否则会浪费网络资源,因此,发送端可以在重复队列中删除该数据包。
[0159]
另外,在第一差值小于或等于第二差值的情况下,可以向接收端重新发送该数据
包,这样在接收端接收到重新发送的该数据包之前该数据包不会过期,在本技术中,接收端在该数据包过期之前不会消费在预设发送顺序上位于该数据包之后的数据包,而会等待消费该数据包,因此,发送端可以重新向接收端发送该数据包,以尽可能使得接收端能够得到该数据包并消费该数据包。
[0160]
其中,发送端确定是否已接收到接收端返回的用于指示已收到该数据包的接收响应。在未接收到接收响应的情况下,向接收端发送该数据包。
[0161]
在已接收到接收响应的情况下,说明接收端已经得到了该数据包,就没必要再向接收端发送该数据包了。
[0162]
在本技术另一个实施例中,在发送端需要向在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于多个数据包中的任意一个数据包,可以获取该数据包的消费重要等级;然后获取该数据包的消费重要等级对应的编码冗余度;其中,越高的消费重要等级对应的编码冗余度高于越低的消费重要等级的编码冗余度;再基于该编码冗余度对多个数据包编码,得到该数据包对应的冗余包;并向接收端发送该数据包对应的冗余包。这样,接收端就可以接收到该数据包对应的冗余包。对于多个数据包中的其他每一个数据包,同样如此。
[0163]
这样,在接收端接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,如果未接收到第二数据包且第二数据包未过期,则接收端可以确定是否接收到第二数据包对应的冗余包,
[0164]
如果接收到了发送端发送的第二数据包对应的冗余包,则可以尝试根据第二数据包对应的冗余包以及已接收到的数据包恢复第二数据包;第二数据包对应的冗余包是接收端基于第二数据包的消费重要等级对应的编码冗余度对所述多个数据包编码后得到的;
[0165]
在恢复出第二数据包的情况下,则可以消费第二数据包,然后消费第一数据包。在未恢复出第二数据包的情况下,返回执行确定第二数据包是否已过期的步骤等。
[0166]
通过本实施例,在接收端接收到第二数据包的情况下,如果接收到第二数据包对应的冗余包,则可以根据第二数据包对应的冗余包尝试恢复第二数据包,以提高接收端能够得到第二数据包的可能性,进而提高接收端能够消费第二数据包的可能性。
[0167]
其次,由于消费重要等级越高的数据包被消费的需求越大,由于消费重要等级越低的数据包被消费的需求越小(例如可以忽略不消费等),如此,越高的消费重要等级对应的编码冗余度高于越低的消费重要等级的编码冗余度,这样,根据消费重要等级越高的数据包对应的冗余包越容易恢复出消费重要等级越高的数据包,从而可以提高消费重要等级越高的数据包能够被接收端消费的可能性。
[0168]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本技术所必须的。
[0169]
参照图7,示出了本技术的一种数据处理装置的结构框图,应用于接收端,该装置具体可以包括如下模块:
[0170]
第一确定模块11,用于在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定所述接收端是否已接收到第二数据包;所述第一数
据包包括:所述多个数据包中的其中一个数据包,所述第二数据包包括:所述多个数据包中的在所述预设发送顺序上位于所述第一数据包之前的数据包;所述多个数据包被消费的消费顺序与所述预设发送顺序匹配;第二确定模块12,用于在未接收到所述第二数据包的情况下,确定所述第二数据包是否已过期;第一获取模块13,用于在所述第二数据包已过期的情况下,获取所述第二数据包的消费重要等级;第一消费模块14,用于在所述第二数据包的消费重要等级为预设消费重要等级的情况下,消费所述第一数据包。
[0171]
在一个可选的实现方式中,所述第一获取模块包括:第一获取单元,用于获取所述第一数据包的特定字段中记录的用于指示所述第二数据包的消费重要等级的标识;第二获取单元,用于根据所述标识获取所述第二数据包的消费重要等级。
[0172]
在一个可选的实现方式中,所述装置还包括:第二获取模块,用于在未接收到所述第二数据包的情况下,获取所述第一数据包的消费重要等级;所述第二确定模块还用于:在所述第一数据包的消费重要等级为非预设消费重要等级的情况下,确定所述第二数据包是否已过期。
[0173]
在一个可选的实现方式中,所述第二获取模块包括:第三获取单元,用于获取所述第一数据包的特定字段中记录的用于指示所述第一数据包的消费重要等级的标识;第四获取单元,用于根据所述标识获取所述第一数据包的消费重要等级。
[0174]
在一个可选的实现方式中,所述第二确定模块包括:第五获取单元,用于获取所述第一数据包的已延时时长,以及,第六获取单元,用于获取所述第一数据包的有效生存时长;第一确定单元,用于在所述第一数据包的有效生存时长与所述第一数据包的已延时时长之间的差值小于预设时长的情况下,确定所述第二数据包已过期。
[0175]
在一个可选的实现方式中,所述第二确定模块包括:第七获取单元,用于获取所述第二数据包的已延时时长;以及,第八获取单元,用于获取所述第二数据包的有效生存时长;第二确定单元,用于在所述第二数据包的已延时时长大于所述第二数据包的有效生存时长的情况下,确定所述第二数据包已过期。
[0176]
在一个可选的实现方式中,所述第七获取单元包括:第一获取子单元,用于获取所述第一数据包的已延时时长,以及,第二获取子单元,用于获取所述发送端在发送所述第一数据包时的发送时刻与所述发送端在发送所述第二数据包时的发送时刻之间的发送时间间隔;第三获取子单元,用于根据所述第一数据包的已延时时长以及所述发送时间间隔获取所述第二数据包的已延时时长。
[0177]
在一个可选的实现方式中,所述第一获取子单元具体用于:获取所述接收端的当前时刻,获取所述接收端在接收到所述第一数据包时的接收时刻,以及,获取所述第一数据包在从所述发送端传输至所述接收端的过程所耗费的传输时长;根据所述当前时刻、所述接收时刻以及所述传输时长获取所述第一数据包的已延时时长。
[0178]
在一个可选的实现方式中,所述第二获取子单元具体用于:在所述第二数据包与所述第一数据包在所述预设发送顺序上相邻的情况下,获取所述第一数据包的预设字段中记录的时间间隔,所述第一数据包的预设字段中的时间间隔是所述发送端在向所述接收端发送所述第一数据包之前获取的并在所述第一数据包的预设字段中记录的;根据所述第一数据包的预设字段中记录的时间间隔获取所述发送时间间隔;
[0179]
或者,在所述第二数据包与所述第一数据包在所述预设发送顺序上不相邻的情况
下,获取所述第一数据包的预设字段中记录的时间间隔,所述第一数据包的预设字段中的时间间隔是所述发送端在向所述接收端发送所述第一数据包之前获取的并在所述第一数据包的预设字段中记录的;确定在所述预设发送顺序上位于所述第二数据包与所述第一数据包之间的中间数据包,获取所述中间数据包的预设字段中记录的时间间隔,所述中间数据包的预设字段中的时间间隔是所述发送端在向所述接收端发送所述中间数据包之前获取的并在所述中间数据包的预设字段中记录的;根据所述第一数据包的预设字段中记录的时间间隔以及所述中间数据包的预设字段中记录的时间间隔获取所述发送时间间隔。
[0180]
在一个可选的实现方式中,所述第八获取单元包括:第四获取子单元,用于根据所述第二数据包的消费重要等级获取所述第二数据包的有效生存时长。
[0181]
在一个可选的实现方式中,所述第四获取子单元具体用于:在消费重要等级与有效生存时长之间的对应关系中,查找与所述第二数据包的消费重要等级相对应的有效生存时长;其中,在所述对应关系中,越高的消费重要等级对应的有效生存时长越长,越低的消费重要等级对应的有效生存时长越低。
[0182]
在一个可选的实现方式中,所述装置还包括:第二消费模块,用于在接收到第三数据包的情况下,在消费所述第一数据之后,按照所述消费顺序消费所述第三数据包,所述第三数据包包括:所述接收端已接收到的所述多个数据包中的在预设发送顺序上位于所述第一数据包之后的数据包。
[0183]
在本技术中,在接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,确定接收端是否已接收到第二数据包。第一数据包包括:多个数据包中的其中一个数据包,第二数据包包括:多个数据包中的在预设发送顺序上位于第一数据包之前的数据包。多个数据包被消费的消费顺序与预设发送顺序匹配。在未接收到第二数据包的情况下,确定第二数据包是否已过期。在第二数据包已过期的情况下,获取第二数据包的消费重要等级是否为预设消费重要等级。在第二数据包的消费重要等级为预设消费重要等级的情况下,消费第一数据包。
[0184]
通过本技术,如果接收到的第二数据包的消费重要等级是预设消费重要等级,则说明第二数据包对多个数据包中的其他数据包的消费带来的影响很低或者不带来影响,且消费多个数据包中的除第二数据包以外的数据包并不影响消费结果,或者说,消费多个数据包中的除第二数据包以外的数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果相同或者相似,因此,在这种情况下,为了使得多个数据包对应的应用能够及时被响应,则需要满足对数据包消费的实时性要求,可以不再等待第二数据包,而可以直接消费消费顺序位于第二数据包之后的第一数据包。以使尽快能够得到消费结果,例如,使得多个数据包对应的应用能够及时被响应等,避免应用的响应被延迟,例如,可以提高应用的流畅性等。
[0185]
参照图8,示出了本技术的一种数据处理装置的结构框图,应用于发送端,该装置具体可以包括如下模块:
[0186]
设置模块21,用于在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于所述多个数据包中的每一个数据包,在所述数据包中的特定字段中至少设置用于指示在所述预设发送顺序上的位于所述数据包之前的数据包的消费重要等级的标识;以及,在所述数据包中的预设字段中设置时间间隔;其中,所述时间间
隔包括:发送所述数据包时的发送时刻与发送在所述预设发送顺序上与所述数据包相邻且与位于所述数据包之前的数据包时的发送时刻之间的时间间隔;第一发送模块22,用于按照所述预设发送顺序以及在各个数据包中设置的时间间隔,向接收端连续间隔地发送所述多个数据包中的各个数据包。
[0187]
在一个可选的实现方式中,所述装置还包括:缓存模块,用于对于所述多个数据包中的每一个数据包,在已向所述接收端发送所述数据包的情况下,在重发队列中缓存所述数据包,记录模块,用于记录向接收端发送所述数据包时的发送时刻;其中,所述数据包中的特定字段中还设置有用于指示所述数据包的消费重要等级的标识;
[0188]
第三确定模块,用于在所述数据包中的特定字段中设置的用于指示所述数据包的消费重要等级的标识为预设消费重要等级的标识的情况下,确定所述发送端的当前时刻与所述发送时刻之间的第一差值是否大于所述数据包的有效生存时长与传输时长之间的第二差值,所述传输时长包括所述数据包在从所述发送端传输至所述接收端的过程所耗费的时长;删除模块,用于在所述第一差值大于所述第二差值的情况下,在所述重复队列中删除所述数据包。
[0189]
在一个可选的实现方式中,所述装置还包括:第四确定模块,用于在所述第一差值小于或等于所述第二差值的情况下,确定是否已接收到所述接收端返回的用于指示已收到所述数据包的接收响应;第二发送模块,用于在未接收到所述接收响应的情况下,向所述接收端发送所述数据包。
[0190]
通过本技术,支持在接收端接收到发送端按照预设发送顺序连续间隔地发送的多个数据包中的第一数据包的情况下,可以确定接收端是否已接收到第二数据包。第一数据包包括:多个数据包中的其中一个数据包,第二数据包包括:多个数据包中的在预设发送顺序上位于第一数据包之前的数据包。多个数据包被消费的消费顺序与预设发送顺序匹配。在未接收到第二数据包的情况下,可以至少通过第一数据包中的预设字段中的发送时间间隔确定第二数据包是否已过期。在第二数据包已过期的情况下,可以根据第一数据包中的特定字段中设置的用于指示在预设发送顺序上位于第一数据包之前的数据包(包括第二数据包)的消费重要等级的标识获取第二数据包的消费重要等级是否为预设消费重要等级。并在第二数据包的消费重要等级为预设消费重要等级的情况下,消费第一数据包。
[0191]
其中,如果接收端接收到的第二数据包的消费重要等级是预设消费重要等级,则说明第二数据包对多个数据包中的其他数据包的消费带来的影响很低或者不带来影响,且消费多个数据包中的除第二数据包以外的数据包并不影响消费结果,或者说,消费多个数据包中的除第二数据包以外的数据包后得到的结果与消费多个数据包中的全部数据包后得到的结果相同或者相似,因此,在这种情况下,为了使得多个数据包对应的应用能够及时被响应,则需要满足对数据包消费的实时性要求,可以不再等待第二数据包,而可以直接消费消费顺序位于第二数据包之后的第一数据包。以使尽快能够得到消费结果,例如,使得多个数据包对应的应用能够及时被响应等,避免应用的响应被延迟,例如,可以提高应用的流畅性等。
[0192]
参照图9,示出了本技术的一种数据处理装置的结构框图,应用于发送端,该装置具体可以包括如下模块:消费重要等级获取模块21,用于在需要按照预设发送顺序向接收端连续间隔地发送多个数据包中的各个数据包的情况下,对于所述多个数据包中的每一个
数据包,获取所述数据包的消费重要等级;有效生存时长获取模块23,用于获取所述数据包的消费重要等级对应的有效生存时长;其中,越高的消费重要等级对应的有效生存时长大于越低的消费重要等级对应的有效生存时长;有效生存时长发送模块33,用于若还未向接收端发送过所述消费重要等级对应的有效生存时长,则向接收端发送所述消费重要等级与所述消费重要等级对应的有效生存时长。
[0193]
以使接收端可以得到该消费重要等级与该消费重要等级对应的有效生存时长,从而可以在消费重要等级与有效生存时长之间的对应关系中记录该消费重要等级与该消费重要等级对应的有效生存时长。
[0194]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0195]
本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例中各方法步骤的指令(instructions)。
[0196]
本技术实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本技术实施例中,所述电子设备包括服务器、网关、子设备等,子设备为物联网设备等设备。
[0197]
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端设备如iot设备等电子设备。
[0198]
图10示意性地示出了可被用于实现本技术中所述的各个实施例的示例性装置1300。
[0199]
对于一个实施例,图10出了示例性装置1300,该装置具有一个或多个处理器1302、被耦合到(一个或多个)处理器1302中的至少一个的控制模块(芯片组)1304、被耦合到控制模块1304的存储器1306、被耦合到控制模块1304的非易失性存储器(nvm)/存储设备1308、被耦合到控制模块1304的一个或多个输入/输出设备1310,和被耦合到控制模块1304的网络接口1312。
[0200]
处理器1302可包括一个或多个单核或多核处理器,处理器1302可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1300能够作为本技术实施例中所述网关等服务器设备。
[0201]
在一些实施例中,装置1300可包括具有指令1314的一个或多个计算机可读介质(例如,存储器1306或nvm/存储设备1308)和与该一个或多个计算机可读介质相合并被配置为执行指令1314以实现模块从而执行本公开中所述的动作的一个或多个处理器1302。
[0202]
对于一个实施例,控制模块1304可包括任意适当的接口控制器,以向(一个或多个)处理器1302中的至少一个和/或与控制模块1304通信的任意适当的设备或组件提供任意适当的接口。
[0203]
控制模块1304可包括存储器控制器模块,以向存储器1306提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
[0204]
存储器1306可被用于例如为装置1300加载和存储数据和/或指令1314。对于一个实施例,存储器1306可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,存储器1306可包括双倍数据速率四同步动态随机存取存储器(ddr4sdram)。
[0205]
对于一个实施例,控制模块1304可包括一个或多个输入/输出控制器,以向nvm/存储设备1308及(一个或多个)输入/输出设备1310提供接口。
[0206]
例如,nvm/存储设备1308可被用于存储数据和/或指令1314。nvm/存储设备1308可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。
[0207]
nvm/存储设备1308可包括在物理上作为装置1300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,nvm/存储设备1308可通过网络经由(一个或多个)输入/输出设备1310进行访问。
[0208]
(一个或多个)输入/输出设备1310可为装置1300提供接口以与任意其他适当的设备通信,输入/输出设备1310可以包括通信组件、拼音组件、传感器组件等。网络接口1312可为装置1300提供接口以通过一个或多个网络通信,装置1300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g等,或它们的组合进行无线通信。
[0209]
对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。
[0210]
在各个实施例中,装置1300可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1300包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。
[0211]
本技术实施例提供了一种电子设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本技术中一个或多个所述的方法。
[0212]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0213]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0214]
本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、和流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程信息处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程信息处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指
定的功能的装置。
[0215]
这些计算机程序指令也可存储在能引导计算机或其他可编程信息处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0216]
这些计算机程序指令也可装载到计算机或其他可编程信息处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0217]
尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例和落入本技术实施例范围的所有变更和修改。
[0218]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0219]
以上对本技术所提供的数据处理方法及装置,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献