主动模式
1、客户端首先通过向服务器的21号端口发送SYN置位的TCP连接建立请求报文,希望可以与服务器的21号端口建立TCP控制通道。
2、当三次握手完毕后控制通道建立完毕
3、客户端通过控制通道向服务器发送port命令,同时在发送port命令的报文中夹带着自己的随机端口,这个随机端口是客户端用于与服务器的20号端口进行数据通道的建立的。
4、服务器收到这个随机端口号之后,就会向客户端的随机端口号发送SYN置位的TCP连接请求建立报文,然后客户端与服务器进行数据通道连接的建立,随后客户端与服务器之间就可以进行数据的传输了。
被动模式
1、客户端首先通过向服务器的21号端口发送SYN置位的TCP连接建立请求报文,希望可以与服务器的21号端口建立TCP控制通道。
2、当三次握手完毕后控制通道建立完毕
3、客户端通过控制通道向服务器发送pasv命令,告诉自己使用的是被动模式,于是服务器就会回送一个Enter pasv命令的应答报文,并告诉客户端它本次数据连接开放的随机端口号是多少。
4、客户端通过获取到的随机端口号向服务器发送SYN置位的TCP连接建立请求报文,然后数据通道就由此建立,随后客户端和服务器之间就可以进行数据的交互了。