發表文章

目前顯示的是 6月 10, 2009的文章

FTP傳輸的PASV和Port 模式

FTP一般有兩個連接,傳輸命令和數據傳送。 FTP服務程式一般會支援兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode)。 先假設客戶端為C,服務端為S. Port模式: 當客戶端C向服務端S連接後,使用的是Port模式,那麼客戶端C會發送一條命令告訴服務端S(客戶端C在本地打開了一個 port N在等著你進行數據連接),當服務端S收到這個Port命令後,就會向客戶端打開的那個 portN進行連接,數據連接便產生。 Pasv模式: 當客戶端C向服務端S連接後,服務端S會發訊息給客戶端C,訊息是(服務端S在本地打開了一個 portM,你可以連接我了),當客戶端C收到這個訊息後,就可以向服務端S的M port進行連接,連接成功後,數據連接也建立了。 從上面的解釋中了解兩種模式主要的不同是數據連接建立的不同,對於Port模式,是客戶端C在本地打開一個 port等服務端S去連接建立數據連接; 而Pasv模式就是服務端S打開一個 port等待客戶端C去建立一個數據連接。 簡單的說︰ 一個就是FTP Server打開一個 port,Client可以去連接這個 port來建立連接。這就是PASV模式。 一個就是FTP Client打開一個 port,Server去連接這個 port來建立連接。這就是PORT模式。 FTP是一種檔案傳輸協定,它支援兩種模式,一種模式叫做Standard (也就是Active,主動模式),一種是 Passive (也就是PASV,被動模式)。 Standard模式 FTP 的客戶端發送 PORT 命令到FTP server。 Passive模式FTP的客戶端發送 PASV命令到 FTP Server。 處理防火牆和其他網路連接問題時最常見的一個難題是主動FTP與被動FTP的區別以及如何支援它們。 FTP是僅TCP的服務,不支援UDP。 與眾不同的是FTP使用2個 port,一個數據 port(20)和一個命令/控制 port(21)。 但當我們發現根據(FTP工作)模式的不同,數據 port並不總是20時,混亂產生了。 被動FTP詳述 為了解決伺服器發起到客戶的連接的問題,人們開發了一種不同的FTP連接模式。就是所謂的被動模式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。 在被動模式FTP中,命令連接和數