热搜词
发表于 2016-9-7 18:53:53 | 显示全部楼层 |阅读模式
问题:
当FTP下载或上传文件超过一定文件个数的时候,由于零星文件过多就会造成FTP上传或下载时,每个文件传输时开始很快然后逐渐变慢,到传输下一个文件时,仍是开始很快然后逐渐变慢,时间长些就会FTP就行中断,中断过几次后,最终FTP客户端会一直连接不上服务器,只有重新断网,再次能上网上时才恢复正常。

原因分析:
细心的人不难看出,FTP上传中断应该是跟待上传的文件个数有关了。
专业解释如下:
FTP是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登录进程。

FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。

01.jpg


说的这么专业,很多非计算机专业的童鞋可能看能云里雾里,那么我们通俗的解释下为什么会出现FTP上传的文件数比较多的时候就会很慢而且经常中断。

我们把服务器比作一座城市,我们上传的文件就是想要去到城市里的人,FTP协议是想要进城必须遵守的规矩,而传输数据的端口就是城门,每一个文件看做一个人。

当我们使用FTP客户端向服务器上传文件数表较多的数据的时候,可以看做是一群人分别驾驶着自己的小轿车通过端口这座门户进入服务器这座城市。

02.jpg

但是,因为进城就必须遵守一定的规则(FTP协议),也就是必须先去命令端口这道门申报一下我要进城然后从数据端口这道门进去,且每次开门只能进一辆车,例如上图的5辆车进城就必须排队等着城门(数据端口)开启关闭5次,而每一次开启关闭城门用时特别久,最重要的是在命令端口这道门申报了之后并不是一直有效,而是在一定时间之后就会关闭,数据端口一看命令端口关闭了,就会跟着关闭,而这时候因为开门关门占用了大量的时间,等待进城的这些车并没有全部进去,这时候就需要重新去命令端口申报,这就是为什么上传着数据中突然中断了,因为命令端口的开放时间到了,必须重新申报了。

那么将大量数据压缩成一个压缩包上传呢,这时候就可以看做是一群人坐着一辆大巴车进城。

03.jpg

这时候,因为只有一辆车进城,所以在命令端口开放的时间内,这辆大巴车就已经进去城市了,也就不会出现中断了。
分析到了这里,我们应该很明白了,如果想解决FTP上传中断的问题,那么最好的解决办法就是将数据打包压缩之后再上传,这样就不会出现上传中断了,切记,千万不要一次上传太多的文件,一定要打包压缩上传。


处理方法:

将FTP文件打包为压缩包,这样就能减少FTP上传时发出的传输命令,传输速度和时间将缩短,就能避免出现FTP上传中断的问题
全部评论1
灰儿 发表于 2016-9-7 19:21:54 | 显示全部楼层
如果是长时间下载或操作多个文件,导致超时断开连接。可以在下载操作完成之后,给服务器返回一个命令,激活21端口,重置超时时间。
回复

使用道具 举报

回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-9-20 16:37 , Processed in 0.162848 second(s), 26 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team