一种数据传输方法及装置与流程

文档序号:12375430阅读:223来源:国知局
一种数据传输方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种数据传输方法及装置。



背景技术:

TCP/IP(其中,TCP的英文全称为Transmission Control Protocol,中文全称为传输控制协议,IP的英文全称为Internet Protocol,中文全称为因特网互联协议)协议簇在传输层提供了两种常用的传输协议,一种是可靠的基于建立连接和流式的TCP传输,另一种是不可靠的无需连接和基于数据报的UDP(英文全称为User Datagram Protocol,中文全称为用户数据报协议)传输。使用TCP方式进行网络传输的特点是由协议栈来保证可靠传输,而使用UDP方式则协议栈不会负责可靠传输。TCP的可靠传输机制为使用者提供了极大的便利,但是TCP相比UDP也有一些不适用的地方:例如TCP协议相比UDP显得比较笨重,协议本身的开销比较大;且TCP协议在网络情况不佳的条件下性能不高,表现为上行的带宽不高,下行的压力较大;同时在涉及NAT穿越的场景下TCP的连接建立握手过程难以实现,此时更适合使用UDP的传输方式。

在实际应用中可能对数据传输有可靠性的要求,因此,在很多的业务场景中就需要考虑使用可靠的UDP传输。通过UDP实现可靠传输,实现的基本思路是提供对另一端收到数据的确认。这种确认一般有两种实现方式:一种是基于简单的停止-等待协议的可靠性保证技术,常用于一些轻量的实现,例如常见的TFTP(英文全称为Trivial File Transfer Protocol,中文全称为简单文件传输协议)协议就是在UDP之上通过停止-等待协议实现了可靠UDP传输。另一种是基于滑动窗口的可靠性保证技术,滑动窗口技术能够提供相比停止-等待协议更快的传输速率。这两种实现并无本质不同,只是在数据发送的时机和对方对收到的数据进行确认的机制上有所不同。

可靠UDP传输数据确认的基本实现方式是发送方在发送时设置一个定时器,当数据发送出去后如果直到定时器超时还没有得到对方的确认,就重传该数据。

但是,正向发送的数据包可能会在网络上丢失,反向发送的确认包也可能在网络上丢失,其中,正向发送指由发送端向接收端发送UDP数据包,反向发送指接收端向发送端发送确定接收到UDP数据包的确认包。无论对于停止-等待还是滑动窗口,正向数据包的丢失都要等待超时并进行重传,反向数据包的丢失同样会导致发送端超时并重传,当数据包或确认包丢失时,会造成正向数据包的反复重传,这在网络上产生了不必要的负荷,同时等待超时的过程严重地影响了数据包发送的速率。



技术实现要素:

本发明提供一种数据传输方法及装置,以解决现有技术中存在的由于正向数据包的反复重传而造成的在网络上产生不必要的负荷的问题,以及,等待超时的过程导致的数据包发送的速率低的问题。

一种数据传输方法,包括:

发送端根据当前待发送数据组对应的冗余编码参数,对当前待发送数据组中的数据进行冗余编码;

所述发送端将冗余编码后的当前待发送数据组中的数据发送给接收端。

所述方法,采用以下方式对待发送数据进行分组,得到若干个待发送数据组:

从缓冲区中获取待发送数据,所述获取的待发送数据的数据量不大于当前发送窗口;

按照获取的待发送数据的发送顺序,根据斐波那契数列,对所述获取的待发送数据进行分组,得到若干个待发送数据组。

所述方法,采用如下方式确定当前待发送数据组对应的冗余编码参数:

当前待发送数据组为第一个数据组并且为第一次发送第一个数据组时,确定当前待发送数据组对应的冗余编码参数为0;

当前待发送数据组为非第一个数据组或者非第一次发送的第一个数据组时,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数。

所述方法中,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数,具体包括:

针对每个已发送数据组,统计每次发送该已发送数据组的丢包个数,并确定发生一次丢包事件;

统计丢失k个数据包的丢包事件发生的次数,其中,k依次取值0~N,N为单个数据组中所包含的数据包个数上限,k为整数;

