不可靠网络的抗丢包方法、装置、存储介质及电子设备与流程

专利2022-06-30  53


本发明涉及网络通信技术领域,具体而言,涉及一种不可靠网络的抗丢包方法、装置、存储介质及电子设备。



背景技术:

在实时音视频通信的应用场景下,网络状态是瞬变的,在数据传输过程中经常会伴随着丢包的情况发生,为了提供低延时高质量的通信品质,就需要在发送数据时,使用抗丢包技术,提高接收数据的质量。

目前,发送端主要通过编解码技术,实现丢包补偿,常用的方案有:与媒体无关前向差错纠正、与媒体相关前向差错纠正、声网开源的agorasolo等。传统方案均是被动式的编解码方案,无法根据网络状态进行实时动态的编码,根据每个信道的状态,实施不同的补偿策略方案。



技术实现要素:

为解决上述问题,本发明实施例的目的在于提供一种不可靠网络的抗丢包方法、装置、存储介质及电子设备。

第一方面,本发明实施例提供了一种不可靠网络的抗丢包方法,包括:

确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送所述第一有效数据包,指示所述第一目标设备根据所述第一编号的缺失情况确定第一丢包率,所述第一编号为按照发送顺序依次生成的编号;

若获取到所述第一目标设备反馈的第一丢包率,根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向所述第一目标设备发送所述第二有效数据包;其中,所述第二编号为按照发送顺序依次生成的编号,且所述第二编号是接续所述第一编号的编号,或者是与所述第一编号不相关的编号。

在一种可能的实现方式中,所述根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,包括:

根据所述第一丢包率将待传输的原始数据包分为n个互补的第二有效数据包,根据发送顺序为每个所述第二有效数据包分配相应的第二编号,并将所述第二编号添加至相应的所述第二有效数据包中;

其中,所述第一丢包率与n为正相关关系,且n≥2。

在一种可能的实现方式中,所述确定多个包含相应第一编号的第一有效数据包,包括:

若未获取到所述第一目标设备反馈的丢包率,则将待传输的原始数据分为两个互补的第一有效数据包。

在一种可能的实现方式中,该方法还包括:

获取第二目标设备发送的多个包含相应第三编号的第三有效数据包,所述第三编号为所述第二目标设备按照发送顺序依次生成的编号;

根据所述第三编号的缺失情况确定第二丢包率,并将所述第二丢包率反馈至所述第二目标设备,指示所述第二目标设备更改编码策略。

在一种可能的实现方式中,在所述获取第二目标设备发送的多个包含相应第三编号的第三有效数据包之后,该方法还包括:

对一个或多个所述第三有效数据包进行解码处理,生成待传输的原始数据包。

第二方面,本发明实施例还提供了一种不可靠网络的抗丢包装置,包括:

第一处理模块,用于确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送所述第一有效数据包,指示所述第一目标设备根据所述第一编号的缺失情况确定第一丢包率,所述第一编号为按照发送顺序依次生成的编号;

第二处理模块,用于若获取到所述第一目标设备反馈的第一丢包率,根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向所述第一目标设备发送所述第二有效数据包;其中,所述第二编号为按照发送顺序依次生成的编号,且所述第二编号是接续所述第一编号的编号,或者是与所述第一编号不相关的编号。

在一种可能的实现方式中,所述第二处理模块根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,包括:

根据所述第一丢包率将待传输的原始数据包分为n个互补的第二有效数据包,根据发送顺序为每个所述第二有效数据包分配相应的第二编号,并将所述第二编号添加至相应的所述第二有效数据包中;

其中,所述第一丢包率与n为正相关关系,且n≥2。

在一种可能的实现方式中,该装置还包括第三处理模块,所述第三处理模块用于:

获取第二目标设备发送的多个包含相应第三编号的第三有效数据包,所述第三编号为所述第二目标设备按照发送顺序依次生成的编号;

根据所述第三编号的缺失情况确定第二丢包率,并将所述第二丢包率反馈至所述第二目标设备,指示所述第二目标设备更改编码策略。

第三方面,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于上述任意一项所述的不可靠网络的抗丢包方法。

