2008年7月16日 星期三

FTP傳輸模式

Ftp傳輸有兩種mode 一種是Active mode 二是Passive mode
要了解這兩個模式的不同﹐先得了解 FTP 的連線是怎樣建立的﹕

1)
在Active 模式下﹕
1﹐FTP client 開啟一個隨機選擇的高於 1024 的 port 呼叫 FTP server 的 port 21
建立連線﹐這是命令通道的建立。
2﹐client 用一個 port 命令告訴 server 另一個高於 1024 的 port 做數據通道。
3﹐然後 server 用 port 20 和剛才 client 所告知的 port 建立數據連線。請注意﹐
這是從 server 到 client 的連線﹐TCP 封包會有一個 SYN 標籤。
4﹐client 會確認數據通道連接﹐這個封包會有一個 ACK 標籤。
5﹐開始數據傳送。

2)
在 passive 模式下﹕
1﹐FTP client 開啟一個隨機選擇的高於 1024 的 port 呼叫 FTP server 的 port 21
建立連線﹐這是命令通道的建立。
2﹐client 送一個 PASV 命令給 server﹐要求建立 passive 模式。
3﹐server 然後像上面所述的正常模式第 2 步驟那樣﹐挑一個高於 1024 的 port 告
訴 client 做數據通道。
4﹐然後 client 用另一個高於 1024 的 port 呼叫剛才 server 告知的 port 來建立
數據通道。此時封包帶 SYN 標籤。
5﹐server 確認後回應一個 ACK 封包。
6﹐開始數據傳送。

通常從 FTP 下載檔案的時候,會使用兩個連接。一個是命令用,另一個是檔案,命令是由本地端設定,資料是由伺服器設定。在一些防火牆或代理伺服器會使兩個連接都在本地端設定。而當本地端送出 PASV command 時,伺服器便必須使用 passive mode 來接收。

如果您發現您的FTP程式可以連上FTP server,卻無法檢視server內的檔案與目錄,請您先確認一下您的FTP程式相關設定是否正確。特別提醒您,您必須勾選FTP程式的passive功能,這樣才可以正常連線。(如果您的FTP本身沒有支援此功能,建議您更新版本即可)。

沒有留言:

wibiya widget