根据预设概率模型、每次发送该已发送数据组的丢包个数以及丢失k个数据包的丢包事件发生的次数,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数;

确定所有满足预设条件的丢包个数j中的最小值,其中,预设条件为所述和值大于或等于预设概率阈值,所述预设概率阈值用于表征接收端成功接收到数据的概率;

将确定的最小值确定为当前待发送数据组对应的冗余编码参数。

所述方法中,所述确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,具体包括:

根据丢失k个数据包的丢包事件发生的次数以及丢失的数据包个数k,确定泊松分布概率模型中的参数λ的值;

根据参数λ确定后的泊松分布概率模型,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数;

其中,预设条件为:其中,PTH表示预设概率阈值,表示所述和值。

所述方法中,统计每次发送该已发送数据组的丢包个数,具体包括:

发送该已发送数据组后,启动该已发送数据组对应的定时器;

确定所述定时器到时,且,未接收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该已发送数据组中的数据包个数;

确定所述定时器到时之前,收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该确认包中携带的丢包个数。

所述方法,还包括:

确定在预设时长内未接收到接收端发送的用于表征接收到所述当前待发送数据组的确认包时,重新向接收端发送冗余编码后的当前待发送数据组中的数据。

本发明还提供一种数据传输方法,包括:

接收端确定接收发送端发送的冗余编码后的数据组并成功解码该数据组中的数据时,生成针对该数据组的确认包;

根据预设冗余编码参数,对所述确认包进行冗余编码;

向所述发送端发送冗余编码后的确认包。

所述方法,还包括:

针对预设数目个计算周期中的每个计算周期,根据冗余编码后的数据组中的数据包个数,计算该数据组中的数据包个数与当前接收到的该数据组中的数据包个数之差,得到该预算周期对应的丢包个数;

确定预设数目个计算周期对应的丢包个数中的最大值,将该最大值确定为发送端单次发送该数据组后的丢包个数;

将单次发送该数据组后的丢包个数携带在针对该数据组的确认包中发送给发送端。

本发明还提供一种数据传输装置,包括:

编码单元,用于根据当前待发送数据组对应的冗余编码参数,对当前待发送数据组中的数据进行冗余编码;

发送单元,用于将冗余编码后的当前待发送数据组中的数据发送给接收端。

所述装置,还包括:

分组单元,用于采用以下方式对待发送数据进行分组,得到若干个待发送数据组:

从缓冲区中获取待发送数据,所述获取的待发送数据的数据量不大于当前发送窗口;

按照获取的待发送数据的发送顺序,根据斐波那契数列,对所述获取的待发送数据进行分组,得到若干个待发送数据组。

所述装置,还包括:

确定单元,用于采用如下方式确定当前待发送数据组对应的冗余编码参数:

当前待发送数据组为第一个数据组并且为第一次发送第一个数据组时,确定当前待发送数据组对应的冗余编码参数为0;

当前待发送数据组为非第一个数据组或者非第一次发送的第一个数据组时,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数。

所述装置中,所述确定单元在根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数时,具体用于:

针对每个已发送数据组,统计每次发送该已发送数据组的丢包个数,并确定发生一次丢包事件;

统计丢失k个数据包的丢包事件发生的次数,其中,k依次取值0~N,N为单个数据组中所包含的数据包个数上限,k为整数;

根据预设概率模型、每次发送该已发送数据组的丢包个数以及丢失k个数据包的丢包事件发生的次数,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数;

确定所有满足预设条件的丢包个数j中的最小值,其中,预设条件为所述和值大于或等于预设概率阈值,所述预设概率阈值用于表征接收端成功接收到数据的概率;

将确定的最小值确定为当前待发送数据组对应的冗余编码参数。

所述装置中,所述确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,具体包括:

根据丢失k个数据包的丢包事件发生的次数以及丢失的数据包个数k,确定泊松分布概率模型中的参数λ的值;

根据参数λ确定后的泊松分布概率模型,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数;

其中,预设条件为:其中,PTH表示预设概率阈值,表示所述和值。

