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

数据传输方法及装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN109412753A
CN109412753A CN201811251175.4A CN201811251175A CN109412753A CN 109412753 A CN109412753 A CN 109412753A CN 201811251175 A CN201811251175 A CN 201811251175A CN 109412753 A CN109412753 A CN 109412753A
Authority
CN
China
Prior art keywords
data
error correction
forward error
correction coding
message
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.)
Pending
Application number
CN201811251175.4A
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201811251175.4A priority Critical patent/CN109412753A/zh
Publication of CN109412753A publication Critical patent/CN109412753A/zh
Pending legal-status Critical Current

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本公开是关于一种数据传输方法及装置、电子设备以及存储介质,涉及数据通信技术领域,可以应用于网络状况实时变化的数据传输场景。该方法包括:发送端将经过重传协议层封装以及前向纠错编码层封装后的封装数据发送到向接收端,同时,发送端定期向接收端发送数据发送消息;接收端根据数据发送消息和数据接收情况确定出数据丢包率;并将丢包率返回到发送端,发送端根据数据丢包率动态调整前向纠错编码参数,并将经前向纠错编码后的数据发送到接收端。本公开可以在网络状态实时变化的情况下,根据数据丢包率,动态调整对发送数据进行编码的编码参数,减少数据传输时流量的浪费。

Description

数据传输方法及装置、电子设备以及存储介质
技术领域
本公开涉及数据通信技术领域,具体而言,涉及一种数据传输方法、数据传输装置、电子设备以及存储介质。
背景技术
目前,数据传输主要基于用户数据报协议(User Datagram Protocol,UDP)或传输控制协议(Transmission Control Protocol,TCP)TCP协议进行,基于UDP协议的传输实时性较好,但在传输的过程中数据不可靠,可能由于丢包乱序从而导致数据丢失。
因此,采用将主动重传技术或前向纠错码(Forward Error Correction,FEC)技术引入UDP协议实现数据传输。自动重传请求(Automatic Repeat-reQuest,ARQ)的引入对基于UDP协议的数据传输有一定改善效果,但如果重传策略不当,会引入较多的重传数据量,并且不一定能够保证数据的可靠性。
FEC编码的引入是采用一定冗余流量来修复网络传输中的错误包或丢包,但在不同的网络环境下采用同一冗余度可能会造成流量浪费或者FEC编码纠错不足的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据传输方法、数据传输装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服网络环境不稳定的情况下基于UDP协议进行数据传输时的数据不可靠问题。
根据本公开的第一方面,提供一种数据传输方法,包括:对原始数据进行重传协议层封装以及前向纠错编码层封装,将形成的封装数据发送到接收端;获取接收端基于数据接收消息和数据发送消息确定的数据丢包率;如果所述数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;如果数据丢包率大于等于预设阈值,则根据数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行所述前向纠错编码层封装。
可选的,数据传输方法还包括:确定接收端接收到的经过前向纠错解码后未恢复的丢包数据;向接收端发送丢包数据。
可选的,数据传输方法还包括:向接收端发送封装数据时,每隔第一预设时间段向接收端发送带有发送统计信息的数据发送消息;每隔第二预设时间段接收接收端发送的带有接收统计信息的数据接收消息。
可选的,数据传输方法还包括:如果未对数据进行前向纠错编码处理,当检测到一周期的数据丢包率大于等于预设阈值时,开始对数据进行前向纠错编码处理;如果已对数据进行前向纠错编码处理,当检测到连续预设数量周期的数据丢包率都小于预设阈值时,停止对数据进行前向纠错编码处理。
可选的,数据传输方法还包括:确定不同数据丢包率对应的区间;监视数据传输时数据丢包率的变化,并基于数据传输时数据丢包率所处的区间确定前向纠错编码参数。
可选的,数据传输方法还包括:判断上一次确定前向纠错编码参数的时间是否超过第三预设时间段;如果超过第三预设时间段,则根据数据传输时的数据丢包率所处的区间确定相应的前向纠错编码参数,并更新前向纠错编码参数的确定时间。
根据本公开的第二方面,提供一种数据传输方法,包括:接收发送端发送的封装数据以及数据发送消息;每隔预设时间段向发送端返回数据接收消息;基于数据发送消息以及数据接收消息确定数据丢包率。
可选的,数据传输方法还包括:确定数据发送消息中的第一发包数量以及数据接收消息中的第一收包数量;确定数据发送消息中的第二发包数量以及数据接收消息中的第二收包数量;基于实际发包数量和实际收包数量,确定数据丢包率。
可选的,数据传输方法还包括:接收发送端发送的基于数据丢包率而进行前向纠错编码处理的数据。
根据本公开的第三方面,提供一种数据传输装置,包括:封装数据发送模块,用于对原始数据进行重传协议层封装以及前向纠错编码层封装,将形成的封装数据发送到接收端;丢包率确定模块,用于获取接收端基于数据接收消息和数据发送消息确定的数据丢包率;编码处理模块,用于如果所述数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;如果数据丢包率大于等于预设阈值,则根据所述数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行所述前向纠错编码层封装。
可选的,数据传输装置还包括丢包数据发送模块。
具体的,丢包数据发送模块用于确定接收端接收到的经过前向纠错解码后未恢复的丢包数据;向接收端发送丢包数据。
可选的,丢包率确定模块包括消息收发单元。
具体的,消息收发单元用于向接收端发送封装数据时,每隔第一预设时间段向接收端发送带有发送统计信息的数据发送消息;每隔第二预设时间段接收接收端发送的带有接收统计信息的数据接收消息。
可选的,编码处理模块还包括编码处理单元。
具体的,编码处理单元用于如果未对数据进行前向纠错编码处理,当检测到一周期的数据丢包率大于等于预设阈值时,开始对数据进行前向纠错编码处理;如果已对数据进行前向纠错编码处理,当检测到连续预设数量周期的数据丢包率都小于预设阈值后,则停止对数据进行前向纠错编码处理。
可选的,数据传输装置还包括参数确定模块。
具体的,参数确定模块用于确定不同数据丢包率对应的区间;监视数据传输时数据丢包率的变化,并基于数据传输时数据丢包率所处的区间确定前向纠错编码参数。
可选的,数据传输装置还包括时间更新模块。
具体的,时间更新模块用于用于判断上一次确定前向纠错编码参数的时间是否超过第三预设时间段;如果超过第三预设时间段,则根据数据传输时的数据丢包率所处的区间确定相应的前向纠错编码参数,并更新前向纠错编码参数的确定时间。
根据本公开的第四方面,提供一种数据传输装置,包括:数据接收模块,用于接收发送端发送的封装数据以及数据发送消息;接收消息发送模块,用于每个预设时间段向发送端返回数据接收消息;丢包率确定模块,用于基于数据发送消息以及数据接收消息确定数据丢包率。
可选的,数据接收模块包括前向纠错解码单元,用于对接收到的所述封装数据进行前向纠错解码,以确定接收到的数据。
可选的,丢包率确定模块包括丢包率确定单元,用于确定数据发送消息中的第一发包数量以及数据接收消息中的第一收包数量;确定数据发送消息中的第二发包数量以及数据接收消息中的第二收包数量;基于实际发包数量和实际收包数量,确定数据丢包率。
可选的,数据接收模块还包括数据接收单元,用于接收发送端发送的基于数据丢包率而进行前向纠错编码处理的数据。
根据本公开的第五方面,提供一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的数据传输方法。
根据本公开的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的数据传输方法。
本公开的示例性实施例中的数据传输方法,首先,对原始数据进行重传协议层以及前向纠错编码层封装后的数据发送到接收端;其次,获取接收端基于数据接收消息和数据发送消息确定的数据丢包率;再次,如果数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;如果数据丢包率大于等于预设阈值,则根据所述数据丢包率调整前向纠错编码参数,并基于调整后的前向纠错编码参数进行前向纠错编码层封装。通过这种数据传输方法,一方面,在数据传输过程中,可以依据不同网络状态下,数据丢包率的变化动态调整前向纠错编码的参数,以动态变化的前向纠错编码参数对数据进行编码后再进行发送。另一方面,由于前向纠错编码参数是动态变化的,因此在丢包率较低的情况下,可以采用较低冗余度的前向纠错编码,将避免造成较多的流量浪费;当丢包率较高时,可以采用冗余度较高的前向纠错编码,防止影响前向纠错编码的纠错能力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的一些示例性实施方式的数据传输方法的流程图;
图2示意性示出了根据本公开的示例性实施方式的数据传输方法中数据封装和解封装的层级图;
图3示意性示出了根据本公开的示例性实施方式的数据传输方法中发送端向接收端发送数据的整体传输过程图;
图4示意性示出了根据本公开的示例性实施方式的数据传输方法中建立连接后数据发送过程的流程图;
图5示意性示出了根据本公开的示例性实施方式的数据传输方法中计算数据丢包率的流程图;
图6示意性示出了根据本公开的另一示例性实施方式的数据传输方法的流程图;
图7示意性示出了根据本公开的一个示例性实施例的第一数据传输装置的方框图;
图8示意性示出了根据本公开的一个示例性实施例的第二数据传输装置的方框图;
图9示意性示出了根据本公开的一些示例性实施例的数据传输装置的丢包率确定模块的方框图;
图10示意性示出了根据本公开的一个示例性实施例的数据传输装置的编码处理模块的方框图;
图11示意性示出了根据本公开的一个示例性实施例的第三数据传输装置的方框图;
图12示意性示出了根据本公开的一个示例性实施例的第四数据传输装置的方框图;
图13示意性示出了根据本公开的另一示例性实施例的数据传输装置的方框图;
图14示意性示出了根据本公开的另一示例性实施例的数据传输装置的数据接收模块的第一方框图;
图15示意性示出了根据本公开的另一示例性实施例的数据传输装置的丢包率确定模块的方框图;
图16示意性示出了根据本公开的另一示例性实施例的数据传输装置的数据接收模块的第二方框图;
图17示意性示出了根据本公开一示例性实施例的电子设备的框图;以及
图18示意性示出了根据本公开一示例性实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在基于UDP协议进行数据传输时,可能存在数据丢包的问题。目前通常采用两种方式来解决此问题,即将主动重传或FEC编码引入到基于UDP协议的数据传输中,来对错误数据进行重传或纠错。但重传策略选取不当,不仅会引入较多的重传数据,还不一定能保证数据的可靠性;另外,FEC编码不能针对性地应对不同网络环境下的数据丢包。
基于此,在本示例实施例中,首先提供了一种数据传输方法,该数据传输方法的发送端或接收端可以为服务器,也可以为终端设备,其中,所述终端设备例如可以为手机、电脑等各种电子设备。参考图1,该数据传输方法可以包括以下步骤:
步骤S110.对原始数据进行重传协议层封装以及前向纠错编码层封装,将形成的封装数据发送到接收端。
根据本公开的一些示例性实施方式中,原始数据可以为发送端要向接收端发送的未经封装的数据。重传协议层封装可以为具备丢包重传的协议对原始数据的封装。参考图2,举例而言,发送端的重传协议层220可以采用快速TCP(KCP)协议对原始数据层210的数据进行封装,KCP协议是传输层的一个具有可靠性的传输层ARQ协议,一般采用UDP作为下层传输协议,KCP层协议的数据包在原始数据上增加控制头以完成数据重传层的封装。另外,也采用未到达通知协议(Non-Acknowledge,NACK)协议对数据进行重传协议层220封装以生成封装数据,封装数据时根据NACK协议的具体格式对数据进行封装,基于NACK协议封装数据的过程与基于KCP协议进行数据封装的过程类似,在此不作过多说明。
本领域技术人员容易理解的是,本公开也可以采用其它数据重传协议对数据进行封装,如可以在重传协议层采用ARQ协议对数据进行封装等,采用不同重传协议进行数据封装的变化均属于本公开的保护范围。
进一步的,对经过重传协议层220封装后的数据进行前向纠错编码层230编码封装,在前向纠错编码层实现时,可以根据当前网络环境的状态决定是否对数据进行前向纠错编码,并确定FEC编码参数,以达到采用合适的冗余流量确保数据传输过程中数据的可靠性。因此,在发送端发送数据时,可以根据网络的实时状态,确定此次发送数据的FEC编码,对经过重传协议层封装后的数据进行FEC编码封装后,可以采用UDP协议进行传输。
接收端接收到数据后,对接收到的封装数据进行前向纠错解码层240解码,再经过重传协议层250进行解码,将解码后的原始数据260回调给接收端应用层,以便接收端根据接收到的数据判断是否向发送端发送重传请求。
步骤S120.获取所述接收端基于数据接收消息和数据发送消息确定的数据丢包率。
根据本公开的一些示例性实施方式中,发送端向接收端发送封装数据时,每隔第一预设时间段向接收端发送带有发送统计信息的数据发送消息;每隔第二预设时间段接收接收端发送的带有接收统计信息的数据接收消息。第一预设时间段可以为提前设置好的时间段,如可以为3秒、5秒、8秒等;第二预设时间段也可以为提前设置好的时间段,如可以为3秒、5秒、8秒等。第二预设时间段可以与第一预设时间段的时间间隔相同,也可以不同。
根据本公开的一些示例性实施例,参考图3,发送端向接收端发送数据从建立连接开始到关闭连接的交互过程中,发送端向接收端发送数据前,可以先与接收端建立连接,步骤S301~步骤S304可以为发送端与接收端建立连接的过程,建立连接的具体过程为:发送端处于QUICK_SESSION_STATE_SYN1状态(即初始状态),发送syn1消息到接收端,可以表示要与接收端建立连接,接收端接收到syn1消息处理进入SYNCWAIT状态(即接收端建立连接等待确认状态),同时返回ack1至发送端;发送端接收到ack1时,说明发送端到接收端的链路畅通,发送端从QUICK_SESSION_STATE_SYN1状态变迁成QUICK_SESSION_STATE_SYN2状态(即等待ack2的状态)。由于接收端发送的ack1在传输过程中可能会发生丢失,接收端不能确定发送端是否接收到了ack1,因此发送端向接收端发送syn2;接收端接收到syn2,进入establish状态,表示可以接收数据,并发送ack2给发送端,ack2可以表示已经确认发送端接收到接收端返回给发送端的确认消息;发送端接收到ack2,进入establish状态,两端连接建立成功。
成功建立连接后,步骤S305~步骤S308可以为发送端与接收端相互发送ping消息的过程,发送端向接收端发送ping消息,接收端接收到ping消息后,接收端向发送端发送pack消息,表明已经接收到发送端的ping;另外,接收端也可以向发送端发送ping消息,向发送端反馈接收端接收数据的情况,发送端接收到接收端的ping消息后,向接收端返回接收确认,即向接收端返回pack。
此外,步骤S309~步骤S311为发送端不断向接收端发送数据的过程,发送端向接收端发送数据,接收端接收到数据后,确定是否需要发送端重传数据,如果需要重传,则接收端向发送端发送重传请求,发送端接收到重传请求后,向接收端发送重传请求中的丢包数据。
数据传输结束后,发送端可以向接收端发送结束传输请求,步骤S312~步骤S313为发送端与接收端断开连接的过程,发送端向接收端发送fin,接收端接收到fin后,向发送端发送的fack。至此,一次数据传输完成。
参考图4,发送端与接收端成功建立连接后,发送端开始向接收端发送封装数据(也可以表示为data数据)。传输data数据详细过程中,发送端与接收端成功建立连接后,并每隔第一预设时间段发送带有发送统计信息的数据发送消息至接收端。步骤S401~步骤S404可以为接收端接收发送端所发送数据的过程,发送端发送数据的同时向接收端发送数据发送消息,数据发送消息可以为ping消息,发送端每隔5秒发送一个ping消息给接收端,ping消息携带了发送端发送的数据包统计等信息。发送端向接收端发送第一个ping(ping1),重置发送端当前的发包计数器SentCnt1=0;接收端接收到发送端发送的ping1,重置接收端当前的收包计数器RecvCnt1=0;发送端发送data数据给接收端后,将SentCnt1++变为SentCnt2。
接收端收到data数据后,需要判断是否需要向发送端发送重传请求,步骤S405~步骤S419可以为判断是否需要向发送端发送重传请求的过程,具体为,接收端根据消息体的头部判断是否为FEC编码数据,如果需要解码,则对data数据进行FEC解码。随后,接收端根据当前收到包的缓存队列,判断是否需要重传之前的数据包,如果不需要重传则进行步骤S410,回调数据给应用层,并将RecvCnt1变为RecvCnt2。
步骤S411~步骤S417可以为发送端发送第二个ping消息后,是否重新进行FEC编码的过程,发送端发送第二个ping(ping2),其中携带当前SentCnt2的数值,接收端收到第二个ping(ping2),根据ping消息中的SentCnt1、SentCnt2和接收端的RecvCnt1、RecvCnt2,计算数据丢包率,并基于计算出的数据丢包率确定后续是否调整前向纠错编码参数。
通过选定预设时间段,不断统计数据发送数量和数据接收数量,可以为计算数据丢包率提供较为准确的依据,当计算所得的数据丢包率符合实时数据发送状况时,FEC编码将更加准确。
步骤S130.如果所述数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理。
根据本公开的一些示例性实施方式,预设阈值可以为是否开启对数据进行前向纠错编码的临界值,可以将数据丢包率与预设阈值进行比较以决定是否开启前向纠错编码。举例而言,设定数据丢包率参照的预设阈值为5%,即当数据丢包率低于5%时,无需对重传协议层封装后的数据开启前向纠错编码。当数据丢包率低于预设阈值时,可以认为接收端接收到的数据信息虽然有所损失,但是不会对接收端理解数据的含义产生影响,因此可以不开启FEC编码。采用这种方式,可以减少资源的消耗,提高数据传输效率。
根据本公开的另一示例性实施例,如果已对数据进行前向纠错编码处理,当检测到连续预设数量周期的数据丢包率都小于所述预设阈值后,则停止对数据进行前向纠错编码处理。对重传协议层封装后的数据进行前向纠错编码处理后,发送端依然每隔第一预设时间向接收端发送数据发送ping消息,同时接收端每隔第二预设时间段向发送端返回数据接收ping消息,根据数据发送消息和数据接收消息计算与当前网络环境相对应的数据丢包率。举例而言,若检测到5个周期的数据丢包率都小于预设阈值5%,则停止对重传协议层封装后的数据进行前向纠错编码。
步骤S140.如果所述数据丢包率大于等于预设阈值,则根据所述数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行所述前向纠错编码层封装。
根据本公开的一些示例性实施方式,如果未对数据进行前向纠错编码处理,当检测到一周期的数据丢包率大于等于所述预设阈值时,开始对数据进行前向纠错编码处理。举例而言,相邻的两个ping消息可以看作是一个周期,当根据任意两个相邻的ping消息计算出的数据丢包率大于等于预设阈值5%,便开始对重传协议层封装后的数据进行编码处理。
当数据丢包率大于5%时,则对重传协议层封装后的数据开启前向纠错编码。对重传协议层封装后的数据进行前向纠错编码时,首先,要确定前向纠错编码参数,其次,根据确定出的编码参数对重传协议层封装后的数据进行前向纠错编码。
根据本公开的另一示例性实施例,确定不同数据丢包率对应的区间;监视数据传输时数据丢包率的变化,并基于数据传输时数据丢包率所处的区间确定前向纠错编码参数。根据不同数据丢包率确定前向纠错编码的具体参数时,首先,要提前对数据丢包率的数值划分区间;其次,根据数据丢包率所处区间确定相应的的前向纠错编码参数。对数据进行前向纠错编码处理是对k个一组的数据包进行前向纠错编码后产生n个(n>k)数据包,其中n-k为对数据进行前向纠错编码时添加的冗余;k,n编码的冗余度为(n-k)/n。接收端在该组数据丢失或错误不超过n-k时,可以不经过重传直接复原原始数据包。举例而言,可以将数据丢包率表示为loss,对数据进行前向纠错编码时可以依据k,n这两个参数进行,针对不同的丢包率设置了五档参数:
当0<loss<=0.125时,k=7,n=8对应的冗余度为1/8;
当0.125<loss<=0.2时,k=4,n=5对应的冗余度为1/5;
当0.12<loss<=0.33时,k=4,n=6对应的冗余度为1/3;
当0.33<loss<=0.4时,k=5,n=8对应的冗余度为3/8;
当0.4<loss时,k=4,n=8对应的冗余度为1/2。
通过本公开中数据丢包率与k,n参数的对应关系,当发送端的发送数据具有不同的数据丢包率时,可以对封装数据进行不同档次的FEC编码。采用多种档位的FEC编码,可以在数据丢包率较低时,采用与低数据丢包率相适配的低冗余度FEC编码,减少流量浪费;在数据丢包率较高时,采用与高数据丢包率相适配的较高冗余度FEC编码,以改善由于冗余度不足的FEC编码对FEC纠错能力造成影响的问题。采用不同冗余度的FEC编码,可以适应实时网络状况下数据丢包状态不断发生变化的情况。
根据本公开的又一示例性实施例,参考图5,确定数据丢包率的过程中,步骤S501~步骤S515可以为计算数据丢包率的具体过程。发送端接收到接收端返回的最新数据丢包率loss,将该数据丢包率加入数据丢包率历史列表last5PeriodLossRateList(即list)中,如果list的size个数小于5,则不做后续处理;如果list的个数大于等于5,则从list中删除最早的loss,统计list中非0的loss的总和lossSum以及个数lossCnt,计算list中当前非0的loss的平均值loss=lossSum/lossCnt。如果当前对数据进行了前向纠错编码处理,判断loss是否小于预设阈值openFecThreshold,如果小于预设阈值则停止对数据进行前向纠错编码处理,并结束此判断过程。
根据本公开的再一示例性实施例,确定前向纠错参数还可以包括:判断上一次确定前向纠错编码参数的时间是否超过第三预设时间段;如果超过第三预设时间段,则根据数据传输时的数据丢包率所处的区间确定相应的前向纠错编码参数,并更新前向纠错编码参数的确定时间。第三预设时间段可以为提前设定好的时间段,用于以第三预设时间段为周期,判断是否对前向纠错编码参数进行更新,如可以设定第三预设时间段为30s。举例而言,如果数据丢包率loss大于等于预设阈值openFecThreshold,则判断上一次更新前向纠错编码的时间lastUpdateTime是否超过30s,如果没有超过则结束此次对前向纠错编码的更新,否则根据loss选择合适的前向纠错编码参数k和n,并更新lastUpdateTime。如果当前未对数据进行前向纠错编码处理,则判断数据丢包率loss是否大于预设阈值openFecThreshold,如果数据丢包率loss大于预设阈值openFecThreshold则开始对数据进行前向纠错编码处理,并每隔第三预设时间判断前向纠错编码参数是否需要更新。
当然,本领域技术人员容易理解的是,第一预设时间段的时间长短、第二预设时间段的时间长短、预设阈值的具体数值、预设数量周期的预设数量、第三预设时间段的时间长短等,会根据实际应用需求进行具体的设定。这些数量的根据具体设定发生的变化均属于本公开的保护范围,本示例性实施例中对此不做特殊限定。
根据本公开的一些示例性实施方式,在数据传输过程中,发送端会根据网络实时状态确定对数据进行前向纠错编码的具体参数,实时动态更新对数据进行前向纠错编码的参数,根据最新的前向纠错编码参数对数据进行前向纠错编码处理,并将经过前向纠错编码处理后的数据发送至接收端。
根据本公开的另外一些示例性实施方式,确定接收端接收到的经过前向纠错解码后未恢复的丢包数据;向接收端发送丢包数据。经过前向纠错解码后未恢复的丢包数据可以视为此次数据传输中已经无法恢复的数据,接收端向发送端反馈这些无法恢复的丢包数据,当发送端确认接收端需要发送端发送这些丢包数据时,可以将这些丢包数据发送至接收端,以便接收端能够在数据无法复原的情况下,可以接收发送端发送的重传数据,增加数据传输过程中的可靠性。
参考图6所示,根据本发明的另一个实施例的数据传输方法,包括如下步骤S610至步骤S630,以下详细进行阐述。
步骤S610.接收发送端发送的封装数据以及数据发送消息。
根据本公开的一些示例性实施方式,接收端接收发送端经过重传协议层封装以及前向纠错编码层封装的封装数据。发送端向接收端发送封装数据的同时,每隔预设时间段会向接收端发送数据发送消息。
根据本公开的一些示例性实施例,接收端接收到封装数据后,可以对封装数据进行前向纠错解码,形成解码数据,解码数据会进入接收数据包的缓存队列中,因此,接收端可以根据当前数据接收包的缓存队列,判断是否需要请求发送端重传之前的数据,如果需要发送端发送之前的数据,则基于相应丢包数据向发送端发送重传请求。
步骤S620.每隔预设时间段向所述发送端返回数据接收消息。
根据本公开的一些示例性实施方式,接收端接收到发送端发送来的封装数据后,会对封装数据进行前向纠错解码层解码,再进行重传协议层解码,已确定接收到的数据是否存在数据丢包或数据错误。如果解码到正确的数据,则将数据回调至应用层,接收端根据接收到的数据向发送端返回数据接收消息。
步骤S630.基于所述数据发送消息以及所述数据接收消息确定数据丢包率。
根据本公开的一些示例性实施方式,接收端根据接收到的来自发送端的数据发送消息以及自身的数据接收情况,计算数据传输时的数据丢包率。
根据本公开的一些示例性实施例,计算数据丢包率的过程可以为:首先,确定数据发送消息中的第一发包数量SentCnt1以及数据接收消息中的第一收包数量RecvCnt1;其次,确定数据发送消息中的第二发包数量SentCnt2以及数据接收消息中的第二收包数量RecvCnt2;再次,得到实际发包数量SentCnt与实际收包数量RecvCnt,并计算数据丢包率。实际发包数量为第二发包数量与第一发包数量之差,即SentCnt=SentCnt2-SentCnt1;实际收包数量为第二收包数量与第一收包数量之差,即RecvCnt=RecvCnt2-RecvCnt1,数据丢包率可以为(SentCnt-RecvCnt)/SentCnt。
综上所述,该数据传输方法,首先,发送端对原始数据进行重传协议层封装以及前向纠错编码层封装,并将封装数据发送到接收端;其次,发送端获取接收端基于数据接收消息和数据发送消息确定的数据丢包率,再次,判断数据丢包率的值,如果数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;如果数据丢包率大于等于预设阈值,则根据数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行前向纠错编码层封装。通过上述数据传输方法,一方面,通过重传协议层和前向纠错编码层的结合,对经过前向纠错编码纠错后仍然不能修复的数据进行重传,保证基于UDP协议数据传输的可靠性;另一方面,在数据传输过程中,发送端根据实时的数据丢包率调整相应的前向纠错编码参数,如果网络状态良好,即在数据丢包率很低的情况下,对数据不采用前向纠错编码处理或者采用低冗余度的前向纠错编码,避免造成流量浪费;在网络传输状态较差,数据丢包率较高时采用高冗余度的前向纠错编码,并根据不同数据丢包率设置不同的前向纠错编码参数,确保前向纠错的纠错能力。
在本示例实施例中,还提供了一种数据传输装置。参考图7,该数据传输装置700可以包括:封装数据发送模块710、丢包率确定模块720以及编码处理模块730。
具体的,封装数据发送模块710可以用于对原始数据进行重传协议层封装以及前向纠错编码层封装,将形成的封装数据发送到接收端;丢包率确定模块720可以用于获取接收端基于数据接收消息和数据发送消息确定的数据丢包率;编码处理模块730可以用于如果所述数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;如果数据丢包率大于等于预设阈值,则根据数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行所述前向纠错编码层封装。
该数据传输装置700可以根据网络的实时状况下的不同数据丢包率,更新FEC编码层的FEC编码参数,将基于更新的FEC编码参数对数据进行编码后,再向接收端发送数据,可以在保证数据可靠性的同时减少流量的浪费,是一种行之有效的数据传输装置。
在本公开的一些示例性实施方式中,提供了数据传输装置800。参考图8,该数据传输装置800相比于数据传输装置700,除包括封装数据发送模块710、丢包率确定模块720以及编码处理模块730外,还可以包括丢包数据发送模块810。
具体的,丢包数据发送模块810可以用于确定所述接收端接收到的经过前向纠错解码后未恢复的丢包数据;向接收端发送所述丢包数据。
丢包数据发送模块810将经过前向纠错解码纠错后,仍然无法恢复的丢包数据重新发送到接收端,确保数据传输中数据的可靠性。
根据本公开的示例性实施例,参考图9,丢包率确定模块720可以包括消息收发单元910。
具体的,消息收发单元910可以用于向接收端发送封装数据时,每隔第一预设时间段向接收端发送带有发送统计信息的数据发送消息;每隔第二预设时间段接收接收端发送的带有接收统计信息的数据接收消息。
消息收发单元910可以定期获取数据发送消息和数据接收消息,作为计算数据丢包率的依据。
根据本公开的示例性实施例,参考图10,处理编码模块730可以包括编码处理单元1010。
具体的,编码处理单元1010可以用于如果未对数据进行前向纠错编码处理,当检测到一周期的数据丢包率大于等于预设阈值时,开始对数据进行前向纠错编码处理;如果已对数据进行前向纠错编码处理,当检测到连续预设数量周期的数据丢包率都小于预设阈值后,则停止对数据进行前向纠错编码处理。
前向纠错编码处理单元1010用于判断实时的数据丢包率是否超过预设阈值,以确定是否对数据进行前向纠错编码。
在本公开的一些示例性实施方式中,提供了数据传输装置1100。参考图11,该数据传输装置1100相比于数据传输装置800,除包括封装数据发送模块710、丢包率确定模块720、编码处理模块730以及丢包数据发送模块810外,还可以包括参数确定模块1110。
具体的,参数确定模块1110可以用于确定不同数据丢包率对应的区间;监视数据传输时数据丢包率的变化,并基于数据传输时数据丢包率所处的区间确定前向纠错编码参数。
参数确定单元1110可以根据实时数据丢包率处于的区间,确定FEC编码的k、n参数,基于确定的FEC编码参数对数据进行FEC编码处理。
在本公开的一些示例性实施方式中,提供了数据传输装置1200。参考图12,该数据传输装置1200相比于数据传输装置1100,除包括封装数据发送模块710、丢包率确定模块720、编码处理模块730、丢包数据发送模块810以及参数确定模块1110外,还可以包括时间更新模块1210。
具体的,时间更新模块1210用于判断上一次确定前向纠错编码参数的时间是否超过第三预设时间段;如果超过第三预设时间段,则根据数据传输时的数据丢包率所处的区间确定相应的前向纠错编码参数,并更新前向纠错编码参数的确定时间。
时间更新1210可以记录前向纠错编码参数的更新时间,以此作为是否更新前向纠错编码参数的依据之一。
此外,在本示例实施例中,还提供了另外一种数据传输装置1300。参考图13,该数据传输装置1300可以包括:数据接收模块1310、接收消息发送模块1320以及丢包率确定模块1330。
具体的,数据接收模块1310可以用于接收发送端发送的封装数据以及数据发送消息;接收消息发送模块1320可以用于每个预设时间段向发送端返回数据接收消息;丢包率确定模块1330可以用于基于数据发送消息以及数据接收消息确定数据丢包率。
数据传输装置1300用于根据数据发送消息中的数据发送统计信息和数据接收消息中的数据接收统计信息,计算数据丢包率,以便进行后续处理。
根据本公开的示例性实施例,参考图14,数据接收模块1310可以包括前向纠错解码单元1410。
具体的,前向纠错解码单元1410可以用于对接收到的所述封装数据进行前向纠错解码,以确定接收到的数据。
前向纠错解码单元1410对接收到的封装数据进行前向纠错解码,解码后的数据会进行数据缓存队列,可以根据接收数据包的缓存队列判断是否需要向发送端发送重传之前的数据包的重传请求。
根据本公开的示例性实施例,参考图15,丢包率确定模块1330可以包括丢包率确定单元1510。
具体的,丢包率确定单元1510可以用于确定数据发送消息中的第一发包数量SentCnt1以及数据接收消息RecvCnt1中的第一收包数量;确定数据发送消息中的第二发包数量SentCnt2以及数据接收消息RecvCnt2中的第二收包数量;获取实际发包数量SentCnt和实际收包数量RecvCnt,则数据丢包率为(SentCnt-RecvCnt)/SentCnt。
丢包率确定单元1510用于根据发包数量和收包数量计算数据传输中的数据丢包率。
根据本公开的示例性实施例,参考图16,数据接收模块1340相比于数据接收模块1310,除包括前向纠错解码单元1410外,还可以包括数据接收单元1610。
具体的,数据接收单元1610可以用于接收发送端发送的基于数据丢包率而进行前向纠错编码处理的数据。
上述中各虚拟数据传输装置模块的具体细节已经在对应的虚拟数据传输方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了数据传输装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参考图17描述根据本发明的这种实施例的电子设备1700。图17显示的电子设备1700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。该电子设备可以运行上述发送端的运行程序,也可以运行上述接收端的运行程序。
如图17所示,电子设备1700以通用计算设备的形式表现。电子设备1700的组件可以包括但不限于:上述至少一个处理单元1710、上述至少一个存储单元1720、连接不同系统组件(包括存储单元1720和处理单元1710)的总线1730、显示单元1740。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1710执行,使得所述处理单元1710执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元1720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1721和/或高速缓存存储单元1722,还可以进一步包括只读存储单元(ROM)1723。
存储单元1720还可以包括具有一组(至少一个)程序模块1725的程序/实用工具1724,这样的程序模块1725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1700也可以与一个或多个外部设备1770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1700交互的设备通信,和/或与使得该电子设备1700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1750进行。并且,电子设备1700还可以通过网络适配器1760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1760通过总线1730与电子设备1700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图18,描述了根据本发明的实施例的用于实现上述方法的程序产品1800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (14)

