2.11.3FTP

2.11.3FTP

1.FTP概述

FTP是早期的因特网协议之一,采用CS工作模式。FTP通过TCP建立连接,使网络上的不同主机之间能够进行高效的文件传送,实现文件资源共享和信息传递。RFC 959中包含了FTP的正式规范,对其做了具体的说明。FTP具有以下几个功能:

(1)文件共享。

(2)远程文件访问。

(3)对用户透明的文件存储技术

(4)可靠、有效的数据传送。

2.FTP工作原理

FTP客户端和服务器端的FTP程序通过TCP 20号和21号端口建立连接,一个用于传输文件数据(数据连接),另一个用于传输控制信息(控制连接)。

FTP通过控制连接让客户端可以向服务器发送FTP命令,根据登录用户的权限,获取一定的信息,控制、管理一定的服务器文件。FTP控制连接默认通过TCP 21号端口建立。FTP的控制连接建立过程如下:

①客户端通过任意端口向FTP服务器TCP 21号端口发送连接请求,服务器确认后,双方便建立一个TCP连接。

②客户端向FTP服务器发送登录请求。

③FTP服务器接收到请求后,向客户端要求登录账号。

④客户端向FTP服务器返回登录账号。

⑤FTP服务器验证登录账号(正确)后,向客户端要求登录密码。

⑥客户端向FTP服务器返回登录密码。

⑦FTP服务器验证登录密码(正确)后,双方建立FTP的控制连接。

FTP在控制连接的基础上建立数据连接,每当客户端需要下载或上传文件时就建立数据连接。FTP的数据连接有两种模式:一种是主动模式(PORT),一种是被动模式(PASV)。

(1)主动模式。

①客户端软件向FTP服务器的TCP 21号端口发送一个PORT命令,请求建立数据连接。PORT命令包含了客户端的IP地址和使用端口,告诉了服务器“××××的客户端打开了N端口,请求数据连接”。

②服务器接到请求后准备完毕,便通过PORT命令中的IP地址和端口号主动与客户端建立数据连接。

(2)被动模式。

①客户端软件向FTP服务器的TCP 21号端口发送一个PASV命令,请求建立数据连接。PASV命令只是简单地告诉服务器“××××的客户端请求数据连接”。

②服务器接到请求后准备完毕,便返回PASV命令给该客户端,告知本服务器已经打开了N端口(一般是随机产生,如1389、1390),允许你的连接。

③客户端接到PASV应答之后,自己通过PASV中的端口号N与服务器建立连接。当数据传输完毕,数据发送端便断开数据连接,但此时控制连接仍然保持。客户端可以再次建立数据连接,也可以同时建立几个数据连接,用于传输不同的文件。