一种文件传输方法及装置.pdf

上传人:111****11 文档编号:663160 上传时间:2018-03-02 格式:PDF 页数:31 大小:15.23MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310187224.3

申请日:

2013.05.20

公开号:

CN104168093A

公开日:

2014.11.26

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 1/18申请日:20130520|||公开

IPC分类号:

H04L1/18; H04L29/08

主分类号:

H04L1/18

申请人:

腾讯科技(深圳)有限公司

发明人:

廖志; 廖海珍; 张媛

地址:

518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

优先权:

专利代理机构:

上海波拓知识产权代理有限公司 31264

代理人:

韩绍君

PDF下载: PDF下载
内容摘要

本发明涉及一种文件传输方法,包括:提取步骤:从待传输至接收端的文件中提取一个分片;传输步骤:将该分片提交至待传输队列,并监控该分片是否传输成功;判断步骤:若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;重传步骤:若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。本发明还提供一种文件传输装置。利用本发明可以提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。

权利要求书

1.  一种文件传输方法,其特征在于,该方法包括以下步骤:
提取步骤:从待传输至接收端的文件中提取一个分片;
传输步骤:将该分片提交至待传输队列,并监控该分片是否传输成功;
判断步骤:若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;及
重传步骤:若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。

2.
  如权利要求1所述的文件传输方法,其特征在于,该预设时间随着该重传次数的增加而延长。

3.
  如权利要求1所述的文件传输方法,其特征在于,所述的判断步骤还包括:
若该分片的重传次数达到该次数阈值,则该文件传输失败。

4.
  如权利要求1所述的文件传输方法,其特征在于,还包括检查步骤:
若该分片传输成功,则检查该文件是否已传输完成;
若该文件未传输完成,则返回该提取步骤;及
若该文件已传输完成,则该文件传输成功。

5.
  如权利要求4所述的文件传输方法,其特征在于,所述检查该文件是否已传输完成的步骤包括:
接收该接收端返回的回复信息,该回复信息包括该接收端已接收该文件所有分片大小的总和;及
若该接收端已接收该文件所有分片大小的总和与该文件的大小相等,则判定该文件已传输完成。

6.
  如权利要求1所述的文件传输方法,其特征在于,所述的传输步骤中,将该分片提交至待传输队列的步骤包括:
对该分片和该文件分别进行加密;
将该分片及其加密值与该文件的加密值封装成一个数据包,然后将该数据包提交至该待传输队列。

7.
  如权利要求1所述的文件传输方法,其特征在于,所述提取步骤包括:
获取步骤:获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包括分片大小以及传输速率;
计算步骤:根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率;
第一判断步骤:判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态;
第一设定步骤:获取与该当前传输状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积;及
截取步骤:按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片进行传输。

8.
  如权利要求7所述的文件传输方法,其特征在于,所述获取步骤还包括:
对该传输速率进行平滑处理。

9.
  如权利要求7所述的文件传输方法,其特征在于,所述当前传输状态包括第一状态、第二状态和第三状态,其中第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数,第三状态对应的系数为1。

10.
  如权利要求9所述的文件传输方法,其特征在于,在所述获取步骤前还包括:
第二判断步骤:判断当前待传输的分片是否为该文件的首个分片,若是,则执行第二设定步骤,若否,则执行该获取步骤;及
所述第二设定步骤:设定当前待传输分片的大小为当前网络类型下分片大小的默认值,并将当前传输状态更新为该第一状态,然后执行该截取步骤。

11.
  如权利要求10所述的文件传输方法,其特征在于,在所述第一判断步骤前还包括确定步骤:
确定当前传输状态,若该当前传输状态为该第一状态或第二状态,则执行该第一判断步骤。

12.
  如权利要求11所述的文件传输方法,其特征在于,在所述第一判断步骤前还包括第三判断步骤:
若该当前传输状态为该第一状态或第二状态,则判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分别达到预设的第二阈值,若是,则执行该第一判断步骤,若否,则执行该第一设定步骤。

13.
  如权利要求11所述的文件传输方法,其特征在于,所述第一判断步骤包括:
若该速率变化指数小于该第一阈值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态;及
若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态。

14.
  如权利要求11所述的文件传输方法,其特征在于,该方法还包括第四判断步骤,若该当前传输状态为该第三状态,则执行该第四判断步骤,该第四判断步骤包括:
统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈值,若否,则执行该第一设定步骤,若是,则执行该第二设定步骤。

15.
  如权利要求14所述的文件传输方法,其特征在于,所述第一设定 步骤和第二设定步骤还包括:
判断该文件待发送部分的大小是否小于预设的第四阈值,若是,则设定当前待传输分片的大小为该文件待发送部分的大小。

16.
  如权利要求1所述的文件传输方法,其特征在于,所述传输步骤包括:
提交步骤:在一主进程内将待传输至接收端的文件的一个分片提交至一待传输队列中;
等待步骤:在该提交步骤后持续等待中断信号;
第一监控步骤:监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息;及
第二监控步骤:若接收到该中断等待请求或者该接收端返回的回复信息,则结束该等待步骤。

17.
  如权利要求16所述的文件传输方法,其特征在于,在结束所述等待步骤后还包括:
若该主进程在预定时间段内未产生上行数据流量,则返回该分片传输失败的传输结果。

18.
  如权利要求16所述的文件传输方法,其特征在于,在发出该中断等待请求后所述第一监控步骤结束。

19.
  如权利要求16所述的文件传输方法,其特征在于,在结束所述等待步骤后还包括:
根据该回复信息判断该接收端是否成功接收该分片,若否,则返回该分片传输失败的传输结果。

20.
  如权利要求16所述的文件传输方法,其特征在于,所述第二监控步骤还包括:
在接收到该接收端返回的回复信息后结束该第一监控步骤。

21.
  如权利要求16所述的文件传输方法,其特征在于,所述第一监控步骤在不同于该主进程的新监控进程中执行。

22.
  如权利要求16所述的文件传输方法,其特征在于,所述第一监控步骤还包括:
若该主进程在预定时间段内有上行数据流量产生,则提示用户该文件正在传输中。

23.
  如权利要求16所述的文件传输方法,其特征在于,在所述等待步骤后还包括第三监控步骤:
监控是否发生网络异常,若发生网络异常,则结束该等待步骤和该第一监控步骤,并返回该分片传输失败的传输结果。

24.
  一种文件传输装置,其特征在于,该装置包括:
提取模块,用于从待传输至接收端的文件中提取一个分片;
传输模块,用于将该分片提交至待传输队列,并监控该分片是否传输成功;
判断模块,用于若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;及
重传模块,用于若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。

25.
  如权利要求24所述的文件传输装置,其特征在于,该预设时间随着该重传次数的增加而延长。

26.
  如权利要求24所述的文件传输装置,其特征在于,所述的判断模块还用于若该分片的重传次数达到该次数阈值,则判定该文件传输失败。

27.
  如权利要求24所述的文件传输装置,其特征在于,还包括检查模块,用于:
若该分片传输成功,则检查该文件是否已传输完成;
若该文件未传输完成,则返回该提取步骤;及
若该文件已传输完成,则该文件传输成功。

28.
  如权利要求27所述的文件传输装置,其特征在于,所述检查该文件是否已传输完成包括:
接收该接收端返回的回复信息,该回复信息包括该接收端已接收该文件所有分片大小的总和;及
若该接收端已接收该文件所有分片大小的总和与该文件的大小相等,则判定该文件已传输完成。

29.
  如权利要求24所述的文件传输装置,其特征在于,所述的传输模块还用于:
对该分片和该文件分别进行加密;及
将该分片及其加密值与该文件的加密值封装成一个数据包,然后将该数据包提交至该待传输队列。

30.
  如权利要求24所述的文件传输装置,其特征在于,所述提取模块进一步包括:
获取模块,用于获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包括分片大小以及传输速率;
计算模块,用于根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率;
第一判断模块,用于判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态;
第一设定模块,用于获取与该当前传输状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积; 及
截取模块,用于按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片进行传输。

31.
  如权利要求30所述的文件传输装置,其特征在于,所述获取模块还用于对该传输速率进行平滑处理。

32.
  如权利要求30所述的文件传输装置,其特征在于,所述当前传输状态包括第一状态、第二状态和第三状态,其中第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数,第三状态对应的系数为1。

33.
  如权利要求32所述的文件传输装置,其特征在于,所述提取模块还包括:
第二判断模块,用于在执行所述获取模块之前,判断当前待传输的分片是否为该文件的首个分片,若是,则执行第二设定模块,若否,则执行该获取模块;及
所述第二设定模块,用于设定当前待传输分片的大小为当前网络类型下分片大小的默认值,并将当前传输状态更新为该第一状态,然后执行该截取模块。

34.
  如权利要求33所述的文件传输装置,其特征在于,所述提取模块还包括:
确定模块,用于确定当前传输状态,若该当前传输状态为该第一状态或第二状态,则执行该第一判断模块。

35.
  如权利要求34所述的文件传输装置,其特征在于,所述提取模块还包括:
第三判断模块,用于若该当前传输状态为该第一状态或第二状态,则判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分 别达到预设的第二阈值,若是,则执行该第一判断模块,若否,则执行该第一设定模块。

36.
  如权利要求34所述的文件传输装置,其特征在于,所述第一判断模块用于:
若该速率变化指数小于该第一阈值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态;及
若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态。

37.
  如权利要求34所述的文件传输装置,其特征在于,所述提取模块还包括第四判断模块,用于当该当前传输状态为该第三状态时执行,该第四判断模块用于:
统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈值,若否,则执行该第一设定模块,若是,则执行该第二设定模块。