1.一种数据传输方法,其特征在于,包括:
对原始数据进行重传协议层封装以及前向纠错编码层封装,将形成的封装数据发送到接收端;
获取所述接收端基于数据接收消息和数据发送消息确定的数据丢包率;
如果所述数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;
如果所述数据丢包率大于等于预设阈值,则根据所述数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行所述前向纠错编码层封装。
2.根据权利要求1所述的数据传输方法,其特征在于,所述数据传输方法还包括:
确定所述接收端接收到的经过前向纠错解码后未恢复的丢包数据;
向所述接收端发送所述丢包数据。
3.根据权利要求1所述的数据传输方法,其特征在于,将封装数据发送到接收端,所述数据传输方法还包括:
向所述接收端发送封装数据时,每隔第一预设时间段向所述接收端发送带有发送统计信息的数据发送消息;
每隔第二预设时间段接收所述接收端发送的带有接收统计信息的数据接收消息。
4.根据权利要求3所述的数据传输方法,其特征在于,获取所述接收端基于数据接收消息和数据发送消息确定的数据丢包率后,所述数据传输方法还包括:
如果未对数据进行前向纠错编码处理,当检测到一周期的数据丢包率大于等于所述预设阈值时,开始对数据进行前向纠错编码处理;
如果已对数据进行前向纠错编码处理,当检测到连续预设数量周期的数据丢包率都小于所述预设阈值时,停止对数据进行前向纠错编码处理。
5.根据权利要求4所述的数据传输方法,其特征在于,确定前向纠错编码参数包括:
确定不同数据丢包率对应的区间;
监视数据传输时数据丢包率的变化,并基于数据传输时数据丢包率所处的区间确定前向纠错编码参数。
6.根据权利要求5所述的数据传输方法,其特征在于,基于所述数据传输时的数据丢包率所处的区间确定前向纠错编码参数包括:
判断上一次确定前向纠错编码参数的时间是否超过第三预设时间段;
如果超过所述第三预设时间段,则根据所述数据传输时的数据丢包率所处的区间确定相应的前向纠错编码参数,并更新前向纠错编码参数的确定时间。
7.一种数据传输方法,其特征在于,包括:
接收发送端发送的封装数据以及数据发送消息;
每隔预设时间段向所述发送端返回数据接收消息;
基于所述数据发送消息以及所述数据接收消息确定数据丢包率。
8.根据权利要求7所述的数据传输方法,其特征在于,接收发送端发送的封装数据包括:
对接收到的所述封装数据进行前向纠错解码,以确定接收到的数据。
9.根据权利要求7所述的数据传输方法,其特征在于,基于所述数据发送消息以及所述数据接收消息确定数据丢包率包括:
确定数据发送消息中的第一发包数量以及数据接收消息中的第一收包数量;
确定数据发送消息中的第二发包数量以及数据接收消息中的第二收包数量;
基于实际发包数量和实际收包数量,确定所述数据丢包率。
10.根据权利要求7所述的数据传输方法,其特征在于,确定数据丢包率后,所述数据传输方法还包括:
接收所述发送端发送的基于所述数据丢包率而进行前向纠错编码处理的数据。
11.一种数据传输装置,其特征在于,包括:
封装数据发送模块,用于对原始数据进行重传协议层封装以及前向纠错编码层封装,将形成的封装数据发送到接收端;
丢包率确定模块,用于获取所述接收端基于数据接收消息和数据发送消息确定的数据丢包率;
编码处理模块,用于如果所述数据丢包率小于预设阈值,停止对数据进行前向纠错编码处理;如果所述数据丢包率大于等于预设阈值,则根据所述数据丢包率调整前向纠错编码参数,并根据调整后的前向纠错编码参数进行所述前向纠错编码层封装。
12.一种数据传输装置,其特征在于,包括:
数据接收模块,用于接收发送端发送的封装数据以及数据发送消息;
接收消息发送模块,用于每个预设时间段向所述发送端返回数据接收消息;
丢包率确定模块,用于基于所述数据发送消息以及所述数据接收消息确定数据丢包率。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的数据传输方法,或实现如权利要求7至10中任一项所述的数据传输方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的数据传输方法,或实现如权利要求7至10中任一项所述的数据传输方法。
CN201811251175.4A 2018-10-25 2018-10-25 数据传输方法及装置、电子设备以及存储介质 Pending CN109412753A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811251175.4A CN109412753A (zh) 2018-10-25 2018-10-25 数据传输方法及装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811251175.4A CN109412753A (zh) 2018-10-25 2018-10-25 数据传输方法及装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN109412753A true CN109412753A (zh) 2019-03-01