第四方面,本发明实施例还提供了一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任意一项所述的不可靠网络的抗丢包方法。

本发明实施例上述第一方面提供的方案中,向目标设备发送的数据包中包含依次生成的编号,使得目标设备可以基于所获取到的编号的缺失情况实时计算丢包率,进而使得作为发送方的服务器能够基于实时的丢包率实时调整编码策略,实时生成与该编码策略相匹配的数据包,从而可以根据网络状态实现动态编码,提高抗丢包能力,保证数据传输的质量;在高丢包率的不可靠网络环境下,也能提供低质量的数据,能够保证数据流程性。同时,对于不同的目标设备可以分别获取与其相应的丢包率,从而可以为不同的目标设备分配不同的编码策略,进而可以提供最优的数据传输质量。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例所提供的一种不可靠网络的抗丢包方法的流程图;

图2示出了本发明实施例所提供的不可靠网络的抗丢包方法的详细流程图;

图3示出了本发明实施例所提供的不可靠网络的抗丢包方法的应用场景示意图;

图4示出了本发明实施例所提供的一种不可靠网络的抗丢包装置的结构示意图;

图5示出了本发明实施例所提供的用于执行不可靠网络的抗丢包方法的电子设备的结构示意图。

具体实施方式

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明实施例提供的一种不可靠网络的抗丢包方法,基于目标设备反馈的丢包率可以实时调整编码策略,从而有效实现抗丢包。参见图1所示,该方法可以由服务器执行,其包括:

步骤101:确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送第一有效数据包,指示第一目标设备根据第一编号的缺失情况确定第一丢包率,第一编号为按照发送顺序依次生成的编号。

本发明实施例中,服务器向第一目标设备发送数据时,可以实时调整编码策略,具体的,服务器可以根据当前的编码策略生成多个有效数据包;同时,基于该有效数据包发送至第一目标设备的发送顺序可以为每个有效数据包分配相应的编号,即第一编号,之后将第一编号添加至基于当前编码策略编码生成的有效数据包中,即可生成包含相应第一编号的第一有效数据包,并依次将第一有效数据包发送至第一目标设备即可。第一目标设备接收到多个第一有效数据包之后,由于多个第一有效数据包的第一编号为依次生成的,该第一编号可以为连续编号或者按照其他规律排列生成的编号,故第一目标设备基于多个第一编号的缺失情况即可确定哪些第一有效数据包丢失了,进而可以方便快速地确定当前的丢包率,即第一丢包率。

本实施例中的“发送顺序”泛指一个设备向另外一个设备发送数据包时的顺序。例如,服务器当前生成了三个有效数据包a、b、c,且有效数据包a、b、c依次发送至第一目标设备,则有效数据包a的第一编号可以为①,有效数据包b的第一编号可以为②,有效数据包c的第一编号可以为③。相应的,第一目标设备可以接收服务器发送的有效数据包a、b、c,若由于网络原因导致第一目标设备只接收到有效数据包a和c,则第一目标设备只能获取到第一编号①和③,从而第一目标数据基于所有的第一编号即可确定第一编号②丢失,即有效数据包b丢失,进而可以确定当前的第一丢包率,丢包率为33%。具体的,第一目标设备可以计算预设时间段(例如1秒等)内的丢包率,在该预设时间段内第一目标设备可以获取到多个第一有效数据包,从而可以比较准确地计算当前的第一丢包率。其中,该第一目标设备可以为智能手机、平板电脑、个人计算机等,本实施例对此不做限定。

步骤102:若获取到第一目标设备反馈的第一丢包率,根据第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向第一目标设备发送第二有效数据包;其中,第二编号为按照发送顺序依次生成的编号,且第二编号是接续第一编号的编号,或者是与第一编号不相关的编号。

