一、控制连接
无论主动模式还是被动模式,控制连接的建立方式如下:
①客户端选择一个大于1024的端口向服务端的21端口发起连接,并完成TCP会话的建立(三次握手)。
②服务端告知客户端FTP服务已经准备完成。
③客户端确认消息②,并请求服务端进行身份验证。
④服务端确认消息③,并请求客户端依次发送账号和密码。
⑤客户端确认消息④,并向服务端发送账号和密码。
⑥服务端确认消息⑤。
至此,控制连接建立完成。
二、数据连接
数据连接的建立分为主动模式和被动模式两种。
1.主动模式下,数据连接的建立方式如下:
①客户端告知服务端采用主动模式建立数据连接,并选择一个大于1024的端口告知服务端(这里设为x)。
②服务端确认消息①,并使用20端口向客户端的x端口发起连接,完成TCP会话的建立(三次握手)。
至此,数据连接建立完成,客户端和服务端可以通过②中建立的会话进行数据的传输。
2.被动模式下,数据连接的建立方式如下:
①客户端告知服务端采用被动模式建立数据连接。
②服务端确认消息①,并选择一个大于1024的端口告知客户端(这里设为x)。
③客户端确认消息②,并选择一个大于1024的端口向服务端的x端口发起连接,并完成TCP会话的建立(三次握手)。
至此,数据连接建立完成,客户端和服务端可以通过③中建立的会话进行数据的传输。