FTP連線方式

FTP是一種主從式的架構,也就是Client and Server架構,說什麼主從式對一般人來說恐怕是太難懂了一些,說穿了既然是主從式,那這個協定要運行一定就要有人開FTP Server,也要有人用FTP Client,唯有這兩組軟體搭配,才能達成FTP檔案傳輸的功效.

  • 連線的步驟
1.    建立命令通道的連線
如上圖所示,用戶端會隨機取一個大於 1024 以上的埠口 (port AA) 來與 FTP 伺服器端的 port 21 達成連線, 這個過程當然需要三向交握了!達成連線後用戶端便可以透過這個連線來對 FTP 伺服器下達指令, 包括查詢檔名、下載、上傳等等指令都是利用這個通道來下達的;
2.    通知 FTP 伺服器端使用 active 且告知連接的埠號
FTP 伺服器的 21 埠號主要用在命令的下達,但是當牽涉到資料流時,就不是使用這個連線了。 用戶端在需要資料的情況下,會告知伺服器端要用什麼方式來連線,如果是主動式 (active) 連線時, 用戶端會先隨機啟用一個埠口 (圖 21.1-1 當中的 port BB) ,且透過命令通道告知 FTP 伺服器這兩個資訊,並等待 FTP 伺服器的連線;
3.    FTP 伺服器『主動』向用戶端連線
FTP 伺服器由命令通道瞭解用戶端的需求後,會主動的由 20 這個埠號向用戶端的 port BB 連線, 這個連線當然也會經過三向交握啦!此時 FTP 的用戶端與伺服器端共會建立兩條連線,分別用在命令的下達與資料的傳遞。 而預設 FTP 伺服器端使用的主動連線埠號就是 port 20

詳細可看RFC 959

PI 協定解析器
DTP(DataTransferProcess) 資料傳輸過程,用來建立並管理資料連接