FTP 是一種檔傳輸協定 (File Transfer Protocol),它的連線模式有兩種﹕ 主動模式( active )和被動模式( passive )。

 

在 active 模式下 (一般預設的模式)﹕

1. FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線。當順利完成 Three-Way Handshake 之後,連線就成功建立,但這僅是命令通道的建立  。

2.當兩端需要傳送資料的時候,client 透過命令通道用一個 port command 告訴 server ,client可以用另一個TCP port 做數據通道。

3.然後 server 用 port 20 和剛才 client 所告知的 TCP port 建立數據連線。請注意:連線方向這是從 server 到 client 的,TCP 封包會有一個 SYN flag。

4.然後 client 會返回一個帶 ACK flag的確認封包﹐並完成另一次的 Three-Way Handshake 手續。這時候,數據通道才能成功建立。

5.開始數據傳送。

 

在 passive 模式下

1.FTP client 開啟一個隨機選擇的TCP port 呼叫 FTP server 的 port 21請求連線,並完  成命令通道的建立。

2.當兩端需要傳送資料的時候,client 透過命令通道送一個 PASV command 給  server,要求進入 passive 傳輸模式。

3.然後 server 像上述的正常模式之第 2 步驟那樣,挑一個TCP port ,並用命令通道  告訴 client。

4.然後 client 用另一個TCP port 呼叫剛才 server 告知的 TCP port 來建立數據通道。此  時封包帶 SYN flag。

5.server 確認後回應一個 ACK 封包。並完成所有交握手續?成功建立數據通道。

6.開始數據傳送。

 

資料來原:http://vbb.twftp.org/showthread.php?t=2048

goodlucky 發表在 痞客邦 PIXNET 留言(0) 人氣()