作为网站管理者,日常要进行大量的FTP上传工作,有时候上传的文件还挺大的,但总遇到FTP上传时突然断开连接的问题,这让很多网站管理者苦恼不已,如果一份几百兆的视频文件重复中断几十次,那根本称不上是自动传输,因此,解决FTP上传文件中断问题,才能更好地使用FTP。
FTP使用两个TCP连接来通信,一条控制连接(controlconnection)用来提交命令和接受回复;一条数据连接(dataconnection)来处理实际的文件传输。
在文件传输过程中,控制连接是很容易进入空闲状态的,TCP标准也没有规定一个连接的最大空闲时间。但是路由器和防火墙经常会把空闲的连接给关闭掉,并且不通知双方,就造成了传输100%但最后还是超时的现象。后面的评论就是解决问题的关键了。
TCP传输过程中有最大的包上限MTU(MaximumTransmissionUnit,不超过1500),超过这个大小的传输就要拆成多个包(packet)。所以比较“小”的文件不用拆包,一次就传输完了;“大”的文件需要拆包,分多次发送,就出现超时的问题。
对于不同的ISP提供商来说,不同的MTU存在最优值。于是在路由器管理页面找到MTU设置,发现原来是1492,随手用网上找的值1472填进去,重启路由器。