FTP协议详解

FTP(文件传输协议):

文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP使用交互式的访问,允许客户指定文件的类型和格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。

  文件传输协议有基于TCP的FTP和基于UDP的简单文件传输协议TFTP,它们都是文件共享协议中的一大类,即复制整个文件,其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件传回到原节点。

FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。


FTP的主要特征:

1.控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。

2.数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。


文件类型:

1.ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输;

2.EBCDIC文件类型。该文本文件传输方式要求两端都是EBCDIC系统;

3.图像文件类型(也成为二进制文件类型),数据发送形式呈现为一个连续的比特流。

数据结构:

1.文件结构(File Structure)字节流,无结构;

2.记录结构(Record Structure)文件被划分为记录,用于文本文件;

3.页结构(Page Structure)文件被划分为页,每页有页号和页头。可以进行随机存取或顺序存取。



传输方式:

FTP的传输模式有流模式、块模式和压缩模式:


1.流模式:数据以字节流的形式传送

-记录结构

-文件结构


2.块模式:文件以块的形式传送,块带有自己的头部分。头字节包括16位计数域和8位描述子代码.

3.压缩模式:压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。



FTP中的客户端-服务器模型

FTP客户端与服务器之间要建立双重连接,一个是控制连接,一个是数据连接。

控制连接:NVT ASCII

数据连接:文件类型、数据结构、传输方式


 FTP控制连接在整个会话期间都保持打开,只用来发送连接/传送请求。当客户进程向服务器发送连接请求时,寻找连接服务器进程的熟知端口21,同时

还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口20与客户进程所提供的端口号码建立数

据传送连接,FTP使用了2个不同的端口号,所以数据连接和控制连接不会混乱。

建立双重连接的原因是:FTP是一个交互式会话系统,某客户每次调用FTP,便与服务器建立一次会话,会话以控制连接来维持

     客户端每提出一个请求,服务器与客户端建立一个数据连接,进行实际的数据(比如文件)传输,一旦数据传输结束,数据连接相继撤销,但控制连接依然存在,客户端可以继续发出命令。

    客户可以撤销控制连接(close命令),也可以退出FTP会话(quit命令)。


FTP服务器的实现是由一组FTP进程完成的。

服务器FTP进程:由协议解释器PI和数据传输过程DTP组成。

客户端FTP进程:由PI、DTP和用户接口组成。


传输和控制采用独立的连接方式具有以下三方面的优点:

1.使FTP协议更加简单并且更容易实现,例如控制连接可以直接采用Telnet协议实现,FTP数据连接不会与FTP命令混淆起来;

2.在数据连接结束后,控制连接仍然保留着,它能够在新的传输连接时被使用;

3.发送方与接收方在所有的数据都到达时可以在数据连接上用文件结束来通知另一方,从而达到命令传输的功能。


FTP数据表示

  FTP协议规定了控制协议传送与存储的多种选择,在以下4个方面必须做出一个选择。

文件类型:ASCII码文件(默认的)/ 图像文件类型(二进制的)/ 本地文件类型(用于在具有不同字节大小主机间传送二进制数据)

格式控制:该选项针对ASCII类型文件适用,非打印(默认选择,文件中不包含垂直格式信息)/ 远程登录格式控制

结构:文件结构(默认选择,文件被认为是一个连续的字节流,不存在内部的文件结构)/ 记录结构(用于文本文件)

传输方式:流方式(模式选择,文件以字节流方式传输,对于文件结构,发方在文件尾提示关闭数据连接,对于记录结构,有专用的两字节序列码记录结束和文件结束)/ 块方式(文件以一系列块来传送,每块前面有一个或多个首部字节)/ 压缩方式


yo peace




你可能感兴趣的:(FTP协议详解)