本发明实施例中,第一目标设备计算出当前的第一丢包率之后,将该第一丢包率实时反馈至服务器;服务器在获取到第一目标设备发送的第一丢包率之后,即可根据当前的第一丢包率实时调整编码策略。本实施例中,服务器可以根据该第一丢包率确定多个第二有效数据包;其中,与上述的第一有效数据包类似,该第二有效数据包中也包含相应的编号,即第二编号,该第二编号也是为按照发送顺序依次生成的编号。其中,该第二编号可以是接续第一编号的编号,例如在发送第一编号为③的第一有效数据包之后,服务器接收到第一丢包率并确定了相应的第二有效数据包,此时需要发送的第二有效数据包的编号可以为④,即第二编号④是接着第一编号③的顺序依次排列的号码。或者,该第二编号也可以是与第一编号不相关的编号,例如第一编号为①、②、③等,第二编号为11、12、13等。服务器将包含第二编号的第二有效数据包发送至第一目标设备之后,该第一目标设备可以继续基于第二编号(也可以参考之前获取到的第一编号等)实时确定当前的丢包率,进而使得服务器能够实时获取到服务器向第一目标设备发送数据包的实时丢包率,从而服务器可以实时调整编码策略,即循环执行上述的步骤101和102,从而尽量避免丢包。

本实施例中,若基于该第一丢包率所确定编码策略与在步骤101中生成第一有效数据包时所采用的编码策略相同,则当前可以不改变编码策略,即仍然按照之前的编码策略生成第二有效数据包;同时,此时生成的第二有效数据包中的第二编号可以为接续第一编号的编号。若在步骤102中基于第一丢包率更改了编码策略,则基于新的编码策略生成第二有效数据包;同时,该第二编号可以为重新生成的编号,也可以为接续第一编号的编号。

本领域技术人员可以理解,本实施例中的“第一有效数据包”和“第二有效数据包”均为服务器发送至第一目标设备的数据包,只是两个数据包(即第一有效数据包和第二有效数据包)被发送至第一目标设备的时间点不同,两个数据包分别包含相应的第一编号和第二编号,且两个数据包可能采用不同的编码策略进行编码生成。

本发明实施例提供的一种不可靠网络的抗丢包方法,向目标设备发送的数据包中包含依次生成的编号,使得目标设备可以基于所获取到的编号的缺失情况实时计算丢包率,进而使得作为发送方的服务器能够基于实时的丢包率实时调整编码策略,实时生成与该编码策略相匹配的数据包,从而可以根据网络状态实现动态编码,提高抗丢包能力,保证数据传输的质量;在高丢包率的不可靠网络环境下,也能提供低质量的数据,能够保证数据流程性。同时,对于不同的目标设备可以分别获取与其相应的丢包率,从而可以为不同的目标设备分配不同的编码策略,进而可以提供最优的数据传输质量。

在上述实施例的基础上,步骤102“根据第一丢包率确定多个包含相应第二编号的第二有效数据包”包括:

步骤a1:根据第一丢包率将待传输的原始数据包分为n个互补的第二有效数据包,根据发送顺序为每个第二有效数据包分配相应的第二编号,并将第二编号添加至相应的第二有效数据包中;其中,该第一丢包率与n为正相关关系,且n≥2。

本发明实施例中,服务器采用将待传输的原始数据包分为多个互补的有效数据包的编码策略,不同的编码策略可以分为不同数量的有效数据包。对于接收到该有效数据包的第一目标设备,第一目标设备基于互补的有效数据包的多少可以还原(即解码)生成相应的原始数据包,且有效数据包越多,越能不失真地还原为原始数据包。例如,原始数据包为16kbps的音频信号,若服务器将该音频信号分为两个(即n=2)有效数据包a和b发送至第一目标设备,若第一目标设备只接收到有效数据包a,则其可以解码出一个8kbps的窄带音频信号;若第一目标设备只接收到有效数据包b,则其也可以解码出一个8kbps的窄带音频信号;但若第一目标设备接收到两个有效数据包a和b,则其可以恢复解码出一个16kbps的宽带高质量音频信号。

具体的,本实施例中基于第一丢包率将原始数据分为n个互补的第二有效数据包,且该第一丢包率与n为正相关关系,即第一丢包率越大,n也越大。例如,第一丢包率为10%,n可以为2;若第一丢包率为40%,n可以为4。可以预先设置丢包率与n之间的对应关系,方便服务器得到丢包率之后直接确定n,进而执行分包编码的操作。

