CN113708895B - 数据传输方法、装置及电子设备 - Google Patents
数据传输方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113708895B CN113708895B CN202010439565.5A CN202010439565A CN113708895B CN 113708895 B CN113708895 B CN 113708895B CN 202010439565 A CN202010439565 A CN 202010439565A CN 113708895 B CN113708895 B CN 113708895B
- Authority
- CN
- China
- Prior art keywords
- data packet
- sequence
- sending
- lost
- data
- 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
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明提供了一种数据传输方法、装置及电子设备,涉及数据传输技术领域,该方法包括向目标设备发送预设第一数量的数据包时,记录该预设第一数量的数据包的发送顺序;接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;如果存在丢失数据包,向该目标设备发送该丢失数据包。本发明实施例通过数据包确认信号的接收顺序以及数据包的发送顺序,可以更快速地判断是否存在丢失数据包,并且通过修改数据包重传的时间间隔,在同一个数据包多次重传时,缩短丢包重传的耗时,有效缓解了网络直播中因丢包而导致的卡顿问题。
Description
技术领域
本发明涉及数据传输技术领域,尤其是涉及一种数据传输方法、装置及电子设备。
背景技术
网络直播是一种可以在同一时间透过网络系统在不同的交流平台观看影片的新兴网络社交方式,网络直播平台也逐渐成为了一种崭新的社交媒体。直播数据在传输过程中,由于网络原因可能会导致丢包重传,而数据包重传通常使用的是TCP(TransmissionControl Protocol,传输控制协议)的重传机制,重传时间会以2的倍数出现几何增长。此外,由于重传时间的限制,即使是轻微的网络抖动也会导致网络直播出现卡顿。
整体而言,现有直播数据传输方式,在丢包重传时,由于重传时间较长,会导致直播中因丢包重传而出现卡顿。
发明内容
有鉴于此,本发明的目的在于提供一种数据传输方法、装置及电子设备,可以减少丢包数据的重传耗时,缓解直播中因丢包而导致的卡顿现象。
第一方面,本发明实施例提供了一种数据传输方法,包括:向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序;接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应;根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包;如果存在丢失数据包,向该目标设备发送该丢失数据包。
在本发明较佳的实施例中,上述根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包的步骤,包括:比较当前时刻该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序是否相同;如果否,根据该目标设备已接收到的数据包在发送顺序中的序号,确定当前时刻已发送但该目标设备还未收到的目标数据包;如果在当前时刻之后,该目标设备接收到的预设第二数量的数据包中,不包括该目标数据包,确认存在丢失数据包。
本发明较佳的实施例中,上述根据该目标设备已接收到的数据包在发送顺序中的序号,确定当前时刻已发送但该目标设备还未收到的目标数据包的步骤,包括:从该目标设备已接收到的数据包在发送顺序的序号中,筛选出最大序号;将该最大序号,与数据包发送队列中各个数据包在发送顺序中的序号进行比较,将小于该最大序号的序号对应的数据包,确定为当前时刻已发送但还未接收到的目标数据包;其中,该数据包发送队列中仅保留当前时刻还未接收到确认信号的数据包。
本发明较佳的实施例中,在上述如果在当前时刻之后,该目标设备接收到的预设第二数量的数据包中,不包括该目标数据包,确认存在丢失数据包的步骤之后,该方法还包括:确定该目标数据包为丢失数据包。
本发明较佳的实施例中,上述如果存在丢失数据包,向该目标设备发送该丢失数据包的步骤,包括:如果存在丢失数据包,根据该数据包的发送顺序和该确认信号的接收顺序确定该丢失数据包;向该目标设备发送该丢失数据包。
本发明较佳的实施例中,上述发送顺序包括发送序号,接收顺序包括接收序号;上述如果存在丢失数据包,根据该数据包的发送顺序和该确认信号的接收顺序确定该丢失数据包的步骤,包括:如果存在丢失数据包,将该确认信号对应的数据包的发送序号的前N个发送序号,对应的数据包确定为丢失数据包;其中,N为该确认信号对应的数据包的发送序号与该确认信号的接收序号的差值。
本发明较佳的实施例中,上述向该目标设备发送丢失数据包的步骤,包括:判断该丢失数据包是否为第一次重发,得到判断结果;根据该判断结果确定对应的重发时间间隔;根据该重发时间间隔向该目标设备发送丢失数据包。
本发明较佳的实施例中,上述根据该判断结果确定对应的重发时间间隔的步骤,包括:如果该丢失数据包是第一次重发,确定重发时间间隔为2毫秒;如果该丢失数据包不是第一次重发,确定该重发时间间隔为2*kn-1毫秒;其中,k<2且k为正数,n为该丢失数据包的重发次数。
本发明较佳的实施例中,上述方法还包括:将已发送的数据包保存到指定存储位置;当接收到该目标设备针对接收到的数据包的确认信号时,将该确认信号对应的数据包从该指定存储位置删除;当需要向该目标设备发送丢失数据包时,从该指定存储位置获取该丢失数据包。
第二方面,本发明实施例还提供了一种数据传输装置,包括:数据包发送顺序记录模块,用于向目标设备发送预设第一数量的数据包时,记录该预设第一数量的数据包的发送顺序;确认信号接收模块,用于接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与该数据包一一对应;丢失数据包确认模块,用于根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包;丢失数据包发送模块,用于如果存在丢失数据包,向该目标设备发送该丢失数据包。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被该处理器执行的计算机可执行指令,该处理器执行该计算机可执行指令以实现上述数据传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述数据传输方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种数据传输方法、装置及电子设备,向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序;接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应;根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包;如果存在丢失数据包,向该目标设备发送该丢失数据包。该方式中,基于数据包在接收端的接收顺序和其在发送端的发送顺序理论上一致的原理,通过数据包确认信号的接收顺序以及数据包的发送顺序,可以快速判断是否存在丢失数据包,从而及时重发丢失数据包,可以减少丢包数据的重传耗时,缓解直播中因丢包而导致的卡顿现象。此外,当同一个数据包多次重传时,还通过修改重传的时间间隔,进一步缩短了丢包重传的耗时。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据传输方法的流程示意图;
图2为本发明实施例提供的另一种数据传输方法的流程示意图;
图3为本发明实施例提供的另一种数据传输方法的流程示意图;
图4为本发明实施例提供的一种数据传输装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
图标:
31-数据包发送顺序记录模块;32-确认信号接收模块;33-丢失数据包确认模块;34-丢失数据包发送模块;41-处理器;42-存储器;43-总线;44-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到现有的数据传输方式在丢包重传时的耗时较长的问题,本发明实施例提供的一种数据传输方法、装置及电子设备,该技术可以应用于涉及数据传输的各种应用场景中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据传输方法进行详细介绍。
参见图1,所示为本发明实施例提供的一种数据传输方法的流程示意图,由图1可见,该数据传输方法包括以下步骤:
步骤S102:向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序。
这里,目标设备可以是通讯设备,例如移动电话、交换机等,也可以是其他智能设备,例如计算机、机器人等等。在其中一种可能的实施方式中,该数据传输方法应用于服务端,并且主动向上述目标设备发送数据包,也可以是在接收到该目标设备的数据访问请求时,触发向该目标设备发送数据包。以网络直播的应用场景为例,当用户终端向服务端发送某视频的访问请求时,服务端向该用户终端发送该视频的数据包。
其中,在向目标设备发送数据包时,还确定该预设第一数量的数据包的发送顺序。这里,可以在发送数据包时记录已发送数据包的发送顺序;也可以预先设置数据包的发送顺序,并以按照该发送顺序依次发送各个数据包,在发送数据包时,直接获取该预设的发送顺序。
在实际操作中,可以通过记录每个数据包的发送时间(例如时间戳),从而根据发送时间确定每个数据包的发送顺序。此外,还可以通过记录数据包的发送序号,同样可以确定各个数据包的发送顺序。在实际操作中,还可以通过其他方式记录该预设第一数量的数据包的发送顺序,在此不作限定。
步骤S104:接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应。
在本实施例中,当目标设备接收到数据包时,针对每一个接收到的数据包,均向数据包的发送端返回一个相应的确认信号,也即,确认信号与接收到的数据包一一对应。这里,该确认信号可以是ACK(Acknowledge character,确认字符)信号,其中,ACK信号是在数据通信中,由接收端发给发送端的一种传输类控制字符,表示发来的数据已确认接收无误。
此外,在接收到数据包的确认信号时,相应地,还记录该确认信号的接收顺序。这里,确认信号的接收顺序的记录方式,与前述数据包的发送顺序的记录方式相似,可以是通过记录确认信号的接收时间的方式,或者是记录确认信号的接收序号的方式,或其他可能的方式。
步骤S106:根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包。
理论而言,对于数据包的发送端,预设第一数量的数据包的发送顺序,与该发送端接收到这些数据包的确认信号的接收顺序应该一致。也即,对于最先发送的数据包,也应最先接收到目标设备返回的针对该数据包的确认信息。同理,对于最后发送的数据包,发送端理应最后接收到该数据包的确认信息。
因此,在其中一种可能的实施方式中,如果该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序不同,则确认存在丢失数据包。
例如,假设发送的数据包的预设第一数量为5个,并且数据包的发送顺序为:数据包A、数据包B、数据包C、数据包D和数据包E,而接收到目标设备针对已接收数据包的确认信号分别为:数据包A的确认信息、数据包B的确认信息、数据包D的确认信息和数据包E的确认信息,这样发现确认信息的接收顺序和数据包的发送顺序不同,因此,确认存在丢失数据包,也即目标设备有未接收到的数据包。
在至少一种可能的实施方式中,当每接收到一个确认信号时,判断该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序是否相同。在上述例子中,当接收到数据包D的确认信息时,即可判断确认信息的接收顺序和数据包的发送顺序不同,而无需所有的数据包确认信息均接收到之后再作出判断,从而可以迅速确定存在数据包丢失的情况。
步骤S108:如果存在丢失数据包,向该目标设备发送该丢失数据包。
在其中一种可能的实施方式中,当确定存在丢失数据包后,首先根据该数据包的发送顺序和该确认信号的接收顺序确定该丢失数据包,然后,向该目标设备发送该丢失数据包。
例如,仍以上述例子说明,数据包的发送顺序为:数据包A、数据包B、数据包C、数据包D和数据包E,而接收到目标设备针对已接收数据包的确认信号分别为:数据包A的确认信息、数据包B的确认信息、数据包D的确认信息和数据包E的确认信息;其中,当接收到数据包D的确认信息时,即可判断数据包C丢失,因而,向目标设备重新发送该数据包C。
相比于现有数据传输方式,现有方式基于传输控制协议(TCP,TransmissionControl Protocol)进行丢包重传,在该方式中,如果超过预设的时间没有接收数据包的确认信息,则判断该数据包丢失,再进行重传,这种方式等等确认数据包丢失的时间较长。而本发明提供的数据传输方法,可以更加迅速地判断数据包丢失,从而更快进行重传,缩短了数据包重传时间。在网络直播应用场景中,该技术可以有效缓解因网络抖动等原因引起的丢包重传,而导致的卡顿现象,提升网络直播的观赏体验。
本发明实施例提供的一种数据传输方法,向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序;接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应;根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包;如果存在丢失数据包,向该目标设备发送该丢失数据包。该方式中,基于数据包在接收端的接收顺序和其在发送端的发送顺序理论上一致的原理,通过数据包确认信号的接收顺序以及数据包的发送顺序,可以快速判断是否存在丢失数据包,从而及时重发丢失数据包,可以减少丢包数据的重传耗时,缓解直播中因丢包而导致的卡顿问题。
在图1所示数据传输方法的基础上,本实施例还介绍了另一种数据传输方法,该方法重点描述上述如果存在丢失数据包,向所述目标设备发送所述丢失数据包的具体实现过程。如图2所示,其为该数据传输方法的流程示意图,其中,该方法包括以下步骤:
步骤S202:向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序。
步骤S204:接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应。
步骤S206:根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包。
步骤S208:如果存在丢失数据包,根据该数据包的发送顺序和该确认信号的接收顺序确定该丢失数据包。
在本实施例中,上述发送顺序包括发送序号,接收顺序包括接收序号,并且,上述如果存在丢失数据包,根据该数据包的发送顺序和该确认信号的接收顺序确定该丢失数据包的步骤,包括:如果存在丢失数据包,将该确认信号对应的数据包的发送序号的前N个发送序号,对应的数据包确定为丢失数据包;其中,N为该确认信号对应的数据包的发送序号与该确认信号的接收序号的差值。
例如,假设数据包的发送顺序为:数据包A、数据包B、数据包C、数据包D和数据包E,这里,这五个数据包对应的发送序号依次递增,假设发送序号分别为A1、B2、C3、D4和E5;而接收到目标设备针对接收到的数据包的确认信号按序分别为:数据包A的确认信息、数据包B的确认信息、数据包D的确认信息和数据包E的确认信息,也即,各自对应的接收序号为A1、B2、D3…这里,可以判断数据包D的确认信息接收序号D3与其发送序号D4不同,因而,可确认存在丢失数据包。并且,丢失数据包为数据包D的发送序号(也即4号)的前1个(4-3得到1)发送序号,也即发送序号3对应的数据包,即数据包C。
同理,如果接收到的数据包的确认信号按序分别为:数据包A的确认信息、数据包B的确认信息、数据包E的确认信息,各自对应的接收序号为A1、B2、E3……可以判断数据包E的确认信息接收序号E3与其发送序号E5不同,因而,可确认存在丢失数据包。并且,丢失数据包为数据包E的发送序号(也即5号)的前2个(5-3得到2)发送序号,也即发送序号3和发送序号4对应的数据包,即数据包C和数据包D。
步骤S210:判断该丢失数据包是否为第一次重发,得到判断结果。
在实际操作中,由于网络抖动等因素,尽管重新传输了丢失数据包,但仍然存在目标设备还是未能接收到的丢失数据包的情况,因此,还需要再次或多次重新传输该丢失数据包。
在本实施例中,发送丢失数据包之前,还对该丢失数据包是否为第一次重发进行判断。
步骤S212:根据该判断结果确定对应的重发时间间隔。
在其中一种可能的实施方式中,如果该丢失数据包是第一次重发,确定重发时间间隔为2毫秒;并且,如果该丢失数据包不是第一次重发,确定该重发时间间隔为2*kn-1毫秒;其中,k<2且k为正数,n为该丢失数据包的重发次数。
这里,k可以根据实际情况进行设置,例如设置为k=1.5,表示重发时间间隔以1.5为基数增长。例如,假设该丢失数据包是第2次重发,则重发时间间隔为2*1.5=3毫秒;假设为第3次重发,则对应的重发时间间隔为2*1.52=4.5毫秒。
步骤S214:根据该重发时间间隔向该目标设备发送丢失数据包。
相比于传统的TCP传输机制,传统传输方式中,丢失数据包的重发时间间隔以2为基数倍增,也即,当同一个丢失数据包第2次重传时,重传时间间隔为4毫秒,第3次重传时间间隔为8毫秒,以此类推。可见,本申请提供的数据传输方法,可以更加快速地将需要重传的丢失数据包发送给目标设备。
此外,在另一种可能的实施方式中,还可以在发送数据包的同时,将已发送的数据包保存到指定存储位置,例如,可以保存到缓存中,并且,当接收到目标设备针对接收到的数据包的确认信号时,将该确认信号对应的数据包从该指定存储位置删除;而当需要向该目标设备发送丢失数据包时,则从该指定存储位置获取该丢失数据包。这样,可以更加快速地获取丢失数据包,进一步缩短丢包重传的耗时。
本实施例提供的数据传输方法,在同一个丢失数据包多次重传时,通过修改重传的时间间隔,进一步缩短了丢包重传的耗时,可以有效改善网络直播等应用场景中,因网络抖动等原因引起的丢包重传而导致的卡顿现象,提升网络直播的观赏体验。
在图1所示数据传输方法的基础上,本实施例提供了另一种数据传输方法,该方法重点描述前述步骤S106(根据所述数据包的发送顺序和所述确认信号的接收顺序,确认是否存在丢失数据包)的具体实现过程。如图3所示,其为该数据传输方法的流程示意图,由图3可见,该方法包括以下步骤:
步骤S302:向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序。
步骤S304:接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应。
这里,本实施例中的步骤S302至步骤S304对应前述实施例中的步骤S102和步骤S104,相关描述可参照前述实施例的对应内容,在此不再赘述。
步骤S306:比较当前时刻该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序是否相同;如果否,执行步骤S308;如果是,执行步骤S302。
如果当前时刻该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序不同,表明存在错序接收的数据包,此时,根据该目标设备已接收到的数据包在发送顺序中的序号,确定当前时刻已发送但该目标设备还未收到的目标数据包;如果当前时刻该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序相同,表明目标设备接收数据包正常。
例如,假设数据包的发送顺序为:数据包1、数据包2、数据包3和数据包4,而接收到目标设备针对已接收数据包的确认信号分别为:数据包1的确认信息、数据包2的确认信息、数据包4的确认信息,其中,在接收到数据包4的确认信息时,比较当前时刻该确认信号的接收顺序1-2-4,与该确认信号对应的数据包的发送顺序1-2-3,发现二者不同,此时,根据目标设备已接收到的数据包在发送顺序中的序号(也即1、2和4),确定当前时刻已发送但该目标设备还未收到的目标数据包。
步骤S308:根据该目标设备已接收到的数据包在发送顺序中的序号,确定当前时刻已发送但该目标设备还未收到的目标数据包。
在其中一种可能的实施方式中,可以通过下述步骤11-12确定当前时刻已发送但该目标设备还未收到的目标数据包:
(11)从该目标设备已接收到的数据包在发送顺序的序号中,筛选出最大序号。
(12)将该最大序号,与数据包发送队列中各个数据包在发送顺序中的序号进行比较,将小于该最大序号的序号对应的数据包,确定为当前时刻已发送但还未接收到的目标数据包;其中,该数据包发送队列中仅保留当前时刻还未接收到确认信号的数据包。
在实际操作中,数据包发送队列中的数据包按预设发送顺序依次发送给上述目标设备,并且,该数据包发送队列中仅保留当前时刻还未接收到确认信号的数据包。例如,假设服务端接收到该目标设备返回的数据包X的确认信号时,表明数据包X发送成功,此时,从数据包发送队列中删除数据包X。
以步骤S306中的例子说明,如果当前时刻该确认信号的接收顺序1-2-4,当接收到数据包4的确认信号时,表明该目标设备已接收到的数据包,在发送顺序的序号中的最大序号为4,而此时数据包发送队列中的数据包包括数据包3、数据包5、数据包6...其中,小于该最大序号(也即序号4)的序号(也即序号3),对应的数据包(也即数据包3)即为当前时刻已发送但还未接收到的目标数据包。
同理,假设当前时刻该确认信号的接收顺序1-2-3-6,依照上述方法可确定出目标数据包为数据包4和数据包5。
步骤S310:如果在当前时刻之后,该目标设备接收到的预设第二数量的数据包中,不包括该目标数据包,确认存在丢失数据包。
在实际操作中,因服务端与目标设备之间的网络不稳定等原因,可能导致某些数据包的接收延迟,其中,通过上述步骤S302至S308确定出的目标数据包,即是当前时刻已发送但还未接收到的数据包。在本实施例中,在当前时刻之后,如果该目标设备接收到的预设第二数量的数据包中,不包括该目标数据包,则确定该目标数据包为丢失数据包。
例如,假设上述第二数量为2个,且数据包的发送顺序为:数据包1、数据包2、数据包3、数据包4、数据包5、数据包6和数据包7,也即,数据包的发送顺序为1-2-3-4-5-6-7;其中,如果服务端接收到的确认信号对应的数据包的顺序依次为1-2-4,此时,在接收到数据包4的确认信号时,判断当前时刻该确认信号的接收顺序和其对应的数据包发送顺序不同,并相应确定出目标数据包为数据包3,这里,如果目标设备在当前时刻之后接收到的2个数据包内,接收到数据包3,则不认为丢失数据包,否则,将数据包3确定为丢失数据包。
步骤S312:向该目标设备发送该丢失数据包。
将确定出的丢失数据包发送给目标设备。这样,即可快速判断是否存在丢失数据包,并及时重发丢失数据包。
本发明实施例提供的一种数据传输方法,优化了对丢失数据包的确认过程,避免了某些在预设延迟接收范围内的数据包被确认为丢失数据包,减少了数据包的重传次数;并且,该方法可以快速判断是否存在丢失数据包,从而及时重发丢失数据包,减少丢包数据的重传耗时,缓解直播中因丢包而导致的卡顿现象。
对应于前述数据传输方法,本发明实施例还提供了一种数据传输装置,参见图4,所示为一种数据传输装置的结构示意图,由图4可见,该装置包括依次连接的数据包发送顺序记录模块31、确认信号接收模块32、丢失数据包确认模块33和丢失数据包发送模块34,其中,各个模块的功能如下:
数据包发送顺序记录模块31,用于向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序;
确认信号接收模块32,用于接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应;
丢失数据包确认模块33,用于根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包;
丢失数据包发送模块34,用于如果存在丢失数据包,向该目标设备发送该丢失数据包。
本发明实施例提供的一种数据传输装置,向目标设备发送预设第一数量的数据包时,确定该预设第一数量的数据包的发送顺序;接收该目标设备针对接收到的数据包的确认信号,并记录该确认信号的接收顺序;其中,该确认信号与接收到的该数据包一一对应;根据该数据包的发送顺序和该确认信号的接收顺序,确认是否存在丢失数据包;该丢失数据包为:已经发送但该目标设备没有收到的数据包;如果存在丢失数据包,向该目标设备发送该丢失数据包。该装置中,通过数据包确认信号的接收顺序以及数据包的发送顺序,可以更快速地判断是否存在丢失数据包,并且通过修改数据包重传的时间间隔,在同一个数据包多次重传时,缩短丢包重传的耗时,有效缓解了网络直播中因丢包而导致的卡顿问题。
在其中一种可能的实施方式中,上述丢失数据包确认模块33还用于:如果该确认信号的接收顺序,与该确认信号对应的数据包的发送顺序不同,确认存在丢失数据包。
在另一种可能的实施方式中,上述丢失数据包发送模块34还用于:如果存在丢失数据包,根据该数据包的发送顺序和该确认信号的接收顺序确定该丢失数据包;向该目标设备发送该丢失数据包。
在另一种可能的实施方式中,上述发送顺序包括发送序号,接收顺序包括接收序号;上述丢失数据包发送模块34还用于:如果存在丢失数据包,将该确认信号对应的数据包的发送序号的前N个发送序号,对应的数据包确定为丢失数据包;其中,N为该确认信号对应的数据包的发送序号与该确认信号的接收序号的差值。
在另一种可能的实施方式中,上述丢失数据包发送模块34还用于:判断该丢失数据包是否为第一次重发,得到判断结果;根据该判断结果确定对应的重发时间间隔;根据该重发时间间隔向该目标设备发送丢失数据包。
在另一种可能的实施方式中,上述丢失数据包发送模块34还用于:如果该丢失数据包是第一次重发,确定重发时间间隔为2毫秒;如果该丢失数据包不是第一次重发,确定该重发时间间隔为2*kn-1毫秒;其中,k<2且k为正数,n为该丢失数据包的重发次数。
在另一种可能的实施方式中,上述装置还包括数据包存储模块,用于将已发送的数据包保存到指定存储位置;数据包删除模块,用于当接收到该目标设备针对接收到的数据包的确认信号时,将该确认信号对应的数据包从该指定存储位置删除;丢失数据包获取模块,用于当需要向该目标设备发送丢失数据包时,从该指定存储位置获取该丢失数据包。
本发明实施例提供的数据传输装置,其实现原理及产生的技术效果和前述数据传输方法实施例相同,为简要描述,数据传输装置的实施例部分未提及之处,可参考前述数据传输方法实施例中相应内容。
本发明实施例还提供了一种电子设备,如图5所示,为该电子设备的结构示意图,其中,该电子设备包括处理器41和存储器42,该存储器42存储有能够被该处理器41执行的机器可执行指令,该处理器41执行该机器可执行指令以实现上述数据传输方法。
在图5示出的实施方式中,该电子设备还包括总线43和通信接口44,其中,处理器41、通信接口44和存储器42通过总线连接。
其中,存储器42可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口44(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器41可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器41读取存储器42中的信息,结合其硬件完成前述实施例的数据传输方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述数据传输方法,具体实现可参见前述方法实施例,在此不再赘述。
本发明实施例所提供的数据传输方法、数据传输装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的数据传输方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
向目标设备发送预设第一数量的数据包时,确定所述预设第一数量的数据包的发送顺序;
接收所述目标设备针对接收到的数据包的确认信号,并记录所述确认信号的接收顺序;其中,所述确认信号与接收到的所述数据包一一对应;
根据所述数据包的发送顺序和所述确认信号的接收顺序,确认是否存在丢失数据包;所述丢失数据包为:已经发送但所述目标设备没有收到的数据包;
如果存在丢失数据包,向所述目标设备发送所述丢失数据包;
所述如果存在丢失数据包,向所述目标设备发送所述丢失数据包的步骤,包括:如果存在丢失数据包,根据所述数据包的发送顺序和所述确认信号的接收顺序确定所述丢失数据包;向所述目标设备发送所述丢失数据包;
所述发送顺序包括发送序号,所述接收顺序包括接收序号;所述如果存在丢失数据包,根据所述数据包的发送顺序和所述确认信号的接收顺序确定所述丢失数据包的步骤,包括:如果存在丢失数据包,将所述确认信号对应的数据包的发送序号的前N个发送序号,对应的数据包确定为所述丢失数据包;其中,N为所述确认信号对应的数据包的发送序号与所述确认信号的接收序号的差值。
2.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述数据包的发送顺序和所述确认信号的接收顺序,确认是否存在丢失数据包的步骤,包括:
比较当前时刻所述确认信号的接收顺序,与所述确认信号对应的数据包的发送顺序是否相同;
如果否,根据所述目标设备已接收到的数据包在发送顺序中的序号,确定当前时刻已发送但所述目标设备还未收到的目标数据包;
如果在当前时刻之后,所述目标设备接收到的预设第二数量的数据包中,不包括所述目标数据包,确认存在丢失数据包。
3.根据权利要求2所述的数据传输方法,其特征在于,所述根据所述目标设备已接收到的数据包在发送顺序中的序号,确定当前时刻已发送但所述目标设备还未收到的目标数据包的步骤,包括:
从所述目标设备已接收到的数据包在发送顺序的序号中,筛选出最大序号;
将所述最大序号,与数据包发送队列中各个数据包在发送顺序中的序号进行比较,将小于所述最大序号的序号对应的数据包,确定为当前时刻已发送但还未接收到的目标数据包;其中,所述数据包发送队列中仅保留当前时刻还未接收到确认信号的数据包。
4.根据权利要求2所述的数据传输方法,其特征在于,在所述如果在当前时刻之后,所述目标设备接收到的预设第二数量的数据包中,不包括所述目标数据包,确认存在丢失数据包的步骤之后,所述方法还包括:
确定所述目标数据包为丢失数据包。
5.根据权利要求1所述的数据传输方法,其特征在于,所述向所述目标设备发送所述丢失数据包的步骤,包括:
判断所述丢失数据包是否为第一次重发,得到判断结果;
根据所述判断结果确定对应的重发时间间隔;
根据所述重发时间间隔向所述目标设备发送所述丢失数据包。
6.根据权利要求5所述的数据传输方法,其特征在于,所述根据所述判断结果确定对应的重发时间间隔的步骤,包括:
如果所述丢失数据包是第一次重发,确定重发时间间隔为2毫秒;
如果所述丢失数据包不是第一次重发,确定所述重发时间间隔为2*kn-1毫秒;其中,k<2且k为正数,n为所述丢失数据包的重发次数。
7.根据权利要求1所述的数据传输方法,其特征在于,所述方法还包括:
将已发送的数据包保存到指定存储位置;
当接收到所述目标设备针对接收到的数据包的确认信号时,将所述确认信号对应的数据包从所述指定存储位置删除;
当需要向所述目标设备发送丢失数据包时,从所述指定存储位置获取所述丢失数据包。
8.一种数据传输装置,其特征在于,包括:
数据包发送顺序记录模块,用于向目标设备发送预设第一数量的数据包时,确定所述预设第一数量的数据包的发送顺序;
确认信号接收模块,用于接收所述目标设备针对接收到的数据包的确认信号,并记录所述确认信号的接收顺序;其中,所述确认信号与接收到的所述数据包一一对应;
丢失数据包确认模块,用于根据所述数据包的发送顺序和所述确认信号的接收顺序,确认是否存在丢失数据包;所述丢失数据包为:已经发送但所述目标设备没有收到的数据包;
丢失数据包发送模块,用于如果存在丢失数据包,向所述目标设备发送所述丢失数据包;
所述丢失数据包发送模块,用于:如果存在丢失数据包,根据所述数据包的发送顺序和所述确认信号的接收顺序确定所述丢失数据包;向所述目标设备发送所述丢失数据包;
所述发送顺序包括发送序号,所述接收顺序包括接收序号;所述丢失数据包发送模块,用于:如果存在丢失数据包,将所述确认信号对应的数据包的发送序号的前N个发送序号,对应的数据包确定为所述丢失数据包;其中,N为所述确认信号对应的数据包的发送序号与所述确认信号的接收序号的差值。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至7任一项所述的数据传输方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至7任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010439565.5A CN113708895B (zh) | 2020-05-21 | 2020-05-21 | 数据传输方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010439565.5A CN113708895B (zh) | 2020-05-21 | 2020-05-21 | 数据传输方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113708895A CN113708895A (zh) | 2021-11-26 |
CN113708895B true CN113708895B (zh) | 2023-04-07 |
Family
ID=78646065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010439565.5A Active CN113708895B (zh) | 2020-05-21 | 2020-05-21 | 数据传输方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113708895B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114268416B (zh) * | 2021-12-16 | 2023-10-24 | 无锡联云世纪科技股份有限公司 | 数据传输方法、装置及电子设备 |
CN114244479A (zh) * | 2021-12-20 | 2022-03-25 | 北京奕斯伟计算技术有限公司 | 数据传输方法、数据传输装置、电子设备及存储介质 |
CN114598651B (zh) * | 2022-02-15 | 2024-04-09 | 阿里巴巴(中国)有限公司 | 数据传输方法以及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979449B (zh) * | 2016-10-25 | 2020-11-20 | 杭州海康威视数字技术股份有限公司 | 一种数据传输方法及装置 |
CN106792262A (zh) * | 2016-12-05 | 2017-05-31 | 乐视控股(北京)有限公司 | 视频数据传输方法及装置 |
CN108494782B (zh) * | 2018-03-28 | 2021-05-18 | 深圳市网心科技有限公司 | 一种基于udp的数据传输方法、终端设备及存储介质 |
CN110620638B (zh) * | 2019-09-27 | 2022-03-22 | 北京奇艺世纪科技有限公司 | 数据传输控制方法及相关设备、存储介质 |
-
2020
- 2020-05-21 CN CN202010439565.5A patent/CN113708895B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113708895A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113708895B (zh) | 数据传输方法、装置及电子设备 | |
US6961780B2 (en) | Suspend state | |
CN110312147B (zh) | 业务数据传输的方法、系统与存储介质 | |
CN106612284B (zh) | 一种流数据的传输方法和装置 | |
CN103269260A (zh) | 数据传输方法、数据接收端、数据发送端和数据传输系统 | |
US20070147335A1 (en) | Data transmission apparatus, data receiving apparatus, and data transmitting-receiving method | |
CN115396077A (zh) | 一种数据传输方法及装置 | |
CN108234087B (zh) | 数据传输方法及发送端 | |
CN111435866B (zh) | 数据传输方法及相关装置 | |
US20230345058A1 (en) | Data packet transmission method and related device | |
US7764616B2 (en) | Transmitter device for controlling data transmission | |
CN109981385B (zh) | 一种实现丢包检测的方法、装置和系统 | |
CN110557677A (zh) | 一种视频传输的方法及装置 | |
CN110943808B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
WO2015083919A1 (ko) | 무선통신의 패킷 손실 저감 방법 및 장치 | |
CN112350803A (zh) | 数据包的传输方法、装置、系统、电子设备及存储介质 | |
US6922805B2 (en) | Selective packet retransmission with timing control at the transmitter end | |
CN112769526B (zh) | 数据包重传方法、系统和存储介质 | |
JP2005167780A (ja) | ストリーミングデータ伝送装置及び伝送方法 | |
US9307441B1 (en) | Systems and methods of transferring information to a wireless device | |
CN113014501B (zh) | 数据传输方法、系统、编码器及计算机可读存储介质 | |
US20060077929A1 (en) | Apparatus and method for receiving LLC packet data of mobile communications system | |
CN101150494A (zh) | 数据分组发送设备、接收设备和方法 | |
CN113542798A (zh) | 视频流的传输方法、电子设备及存储介质 | |
CN110418164B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |