FTP - 協議原理和狀態碼

襲冷發表於2014-11-25

一、Ftp原理

    FTP Transfer Protocol 件傳輸協議的縮寫,FTP會話時包含了兩個通道,一個叫控制通道,一個叫資料通道;如下圖:

        

        控制通道:控制通道是和FTP伺服器進行溝通的通道,連線FTP,傳送FTP指令都是通過控制通道來完成的, PI稱為控制連線

        資料通道:資料通道是和FTP伺服器進行檔案傳輸或者列表的通道。


    FTP協議中,控制連線均有客戶端發起,而資料連線有兩種工作方式:PORT方式和PASV方式,DTP稱為資料連線

        PASV模式(被動方式)

            在建立控制通道的時候和PORT模式類似,當客戶端通過這個通道傳送 PASV 命令的時候,FTP server開啟一個位於1024和5000之間的隨機埠並且通知客戶端在這個埠上傳送資料的請求,然後FTP server 將通過這個埠進行資料的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連線傳送資料。

        PORT模式(主動方式)

            FTP 客戶端首先和FTP Server的TCP 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道上傳送PORT命令。 PORT命令包含了客戶端用什麼埠(一個大於1024的埠)接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20埠傳送資料。 FTP server必須和客戶端建立一個新的連線用來傳送資料。


二、Ftp協議碼

    1xx - 肯定的初步答覆
            這些狀態程式碼指示一項操作已經成功開始,但客戶端希望在繼續操作新命令前得到另一個答覆。
        110 重新啟動標記答覆。
        120 服務已就緒,在 nnn 分鐘後開始。
        125 資料連線已開啟,正在開始傳輸。
        150 檔案狀態正常,準備開啟資料連線。 
     
    2xx - 肯定的完成答覆 
            一項操作已經成功完成。客戶端可以執行新命令。
        200 命令確定。
        202 未執行命令,站點上的命令過多。
        211 系統狀態,或系統幫助答覆。
        212 目錄狀態。
        213 檔案狀態。
        214 幫助訊息。
        215 NAME 系統型別,其中,NAME 是 Assigned Numbers 文件中所列的正式系統名稱。
        220 服務就緒,可以執行新使用者的請求。
        221 服務關閉控制連線。如果適當,請登出。
        225 資料連線開啟,沒有進行中的傳輸。
        226 關閉資料連線。請求的檔案操作已成功(例如,傳輸檔案或放棄檔案)。
        227 進入被動模式 (h1,h2,h3,h4,p1,p2)。
        230 使用者已登入,繼續進行。
        250 請求的檔案操作正確,已完成。
        257 已建立“PATHNAME”。
     
    3xx - 肯定的中間答覆 
            該命令已成功,但伺服器需要更多來自客戶端的資訊以完成對請求的處理。
        331 使用者名稱正確,需要密碼。
        332 需要登入帳戶。
        350 請求的檔案操作正在等待進一步的資訊。
     
    4xx - 瞬態否定的完成答覆 
            該命令不成功,但錯誤是暫時的。如果客戶端重試命令,可能會執行成功。
        421 服務不可用,正在關閉控制連線。如果服務確定它必須關閉,將向任何命令傳送這一應答。
        425 無法開啟資料連線。
        426 Connection closed; transfer aborted.
        450 未執行請求的檔案操作。檔案不可用(例如,檔案繁忙)。
        451 請求的操作異常終止:正在處理本地錯誤。
        452 未執行請求的操作。系統儲存空間不夠。
     
    5xx - 永久性否定的完成答覆 
            該命令不成功,錯誤是永久性的。如果客戶端重試命令,將再次出現同樣的錯誤。
        500 語法錯誤,命令無法識別。這可能包括諸如命令列太長之類的錯誤。
        501 在引數中有語法錯誤。
        502 未執行命令。
        503 錯誤的命令序列。
        504 未執行該引數的命令。
        530 未登入。
        532 儲存檔案需要帳戶。
        550 未執行請求的操作。檔案不可用(例如,未找到檔案,沒有訪問許可權)。
        551 請求的操作異常終止:未知的頁面型別。
        552 請求的檔案操作異常終止:超出儲存分配(對於當前目錄或資料集)。
        553 未執行請求的操作。不允許的檔名。

 

三、參考文件

    http://justcoding.iteye.com/blog/835002

    http://www.it165.net/admin/html/201308/1674.html    

 



相關文章