基本原理
是一种用于在网络上进行文件传输的标准协议。它基于客户端-服务器模型,通过控制连接和数据连接实现文件的上传和下载操作
连接建立的过程
- 服务器首先运转起来,守候在TCP的21号端口,等待用户通过21号端口与FTP服务器建立连接。
- 客户端请求建立连接:客户端发起建立连接的请求,这个请求通常是TCP SYN包,用来建立TCP连接
- 登录过程:建立控制连接后,客户端通过USER和PASS命令来完成登录的过程,服务器会验证客户端提供的用户名和密码。
- 服务器响应连接:服务器接收连接后,会发送一个TCP SYN-ACK包作为响应,客户端收到后会发送一个TCP ACK包来完成三次握手的过程,从而建立控制连接
-
控制连接:用于发送FTP命令和接收服务器响应。控制连接使用TCP的21端口,整个会话期间一直保持打开状态。
-
数据传输:用于实际的文件数据传输。数据连接的端口和建立方式取决于FTP的工作模式。
工作模式
-
主动模式(PORT):客户端向FTP服务器的数据端口(默认为20)发起连接请求,服务器接收到请求后,从自己的数据端口向客户端发送数据。
-
被动模式(PASV):客户端向FTP服务器的控制端口(默认为21)发送PASV命令