可选的,本实施例中每次均可以基于当前的编码策略生成有效数据包,上述步骤101“确定多个包含相应第一编号的第一有效数据包”包括:

步骤b1:若未获取到第一目标设备反馈的丢包率,则将待传输的原始数据分为2个互补的第一有效数据包。

本发明实施例中,在步骤101中,若当前也获取到第一目标设备反馈的丢包率,则也可以与步骤102类似,基于当前获取到的丢包率确定第一有效数据包。若当前未获取到第一目标设备反馈的任何丢包率,则此时可以采用默认的编码策略,将待传输的原始数据分为2个互补的第一有效数据包,即n=2;当获取到丢包率时,即可基于丢包率来确定相应的编码策略,实时调整n。

在上述实施例的基础上,该方法还包括接收数据的过程,即服务器也可以作为数据的接收端;此时,该接收数据的过程包括:

步骤c1:获取第二目标设备发送的多个包含相应第三编号的第三有效数据包,第三编号为第二目标设备按照发送顺序依次生成的编号。

步骤c2:根据第三编号的缺失情况确定第二丢包率,并将第二丢包率反馈至第二目标设备,指示第二目标设备更改编码策略。

本发明实施例中,第二目标设备可以作为发送端向服务器发送数据包,其中,该第二目标设备作为发送端时的处理过程与该服务器作为发送端时的处理过程基本相似;相应的,该服务器作为接收端时的处理过程与上述的第一目标设备作为接收端时的处理过程也基本类似。具体的,当第二目标设备需要向服务器发送原始数据包时,第二目标设备可以根据服务器反馈的丢包率选择相应的编码策略,并基于此时需要发送的原始数据包生成包含第三编号的第三有效数据包,例如可以执行与步骤a1相似的处理过程,将其分为n个互补的第三有效数据包。服务器接收到第三有效数据包时,基于其中第三编号的确实情况将可确定当前的丢包率,并此时计算得到的丢包率反馈至第二目标设备,使得第二目标设备可以基于该丢包率实时更改编码策略。

其中,可选的,在步骤c1“获取第二目标设备发送的多个包含相应第三编号的第三有效数据包”之后,服务器还可以进行解码处理,以生成需要发送给其他目标设备(例如第一目标设备)的原始数据包。具体的,在步骤c1之后,该方法还包括:

步骤c3:对一个或多个第三有效数据包进行解码处理,生成待传输的原始数据包。

本发明实施例中,服务器发送至第一目标设备的数据包可以为本地存储的,也可以是由第二目标设备发送至服务器的数据包,从而基于该服务器将第二目标设备发送的数据包转发至第一目标设备,且转发过程具有较高的抗丢包能力。

下面通过一个实施例详细介绍该抗丢包方法的详细流程。

本发明实施例中,目标设备1为第一目标设备,目标设备2为第二目标设备,目标设备1可以基于服务器来获取目标设备2发送的数据包。参见图2所示,该方法包括:

步骤201:目标设备2确定需要发送的原始数据包a,并根据服务器反馈的丢包率将该原始数据包a分为多个互补的有效数据包ai,该有效数据包ai中含有相应的编号。

本实施例中,目标设备2与服务器之间进行数据传输,服务器基于当前编号的丢失情况计算当前的丢包率,即上述的第二丢包率,使得目标设备2可以基于该第二丢包率将原始数据包a分为多个互补的有效数据包ai(即上述的第三有效数据包)。例如,第二丢包率为15%,此时目标设备2可以将原始数据包a分为两个有效数据包a1和a2,两个有效数据包含有相应的编号1和2。

步骤202:目标设备2按照顺序将有效数据包ai发送至服务器。

本实施例中,目标设备2先发送有效数据包a1,再发送有效数据包a2,其发送顺序与编号的顺序一致。

步骤203:服务器接收到有效数据包ai之后,根据有效数据包ai中编号的缺失情况计算丢包率,并将该丢包率实时反馈至目标设备2。

