[TOC]
# 掌握FTP的工作原理
# 掌握FTP常用命令的使用方法及用途
FTP (File Transfer Protocol)服务:
FTP是TCP/IP网络上两台计算机之间传送文件的协议,它是在Internet上最早使用的协议之一。
FTP客户机可以给服务器发出命令来下载文件、上传文件、创建或改变服务器上的目录
FTP协议是应用层的协议,它基于运输层,负责进行文件的传输
控制连接:建立之后一直持续到客户和服务器间的通信完成为止,用于传送控制命令,服务器使用21号端口
数据连接:根据通信的需要随时建立和释放,用于数据传输,服务器通常使用20号端口
创建步骤:服务器在熟知端口21发出被动打开,等待客户,客户使用临时端口发出主动打开。
主动模式是服务器主动连接客户的数据端口,被动模式是服务器被动地等待客户连接自己的数据端口
PORT(主动)模式的默认数据端口是20,控制端口是21
PORT(主动)模式发送端口给服务器,由服务器连回客户端
由于是客户端主动发起数据连接,这样就解决了防火墙带来的问题。
控制连接上的通信:FTP使用NVT ASCII字符集在控制连接上通信。通信过程使用命令和响应来完成,命令和响应都是一个短行,因此不必考虑它的文件结构。每一行以回车换行结束
数据连接上的通信:在传送数据之前,客户使用控制连接来做传输准备,定义文件类型、数据结构、传输方式
流方式:这是默认方式。数据作为连续的字节流从FTP交付给TCP。TCP负责把数据划分为适当大小的报文。若数据是简单的字节流(文件结构),就不需要文件结束符。若数据划分为记录(记录结构),则每一个记录有1字节的记录结束(EOR)字符,而在文件的结束处有文件结束(EOF)字符。
块方式:数据可以按块从FTP交付给TCP。每一个块的前面有3字节首部。第一个字节叫做块描述符,后两个字节定义块的大小,以字节为单位。
压缩方式:若文件很大,数据可进行压缩。通常使用的压缩方法是游程长度编码。数据单元的连续出现数可以用一个“出现”和“重复数”来替换。在文本文件中,这通常是空格。在二进制文件中,空字符常常被压缩。
从服务器把文件复制到客户端叫做读取文件,使用RETR命令完成
从客户端把文件复制到服务器叫做存储文件,使用STOR命令完成。
从服务器向客户端发送目录列表或文件名,使用LIST命令完成。FTP把目录或文件名列表当作文件,在数据连接上发送。
FTP使用控制连接在客户进程和服务器进程之间完成交互操作,客户端向服务器发送命令,服务器给客户返回响应
每一个FTP命令都应该有响应。响应由两个部分组成:3个数字以及跟随在后面的文本。数字部分定义代码,文本部分定义所需的参数或额外的解释