文件传输协议(File Transfer Protocol,FTP)简称为“文件协议”,用于在Internet上控制文件的双向传输。客户上传文件时,通过服务器20端口建立的连接是建立在TCP之上的数据连接,通过服务器21号端口建立的连接是建立在TCP之上的控制连接。
FTP协议有两种工作方式:主动式(PORT)和被动式(PASV)。主动与被动是相对于服务器是否首先发起数据连接而言的。
主动式的连接过程:
1)当需要传输数据时,客户端从一个任意的非系统端口N(N>=1024)连接到FTP服务器的21号端口;
2)客户端开始监听端口N+1并发送FTP命令“Port N+1”到FTP服务器;
3)服务器会从20号数据端口向客户端指定的N+1号端口发送连接请求,并建立一条数据链路来传送数据。
具体流程如下图所示:
在被动式中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向数据连接被客户端所在网络防火墙过滤掉的问题。
被动式的连接过程:
1)当需要传输数据时,客户端从一个任意的非系统端口N(N>=1024)连接到FTP服务器的21号端口;
2)客户端发送PASV命令,且服务器响应;
3)服务器开启一个任意的非系统端口Y(Y>=1024);
4)客户端从端口N+1连接到FTP服务器的Y号端口。
具体流程如下图所示:
简单文件传送协议(Trivial File Transfer Protocol,TFTP)的功能与FTP类似,是一个小而简单的文件传输协议。该协议基于UDP协议,一般用于路由器、交换机、防火墙配置、iOS的备份和替换。