所述装置中,所述确定单元在统计每次发送该已发送数据组的丢包个数时,具体用于:

发送该已发送数据组后,启动该已发送数据组对应的定时器;

确定所述定时器到时,且,未接收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该已发送数据组中的数据包个数;

确定所述定时器到时之前,收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该确认包中携带的丢包个数。

所述装置中,所述发送单元还用于:

确定在预设时长内未接收到接收端发送的用于表征接收到所述当前待发送数据组的确认包时,重新向接收端发送冗余编码后的当前待发送数据组中的数据。

本发明还提供一种数据传输装置,包括:

生成单元,用于确定接收发送端发送的冗余编码后的数据组并成功解码该数据组中的数据时,生成针对该数据组的确认包;

编码单元,用于根据预设冗余编码参数,对所述确认包进行冗余编码;

发送单元,用于向所述发送端发送冗余编码后的确认包。

所述装置中,所述发送单元还用于:

针对预设数目个计算周期中的每个计算周期,根据冗余编码后的数据组中的数据包个数,计算该数据组中的数据包个数与当前接收到的该数据组中的数据包个数之差,得到该预算周期对应的丢包个数;

确定预设数目个计算周期对应的丢包个数中的最大值,将该最大值确定为发送端单次发送该数据组后的丢包个数;

将单次发送该数据组后的丢包个数携带在针对该数据组的确认包中发送给发送端。

利用本发明实施例提供的数据传输方式及装置,具有以下有益效果:由于对待发送数据进行了冗余编码,使得接收端在解码发送端发送的数据时,能够提高解码成功的概率,从而在一定程度上降低了发送端向接收端发送数据的丢包率,还可以在一定程度上降低由于解码失败导致的发送端反复向接收端发送数据的概率,同时在一定程度上避免了在网络上产生不必要的负荷,提高了数据发送的速率。

附图说明

图1为本发明实施例提供的发送端的数据传输方法流程图;

图2为本发明实施例提供的对待发送数据进行分组的方法流程图;

图3为本发明实施例提供的确定当前待发送数据组对应的冗余编码参数的方法流程图;

图4为本发明实施例提供的利用概率模型确定当前待发送数据组对应的冗余编码参数的方法流程图;

图5为本发明实施例提供的统计每次发送已发送数据组的丢包个数的方法流程图;

图6为本发明实施例提供的接收端的数据传输方法流程图;

图7为本发明实施例提供的统计数据组的丢包个数并发送给发送端的方法流程图;

图8为本发明实施例提供的发送端的数据传输装置示意图;

图9为本发明实施例提供的接收端的数据传输装置示意图。

具体实施方式

下面结合附图和实施例对本发明提供的数据传输方法进行更详细地说明。

本发明实施例提供一种数据传输方法,如图1所示,包括:

步骤101,发送端根据当前待发送数据组对应的冗余编码参数,对当前待发送数据组中的数据进行冗余编码。

步骤102,发送端将冗余编码后的当前待发送数据组中的数据发送给接收端。

具体的,从缓冲区获取数据作为当前待发送数据,并对当前待发送数据进行分组,其中,当前待发送数据为待发送的UDP数据包。冗余编码参数用于表示当前待发送数据组中数据的冗余量,可以预先设定每个待发送数据组对应的冗余编码参数相同,比如,均为10,也可以为其它数值,这里不做限定;也可以预先为每个待发送数据组设置不同冗余编码参数,还可以根据其它方式预先确定当前待发送数据组对应的冗余编码参数,这里不做限定。

本发明实施例,发送端在发送每个待发送数据组前,对该待发送数据组中的数据进行冗余编码,将冗余编码后的数据组发送给接收端,接收端按照与发送端约定的解码方式,对接收到的数据组进行解码。

本发明实施例由于对待发送数据进行了冗余编码,使得接收端在解码发送端发送的数据时,能够提高解码成功的概率,从而在一定程度上降低了发送端向接收端发送数据的丢包率,还可以在一定程度上降低由于解码失败导致的发送端反复向接收端发送数据的概率,同时在一定程度上避免了在网络上产生不必要的负荷,提高了数据发送的速率。

