FTP的兩種傳輸模式

最近在給學生講FTP,抽時間總結一下FTP的兩種傳輸模式。大家都知道FTP有兩種傳輸模式,一種是主動模式也叫PORT模式,另外一種是被動模式,也叫PASV模式。

其實,FTP客戶端和伺服器之間需要建立兩條TCP連接,一條是控制連接,用來發送控制指令,另外一條是數據連接,真正的文件傳輸是通過數據連接來完成的。如圖對於兩種傳輸模式來說,控制連接的建立過程都是一樣,均為伺服器監聽21號埠,客戶端向伺服器的該埠發起TCP連接。兩種傳輸模式的不同之處體現在數據連接的建立,對於數據連接的建立,主被動模式的不同在於數據連接的建立「伺服器」是「主動」還是"被動",主動模式伺服器通過控制連接知道客戶端監聽的埠後,使用自己的20號埠作為源埠,「主動」發起TCP數據連接。而被動模式伺服器監聽1024-65535的一個隨機埠,並通過控制連接將該埠告訴客戶端,客戶端向伺服器的該埠發起TCP數據連接,這種情況下數據連接的建立相當於伺服器是「被動」的。

根據以上的分析,給大家總結一下。

(1)我們常說的FTP協議默認埠21和20,要注意這個21號埠是必須的,但是,20號埠未必一定用得到。

(2)如果FTP客戶端在私網,FTP伺服器在公網(雲主機的應用場景)應該使用被動模式,因為這種應用場景FTP伺服器訪問不到在私網的FTP客戶端,而FTP客戶端可以訪問到FTP伺服器,但是,FTP伺服器的防火牆除了應該放行21號埠的TCP連接,還應放行FTP伺服器數據連接的TCP埠。

(3) 在伺服器端主被動兩種傳輸模式都支持的前提下,FTP傳輸的模式由FTP客戶端來決定,如果使用軟體的話可以在軟體中進行配置使用哪種傳輸模式,如果在windows下使用瀏覽器或者是我的電腦地址欄輸入FTP URL訪問FTP伺服器的話,可以到瀏覽器 Internet選項|高級| 中進行配置,如下圖


推薦閱讀:

TAG:科技 | 計算機科學 |