本实施例中,通过将该丢包率实时反馈至目标设备2,使得目标设备2可以实时确定编码策略,进而继续发送其他原始数据包至服务器。

步骤204:服务器对有效数据包ai进行解码处理,确定相对应的原始数据包b,并根据当前的编码策略将原始数据包b分为多个互补的有效数据包bi,该有效数据包bi中含有相应的编号。

本实施例中,服务器根据接收到的有效数据包ai即可还原得到相应的原始数据包。具体的,若有效数据包包括a1和a2,且服务器接收到了两个有效数据包a1和a2,则服务器还原得到的原始数据包b即为原始数据包a;若由于网络原因导致服务器只接收到a1或a2中的一个有效数据包,则还原得到的原始数据包b为低码率的原始数据包a。

其中,若当前服务器没有接收到目标设备1反馈的丢包率,则当前的编码策略为将原始数据包b分为两个互补的有效数据包;若当前服务器收到了目标设备1反馈的丢包率(即第一丢包率),则可以根据该丢包率确定相应的编码策略。本实施例中以服务器将原始数据包b分为两个有效数据包b1和b2为例说明,两个有效数据包b1和b2中包含的编号(即第一编号)分别为1-1和1-2。

步骤205:服务器按照顺序将有效数据包bi发送至目标设备1。

本实施例中,服务器先发送编号为1-1的有效数据包b1,再发送编号为1-2的有效数据包b2。

步骤206:目标设备1根据接收到的有效数据包bi中编号的缺失情况计算当前的丢包率,并将该丢包率反馈至服务器。

本实施例中,目标设备1反馈给服务器的丢包率即为上述的第一丢包率。同时,目标设备1可以基于在预设周期(例如1秒)内接收到的所有有效数据包(包括该有效数据包bi)来计算当前的丢包率。

步骤207:目标设备1对接收到的有效数据包bi进行解码处理,生成相应的原始数据包c,并对该原始数据包c进行相应的处理。

本实施例中,与上述步骤204中的解码过程类似,若数据传输过程中没有发生丢包,则该原始数据包c即为原始数据包b,否则为低码率的原始数据包b。当目标设备1解码得到原始数据包c之后即可进行相应处理。例如,目标设备2发送的原始数据包a为音视频数据,则该目标设备1可以播放相应的原始数据包c,以供目标设备1侧的用户观看。

步骤208:服务器确定需要继续发送的原始数据包d,并根据目标设备2反馈的丢包率将该原始数据包d分为多个互补的有效数据包di,该有效数据包di中也含有相应的编号。

本实施例中,在步骤203之后,目标设备2可以基于上述的步骤201和步骤202继续向服务器发送数据包,使得服务器可以解码得到原始数据包d。同时,服务器基于目标设备1反馈的丢包率可以相应调整编码策略。本实施例中,目标设备1在步骤206所反馈的丢包率为40%,此时服务器将原始数据包d分为四个有效数据包d1、d2、d3、d4,四个有效数据包的编号(即上述的第二编号)依次可以为2-1、2-2、2-3、2-4。

步骤209:服务器将该有效数据包di发送至目标设备1。

本实施例中,该步骤209与上述的步骤206相同,相应的,目标设备1在接收到有效数据包di之后可以重复执行上述的步骤206和207。如此实时执行该抗丢包方法,使得两个目标设备在高抗丢包能力的情况下实现数据传输。具体的,如果目标设备1收到4个包(即有效数据包d1、d2、d3、d4),就可以解码得到高质量的数据;如果目标设备1收到2个包(例如有效数据包d1、d2,或d1、d3等),就可以得到普通质量的数据;如果目标设备1只收到1个包(例如有效数据包d1或d2等),就可以得到更低质量的数据。若原始数据包为音视频数据,此时虽然清晰度会受到一定影响,但能保证低延迟的流畅效果。

