術語
FTP(FILE TRANSFER PROTOCOL):檔案傳輸協定。
PI(protocol interpreter):協定解析器。使用者和伺服器用其來解析協定,它們的具體實作分别稱為使用者 PI (USER-PI)和伺服器PI(SERVER-PI)。
伺服器PI(server-PI):伺服器 PI 在 L 端口“監聽”使用者協定解析器的連接配接請求并建立控制連接配接。它從使用者 PI接收标準的 FTP 指令,發送響應,并管理伺服器 DTP。
伺服器DTP(server-DTP):資料傳輸過程,在通常的“主動”狀态下是用“監聽”的資料端口建立資料連接配接。它建立傳輸和存儲參數,并在伺服器端 PI 的指令下傳輸資料。伺服器端 DTP 也可以用于“被動”模式,而不是主動在資料端口建立連接配接。
使用者PI(user-PI):使用者協定解析器用 U 端口建立到伺服器 FTP 過程的控制連接配接,并在檔案傳輸時管理使用者 DTP。
使用者DTP(user-DTP):資料傳輸過程在資料端口“監聽”伺服器 FTP 過程的連接配接。
控制連接配接:使用者PI 與伺服器PI 用來交換指令和響應的資訊傳輸通道。
資料連接配接:通過控制連接配接協商的模式和類型進行資料傳輸。
FTP協定簡介
檔案傳輸協定(FTP)使得主機間可以共享檔案。 FTP 使用 TCP 生成一個虛拟連接配接用于控制指令互動,然後再生成一個單獨的 TCP 連接配接用于資料傳輸。FTP模型如圖1-1所示:

圖1-1
圖1-1 中描述的模型中,控制連接配接由使用者PI 發起。首先由使用者PI 産生标準FTP 指令通過控制連接配接傳輸到伺服器過程。标準響應由伺服器端PI 通過控制連接配接發送到使用者PI 作為指令的回應。
FTP 指令指定資料連接配接參數(端口,傳輸模式,表示類型,以及結構)和檔案系統操作種類(store,retrieve,append,delete 等)。使用者DTP 則應在指定的資料端口“監聽”,伺服器用相應的參數發起資料連接配接并傳送資料。
FTP控制指令
FTP 控制幀即遠端交換資訊,包含控制指令和選項。大多數 FTP 控制幀是簡單的ASCII文本,使用者通過使用者PI向伺服器PI發出FTP指令,伺服器PI執行使用者PI的FTP指令,并将執行的結果傳回給使用者。常用的FTP指令如下所示:
指令 |描述
ABOR:中斷資料連接配接程式
ACCT:系統特權帳号
ALLO:為伺服器上的檔案存儲器配置設定位元組
APPE:添加檔案到伺服器同名檔案
CDUP :改變伺服器上的父目錄
CWD :改變伺服器上的工作目錄
DELE:删除伺服器上的指定檔案
HELP:傳回指定指令資訊
LIST:如果是檔案名列出檔案資訊,如果是目錄則列出檔案清單
MODE:傳輸模式(S=流模式,B=塊模式,C=壓縮模式)
MKD:在伺服器上建立指定目錄
NLST:列出指定目錄内容
NOOP:無動作,除了來自伺服器上的承認
PASS:系統登入密碼
PASV:請求伺服器等待資料連接配接
PORT :IP 位址和兩位元組的端口 ID
PWD:顯示目前工作目錄
QUIT:從 FTP 伺服器上登出
REIN:重新初始化登入狀态連接配接
REST:由特定偏移量重新開機檔案傳遞
RETR:從伺服器上找回(複制)檔案
RMD:在伺服器上删除指定目錄
RNFR:對舊路徑重命名
RNTO:對新路徑重命名
SITE:由伺服器提供的站點特殊參數
SMNT:挂載指定檔案結構
STAT:在目前程式或目錄上傳回資訊
STOR:儲存(複制)檔案到伺服器上
STOU:儲存檔案到伺服器名稱上
STRU:資料結構(F=檔案,R=記錄,P=頁面)
SYST:傳回伺服器使用的作業系統
TYPE:資料類型(A=ASCII,E=EBCDIC,I=binary)
USER>:系統登入的使用者名
FTP指令的響應是為了對資料傳輸請求和過程進行同步,也是為了讓使用者了解伺服器的狀态 。每個指令必須至少有一個響應,如果有多個響應,每個響應要易于差別。FTP響應碼如下所示:
響應代碼 |描述
110:新檔案訓示器上的重新開機标記
120:伺服器準備就緒的時間(分鐘數)
125:打開資料連接配接,開始傳輸
150:打開連接配接
200:成功
202:指令沒有執行
211:系統狀态回複
212:目錄狀态回複
213:檔案狀态回複
214:幫助資訊回複
215:系統類型回複
220:服務就緒
221:退出網絡
225:打開資料連接配接
226:結束資料連接配接
227:進入被動模式(IP 位址、ID 端口)
230:登入網際網路
250:檔案行為完成
257:路徑名建立
331:要求密碼
332:要求帳号
350:檔案行為暫停
421:服務關閉
425:無法打開資料連接配接
426:結束連接配接
450:檔案不可用
451:遇到本地錯誤
452:磁盤空間不足
500:無效指令
501:錯誤參數
502:指令沒有執行
503:錯誤指令序列
504:無效指令參數
530:未登入網絡
532:存儲檔案需要帳号
550:檔案不可用
551:不知道的頁類型
552:超過存儲配置設定
553檔案名不允許
舉報/回報