优选地,采用图2所示的内容对待发送数据进行分组,得到若干个待发送数据组:

步骤201,从缓冲区中获取待发送数据,所述获取的待发送数据的数据量不大于当前发送窗口。

具体的,缓冲区用于存储待发送数据,即待发送的UDP包,每次从缓冲区中获取的待发送数据的数据量不超过当前发送窗口,当前发送窗口为发送端的发送窗口与接收端的接收窗口中的较小值,比如:当前发送窗口允许的最大值为10个UDP包,则本次从缓冲区中获取的待发送数据包含的UDP包的个数不超过10。

步骤202,按照当前待发送数据的发送顺序,根据斐波那契数列,对当前待发送数据进行分组。

具体的,每次执行分组操作时,每个分组中包含的数据包的个数满足斐波那契数列,斐波那契数列对应的公式如下:

F(0)=0,F(1)=1,F(Q)=F(Q-1)+F(Q-2),其中,Q为大于或等于2的正整数。

即,按照斐波那契数列对当前待发送数据进行分组后,第一个数据组包含的数据包个数为1,第二个数据组包含的数据包个数为2,第三个数据组包含的数据包个数为3,第Q个数据组包含的数据包个数为F(Q-1)+F(Q-2)。采用斐波那契数列对当前待发送数据进行分组后,既可以使数据组中数据包的个数越来越多,又不至于使得每个数据组中包含的数据包个数增长过快,从而在网络状况较好的情况下,增加传输的数据包的速率。在网络状况较差时,可适当减少当前待发送数据组中数据包的个数,从而降低丢包率。

图2提供的实施例仅是一种优选地对待发送数据进行分组的方式,也可以设定各个待发送数据组中包括的数据量的大小相同,或者采用其它可以进行数据分组的方式。

优选地,采用图3所示的内容确定当前待发送数据组对应的冗余编码参数:

步骤301,判断当前待发送数据组是否为第一次发送第一个数据组,如果是,执行步骤302,否则,执行步骤303。

步骤302,确定当前待发送数据组对应的冗余编码参数为0。

具体的,在确定当前待发送数据组为第一个数据组并且为第一次发送第一个数据组时,将当前待发送数据组对应的冗余编码参数设置为0,即不对当前待发送数据组进行冗余编码,或者,也可将当前待发送数据组对应的冗余编码参数设置为其他值,从而在第一次发送第一个数据组时,就对该数据组中的数据进行冗余编码。

步骤303,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数。

具体的,在确定当前待发送数据组为非第一个数据组或者非第一次发送的第一个数据组时,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数。

由于UDP数据包的发送有一定的先后顺序,本发明实施例,在对待发送数据的分组操作执行完成之后,按照UDP数据包发送的先后顺序,对待发送数据进行分组,第一次发送第一个数据组时,该第一个数据组对应的冗余编码参数设置为0,也可以设置为其他值。如果发送一个数据组后,在预设时长内未接收到接收端发送的针对该数据组的确认包,则需要重新发送该数据组,重新发送该数据组之前,根据每次发送每个已发送数据组的丢包个数,以及每个已发送数据组的发送次数,确定该重新发送的数据组对应的冗余编码参数;如果发送一个数据组之后,在预设时长内接收到接收端发送的针对该数据组的确认包,根据每次发送每个已发送数据组的丢包个数,以及每个已发送数据组的发送次数,确定下一个待发送数据组对应的冗余编码参数,其中,已发送数据组指在当前待发送数据组之前已经发送的数据组。

本发明实施例,可以实时根据已发送数据组的丢包情况,确定当前待发送数据组对应的冗余编码参数,从而得到更加符合当前网络状况的冗余编码参数,使确定的当前待发送数据组对应的冗余编码参数更加可靠准确。

优选地,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数,如图4所示,具体包括:

步骤401,针对每个已发送数据组,统计每次发送该已发送数据组的丢包个数,并确定发生一次丢包事件。

具体的,针对已发送数据组,统计每次发送该数据组的丢包个数,并确定发生一次丢包事件。

