一、这里假设大家对ftp协议有一定的了解,仅仅讲述ftp断点续传原理,如果对ftp协议不懂,可以在网上查阅,有大把资料
二,最重要的一点,断点续传需要服务器的支持,这个是必要条件。
传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。
支持断点的FTP SERVER:Serv-U FTP,还有一系列的新出现的FTP SERVER;
不支持断点的:IIS4以前版本所带的都不行,IIS5 有,不家可以测试一下,登录进FTP SERVER,然后输入REST 1000命令,看服务器是否认识,认识就是支持断点。
三、ftp断点续传命令流程
1)客户端上传流程
TYPE I
200 Type set to I.
PASV
227 Entering Passive Mode (204,48,18,69,98,250)
SIZE 100000004.avi 74
213 741966 66
REST 741966 67
350 Restarting at 741,966. Send STORE or RETRIEVE. 106
STOR 100000004.avi 74
150 Opening BINARY mode data connection for 100000004.avi. 114
2)服务器端下载流程
1、向服务器发送“REST + 本地文件长度”命令,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载哪个文件;
要实现FTP的断点续传,FTP服务器必须支持REST指令,这条指令在FTP协议文本RFC959中就已经定义了,不过它不是FTP服务器必须支持的指令。一般,你可以在下载 前使用REST 100命令进行实验,如果服务器正常执行了这条命令,说明该服务器支持FTP断点续传。REST后面跟的数表示下载文件的起始位置,而REST 0表示从文件 最开始处下载。REST命令本身并不执行下载功能,你仍需要使用RETR命令执行下载工作。
2、向服务器发送“RETR + 文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。
3、客户端定位本地文件指针(文件末尾);
4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件;
四、附加上客户端断点续传文件时,完整的网络抓包工具数据,和FTP服务器ServU及其破解补丁
二,最重要的一点,断点续传需要服务器的支持,这个是必要条件。
传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。
支持断点的FTP SERVER:Serv-U FTP,还有一系列的新出现的FTP SERVER;
不支持断点的:IIS4以前版本所带的都不行,IIS5 有,不家可以测试一下,登录进FTP SERVER,然后输入REST 1000命令,看服务器是否认识,认识就是支持断点。
三、ftp断点续传命令流程
1)客户端上传流程
TYPE I
200 Type set to I.
PASV
227 Entering Passive Mode (204,48,18,69,98,250)
SIZE 100000004.avi 74
213 741966 66
REST 741966 67
350 Restarting at 741,966. Send STORE or RETRIEVE. 106
STOR 100000004.avi 74
150 Opening BINARY mode data connection for 100000004.avi. 114
2)服务器端下载流程
1、向服务器发送“REST + 本地文件长度”命令,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载哪个文件;
要实现FTP的断点续传,FTP服务器必须支持REST指令,这条指令在FTP协议文本RFC959中就已经定义了,不过它不是FTP服务器必须支持的指令。一般,你可以在下载 前使用REST 100命令进行实验,如果服务器正常执行了这条命令,说明该服务器支持FTP断点续传。REST后面跟的数表示下载文件的起始位置,而REST 0表示从文件 最开始处下载。REST命令本身并不执行下载功能,你仍需要使用RETR命令执行下载工作。
2、向服务器发送“RETR + 文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。
3、客户端定位本地文件指针(文件末尾);
4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件;
四、附加上客户端断点续传文件时,完整的网络抓包工具数据,和FTP服务器ServU及其破解补丁
网络抓包数据:http://download.csdn.net/detail/yuanbinquan/9376522
FTP服务器ServU及其破解补丁:http://download.csdn.net/detail/yuanbinquan/9376546
ftp断点续传网络抓包数据截图: