1、FTP(檔案傳輸通訊協定),用於將一個主機上的檔案傳送到另一個主機。和其他協議不同的是,它使用兩條串連,一條用於資料傳送(port 20),另一條用於命令控制傳送(port 21)。其中,控制串連在整個FTP會話階段(ftp session)都是處於串連狀態,而資料連線是有資料要傳則開啟,沒有資料傳了就關閉。
2、串連
(1)、在控制串連過程中,IP資料報在TOS欄位裡面使用的是最小時延標誌。
(2)、資料連線方法和別的協議不同,他是用戶端被動開啟的,而有伺服器段主動串連。具體如下:
客戶用一個臨時連接埠被動開啟,然後用控制串連上通過PORT 命令將這個連接埠告知伺服器,伺服器用連接埠20來主動串連客戶的臨時連接埠.
3、通訊
(1)、在控制串連上的通訊如同telnet協議,用NVT ASCII字元集。(一條命令和響應都是一行)
(2)、資料連接埠的通訊,要解決異構性問題,用3方面屬性解決:檔案類型,資料結構,傳輸方式。
a、檔案類型:預設的ASCII格式,影像檔等
b、資料結構:預設的檔案流結構,記錄結構,頁面結構。
c、傳輸方式:預設的流方式(以EOF結束),塊方式(每塊之前有3位元組首部,第一位元組定義塊描述符,後面的是該快的大小),壓縮方式
在unix環境下的限制如下:必須是流方式,只允許檔案流結構傳輸
4、命令處理:
(1)、用戶端常見的命令分六組,略.
一些命令解釋:
連接埠定義命令中的PASV,如果不用PORT而用PASV命令,則檔案傳輸串連過程不同於上,是:客戶發送PASV,請求伺服器選擇一個連接埠號碼,在這個連接埠號碼被動開啟,同時伺服器發回227響應告知該連接埠,於是客戶主動串連伺服器告知的連接埠進行檔案傳輸。
常見的命令:LIST,QUIT,RETR,STOR,USER,PASS,CWD,
(2)、伺服器的響應命令:有3個數位命令碼後跟一些資料。3個資料的命令碼的含義如下:(xyz)
x定義命令的狀態:1是動作已經開始,2是動作已經完成,3是命令已經接受,正在處理;4是動作出現短暫性錯誤,5是動作不能接受,無需再試。
y定義命令的對象:0是文法,1是資訊,2是串連,3是帳號,4是未指明,5是檔案系統。
z提供一些附加資訊。
詳見的響應命令嘛舉例如下:
125 資料連線已經開啟,傳輸開始。
200 就緒
214 協助報文
331 使用者名稱就緒,奧球輸入口令
425 不能開啟資料連線
452 錯寫檔案
500 語法錯誤(未認可的命令)
501 語法錯誤(無效參數)
5、匿名FTP:有些公用的檔案供福士訪問,用匿名,其口令一般為:guest