本发明涉及通信技术,尤其涉及一种文件传输方法及设备。
背景技术:
:文件传输是在目前的网络应用中普遍使用的功能,典型地,用于如下的场景:1)通过社交应用提供的文件传输功能,向参与会话的一个或多个好友发送分享照片和视频等大容量的文件进行分享;2)用户使用网络客户端向云端传输用户终端的本地文件(如媒体文件、程序、设置信息)进行备份,以在必要时从云端恢复。上述文件传输的应用场景都具有传输文件容量大、要求可靠传输的特点,为了提升文件传输速度,相关技术提供了分片传输方案,简单来说,在发送端将文件进行分割为若干分片,利用发送端与接收端之间的多个连接并行传输分片,每个连接传输的分片在得到接收端的响应时继续传输下一个分片,这样能够充分利用接收端与发送端之间的传输带宽,最大化文件传输速率,另外,当分片传输失败时只要重传对应的分片,而不需要重传整个文件,保证了传输效率。其中,当发送端在一个连接上发送分片后,发送端需要在超时时间内等待发送端接收到分片的响应,如接收到则继续传输下一个分片,若未接收到响应则重传分片,可见超时时间是影响文件传输效率的重要因素。实际应用中,发送端的接入网络的类型复杂多样,并且由于用户的移动的特性,发送端的接入网络的类型会不可避免地发生频繁的变动,对于如何根据发送端的接入网络的情况有针对性确定超时时间,提升分片文件传输的效率,相关技术尚无有效方案。技术实现要素:本发明实施例提供一种文件传输方法及设备,能够根据发送端的接入网络而自适应确定超时时间,提升文件传输效率。本发明实施例的技术方案是这样实现的:第一方面,本发明实施例提供一种文件传输方法,包括:基于发送端的接入网络的类型,确定所述发送端与所述接收端之间所建立的至少两个连接的初始的超时时间;基于各所述连接的初始的超时时间,通过各所述连接向所述接收端并行传输文件的不同文件分片;基于各所述连接的历史往返传输时间,对相应连接的历史超时时间进行补偿,得到各所述连接的更新的超时时间;基于各所述连接的更新的超时时间,通过各所述连接向所述接收端并行传输所述文件的不同文件分片。第二方面,本发明实施例提供一种用于进行文件传输的电子设备,作为发送端,包括:超时单元,基于所述发送端的接入网络的类型,确定所述发送端与所述接收端之间所建立的至少两个连接的初始的超时时间;传输单元,基于各所述连接的初始的超时时间,通过各所述连接向所述接收端并行传输文件的不同文件分片;补偿单元,用于基于各所述连接的历史往返传输时间,对相应连接的历史超时时间进行补偿,得到各所述连接的更新的超时时间;所述传输单元,还用于基于各所述连接的更新的超时时间,通过各所述连接向所述接收端并行传输所述文件的不同文件分片。第三方面,本发明实施例提供一种作为发送端的电子设备,包括:存储器和处理器,存储器中存储有可执行指令,用于引起处理器执行本发明实施例提供的文件传输方法。第四方面,本发明实施例提供一种存储介质,存储有可执行指令,用于执行本发明实施例提供的文件传输方法。本发明实施例具有以下有益效果:首先,基于发送端的接入网络的类型初步确定通过连接传输文件分片的超时时间,对于优质的接入网络而言,能够避免因设置统一的超时时间而无法利用传输带宽最大化传输效率的问题;对于带宽有限的接入网络而言,能够避免因超时时间过短导致频繁重传文件分片,造成接入网络进一步拥塞以及过度消耗网络流量的问题;其次,通过各连接的历史往返传输时间对初始的超时时间进行补偿,由于往返传输时间反映了连接传输文件分片的实时的性能,通过使用历史往返传输时间对超时时间进行补偿,能够针对接入网络的实际情况(如接入网络故障、接入网络带宽提升)而使连接传输文件分片性能进行自适应的调整,避免超时时间过长而影响连接利用率,并避免超时时间过短导致的频繁重发的情况,最大程度提升文件传输效率。附图说明图1是本发明实施例提供的文件传输方法的一个可选的处理示意图;图2是本发明实施例提供的文件传输方法的一个可选的流程示意图;图3是本发明实施例提供的文件传输方法的一个可选的流程示意图;图4是本发明实施例提供的作为发送端的电子设备10的一个可选的软硬件结构示意图;图5-1是本发明实施例提供的文件传输方法的一个可选的流程示意图图5-2是本发明实施例提供发送端与接收端之间建立连接的一个可选的流程示意图;图6是本发明实施例提供的设备的一个可选的功能结构示意图;图7是本发明实施例提供的客户端向服务器传输文件分片的一个可选的流程示意图;图8是本发明实施例提供的客户端向服务器传输文件分片的一个可选的流程示意图。具体实施方式以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在本领域技术人员不付出创造性劳动的前提下,对以下实施例的技术方案进行重组所得的实施例、以及基于对发明所实施的其他实施例均属于本发明的保护范围。需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元)。例如,本发明实施例提供的文件传输方法包含了一系列的步骤,但是本发明实施例提供的文件传输方法不限于所记载的步骤,同样地,本发明实施例提供的文件传输设备-发送端包括了一系列单元,但是本发明实施例提供的文件传输设备不限于包括所明确记载的单元,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的单元。对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。1)文件分片,文件(如视频、音频、图像、安装包和压缩包等任意形式的支持复制并传输的文件)的数据进行分割形成,一般地,对同一文件进行分割形成的文件分片具有相同的容量,当然,也可以分割形成不同容量的文件分片。2)接入网络,接入网络是一种用户网络,连接用户设备到特定的服务提供商并通过承载网络到达其他网络(如互联网),例如,包括2g/3g/4g的蜂窝通信网络、无线局域网络如wifi网络、以及光纤网络等。3)超时时间,与连接一一对应,发送端通过连接向接收端重新传输文件分片之前所等待的时间。4)往返传输时间(rtt,round-triptime),发送端从接收端传输文件分片开始,至接收来自接收端的响应(ack)所耗费的时间。以基于传输控制协议(tcp,transmissioncontrolprotocol)的连接来说,接收端和发送端同时支持tcp时戳选项时,发送端记录在tcp数据包的包选项内的时戳可以被接收端随响应反射回来,发送端就可以利用响应报文的反射时戳计算出某个tcp包的即时往返传输时间。5)长连接,指在发送端与接收端之间连续传输多个文件分片的连接,在连接保持期间,如果预定时间内没有文件分片在长连接上传输,发送端与接收端释放连接。6)短连接,指在发送端与接收端之间连续传输一个文件分片的连接,在传输完成后即释放的连接。继续针对文件传输方案在传输效率上存在的问题进行分析,参见图1以及图2,图1是本发明实施例提供的文件传输方法的一个可选的处理示意图,图2是本发明实施例提供的文件传输方法的一个可选的流程示意图,以手机qq客户端向服务器传输文件为例,手机qq的客户端在向服务器进行富媒体的文件传输时,客户端通过接入网络接入互联网,建立与服务器之间的基于tcp的多个连接,将待传输的文件按照固定大小进行分割形成文件分片,基于多个连接并行传输不同的文件分片。客户端在每个连接上向服务器传输一个文件分片,并开始计时,在超时时间(45s)内没有接收到服务器接收到文件分片的响应,即认为传输文件分片丢失,重新传输文件分片,直至接收到服务器的响应并继续传输其余的文件分片。当重新文件分片超过预定次数(如3次)且未收到服务器的响应时,若传输文件的所耗费的时间已经超出预定时间(如8分钟),则可以结束文件传输,若传输文件的所耗费的时间没有超出预定时间(如8分钟),则可以尝试更换在接入网络的ip地址继续尝试重新传输。基于图1和图2提供的文件传输方案,至少存在以下问题:1)发送端的接入网络的类型不同时,采用的超时时间都相同,不利于在接入网络是优质无线网络的情况进行文件分片的快速重传。比如wifi网络的质量平均来说是远远优于2g网络,但是wifi网络和2g网络的超时时间相同,会导致在质量较优的wifi网络下,要等待很长的超时时间才能重传之前传输失败的文件分片,这会降低因丢包而重传文件分片时优质无线网络下的传输效率。2)不能根据同一接入网络质量的变化而自适应更新。例如,中国的移动通信网络是非常复杂的,不同地域不同省份不同片区不同基站不同时段,网络质量千差万别,而且网络质量是不断变化的,比如高峰期和人员拥堵地段网络质量就很差,而低峰期和人员稀少地段网络质量就很好。如果采用固定的超时时间,很可能导致网络质量好的地区或时段,在丢包时仍要采用很长的超时时间才能重试传输文件分片,从而导致传输时间很长,用户体验很差。当网络质量特别差时,固定的超时相对于质量较低的接入网络来说太短,导致重试传输的文件分片会增多,增加了进入网络的分片,从而浪费用户流量。针对上述问题,本发明实施例提供一种文件传输方法,提供对发送端使用连接传输文件分片的超时时间进行自适应调整的方案,参见图3,图3是本发明实施例提供的文件传输方法的一个可选的流程示意图,包括以下步骤:步骤101,发送端基于发送端的接入网络的类型,确定发送端与接收端之间所建立的至少两个连接分别对应的初始的超时时间。步骤102,发送端基于各连接对应的初始的超时时间,通过各连接向接收端并行传输文件的不同文件分片。步骤103,发送端基于各连接的历史往返传输时间,对相应连接的历史超时时间进行补偿,得到各连接对应的更新的超时时间。步骤104,发送端基于各连接对应的更新的超时时间,通过各连接向接收端并行传输文件的不同文件分片。首先,基于发送端的接入网络的类型初步确定通过连接传输文件分片的超时时间,使得超时时间因接入网络的类型具有差异化的特性,对于优质的接入网络而言,能够避免因设置统一的超时时间而无法充分利用传输带宽最大化传输效率的问题;对于带宽有限的接入网络而言,能够避免因超时时间过短导致频繁重传文件分片,造成接入网络进一步拥塞的问题;其次,通过各连接的往返传输时间对初始的超时时间进行补偿,由于往返传输时间反映了接入网络传输文件分片的实时的性能,通过使用往返传输时间对超时时间进行补偿,能够针对接入网络的实际情况(如接入网络故障,接入网络带宽变化)而使连接传输文件分片性能进行自适应的调整,避免超时时间过长而影响连接利用率,并避免超时时间过段导致的频繁重发的情况,最大程度提升文件传输效率。下文中,继续以发送端和接收端为例进行说明,可以理解地,在不同的业务场景中,发送端和接收端可以实施为不同的设备,如终端和服务器。例如,在即时通信的业务场景中,发送端可以为运行即时通信客户端的终端,接收端可以为部署在网络中的即时通信服务器,用于接收某一用户通过即时通信客户端在会话中发送的文件。同时,服务器又可以作为发送端将文件分片(可以为所接收的文件分片,或者为根据接收的文件分片合并为文件后重新分割的文件分片)传输给参与会话的其他用户的即时通信客户端。再例如,在云端存储服务的业务场景中,发送端可以为运行网盘客户端的终端,接收端可以为部署有云端存储服务的服务器。与前述的发送端对应,本发明实施例还提供用于实施上述文件传输方法的电子设备,例如,电子设备可以基于用户侧的终端,例如,智能手机、平板电脑、笔记本电脑,也可以为部署在网络中的用于提供文件传输后台服务的服务器。在硬件层面上,实现电子设备的硬件资源包括如处理器和内存的计算资源、如网络接口的通信资源实现;在软件层面上,电子设备可以实施为存储于存储介质中的可执行指令(包括诸如程序、模块之类的计算机可执行指令)。如上,参见图4示出的本发明实施例提供的作为发送端的电子设备10的一个可选的软硬件结构示意图,电子设备10包括硬件层、中间层、操作系统层和软件层。然而,本领域的技术人员应当理解,图4示出的电子设备10的结构仅为示例,并不构成对电子设备10结构的限定。例如,电子设备10可以根据实施需要设置较图4更多的组件,或者根据实施需要省略设置部分组件。电子设备10的硬件层包括处理器11、输入/输出接口13,存储介质14以及网络接口12,组件可以经系统总线连接通信。处理器11可以采用中央处理器(cpu)、微处理器(mcu,microcontrollerunit)、专用集成电路(asic,applicationspecificintegratedcircuit)或逻辑可编程门阵列(fpga,field-programmablegatearray)实现。输入/输出接口13可以采用如显示屏、触摸屏、扬声器等输入/输出器件实现。存储介质14可以采用闪存、硬盘、光盘等非易失性存储介质实现,也可以采用双倍率(ddr,doubledatarate)动态缓存等易失性存储介质实现,其中存储有用以执行上述文件传输方法的可执行指令。示例性地,存储介质14可以与电子设备10的其他组件集中设置,也可以相对于电子设备10中的其他组件分布设置。网络接口12向处理器11提供外部数据如异地设置的存储介质14的访问能力,示例性地,网络接口12可以基于近场通信(nfc,nearfieldcommunication)技术、蓝牙(bluetooth)技术、紫蜂(zigbee)技术进行的近距离通信,另外,还可以实现如cdma、wcdma等通信制式及其演进制式的通信。驱动层包括用于供操作系统16识别硬件层并与硬件层各组件通信的中间件15,例如可以为针对硬件层的各组件的驱动程序的集合。操作系统16用于提供面向用户的图形界面,示例性地,包括插件图标、桌面背景和应用图标,操作系统16支持用户经由图形界面对设备的控制本发明实施例对上述设备的软件环境如操作系统类型、版本不做限定,例如可以是linux操作系统、unix操作系统或其他操作系统。协议层配置有支持设备实现无线局域网通信的协议如无线相容性认证(wifi)协议,还配置有支持设备将文件分片进行封装为数据报文、并将数据报文的形式通过连接传输的tcp/网际协议(internetprotocol)。应用层包括提供有文件传输功能的应用,对于设备是终端的情况,应用层可以包括如即时通信客户端19,提供向用户好友传输文件进行共享的功能,再例如网盘客户端18,提供将电子设备10本地的文件(如用户照片、视频等个人文件,以及操作系统设置文件、安装包文件)上传到云端的服务器,并在必要时将文件从云端恢复到电子设备10。对于设备是服务器的情况,应用层可以包括如用于支持即时通信业务的业务逻辑(如用户数据管理、消息管理)。参见图5-1,图5-1是本发明实施例提供的文件传输方法的一个可选的流程示意图,包括:步骤201,发送端通过接入网络建立与接收端之间的用于传输文件分片的多个连接。在一个实施例中,发送端与客户端之间通过三次握手建立多个长连接,通过长连接进行后续的文件分片的传输,由于长连接具有在没有文件分片传输时仍然保持一定时间的特性,当发送端向接收端连续传输多个文件时,能够节省发送端与接收端之间的资源消耗和时间消耗。在另一个实施例中,发送端与客户端之间通过三次握手建立至少多个短连接,通过短连接进行后续的文件分片的传输,由于短连接具有在没有文件分片传输时即释放的特性,当大量的发送端向接收端连接传输文件时,能够节约接收端维护大量并发连接的资源消耗。对发送端与接收端之间建立连接的过程进行说明,参见图5-2示出的发送端与接收端之间建立连接的一个可选的流程示意图,包括三次握手操作。第一次握手:建立连接时,发送端发送同步序列号(syn,synchronizesequencenumbers)包(syn=j)到接收端,并进入syn_sent状态,等待接收端确认;同步序列编号。第二次握手:接收端收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时接收端进入syn_recv状态。第三次握手:发送端收到服务器的syn+ack包,向接收端发送确认包ack(ack=k+1),此包发送完毕,发送端和接收端进入established(tcp连接成功)状态,完成三次握手。步骤202,接收端基于发送端的接入网络的类型,确定发送端与接收端之间所建立的多个连接各自的初始的超时时间。在一个实施例中,各连接的初始的超时时间是对各连接的基础超时时间进行补偿得到。对于基础超时时间来说,不同类型的接入网络的基础超时时间与接入网络的带宽以及传输速率负相关,即接入网络的带宽越大,传输速率越快,则通过连接所传输的文件分片所需要的时间越少,从而发送端在发送文件分片之后能够在相对更短的时间内接收到接收端的确认,相应地,在重传文件分片之前所等待的时间(基础超时时间)也越短。实际应用中,作为一个示例,不同类型的接入网络的基础超时时间,可以通过一段时间内发送端通过相应类型的接入网络中传输文件分片时所使用的超时时间进行统计(发送端统计或由接收端统计),并对统计到的超时时间求取均值得到。如对最近一周或一月的超时时间进行统计并求取均值得到,这里的均值可以是算术平均值或中位值(即统计到的往返传输时间中排序处于中间位置的值),从而,形成不同类型的接入网络与基础超时时间的对应关系。可替换地,作为另一个示例,不同类型的接入网络的基础超时时间,也可以通过一段时间内,发送端通过相应类型的接入网络建立的连接传输文件分片时的往返传输时间进行统计,并对统计到的往返传输时间求取均值得到。如对最近一周或一月的往返传输时间进行统计并求取均值得到,这里的均值可以是算术平均值或中位值(即统计到的往返传输时间中排序处于中间位置的值),从而,形成不同类型的接入网络与基础超时时间的对应关系。不同类型的接入网络与基础超时时间的对应关系的一个可选的示例如表1所示。接入网络2g网络3g/4gwifi网络基础超时时间60秒(s)40s20s表1对于发送端检测到所接入网络的类型而言,发送端基于上述的不同类型的接入网络与基础超时时间之间的对应关系,能够确定与发送端的接入网络的对应的基础超时时间。步骤203,发送端基于各连接的建立时间对相应连接的基础超时时间进行补偿,对应得到各连接的初始的超时时间。在一个实施例中,发送端基于各连接的建立时间(即发送端与接收端进行三次握手以建立连接所消耗的时间)、相应连接的基础超时时间求取加和的方式对基础超时时间进行补偿,得到各连接的初始的超时时间。例如,对于发送端与接收端建立的一个连接来说,假设发送端与接收端三次握手建立该连接所消耗的时间为tconnect,发送端的接入网络对应的基础超时时间为tbase,那么该连接初始的超时时间可以表示为:tinitial=tbase+tconnect(1)结合连接的基础传输时间和连接建立时间作为连接首次传输文件分片的超时时间,从接入网络的类型所反映的整体的传输性能(通过基础超时时间来反映)、以及接入网络实时的传输性能(通过连接建立时间来反映)两个方面确定超时时间,既考虑了发送端的接入网络的类型这一宏观的因素对连接的传输性能的影响,又兼顾了相同类型的不同接入网络对(100兆带宽的无线局域网和1000兆带宽的无线局域网)的差异对连接的传输性能的影响,使得超时时间能够精确反映连接的传输性能。例如,对于发送端接入无线局域网发送文件分片,相较于发送端接入2g蜂窝网络发送文件分片的情况,由于无线局域网的连接建立时间,必然短于2g蜂窝通信网络时的连接建立时间,同时,无线局域网的基础超时时间,必然短于接入2g蜂窝通信网络的基础超时时间。因此,无线局域网的初始的超时时间必然短于2g蜂窝网络的初始的超时时间,在传输失败时,基于无线局域网建立的连接能够较基于2g蜂窝通信网络建立的连接更快发起文件分片重传,从而提升传输效率。再例如,对于发送端接入100兆带宽的无线局域网发送文件分片,相较于发送端接入1000兆带宽的无线局域网发送文件分片的情况,由于1000兆带宽无线局域网的连接建立时间,必然短于100兆带宽无线局域网的连接建立时间,同时,1000兆带宽无线局域网的基础超时时间,必然短于100兆带宽无线局域网的基础超时时间,因此,1000兆带宽无线局域网的初始的超时时间必然短于100兆带宽无线局域网的初始的超时时间,在传输失败时,发送端接入1000兆带宽无线局域网建立的连接能够较发送端接入100兆带宽无线局域网建立的连接更快发起文件分片重传,从而充分利用优质接入网络提升传输效率。在另一个实施例中,发送端基于各连接的建立时间(即发送端与接收端进行三次握手以建立连接所消耗的时间)、基础超时时间与第一加权系数的第一乘积的加和,对应得到各连接的初始的超时时间。例如,对于发送端与接收端建立的一个连接来说,假设发送端与接收端三次握手建立该连接所消耗的时间为tconnect,发送端的接入网络对应的基础超时时间为tbase,第一加权系数为β,那么该连接初始的超时时间tinitial可以表示为:tinitial=tbase+β*tconnect(2)文件分片在发送端的tcp协议层封装为数据报文(以文件分片的数据为载荷数据)的形式在连接中传输,并且,数据报文不可避免地需要异构网络中传输,鉴于这种情况,为了避免数据报文在异构网络中被分片,从而造成一个文件分片的部分数据在异构网络中丢包的情况,接收端对连接的基础超时时间进行补偿之前,首先比较发送端向接收端并行传输的文件分片的容量、以及发送端向接收端传输的数据报文的最大长度,基于比较结果调整基础超时时间,然后使用比较结果作为第一加权系数对相应连接对应的调整后的基础超时时间进行补偿。其中,对于基于比较结果调整基础超时时间而言,可以采用这样的方式:以第一加权系数与相应连接基础超时时间的乘积为调整后的基础超时时间,其中第一加权系数为发送端向接收端并行传输的文件分片的容量、与发送端向接收端传输的数据报文的最大长度的比值。例如,假设发送端向接收端并行传输的文件分片的容量为size,则容量size可以表示为:size=l*nallow*s(3)其中,l为发送端与接收端所建立的连接的数量,nallow为连接允许同时传输的文件分片的数量,s为文件分片大小(容量)。假设发送端向接收端传输的数据报文的最大长度为mss,则mss为从发送端到接收端所经过的网络中各网络允许的做大传输单元(mtu,maximumtransmissionunit)的最小值,当将比较结果作为第一加权系数β时,第一加权系数β可以表示为:β=size/mss(4)相应地,基于比较结果调整的基础超时时间可以表示为:β*tconnect=(size/mss)*tconnect(5)则当比较结果作为第一加权系数β对调整的基础超时时间进行补偿,所得到的初始的超时时间tinitial可以表示为:tinitial=tbase+(size/mss)*tconnect(6)步骤204,接收端基于各连接对应的初始的超时时间,通过各连接向接收端并行传输文件的不同文件分片。仍然参见图1,发送端将文件分割为n个文件分片,在每个连接传输预定数量的文件分片,假设每个连接中允许同时传输的文件分片的数量为2,则发送端首先在连接1中传输文件分片1和文件分片2,在连接2中传输文件分片3和文件分片4。对于每个分片发送后基于tinitial开始计时并进行相应的处理,以文件分片1为例,如果在初始的超时时间tinitial没有接收到服务器通过连接1返回的针对文件分片1的响应,则重新传输文件分片1,当重新文件分片1超过预定次数(如3次)且未收到服务器的响应时,若传输文件的所耗费的时间已经超出预定时间(如8分钟),则可以结束文件传输,若传输文件的所耗费的时间没有超出预定时间(如8分钟),则可以尝试更换ip地址继续尝试重新传输文件分片1。当接收端通过连接的初始的超时时间传输文件分片之后,在后续每次传输新的文件分片时,或者在通过连接传输的新的文件分片满足预定条件时,通过对连接使用的超时时间(如初始的超时时间)进行补偿,得到连接的更新的超时时间,基于更新的超时时间继续传输文件的文件分片,通过循环执行下述步骤205和步骤206来完成。步骤205,发送端基于各连接的历史往返传输时间,对相应连接的历史超时时间进行补偿,得到各连接对应的更新的超时时间。步骤206,发送端基于各连接的更新的超时时间,通过各连接向接收端并行传输文件的不同文件分片。下面结合循环执行步骤205和步骤206对更新超时时间的实现方式进行说明。例如,首次执行步骤205时,历史超时时间thistory即为步骤203中确定的初始的超时时间tinitial,历史往返传输时间rtthistory即为通过连接首次传输文件分片的初始的往返传输时间rttinitial(即,通过连接初次传输文件分片至接收到接收端返回的响应所消耗的时间),基于各连接的初始的往返传输时间rttinitial,对相应连接的初始的超时时间tinitial进行补偿,得到各连接对应的更新的超时时间。首次执行步骤206时,作为一种补偿方式,将初始的超时时间与连接的初始的超时时间求和的方式进行补偿,得到的连接对应的更新的超时时间toptimal可以表示为:toptimal=rttinitial+tinitial(7)后续,再次执行步骤204时,历史超时时间即为最近一次更新过的超时时间tlasttime,历史往返传输时间即为最近一次通过连接传输文件分片的往返传输时间rttlasttime(即,通过连接最近一次传输文件分片至接收到接收端返回的响应所消耗的时间),则基于各连接的历史往返传输时间,对相应连接的初始的超时时间tinitial进行补偿,得到各连接对应的更新的超时时间。作为一种补偿方式,将连接的历史往返传输时间与连接的历史超时时间求和的方式进行补偿,得到的更新的超时时间toptimal可以表示为:toptimal=rttlasttime+tlasttime(8)后续,当步骤205和步骤206再次执行时,根据上述公式(8)可迭代更新超时时间,不再赘述。继续对上述的针对历史超时时间的补偿方式进行说明,作为另一种补偿方式,假设连接的历史超时时间为thistory,则可将历史的超时时间与连接的历史往返传输时间rtthistory求和的方式对历史超时时间thistory进行补偿,得到的连接对应的更新的超时时间toptimal可以表示为:toptimal=rtthistory+thistory(9)需要指出地,当补偿的超时时间不是初始的超时时间的情况,对于连接已传输文件分片所对应的历史往返传输时间rtthistory的取值来说,取值有多种可选的情况,例如,取值可以是通过连接最近一次传输文件分片所对应的往返传输时间rttlasttime,或者,取值可以是通过连接传输部分或全部文件分片所对应的超时时间的均值rttaverage;同理,对于连接的历史超时时间thistory的取值来说,取值有多种可选的情况,例如,取值可以是通过连接最近一次传输文件分片时所使用的超时时间tlasttime,或者,取值可以是通过连接传输部分或全部文件分片所使用的超时时间的均值taverage。由此来看,基于公式(9),更新的超时时间除了采用公式(8)示出的表达表达方式,还可以有其他的表达方式,以基于均值rttaverage和超时时间的均值taverage表达方式来说,更新的超时时间toptimal可以表示为:toptimal=rttaverage+taverage(10)在另一个实施例中,作为前述公式(9)示出的补偿方式的可替换的补偿方式,提供另一种对超时时间进行补偿的方式。首先,对各连接的历史往返传输时间进行调整,对各连接的历史超时时间进行调整,然后,基于各连接的调整后的历史往返传输时间,对相应连接的调整后的历史超时时间进行补偿,得到各连接对应的更新的超时时间。就对连接的历史往返传输时间进行调整而言,可以以连接的历史往返传输时间rtthistory(即从通过该连接传输文件分片开始,至接收到来自接收端的针对该文件分片的确认所消耗的时间)与第二加权系数α(小于1)的第二乘积α*rtthistory作为调整后的历史往返传输时间。就对连接的历史超时时间进行调整而言,可以以连接的历史超时时间thistory与第三加权系数1-α(小于1,当然,也可以为其他任意的小于1的取值)的第三乘积(1-α)*thistory作为相应连接调整后的历史超时时间。相应地,连接的更新的超时时间toptimal可以表示为:toptimal=α*rtthistory+(1-α)*thistory(11)与前述的补偿方式类似地,对于连接的历史往返传输时间rtthistory来说,取值有多种可选的情况,历史往返传输时间rtthistory可以是通过连接最近一次传输文件分片所对应的往返传输时间rttlasttime,或者,可以是通过连接传输部分或全部文件分片所对应的超时时间的均值rttaverage;同理,对于连接的历史超时时间thistory来说,取值有多种可选的情况,例如,可以是通过连接最近一次传输文件分片时所使用的超时时间tlasttime,或者,可以是通过连接传输部分或全部文件分片所使用的超时时间的均值taverage。例如,当thistory取值是通过连接最近一次传输文件分片时所使用的超时时间tlasttime,且rtthistory取值是通过连接最近一次传输文件分片所对应往返传输时间rttlasttime时,连接的更新的超时时间toptimal可以表示为:toptimal=α*rttlasttime+(1-α)*tlasttime(12)再例如,当thistory取值是是通过连接传输部分或全部文件分片所使用的超时时间的均值taverage,且rtthistory取值是通过连接传输部分或全部文件分片所对应的超时时间的均值rttaverage时,连接的更新的超时时间toptimal可以表示为:toptimal=α*rttaverage+(1-α)*taverage(13)下面结合这种补偿方式对步骤205中更新超时时间进行说明。首次执行步骤205时,作为一种补偿方式,将连接初始的往返传输时间rttinitial与第二加权系数α相乘形成第二乘积α*rttinitial,将连接的初始的超时时间tinitial与第三加权系数(1-α)相乘形成第三乘积(1-α)*tinitial,以第二乘积与第三乘积求加和的方式对初始的超时时间tinitial进行补偿,得到的连接的更新的超时时间toptimal可以表示为:toptimal=α*rttinitial+(1-α)*tinitial(14)后续,再次执行步骤205时,历史超时时间即为最近一次更新过的超时时间tlasttime,历史往返传输时间即为最近一次通过连接传输文件分片的往返传输时间rttlasttime(即,通过连接最近一次传输文件分片至接收到接收端返回的响应所消耗的时间),则基于各连接的历史往返传输时间,对相应连接的初始的超时时间tinitial进行补偿,得到各连接对应的更新的超时时间。相应地,将连接的历史往返传输时间与连接的历史超时时间求和的方式进行补偿,得到的更新的超时时间toptimal可以表示为:toptimal=α*rttlasttime+(1-α)*tlasttime(15)后续,当步骤205和步骤206再次执行时,根据上述公式(15)可迭代更新超时时间,不再赘述。在另外一个实施例中,提供又一种对超时时间进行补偿的方式,基于上述的补偿方式,基于各连接的调整后的历史往返传输时间,对相应连接的历史超时时间进行补偿之后,还基于通过各连接重新传输同一文件分片的次数对相应连接的历史超时时间再次进行补偿,得到各连接的更新的超时时间。举例来说,将各连接重新传输同一文件分片的次数retrytimes与动态调整网络基数乘积δ的乘积δ*retrytimes对相应连接的历史超时时间进行补偿,即将连接传输文件分片的历史超时时间与第二加权系数的第二乘积α*rtthistory、相应连接的历史往返传输时间thistory与第三加权系数(1-α)的第三乘积(1-α)*thistory进行加和求和,得到确定各连接对应的更新的超时时间toptimal,可以表示为:toptimal=α*rtthistory+(1-α)*thistory+δ*retrytimes(16)同理,当thistory取值是通过连接最近一次传输文件分片时所使用的超时时间tlasttime,且rtthistory取值是通过连接最近一次传输文件分片所对应往返传输时间rttlasttime时,连接的更新的超时时间toptimal可以表示为:toptimal=α*rttlasttime+(1-α)*tlasttime+δ*retrytimes(17)在对历史超时时间补偿时,通过加入重新传输次数的因子,能够基于连接当前的实际传输性能精确确定超时时间。在一个实施例中,对于发送端与接收端之间所建立的每个连接,发送端在每个连接传输文件分片之后,即通过步骤205对连接的历史超时时间进行补偿,以形成更新的超时时间,基于更新的超时时间通过连接进行后续的文件分片的传输。通过连接每传输一个文件分片之后即更新连接的超时时间,能够针对接入网络的实际情况(如接入网络故障、接入网络带宽提升)自适应的调整超时时间,保证文件传输的效率。在另一个实施例中,对于发送端与接收端之间所建立的每个连接,发送端检测是否满足更新超时时间的预定条件,在预定条件满足时,即通过步骤205基于各连接的历史往返传输时间,对相应连接的历史超时时间进行补偿,得到各连接对应的更新的超时时间。示例性地,预定条件可以包括下面几种类型:更新条件1)发送端在超时时间内未接收到发送端针对所传输文件分片的响应;更新条件2)发送端通过连接重传文件分片次数超出预定次数时,仍未接收到接收端针对所传输文件分片的响应;更新条件3)发送端向接收端传输的文件分片的时间到达预定更新时间;更新条件4)发送端向接收端传输的文件分片的数量到达预定文件分片数量;更新条件5)发送端向接收端传输的文件的数量到达预定文件数量。上述更新条件的示例仅为示例,在不冲突的情况下,上述更新条件可以择一或组合使用,使用预定条件判断是否更新超时时间的方案。例如,对于发送端的接入网络的网络质量稳定,并且发送端频繁向接收端传输文件分片的情况,一般来说,当满足上述更新条件1)至更新条件3)时,说明当前的超时时间与接入网络的网络质量是适配的,且接入网络的网络质量稳定,在这种情况下,不必在通过连接每次传输文件分片后即更新连接的超时时间,一方面,对于发送端来说,可以节约计算资源的开销,另一方面,在不满足预定条件时能够及时更新超时时间,保证了文件传输效率。下面在针对文件传输过程中以及文件传输完成后的一些情况进行说明。在文件的传输过程中,当各连接向接收端并行传输文件的不同文件分片之后,在相应连接的更新的超时时间到达时,包括以下2种情况:1)若接收到接收端针对所传输文件分片的确认,则继续传输文件的待传输的文件分片。2)若未接收到接收端针对所传输文件分片的响应则重新传输相应的文件分片,当重新传输文件分片超过预定次数(如3次)且未收到接收端的响应时:2.1)若传输文件的所耗费的时间已经超出预定时间(如8分钟),此时说明接入网络可能出现问题,没有必要继续传输文件,则可以结束文件传输,并发出接入网络可能出现故障的提示,以便尽快恢复文件传输。2.2)若传输文件的所耗费的时间没有超出预定时间(如8分钟),则可以尝试更换ip地址并更新超时时间,基于更新的超时时间通过连接继续重传文件分片,通过更换ip地址的方式以及更新超时时间的方式,尽快恢复文件传输,保证文件传输效率。在文件传输完成之后,包括以下2种情况:1)若发送端与接收端建立的连接类型为短连接,则通过四次握手操作释放与接收端建立的连接,节省接收端维护大量并发连接的资源消耗。2)若发送端与接收端建立的连接类型为长连接,发送端通过向接收端发送心跳信息的方式保持各连接,直至预定的保持时间到达,且不再有文件分片传输时通过与接收端执行四次握手操作释放各连接。由于长连接具有在没有文件分片传输时仍然保持一定时间的特性,当发送端向接收端连续传输多个文件时,能够节省发送端与接收端之间的资源消耗和时间消耗下面,再对当发送端向接收端传输一个文件的文件分片完毕并期望继续传输新文件的文件分片的情况进行说明。步骤207,发送端需要向接收端传输新文件时,基于各连接传输历史文件的文件分片的历史往返传输时间,对各连接的历史超时时间进行补偿,得到各连接对应的更新的超时时间。由于发送端复用连接向接收端传输新文件的文件分片,因此,发送端更新超时时间时,可以结合各连接历史文件时所使用的超时时间,基于公式(8),对各连接的最后一次传输历史文件的文件分片的超时时间进行补偿,形成更新的超时时间,或者,对基于公式(10),对各连接的传输历史文件的部分或全部文件分片的超时时间的均值进行补偿,形成更新的超时时间,具体补偿方式参见可以根据前述的记载而理解,不再赘述。步骤208,发送端基于各连接对应的更新的超时时间,通过各连接向接收端并行传输新文件的不同文件分片。可以理解地,前述记载的针对在文件的传输过程中的处理、以及文件传输完成后的处理仍然适用新文件的文件分片的传输,不再赘述。针对前述设电子设备的功能结构进行说明,参见图6,图6是本发明实施例提供的电子设备的一个可选的功能结构示意图,包括:超时单元21,用于基于发送端的接入网络的类型,确定发送端与接收端之间所建立的至少两个连接的初始的超时时间;传输单元22,用于基于各连接的初始的超时时间,通过各连接向接收端并行传输文件的不同文件分片;补偿单元23,用于基于各连接的历史往返传输时间,对相应连接的历史超时时间进行补偿,得到各连接的更新的超时时间;传输单元22,还用于基于各连接的更新的超时时间,通过各连接向接收端并行传输文件的不同文件分片。在一个实施例中,超时单元21,还用于基于不同类型的接入网络与基础超时时间之间的对应关系,确定与发送端的接入网络的对应的基础超时时间;基于各连接的建立时间对相应连接的基础超时时间进行补偿,对应得到各连接的初始的超时时间。在一个实施例中,超时单元21,还用于对各连接对应的基础超时时间进行补偿之前,比较发送端向接收端并行传输的文件分片的容量、与发送端能够向接收端传输的数据报文的最大长度,基于比较结果调整相应连接的基础超时时间。例如,在超时单元21基于比较结果调整相应连接的基础超时时间时,采用这样的方式:以第一加权系数与相应连接基础超时时间的乘积为调整后的基础超时时间,其中第一加权系数为发送端向接收端并行传输的文件分片的容量、与发送端向接收端传输的数据报文的最大长度的比值。在一个实施例中,补偿单元23,还用于对各连接的历史往返传输时间进行调整,对各连接的历史的超时时间进行调整,基于各连接的调整后的历史往返传输时间,对相应连接的调整后的超时时间进行补偿,得到各连接的更新的超时时间。例如,在补偿单元23基于各连接的调整后的历史往返传输时间,对相应连接的历史超时时间进行补偿时,采用这样的方式:确定各连接最近一次传输文件分片时所使用的超时时间与第二加权系数的第二乘积、以及相应连接的最近一次传输文件分片时的往返传输时间与第三加权系数的第三乘积,基于第二乘积与第三乘积的加和,得到各连接的更新的超时时间。在一个实施例中,补偿单元23,还用于基于各连接的调整后的历史往返传输时间,对相应连接的历史超时时间进行补偿之后,基于通过各连接重新传输同一文件分片的次数对相应连接的历史超时时间再次进行补偿,得到各连接的更新的超时时间。例如,在补偿单元23基于通过各连接重新传输同一文件分片的次数对相应连接的历史超时时间进行补偿时采用这样的方式:将各连接重新传输同一文件分片的次数与动态调整网络基数乘积的加和、与相应连接的历史超时时间(即相应连接传输文件分片的历史超时时间与第二加权系数的第二乘积、相应连接的历史往返传输时间与第三加权系数的第三乘积进行加和)求和,得到确定各连接对应的更新的超时时间。在一个实施例中,传输单元22,还用于当通过连接重新传输文件分片的次数超过预定次数、且传输文件所耗费的时间未超出预定时间时,更新发送端的网际协议地址,并基于更新的超时时间,通过连接重新传输文件分片。在一个实施例中,补偿单元23,还用于当需要向接收端传输新文件时,基于各连接传输历史文件分片的历史往返传输时间,对各连接传输历史文件分片的历史超时时间进行补偿,得到各连接对应的更新的超时时间;传输单元22,还用于基于各连接对应的更新的超时时间,通过各连接向接收端并行传输新文件的不同文件分片。在一个实施例中,传输单元22,还用于当各连接的类型为长连接、且向接收端传输文件的文件分片完成后保持各连接,直至预定的保持时间到达且不再有文件分片传输时释放各连接。参见图7,图7是本发明实施例提供的客户端向服务器传输文件分片的一个可选的流程示意图,结合图7对客户端向服务器传输文件的一个业务场景进行说明。一、后台计算不同类型的网络(接入网络)的基础超时时间,下发给客户端。后台每天通过对客户端的海量连接数据进行统计和分析,对于使用相同类型网络的客户端,利用客户端传输分片的连接所使用的超时时间的中位数,作为相应类型网络对应的基础超时时间tbase,然后通过配置的方式下发给客户端,配置每天更新一次。如2g的基础超时时间为60s,3g和4g为40s,wifi网络的基础超时时间为20s。二、客户端计算新建连接首次传输的初始超时时间。客户端和服务器同时建立多条连接,客户端在通过新建的连接传输第一组分片之前,根据当前所接入网络的基础超时时间tbase、建立当次连接的时间(消耗时间)tconnect和并发传输分片的总大小size来计算新建连接首次传输的初始超时时间tinitial,如下:tinitial=tbase+(size/mss)*tconnect(6)其中,并发传输分片总大小size=连接数*每条连接允许同时传输的分片数*分片大小,以图1为例,假设连接数为2,每条连接允许同时传输的文件分片的数量为2个,分片大小为4kb,则size为2*2*4kib=16kib。mss为网络允许传输的最大报文长度,通常为1460b或为更小的值。然后,客户端根据初始超时时间tinitial发送第一组分片。为了实时的评估网络质量,得出后续分片传输最优的超时时间,客户端还要结合往次分片传输的超时时间tlasttime、往次分片传输的往返传输时间rttlasttime来计算当次分片传输的最优超时时间toptimal,如下所示:toptimal=α*rttlasttime+(1-α)*tlasttime+δ*retrytimes(17)其中,α是加权系数,0<α<1,一般取1/8。δ为动态调整网络时间基数,如5s,即分片每重试一次,增加5s的超时时间。α和δ可以根据实际情况进行调整到最优值,然后通过配置的方式下发给客户端。为了避免网络质量突然变差,导致当toptimal过小时频繁重新传输文件分片,当计算得出的toptimal限制范围超出预定范围[10s,120s]时,则取该预定范围的边界值作为toptimal。三、客户端根据最优超时时间toptimal发送后续文件分片,对新建连接上的第一组分片来说,最优超时时间toptimal等于tinitial。四、客户端根据文件分片最优超时时间决定是否重发分片。客户端根据最优超时时间toptimal发送文件分片,如果在最优超时时间toptimal达到后,文件分片的响应还没有返回客户端,客户端则重发该文件分片,并重新计算超时时间,直到达到最大的重试次数或者达到文件允许的最大发送时间。五、客户端发送心跳信息保持连接,后续发送新文件的分片时利用上一次文件发送的超时信息。在文件发送完成后,每分钟发一次心跳保活连接,连续3分钟没有新文件的文件分片传输发送则释放连接。如果3分钟内有新文件的文件分片发送,直接利用上一次文件最后一个文件分片的最优超时时间和rtt时间,基于公式(17)计算新文件第一组分片的初始的超时时间。参见图8,图8是本发明实施例提供的手机qq客户端(下面简称客户端)向服务器传输富媒体格式的文件分片的一个可选的流程示意图,结合图8对客户端如手机qq客户端向服务器传输文件的一个业务场景进行说明。客户端与服务器建立多个连接,按照固定的大小对待传输的文件进行分割形成文件分片,在通过连接初次传输文件分片时,基于上述公式(6)计算初始的超时时间传输文件分片tinitial,当再次传输文件分片时,根据连接的往返传输时间rtt、基于上述公式(17)计算当前文件分片传输时最优的超时时间toptimal。在文件分片的传输过程中,如果传输通过连接传输某一文件分片之后,在超时时间(初始传输为tinitial,后续传输为toptimal),在超时时间内没有接收到服务器接收到文件分片的响应,则重新传输文件分片,直至接收到服务器的响应并继续传输其余的文件分片。当重新文件分片超过预定次数(如3次)且未收到服务器的响应时,若传输文件的所耗费的时间已经超出预定时间(如8分钟),则可以结束文件传输,若传输文件的所耗费的时间没有超出预定时间(如8分钟),则可以尝试更换ip地址,由于更换ip地址相当于实现了新建连接的效果,因此,在更换ip地址后,基于公式(6)重新计算更换ip地址的连接的初始的超时时间,基于初始的超时时间通过连接继续尝试重新传输文件分片,当重新传输文件分片成功,且继续传输文件分片时,通过公式(17)计算最优的超时时间,并基于最优的超时时间通过连接继续传输文件分片。综上所述,本发明实施例实现以下有益效果:本发明实施例,解决了采用固定超时时长不能实时反映网络质量从而导致异常网络状态下,重传文件分片的的超时时间过长拉低传输效率的问题。根据不同的接入网络(2g、3g、4g和wifi)中不同的基础超时时间、每次分片传输的往返传输时间、往次传输超时时间、并发传输分片的总大小和分片的重试次数来动态计算传输的最优超时时间,能够快速感应网络质量的变化,让文件分片在各种网络状态下都能有合理的超时时间,从而降低发送延时,提升发送速度或者减少流量消耗。特别是在优质无线网络下或者当网络从异常状态恢复至正常状态的时候能够快速重传丢失分片,从而大幅降低发送延时,提高文件传输速度,进而给用户带来更好的文件传输体验。在不同网络条件下,发送端都能设置合理的分片超时时间,从而降低文件的发送延时,提升文件传输速度或者节约用户流量。经过数据统计,采用本发明实施例方案在2g网络下的文件的平均发送延时降低了15%左右,3g和4g网络下降低了约10%,wifi网络下降低了约5%,有效提升了文件传输效率。本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储装置、随机存取存储器(ram,randomaccessmemory)、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机、服务器、或者网络装置等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储装置、ram、rom、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域:
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12
相关知识
健身计划生成方法及相关设备与流程
健康检测方法、装置、终端设备及存储介质与流程
健康监测方法、装置及电子设备与流程
BMI检测方法、装置以及电子设备与流程
基于人脸图像的胖瘦识别方法及装置、电子设备与流程
一种健康监测系统及方法与流程
基于5G技术与传感器结合对健康数据采集处理传输的方法与流程
三大文件传输方法助力解读医疗健康与生命密码
电池健康状态检测方法、装置和电子设备与流程
电池健康状态测算方法以及相关设备与流程
网址: 文件传输方法及设备与流程 https://m.trfsz.com/newsview1440153.html