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