数据传输方法、装置、电子设备和计算机可读存储介质与流程

摘要: 本技术属于通信,尤其涉及一种数据传输方法、装置、电子设备和计算机可读存储介质。背景技术:1、数据的可靠传输在通信领域十分重要,但由于突发的网络异常等,很容易导致...
数据传输方法、装置、电子设备和计算机可读存储介质与流程

本技术属于通信,尤其涉及一种数据传输方法、装置、电子设备和计算机可读存储介质。

背景技术:

1、数据的可靠传输在通信领域十分重要,但由于突发的网络异常等,很容易导致数据消息的丢失。相关方案也采纳了一些重传机制,例如简单重试机制、向前纠错重传等。

2、然而,上述相关方案采用的重传机制的重传效果有限,在网络质量差时,重传的消息依然有较高的丢失概率。

技术实现思路

1、本技术旨在至少解决相关技术中存在的技术问题之一。为此,本技术提出一种数据传输方法、装置、电子设备和计算机可读存储介质,可大幅降低消息的丢失概率,提高通信的可靠性。

2、第一方面,本技术提供了一种数据传输方法,应用于发送端,该方法包括:

3、若网络质量指标不满足预设条件,暂停从发送缓冲队列中调度消息,并将继续接收的消息缓存至所述发送缓冲队列;

4、向接收端发送多次心跳请求;

5、若连续接收到所述接收端返回的心跳响应报文,且所述心跳响应报文的累计次数达到第一预设次数,恢复从所述发送缓冲队列中调度消息,并将已调度消息发送至所述接收端。

6、根据本技术的数据传输方法,通过在网络质量指标不满足预设条件的情况下,暂停从发送缓冲队列中输出消息,继续将获得的消息缓存到发送缓冲队列;向接收端发送多次心跳请求;在连续多次收到接收端针对心跳请求发送的心跳回复包的情况下,继续从发送缓冲队列中输出消息,将已输出消息发送至接收端,即在网络质量较差的时候缓存接收到的消息但不进行数据传输,在网络质量恢复后继续进行数据传输,有效地防止因为超过重传最大限度而立刻导致有效消息丢失,防止之后的数据传输变得不可靠,并降低处理复杂度,可大幅降低消息的丢失概率,提高通信的可靠性。

7、根据本技术的一个实施例,在所述将继续接收的消息缓存至所述发送缓冲队列之后,所述方法还包括:

8、若所述发送缓冲队列的缓存消息量达到容量阈值,对所述发送缓冲队列中的消息进行离线存储,并清空所述发送缓冲队列;

9、在恢复从所述发送缓冲队列中调度消息之后,所述方法还包括:

10、将离线存储的所述消息回载至所述发送缓冲队列。

11、根据本技术的一个实施例,所述将离线存储的所述消息回载至所述发送缓冲队列,包括:

12、按照第一预设速率将离线存储的所述消息回载至所述发送缓冲队列;

13、所述恢复从所述发送缓冲队列中调度消息,包括:

14、按照第二预设速率从所述发送缓冲队列中调度消息;

15、所述第二预设速率不小于所述第一预设速率。

16、根据本技术的一个实施例,在所述将已调度消息发送至所述接收端之后,所述方法还包括:

17、将所述已调度消息及所述已调度消息对应的超时阈值存入待确认列表;

18、若在所述超时阈值内接收到所述接收端针对所述已调度消息返回的确认报文,将所述已调度消息从所述待确认列表中删除;若所述已调度消息已标记为重传消息,将所述已调度消息及所述已调度消息对应的重传次数从重传列表中删除;

19、若在所述超时阈值内未接收到所述接收端针对所述已调度消息返回的确认报文,且所述已调度消息未标记为重传消息,将所述已调度消息从所述待确认列表转移至所述重传列表,将所述已调度消息标记为重传消息并更新对应的重传次数;

20、若在所述超时阈值内未接收到所述接收端针对所述已调度消息返回的确认报文,且所述已调度消息已标记为重传消息,在所述重传列表中更新对应的重传次数。

21、根据本技术的一个实施例,在所述将所述已调度消息从所述待确认列表转移至所述重传列表之后,或在所述重传列表中更新对应的重传次数之后,所述方法还包括:

22、更新所述重传列表中各重传消息的重传等待计时;

23、在所述重传列表中任一所述重传消息的重传等待计时达到重传时长阈值,将所述重传消息入队至所述发送缓冲队列。

24、根据本技术的一个实施例,在更新重传次数之后,所述方法还包括:

25、若任一所述重传消息的重传次数超过第二预设次数,暂停所述重传列表中各所述重传消息的重传等待计时;

26、若连续接收到所述接收端返回的心跳响应报文,且所述心跳响应报文的累计次数达到第一预设次数,恢复所述重传列表中各所述重传消息的重传等待计时。

27、根据本技术的一个实施例,网络质量指标包括发送缓冲队列的阻塞率、重传率、任意消息的重传次数、熔断次数一种或几种。

28、第二方面,本技术提供了一种数据传输装置,该装置包括:

29、队列缓存模块,用于若网络质量指标不满足预设条件,暂停从发送缓冲队列中调度消息,并将继续接收的消息缓存至所述发送缓冲队列;

30、通信重传模块,用于向接收端发送多次心跳请求;

31、发送模块,用于若连续接收到所述接收端返回的心跳响应报文,且所述心跳响应报文的累计次数达到第一预设次数,恢复从所述发送缓冲队列中调度消息,并将已调度消息发送至所述接收端。

32、根据本技术的数据传输装置,通过在网络质量指标不满足预设条件的情况下,暂停从发送缓冲队列中输出消息,继续将获得的消息缓存到发送缓冲队列;向接收端发送多次心跳请求;在连续多次收到接收端针对心跳请求发送的心跳回复包的情况下,继续从发送缓冲队列中输出消息,将已输出消息发送至接收端,即在网络质量较差的时候缓存接收到的消息但不进行数据传输,在网络质量恢复后继续进行数据传输,有效地防止因为超过重传最大限度而立刻导致有效消息丢失,防止之后的数据传输变得不可靠,并降低处理复杂度,可大幅降低消息的丢失概率,提高通信的可靠性。

33、第三方面,本技术提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面所提供的数据传输方法。

34、第四方面,本技术提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面所提供的数据传输方法。

35、第五方面,本技术提供了一种芯片,所述芯片包括处理器和通信接口,该通信接口和所述处理器耦合,该处理器用于运行程序或指令,实现如第一方面所提供的数据传输方法。

36、第六方面,本技术提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面所提供的数据传输方法。

37、本技术实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:

38、通过在网络质量指标不满足预设条件的情况下,暂停从先进先出结构中输出消息,继续将获得的消息缓存到先进先出结构;向接收端发送多次心跳请求;在连续多次收到接收端针对心跳请求发送的心跳回复包的情况下,继续从先进先出结构中输出消息,将已输出消息发送至接收端,即在网络质量较差的时候缓存接收到的消息但不进行数据传输,在网络质量恢复后继续进行数据传输,有效地防止因为超过重传最大限度而立刻导致有效消息丢失,防止之后的数据传输变得不可靠,并降低处理复杂度,可大幅降低消息的丢失概率,提高通信的可靠性。

39、本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。