38.
  如权利要求37所述的文件传输装置,其特征在于,所述第一设定模块和第二设定模块还用于:
判断该文件待发送部分的大小是否小于预设的第四阈值,若是,则设定当前待传输分片的大小为该文件待发送部分的大小。

39.
  如权利要求24所述的文件传输装置,其特征在于,所述传输模块进一步包括:
提交模块,用于在一主进程内将待传输至接收端的文件的一个分片提交至一待传输队列中;
等待模块,用于持续等待中断信号;
第一监控模块,用于监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进 程在预定时间段内未产生上行数据流量的信息;及
第二监控模块,用于若接收到该中断等待请求或者该接收端返回的回复信息,则触发该等待模块停止等待中断信号。

40.
  如权利要求39所述的文件传输装置,其特征在于,在触发该等待模块停止等待中断信号后还包括:
若该主进程在预定时间段内未产生上行数据流量,则返回该分片传输失败的传输结果。

41.
  如权利要求39所述的文件传输装置,其特征在于,在发出该中断等待请求后所述第一监控模块停止执行。

42.
  如权利要求39所述的文件传输装置,其特征在于,在触发该等待模块停止等待中断信号后还包括:
根据该回复信息判断该接收端是否成功接收该分片,若否,则返回该分片传输失败的传输结果。

43.
  如权利要求39所述的文件传输装置,其特征在于,所述第二监控模块还用于在接收到该接收端返回的回复信息后触发第一监控模块停止监控该主进程在预定时间段内是否有上行数据流量产生。

44.
  如权利要求39所述的文件传输装置,其特征在于,所述第一监控模块在不同于该主进程的新监控进程中执行。

45.
  如权利要求39所述的文件传输装置,其特征在于,所述第一监控模块还用于若该主进程在预定时间段内有上行数据流量产生,则提示用户该文件正在传输中。

46.
  如权利要求39所述的文件传输装置,其特征在于,还包括第三监控模块,用于监控是否发生网络异常,若发生网络异常,则触发该等待模块停止等待中断信号,触发第一监控模块停止监控该主进程在预定时间段内是否有上行数据流量产生,并返回该分片传输失败的传输结果。

说明书

