计算机网络--应用层(3)FTP

                                 文件传输协议FTP

1. 经典场景

在典型的FTP会话中,向一台远程主机传文件或从远程主机下载文件。

为使用户能够访问远程主机的账户,用户必须提供一个用户标识和口令。验证授权信息后,用户就能从本地文件系统向远程主机文件系统传送文件。

 

2.工作过程

用户通过一个FTP用户代理,与FTP交互。该户首先提供远程主机的主机名,建立一个TCP的连接,然后该用户提供用户标识和口令,作为FTP命令这一部分在该TCP连接上传送,该控制信息的传输使用的是21号端口。一旦服务器授权,用户就可以向远程文件系统拷贝存放在本地文件系统的文件。使用的是另一个TCP的数据连接,端口号20。当数据传输完毕后会关闭该连接。如果用户还想再发送一个文件,那么该数据连接的TCP需要再次建立。也就是说每一个连接只传送一个文件。

同时FTP服务器必须在整个会话期间,保留用户的状态信息。但是HTTP是无状态的,也就是不会对用户的状态进行追踪

如图:

                           计算机网络--应用层(3)FTP

 

2.1 两种连接方式

FTP使用的是两个 并行的TCP连接:控制连接(端口21)。数据连接(端口20)。

控制连接用于两个主机之间传输控制信息:比如用户标识、口令。

数据连接用于实际传输一个文件。

                                 计算机网络--应用层(3)FTP

 

2.2 带外 和 带内

FTP协议使用一个分离的控制连接,因此称之为带外传送。

但是HTTP协议是在传输文件的TCP连接中发送请求和响应的首部行,因此称之为带内发送控制信息。

NB:其区分的核心为控制信息或者请求 是否和传输文件使用同一个TCP连接。 同一个则为带内,否则为带外。

 

3.FTP的命令和回答

组成:7位ASCII格式进行传输,也是人为可以阅读的。

每个命令由4个大写字母组成

USER username:用于向服务器传送用户标识。

PASS password: 用于向服务器传送用户口令。

LIST 用于请求服务器返回远程主机当前目录的所有文件列表。

RETR  filename get 文件

STOR filename put文件

 

 

FTP的回答是3位数

331 Username OK, Password required

125 data connection already open; transfer starting

425 can not open data connection

452 error writing file