Family

ID=65469964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811251175.4A Pending CN109412753A (zh) 2018-10-25 2018-10-25 数据传输方法及装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN109412753A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602452A (zh) * 2019-09-05 2019-12-20 杭州米络星科技(集团)有限公司 一种保障全球udp音视频流远距离实时传输流畅的方法
CN110868616A (zh) * 2019-11-26 2020-03-06 上海高骏精视信息技术有限公司 一种5g网络下低延时高可靠视频传输方法
CN111082896A (zh) * 2019-12-11 2020-04-28 深圳市优必选科技股份有限公司 一种数据传输方法及发送、接收装置
CN111371533A (zh) * 2020-03-09 2020-07-03 腾讯科技(深圳)有限公司 数据传输方法、装置、存储介质及设备
CN111601107A (zh) * 2020-05-11 2020-08-28 着迷科技(深圳)有限公司 编码方法、解码方法、装置、电子设备及存储介质
CN111770530A (zh) * 2019-04-01 2020-10-13 Oppo广东移动通信有限公司 数据传输方法及相关设备
CN111866913A (zh) * 2020-06-19 2020-10-30 青岛海洋科学与技术国家实验室发展中心 无线配置方法及配置系统
CN112165655A (zh) * 2020-08-19 2021-01-01 视联动力信息技术股份有限公司 基于视联网的数据传输方法、装置、设备及介质
CN112347014A (zh) * 2020-11-30 2021-02-09 安徽信息工程学院 一种用于集中式数据通信的最优时序控制方法及系统
WO2021047404A1 (zh) * 2019-09-12 2021-03-18 华为技术有限公司 一种网络参数配置方法及装置
CN112821992A (zh) * 2021-01-08 2021-05-18 百果园技术(新加坡)有限公司 数据传输方法、装置、电子设备和存储介质
CN113160342A (zh) * 2021-05-14 2021-07-23 杭州朗和科技有限公司 基于反馈的编码方法及装置、存储介质、电子设备
CN113840319A (zh) * 2020-06-23 2021-12-24 上海东方富联科技有限公司 丢包率获取方法、网关覆盖范围获取方法、介质及设备
CN114337931A (zh) * 2021-06-23 2022-04-12 中宇联云计算服务(上海)有限公司 基于云网融合技术的丢包补偿方法、系统以及设备
CN114374470A (zh) * 2020-10-15 2022-04-19 华为技术有限公司 数据传输方法、系统和计算机可读存储介质
CN114615164A (zh) * 2022-03-09 2022-06-10 网易(杭州)网络有限公司 丢包率探测方法及装置、存储介质、电子设备
CN114793146A (zh) * 2021-01-26 2022-07-26 普联技术有限公司 数据接收方法、数据发送方法及相关设备
CN115001630A (zh) * 2022-05-20 2022-09-02 北京百度网讯科技有限公司 数据传输方法、装置、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002017574A1 (fr) * 2000-08-24 2002-02-28 Matsushita Electric Industrial Co., Ltd. Procede et dispositif de transmission/reception
CN101483494A (zh) * 2008-01-07 2009-07-15 中兴通讯股份有限公司 一种会话发起协议终端编解码算法动态协商的方法及系统
CN101588597A (zh) * 2009-07-01 2009-11-25 南京工业大学 一种基于Kalman滤波的无线流媒体自适应混合FEC/ARQ控制方法
CN101902315A (zh) * 2009-06-01 2010-12-01 华为技术有限公司 基于前向纠错的重传方法、设备和通信系统
CN102111232A (zh) * 2009-12-29 2011-06-29 华为技术有限公司 前向纠错方法和装置
CN107743275A (zh) * 2017-10-24 2018-02-27 国网冀北电力有限公司 一种视频调节方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002017574A1 (fr) * 2000-08-24 2002-02-28 Matsushita Electric Industrial Co., Ltd. Procede et dispositif de transmission/reception
CN101483494A (zh) * 2008-01-07 2009-07-15 中兴通讯股份有限公司 一种会话发起协议终端编解码算法动态协商的方法及系统
CN101902315A (zh) * 2009-06-01 2010-12-01 华为技术有限公司 基于前向纠错的重传方法、设备和通信系统
CN101588597A (zh) * 2009-07-01 2009-11-25 南京工业大学 一种基于Kalman滤波的无线流媒体自适应混合FEC/ARQ控制方法
CN102111232A (zh) * 2009-12-29 2011-06-29 华为技术有限公司 前向纠错方法和装置
CN107743275A (zh) * 2017-10-24 2018-02-27 国网冀北电力有限公司 一种视频调节方法及装置

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111770530A (zh) * 2019-04-01 2020-10-13 Oppo广东移动通信有限公司 数据传输方法及相关设备
CN111770530B (zh) * 2019-04-01 2023-09-19 Oppo广东移动通信有限公司 数据传输方法及相关设备
CN110602452B (zh) * 2019-09-05 2020-12-25 杭州米络星科技(集团)有限公司 一种保障全球udp音视频流远距离实时传输流畅的方法
CN110602452A (zh) * 2019-09-05 2019-12-20 杭州米络星科技(集团)有限公司 一种保障全球udp音视频流远距离实时传输流畅的方法
WO2021047404A1 (zh) * 2019-09-12 2021-03-18 华为技术有限公司 一种网络参数配置方法及装置
CN110868616A (zh) * 2019-11-26 2020-03-06 上海高骏精视信息技术有限公司 一种5g网络下低延时高可靠视频传输方法
CN111082896A (zh) * 2019-12-11 2020-04-28 深圳市优必选科技股份有限公司 一种数据传输方法及发送、接收装置
CN111371533A (zh) * 2020-03-09 2020-07-03 腾讯科技(深圳)有限公司 数据传输方法、装置、存储介质及设备
CN111601107A (zh) * 2020-05-11 2020-08-28 着迷科技(深圳)有限公司 编码方法、解码方法、装置、电子设备及存储介质
CN111866913B (zh) * 2020-06-19 2024-04-26 青岛海洋科技中心 无线配置方法及配置系统
CN111866913A (zh) * 2020-06-19 2020-10-30 青岛海洋科学与技术国家实验室发展中心 无线配置方法及配置系统
CN113840319A (zh) * 2020-06-23 2021-12-24 上海东方富联科技有限公司 丢包率获取方法、网关覆盖范围获取方法、介质及设备
CN112165655A (zh) * 2020-08-19 2021-01-01 视联动力信息技术股份有限公司 基于视联网的数据传输方法、装置、设备及介质
CN114374470A (zh) * 2020-10-15 2022-04-19 华为技术有限公司 数据传输方法、系统和计算机可读存储介质
WO2022078426A1 (zh) * 2020-10-15 2022-04-21 华为技术有限公司 数据传输方法、系统和计算机可读存储介质
CN112347014A (zh) * 2020-11-30 2021-02-09 安徽信息工程学院 一种用于集中式数据通信的最优时序控制方法及系统
CN112821992A (zh) * 2021-01-08 2021-05-18 百果园技术(新加坡)有限公司 数据传输方法、装置、电子设备和存储介质
CN112821992B (zh) * 2021-01-08 2024-02-06 百果园技术(新加坡)有限公司 数据传输方法、装置、电子设备和存储介质
CN114793146A (zh) * 2021-01-26 2022-07-26 普联技术有限公司 数据接收方法、数据发送方法及相关设备
CN113160342B (zh) * 2021-05-14 2023-08-25 杭州网易智企科技有限公司 基于反馈的编码方法及装置、存储介质、电子设备
CN113160342A (zh) * 2021-05-14 2021-07-23 杭州朗和科技有限公司 基于反馈的编码方法及装置、存储介质、电子设备
CN114337931A (zh) * 2021-06-23 2022-04-12 中宇联云计算服务(上海)有限公司 基于云网融合技术的丢包补偿方法、系统以及设备
CN114615164A (zh) * 2022-03-09 2022-06-10 网易(杭州)网络有限公司 丢包率探测方法及装置、存储介质、电子设备
CN114615164B (zh) * 2022-03-09 2023-12-29 网易(杭州)网络有限公司 丢包率探测方法及装置、存储介质、电子设备
CN115001630A (zh) * 2022-05-20 2022-09-02 北京百度网讯科技有限公司 数据传输方法、装置、设备以及存储介质
CN115001630B (zh) * 2022-05-20 2023-06-30 北京百度网讯科技有限公司 数据传输方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
CN109412753A (zh) 数据传输方法及装置、电子设备以及存储介质
CN108494782B (zh) 一种基于udp的数据传输方法、终端设备及存储介质
EP1777865B1 (en) Method for handling timers after an RLC reset or re-establishment in a wireless communications system
US6496520B1 (en) Wireless network system and method
US7746786B2 (en) Retransmission control method and device
US20160323062A1 (en) Packet recovery in interactive real-time media protocol
CN112887063B (zh) 数据包传输方法和装置、存储介质、电子设备
US20090059917A1 (en) Systems and methods for reliable message delivery over digital networks
EP3062456B1 (en) Encoding based on data packet delay probability
US20160218837A1 (en) Method and apparatus to use more transmission opportunities in a distributed network topology with limited harq processes
US8219867B2 (en) Forward feedback for UL macrodiversity
JP2007053588A (ja) パケット再送方式、パケット再送システム、パケット再送プログラム及びプログラム記録媒体
JP5279730B2 (ja) 改善した再送の方法と装置
CN107040343A (zh) 一种重传调度方法及装置
US10849160B2 (en) Reinstating poll retransmission timer
WO2014155495A1 (ja) 通信装置、受信装置、及び送信装置
CN114039702B (zh) 数据传输方法、装置、设备和介质
RU2450466C1 (ru) Способ передачи информации по каналам связи и система для его осуществления
CN108769000A (zh) 一种用于深空环境的高效流媒体传输方法
CN108667563A (zh) 一种前向纠错包个数获取方法及装置
JPWO2002056632A1 (ja) データ通信システムおよび無線通信装置
CN109429248A (zh) 一种业务数据的处理方法、基站及移动通信终端
US9680610B2 (en) Method and apparatus for error control in 3D video transmissoin
KR100524744B1 (ko) 알엘씨 프로토콜의 이피씨 제어 방법
US9209947B1 (en) Fault-tolerant data transmission system for networks subject to jamming conditions

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190301