1 ftp概述
文件傳送協(xié)議 ftp (file transfer protocol)
是因特網(wǎng)上使用得最廣泛的文件傳送協(xié)議。
ftp 提供交互式的訪問,允許客戶指明文件的類型與格式,并允許文件具有存取權(quán)限。
ftp
屏蔽了各計算機系統(tǒng)的細節(jié),因而適合于在異構(gòu)網(wǎng)絡(luò)中任意計算機之間傳送文件。
rfc 959 很早就成為了因特網(wǎng)的正式標準。
網(wǎng)絡(luò)環(huán)境中的一項基本應(yīng)用就是將文件從一臺計算機中復(fù)制到另一臺可能相距很遠的計算機中。
初看起來,在兩個主機之間傳送文件是很簡單的事情。
其實這往往非常困難。原因是眾多的計算機廠商研制出的文件系統(tǒng)多達數(shù)百種,且差別很大。
2 ftp 的基本工作原理
網(wǎng)絡(luò)環(huán)境下復(fù)制文件的復(fù)雜性:
(1) 計算機存儲數(shù)據(jù)的格式不同。
(2)
文件的目錄結(jié)構(gòu)和文件命名的規(guī)定不同。
(3) 對于相同的文件存取功能,操作系統(tǒng)使用的命令不同。
(4)
訪問控制方法不同。
ftp 特點
文件傳送協(xié)議 ftp 只提供文件傳送的一些基本的服務(wù),它使用 tcp
可靠的運輸服務(wù)。
ftp 的主要功能是減少或消除在不同操作系統(tǒng)下處理文件的不兼容性。
ftp 使用客戶服務(wù)器方式。一個 ftp
服務(wù)器進程可同時為多個客戶進程提供服務(wù)。ftp
的服務(wù)器進程由兩大部分組成:一個主進程,負責(zé)接受新的請求;另外有若干個從屬進程,負責(zé)處理單個請求。
主進程的工作步驟
打開熟知端口(端口號為
21),使客戶進程能夠連接上。
等待客戶進程發(fā)出連接請求。
啟動從屬進程來處理客戶進程發(fā)來的請求。從屬進程對客戶進程的請求處理完畢后即終止,但從屬進程在運行期間根據(jù)需要還可能創(chuàng)建其他一些子進程。
回到等待狀態(tài),繼續(xù)接受其他客戶進程發(fā)來的請求。主進程與從屬進程的處理是并發(fā)地進行。
兩個連接
控制連接在整個會話期間一直保持打開,ftp
客戶發(fā)出的傳送請求通過控制連接發(fā)送給服務(wù)器端的控制進程,但控制連接不用來傳送文件。
實際用于傳輸文件的是“數(shù)據(jù)連接”。服務(wù)器端的控制進程在接收到
ftp
客戶發(fā)送來的文件傳輸請求后就創(chuàng)建“數(shù)據(jù)傳送進程”和“數(shù)據(jù)連接”,用來連接客戶端和服務(wù)器端的數(shù)據(jù)傳送進程。
數(shù)據(jù)傳送進程實際完成文件的傳送,在傳送完畢后關(guān)閉“數(shù)據(jù)傳送連接”并結(jié)束運行。
兩個不同的端口號
當(dāng)客戶進程向服務(wù)器進程發(fā)出建立連接請求時,要尋找連接服務(wù)器進程的熟知端口(21),同時還要告訴服務(wù)器進程自己的另一個端口號碼,用于建立數(shù)據(jù)傳送連接。
接著,服務(wù)器進程用自己傳送數(shù)據(jù)的熟知端口(20)與客戶進程所提供的端口號碼建立數(shù)據(jù)傳送連接。
由于
ftp 使用了兩個不同的端口號,所以數(shù)據(jù)連接與控制連接不會發(fā)生混亂。
使用兩個不同端口號的好處
使協(xié)議更加簡單和更容易實現(xiàn)。
在傳輸文件時還可以利用控制連接(例如,客戶發(fā)送請求終止傳輸)。