文件传输协议FTP
– 发送方把内部字符表示的数据转换成标准的8位NVT-ASCII
表示。接收方把数据从标准的格式转换成自己内部的表示 形式。 (2) EBCDIC文件类型。(广义二进制编码的十进制交换码)
– 在一个EBCDIC的文件里,每个字母或数字字符都被表示
为一个8位的二进制数。 (3) 图像文件类型(也称为二进制文件类型)。
主动方式建立连接过程
1
1174 控制连接 21 控制连接 数据连接 3566 20 数据连接
3
FTP客户端
FTP服务器
FTP客户端
FTP服务器
TCP三次握手建立控制通道的TCP连接
TCP三次握手建立数据通道的TCP连接
交互过程
2
1174 控制连接 21 控制连接 数据连接 3566
数据传输 关闭数据连接
2.FTP响应 响应都是ASCII码形式的3位数字,响应也是以 NVT ASCII码形式传送,要求在每行结尾都要返 回CR、LF对。
响应代码 110 120 125 150 200 202 211 212 213 214 215 220 221 225 226 227 230 250 257 331
压缩空白串,在二进制文件中用来压缩全0字节 – 压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。
块模式头字节的结构
描述子代码由在描述子字节中的位标记说明
3. FTP模型
① 协议模型——客户端/服务器模型 服务器端打开21号端口,等待客户端的服务请求。FTP服务 器允许多个客户端的并发访问。 ② 进程模型 服务器进程: a.主服务器进程:等待客户端连接,并为每个连接请求建立控 制从进程。 b.控制连接从进程:接收和处理来自客户的控制连接。 c.数据传输从进程:一个或多个,处理数据传输。 客户端进程: a.控制连接进程。 b.数据传输进程。
被动方式建立连接过程
1
1174 控制连接 21 控制连接 数据连接 3789 5365 TP服务器
FTP客户端
FTP服务器
TCP三次握手建立控制通道的TCP连接
客户端随机选择端口与服务器端选定的 端口建立数据通道的TCP连接
交互过程
2
1174 控制连接
PASV Enter Passive Mode (192,168,0,10,20,245)
FTP协议分析
FTP模型与测试分析环境
协议分析器
协议分析器的作用就是监视FTP客户与FTP服务器的协议交互过程, 记录并对协议包进行分析; 分析环境的具体参数是: FTP服务器:MAC地址为 IP地址为 控制连接端口号为 数据连接端口号为 FTP客户: MAC地址为 IP地址为 数据连接端口号为 控制连接端口号为 00-00-C0-22-A1-01 201.5.21.1 20 21 02-60-8C-01-24-28 201.5.21.25 15432 7180
解释说明 需要帐号名 未决的文件行为 关闭服务器 不能打开数据连接 结束连接 文件不可用 本地错误 磁盘空间不足 无效命令 错误参数 命令未执行 错误指令序列 无效命令参数 登录失败 需要存储文件说明 不可用的文件 不知道的页类型 超过了分配的存储空间 不允许的文件名
进入被动模式(发送 IP 地址、端口号) 登录成功 完成的文件行为 建立的路径名 用户名有效,需要密码
2.数据传输方式 主动方式:
主动方式也称为PORT方式,是FTP协议最初定 义的数据传输连接方式,主要特点是: – FTP客户端通过向FTP服务器发送PORT命令, 告诉服务器该客户端用于传输数据的临时端口 号。 – 当需要传送数据时,服务器通过TCP端口号20 与客户端的临时端口建立数据传输通道,完成 数据传输。 在建立数据连接的过程中,由服务器主动发起 连接,因此被称为主动方式。
4
20 数据连接
PORT (192,168,0,1,13,238)
FTP客户端
FTP服务器
FTP客户端
FTP服务器
客户端用PORT命令通告用于数据传输的临时 端口号(13*256+238=3566)
双方进行数据传输。传输完毕后发送数 据的一方主动关闭数据连接
被动方式:
被动方式也称为PASV方式,被动方式的主要特 点是: – FTP客户端通过向FTP服务器发送PASV命令, 告诉服务器进入被动方式。服务器选择临时端 口号并告知客户端。 – 当需要传送数据时,客户端主动与服务器的临 时端口号建立数据传输通道,完成数据传输。 在整个过程中,由于服务器总是被动接收客户 端的数据连接,因此被称为被动方式。
– 数据以连续的位传输,并打包成8位的传输字节。接收站点
必须以连续的位存储数据。 – 图像格式用于有效地传送和存储文件和二进制数据。 – 推荐所有的FTP在执行时支持此类型。
4)数据结构
文件结构(File structure)
– 没有内部的结构,被认为是数据字节的连续序列。 – 如果没有使用STRUcture指令,文件结构就被假定是缺省
2.FTP主要特征:
1)控制连接是建立在用户协议解释器和服务器协 议解释器之间用于交换命令与应答的通信链路。
2)数据连接是传输数据的全双工连接。传输数据 可以发生在服务器数据传输过程DTP和用户DTP 之间,也可以发生在两个服务器DTP之间。
3)文件类型
(1) ASCII码文件类型(默认选择)
3.1 FTP控制连接 控制连接是建立在用户协议解释器和服务器协议解释 器之间用于交换命令与应答的通信链路。
用户在两台主机间建立控制连接,然后进行数据连接, 客户与服务器为每个文件传输建立一个单独的数据连 接。如果用户请求另一个传输,那么客户与服务器将 建立一个新的数据连接。
尽管数据连接频繁地出现并消失,但是控制连接却在 整个会话中一直保持着。在完成FTP服务后由用户发 出中止控制连接命令。 控制连接用NVT ASCII传命令和响应。
解释说明 新文件指示器上的重启标记 在短时间内服务器准备就绪 数据连接已打开,在短时间内开始传输 文件 OK,数据连接将在短时间内打开 成功 不执行的命令 系统状态回复 目录状态回复 文件状态回复 帮助信息回复 系统类型回复 服务器准备就绪 服务关闭 数据连接打开 数据连接关闭
响应代码 332 350 421 425 426 450 451 452 500 501 502 503 504 530 532 550 551 552 553
描述 IP 地址和两字节的端口 ID 显示当前工作目录 从 FTP 服务器上退出登录 重新初始化 由特定偏移量重启文件传递 从服务器上复制文件到客户端 在服务器上删除指定目录 指定要重命名的路径 重命名为新路径 定义服务器相关的命令 安装文件系统 返回当前文件或目录的状态信息 储存(复制)文件到服务器上 储存文件到服务器上(不覆盖同名文件) 数据结构(F=file,R=record,P=page) 返回服务器使用的操作系统 文件类型(A=ASCII,E=EBCDIC,I=binary) 系统登录的用户名
4
21 控制连接 数据连接 3789 5365
数据传输 关闭数据连接
数据连接
FTP客户端
FTP服务器
FTP客户端
FTP服务器
服务器对PASV命令回应,其中包含用于数据 传输的临时端口号(20*256+245=5365)
进行数据传输,传输完毕后发送数据的 一方主动关闭数据连接
3.数据连接的关闭 关闭连接的条件: – 用户端发送ABORT命令 – 服务器通过EOF终止要求,表示结束发送数据 – 控制连接关闭 – 发生不可恢复错误
5) 传输方式
FTP的传输模式有流模式、块模式和压缩模式: (1) 流模式
数据以字节流的形式传送 – 在记录结构文件中EOR 和EOF 表示为双字节控制码。控制码的第 一个字节全是0。第二个字节的值为1 时表示EOR,为2 时表示 EOF,如果要同时表示EOR 和EOF,值为3。 – 文件结构,通过发送方关闭连接表示EOF,接收到的所有数据就 是文件内容。
1. TCP/IP文件传输协议(FTP)
FTP工作在TCP/IP模型的应用层,基于的传输协议是 TCP, FTP客户和服务器之间的连接是可靠的,面向 连接为数据的传输提供了可靠的保证。 1.FTP的目标: 1)主机之间共享计算机程序或数据; 2)本地主机间接地使用远程计算机 ; 3)向用户屏蔽不同主机中各种文件存储系统的细节; 4)可靠和高效的传输数据。
描述 异常中断数据连接程序 系统优先权说明 为服务器上的文件存储器分配字节 为服务器上同名文件填加数据 改变到服务器上的父目录 改变服务器上的工作目录 删除服务器上的指定文件 在指定命令上返回信息 列表显示文件或目录 传输模式 在服务器上建立指定目录 列出文件或子目录(不带属性) 获得服务器的确认,了解服务器是否活动 系统登录密码 等待数据连接的请求服务
命令 PORT<address> PWD QUIT REIN REST<offset> RETR<filename> RMD<directory> RNFR<oldpath> RNTO<newpath> SITE<params> SMNT<pathname> STAT<directory> STOR<filename> STOU<filename> STRU<type> SYST TYPE<datatype> USER<username>
(2) 块模式
文件以块形式传送,块带有自己的头部分。头字节包括16位计数域 和8位描述子代码。 – 计数域指出了数据块的总长度字节数。 – 描述符代码定义了:文件的最后块(EOF),记录的最后块 (EOR),重新开始标记或可疑数据。