CN116566552B - 数据重传方法、装置、电子设备及存储介质 - Google Patents

数据重传方法、装置、电子设备及存储介质

Info

Publication number
CN116566552B
CN116566552B CN202310575502.6A CN202310575502A CN116566552B CN 116566552 B CN116566552 B CN 116566552B CN 202310575502 A CN202310575502 A CN 202310575502A CN 116566552 B CN116566552 B CN 116566552B
Authority
CN
China
Prior art keywords
data
instruction
instruction data
packet loss
timeout
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
Application number
CN202310575502.6A
Other languages
English (en)
Other versions
CN116566552A (zh
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.)
Shenzhen Qianhai Network Technology Co ltd
Shenzhen Yunwang Wulian Technology Co ltd
Original Assignee
Shenzhen Qianhai Network Technology Co ltd
Shenzhen Yunwang Wulian Technology Co ltd
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 Shenzhen Qianhai Network Technology Co ltd, Shenzhen Yunwang Wulian Technology Co ltd filed Critical Shenzhen Qianhai Network Technology Co ltd
Priority to CN202310575502.6A priority Critical patent/CN116566552B/zh
Publication of CN116566552A publication Critical patent/CN116566552A/zh
Application granted granted Critical
Publication of CN116566552B publication Critical patent/CN116566552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本申请提供一种数据重传方法、装置、电子设备及存储介质,其方法包括:对目标数据发起传输后,根据应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列;对每条丢包指令数据单独进行重传处理。基于该方法,可以在云游戏场景下,用户端能够及时地获知数据传输的丢包和超时情况,并针对丢包和超时情况进行数据重传处理,保证数据重传在毫秒级的延迟需求上更可靠更快速地从用户端到达服务端,解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。

Description

数据重传方法、装置、电子设备及存储介质
技术领域
本申请涉及数据传输技术领域,尤其涉及一种数据重传方法、装置、电子设备及存储介质。
背景技术
在云游戏应用场景中,用户响应时延是衡量云游戏服务质量的重要指标。WebRTC(Web Real-Time Communication,实时通信)为云游戏的实时音视频数据传输提供了很好的技术支撑。云游戏的实现过程是有用户输入的,用户端需要采集用户输入的控制指令,如移动端的屏幕触碰操作,pc(personal computer,个人计算机)端的鼠标键盘操作等,这些控制指令的传输是通过WebRTC的数据通道发送到服务器上的WebRTC传输层,进而由服务端拆分出控制指令,执行到游戏上。然而,在云游戏的实现过程中,如果网络频繁抖动或抖动较大,数据传输就会出现丢包或超时的情况,现有的一种处理方式是多个数据包在服务端进行一次选择性确认,当有多个数据包没有到达服务端,将这些数据包一起进行重传;另一种处理方式是经过一段时间后,将这段时间内丢失的所有数据包一起进行重传,这两种数据重传方式延迟和滞后明显,容易导致服务端不能及时收到指令信息并执行到游戏中,大大地降低了用户的游戏体验。
发明内容
有鉴于此,本申请实施例提供了一种数据重传方法、装置、电子设备及存储介质,旨在解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。
本申请实施例的第一方面提供了一种数据重传方法,包括:对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列;对每条丢包指令数据单独进行重传处理。
在一些可能实现方式中,所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:根据应答消息中携带的指令标识序列,确定所述目标数据中的丢包指令数据。
在一些可能实现方式中,所述根据应答消息中携带的指令标识序列,确定所述目标数据中的丢包指令数据的步骤,包括:根据所述指令标识序列中记录的指令标识,确定缺失的指令标识,将所述缺失的指令标识所对应的指令数据确定为所述目标数据中的丢包指令数据,其中,所述指令标识序列中记录的指令标识包括服务端从已接收指令数据中确定的连续最大指令标识、当前最大指令标识以及位于所述连续最大指令标识与所述当前最大指令标识之间的指令标识。
在一些可能实现方式中,所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将所述指令数据确定为所述目标数据中的丢包指令数据,所述超时时间根据数据传输往返时延值确定。
在一些可能实现方式中,所述在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将所述指令数据确定为所述目标数据中的丢包指令数据的步骤,包括:在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测,将所述已发起传输的指令数据中已超过超时时间仍未接收到应答消息的指令数据确定为所述目标数据中的丢包指令数据。
在一些可能实现方式中,所述在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测的步骤之前,还包括将所述超时检测时间点设置为:所述目标数据中发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点;或者每次超时检测之后发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点。
在一些可能实现方式中,所述在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测的步骤,包括:在所述超时检测时间点是数据传输过程中的第一个超时检测时间点的情况下,以所述目标数据中已发起传输的第一个指令数据为检测起点,按照时序对所述已发起传输的指令数据逐一进行超时检测,直至检测到第一个未超时的指令数据为止,停止超时检测;在所述超时检测时间点不是数据传输过程中的第一个超时检测时间点的情况下,以上一个超时检测时间点检测到的未超时的指令数据为检测起点,按照时序对所述已发起传输的指令数据再次超时检测,直至再次检测到未超时的指令数据为止,停止超时检测。
在一种可能实现方式中,所述方法还包括:将所述超时时间确定为9/8*数据传输往返时延值。
在一些可能实现方式中,所述方法还包括:针对每条指令数据,对所述指令数据发起传输并经过预设延时值后,对所述指令数据进行冗余传输处理。
本申请实施例的第二方面提供了一种数据重传装置,所述数据重传装置包括:确定模块,用于对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据;重传模块,用于对每个丢包指令数据进行单独重传处理。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在电子设备上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的数据重传方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的数据重传方法的各步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现第一方面提供的数据重传方法的各步骤。
本申请实施例提供的一种数据重传方法、装置、电子设备及存储介质,具有以下有益效果:
本申请通过对目标数据发起传输后,根据应答情况确定目标数据中的丢包指令数据,进而对每个丢包指令数据单独进行重传。在云游戏场景下,通过在用户端对已发起传输的指令数据进行超时检测或对接收到的应答消息进行分析,可以使用户端能够及时地获知数据传输的丢包和超时情况,并且针对每条丢包指令数据,可以对每条丢包指令数据单独进行重传处理,可以提高服务端接收成功的可能性,保证数据重传在毫秒级的延迟需求上更可靠更快速地从用户端到达服务端,解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据重传方法的方法实现流程图;
图2为本申请实施例提供的数据重传方法中用户端与服务端进行数据传输的一种交互示意图;
图3为本申请实施例提供的数据重传方法中用户端与服务端进行数据传输的另一种交互示意图;
图4为本申请实施例提供的一种数据重传装置的基础结构框图;
图5为本申请实施例提供的一种电子设备的基本结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参阅图1,图1为本申请实施例提供的一种数据重传方法的方法实现流程图,具体可以包括步骤S11至步骤S12。
S11:对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列。
云游戏的实现过程具体为用户在用户端输入各种游戏控制指令,由用户端通过WebRTC的数据通道将表征这些游戏控制指令的数据发送到服务端的WebRTC传输层,进而由服务端从接收到的数据中拆分出控制指令,并执行到游戏上。在云游戏应用场景中,从用户端传输给服务端的控制指令每秒可多达上百条,且单条控制指令的数据量比较小,整体传输速率在30kbps以下,但数据及时性要求较高,期望延时在毫秒级别。在本实施例中,目标数据为用户端需要发送给服务端的指令数据序列,指令数据按照产生的时间进行排序。
在用户端,对目标数据发起传输后,可以根据应答情况来确定目标数据中的丢包指令数据。其中,应答情况指的是客户端当前能够确定的指令数据在服务端的接收情况,包括客户端确定指令数据在服务端已被接收的情况和达到超时时间客户端不能确定指令数据在服务端是否被接收的情况。在本实施例中,应答情况可以是用户端接收到的应答消息,也可以是用户端中设定的超时检测机制进行超时检测时获得的检测结果。
S12:对每条丢包指令数据单独进行重传处理。
在用户端,确定了目标数据中的丢包指令数据后,可以根据这些丢包指令数据进行数据重传。具体为针对每一条丢包指令数据单独进行重传,其中,单独是指将丢包指令数据所对应的数据信息逐条进行拆分,使得一条指令丢包指令数据对应一份数据信息。在本实施例中,进行重传的过程可以为:将丢包指令数生成为重传数据包,将数据重传包发送给服务端。在一些具体的实施例中,根据应答情况,如果确定目标数据中的丢包指令数据多于一条的情况下,则针对每条丢包指令数据,一条丢包指令数据可以各自对应生成一个重传数据包,从而实现对每条丢包指令数据单独进行重传处理。可以理解的是,在丢包指令数据多于一条的情况下,每条丢包指令数据所对应生成的数据重传包可以同时发送给服务端。由于一个重传数据包里只包含一条丢包指令数据,以此,可以提高服务端接收成功的可能性。而且,通过单独重传,如果所有需要重传的指令数据中只有部分被服务端接收,用户端随后可通过接收服务端的应答情况,对没有被服务端接收的部分指令数据发起新的重传,如果所有需要重传的指令数据全部被服务端接收则不需再次重传,避免了所有需要重传的控制指令放在一个重传数据包中进行重传时,如果有控制指令未被服务端接收则全部都需要被重传而导致用户端重传延迟和滞后明显的问题。
上述实施例提供的数据重传方法可以在云游戏场景下,通过在用户端对已发起传输的指令数据进行超时检测或对接收到的应答消息进行分析,可以使得用户端能够及时地获知数据传输的丢包和超时情况,并且针对每条丢包指令数据,可以对每条丢包指令数据单独进行重传处理,可以提高服务端接收成功的可能性,保证数据重传在毫秒级的延迟需求上更可靠更快速地从用户端到达服务端,解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。
在一些具体的实施例中,在用户端,对目标数据发起传输后,服务端如果接收到目标数据,服务端会通过向用户端反馈应答消息来告知用户端,已接收到该目标数据。在本实施例中,用户端可以通过对消息接收接口进行监测,以此来获得应答消息,进而,根据应答消息来确定目标数据中的丢包指令数据。具体地,在服务端,每接收到一条指令数据,会立即进行应答,如sack(选择性确认)应答,向用户端反馈关于该指令数据的应答消息。用户端就可以通过将当前已发起传输的指令数据与获得的应答消息进行比对分析,以此确定是否存在指令数据已发起传输但是没有接收到对应应答消息的情况,如果存在,则将该指令数据确定为丢包指令数据。在本实施例中,服务端不需要等待接收到多条指令数据后才进行一次应答,使得用户端能够更加及时地接收到应答消息,从而判断是否有丢包的情况发生,有效解决用户端的数据重传存在延迟和滞后明显的问题。
在一些具体的实施例中,服务端可以根据当前时刻接收到的指令数据所对应的指令标识,生成一个用来表示服务端的指令数据接收情况的指令标识序列,将该指令标识序列携带在应答消息中发给用户端。用户端接收到应答消息后,即可根据应答消息中携带的指令标识序列来确定目标数据中的丢包指令数据。
在一些具体的实施例中,服务端在生成指令标识序列时,指令标识序列中记录有服务端从已接收指令数据中确定的连续最大指令标识、当前最大指令标识以及位于连续最大指令标识与当前最大指令标识之间的指令标识。客户端获得指令标识序列后,可以根据该指令标识序列中记录的连续最大指令标识、当前最大指令标识以及位于连续最大指令标识与当前最大指令标识之间的指令标识,确定缺失的指令标识,进而将缺失的指令标识所对应的指令数据确定为目标数据中的丢包指令数据。
举例说明,在一些具体的实施例中,例如服务端当前接收到的指令数据中,当前最大指令标识为10,在10之前还有指令标识1,2,3,4,5,6,7,8,9。如果10之前的所有指令标识对应的指令数据都已被服务端接收到,那么,此时服务端从已接收指令数据中确定的连续最大指令标识为10,当前最大指令标识也为10,位于连续最大指令标识与当前最大指令标识之间无指令标识,因此,服务端生成的指令标识序列为sack 10...10。客户端接收该指令标识序列后,可以基于该指令标识序列确定连续最大指令标识与当前最大指令标识之间不存在缺失的指令标识,从而确定目标数据中没有丢包指令数据。
举例说明,在一些具体的实施例中,例如服务端当前接收到的指令数据中,当前指令标识为10,在10之前还有指令标识1,2,3,4,5,6,7,8,9。如果在10之前,指令标识为3和指令标识为4的指令数据未被服务端接收,那么,此时服务端从已接收指令数据中确定的连续最大指令标识为2,当前最大指令标识为10,位于连续最大指令标识与当前最大指令标识之间的指令标识包括5,6,7,8,9,因此,服务端生成的指令标识序列为sack2...5,6,7,8,9,10。在一些具体的实施例中,针对只有一处缺失指令标识的情况,还可以将出现缺失指令标识之后的第一个记录的指令标识到当前最大指令标识之间的指令标识省略记录,即服务端生成的指令标识序列为sack2...5,10。
举例说明,在一些具体的实施例中,对于有多处缺失指令标识的情况,还可以针对相邻两处缺失指令标识的情况,将前一处缺失指令之后的第一个记录的指令标识到后一处缺失指令标识之前的最后一个记录的指令标识之间的指令标识省略记录。例如,例如服务端当前接收到的指令数据中,当前指令标识为10,在10之前还有指令标识1,2,3,4,5,6,7,8,9。如果在10之前,指令标识为3、指令标识为5和指令标识为8的指令数据未被服务端接收,那么,此时服务端从已接收指令数据中确定的连续最大指令标识为2,当前最大指令标识为10,位于连续最大指令标识与当前最大指令标识之间的指令标识包括4,6,7,9,因此,服务端生成的指令标识序列可以为sack2...4...6,7...9,10。
示例性的,请一并参阅图2,图2为本申请实施例提供的数据重传方法中用户端与服务端进行数据传输的一种交互示意图。目标数据为由多条指令数据组成的指令数据序列,指令数据按照产生的时间先后顺序依次发送至服务端。如图2所示,Client表示为云游戏用户端,Server表示为云游戏服务端,Ta、Ta+T、Tb、Tc、Tc+T、Td、Td+T、Te、Te1、Te1+T、Tf、Tf+T、Tg表示时间点,da、db、dc、dd表示用户端发起传输的指令数据,sack da...da、sackda...dc、sack dd...dd表示服务端反馈的应答消息,打“×”表示用户端发起过传输但未接收到对应应答消息的指令数据,虚线表示发起一次重传,该次重传的重传数据包中包含有db指令数据。
在一些具体的实施例中,用户端还可以在数据传输过程中,利用设定的超时检测机制进行超时检测,获得对应的检测结果,进而基于检测结果来确定目标数据中的丢包指令数据。具体地,用户端在对目标数据发起传输后,启动超时检测机制对目标数据中已发起传输的指令数据进行超时检测,获得检测结果。如果检测结果中显示为检测到有指令数据超过超时时间仍未接收到应答消息,则此时,将该超过超时时间仍未接收到应答消息的指令数据确定为目标数据中的丢包指令数据。在本实施例中,超时时间可以根据数据传输往返时延值确定,超时时间大于或等于数据传输往返时延值。
示例性的,请一并参阅图3,图3为本申请实施例提供的数据重传方法中用户端与服务端进行数据传输的另一种交互示意图。通过超时检测确定目标数据中的丢包指令数据时,如图3所示,Client表示为云游戏用户端,Server表示为云游戏服务端,Ta、Ta+T、Tb、Tc、Tc+T、Td、Td+T、Te、Te+T、Tc+rto、Tc+rto+T表示时间点,da、db、dc、dd表示用户端发起的指令数据,sack da...da表示服务端对收到的指令数据进行的sack应答消息,打“×”表示用户端发起过传输但未接收到应答消息的指令数据,rto表示超时重传时间,虚线表示用户端在在Tc+rto时刻未收到服务端反馈的应答消息时,且在Tc+rto时刻监测到db指令数据及dc指令数据都已超时,则此时发起两次重传,一个重传数据包中包含有db指令数据,另一个重传数据包中则包含有dc指令数据。
在一些具体实施例中,用户端进行超时检测的过程具体可以为:对目标数据发起传输后,根据超时时间设置超时检测时间点,通过监听时间,当监听到时间到达超时检测时间点时,在该超时检测时间点,按照时序对目标数据中已发起传输的指令数据逐一进行超时检测,直至检测到未超时的指令数据为止,在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将该超过超时时间仍未接收到应答消息的指令数据的指令标识输出为检测结果。进而基于检测结果,可以根据该检测结果中记录的指令标识,将该超过超时时间仍未接收到应答消息的指令数据确定为目标数据中的丢包指令数据。在本实施例中,超时时间可以根据数据传输往返时延值确定,超时时间大于或等于数据传输往返时延值。
在一些具体的实施例中,指令数据产生的时间即为指令数据发起传输的时间,即传输时间点,指令数据按照产生的时间先后顺序依次发送至服务端。在本实施例中,根据超时时间设置超时检测时间点时,具体可以为:在对目标数据发起传输开始,根据目标数据中发起传输的第一个指令数据所对应的传输时间点,在该传输时间点的基础上增加一个超时时间,获得一个对应的时间点,将该获得的时间点设置为数据传输的第一个超时检测时间点。当时间到达第一个超时检测时间点并进行超时检测之后,根据该超时检测之后发起传输的第一个指令数据所对应的传输时间点,在该传输时间点的基础上增加一个超时时间,即可获得第二个超时检测时间点。可以理解的是,该超时检测之后发起传输的第一个指令数据所对应的传输时间点可以与第一个超时检测时间点一致,也可以是第一个超时检测时间点之后的任意时间点。以此类推,第二个超时检测时间点之后的任意一个超时检测时间点均可以根据前一次超时检测之后发起传输的第一个指令数据所对应的传输时间点,将该超时检测时间点设置为:该前一次超时检测之后发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点。
在一些具体的实施例中,在数据传输过程中,针对第一个超时检测时间点,在进行超时检测时,以目标数据中已发起传输的第一个指令数据为检测起点,按照时序对已发起传输的指令数据逐一进行超时检测,检测各个已发起传输的指令数据是否超过超时时间,直至检测到第一个未超时的指令数据为止,停止超时检测。
举例说明,例如监听到时间到达第一个超时检测时间点时,有10个指令数据已发起传输,该10个指令数据的传输时间点分别为:1.001秒、1.007秒、1.011秒、1.023秒、2.036秒、2.254秒、2.255秒、3.039秒、4.338秒、4.809秒,假设超时时间设定为5秒,此时第一个超时检测时间点为第6.001秒,即在该第6.001秒开始对上述的10个指令数据按照时序逐一进行超时检测,假设第1个指令数据在第5.003秒接收到应答消息,第2个指令数据未接收到应答消息,第3个指令数据未接收到应答消息,第4个指令数据在第5.033秒接收到应答消息,第5至10个指令数据未接收到应答消息。在检测各个已发起传输的指令数据是否超过超时时间时,在第6.010秒检测第1个指令数据,检测结果为第1个指令数据在第5.003秒接收到应答消息,可以确定该第1个指令数据不是丢包指令数据。在第6.020秒检测第2个指令数据,由于第2个指令数据在第6.001秒之前未接收到应答消息,通过将检测该第2个指令数据是否超时的时间点6.020秒减去该第2个指令数据的传输时间点1.007秒,得到差值为5.013秒,将该差值5.013秒与超时时间5秒比对,由于5.013秒>5秒,因此,检测结果为第2个指令数据已超过超时时间仍未接收到应答消息。第3个指令数据在第6.001秒之前未接收到应答消息,则通过将检测该第3个指令数据是否超时的时间点6.030秒减去该第3个指令数据的传输时间点1.011秒,得到差值为5.019秒,将该差值5.019秒与超时时间5秒比对,由于5.019秒>5秒,因此,检测结果为第3个指令数据已超过超时时间仍未接收到应答消息。在第6.040秒检测第4个指令数据,检测结果为第4个指令数据在第5.033秒接收到应答消息,可以确定该第4个指令数据不是丢包指令数据。第5个指令数据在第6.001秒之前未接收到应答消息,则通过将检测该第5个指令数据是否超时的时间点6.050秒减去该第5个指令数据的传输时间点2.036秒,得到差值为4.014秒,将该差值4.014秒与超时时间5秒比对,由于4.014秒<5秒,因此,检测结果为第5个指令数据未超时,此时,停止超时检测。即第6至10个指令数据不做超时检测。根据检测结果,确定第2个指令数据和第3个指令数据为丢包指令数据。在停止超时检测后立即对该第2个指令数据和第3个指令数据单独进行重传处理。
在本实施例中,在数据传输过程中,针对第二个超时检测时间点以及之后的任意一个超时检测时间点,在进行超时检测时,以上一个超时检测时间点检测到的未超时的指令数据为检测起点,按照时序对已发起传输的指令数据再次逐一进行超时检测,直至再次检测到未超时的指令数据为止,停止超时检测。
举例说明,例如监听到时间到达第二个超时检测时间点时,有20个指令数据已发起传输,该20个指令数据的传输时间点分别为:1.001秒、1.007秒、1.011秒、1.023秒、2.036秒、2.254秒、2.255秒、3.039秒、4.338秒、4.809秒、6.319秒、6.319秒、6.320秒、6.324秒、6.325秒、6.453秒、8.911秒、8.993秒、9.013秒、11.041秒。第一个超时检测时间点为第6.001秒,第6.001秒后发起传输的第一个指令数据所对应传输时间点为6.319秒,则根据该6.319秒可以设置第二个超时检测时间点为11.319秒,即在该第11.319秒开始进行新一轮的超时检测。其中,从第5个指令数据开始按照时序逐一进行超时检测,直至在这一轮超时检测中检测到第一个未超时的指令数据为止,停止超时检测。根据检测结果,确定该第5个指令数据到这一轮超时检测中检测到第一个未超时的指令数据之间的所有指令数据中的丢包指令数据。进而在停止超时检测后立即对每个确定的丢包指令数据单独进行重传处理。
在一个具体的实施例中,用户端发送指令数据给服务端后,服务端会在接收到指令数据后向用户端反馈关于该指令数据的应答消息,以此告知用户端指令数据已成功送达服务端。在设定超时时间时,可以采用如下计算公式进行计算:超时时间=9/8*数据传输往返时延值。在本实施例中,相对于标准计算方法,本申请采用的计算公式所计算出的预设时长值相对于数据传输往返时延值的关系恒定,不需要参考历史数据,数据传输往返时延值的波动变化对预设时长值的影响较小,能够更准确地进行超时检测,如有超时,也能更及时地进行重传。本申请的计算公式参考了探测超时时间pto计算方法pto=max(kTimeThreshold*max(smoothed_rtt,latest_rtt),kGranularity),其中,kGranularity值为1ms,系数kTimeThreshold使用9/8,smoothed_rtt表示为平滑化的数据传输往返时延值,latest_rtt表示为最新测得的数据传输往返时延值。
基于上述实施例,通过设定超时时间=9/8*数据传输往返时延值,可以确保已发起传输的指令数据在超时检测时间点已经经历过一个数据传输往返时间,避免指令数据正常传输但由于应答消息还在发送给客户端途中而被检测为超时,从而导致正常传输的指令数据被误判为丢包指令数据的情况,保证数据重传的准确性。根据前一个超时检测时间点之后发起传输的第一个指令数据所对应的传输时间点,在该传输时间点的基础上增加一个超时时间来获得后一个超时检测时间点,可以确保该前一个超时检测时间点之后发起传输的指令数据在后一个超时检测时间点已经经历过一个数据传输往返时间,避免该前一个超时检测时间点之后发起传输的指令数据可能存在正常传输但由于应答消息还在发送给客户端途中而被检测为超时,从而导致该前一个超时检测时间点之后发起传输的指令数据在后一个超时检测时间点被误判为丢包指令数据的情况,保证了数据重传的准确性。
在一种具体的实施例中,如图2和图3所示,针对目标数据中每条指令数据,还可以在指令数据发出后进行时间监测,经过预设延时值T后,再冗余发出该指令数据,以此提高服务端接收指令数据的可靠性。可以理解的是,预设延时值设置得很短,一般为几毫秒(如2毫秒),远小于超时时间。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在一些具体的实施例中,请参阅图4,图4为本申请实施例提供的一种数据重传装置的基础结构框图。本实施例中该装置包括的各单元用于执行上述方法实施例中的各步骤。具体请参阅上述方法实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图4所示,数据重传装置包括:确定模块41和重传模块42。其中:确定模块41用于对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列。重传模块42用于对每条丢包指令数据单独进行重传处理。
应当理解的是,数据重传装置,与上述的数据重传方法一一对应,此处不再赘述。
本申请的一些实施例中,请参阅图5,图5为本申请实施例提供的一种电子设备的基本结构框图。如图5所示,该实施例的电子设备5包括:处理器51、存储器52以及存储在所述存储器52中并可在所述处理器51上运行的计算机程序53,例如数据重传方法的程序。处理器51执行所述计算机程序53时实现上述各个数据重传方法各实施例中的步骤。或者,所述处理器51执行所述计算机程序53时实现上述数据重传装置对应的实施例中各模块的功能。具体请参阅实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序53可以被分割成一个或多个模块(单元),所述一个或者多个模块被存储在所述存储器52中,并由所述处理器51执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序53在所述电子设备5中的执行过程。例如,所述计算机程序53可以被分割成:确定模块和重传模块,各模块的功能如上所述。
所述电子设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器52可以是所述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。所述存储器52也可以是所述电子设备5的外部存储设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器52还可以既包括所述电子设备5的内部存储单元也包括外部存储设备。所述存储器52用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。在本实施例中,所述计算机可读存储介质可以是非易失性,也可以是易失性。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据重传方法,其特征在于,包括:
对目标数据发起传输后,根据应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列;
对每条丢包指令数据单独进行重传处理;其中,单独是指将丢包指令数据所对应的数据信息逐条进行拆分,使得一条丢包指令数据对应一份数据信息;
所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:
根据指令标识序列中记录的指令标识,确定缺失的指令标识,将所述缺失的指令标识所对应的指令数据确定为所述目标数据中的丢包指令数据,其中,所述指令标识序列中记录的指令标识包括服务端从已接收指令数据中确定的连续最大指令标识、当前最大指令标识以及位于所述连续最大指令标识与所述当前最大指令标识之间的指令标识。
2.根据权利要求1所述的数据重传方法,其特征在于,所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:
在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将所述指令数据确定为所述目标数据中的丢包指令数据,所述超时时间根据数据传输往返时延值确定。
3.根据权利要求2所述的数据重传方法,其特征在于,所述在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将所述指令数据确定为所述目标数据中的丢包指令数据的步骤,包括:
在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测,将所述已发起传输的指令数据中已超过超时时间仍未接收到应答消息的指令数据确定为所述目标数据中的丢包指令数据。
4.根据权利要求3所述的数据重传方法,其特征在于,所述在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测的步骤之前,还包括将所述超时检测时间点设置为:
所述目标数据中发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点;或者
每次超时检测之后发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点。
5.根据权利要求3或4所述的数据重传方法,其特征在于,所述在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测的步骤,包括:
在所述超时检测时间点是数据传输过程中的第一个超时检测时间点的情况下,以所述目标数据中已发起传输的第一个指令数据为检测起点,按照时序对所述已发起传输的指令数据逐一进行超时检测,直至检测到第一个未超时的指令数据为止,停止超时检测;
在所述超时检测时间点不是数据传输过程中的第一个超时检测时间点的情况下,以上一个超时检测时间点检测到的未超时的指令数据为检测起点,按照时序对所述已发起传输的指令数据再次超时检测,直至再次检测到未超时的指令数据为止,停止超时检测。
6.根据权利要求2-4任意一项所述的数据重传方法,其特征在于,所述方法还包括:
将所述超时时间确定为9/8*数据传输往返时延值。
7.根据权利要求1至4任意一项所述的数据重传方法,其特征在于,所述方法还包括:
针对每条指令数据,对所述指令数据发起传输并经过预设延时值后,对所述指令数据进行冗余传输处理。
8.一种数据重传装置,其特征在于,所述数据重传装置包括:
确定模块,用于对目标数据发起传输后,根据应答情况确定所述目标数据中的丢包指令数据;
重传模块,用于对每个丢包指令数据进行单独重传处理;其中,单独是指将丢包指令数据所对应的数据信息逐条进行拆分,使得一条丢包指令数据对应一份数据信息;
其中,所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:根据指令标识序列中记录的指令标识,确定缺失的指令标识,将所述缺失的指令标识所对应的指令数据确定为所述目标数据中的丢包指令数据,其中,所述指令标识序列中记录的指令标识包括服务端从已接收指令数据中确定的连续最大指令标识、当前最大指令标识以及位于所述连续最大指令标识与所述当前最大指令标识之间的指令标识。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202310575502.6A 2023-05-19 2023-05-19 数据重传方法、装置、电子设备及存储介质 Active CN116566552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310575502.6A CN116566552B (zh) 2023-05-19 2023-05-19 数据重传方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310575502.6A CN116566552B (zh) 2023-05-19 2023-05-19 数据重传方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116566552A CN116566552A (zh) 2023-08-08
CN116566552B true CN116566552B (zh) 2026-03-06