可选的,该抗丢包方法可以应用于直播领域,基于该抗丢包方法提高直播过程中的抗丢包能力。参见图3所示,第二目标设备为主播侧所用的设备,其可提供相应的音视频数据。服务器具体可分为推流服务器和拉流服务器,第二目标设备将音视频数据推送至该推流服务器,实现推流过程;同时,第一目标设备为观众侧所用的设备,多个第一目标设备可以分别从拉流服务器中拉取第二目标设备的音视频数据,使得第一目标设备可以播放拉取的音视频数据。

以上详细介绍了不可靠网络的抗丢包方法的流程,该方法也可以通过相应的装置实现,下面详细介绍该装置的结构和功能。

本发明实施例提供的一种不可靠网络的抗丢包装置,参见图4,包括:

第一处理模块41,用于确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送所述第一有效数据包,指示所述第一目标设备根据所述第一编号的缺失情况确定第一丢包率,所述第一编号为按照发送顺序依次生成的编号;

第二处理模块42,用于若获取到所述第一目标设备反馈的第一丢包率,根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向所述第一目标设备发送所述第二有效数据包;其中,所述第二编号为按照发送顺序依次生成的编号,且所述第二编号是接续所述第一编号的编号,或者是与所述第一编号不相关的编号。

在上述实施例的基础上,所述第二处理模块42根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,包括:

根据所述第一丢包率将待传输的原始数据包分为n个互补的第二有效数据包,根据发送顺序为每个所述第二有效数据包分配相应的第二编号,并将所述第二编号添加至相应的所述第二有效数据包中;

其中,所述第一丢包率与n为正相关关系,且n≥2。

在一种可能的实现方式中,所述第一处理模块41确定多个包含相应第一编号的第一有效数据包,包括:

若未获取到所述第一目标设备反馈的丢包率,则将待传输的原始数据分为两个互补的第一有效数据包。

在上述实施例的基础上,该装置还包括第三处理模块,所述第三处理模块用于:

获取第二目标设备发送的多个包含相应第三编号的第三有效数据包,所述第三编号为所述第二目标设备按照发送顺序依次生成的编号;

根据所述第三编号的缺失情况确定第二丢包率,并将所述第二丢包率反馈至所述第二目标设备,指示所述第二目标设备更改编码策略。

在上述实施例的基础上,该装置还包括解码模块;在所述第三处理模块获取第二目标设备发送的多个包含相应第三编号的第三有效数据包之后,所述解码模块用于:

对一个或多个所述第三有效数据包进行解码处理,生成待传输的原始数据包。

本发明实施例提供的一种不可靠网络的抗丢包装置,向目标设备发送的数据包中包含依次生成的编号,使得目标设备可以基于所获取到的编号的缺失情况实时计算丢包率,进而使得作为发送方的服务器能够基于实时的丢包率实时调整编码策略,实时生成与该编码策略相匹配的数据包,从而可以根据网络状态实现动态编码,提高抗丢包能力,保证数据传输的质量;在高丢包率的不可靠网络环境下,也能提供低质量的数据,能够保证数据流程性。同时,对于不同的目标设备可以分别获取与其相应的丢包率,从而可以为不同的目标设备分配不同的编码策略,进而可以提供最优的数据传输质量。

本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,其包含用于执行上述的不可靠网络的抗丢包方法的程序,该计算机可执行指令可执行上述任意方法实施例中的方法。

其中,所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

图5示出了本发明的另一个实施例的一种电子设备的结构框图。所述电子设备1100可以是具备计算能力的主机服务器、个人计算机pc、或者可携带的便携式计算机或终端等。本发明具体实施例并不对电子设备的具体实现做限定。

该电子设备1100包括至少一个处理器(processor)1110、通信接口(communicationsinterface)1120、存储器(memoryarray)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。

通信接口1120用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。

处理器1110用于执行程序。处理器1110可能是一个中央处理器cpu,或者是专用集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器1130用于可执行的指令。存储器1130可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。存储器1130存储的指令可被处理器1110执行,以使处理器1110能够执行上述任意方法实施例中的不可靠网络的抗丢包方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换的实施方式,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。


技术特征:

1.一种不可靠网络的抗丢包方法,其特征在于,包括:

确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送所述第一有效数据包,指示所述第一目标设备根据所述第一编号的缺失情况确定第一丢包率,所述第一编号为按照发送顺序依次生成的编号;

