TCP/IP 之FTP協議

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

發佈了54 篇原創文章 · 獲贊 16 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章