一种文件传输方法及装置
技术领域
本发明涉及互联网技术领域,特别涉及一种文件传输方法及装置。
背景技术
目前在互联网上进行文件传输的方法通常是将该文件分成若干个大小相同的分片,然后将这若干个分片按照顺序依次传输至接收端。若其中的某一个分片由于一些原因(如服务器原因、网络故障或传输超时等)传输失败,则会选择立刻重传该分片。若该分片的重传次数达到预设阈值,则该文件的本次传输宣告失败,但可以重新尝试传输该文件,并且接着该文件前次传输时最后传输成功的分片之后做断点续传,直至完成整个文件的传输。
在有线互联网下,由于网络质量相对稳定,这种一旦传输失败后立刻重传分片的机制还是非常有效的,能够提升整个文件的传输成功率。然而,在网络质量变化很快的移动互联网下,从故障状态恢复需要花费比有线互联网更长的时间。因此,分片在立刻重传后再次失败的概率非常高,无法提升整个文件的传输成功率。
发明内容
有鉴于此,有必要提供一种文件传输方法及装置,可以提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。
一种文件传输方法,包括以下步骤:提取步骤:从待传输至接收端的文件中提取一个分片;传输步骤:将该分片提交至待传输队列,并监控该分片是否传输成功;判断步骤:若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;重传步骤:若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。
一种文件传输装置,包括:提取模块,用于从待传输至接收端的文件中提取一个分片;传输模块,用于将该分片提交至待传输队列,并监控该分片是否传输成功;判断模块,用于若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;重传模块,用于若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。
相对于现有技术,本发明在文件的单个分片传输失败后,将等待一段时间再重传该分片,可以提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为本发明第一实施例提供的文件传输方法执行时的环境示意图。
图2为本发明第一实施例提供的文件传输方法的流程图。
图3为本发明第二实施例提供的文件传输方法的流程图。
图4为图3中检查文件是否已传输完成的方法的流程图。
图5为本发明第三实施例提供的文件传输方法的流程图。
图6为本发明第四实施例提供的文件传输方法的流程图。
图7为本发明第五实施例提供的文件传输方法的流程图。
图8为本发明第六实施例提供的文件传输方法的流程图。
图9为本发明第七实施例提供的文件传输方法的流程图。
图10为本发明第八实施例提供的文件传输装置的框图。
图11为本发明第九实施例提供的文件传输装置的框图。
图12为本发明第十实施例提供的文件传输装置的框图。
图13为本发明第十一实施例提供的文件传输装置的框图。
图14为本发明第十二实施例提供的文件传输装置的框图。
图15为本发明第十三实施例提供的文件传输装置的框图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
第一实施例
本发明第一实施例提供一种文件传输方法,其可由一发送端执行,用于将文件发送至一个接收端中。上述的发送端与接收端例如是计算机、移动电子终端或者其他类似的运算装置。参阅图1所示,其为上述的文件传输方法执行时的环境示意图。发送端110通过网络10与接收端120相连。该网络10可为任意的网络连接方式,例如互联网(Internet)、移动互联网(如电信运营商提供的2G、3G网络)、局域网(有线或者无线)等。
以下结合具体的实施例对上述的文件传输方法详细描述如下:
图2为第一实施例提供的文件传输方法的流程图,该文件传输方法包括以下步骤:
步骤S101,从待传输至接收端120的文件中提取一个分片;
步骤S102,将该分片提交至待传输队列,并监控该分片是否传输成功;
步骤S103,若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;
步骤S104,若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行所述步骤S102,并更新该分片的重传次数。
按照上述的文件传输方法,在文件的单个分片传输失败后,将等待一段时间再重传该分片,相比于传统的一旦传输失败就立刻重传分片的方 式,该方法能够提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。
在一些实例中,上述方法的各步骤的实现细节如下:
步骤S101所述的文件可以是图片、文档、视频等。在本实施例中,可以按照固定的分片大小从该文件中提取分片。若为首次传输该文件,则以该文件的首字节为首个分片的起点提取该首个分片,当该首个分片成功传输到该接收端120后,再根据该固定的分片大小设置下个分片的起点,依此类推。若为失败后重新传输该文件,则依然以该文件的首字节为首个分片的起点提取该首个分片。当该首个分片成功传输到该接收端120后,接收该接收端120返回的已成功接收的该文件的字节数,再将接收端120返回的该字节数设为下个分片的起点,以实现接在已成功传输的分片后继续传输该文件,即“断点续传”。
步骤S102中,该发送端110和该接收端120可以是基于传输控制协议(Transmission Control Protocol,TCP)连接的。相应的,所述的待传输队列可以是TCP的输出缓冲区。位于该输出缓冲区内的分片会交由操作系统完成物理层的发送。具体的物理层发送过程由操作系统进行控制,在此不再赘述。
在本实施例中,还可以先对该分片和该文件进行加密处理,例如使用MD5(Message-Digest Algorithm5,消息摘要算法第五版)加密算法处理,然后将该分片及其加密值与该文件的加密值封装成一个数据包提交至该待传输队列,以确保该分片和文件在传输过程中的完整性。
监控该分片是否传输成功可以采用设定未收到回复信息的超时时间的方法。在所设定的超时时间内,若未收到该接收端120返回的回复信息,则判断该分片传输失败。若在所设定的超时时间内收到该接收端120返回的回复信息,则根据该回复信息判断该分片是否传输成功。
步骤S103所述的重传次数为该分片每次传输失败后被再次提交至该待传输队列进行传输的次数。当一个分片首次被传输时,将该分片的重传次数初始化为零,之后每当该分片传输失败后再次进行传输时,将累计该分片的重传次数。若该分片的重传次数达到该次数阈值,则判断该文件传输失败,可以结束传输或重新传输该文件。
步骤S104所述的预设时间将随着该分片的重传次数的增加而延长。延长该预设时间可以采用指数回退的方法,例如先设置一个基准时间Ti,假设该分片的重传次数为C,而该预设时间为T0,则该T0的计算公式可以是:T0=Ti*2^(C-1)。在该分片首次传输失败后等待该基准时间Ti后再重传,如果这次重传后再传输失败,则再等待比该基准时间Ti多一倍的时间后再重传该分片,依此类推。由于在网络质量较差的互联网下从故障状态恢复到正常状态需要花费较多的时间,经过预设时间的等待后再重传该分片,可以使该分片的传输成功率相较于传输失败后立刻重传该分片更高。
第二实施例
为了实现文件的完整传输,参阅图3所示,第二实施例提供一种文件传输方法,其相比于第一实施例的文件传输方法,在所述步骤S102后进一步包括:
步骤S105,若该分片传输成功,则检查该文件是否已传输完成,若该文件未传输完成,则返回步骤S101,若该文件已传输完成,则判定该文件传输成功。具体而言,参阅图4所示,所述检查该文件是否已传输完成的步骤包括:
步骤S105.1,接收该接收端120返回的回复信息,该回复信息包括该接收端120已接收该文件所有分片大小的总和。
步骤S105.2,判断该接收端120已接收该文件所有分片大小的总和与 该文件的大小是否相等,若是,则判定该文件已传输完成,若否,则判定该文件未传输完成。
经过上述流程,可以确定该文件是否传输完成,若该文件未传输完成,则继续从该文件中提取下一个分片进行传输,直至文件传输完成。
第三实施例
根据第一实施例提供的文件传输方法在互联网上传输文件,是按照固定的分片大小从该文件中提取分片依次进行传输。然而在不同质量和带宽的网络下,文件分片的大小只有达到某一个值时,传输速率才能达到该网络下的最大值。因此,采用固定大小的分片进行传输时,如果网络质量很好,而分片的大小相对较小时,就可能会限制传输速率。尤其是在网络带宽和质量经常变化的移动互联网中,若分片的大小不合适,就会使得网络不能发挥最大的传输能力,无法提升文件的传输速度。
为进一步解决上述问题,参阅图5所示,本发明第三实施例提供一种文件传输方法,其相比于第一实施例的文件传输方法,所述的步骤S101进一步包括:
步骤S201,获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包括分片大小以及传输速率;
步骤S202,根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率;
步骤S203,判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态;
步骤S204,获取与该当前传输状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积;
步骤S205,按照所设定的该当前待传输分片的大小从该文件中截取 当前待传输的分片进行传输。
按照上述的文件传输方法,根据文件中已完成传输的分片的传输参数动态地设定文件当前待传输分片的大小,可以使该当前待传输分片的大小能够适应网络质量和带宽的要求,从而提升网络在传输文件时的有效带宽和文件的传输速度。
在一些实例中,上述方法的各步骤的实现细节如下:
步骤S201所述的传输速率可以根据每个已经完成传输的分片的大小和传输时间计算得出。该传输时间是指相应分片从发送出去到接收到该接收端120回复的表示接收成功的信息之间的时间段。计算出该传输速率后,还可以对该传输速率使用预先设定的平滑因子进行平滑处理。
步骤S202所述的速率变化指数表征传输速率相对于该分片大小变化的速率,即在该至少一个已经完成传输的分片中,当分片大小变化时,分片的传输速率相应的变化情况。当分片大小以一定的增长速度增长时,该传输速率也有相应的提升,则说明此时分片大小的增长速度能满足该传输速率提升的要求。而当分片大小以该增长速度增长时,该传输速率没有相应的提升,则说明此时分片大小的增长速度已不能满足传输速率提升的要求,需要放慢分片大小的增长速度或保持分片大小不变。
步骤S203所述的第一阈值用于界定分片大小的增长速度是否能够满足传输速率提升的要求。所述的当前传输状态即表示该分片大小的增长速度。在本实施例中,该当前传输状态包括第一状态、第二状态和第三状态。每个状态对应一个用于表示分片大小的增长速度的系数。其中,该第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数,表示第一状态下分片大小的增长速度要高于第二状态下分片大小的增长速度。该第三状态对应的系数为1,表示第三状态下分片大小保持不变。
具体而言,步骤S203还包括确定当前传输状态,若该速率变化指数小于该第一阈值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态,即放慢该分片大小的增长速度。若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态,即进一步放慢该分片大小的增长速度。
步骤S204获取与更新后的该当前传输状态对应的系数,并设定当前待传输分片的大小为该最近完成传输的分片大小与该系数的乘积。若该当前传输状态为第一状态或第二状态,则在该最近完成传输的分片大小的基础上相应增大以设定待传输分片的大小。若该当前传输状态为第三状态,则设定待传输分片的大小与该最近完成传输的分片大小相同。
步骤S205按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片,再执行所述步骤S102以传输该分片。
第四实施例
参阅图6所示,本发明第四实施例提供一种文件传输方法,相比于第三实施例的文件传输方法,对该当前传输状态的更新条件作出了进一步限定,以使所设定的待传输分片的大小更加适应网络的传输能力,从而提升文件的传输速度。
相比于第三实施例的文件传输方法,本实施例的文件传输方法进一步包括:
步骤S200,在执行所述步骤S201前,判断当前待传输的分片是否为该文件的首个分片,若当前待传输的分片为该文件的首个分片,则执行步骤S206,若当前待传输的分片不为该文件的首个分片,则执行所述步骤S201。
步骤S206,设定当前待传输分片的大小为当前网络类型(例如电信运营商提供的2G/3G网络、WIFI网络等)下分片大小的默认值,并将该 当前传输状态更新为该第一状态,然后执行步骤S205。
步骤S207,在执行所述步骤S203之前,确定该当前传输状态是否为该第一状态或第二状态。若当前状态为第一状态或第二状态,则执行步骤S208。若当前状态为第三状态,则执行步骤S209。
步骤S208,判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分别达到预设的第二阈值(例如2次)。若该每种分片大小的使用次数达到该第二阈值,则执行所述步骤S203,若该每种分片大小的使用次数未达到该第二阈值,则执行所述步骤S204。
步骤S209,统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈值。若所统计的次数未达到该第三阈值,则执行所述步骤S204。若所统计的次数达到该第三阈值,则执行所述步骤S206。
值得注意的是,由于文件待发送部分的大小可能不足以按照所设定的当前待传输分片的大小从该文件中截取当前待传输的分片,或者在按照所设定的当前待传输分片的大小从该文件中截取当前待传输的分片后,文件待发送部分的大小较小,没必要再将文件待发送部分作为下一个分片进行传输,因此,所述步骤S204和步骤S206可以进一步包括:判断该文件待发送部分的大小是否小于预设的第四阈值。若该文件待发送部分的大小小于该第四阈值,则设定当前待传输分片的大小为该文件待发送部分的大小,然后再执行所述步骤S205。若该文件待发送部分的大小不小于该第四阈值,则直接执行该步骤S205。
按照本实施的文件传输方法,对该当前传输状态的更新条件作出了进一步限定,可以使所设定的待传输分片的大小更加适应网络的传输能力,从而提升文件的传输速度。
第五实施例
参阅图7所示,本发明第五实施例提供一种文件传输方法,其相比于第四实施例的文件传输方法,进一步对所述步骤S101提出一种具体的实现方案。先设所获取的该文件中至少一个已经完成传输的分片的传输参数包括:该文件的首个分片的大小S1,在该分片大小S1下的传输速率的平滑值V1,最近完成传输的分片大小Sn,在该分片大小Sn下的传输速率的平滑值Vs,与该分片大小Sn不同且在该分片大小Sn之前最近传输的分片大小S0,在该分片大小S0下的传输速率的平滑值V0。设该当前待传输分片的大小为Sn+1,则本实施例相比于第四实施例的文件传输方法,所述步骤S101进一步包括:
步骤S11,判断该Sn是否为0。若Sn不为0,则说明当前待传输的分片不为该文件的首个分片,进入步骤S12。若Sn为0,则说明当前待传输的分片为该文件的首个分片,进入步骤S25。
步骤S12,更新该Sn的使用次数N。
步骤S13,根据所获取的该S1、V1、Sn、Vs、S0和V0计算该速率变化指数S。计算该S的公式为:S=[(Vs-V0)/V1]/[(Sn-S0)/S1]。
步骤S14,确定当前传输状态。若当前传输状态为该第一状态,则进入步骤S15。若该当前传输状态为该第二状态,则进入步骤S18。若当前传输状态为该第三状态,则进入步骤S21。
步骤S15,判断是否该Sn的使用次数N等于预设的第二阈值Nmax,且所计算出的该速率变化指数S小于预设的第一阈值Smin。若是,则进入步骤S16,若否,则进入步骤S17。
步骤S16,更新当前传输状态为第二状态,设定Sn+1为第二状态对应的系数B与Sn的乘积,然后进入步骤S27。
步骤S17,设定Sn+1为第一状态对应的系数A与Sn的乘积,然后进 入步骤S27。
步骤S18,判断是否该Sn的使用次数N等于预设的第二阈值Nmax,且所计算出的该速率变化指数S小于预设的第一阈值Smin。若是,则进入步骤S19,若否,则进入步骤S20。
步骤S19,更新当前传输状态为第三状态,设定Sn+1与Sn相等,然后进入步骤S27。
步骤S20,设定Sn+1为第二状态对应的系数B与Sn的乘积,然后进入步骤S27。
步骤S21,判断Vs与第三状态下的基准速率Vstable之间的差值是否小于预设的第三阈值。若否,说明该最近完成传输的分片的传输速率超出该预设范围,则进入步骤S22。若是,说明该最近完成传输的分片的传输速率未超出该预设范围,则进入步骤S23。该第三阈值可以为该基准速率Vstable与某百分比常量D的乘积。
步骤S22,更新该最近完成传输的分片的传输速率超出该预设范围的次数M,即在该M的基础上加1。
步骤S23,将该最近完成传输的分片的传输速率超出该预设范围的次数M清零。
步骤S24,判断该最近完成传输的分片的传输速率超出该预设范围的次数M是否达到预设的第四阈值Mmax。若是,则进入步骤S25。若否,则进入步骤S26。
步骤S25,更新当前传输状态为第一状态,设定Sn+1与S1相等,然后进入步骤S27。
步骤S26,设定Sn+1与Sn相等。
步骤S27,判断该文件待发送部分的大小Fs是否小于预设的第四阈值F。若是,则进入步骤S28。若否,则进入步骤S29。
步骤S28,设定Sn+1与Fs相等。
步骤S29,返回所设定的Sn+1,按照所设定的Sn+1的分片大小从该文件中截取当前待传输的分片以进行传输。
第六实施例
根据第一实施例提供的文件传输方法在互联网上传输文件,是采用设定未收到回复信息的超时时间来监控分片是否传输成功的。该超时时间一般是根据分片大小和不同互联网的平均带宽或最近的历史带宽实测数据所估算出来的一个固定值或动态值。
然而,由于移动互联网特别是非WIFI网络的网络质量变化非常快且幅度很大,远没有有线网络那么稳定,在绝大多数时候,某一种移动互联网下的实际带宽都与统计得到的平均带宽有很大的差距。因此使用根据分片大小和互联网的平均带宽估算出来的超时时间,在文件分片的实际传输过程中将非常容易超时。而由于移动互联网的网络质量变化快而且经常是“非连续”、“跳变”的,根据历史测量得到的前一刻的带宽很难作为一个依据去估计后一刻的带宽。因此,使用设定该超时时间来监控分片是否传输成功,容易导致文件单个分片的传输失败率很高。此外,由于达到超时时间而宣告文件的分片传输失败后,数据还是会经网络传输完毕才会结束该分片的传输过程,造成这个分片的整个发送过程所产生的流量都因为传输失败的结果而浪费掉了。
为进一步解决上述问题,参阅图8所示,本发明第六实施例提供一种文件传输方法,其相比于第一实施例的文件传输方法,所述的步骤S102进一步包括:
步骤S301,在一主进程内将从该文件中提取的分片提交至该待传输队列中;
步骤S302,持续等待中断信号;
步骤S303,监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息;
步骤S304,若接收到该中断等待请求或者该接收端返回的回复信息,则结束该步骤S302。
按照本实施例的文件传输方法,采用监控主进程未产生上行数据流量的持续时间来判断分片是否传输成功,相比于传统的发送超时的处理方式,能够更好地适应不稳定的网络环境如移动互联网,提高分片传输的成功率,并减少在分片传输过程中由于超时问题导致的流量浪费。
在一些实例中,上述方法的各步骤的实现细节如下:
步骤S301中所述的主进程是指要传输该分片的进程。例如,某一文件传输应用所在的进程。该分片可以按照超文本传输协议(HyperText Transfer Protocol,HTTP)封装成网络数据包。
步骤S302所述的中断信号包括所述的中断等待请求或者接收端120返回的回复信息等等。此外,在步骤S302执行的过程中,还可以中断主进程的执行。
步骤S303可以在不同于该主进程的一个新的监控进程中执行。所述的预定时间段是可以允许的网络超时时间,其可以按照具体的需要进行设定,例如可以选5秒。所述的上行数据流量是主进程将该分片提交给该待传输队列后,该待传输队列将该分片交由操作系统通过网络传输出去而产生的。
若主进程在该预定时间段内未产生上行数据流量,则说明主进程在该预定时间段内没有任何一个字节被通过网络传输出去,意味着本次该分片传输失败,因此需要发出该中断等待请求以使主进程停止等待中断信号。在发出该中断等待请求后,该步骤S303结束。
若主进程在该预定时间段内有上行数据流量产生,则说明主进程在该预定时间段内有数据被通过网络传输出去,意味着该分片正在发送过程中。为了避免用户由于等待而产生的焦虑心情,若主进程在该预定时间段内有上行数据流量产生,步骤S303还可以通过动画、文字等方式提示用户该文件正在发送中。
步骤S304中,若是由于接收到该中断等待请求而结束步骤S302,则根据该中断等待请求中附加的该主进程在预定时间段内未产生上行数据流量的信息,返回该分片传输失败的传输结果。若是由于接收到接收端120返回的回复信息而结束步骤S302,则根据该回复信息判断该接收端120是否成功接收该分片。若该接收端120未成功接收该分片,也返回该分片传输失败的传输结果。若该接收端120已成功接收该分片,则返回该分片传输成功的传输结果。当接收到该接收端120返回的回复信息后,触发步骤S303结束。
此外,在步骤S302后,还可以有一个监控是否发生网络异常,例如网络连接断开、网络连接受限制等网络异常的步骤。若发生该网络异常,则结束步骤S302和步骤S303,并返回该分片传输失败的传输结果。
第七实施例
参阅图9所示,本发明第七实施例提供一种文件传输方法,其相比于第六实施例的文件传输方法,进一步对所述步骤S303提出一种实现方案:通过周期性地监控该主进程的上行数据流量来判断主进程在预定时间段内是否有上行数据流量产生。具体而言,该步骤S303包括:
步骤S1,启动所述的监控进程,记录该主进程已产生的上行数据流量为TBo。启动一个计数器,将该计数器的值T的初始值赋为零,该计数器用于对主进程未产生上行数据流量的持续时间进行计时。启动一个定时器(Timer),该定时器用于每经过一段预设时间t触发一次步骤S2。
步骤S2,每当被该定时器触发时,记录主进程已产生的上行数据流量TBn,并获取上一次被该定时器触发时所记录的主进程已产生的上行数据流量TBo。若本次为第一次被该定时器触发,则获取该监控进程启动时所记录的主进程已产生的上行数据流量TBo。
步骤S3,判断在本次被定时器触发前的预设时间t内主进程产生的上行数据流量TB是否为零,该TB可以通过求解所述TBn与TBo之差值而得出。若该TB不为零,则执行步骤S4,若该TB为零,则执行步骤S5。
步骤S4,将计数器的值T清零,并提示用户该文件正在发送中。该TB不为零说明在本次被定时器触发前的预设时间t内主进程有上行数据流量产生,该文件正在发送中,因此需要将该计数器的值T清零,以便对该主进程未产生上行数据流量的持续时间重新进行计时。
步骤S5,将计数器的值T更新为T+t,并判断计数器更新后的值T是否小于预设上限阈值Tmax。该预设上限阈值Tmax为所述预设时间t的整数倍。若T小于该Tmax,则返回步骤S2。若T不小于该Tmax,则执行步骤S6。
步骤S6,发出该中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息。该预定时间段即为从当前时间点起,刚刚过去的该预设上限阈值(例如5秒)的时间段。
综上所述,在第六实施例的文件传输方法的基础上,本实施例提供的文件传输方法可以进一步通过周期性地监控该主进程的上行数据流量来判断主进程在预定时间段内是否有上行数据流量产生。
第八实施例
参阅图10所示,本发明第八实施例提供一种文件传输装置100,包括提取模块101、传输模块102、判断模块103和重传模块104。可以理解,上述的各模块是指计算机程序或者程序段,用于执行某一项或多项特 定的功能。此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。
提取模块101,用于从待传输至接收端的文件中提取一个分片。
传输模块102,用于将该分片提交至待传输队列,并监控该分片是否传输成功。在本实施例中,还可以先对该分片和该文件进行加密处理,然后将该分片及其加密值与该文件的加密值封装成一个数据包提交至该待传输队列,以确保该分片和文件在传输过程中的完整性。
判断模块103,用于若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值。若该分片的重传次数达到该次数阈值,则判断该文件传输失败,可以结束传输或重新传输该文件。
重传模块104,用于若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输模块102,并更新该分片的重传次数。所述的预设时间将随着该分片的重传次数的增加而延长。
对于以上各模块的具体工作过程,可进一步参考本发明第一实施例提供的文件传输方法,在此不再重复。
综上所述,本实施例的文件传输装置100,在文件的单个分片传输失败后,将等待一段时间再重传该分片,相比于传统的一旦传输失败就立刻重传分片的方式,该方法能够提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。
第九实施例
参阅图11所示,本发明第九实施例提供一种文件传输装置200,其相比于第八实施例的文件传输装置100,还包括:
检查模块105,用于若该分片传输成功,则检查该文件是否已传输完成。若该文件未传输完成,执行所述提取模块101。若该文件已传输完成,则判定该文件传输成功。
具体而言,该检查模块105先接收该接收端120返回的回复信息,该回复信息包括该接收端120已接收该文件所有分片大小的总和。然后,检查模块105判断该接收端120已接收该文件所有分片大小的总和与该文件的大小是否相等,若是,则判定该文件已传输完成,若否,则判定该文件未传输完成。
对于以上模块的具体工作过程,可进一步参考本发明第二实施例提供的文件传输方法,在此不再重复。
综上所述,本实施例的文件传输装置200,可以确定该文件是否传输完成,若该文件未传输完成,则继续从该文件中提取下一个分片进行传输,直至文件传输完成。
第十实施例
参阅图12所示,本发明第十实施例提供一种文件传输装置300,其相比于第八实施例的文件传输装置100,所述的提取模块101进一步包括:
获取模块301,用于获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包括分片大小以及传输速率。所述的传输速率可以根据每个已经完成传输的分片的大小和传输时间计算得出。计算出该传输速率后,还可以对该传输速率使用预先设定的平滑因子进行平滑处理。
计算模块302,用于根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率。
第一判断模块303,用于判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态。在本实施例中,该当前传输状态包括第一状态、第二状态和第三状态。每个状态对应一个用于表示分片大小的增长速度的系数。其中,该第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数。该第三状 态对应的系数为1。具体而言,若该速率变化指数小于该第一阈值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态。若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态。
第一设定模块304,用于获取与该当前传输状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积。
截取模块305,用于按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片,再执行该传输模块102以传输该分片。
对于以上各模块的具体工作过程,可进一步参考本发明第三实施例提供的文件传输方法,在此不再重复。
综上所述,本实施例的文件传输装置300,根据文件中已完成传输的分片的传输参数动态地设定文件当前待传输分片的大小,可以使该当前待传输分片的大小能够适应网络质量和带宽的要求,从而提升网络在传输文件时的有效带宽和文件的传输速度。
第十一实施例
参阅图13所示,本发明第十一实施例提供一种文件传输装置400,其相比于第十实施例的文件传输装置300,所述的提取模块101进一步包括第二判断模块306、第二设定模块307、确定模块308、第三判断模块309和第四判断模块310。
第二判断模块306,用于在执行所述获取模块301之前,判断当前待传输的分片是否为该文件的首个分片。若当前待传输的分片为该文件的首个分片,则执行第二设定模块307。若当前待传输的分片不为该文件的首个分片,则执行获取模块301。
第二设定模块307,用于设定当前待传输分片的大小为当前网络类型 下分片大小的默认值,并将该当前传输状态更新为该第一状态,然后执行截取模块305。
确定模块308,用于在执行第一判断模块303之前,确定当前传输状态是否为第一状态或第二状态。若该当前传输状态为该第一状态或第二状态,则执行第三判断模块309。若当前传输状态为第三状态,则执行第四判断模块310。
第三判断模块309,用于判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分别达到预设的第二阈值。若该每种分片大小的使用次数达到该第二阈值,则执行第一判断模块303。若该每种分片大小的使用次数未达到该第二阈值,则执行第一设定模块304。
第四判断模块310,用于统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈值。若所统计的次数未达到该第三阈值,则执行第一设定模块304。若所统计的次数达到该第三阈值,则执行第二设定模块307。
此外,所述的第一设定模块304和第二设定模块307还用于进一步判断该文件待发送部分的大小是否小于预设的第四阈值,若是,则设定当前待传输分片的大小为该文件待发送部分的大小,然后再执行所述截取模块305。若否,则直接执行该截取模块305。
对于以上各模块的具体工作过程,可进一步参考本发明第四实施例提供的文件传输方法,在此不再重复。
综上所述,本实施的文件传输装置400对该当前传输状态的更新条件作出了进一步限定,可以使所设定的待传输分片的大小更加适应网络的传输能力,从而提升文件的传输速度。
第十二实施例
参阅图14所示,本发明第十二实施例提供一种文件传输装置500, 其相比于第八实施例的文件传输装置100,所述的传输模块102进一步包括:
提交模块501,用于在一主进程内将从该文件中提取的分片提交至该待传输队列中。
等待模块502,用于持续等待中断信号。
第一监控模块503,用于监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息。
在发出该中断等待请求后,该第一监控模块503将停止监控该主进程在预定时间段内是否有上行数据流量产生。若监控到主进程在预定时间段内有上行数据流量产生,则第一监控模块503还可以通过动画、文字等方式提示用户该文件正在发送中。在本实施例中,该第一监控模块503可以在不同于该主进程的一个新的监控进程中执行。
第二监控模块504,用于若接收到该中断等待请求或者该接收端返回的回复信息,则触发该等待模块502停止等待该中断信号。
若是由于接收到该中断等待请求而触发该等待模块502停止等待中断信号,则根据该中断等待请求中附加的该主进程在预定时间段内未产生上行数据流量的信息,返回该分片传输失败的传输结果。
若是由于接收到接收端120返回的回复信息而触发该等待模块102停止等待中断信号,则根据该回复信息判断该接收端120是否成功接收该分片。若该接收端120未成功接收该分片,也返回该分片传输失败的传输结果。若该接收端120已成功接收该分片,则返回该分片传输成功的传输结果。此外,当接收到该接收端120返回的回复信息后,该第二监控模块504还将触发该第一监控模块503停止监控该主进程在预定时间段内是否有上行数据流量产生。
此外,该文件传输装置500还可以包括一个第三监控模块505,用于在等待模块502持续等待中断信号的过程中,监控是否发生网络异常。若监控到发生网络异常,则触发该等待模块502停止等待中断信号,以及触发该第一监控模块503结束监控该主进程在预定时间段内是否有上行数据流量产生,并返回该分片传输失败的传输结果。
对于以上各模块的具体工作过程,可进一步参考本发明第六实施例提供的文件传输方法,在此不再重复。
综上所述,本实施例的文件传输装置500,采用监控主进程未产生上行数据流量的持续时间来判断分片是否传输成功,相比于传统的发送超时的处理方式,能够更好地适应不稳定的网络环境如移动互联网,提高分片传输的成功率,并减少在分片传输过程中由于超时问题导致的流量浪费。
第十三实施例
参阅图15所示,本发明第十三实施例提供一种文件传输装置600,其相比于第十二实施例的文件传输装置500,所述的第一监控模块503包括:
启动子模块5031,用于启动所述的监控进程,记录该主进程已产生的上行数据流量为TBo,启动一个计数器,将该计数器的值T的初始值赋为零,启动一个定时器(Timer),该定时器用于每经过一段预设时间t触发一次获取子模块5032。
获取子模块5032,用于每当被该定时器触发时,记录主进程已产生的上行数据流量TBn,并获取上一次被该定时器触发时所记录的主进程已产生的上行数据流量TBo。若本次为第一次被该定时器触发,则获取该监控进程启动时所记录的主进程已产生的上行数据流量TBo。
判断子模块5033,用于判断在本次被定时器触发前的预设时间t内主 进程产生的上行数据流量TB是否为零,该TB可以通过求解所述TBn与TBo之差值而得出。
提示子模块5034,用于若该TB不为零,则将计数器的值T清零,并提示用户该文件正在发送中。
更新子模块5035,用于若该TB为零,则将计数器的值T更新为T+t,并判断计数器更新后的值T是否小于预设上限阈值Tmax。若T小于该Tmax,则重新执行该获取子模块5032。
发送子模块5036,用于若T不小于该Tmax,则发出该中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息。
对于以上各模块的具体工作过程,可进一步参考本发明第七实施例提供的文件传输方法,在此不再重复。
综上所述,相较于第十二实施例的文件传输装置500,本实施例提供的文件传输装置600可以进一步通过周期性地监控该主进程的上行数据流量来判断主进程在预定时间段内是否有上行数据流量产生。
此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的运算装置完成上述的文件传输方法中的各种操作。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