步骤402,统计丢失k个数据包的丢包事件发生的次数,其中,k依次取值0~N,N为单个数据组中所包含的数据包个数上限,k为整数。

具体的,根据每次发送每个已发送数据组所丢失的丢包个数,以及发送每个已发送数据包发送次数,统计丢失k个数据包的丢包事件的次数,此时,k依次取值0~N,比如:N等于2,共发送过3次数据组,并且无重新发送数据组的情况,则,分别统计3次中丢失0个数据包的次数,丢失1个数据包的次数以及丢失2个数据包的次数,其中,N为整数并且N的取值可根据实际应用场景设定,这里不做限定。

步骤403,根据预设概率模型、每次发送该已发送数据组的丢包个数以及丢失k个数据包的丢包事件发生的次数,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数。

具体的,丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值为其中,0≤i≤j并且i为整数,继续沿用上例,如果N=3,假设3次中丢失0个数据包的次数为0,丢失1个数据包的次数为1以及丢失2个数据包的次数为2,j取值为2,则,丢失0个数据包的丢包事件发生的概率P(0)到丢失3个数据包的丢包事件发生的概率P(3)的和值为:P(0)、P(1)以及P(2)可根据预设概率模型确定。

步骤404,确定所有满足预设条件的丢包个数j中的最小值,其中,预设条件为所述和值大于或等于预设概率阈值,所述预设概率阈值用于表征接收端成功接收到数据的概率。

具体的,可根据实际应用场景设定期望接收端成功接收到数据的概率,即,步骤404中的预设概率阈值PTH,然后计算以确定所有满足预设条件的丢包个数j中的最小值。继续沿用上例,如果N=3,假设3次中丢失0个数据包的次数为0,丢失1个数据包的次数为1以及丢失2个数据包的次数为2,j取值为可以为0、1、2,则,分别计算P(0)、P(0)+P(1)、P(0)+P(1)+P(2),如果P(0)+P(1)大于或等于PTH,并且P(0)+P(1)+P(2)大于或等于PTH时,则选取较小的j值,即此时j取值为1。

步骤405,将确定的最小值确定为当前待发送数据组对应的冗余编码参数。

本发明实施例,在当前待发送数据组发送之前,确定所有大于或等于预设概率阈值的和值中,丢包个数j的最小值,以确定当前待发送数据组对应的冗余编码参数,从而提高了接收端成功接到当前待发送数据组的概率。

步骤403中,预设的概率模型可以为泊松分布概率模型、卡方分布概率模型等,优选地,预设的概率模型为泊松分布,则步骤403中,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,具体包括:根据丢失k个数据包的丢包事件发生的次数以及丢失的数据包个数k,确定泊松分布概率模型中的参数λ的值;根据参数λ确定后的泊松分布概率模型,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数。

具体的,采用如下公式确定参数λ的值:

其中,nk表示丢失k个数据包的丢包事件发生的次数,表示已发送数据组的总次数,继续沿用上例,如果N=3,假设3次中丢失0个数据包的次数为0,丢失1个数据包的次数为1以及丢失2个数据包的次数为2,则,

具体的,泊松分布概率模型为:其中,参数λ的值已确定。

丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值为0≤i≤j的整数,其中,继续沿用上例,如果N=3,假设3次中丢失0个数据包的次数为0,丢失1个数据包的次数为1以及丢失2个数据包的次数为2,j取值为2,则,丢失0个数据包的丢包事件发生的概率P(0)到丢失3个数据包的丢包事件发生的概率P(3)的和值为:P(0)、P(1)以及P(2)可根据参数λ确定后的泊松分布概率模型确定,这里不做详述。其中,预设条件为:其中,PTH表示预设概率阈值,表示所述和值。

本发明实施例,在当前待发送数据组发送之前,先确定泊松分布概率模型中的参数λ,再根据参数λ确定后的泊松分布概率模型,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,之后,确定所有大于或等于预设概率阈值的和值中,丢包个数j的最小值,以确定当前待发送数据组对应的冗余编码参数,从而提高了接收端成功接到当前待发送数据组的概率。

