1.一种基于纠删编码的数据传输控制方法,其特征在于,步骤如下:步骤1:Chunk切分与编码:将待传输的文件或者流式数据输入,切分为多个chunk,并使用纠删编码将每个chunk编码为多个相等大小的数据段,放入发送缓存;
步骤2:数据段选择与发送:按照给定的发送速率从发送缓存中选择未传输的数据段进行传输;
设数据段的发送速率为R,R的取值等于当前路径的估计可用带宽Bw;发送数据段的时间间隔为v/R,其中v为数据段长度;每当发送一个数据段时,从发送缓存中选择编号值最小尚未传完的chunk进行检查,看是否需要选择数据段进行发送;
步骤3:数据段接收:将收到的数据段放置到接收缓存中;
步骤4:Chunk重组与解码:每当收到新数据段后,尝试对相应的chunk进行解码,如果解码成功,则将该chunk进行流式输出,或者重组还原为源数据文件;
步骤5:确认与反馈:对每个收到的数据段发送确认消息,并反馈为完成解码对应chunk还需传输的数据段数目;
步骤6:带宽估计与发送控制:根据接收端反馈消息的接收情况估计网络的可用带宽,以更新数据段的发送速率;根据接收端所反馈chunk所需的数据段数目,控制该chunk剩余数据的发送,避免数据的多余传输;同时将已经传输完毕的chunk所剩余的数据段从发送缓存中移除。
2.根据权利要求1所述的一种基于纠删编码的数据传输控制方法,其特征在于,所述chunk检查内容如下:
对于chunk i,i表示chunk序号;设当前发送端已经发送数据段的最大编号为Si,已经收到确认的最大数据段编号为Ai;则该chunk已经发送但还未被确认的数据段总量为Si‑Ai;传输路径成功传输的比例的估计值为γi,则这些数据中有γi(Si‑Ai)的数据段能够被接收端收到;
若chunk还需Oi个数据段即可完成解码,则在γi(Si‑Ai)
3.根据权利要求1所述的一种基于纠删编码的数据传输控制方法,其特征在于,所述发送速率R的控制方法为:
(1)发送速率R默认采用网络所支持的最大可用带宽Bw;
(2)发送端连续的发送M个数据段,然后暂停;当发送端收到N个确认消息后,立即进行可用带宽Bw的估算:设第一个到达和最后一个达到确认消息之间的持续时间为T1;这些确认消息所确认的最小发送序号为A1,最大序号为A2;则当前路径的可用带宽估计值为N*v/T1,丢包率估计值为1‑N/(A2‑A1+1);
(3)设网络路径非拥塞引发的丢包率阈值为loss,那么,如果1‑N/(A2‑A1+1)>loss,发送端将N*v/T1作为新的可用带宽Bw值;否则,表明带宽没被用满,可以增加发送速率,以N*v/T1*θ作为新的可用带宽Bw值,其中θ>1,代表发送速率的增大比例,是一个可配置的参数;
(4)如果最大接受时间T内没有收齐N个确认消息,则回到(2);
(5)当Bw完成首次估算后,发送端立即采用新的发送速率R进行数据段的发送;之后,每当收到一个确认消息时,发送端都基于最近收到的N个确认消息,进行同样的上述计算。
4.根据权利要求3所述的一种基于纠删编码的数据传输控制方法,其特征在于,所述发送速率R的控制中,数据段数量M和确认信息数量N的取值根据采用不同网络而不同,且M>N。
5.根据权利要求1所述的一种基于纠删编码的数据传输控制方法,其特征在于,所述纠删编码不限定具体编码方案。