FTP的中文名稱是「文件傳輸協議」,是File Transfer Protocol三個英文單詞的縮寫。FTP協議是TCP/IP協議組中的協議之一,其傳輸效率很是高,在網絡上傳輸大的文件時,常常採用該協議。windows
FTP由FTP服務器和FTP客戶端組成,兩個方向能夠互傳文件。服務器
左側爲客戶端,右側爲FTP服務器,不管是上傳仍是下載,客戶端與服務器之間都會創建2個TCP鏈接會話,綠色是控制鏈接,紅色的是數據鏈接。其中,控制鏈接用於傳輸FTP命令,如:刪除文件、重命名文件、下載文件、列取目錄、獲取文件信息等。真正的數據傳輸時經過數據鏈接來完成的。網絡
默認狀況下,服務器21端口做爲命令端口,20端口爲數據端口。但被動模式下就有所差異了。併發
剛接觸FTP的朋友,常常搞不清楚FTP的主動模式和被動模式,形成鏈接被防火牆攔截,下面咱們就詳細瞭解下FTP的這兩種模式:ide
FTP主動模式
首先,來了解下FTP的主動模式,主動模式是FTP的默認模式,也稱爲PORT模式。3d
第二步,在控制鏈接創建成功後,服務器會使用數據端口20,主動鏈接客戶端的N+1端口以創建數據鏈接。這就是FTP主動模式的鏈接過程。blog
咱們能夠看到,在這條紅色的數據鏈接創建的過程當中,服務器是主動的鏈接客戶端的,因此稱這種模式爲主動模式。it
但這種模式對客戶端的管理不利,由於FTP服務器20端口鏈接客戶端的數據端口時,有可能被客戶端的防火牆攔截掉。class
FTP被動模式
上面所講的是FTP主動模式,簡單的理解就是服務器的數據端口20主動鏈接客戶端的數據端口,來創建數據鏈接,用來傳輸數據,這個數據鏈接的創建有可能被客戶端防火牆攔截掉。爲了解決這個問題就衍生出另一種鏈接模式---被動模式。被動模式也稱爲passive模式。效率
第二步,客戶端的數據端口N+1去鏈接服務器的數據端口P,創建數據鏈接。
咱們能夠看到,在這條紅色的數據鏈接創建的過程當中,服務器是被動的等待客戶端來鏈接的,因此稱這種模式爲被動模式。
但對服務器端的管理不利。由於客戶端數據端口連到FTP服務器的數據端口P時,頗有可能被服務器端的防火牆阻塞掉。