优选地,采用图5提供的内容,统计每次发送该已发送数据组的丢包个数,具体包括:

步骤501,发送该已发送数据组后,启动该已发送数据组对应的定时器。

具体的,为每个数据组设置一个定时器,发送端发送该数据组后,启动该数据组对应的定时器。

步骤502,判断该已发送数据组对应的定时器到时之前是否接收到接收端发送的确认包,如果是,执行步骤504,否则,执行步骤503。

步骤503,确定该已发送数据组的丢包个数为该已发送数据组中的数据包个数。

具体的,当所述定时器到时,且,未接收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该已发送数据组中的数据包个数,即,该已发送数据组中的所有数据包均丢失。

步骤504,确定该已发送数据组的丢包个数为该确认包中携带的丢包个数。

具体的,当确定所述定时器到时之前,收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该确认包中携带的丢包个数,确认包中携带的丢包个数由接收端统计得到,具体的实现方式在下文会进行详细介绍。

具体的,确定在预设时长内未接收到接收端发送的用于表征接收到所述当前待发送数据组的确认包时,重新向接收端发送冗余编码后的当前待发送数据组中的数据。其中,当前待发送数据组对应一个定时器,该定时器的时长为预设时长,如果当前待发送数据组发送后,在预设时长内未接收到接收端发送的表征接收到当前待发送数据组的确认包时,则重新向接收端发送冗余编码后的当前待发送数据组中的数据,直到接收端针对当前待发送数据组发送确认包。

以上是基于发送端的数据传输方法的介绍,下面基于发送端,对本发明实施例提供的数据传输方法进行介绍,如图6所示,包括:

步骤601,接收端确定接收发送端发送的冗余编码后的数据组并成功解码该数据组中的数据时,生成针对该数据组的确认包。

步骤602,根据预设冗余编码参数,对所述确认包进行冗余编码。

步骤603,向所述发送端发送冗余编码后的确认包。

本发明实施例,接收端在确定成功接收发送端发送的数据组,并根据与发送端约定的解码方式,对数据组解码成功时,生成针对该数据组的确认包,并根据预设冗余编码参数对该确认包进行冗余编码后,将冗余编码后的确认包发送至发送端,比如设定冗余编码参数为1,也可以为其它值,这里不做限定。

还可以设定同一确认包发送设定数目次,从而提高发送端接收到确认包的概率。

由于接收端给发送端发送确认包时,也有可能会丢失确认包,这样就会导致发送端重复发送数据组,本发明实施例,通过将确认包进行冗余编码,从而在一定程度上提高了发送端成功接收确认包的概率。

优选地,接收端还采用如下方式统计当前接收到的数据组的丢包个数并发送给发送端,如图7所示,包括:

步骤701,针对预设数目个计算周期中的每个计算周期,根据冗余编码后的数据组中的数据包个数,计算该数据组中的数据包个数与当前接收到的该数据组中的数据包个数之差,得到该预算周期对应的丢包个数。

具体的,接收端一边接收当前数据组中的数据,一边计算截止当前计算周期当前数据组中的丢包个数。

步骤702,确定预设数目个计算周期对应的丢包个数中的最大值,将该最大值确定为发送端单次发送该数据组后的丢包个数。

步骤703,将单次发送该数据组后的丢包个数携带在针对该数据组的确认包中发送给发送端。

本发明实施例,可统计当前正在接收的数据组的丢包个数,并通过确认包将丢包个数反馈给发送端,以使发送端根据上一已发送数据组的丢包个数,确定当前待发送数据组对应的冗余编码参数。

基于与本发明实施例提供的发送端的数据传输方法同样的发明构思,本发明实施例还提供一种数据传输装置,如图8所示,包括:

编码单元801,用于根据当前待发送数据组对应的冗余编码参数,对当前待发送数据组中的数据进行冗余编码;

发送单元802,用于将冗余编码后的当前待发送数据组中的数据发送给接收端。

优选地,所述装置,还包括:

