NetResources 版 (精华区)

发信人: yekai (不辞职●不自杀●死守紫丁香), 信区: Website
标  题: ftp主动模式和被动模式的区别!z(转载)
发信站: 哈工大紫丁香 (2002年10月11日22:06:57 星期五), 站内信件

【 以下文字转载自 Movie 讨论区 】
【 原文由 bobby 所发表 】

我們要知道 FTP 的連線模式有兩種﹕主動模式( active )和被動模式( passive )。要
了解這兩個模式的不同﹐得要了解 FTP 的連線是怎樣建立的﹕

在正常模式下﹕
1. FTP client 開啟一個隨機選擇的高於 1024 的 port 呼叫 FTP server 的 port 21
請求
連線。當順利完成 Three-Way Handshake 之後﹐連線就成功建立﹐但這僅是命令通道的
建立。

2. 當兩端需要傳送資料的時候﹐client 透過命令通道用一個 port 命令告訴 server 
﹐客戶端可以用另一個高於 1024 的 port 做數據通道﹐並準備好 socket 資源。

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

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

5. 開始數據傳送。


在 passive 模式下﹕
1. FTP client 開啟一個隨機選擇的高於 1024 的 port 呼叫 FTP server 的 port 21
請求連線﹐並完成命令通道的建立。

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

3. 然後 server 像上述的正常模式之第 2 步驟那樣﹐挑一個高於 1024 的 port ﹐並
用命令通道告訴 client 關於 server 端用以做數據通道的 socket。

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

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

6. 開始數據傳送。





--
你们的支持永远是我前进的动力!!!

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.233]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 天外飞仙]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.057毫秒