一种文件传输方法及装置.pdf_第1页
第1页 / 共31页
一种文件传输方法及装置.pdf_第2页
第2页 / 共31页
一种文件传输方法及装置.pdf_第3页
第3页 / 共31页
点击查看更多>>
资源描述

《一种文件传输方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种文件传输方法及装置.pdf(31页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104168093A43申请公布日20141126CN104168093A21申请号201310187224322申请日20130520H04L1/18200601H04L29/0820060171申请人腾讯科技(深圳)有限公司地址518044广东省深圳市福田区振兴路赛格科技园2栋东403室72发明人廖志廖海珍张媛74专利代理机构上海波拓知识产权代理有限公司31264代理人韩绍君54发明名称一种文件传输方法及装置57摘要本发明涉及一种文件传输方法,包括提取步骤从待传输至接收端的文件中提取一个分片;传输步骤将该分片提交至待传输队列,并监控该分片是否传输成功;判断步骤若该分片未传。

2、输成功,则判断该分片的重传次数是否达到预设的次数阈值;重传步骤若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。本发明还提供一种文件传输装置。利用本发明可以提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。51INTCL权利要求书5页说明书13页附图12页19中华人民共和国国家知识产权局12发明专利申请权利要求书5页说明书13页附图12页10申请公布号CN104168093ACN104168093A1/5页21一种文件传输方法,其特征在于,该方法包括以下步骤提取步骤从待传输至接收端的文件中提取一个分片;传输步骤将该分片提交至待传输队。

3、列,并监控该分片是否传输成功;判断步骤若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;及重传步骤若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。2如权利要求1所述的文件传输方法,其特征在于,该预设时间随着该重传次数的增加而延长。3如权利要求1所述的文件传输方法,其特征在于,所述的判断步骤还包括若该分片的重传次数达到该次数阈值,则该文件传输失败。4如权利要求1所述的文件传输方法,其特征在于,还包括检查步骤若该分片传输成功,则检查该文件是否已传输完成;若该文件未传输完成,则返回该提取步骤;及若该文件已传输完成,则该文件传输成功。

4、。5如权利要求4所述的文件传输方法,其特征在于,所述检查该文件是否已传输完成的步骤包括接收该接收端返回的回复信息,该回复信息包括该接收端已接收该文件所有分片大小的总和;及若该接收端已接收该文件所有分片大小的总和与该文件的大小相等,则判定该文件已传输完成。6如权利要求1所述的文件传输方法,其特征在于,所述的传输步骤中,将该分片提交至待传输队列的步骤包括对该分片和该文件分别进行加密;将该分片及其加密值与该文件的加密值封装成一个数据包,然后将该数据包提交至该待传输队列。7如权利要求1所述的文件传输方法,其特征在于,所述提取步骤包括获取步骤获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包。

5、括分片大小以及传输速率;计算步骤根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率;第一判断步骤判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态;第一设定步骤获取与该当前传输状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积;及截取步骤按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片进行传输。8如权利要求7所述的文件传输方法,其特征在于,所述获取步骤还包括对该传输速率进行平滑处理。权利要求书CN104168093A2/5页39如权利要求7所述的文。

6、件传输方法,其特征在于,所述当前传输状态包括第一状态、第二状态和第三状态,其中第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数,第三状态对应的系数为1。10如权利要求9所述的文件传输方法,其特征在于,在所述获取步骤前还包括第二判断步骤判断当前待传输的分片是否为该文件的首个分片,若是,则执行第二设定步骤,若否,则执行该获取步骤;及所述第二设定步骤设定当前待传输分片的大小为当前网络类型下分片大小的默认值,并将当前传输状态更新为该第一状态,然后执行该截取步骤。11如权利要求10所述的文件传输方法,其特征在于,在所述第一判断步骤前还包括确定步骤确定当前传输状态,若该当前。

7、传输状态为该第一状态或第二状态,则执行该第一判断步骤。12如权利要求11所述的文件传输方法,其特征在于,在所述第一判断步骤前还包括第三判断步骤若该当前传输状态为该第一状态或第二状态,则判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分别达到预设的第二阈值,若是,则执行该第一判断步骤,若否,则执行该第一设定步骤。13如权利要求11所述的文件传输方法,其特征在于,所述第一判断步骤包括若该速率变化指数小于该第一阈值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态;及若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态。14如权利要求11。

8、所述的文件传输方法,其特征在于,该方法还包括第四判断步骤,若该当前传输状态为该第三状态,则执行该第四判断步骤,该第四判断步骤包括统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈值,若否,则执行该第一设定步骤,若是,则执行该第二设定步骤。15如权利要求14所述的文件传输方法,其特征在于,所述第一设定步骤和第二设定步骤还包括判断该文件待发送部分的大小是否小于预设的第四阈值,若是,则设定当前待传输分片的大小为该文件待发送部分的大小。16如权利要求1所述的文件传输方法,其特征在于,所述传输步骤包括提交步骤在一主进程内将待传输至接收端的文件的一个分。

9、片提交至一待传输队列中;等待步骤在该提交步骤后持续等待中断信号;第一监控步骤监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息;及第二监控步骤若接收到该中断等待请求或者该接收端返回的回复信息,则结束该等权利要求书CN104168093A3/5页4待步骤。17如权利要求16所述的文件传输方法,其特征在于,在结束所述等待步骤后还包括若该主进程在预定时间段内未产生上行数据流量,则返回该分片传输失败的传输结果。18如权利要求16所述的文件传输方法,其特征在于,在发出该中断等待请求后所述第一监控步骤结束。19。

10、如权利要求16所述的文件传输方法,其特征在于,在结束所述等待步骤后还包括根据该回复信息判断该接收端是否成功接收该分片,若否,则返回该分片传输失败的传输结果。20如权利要求16所述的文件传输方法,其特征在于,所述第二监控步骤还包括在接收到该接收端返回的回复信息后结束该第一监控步骤。21如权利要求16所述的文件传输方法,其特征在于,所述第一监控步骤在不同于该主进程的新监控进程中执行。22如权利要求16所述的文件传输方法,其特征在于,所述第一监控步骤还包括若该主进程在预定时间段内有上行数据流量产生,则提示用户该文件正在传输中。23如权利要求16所述的文件传输方法,其特征在于,在所述等待步骤后还包括第。

11、三监控步骤监控是否发生网络异常,若发生网络异常,则结束该等待步骤和该第一监控步骤,并返回该分片传输失败的传输结果。24一种文件传输装置,其特征在于,该装置包括提取模块,用于从待传输至接收端的文件中提取一个分片;传输模块,用于将该分片提交至待传输队列,并监控该分片是否传输成功;判断模块,用于若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;及重传模块,用于若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。25如权利要求24所述的文件传输装置,其特征在于,该预设时间随着该重传次数的增加而延长。26如权利要求24所述的文件传输装置,。

12、其特征在于,所述的判断模块还用于若该分片的重传次数达到该次数阈值,则判定该文件传输失败。27如权利要求24所述的文件传输装置,其特征在于,还包括检查模块,用于若该分片传输成功,则检查该文件是否已传输完成;若该文件未传输完成,则返回该提取步骤;及若该文件已传输完成,则该文件传输成功。28如权利要求27所述的文件传输装置,其特征在于,所述检查该文件是否已传输完成包括接收该接收端返回的回复信息,该回复信息包括该接收端已接收该文件所有分片大小的总和;及若该接收端已接收该文件所有分片大小的总和与该文件的大小相等,则判定该文件已权利要求书CN104168093A4/5页5传输完成。29如权利要求24所述的。

13、文件传输装置,其特征在于,所述的传输模块还用于对该分片和该文件分别进行加密;及将该分片及其加密值与该文件的加密值封装成一个数据包,然后将该数据包提交至该待传输队列。30如权利要求24所述的文件传输装置,其特征在于,所述提取模块进一步包括获取模块,用于获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包括分片大小以及传输速率;计算模块,用于根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率;第一判断模块,用于判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态;第一设定模块,用于获取与该当前传输。

14、状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积;及截取模块,用于按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片进行传输。31如权利要求30所述的文件传输装置,其特征在于,所述获取模块还用于对该传输速率进行平滑处理。32如权利要求30所述的文件传输装置,其特征在于,所述当前传输状态包括第一状态、第二状态和第三状态,其中第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数,第三状态对应的系数为1。33如权利要求32所述的文件传输装置,其特征在于,所述提取模块还包括第二判断模块,用于在执行所述获取模块之前,判断当。

15、前待传输的分片是否为该文件的首个分片,若是,则执行第二设定模块,若否,则执行该获取模块;及所述第二设定模块,用于设定当前待传输分片的大小为当前网络类型下分片大小的默认值,并将当前传输状态更新为该第一状态,然后执行该截取模块。34如权利要求33所述的文件传输装置,其特征在于,所述提取模块还包括确定模块,用于确定当前传输状态,若该当前传输状态为该第一状态或第二状态,则执行该第一判断模块。35如权利要求34所述的文件传输装置,其特征在于,所述提取模块还包括第三判断模块,用于若该当前传输状态为该第一状态或第二状态,则判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分别达到预设的第二阈值,。

16、若是,则执行该第一判断模块,若否,则执行该第一设定模块。36如权利要求34所述的文件传输装置,其特征在于,所述第一判断模块用于若该速率变化指数小于该第一阈值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态;及若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态。37如权利要求34所述的文件传输装置,其特征在于,所述提取模块还包括第四判断权利要求书CN104168093A5/5页6模块,用于当该当前传输状态为该第三状态时执行,该第四判断模块用于统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈。

17、值,若否,则执行该第一设定模块,若是,则执行该第二设定模块。38如权利要求37所述的文件传输装置,其特征在于,所述第一设定模块和第二设定模块还用于判断该文件待发送部分的大小是否小于预设的第四阈值,若是,则设定当前待传输分片的大小为该文件待发送部分的大小。39如权利要求24所述的文件传输装置,其特征在于,所述传输模块进一步包括提交模块,用于在一主进程内将待传输至接收端的文件的一个分片提交至一待传输队列中;等待模块,用于持续等待中断信号;第一监控模块,用于监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信。

18、息;及第二监控模块,用于若接收到该中断等待请求或者该接收端返回的回复信息,则触发该等待模块停止等待中断信号。40如权利要求39所述的文件传输装置,其特征在于,在触发该等待模块停止等待中断信号后还包括若该主进程在预定时间段内未产生上行数据流量,则返回该分片传输失败的传输结果。41如权利要求39所述的文件传输装置,其特征在于,在发出该中断等待请求后所述第一监控模块停止执行。42如权利要求39所述的文件传输装置,其特征在于,在触发该等待模块停止等待中断信号后还包括根据该回复信息判断该接收端是否成功接收该分片,若否,则返回该分片传输失败的传输结果。43如权利要求39所述的文件传输装置,其特征在于,所述。

19、第二监控模块还用于在接收到该接收端返回的回复信息后触发第一监控模块停止监控该主进程在预定时间段内是否有上行数据流量产生。44如权利要求39所述的文件传输装置,其特征在于,所述第一监控模块在不同于该主进程的新监控进程中执行。45如权利要求39所述的文件传输装置,其特征在于,所述第一监控模块还用于若该主进程在预定时间段内有上行数据流量产生,则提示用户该文件正在传输中。46如权利要求39所述的文件传输装置,其特征在于,还包括第三监控模块,用于监控是否发生网络异常,若发生网络异常,则触发该等待模块停止等待中断信号,触发第一监控模块停止监控该主进程在预定时间段内是否有上行数据流量产生,并返回该分片传输失。

20、败的传输结果。权利要求书CN104168093A1/13页7一种文件传输方法及装置技术领域0001本发明涉及互联网技术领域,特别涉及一种文件传输方法及装置。背景技术0002目前在互联网上进行文件传输的方法通常是将该文件分成若干个大小相同的分片,然后将这若干个分片按照顺序依次传输至接收端。若其中的某一个分片由于一些原因(如服务器原因、网络故障或传输超时等)传输失败,则会选择立刻重传该分片。若该分片的重传次数达到预设阈值,则该文件的本次传输宣告失败,但可以重新尝试传输该文件,并且接着该文件前次传输时最后传输成功的分片之后做断点续传,直至完成整个文件的传输。0003在有线互联网下,由于网络质量相对稳。

21、定,这种一旦传输失败后立刻重传分片的机制还是非常有效的,能够提升整个文件的传输成功率。然而,在网络质量变化很快的移动互联网下,从故障状态恢复需要花费比有线互联网更长的时间。因此,分片在立刻重传后再次失败的概率非常高,无法提升整个文件的传输成功率。发明内容0004有鉴于此,有必要提供一种文件传输方法及装置,可以提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。0005一种文件传输方法,包括以下步骤提取步骤从待传输至接收端的文件中提取一个分片;传输步骤将该分片提交至待传输队列,并监控该分片是否传输成功;判断步骤若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;重传步骤若该。

22、分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。0006一种文件传输装置,包括提取模块,用于从待传输至接收端的文件中提取一个分片;传输模块,用于将该分片提交至待传输队列,并监控该分片是否传输成功;判断模块,用于若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;重传模块,用于若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行该传输步骤,并更新该分片的重传次数。0007相对于现有技术,本发明在文件的单个分片传输失败后,将等待一段时间再重传该分片,可以提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。0008。

23、为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明0009图1为本发明第一实施例提供的文件传输方法执行时的环境示意图。0010图2为本发明第一实施例提供的文件传输方法的流程图。0011图3为本发明第二实施例提供的文件传输方法的流程图。说明书CN104168093A2/13页80012图4为图3中检查文件是否已传输完成的方法的流程图。0013图5为本发明第三实施例提供的文件传输方法的流程图。0014图6为本发明第四实施例提供的文件传输方法的流程图。0015图7为本发明第五实施例提供的文件传输方法的流程图。0016图8为本发明第六实施例。

24、提供的文件传输方法的流程图。0017图9为本发明第七实施例提供的文件传输方法的流程图。0018图10为本发明第八实施例提供的文件传输装置的框图。0019图11为本发明第九实施例提供的文件传输装置的框图。0020图12为本发明第十实施例提供的文件传输装置的框图。0021图13为本发明第十一实施例提供的文件传输装置的框图。0022图14为本发明第十二实施例提供的文件传输装置的框图。0023图15为本发明第十三实施例提供的文件传输装置的框图。具体实施方式0024为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细。

25、说明如后。0025第一实施例0026本发明第一实施例提供一种文件传输方法,其可由一发送端执行,用于将文件发送至一个接收端中。上述的发送端与接收端例如是计算机、移动电子终端或者其他类似的运算装置。参阅图1所示,其为上述的文件传输方法执行时的环境示意图。发送端110通过网络10与接收端120相连。该网络10可为任意的网络连接方式,例如互联网(INTERNET)、移动互联网(如电信运营商提供的2G、3G网络)、局域网(有线或者无线)等。0027以下结合具体的实施例对上述的文件传输方法详细描述如下0028图2为第一实施例提供的文件传输方法的流程图,该文件传输方法包括以下步骤0029步骤S101,从待传。

26、输至接收端120的文件中提取一个分片;0030步骤S102,将该分片提交至待传输队列,并监控该分片是否传输成功;0031步骤S103,若该分片未传输成功,则判断该分片的重传次数是否达到预设的次数阈值;0032步骤S104,若该分片的重传次数未达到该次数阈值,则在等待一段预设时间后重新执行所述步骤S102,并更新该分片的重传次数。0033按照上述的文件传输方法,在文件的单个分片传输失败后,将等待一段时间再重传该分片,相比于传统的一旦传输失败就立刻重传分片的方式,该方法能够提高文件的单个分片的传输成功率,进而提升该文件的传输成功率。0034在一些实例中,上述方法的各步骤的实现细节如下0035步骤S。

27、101所述的文件可以是图片、文档、视频等。在本实施例中,可以按照固定的分片大小从该文件中提取分片。若为首次传输该文件,则以该文件的首字节为首个分片的起点提取该首个分片,当该首个分片成功传输到该接收端120后,再根据该固定的分片大小设置下个分片的起点,依此类推。若为失败后重新传输该文件,则依然以该文件的首字节说明书CN104168093A3/13页9为首个分片的起点提取该首个分片。当该首个分片成功传输到该接收端120后,接收该接收端120返回的已成功接收的该文件的字节数,再将接收端120返回的该字节数设为下个分片的起点,以实现接在已成功传输的分片后继续传输该文件,即“断点续传”。0036步骤S1。

28、02中,该发送端110和该接收端120可以是基于传输控制协议(TRANSMISSIONCONTROLPROTOCOL,TCP)连接的。相应的,所述的待传输队列可以是TCP的输出缓冲区。位于该输出缓冲区内的分片会交由操作系统完成物理层的发送。具体的物理层发送过程由操作系统进行控制,在此不再赘述。0037在本实施例中,还可以先对该分片和该文件进行加密处理,例如使用MD5(MESSAGEDIGESTALGORITHM5,消息摘要算法第五版)加密算法处理,然后将该分片及其加密值与该文件的加密值封装成一个数据包提交至该待传输队列,以确保该分片和文件在传输过程中的完整性。0038监控该分片是否传输成功可以。

29、采用设定未收到回复信息的超时时间的方法。在所设定的超时时间内,若未收到该接收端120返回的回复信息,则判断该分片传输失败。若在所设定的超时时间内收到该接收端120返回的回复信息,则根据该回复信息判断该分片是否传输成功。0039步骤S103所述的重传次数为该分片每次传输失败后被再次提交至该待传输队列进行传输的次数。当一个分片首次被传输时,将该分片的重传次数初始化为零,之后每当该分片传输失败后再次进行传输时,将累计该分片的重传次数。若该分片的重传次数达到该次数阈值,则判断该文件传输失败,可以结束传输或重新传输该文件。0040步骤S104所述的预设时间将随着该分片的重传次数的增加而延长。延长该预设时。

30、间可以采用指数回退的方法,例如先设置一个基准时间TI,假设该分片的重传次数为C,而该预设时间为T0,则该T0的计算公式可以是T0TI2C1。在该分片首次传输失败后等待该基准时间TI后再重传,如果这次重传后再传输失败,则再等待比该基准时间TI多一倍的时间后再重传该分片,依此类推。由于在网络质量较差的互联网下从故障状态恢复到正常状态需要花费较多的时间,经过预设时间的等待后再重传该分片,可以使该分片的传输成功率相较于传输失败后立刻重传该分片更高。0041第二实施例0042为了实现文件的完整传输,参阅图3所示,第二实施例提供一种文件传输方法,其相比于第一实施例的文件传输方法,在所述步骤S102后进一步。

31、包括0043步骤S105,若该分片传输成功,则检查该文件是否已传输完成,若该文件未传输完成,则返回步骤S101,若该文件已传输完成,则判定该文件传输成功。具体而言,参阅图4所示,所述检查该文件是否已传输完成的步骤包括0044步骤S1051,接收该接收端120返回的回复信息,该回复信息包括该接收端120已接收该文件所有分片大小的总和。0045步骤S1052,判断该接收端120已接收该文件所有分片大小的总和与该文件的大小是否相等,若是,则判定该文件已传输完成,若否,则判定该文件未传输完成。0046经过上述流程,可以确定该文件是否传输完成,若该文件未传输完成,则继续从该文件中提取下一个分片进行传输,。

32、直至文件传输完成。0047第三实施例说明书CN104168093A4/13页100048根据第一实施例提供的文件传输方法在互联网上传输文件,是按照固定的分片大小从该文件中提取分片依次进行传输。然而在不同质量和带宽的网络下,文件分片的大小只有达到某一个值时,传输速率才能达到该网络下的最大值。因此,采用固定大小的分片进行传输时,如果网络质量很好,而分片的大小相对较小时,就可能会限制传输速率。尤其是在网络带宽和质量经常变化的移动互联网中,若分片的大小不合适,就会使得网络不能发挥最大的传输能力,无法提升文件的传输速度。0049为进一步解决上述问题,参阅图5所示,本发明第三实施例提供一种文件传输方法,其。

33、相比于第一实施例的文件传输方法,所述的步骤S101进一步包括0050步骤S201,获取该文件中至少一个已经完成传输的分片的传输参数,该传输参数包括分片大小以及传输速率;0051步骤S202,根据该至少一个已经完成传输的分片的传输参数计算速率变化指数,该速率变化指数表征传输速率相对于该分片大小变化的速率;0052步骤S203,判断该速率变化指数是否小于预设的第一阈值,若是,则更新当前传输状态为一个不同的状态;0053步骤S204,获取与该当前传输状态对应的系数,并设定当前待传输分片的大小为该文件中最近完成传输的分片大小与该系数的乘积;0054步骤S205,按照所设定的该当前待传输分片的大小从该文。

34、件中截取当前待传输的分片进行传输。0055按照上述的文件传输方法,根据文件中已完成传输的分片的传输参数动态地设定文件当前待传输分片的大小,可以使该当前待传输分片的大小能够适应网络质量和带宽的要求,从而提升网络在传输文件时的有效带宽和文件的传输速度。0056在一些实例中,上述方法的各步骤的实现细节如下0057步骤S201所述的传输速率可以根据每个已经完成传输的分片的大小和传输时间计算得出。该传输时间是指相应分片从发送出去到接收到该接收端120回复的表示接收成功的信息之间的时间段。计算出该传输速率后,还可以对该传输速率使用预先设定的平滑因子进行平滑处理。0058步骤S202所述的速率变化指数表征传。

35、输速率相对于该分片大小变化的速率,即在该至少一个已经完成传输的分片中,当分片大小变化时,分片的传输速率相应的变化情况。当分片大小以一定的增长速度增长时,该传输速率也有相应的提升,则说明此时分片大小的增长速度能满足该传输速率提升的要求。而当分片大小以该增长速度增长时,该传输速率没有相应的提升,则说明此时分片大小的增长速度已不能满足传输速率提升的要求,需要放慢分片大小的增长速度或保持分片大小不变。0059步骤S203所述的第一阈值用于界定分片大小的增长速度是否能够满足传输速率提升的要求。所述的当前传输状态即表示该分片大小的增长速度。在本实施例中,该当前传输状态包括第一状态、第二状态和第三状态。每个。

36、状态对应一个用于表示分片大小的增长速度的系数。其中,该第一状态和第二状态对应的系数大于1,并且第一状态对应的系数大于第二状态对应的系数,表示第一状态下分片大小的增长速度要高于第二状态下分片大小的增长速度。该第三状态对应的系数为1,表示第三状态下分片大小保持不变。0060具体而言,步骤S203还包括确定当前传输状态,若该速率变化指数小于该第一阈说明书CN104168093A105/13页11值,且当前传输状态为该第一状态,则更新当前传输状态为该第二状态,即放慢该分片大小的增长速度。若该速率变化指数小于该第一阈值,且当前传输状态为该第二状态,则更新当前传输状态为该第三状态,即进一步放慢该分片大小的。

37、增长速度。0061步骤S204获取与更新后的该当前传输状态对应的系数,并设定当前待传输分片的大小为该最近完成传输的分片大小与该系数的乘积。若该当前传输状态为第一状态或第二状态,则在该最近完成传输的分片大小的基础上相应增大以设定待传输分片的大小。若该当前传输状态为第三状态,则设定待传输分片的大小与该最近完成传输的分片大小相同。0062步骤S205按照所设定的该当前待传输分片的大小从该文件中截取当前待传输的分片,再执行所述步骤S102以传输该分片。0063第四实施例0064参阅图6所示,本发明第四实施例提供一种文件传输方法,相比于第三实施例的文件传输方法,对该当前传输状态的更新条件作出了进一步限定。

38、,以使所设定的待传输分片的大小更加适应网络的传输能力,从而提升文件的传输速度。0065相比于第三实施例的文件传输方法,本实施例的文件传输方法进一步包括0066步骤S200,在执行所述步骤S201前,判断当前待传输的分片是否为该文件的首个分片,若当前待传输的分片为该文件的首个分片,则执行步骤S206,若当前待传输的分片不为该文件的首个分片,则执行所述步骤S201。0067步骤S206,设定当前待传输分片的大小为当前网络类型(例如电信运营商提供的2G/3G网络、WIFI网络等)下分片大小的默认值,并将该当前传输状态更新为该第一状态,然后执行步骤S205。0068步骤S207,在执行所述步骤S203。

39、之前,确定该当前传输状态是否为该第一状态或第二状态。若当前状态为第一状态或第二状态,则执行步骤S208。若当前状态为第三状态,则执行步骤S209。0069步骤S208,判断该至少一个已经完成传输的分片中,每种分片大小的使用次数是否分别达到预设的第二阈值(例如2次)。若该每种分片大小的使用次数达到该第二阈值,则执行所述步骤S203,若该每种分片大小的使用次数未达到该第二阈值,则执行所述步骤S204。0070步骤S209,统计该至少一个已经完成传输的分片的传输速率连续超出预设范围的次数,并判断所统计的次数是否达到预设的第三阈值。若所统计的次数未达到该第三阈值,则执行所述步骤S204。若所统计的次数。

40、达到该第三阈值,则执行所述步骤S206。0071值得注意的是,由于文件待发送部分的大小可能不足以按照所设定的当前待传输分片的大小从该文件中截取当前待传输的分片,或者在按照所设定的当前待传输分片的大小从该文件中截取当前待传输的分片后,文件待发送部分的大小较小,没必要再将文件待发送部分作为下一个分片进行传输,因此,所述步骤S204和步骤S206可以进一步包括判断该文件待发送部分的大小是否小于预设的第四阈值。若该文件待发送部分的大小小于该第四阈值,则设定当前待传输分片的大小为该文件待发送部分的大小,然后再执行所述步骤S205。若该文件待发送部分的大小不小于该第四阈值,则直接执行该步骤S205。007。

41、2按照本实施的文件传输方法,对该当前传输状态的更新条件作出了进一步限定,说明书CN104168093A116/13页12可以使所设定的待传输分片的大小更加适应网络的传输能力,从而提升文件的传输速度。0073第五实施例0074参阅图7所示,本发明第五实施例提供一种文件传输方法,其相比于第四实施例的文件传输方法,进一步对所述步骤S101提出一种具体的实现方案。先设所获取的该文件中至少一个已经完成传输的分片的传输参数包括该文件的首个分片的大小S1,在该分片大小S1下的传输速率的平滑值V1,最近完成传输的分片大小SN,在该分片大小SN下的传输速率的平滑值VS,与该分片大小SN不同且在该分片大小SN之前。

42、最近传输的分片大小S0,在该分片大小S0下的传输速率的平滑值V0。设该当前待传输分片的大小为SN1,则本实施例相比于第四实施例的文件传输方法,所述步骤S101进一步包括0075步骤S11,判断该SN是否为0。若SN不为0,则说明当前待传输的分片不为该文件的首个分片,进入步骤S12。若SN为0,则说明当前待传输的分片为该文件的首个分片,进入步骤S25。0076步骤S12,更新该SN的使用次数N。0077步骤S13,根据所获取的该S1、V1、SN、VS、S0和V0计算该速率变化指数S。计算该S的公式为SVSV0/V1/SNS0/S1。0078步骤S14,确定当前传输状态。若当前传输状态为该第一状态。

43、,则进入步骤S15。若该当前传输状态为该第二状态,则进入步骤S18。若当前传输状态为该第三状态,则进入步骤S21。0079步骤S15,判断是否该SN的使用次数N等于预设的第二阈值NMAX,且所计算出的该速率变化指数S小于预设的第一阈值SMIN。若是,则进入步骤S16,若否,则进入步骤S17。0080步骤S16,更新当前传输状态为第二状态,设定SN1为第二状态对应的系数B与SN的乘积,然后进入步骤S27。0081步骤S17,设定SN1为第一状态对应的系数A与SN的乘积,然后进入步骤S27。0082步骤S18,判断是否该SN的使用次数N等于预设的第二阈值NMAX,且所计算出的该速率变化指数S小于预。

44、设的第一阈值SMIN。若是,则进入步骤S19,若否,则进入步骤S20。0083步骤S19,更新当前传输状态为第三状态,设定SN1与SN相等,然后进入步骤S27。0084步骤S20,设定SN1为第二状态对应的系数B与SN的乘积,然后进入步骤S27。0085步骤S21,判断VS与第三状态下的基准速率VSTABLE之间的差值是否小于预设的第三阈值。若否,说明该最近完成传输的分片的传输速率超出该预设范围,则进入步骤S22。若是,说明该最近完成传输的分片的传输速率未超出该预设范围,则进入步骤S23。该第三阈值可以为该基准速率VSTABLE与某百分比常量D的乘积。0086步骤S22,更新该最近完成传输的分。

45、片的传输速率超出该预设范围的次数M,即在该M的基础上加1。0087步骤S23,将该最近完成传输的分片的传输速率超出该预设范围的次数M清零。0088步骤S24,判断该最近完成传输的分片的传输速率超出该预设范围的次数M是否达到预设的第四阈值MMAX。若是,则进入步骤S25。若否,则进入步骤S26。0089步骤S25,更新当前传输状态为第一状态,设定SN1与S1相等,然后进入步骤S27。0090步骤S26,设定SN1与SN相等。0091步骤S27,判断该文件待发送部分的大小FS是否小于预设的第四阈值F。若是,则说明书CN104168093A127/13页13进入步骤S28。若否,则进入步骤S29。0。

46、092步骤S28,设定SN1与FS相等。0093步骤S29,返回所设定的SN1,按照所设定的SN1的分片大小从该文件中截取当前待传输的分片以进行传输。0094第六实施例0095根据第一实施例提供的文件传输方法在互联网上传输文件,是采用设定未收到回复信息的超时时间来监控分片是否传输成功的。该超时时间一般是根据分片大小和不同互联网的平均带宽或最近的历史带宽实测数据所估算出来的一个固定值或动态值。0096然而,由于移动互联网特别是非WIFI网络的网络质量变化非常快且幅度很大,远没有有线网络那么稳定,在绝大多数时候,某一种移动互联网下的实际带宽都与统计得到的平均带宽有很大的差距。因此使用根据分片大小和。

47、互联网的平均带宽估算出来的超时时间,在文件分片的实际传输过程中将非常容易超时。而由于移动互联网的网络质量变化快而且经常是“非连续”、“跳变”的,根据历史测量得到的前一刻的带宽很难作为一个依据去估计后一刻的带宽。因此,使用设定该超时时间来监控分片是否传输成功,容易导致文件单个分片的传输失败率很高。此外,由于达到超时时间而宣告文件的分片传输失败后,数据还是会经网络传输完毕才会结束该分片的传输过程,造成这个分片的整个发送过程所产生的流量都因为传输失败的结果而浪费掉了。0097为进一步解决上述问题,参阅图8所示,本发明第六实施例提供一种文件传输方法,其相比于第一实施例的文件传输方法,所述的步骤S102。

48、进一步包括0098步骤S301,在一主进程内将从该文件中提取的分片提交至该待传输队列中;0099步骤S302,持续等待中断信号;0100步骤S303,监控该主进程在预定时间段内是否有上行数据流量产生,若否,则发出中断等待请求,并在该中断等待请求中附加该主进程在预定时间段内未产生上行数据流量的信息;0101步骤S304,若接收到该中断等待请求或者该接收端返回的回复信息,则结束该步骤S302。0102按照本实施例的文件传输方法,采用监控主进程未产生上行数据流量的持续时间来判断分片是否传输成功,相比于传统的发送超时的处理方式,能够更好地适应不稳定的网络环境如移动互联网,提高分片传输的成功率,并减少在。

49、分片传输过程中由于超时问题导致的流量浪费。0103在一些实例中,上述方法的各步骤的实现细节如下0104步骤S301中所述的主进程是指要传输该分片的进程。例如,某一文件传输应用所在的进程。该分片可以按照超文本传输协议(HYPERTEXTTRANSFERPROTOCOL,HTTP)封装成网络数据包。0105步骤S302所述的中断信号包括所述的中断等待请求或者接收端120返回的回复信息等等。此外,在步骤S302执行的过程中,还可以中断主进程的执行。0106步骤S303可以在不同于该主进程的一个新的监控进程中执行。所述的预定时间段是可以允许的网络超时时间,其可以按照具体的需要进行设定,例如可以选5秒。所述的上行数据流量是主进程将该分片提交给该待传输队列后,该待传输队列将该分片交由操作说明书CN104168093A138/13页14系统通过网络传输出去而产生的。0107若主进程在该预定时间段内未产生上行数据流量,则说明主进程在该预定时间段内没有任何一个字节被通过网络传输出去,意味着本次该分片传输失败,因此需要发出该中断等待请求以使主进程停止等待中断信号。在发出该中断等待请求后,该步骤S303结束。0108若主进程在该预定时间段内有上行数据流量产生,则说明主进程在该预定时间段内有数据被通过网络传输出去,意味着该分片正在发送过程中。为了避免用户由于等待而产生的焦虑心情,若主进程在该预定时间段内。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1