數據連接
客戶端與服務端建立連接,經過TCP三次握手,連接建立完成之後,客戶端就可以通過建立的連接通道向服務器發送命令了,服務器根據客戶端的命令,向客戶端發送數據,發送數據的時候,服務端會再跟客戶端建立一個TCP連接,用於專門的傳輸數據,這個連接就是數據連接。
數據連接有兩種工作模式:主動模式和被動模式
主動模式指的是服務器是主動的
被動模式指的是服務器是被動的
主動模式
1. 任何大於1024的端口到FTP服務器的21端口。(客戶端初始化的連接)
2. FTP服務器的21端口到大於1024的端口。 (服務器響應客戶端的控制端口)
3. FTP服務器的20端口到大於1024的端口。(服務器端初始化數據連接到客戶端的數據端口)
4. 大於1024端口到FTP服務器的20端口(客戶端發送ACK響應到服務器的數據端口)
服務器端自動打開20號端口,即數據傳輸端口。主動的去連接客戶端的命令端口+1的端口。當數據傳輸完成後,數據連接自動斷開。
被動模式
1. 從任何大於1024的端口到服務器的21端口(客戶端初始化的連接)
2. 服務器的21端口到任何大於1024的端口(服務器響應到客戶端的控制端口的連接)
3. 從任何大於1024端口到服務器的大於1024端口(客戶端初始化數據連接到服務器指定的任意端口)
4. 服務器的大於1024端口到遠程的大於1024的端口(服務器發送ACK響應和數據到客戶端的數據端口)
服務器端向客戶端通知自己打開的端口,通知客戶端來連接自己的數據端口,客戶端使用命令端口+1的端口,去連接服務器端的數據端口,被動模式下,服務器的數據連接端口使用的是一個隨機端口。主動模式服務端使用的是20端口。