一、认识FTP协议
文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。
文件传输协议有基于TCP的FTP和基于UDP的简单文件传输协议TFTP,它们都是文件共享协议中的一大类,即复制整个文件,其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件传回到原节点。
FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
二、FTP的特征
- 控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。
- 数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。
三、文件类型
- ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输;
- 图像文件类型(也成为二进制文件类型),数据发送形式呈现为一个连续的比特流。
- EBCDIC文件类型。该文本文件传输方式要求两端都是EBCDIC系统;
四、数据结构
- 文件结构(File Structure)字节流,无结构;
- 记录结构(Record Structure)文件被划分为记录,用于文本文件;
- 页结构(Page Structure)文件被划分为页,每页有页号和页头。可以进行随机存取或顺序存取。
五、传输方式
FTP的传输模式有流模式、块模式和压缩模式:
流模式:数据以字节流的形式传送
-记录结构
-文件结构
块模式:文件以块的形式传送,块带有自己的头部分。头字节包括16位计数域和8位描述子代码.
压缩模式:压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。
六、FTP中的客户端-服务器模型
FTP客户端与服务器之间要建立双重连接,一个是控制连接,一个是数据连接。
控制连接:NVT ASCII
数据连接:文件类型、数据结构、传输方式
FTP控制连接在整个会话期间都保持打开,只用来发送连接/传送请求。当客户进程向服务器发送连接请求时,寻找连接服务器进程的熟知端口21,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口20与客户进程所提供的端口号码建立数据传送连接,FTP使用了2个不同的端口号,所以数据连接和控制连接不会混乱。
建立双重连接的原因是:FTP是一个交互式会话系统,某客户每次调用FTP,便与服务器建立一次会话,会话以控制连接来维持。
客户端每提出一个请求,服务器与客户端建立一个数据连接,进行实际的数据(比如文件)传输,一旦数据传输结束,数据连接相继撤销,但控制连接依然存在,客户端可以继续发出命令。
客户可以撤销控制连接(close命令),也可以退出FTP会话(quit命令)。
FTP服务器的实现是由一组FTP进程完成的。
服务器FTP进程:由协议解释器PI和数据传输过程DTP组成。
客户端FTP进程:由PI、DTP和用户接口组成。