一种文件传输方法技术

技术编号:38997931 阅读:7 留言:0更新日期:2023-10-07 10:29
本发明专利技术涉及文件传输相关领域,具体为一种文件传输方法,本发明专利技术通过使用数据块作为数据传输的基本单位,且每个数据块之间没有任何先后关系,可独立的乱序传输,这就允许使用多个互相独立的报文连接进行传输,其中报文连接架构设计,让接收端和发送端之间的所有信息都持续得到压缩,其压缩效果基本等同于将文件先压缩处理后再通过网络发送,由于压缩是在传输的同时进行的,且网络速度较慢时压缩速率通常都会快于网络传输速率,因此不会因为压缩造成额外时间消耗;本发明专利技术通过使用了基于TCP协议的WebSocket协议,因此本实例可以运行于任何装有浏览器的计算机上,无论是何种操作系统,也无论是桌面式电脑、平板电脑或者手机,无需额外安装软件。外安装软件。外安装软件。

【技术实现步骤摘要】
一种文件传输方法


[0001]本专利技术涉及文件传输相关领域,具体为一种文件传输方法。

技术介绍

[0002]现今已经存在大量的网络文件传输协议及相应的工具,以下仅列举具有代表性,工作于ISO/OSI模型5层及以上的几种协议及工具:
[0003]HTTP协议,HTTP协议是目前最为广泛的网络数据传输协议,运行于ISO/OSI模型的7层,在4层使用了TCP协议。它通常被用于传输Web数据,例如分发网站服务器上的网页相关文件。由于HTTP并不被设计为一个专门的文件传输协议,因此在大批量文件传输时,会遇到许多问题:
[0004]1、每传输一个文件,就要重新建立一个HTTP连接,也就意味着需要重建一个TCP连接。连接的断开建立在传输少量文件时可以忽略,但是当文件数量非常多时,这种开销就会变得客观。
[0005]2、HTTP对数据压缩的支持有限。HTTP压缩目前主流有GZIP、BROTLI等压缩算法,但是这些压缩方法通常只能用于小文件的压缩。因为启用压缩将会导致断点续传、传输进度等功能无法实现。
[0006]3、HTTP的多线程传输、断点续传等功能只能用于从服务器向客户端下载文件时使用。当需要从客户端上传文件至服务器时,只能使用单线程的POST multipart/form

data方法进行传输,效率极低,且当网络状况较差时,频繁的连接断开让大批量的文件上传几乎无法完成。
[0007]FTP协议,FTP同样是基于TCP协议的一个7层协议。不同于HTTP主要用于文件下载,FTP支持多连接的双向文件传输,因此对于大批量文件传输来说,比HTTP性能更好。但由于其较为古老,其设计存在诸多问题:
[0008]1、FTP不支持任何类型的数据压缩。
[0009]2、在现代网络环境下,服务器和客户端通常都位于防火墙后,而FTP仅有在使用被动模式时才可以穿透防火墙进行访问。但被动模式要求服务器除了暴露接入端口(通常是TCP 21)以外,还要暴露多个供被动模式使用的高位端口,这增加了服务器端网络配置的复杂度。
[0010]3、被动模式下,服务器必须知道自己的公网IP,并发送给客户端。这对于现在CDN网络来说非常不友好的,因为使用了CDN的网络中,服务器通常不知道用户是从哪个公网IP接入的服务器,只能随便提供一个。这样的“随便提供”就可能会抹杀CDN的意义。
[0011]4、FTP无法通过Web进行访问。
[0012]SCP/SFTP协议,SCP和SFTP协议均是类Unix系统中常用的文件传输协议,相比FTP其设计更为现代,克服了FTP的多个问题,如支持压缩和加密(均由SSH实现),通常作为FTP的替代品使用。但他们有以下问题:
[0013]1、SCP和SFTP均需要SSH作为底层协议,无法通过Web使用。
[0014]2、SCP不支持断点续传,不适合在较差网络环境下传输大文件。
[0015]3、SFTP虽然支持断点续传,但无法在支持断点续传的同时支持多连接传输,在较差网络环境下同样会效率很低。
[0016]RSYNC协议,RSYNC是类Unix系统中常用的文件批量同步协议,其支持文件增量传输。但其具有以下问题:
[0017]1、其自身不支持数据加密和数据压缩,需要依赖SSH实现。
[0018]2、无法通过Web使用。
[0019]3、不支持多连接传输。
[0020]FASP协议,FASP协议是由美国IBM所研发的文件传输协议,主要用于其商业软件Aspera。相比以上几种文件传输协议,FASP支持数据压缩,且基于UDP协议,其专门的算法能够最大程度的利用带宽,提高传输效率,而不需要使用TCP多连接来提高传输效率。但其有以下问题:
[0021]1、由于其使用UDP协议,无法通过Web使用。
[0022]2、由于FASP协议的“尽力传输(Best

Effor Delivery)”特性,导致其在传输时会近乎完全占满网络带宽,这会导致局域网内网络设备负载极度增加,局域网内其他用户无法正常访问网络。
[0023]镭速,镭速是由深圳市云语科技有限公司研发的文件传输软件,其使用了自研的传输协议。总体上其类似于FASP协议,均使用UDP传输,支持数据压缩,传输速率非常高。但也因其类似FASP的设计思路,导致其同样具有FASP所具有的问题,即:
[0024]1、无法通过Web使用。
[0025]2、传输时局域网内其他用户无法正常使用网络。
[0026]通过上述描述可以看出现有的文件传输方法不能在不稳定的广域TCP/IP网络环境下,使用Web浏览器进行大批量的文件传输,所以针对这个问题,设计了一种文件传输方法。

