《一种文件传输方法及装置.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若主进程在该预定时间段内有上行数据流量产生,则说明主进程在该预定时间段内有数据被通过网络传输出去,意味着该分片正在发送过程中。为了避免用户由于等待而产生的焦虑心情,若主进程在该预定时间段内。