FTP:工作原理、控制连接与数据连接、主动与被动模式。
6.3 FTP
6.3.1 FTP协议的工作原理
- FTP(文件传送协议) 是互联网上广泛使用的文件传送协议,提供交互式访问,允许客户指明文件类型与格式(如ASCII码),并支持存取权限(需授权和口令)。
- FTP屏蔽了各计算机系统的差异,适合在异构网络中任意计算机间传送文件。
- 与FTP类似的文件共享协议还有基于UDP的TFTP(简单文件传送协议),两者都是复制整个文件的模式:先获得本地副本,修改后再传回原节点。
FTP功能:
- 不同种类主机系统之间的文件传输能力。
- 以用户权限管理的方式提供对远程FTP服务器上文件的管理能力。
- 以匿名FTP的方式提供公用文件共享能力。
工作模式:
- 采用客户-服务器方式。
- 服务器进程由主进程(负责接受新请求)和若干个从属进程(负责处理单个请求)组成。
主进程工作步骤:
- 打开熟知端口(端口号21),使客户进程能连接。
- 等待客户进程发出连接请求。
- 启动从属进程处理请求(从属进程完成后终止,运行中可能创建其他子进程)。
- 回到等待状态,继续接受其他请求(主进程与从属进程并发执行)。
- FTP服务器在整个会话期间必须保留用户的状态信息(如当前目录位置)。
6.3.2 控制连接与数据连接
FTP使用两个并行的TCP连接:
- 控制连接:端口21,用于传输控制信息(如连接请求、传送命令)。
- 数据连接:端口20,用于实际传输文件数据。
控制连接
- 服务器监听21号端口,建立在此端口上的连接称为控制连接。
- 控制信息以7位ASCII格式传送,不用于传输文件。
- 控制连接在整个会话期间一直保持打开状态,可用于发送中止传输等命令。
数据连接
- 当客户发出文件传输请求后,服务器端创建数据传送进程和数据连接,用于实际文件传送。
- 数据传送完毕后,数据连接关闭,数据传送进程终止。
- 由于控制连接与数据连接分离,FTP的控制信息是带外(out of band) 传送的。
数据连接传输模式(由客户端选择):
- 主动模式(PORT):客户端随机开放一个端口,通过控制连接告知服务器;服务器从20端口主动连接客户端该端口,发送数据。
- 被动模式(PASV):客户端发送PASV命令,服务器在本地随机开放一个端口并告知客户端;客户端主动连接服务器该端口进行数据传输。
默认采用主动模式。
与NFS(网络文件系统)对比:
- FTP需将整个文件传回本地修改再传回,效率低。
- NFS允许应用进程在远程文件特定位置读写,仅传输所需数据块,更高效。
例题与习题
例题(2009年40题)
FTP客户和服务器间传递FTP命令时,使用的连接是(A. 建立在TCP之上的控制连接)
例题(2017年40题)
关于FTP协议的叙述,错误的是(C. 服务器与客户端的TCP 20端口建立数据连接)
- 数据连接可由服务器主动连接客户端(主动模式)或客户端连接服务器(被动模式),并非总是服务器使用20端口连接客户端。
习题
FTP协议主要用于(B. 文件传输)
FTP使用的传输层协议是(B. TCP)
在FTP中,控制连接的作用是(B. 发送FTP命令和接收响应)
下面关于FTP的叙述中错误的是(D. FTP中的数据连接只能是由客户器端向服务器端发起的)
(数据连接可以是服务器主动发起(PORT模式)或客户端主动发起(PASV模式))
笔记结束