技术实现思路

[0027]本专利技术的目的在于提供一种文件传输方法,以解决上述
技术介绍
中提出的问题。
[0028]为实现上述目的,本专利技术提供如下技术方案:一种文件传输方法,包括以下步骤:
[0029]步骤S1、在接收端和发送端之间建立双向收发的一个或多个压缩报文连接;
[0030]步骤S2、接收端向发送端发送文件名,随后发送端回复接收端该文件的体积以及修改日期;
[0031]步骤S3、接收端获得文件体积和修改日期后,接收端检查本地是否有该文件的缓存记录;如果有缓存记录,且缓存记录中的文件体积与修改日期与发送端提供的信息一致,则依照缓存记录中的信息,向发送端仅请求尚未传输的数据块的编号,即实现断点续传;如果找不到缓存记录,或者缓存记录中记录的文件体积或修改日期与发送端提供的信息不一致,则请求全部数据块,并在缓存记录中记录该文件的体积及修改日期;
[0032]步骤S4、发送端接收到接收端的请求后,按照接收端提供的块体积将文件划分为多个数据块;
[0033]步骤S5、发送端将接收端所请求的数据块分布到所有可用的报文连接发送给接收
端;
[0034]步骤S6、接收端在接收到发送端发送的报文后,根据报文中的编号,接收端计算出接收的数据块对应本地文件的偏移值,并将该数据块写入至文件对应的位置,之后,接收端在缓存记录中记录该数据块已经被传输;
[0035]步骤S7、如果接收端和发送端之间的网络连接中断,则在连接重新建立后,接收端和发送端将重复以上步骤,以实现断点续传;
[0036]步骤S8、重复步骤S1

S7,直至接收端已经收到全部数据块,则传输完成。
[0037]优选的,所述步骤S1中压缩报文连接是建立在WebSocket连接或WebRTC的Data Channel之上。
[0038]优选的,所述步骤S2中缓存记录在接收端每次接收到一个数据块时,将该数据块的编号进行记录,且缓存记录也用于记录了源文件的修改日期和体积,以防在传输中断期间文件被修改而导致得到的文件畸形。当每次传输完成后,缓存记录便可以删除。
[0039]优选的,所述步骤S2中数据块和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件传输方法,其特征在于,包括以下步骤:步骤S1、在接收端和发送端之间建立双向收发的一个或多个压缩报文连接;步骤S2、接收端向发送端发送文件名,随后发送端回复接收端该文件的体积以及修改日期;步骤S3、接收端获得文件体积和修改日期后,接收端检查本地是否有该文件的缓存记录;如果有缓存记录,且缓存记录中的文件体积与修改日期与发送端提供的信息一致,则依照缓存记录中的信息,向发送端仅请求尚未传输的数据块的编号,即实现断点续传;如果找不到缓存记录,或者缓存记录中记录的文件体积或修改日期与发送端提供的信息不一致,则请求全部数据块,并在缓存记录中记录该文件的体积及修改日期;步骤S4、发送端接收到接收端的请求后,按照接收端提供的块体积将文件划分为多个数据块;步骤S5、发送端将接收端所请求的数据块分布到所有可用的报文连接发送给接收端;步骤S6、接收端在接收到发送端发送的报文后,根据报文中的编号,接收端计算出接收的数据块对应本地文件的偏移值,并将该数据块写入至文件对应的位置,之后,接收端在缓存记录中记录该数据块已经被传输;步骤S7、如果接收端和发送端之间的网络连接中断,则在连接重新建立后,接收端和发送端将重复以上...

【专利技术属性】
技术研发人员:李璟薛兆龙王冠群王明军吴松田坎程凯旺刘航宇鲁漫漫
申请(专利权)人:南京界立方信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1