1、 FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 1 / 10 应用分析 FTP文件 传输 应用分析 一、 FTP简介 1. 文件传输 文件传输 服务 是网络互联环境所必需的一种服务,当前网络中文件传输最主要的传输方式是使用 FTP 协议 。 FTP,全称 File Transfer Protocol,中文名为文件传输协议,它可以在网络中传输 电子 文档 、 图片、 声音、 影视、 程序 及程序 等 多种 类型的文件。 如果用户 需要 将 文件从自己的计算机上发送到另一台计算机上, 可 使用 F
2、TP 上 传 ( upload)或( put) 操作 , 而更多种的情况是用户使用 FTP 下载( download)或获取( get) 操作从 FTP 服务器上下载 文件 。 2. FTP工作原理 一个完整的 FTP 文件传输 需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。 1) 控制连接 客户端希望与 FTP 服务器建立上传下载的数据传输时, 它 首先 向服务器的 TCP 21 端口发起一个建立连接的请求, FTP 服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为 FTP 控制连接。 2) 数据连接 FTP 控制连接建立
3、之后,即可开始传输文件 ,传输文件的连接 称为 FTP 数据连接。 FTP 数据连接 就是 FTP 传输数据的过程,它有两种传输模式:主动传输模式( PORT)和被动传输模式( PASSIVE,简称 PASV) 。 主动传输模式下, FTP 服务器使用 20 端口与客户端 的暂时端口进行连接,并传输数据,客户端只是处于接收状态。被动传输模式下, FTP 服务器 打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。 FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120
4、911 2 / 10 二、 具体 分析 FTP传输 1. 分析 FTP传输的具体流程 对 FTP 传输 进行 分析 ,首先 需要知道的是这个 FTP 传输 使用的是 主动模式 还是 被动 模式 , 因为这两种 模式的实现方法不同 ,两种模式 下的分析存在较大的差异 ,下面 分别对两种模式下的 FTP 传输进 行分析。 1) 主动传输模式 我们使用科来网络分析系统 5.0 捕获并分析一个主动模式下的 FTP 数据传输。客户端主机名为“ wangym”, FTP服务器地址是 192.168.2.100,客户端上使用的 FTP客户端软件为 SecureFX 2.1.4,传输模式采用主动( PORT
5、)模式。 在客户端主机上打开科来网络分析系统 5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。在 FTP 客户端软件 SecureFX 2.1.4 上,建立一个 FTP 会话连接到 FTP 服务器 192.168.2.100,并上传一个名为 t1.cap 的文 件到服务器,从服务器上下载一个名为Readme.txt 的文件到客户端。完成操作后停止科来网络分析系统 5.0 的捕获。 FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 3 / 10 图 1 所示为科来网络分析系统 5.0
6、对上述操作进行捕获后的连接视图。 ( 图 1 FTP 主动传输模式下的连接及数据流重组信息) 从 图 1 中可知,上述的操作在客户端和服务器之间建立了七个连接,其中第一个为 FTP 控制连接,其余六个为 FTP 数据连接。详细查看 FTP 控制连接对应的数据流重组信息,我们可以知道 上述操作的原始 步骤(即 FTP 主动 传输 模式下 的 步骤)如下: A. 客户端 (这里是 wangym) 使用暂时端口作 为源端口 (这里是 1149)向 FTP 服务器(这里是 192.168.2.100)的 21 端口发起 TCP SYN 的数据包,请求建立 TCP 连接 ;FTP 服务器发送 SYN/A
7、CK(同步确认)包给客户端,源端口为 21,目 标 端口为客户端上使用的暂时端口 1149;客户端 向 FTP 服务器 发送一个 ACK(确认)包 , TCP 三次握手成功建立 ; B. FTP 服务器需要对服务器的身份进行验证,要求输入用户名和密码,此处用户名和密码都是 ftpuser; C. 客户端使用 SYST命令获取 FTP服务器的操作系统,此处是 Windows_NT version 5.0,即 Windows 2000; D. 客户端使用 PWD 命令获取当前目录,当前为“ /”,即当前处于 FTP 服务器的根目录; E. 客户端使用 PORT 命令向 FTP 服务器发送一个上传或
8、下载 文件的请求, 这个 命令包含 自己的地址(这里是 192.168.2.44)和 一个暂时端口 (这里是是 4126,目标端口的计算方法是, 4*256+126=1150) , FTP 服务器 在收到请求后,以 20 作为源端口,1150 作为目标端口与客户端建立 TCP 连接 ; F. 客户端使用 LIST 命令获取 FTP 服务器当前目录下的文件列表; G. 客户端再次使用 PWD 或 CWD 命令 获取当前目录,当前为“ /”; FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 4 /
9、10 H. 客户端再次使用 PORT 命令 向 FTP 服务器发起上传或下载文件的请求,并同时给出暂时端口以用于建立 TCP 连接 ; I. 客户端使用 TYPE 命令设置文件的传输类型,这里的传输类型为 I。一般情况下传输类型有两种,默认为 ASCII,简称 A,另一种是二进制文件,简称 I; J. 客户端使用 STOR 命令上传文件到 FTP 服务器,这里上传的文件是 t1.cap; K. FTP 服务器使用 226 应答 码告诉客户端 t1.cap 文件的传输成功完成; L. 客户端使用 PWD 或 CWD 命令再次获取当 FTP 服务器的当前目录,即刷新当前目录; M. 客户端使用 T
10、YPE 命令将 FTP 服务器的传输方式重新设置为默认的 ASCII 方式; N. 客户端再次使用 PORT 命令 向 FTP 服务器发起上传或下载文件的请求,并同时给出暂时端口以用于建立 TCP 连接; O. 客户端使用 RETR 命令从 FTP 服务器下载文件到本地,这里下载的文件是Readme.txt; P. FTP 服务器使用 226 应答码 告诉客户端 Readme.txt 的传输成功完成; Q. 数据传输完成以后, 客户端向 FTP 服务器发送 一个 TCP FIN 的 数据 包通知 FTP 服务器结束连接。 这个 FIN 数据包 需要 FTP 服务器以 TCP ACK 数据包 确
11、认, 同 时 FTP 服务器 发送 一个 TCP FIN 的 数据 包给客户端 ,这个 FIN 数据包同样需要客户端以 TCP ACK 数据包 确认 ,双方成功确认后,关闭 FTP 控制连接。 图 1 中共有七个连接,其中第一个是 FTP 控制连接,客户端使用暂时端口与 FTP 服务器的21 端口通讯。其余六个是 FTP 数据连接,客户端使用暂时端口与 FTP 服务器的 20 端口通讯,其作用分别是:第二个 LIST 命令列目录、第三个 PORT 命令请求传输文件、第四个 STOR 上传文件 t1.cap、第五个 PORT 命令请求传输文件、第六个 RETR 命令下载文件 Readme.txt
12、、第七 个关闭连接。 (注意: 客户端在 FTP 控制连接上发送 的不同 命令, 将 打开和关闭另外的 FTP 数据连接 。上传下载的每一个文件,都分别打开一个 FTP 数据连接来完成,当所有数据连接完成并关闭后,控制连接才会按照上面的方法进行关闭。) FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 5 / 10 图 2 所示的是在进行主动模式的 FTP 数据传输后,科来网络分析系统 5.0 的日志视图记录下的 FTP 传输日志信息。从中可以知道,当前 FTP 数据传输操作的客户端、 FTP 服
13、务器端、使用的账号、操作的类型(上传或下载)、传输的文件及路径、传输模式(主动或被动)等信息。要查看日志的所有信息,请在 图 2 所示 视图的列头(序号、客户端 IP )中,单击鼠标右键,在弹出的快捷菜单中,单击“ More ”,在弹出的“列表选项”对话框中,选中所有的项,单击确定保存即可。 ( 图 2 FTP 主动传输模式下的日志信息) 2) 被动传输模式 我们使用科来网络分析系统 5.0 捕获并分析一个被动模式下的 FTP 数据传输。客户端主机名为“ wangym”, FTP服务器地址是 192.168.2.100,客户端上使用的 FTP客户端软件为 SecureFX 2.1.4,传输模式
14、采用被动( PASSIVE)模式。 在客户端主机上打开科来网络分析系统 5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。在 FTP 客户端软件 SecureFX 2.1.4 上,建立一个 FTP 会话连接到 FTP 服务器 192.168.2.100,并上传一个名为 t1.cap 的文件到服务器,从服务器上下载一个名为Readme.txt 的文件到客户端。完成操作后停止科来网络分析系统 5.0 的捕获。 FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 6 / 10 图 3 所示为科
15、来网络分析系统 5.0 对上述操作进行捕获后的连接视图 。 (图 3 FTP 被动传输模式下的连接及数据流重组信息) 从图 3 中可知,上述的操作在客户端和服务器之间建立了七个连接,其中第一个为 FTP 控制连接,其余六个为 TCP 连接。详细查看 FTP 控制连接对应的数据流重组信息,我们可以知道,上述操作的原始操作步骤(即 FTP 被动模式下的操作步骤)如下: A. 客户端 (这里是 wangym) 使用暂时端口作为源端口 (这里是 1204)向 FTP 服务器(这里是 192.168.2.100)的 21 端口发起 TCP SYN 的数据包,请求建立 TCP 连接 ;FTP 服务器发送
16、SYN ACK(同步确认)包给客户端,源端口为 21,目 标 端口为客户端上使用的暂时端口 1204;客 户端 向 FTP 服务器 发送一个 ACK(确认)包 , TCP 三次握手成功建立 ; B. FTP 服务器需要对服务器的身份进行验证,要求输入用户名和密码,此处用户名和密码都是 ftpuser; C. 客户端使用 SYST命令获取 FTP服务器的操作系统,此处是 Windows_NT version 5.0,即 Windows 2000; D. 客户端使用 PWD 命令获取当前目录,当前为“ /”,即当前处于 FTP 服务器的根目录; E. 客户端使用 PASV 命令告诉 FTP 服务器
17、,当前客户端使用的是被动传输模式; F. FTP 服务器对客户端的 PASV 命令进行响应,响应内容包 括 FTP 服务器的地址和一个暂时端口,这里是 192.168.2.100,437,用 437 计算出目标端口是 4*256+37=1061; G. 客户端使用 LIST 命令获取 FTP 服务器当前目录下的文件列表; H. 客户端再次使用 PWD 或 CWD 命令获取当 FTP 服务器的当前目录,即刷新当前目录; FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 7 / 10 I. 客户端再次
18、使用 PASV 命令 向 FTP 服务器发起上传或下载文件的请求, FTP 服务器接受请求,并返回地址和暂时端口以用于建立连接; J. 客户端使用 TYPE 命令设置文件的传输类型,这里的传输类型为 I; K. 客户端使用 STOR 命令上传文件到 FTP 服务器,这 里上传的文件是 t1.cap; L. FTP 服务器使用 226 应答码 告诉客户端 t1.cap 文件的传输成功完成; M. 客户端使用 PWD 或 CWD 命令再次获取当 FTP 服务器的当前目录,即刷新当前目录; N. 客户端使用 TYPE 命令将 FTP 服务器的传输方式重新设置为默认的 ASCII 方式; O. 客户端
19、再次使用 PASV 命令 向 FTP 服务器发起上传或下载文件的请求, FTP 服务器接受请求,并返回地址和暂时端口以用于建立连接,方法与第 9 步相同; P. 客户端使用 RETR 命令从 FTP 服务器下载文件到本地,这里下载的文件是Readme.txt; Q. FTP 服务器使 用 226 应答 码告诉客户端 Readme.txt 文件的传输成功完成; R. 数据传输完成以后, 客户端向 FTP 服务器发送 一个 TCP FIN 的 数据 包通知 FTP 服务器结束连接。 这个 FIN 数据包 需要 FTP 服务器以 TCP ACK 数据包 确认, 同时 FTP 服务器 发送 一个 TC
20、P FIN 的 数据 包给客户端 ,这个 FIN 数据包同样需要客户端以 TCP ACK 数据包 确认 ,双方成功确认后,关闭 FTP 控制连接。 图 3 中共有七个连接,其中第一个是 FTP 控制连接,客户端使用暂时端口与 FTP 服务器的21 端口通讯。其余六个是 FTP 数据连接,客户端使用暂时端口 与 FTP 服务器暂时端口通讯,其作用分别是:第二个 LIST 命令列目录、第三个 PASV 命令请求传输文件、第四个 STOR 上传文件 t1.cap、第五个 PASV 命令请求传输文件、第六个 RETR 命令下载文件 Readme.txt、第七个关闭连接。 (注意: 客户端在 FTP 控
21、制连接上发送 的不同 命令, 将 打开和关闭另外的 FTP 数据连接 。上传下载的每一个文件,都分别打开一个 FTP 数据连接来完成,当所有数据连接完成并关闭后,控制连接才会按照上面的方法进行关闭。) 注意 图 1 和图 3 的比较, 图 1 为主动传输模式,图 3 为被动传输模式, 图 1 中连 接视图列表里的第 2 到第 7 个连接的协议显示的是 FTP Data,而图 3 中,显示的是 TCP,原因是 FTP在使用被动模式进行数据传输时,其数据连接的端口是不固定的, FTP 服务器并不使用主动模式下 的 20 端口进行通讯,而在连接的两端都使用随机的暂时端口 ,因为暂时端口为随机的,所以
22、就显示为 TCP 连接。 FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 8 / 10 图 4 所示的是在进行被动模式的 FTP 数据传输后,科来网络分析系统 5.0 的日志视图记录下的 FTP 传输日志信息。从中可以知道,当前 FTP 数据传输操作的客户端、 FTP 服务器端、使用的账号、操作的类型(上传或下载)、传输的文件及 路径、传输模式(主动或被动)等信息。要查看日志的所有信息,请在 图 2 所示视图的列头(序号、客户端 IP )中,单击鼠标右键,在弹出的快捷菜单中,单击“ More ”
23、,在弹出的“列表选项”对话框中,选中所有的项,单击确定保存即可。 ( 图 4 FTP 被动传输模式下的日志信息) 2. FTP命令 从上面的分析及截图中我们可以知道, FTP 传输过程中所有的操作都是通过在客户端发送命令完成的, FTP 常见的命令如 表 1 所示。 命令 描述 USER 为用户验证提供用户名 PASS 为用户验证提供密码 PWD 输出 FTP 服务器 的当前工作目录 TYPE 设置传输的文件类型 SYST 获取 FTP 服务器的操作系统 LIST 获取 FTP 服务器上当前目录的文件列表 PORT 指定使用主动模式进行数据传输 PASV 指定使用被动模式进行数据传输 FTP
24、网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 9 / 10 HELP 从 FTP 服务器上获取帮助文件 STOR 从客户端上传指定的文件到 FTP 服务器 RETR 从 FTP 服务器下载指定的文件到客户端 DELE 删除 FTP 服务器上指定的文件 MKD 在 FTP 服务器上新建目录 RMD 删除 FTP 服务器上的指定目录 QUIT 退出关闭 FTP 连接 ( 表 1 FTP 常见命令) 3. FTP应答 从上面的分析及截图中我们可以知道, 对客户端发出的所有命令, FTP 服务器都会对其做出应
25、答, FTP 常见的应答代码如 表 2 所示。 应答代码 描述 125 打开数据连接,且此连接可用于数据传输 200 命令被成功执行 211 FTP 服务器忙 212 FTP 服务器返回当前的目录状态给客户端 213 FTP 服务器返回当前的文件状态给客户端 214 FTP 服务器返回用户请求的帮助信息 226 FTP 服务器返回文件传输完成的消息给客户端 331 FTP 服务器返回用户名 正确,需要密码的消息给客户端 425 FTP 服务器返回不能打开数据连接的消息给客户端 452 FTP 服务器返回写文件错的消息给客户端,可能是空间不足 500 FTP 服务器返回客户端命令不能识别的消息给
26、客户端 501 FTP 服务器返回客户端命令的参数不能识别的消息给客户端 502 FTP 服务器返回未实现的模式类型的消息给客户端 ( 表 2 FTP 常见应答代码) 三、 总结 以上简单介绍了 FTP 协议 ,并使用科来网络分析分析系统 5.0 跟踪分析了 主动模式和被动模式下的 FTP 数据传输 。据此,用户在遇到 FTP 传输的故 障时,即可结合上面的分析,使用网络检测分析软件(这里 是科来网络分析系统 5.0)对 FTP 数据传输进行跟踪分析,以完成对此类故障的快速 排查。 FTP 网页访问应用分析 成都科来软件有限公司 电话: 028-85120922 Email: http:/ 传真: 028-85120911 10 / 10 成都科来软件有限公司 2005 年 10 月