面试题答案
一键面试1. 控制连接建立后数据连接建立概述
在FTP协议中,控制连接主要用于客户端与服务器之间传输命令和响应,而数据连接则专门用于传输文件数据等实际内容。在控制连接建立成功后,才会进行数据连接的建立,且存在主动模式(PORT模式)和被动模式(PASV模式)两种方式。
2. 主动模式(PORT模式)下数据连接建立流程
- 客户端准备:客户端在控制连接建立后,随机开启一个端口(大于1023),假设为
Cport
,并通过控制连接向服务器发送PORT
命令,告知服务器自己用于接收数据的IP地址和端口号(Cport
)。 - 服务器响应:服务器收到
PORT
命令后,使用其固定的20端口(FTP数据端口)向客户端指定的Cport
发起连接请求。 - 连接建立:客户端在
Cport
端口上监听,接收到服务器的连接请求后,完成数据连接的建立。此时,数据传输就可以通过这个数据连接进行,如上传或下载文件。
3. 被动模式(PASV模式)下数据连接建立流程
- 客户端请求:客户端通过控制连接向服务器发送
PASV
命令,请求进入被动模式。 - 服务器准备:服务器收到
PASV
命令后,随机开启一个端口(大于1023),假设为Sport
,并通过控制连接将服务器用于传输数据的IP地址和该随机端口号(Sport
)返回给客户端。 - 客户端连接:客户端收到服务器返回的信息后,使用自己随机开启的一个端口(大于1023),假设为
Cport
,向服务器的Sport
发起连接请求。 - 连接建立:服务器在
Sport
端口上监听,接收到客户端的连接请求后,完成数据连接的建立。之后,数据传输通过此数据连接进行。
4. 主动模式和被动模式数据连接建立流程的区别
- 发起连接的一方不同:主动模式下是服务器主动发起数据连接到客户端指定端口;而被动模式下是客户端主动发起数据连接到服务器指定端口。
- 端口使用不同:主动模式中服务器使用固定的20端口发起连接,客户端指定自己的一个随机端口;被动模式下服务器随机开启一个端口,客户端同样使用自己的一个随机端口去连接服务器的随机端口。
- 网络环境适应性不同:主动模式在客户端处于防火墙之后时,可能会因为防火墙阻止服务器发起的连接而导致数据连接建立失败;被动模式则更适用于客户端在防火墙之后的场景,因为是客户端主动发起连接,一般防火墙对出站连接限制较少。