詳解FTP協議的主動模式和被動模式

詳解FTP協議的主動模式和被動模式


FTP的中文名稱是「文件傳輸協議」,是File Transfer Protocol三個英文單詞的縮寫。FTP協議是TCP/IP協議組中的協議之一,其傳輸效率很是高,在網絡上傳輸大的文件時,常常採用該協議。windows

FTP由FTP服務器和FTP客戶端組成,兩個方向能夠互傳文件。服務器


詳解FTP協議的主動模式和被動模式


左側爲客戶端,右側爲FTP服務器,不管是上傳仍是下載,客戶端與服務器之間都會創建2個TCP鏈接會話,綠色是控制鏈接,紅色的是數據鏈接。其中,控制鏈接用於傳輸FTP命令,如:刪除文件、重命名文件、下載文件、列取目錄、獲取文件信息等。真正的數據傳輸時經過數據鏈接來完成的。網絡

默認狀況下,服務器21端口做爲命令端口,20端口爲數據端口。但被動模式下就有所差異了。併發

剛接觸FTP的朋友,常常搞不清楚FTP的主動模式和被動模式,形成鏈接被防火牆攔截,下面咱們就詳細瞭解下FTP的這兩種模式:ide


FTP主動模式
首先,來了解下FTP的主動模式,主動模式是FTP的默認模式,也稱爲PORT模式。
詳解FTP協議的主動模式和被動模式3d

  1. 在主動模式下,客戶端會開啓N和N+1兩個端口,N爲客戶端的命令端口,N+1爲客戶端的數據端口。
    第一步,客戶端使用端口N鏈接FTP服務器的命令端口21,創建控制鏈接並告訴服務器我這邊開啓了數據端口N+1。

第二步,在控制鏈接創建成功後,服務器會使用數據端口20,主動鏈接客戶端的N+1端口以創建數據鏈接。這就是FTP主動模式的鏈接過程。blog

咱們能夠看到,在這條紅色的數據鏈接創建的過程當中,服務器是主動的鏈接客戶端的,因此稱這種模式爲主動模式。it

  1. 主動模式有什麼利弊呢?
    主動模式對FTP服務器的管理有利,由於FTP服務器只須要開啓21端口的「准入」和20端口的「準出」便可。

但這種模式對客戶端的管理不利,由於FTP服務器20端口鏈接客戶端的數據端口時,有可能被客戶端的防火牆攔截掉。class


FTP被動模式
上面所講的是FTP主動模式,簡單的理解就是服務器的數據端口20主動鏈接客戶端的數據端口,來創建數據鏈接,用來傳輸數據,這個數據鏈接的創建有可能被客戶端防火牆攔截掉。爲了解決這個問題就衍生出另一種鏈接模式---被動模式。被動模式也稱爲passive模式。效率

  1. 被動模式是如何運做的呢?來看下這張圖
    詳解FTP協議的主動模式和被動模式
    第一步,客戶端的命令端口N主動鏈接服務器命令端口21,併發送PASV命令,告訴服務器用「被動模式」,控制鏈接創建成功後,服務器開啓一個數據端口P,經過PORT命令將P端口告訴客戶端。

第二步,客戶端的數據端口N+1去鏈接服務器的數據端口P,創建數據鏈接。

咱們能夠看到,在這條紅色的數據鏈接創建的過程當中,服務器是被動的等待客戶端來鏈接的,因此稱這種模式爲被動模式。

  1. 被動模式有什麼利弊呢?
    被動模式對FTP客戶端的管理有利,由於客戶端的命令端口和數據端口都是「準出」,windows防火牆對於「準出」通常是不攔截的,因此客戶端不須要任何多餘的配置就能夠鏈接FTP服務器了。

但對服務器端的管理不利。由於客戶端數據端口連到FTP服務器的數據端口P時,頗有可能被服務器端的防火牆阻塞掉。

相關文章
相關標籤/搜索