Family

ID=87501609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310575502.6A Active CN116566552B (zh) 2023-05-19 2023-05-19 数据重传方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116566552B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818005A (zh) * 2019-12-26 2020-10-23 厦门雅基软件有限公司 数据包处理方法、装置、电子设备及可读存储介质
CN113992307A (zh) * 2021-10-28 2022-01-28 国网信息通信产业集团有限公司 数据报文的传输方法、装置、电子设备及计算机存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109379386A (zh) * 2018-12-13 2019-02-22 广州市百果园信息技术有限公司 一种消息传输方法、装置、设备及介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818005A (zh) * 2019-12-26 2020-10-23 厦门雅基软件有限公司 数据包处理方法、装置、电子设备及可读存储介质
CN113992307A (zh) * 2021-10-28 2022-01-28 国网信息通信产业集团有限公司 数据报文的传输方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
CN116566552A (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US9872198B2 (en) Systems and methods for data transmission
US9143418B2 (en) Network transmission capacity measurement
US8886795B2 (en) Method and system for determining response time of a server
US20210392533A1 (en) Sidelink monitoring method for vehicle communication and related apparatus
CN110620738B (zh) 带宽分配方法、装置、设备及存储介质
US9490992B2 (en) Remote conference saving system for managing missing media data and storage medium
CN113923140B (zh) 往返时延测量方法、系统和存储介质
CN110247942B (zh) 一种数据发送方法、装置和可读介质
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
CN113746910A (zh) H5页面重连服务器的方法、终端及可读存储介质
EP3806403B1 (en) Apparatus and method for managing message transmission delay
CN102271067B (zh) 网络检测方法、装置及系统
CN107493486B (zh) 一种视频播放终止的方法、系统及终端设备
CN116566552B (zh) 数据重传方法、装置、电子设备及存储介质
CN117938980B (zh) 应用于内容分发网络的数据传输方法、装置、设备及介质
CN111970340B (zh) 信息传输方法、可读存储介质和电子设备
CN114124754B (zh) 用于处理多媒体网络中媒体数据包的方法及其相关产品
CN111600808A (zh) 一种用于即时通讯的信息处理方法和装置
US9882751B2 (en) Communication system, communication controller, communication control method, and medium
JP5229231B2 (ja) 呼処理時間測定装置、呼処理時間測定方法および呼処理時間測定用プログラム
CN113645103A (zh) 视频监控平台与前端设备间通信链路异常检测方法及装置
US20030233448A1 (en) Method and apparatus for measuring multi-connection performance of a server
CN113595834B (zh) 检测视联网设备数据处理能力的方法及装置
CN112714043B (zh) 一种网速检测方法、装置、终端设备和存储介质
CN116915437A (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
CB02 Change of applicant information

Country or region after: China

Address after: 518000 Port Building 0610-E36, Ocean Shipping Center, No. 59 Linhai Avenue, Nanshan Street, Qianhai Shenzhen Hong Kong Cooperation Zone, Shenzhen, Guangdong Province

Applicant after: Shenzhen Qianhai Network Technology Co.,Ltd.

Address before: 518000 Port Building 0610-E36, Ocean Shipping Center, No. 59 Linhai Avenue, Nanshan Street, Qianhai Shenzhen Hong Kong Cooperation Zone, Shenzhen, Guangdong Province

Applicant before: Shenzhen Yunwang Wulian Technology Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant