共計 1748 個字符,預計需要花費 5 分鐘才能閱讀完成。
FTP 工作原理是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
FTP 工作原理
文件傳輸協議:File Transfer Protocol 早期的三個應用級協議之一,基于 C / S 結構 數據傳輸格式:二進制(默認)和文本 雙通道協議:命令和數據連接
兩種模式:從服務器角度
主動 (PORT style):服務器主動連接 命令(控制):客戶端:隨機 port — 服務器:21/tcp 數據:客戶端:隨機 port —服務器:20/tcp
被動 (PASV style):客戶端主動連接 命令(控制):客戶端:隨機 port — 服務器:21/tcp 數據:客戶端:隨機 port — 服務器:隨機 port /tcp
基于 C / S 結構有專門的客戶端和專門的服務端
雙通道協議:命令通道和數據通道(所謂雙通道就是 FTP 支持兩個端口)
命令通道:走 TCP 的 21 端口,用來傳輸指令的。
數據通道:用來傳輸數據的
命令通道永遠是客戶端主動向服務端發起請求:命令通道永遠走的是 TCP/21 端口
數據通道走的是兩個端口,通過工作模式來確定走的端口:
主動模式(post)為 TCP 的 20 端口。
被動模式走的是隨機端口,所謂主動和被動都是以服務器的角色來看。
主動模式(post):服務器端主動連接客戶端
被動模式(pasv):客戶端主動連接服務器端(會通過命令通道相互交換信息,客戶端就會知道服務端的隨機端口號)
范例:服務器被動模式數據端口 227 Entering Passive Mode (172,16,0,1,224,59) 服務器數據端口為:224*256+59
FTP 雙通道工作原理解析
FTP 是一種文件傳輸協議,它支持兩種模式, 一種方式叫做 Standard (也就是 Active, 主動方式), 一種是 Passive (也就是 PASV, 被動方式)。Standard 模式(主動模式)FTP 的客戶端發送 PORT 命令到 FTP server。Passive 模式(被動模式)FTP 的客戶端發送 PASV 命令到 FTP Server。
命令通道:
是客戶端主動向服務器端發起命令請求,同時服務器端開啟 TCP/21 端口號。客戶端主動發起三次握手請求。
服務器由兩個端口發起鏈接。其中有一個叫命令通道的端口,有一個是實現數據通道的端口。命令通道是用來通過實現命令的執行。數據端口是用來實現數據的傳輸,命令通道走的端口是固定的 TCP/21 端口。如果客戶端需要數據傳輸時,服務就會開啟數據通道端口。數據通道走的端口不是固定的,是根據工作模式來判斷開啟的端口。
數據通道:
下面介紹一個這數據通道的兩種方式的工作原理:
主動工作模式(post):服務器端主動連接客戶端
FTP 客戶端首先和 FTP Server 的 TCP 21 端口建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送 PORT 命令。PORT 命令包含了客戶端用什么端口接收數據。在傳送數據的時候,服務器端通過自己數據端口的 TCP 20 端口發送數據。FTP server 必須和客戶端建立一個新的連接用來傳送數據。
被動工作模式(pasv):客戶端主動連接服務器端(會通過命令通道相互交換信息,客戶端就會知道服務端的隨機端口號)
在建立控制通道的時候和 Standard 模式類似,當客戶端通過這個通道發送 PASV 命令的時候,FTP server 打開一個位于 1024 和 5000 之間的隨機端口并且通知客戶端在這個端口上傳送數據的請求,然后 FTP server 將通過這個端口進行數據的傳送,這個時候 FTP server 不再需要建立一個新的和客戶端之間的連接。
FTP 服務狀態碼:1XX:信息 125:數據連接打開 2XX:成功類狀態 200:命令 OK 230:登錄成功 3XX:補充類 331:用戶名 OK 4XX:客戶端錯誤 425:不能打開數據連接 5XX:服務器錯誤 530:不能登錄
用戶認證:
匿名用戶:ftp,anonymous, 對應 Linux 用戶 ftp 系統用戶:Linux 用戶, 用戶 /etc/passwd, 密碼 /etc/shadow 虛擬用戶:特定服務的專用用戶,獨立的用戶 / 密碼文件。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。