分组单元803,用于采用以下方式对待发送数据进行分组,得到若干个待发送数据组:

从缓冲区中获取待发送数据,所述获取的待发送数据的数据量不大于当前发送窗口;

按照获取的待发送数据的发送顺序,根据斐波那契数列,对所述获取的待发送数据进行分组,得到若干个待发送数据组。

优选地,所述装置,还包括:

确定单元804,用于采用如下方式确定当前待发送数据组对应的冗余编码参数:

当前待发送数据组为第一个数据组并且为第一次发送第一个数据组时,确定当前待发送数据组对应的冗余编码参数为0;

当前待发送数据组为非第一个数据组或者非第一次发送的第一个数据组时,根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数。

优选地,所述装置中,所述确定单元在根据每个已发送数据组的丢包个数以及每个已发送数据组的发送次数,确定当前待发送数据组对应的冗余编码参数时,具体用于:

针对每个已发送数据组,统计每次发送该已发送数据组的丢包个数,并确定发生一次丢包事件;

统计丢失k个数据包的丢包事件发生的次数,其中,k依次取值0~N,N为单个数据组中所包含的数据包个数上限,k为整数;

根据预设概率模型、每次发送该已发送数据组的丢包个数以及丢失k个数据包的丢包事件发生的次数,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数;

确定所有满足预设条件的丢包个数j中的最小值,其中,预设条件为所述和值大于或等于预设概率阈值,所述预设概率阈值用于表征接收端成功接收到数据的概率;

将确定的最小值确定为当前待发送数据组对应的冗余编码参数。

优选地,所述装置中,所述确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,具体包括:

根据丢失k个数据包的丢包事件发生的次数以及丢失的数据包个数k,确定泊松分布概率模型中的参数λ的值;

根据参数λ确定后的泊松分布概率模型,确定丢失0个数据包的丢包事件发生的概率P(0)到丢失j个数据包的丢包事件发生的概率P(j)的和值,其中,j≤N,j为整数;

其中,预设条件为:其中,PTH表示预设概率阈值,表示所述和值。

优选地,所述装置中,所述确定单元在统计每次发送该已发送数据组的丢包个数时,具体用于:

发送该已发送数据组后,启动该已发送数据组对应的定时器;

确定所述定时器到时,且,未接收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该已发送数据组中的数据包个数;

确定所述定时器到时之前,收到接收端发送的确认包时,确定该已发送数据组的丢包个数为该确认包中携带的丢包个数。

优选地,所述装置中,所述发送单元还用于:

确定在预设时长内未接收到接收端发送的用于表征接收到所述当前待发送数据组的确认包时,重新向接收端发送冗余编码后的当前待发送数据组中的数据。

基于与本发明实施例提供的接收端的数据传输方法同样的发明构思本发明还提供一种数据传输装置,如图9所示,包括:

生成单元901,用于确定接收发送端发送的冗余编码后的数据组并成功解码该数据组中的数据时,生成针对该数据组的确认包;

编码单元902,用于根据预设冗余编码参数,对所述确认包进行冗余编码;

发送单元903,用于向所述发送端发送冗余编码后的确认包。

优选地,所述装置中,所述发送单元还用于:

针对预设数目个计算周期中的每个计算周期,根据冗余编码后的数据组中的数据包个数,计算该数据组中的数据包个数与当前接收到的该数据组中的数据包个数之差,得到该预算周期对应的丢包个数;

确定预设数目个计算周期对应的丢包个数中的最大值,将该最大值确定为发送端单次发送该数据组后的丢包个数;

将单次发送该数据组后的丢包个数携带在针对该数据组的确认包中发送给发送端。

利用本发明实施例提供的数据传输方式及装置,具有以下有益效果:由于对待发送数据进行了冗余编码,使得接收端在解码发送端发送的数据时,能够提高解码成功的概率,从而在一定程度上降低了发送端向接收端发送数据的丢包率,还可以在一定程度上降低由于解码失败导致的发送端反复向接收端发送数据的概率,同时在一定程度上避免了在网络上产生不必要的负荷,提高了数据发送的速率。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1