若获取到所述第一目标设备反馈的第一丢包率,根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向所述第一目标设备发送所述第二有效数据包;其中,所述第二编号为按照发送顺序依次生成的编号,且所述第二编号是接续所述第一编号的编号,或者是与所述第一编号不相关的编号。

2.根据权利要求1所述的方法,其特征在于,所述根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,包括:

根据所述第一丢包率将待传输的原始数据包分为n个互补的第二有效数据包,根据发送顺序为每个所述第二有效数据包分配相应的第二编号,并将所述第二编号添加至相应的所述第二有效数据包中;

其中,所述第一丢包率与n为正相关关系,且n≥2。

3.根据权利要求1所述的方法,其特征在于,所述确定多个包含相应第一编号的第一有效数据包,包括:

若未获取到所述第一目标设备反馈的丢包率,则将待传输的原始数据分为两个互补的第一有效数据包。

4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括:

获取第二目标设备发送的多个包含相应第三编号的第三有效数据包,所述第三编号为所述第二目标设备按照发送顺序依次生成的编号;

根据所述第三编号的缺失情况确定第二丢包率,并将所述第二丢包率反馈至所述第二目标设备,指示所述第二目标设备更改编码策略。

5.根据权利要求4所述的方法,其特征在于,在所述获取第二目标设备发送的多个包含相应第三编号的第三有效数据包之后,还包括:

对一个或多个所述第三有效数据包进行解码处理,生成待传输的原始数据包。

6.一种不可靠网络的抗丢包装置,其特征在于,包括:

第一处理模块,用于确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送所述第一有效数据包,指示所述第一目标设备根据所述第一编号的缺失情况确定第一丢包率,所述第一编号为按照发送顺序依次生成的编号;

第二处理模块,用于若获取到所述第一目标设备反馈的第一丢包率,根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向所述第一目标设备发送所述第二有效数据包;其中,所述第二编号为按照发送顺序依次生成的编号,且所述第二编号是接续所述第一编号的编号,或者是与所述第一编号不相关的编号。

7.根据权利要求6所述的装置,其特征在于,所述第二处理模块根据所述第一丢包率确定多个包含相应第二编号的第二有效数据包,包括:

根据所述第一丢包率将待传输的原始数据包分为n个互补的第二有效数据包,根据发送顺序为每个所述第二有效数据包分配相应的第二编号,并将所述第二编号添加至相应的所述第二有效数据包中;

其中,所述第一丢包率与n为正相关关系,且n≥2。

8.根据权利要求6或7所述的装置,其特征在于,还包括第三处理模块,所述第三处理模块用于:

获取第二目标设备发送的多个包含相应第三编号的第三有效数据包,所述第三编号为所述第二目标设备按照发送顺序依次生成的编号;

根据所述第三编号的缺失情况确定第二丢包率,并将所述第二丢包率反馈至所述第二目标设备,指示所述第二目标设备更改编码策略。

9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-5任意一项所述的不可靠网络的抗丢包方法。

10.一种电子设备,其特征在于,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5任意一项所述的不可靠网络的抗丢包方法。

技术总结
本发明提供了一种不可靠网络的抗丢包方法、装置、存储介质及电子设备,其中,该方法包括:确定多个包含相应第一编号的第一有效数据包,并按照发送顺序依次向第一目标设备发送第一有效数据包;若获取到第一目标设备反馈的第一丢包率,根据第一丢包率确定多个包含相应第二编号的第二有效数据包,并按照发送顺序依次向第一目标设备发送第二有效数据包。本实施例中,通过向目标设备发送的数据包中包含依次生成的编号,使得目标设备可以实时计算丢包率,进而服务器能够基于丢包率实时调整编码策略,从而可以根据网络状态实现动态编码,提高抗丢包能力,保证数据传输的质量;在高丢包率的不可靠网络环境下,也能提供低质量的数据。

技术研发人员:郑轶
受保护的技术使用者:北京创世云科技有限公司
技术研发日:2020.01.09
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-57041.html

最新回复(0)