02.11 FTP文件傳輸協議經典問題:文件傳輸結束如何判斷

FTP是基於TCP/IP協議的文件傳輸協議,位於TCP/IP的應用層,是Internet中使用最廣泛的文件傳輸協議。FTP保證客戶端和服務器端之間的連接是可靠的、面向連接的,為數據的傳輸提供了可靠的保證。

FTP文件傳輸協議經典問題:文件傳輸結束如何判斷

FTP

FTP使用客戶端-服務器模型,一個FTP服務器進程可以為多個客戶進程提供服務。FTP服務器有兩大部分組成:一個主進程,負責接受新的請求;還有若干從屬進程,負責處理單個請求。

主進程工作步驟:

1)打開熟知端口(21),使客戶進程能夠連接上

2)等待客戶進程發送連接請求

3)啟動從屬進程處理客戶進程發送的連接請求,從屬進程處理完請求後結束

4)從屬進程在運行期間可能根據需要可創建其他一些子進程

5)回到等待狀態,繼續接受其他客戶進程發起的請求,主進程與從屬進程的處理是併發進行的

FTP文件傳輸協議經典問題:文件傳輸結束如何判斷

等待狀態

經典問題:文件傳輸結束如何判斷?

通用傳輸方式是流方式,並且文件的結尾是以關閉數據連接為標誌,這意味著對每一個文件傳輸或目錄列表來說都要建立一個全新的數據連接。其一般過程如下:

1)正由於是客戶發出命令要求建立數據連接,所以數據連接是在客戶的控制下建立的。

2)客戶通常在客戶端主機上為所在數據連接端選擇一個臨時端口號。客戶從該端口發佈一個被動的打開。

3)客戶使用PORT命令從控制連接上把端口號發向服務器。

4)服務器在控制連接上接收端口號,並向客戶端主機上的端口發佈一個主動的打開。服務器的數據連接端一直使用端口20。

圖27- 4給出了第 3步執行時的連接狀態。假設客戶用於控制連接的臨時端口是1173,客戶用於數據連接的臨時端口是1174。客戶發出的命令是PORT命令,其參數是6個ASCII中的十進制數字,它們之間由逗點隔開。前面 4個數字指明客戶上的IP地址,服務器將向它發出主動打開(本例中是 140.252.13.34),而後兩位指明16 bit端口地址。由於16 bit端口地址是從這兩個數字中得來,所以其值在本例中就是 4×256+150=1174。

圖27-5給出了服務器向客戶所在數據連接端發佈主動打開時的連接狀態。服務器的端點是端口20。

FTP文件傳輸協議經典問題:文件傳輸結束如何判斷

連接狀態

服務器總是執行數據連接的主動打開。通常服務器也執行數據連接的主動關閉,除非當客戶向服務器發送流形式的文件時,需要客戶來關閉連接(它給服務器一個文件結束的通知)。

FTP傳輸方式是什麼?

一般而言,FTP傳輸方式有兩種:ASCII與二進制。

ASCII傳輸方式:當用戶傳輸的文件包含簡單ASCII文本或可能是程序、數據庫、字處理文件或者壓縮文件等,在拷貝任何非文本文件之前,用binary 命令告訴FTP逐字拷貝。

二進制傳輸方式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。

FTP傳輸方式命令是什麼?

FTP使得主機間可以共享文件。FTP 使用 TCP 生成一個虛擬連接用於控制信息,然後再生成一個單獨的 TCP 連接用於數據傳輸。控制連接使用類似 TELNET 協議在主機間交換命令和消息。

關於FTP傳輸方式的命令如下圖所示。

FTP文件傳輸協議經典問題:文件傳輸結束如何判斷

FTP傳輸方式的命令


分享到:


相關文章: