论文部分内容阅读
FTP是一种广泛使用的网络服务,它是数据传输的重要通信方式,大多数的文件上传和下载任务都是靠FTP完成的,它实现了可靠且有效传输数据的功能;同时,只要进行文件传输的操作系统都支持FTP协议,就可以方便地在不同类型的计算机之间进行文件传输,使文件传输操作不会因为各类主机文件存储系统的差异而受影响。因此,FTP一直是Internet上广泛使用的服务。FTP服务器为客户提供文件上传和下载的双向服务,而当前的应用及研究更多地侧重在FTP下载技术上,对于上传技术的研究则涉及甚少,尤其是对单个大文件有效上传技术的研究则更少。然而,现在网络实际使用中,经常需要传输以GB为单位的大文件,如多媒体文件共享等应用。大文件上传效率的高低对于多媒体文件的网络共享等应用显得越来越重要。但是,由于这些文件容量巨大,使用传统单线程FTP上传的方式耗时长,上传过程最容易发生意外中断,导致文件重新上传的操作频繁,极大影响了数据共享的效率。再如:利用某超算中心进行高性能相关的计算时,客户端的用户需通过VPN网络上传大量的计算数据,经过超级计算机计算后取得结果,如果使用传统FTP上传,效率会很低,而采用多线程断点上传技术可以发挥显著的优势。由此可见,大文件上传技术的研究对于促进网络应用发展有着重大的意义。传统FTP采用单线程上传文件,在网络带宽有限的条件下,对带宽的抢占优势小,导致上传速度慢;同时,一旦发生意外中断,就需要重新上传文件的全部数据,极大地影响了数据上传的效率。本文提出了根据实际情况对文件合理分块、智能为每个线程分配传输任务等一系列技术,通过多线程并行作业和断点恢复上传的方法,可以有效解决传统FTP上传操作中存在的问题。同时,由于Linux操作系统具有开放性、高效性、良好的可移植性和丰富的网络功能等诸多优势,因此,在设计实现阶段选择了基于Linux操作系统,使用C++编程语言开发一套FTP客户端软件。经过大量对比试验和测试数据的全面分析,充分证明本技术方法的可行性与有效性,证明本论文提出的技术方案可以大幅度提高大文件上传的效率,尤其对单个大文件的上传效率的提升效果明显。