FTP工作在TCP/IP模型的應(yīng)用層,,基于的傳輸協(xié)議是TCP,,F(xiàn)TP客戶端和服務(wù)器之間的連接是可靠的,面向連接的,,為數(shù)據(jù)的傳輸提供了可靠的保證,。 FTP的主要特征: 1.控制連接是建立在客戶協(xié)議解釋器和服務(wù)器協(xié)議解釋器之間用于交換命令與應(yīng)答的通信鏈路。 2.數(shù)據(jù)連接是傳輸數(shù)據(jù)的全雙工連接,。傳輸數(shù)據(jù)可以發(fā)生在服務(wù)器數(shù)據(jù)傳輸過程DTP和客戶DTP之間,,也可以發(fā)生在兩個服務(wù)器的DTP之間。 文件類型: 1.ASCII碼文件類型(默認選擇),,以NVT ASCII碼形式通過數(shù)據(jù)連接傳輸,; 2.EBCDIC文件類型。該文本文件傳輸方式要求兩端都是EBCDIC系統(tǒng),; 3.圖像文件類型(也成為二進制文件類型),,數(shù)據(jù)發(fā)送形式呈現(xiàn)為一個連續(xù)的比特流。 數(shù)據(jù)結(jié)構(gòu): 1.文件結(jié)構(gòu)(File Structure)字節(jié)流,,無結(jié)構(gòu),; 2.記錄結(jié)構(gòu)(Record Structure)文件被劃分為記錄,用于文本文件,; 3.頁結(jié)構(gòu)(Page Structure)文件被劃分為頁,,每頁有頁號和頁頭??梢赃M行隨機存取或順序存取,。 傳輸方式: FTP的傳輸模式有流模式,、塊模式和壓縮模式: 1.流模式:數(shù)據(jù)以字節(jié)流的形式傳送 -記錄結(jié)構(gòu) -文件結(jié)構(gòu) 2.塊模式:文件以塊的形式傳送,塊帶有自己的頭部分,。頭字節(jié)包括16位計數(shù)域和8位描述子代碼 3.壓縮模式:壓縮模式中,,因為數(shù)據(jù)是壓縮過的,對于增加帶寬有很多好處,。 塊模式頭字節(jié)的結(jié)構(gòu) 描述子代碼在描述子字節(jié)中的位標記說明 FTP中的客戶端-服務(wù)器模型 FTP客戶端與服務(wù)器之間要建立雙重連接,,一個是控制連接,一個是數(shù)據(jù)連接,。 控制連接:NVT ASCII 數(shù)據(jù)連接:文件類型,、數(shù)據(jù)結(jié)構(gòu)、傳輸方式 建立雙重連接的原因是:FTP是一個交互式會話系統(tǒng),,某客戶每次調(diào)用FTP,,便與服務(wù)器建立一次會話,會話以控制連接來維持,。 客戶端每提出一個請求,,服務(wù)器與客戶端建立一個數(shù)據(jù)連接,進行實際的數(shù)據(jù)(比如文件)傳輸,,一旦數(shù)據(jù)傳輸結(jié)束,,數(shù)據(jù)連接相繼撤銷,但控制連接依然存在,,客戶端可以繼續(xù)發(fā)出命令,。 客戶可以撤銷控制連接(close命令),也可以退出FTP會話(quit命令),。 FTP服務(wù)器的實現(xiàn)是由一組FTP進程完成的,。 服務(wù)器FTP進程:由協(xié)議解釋器PI和數(shù)據(jù)傳輸過程DTP組成。 客戶端FTP進程:由PI,、DTP和用戶接口組成。 傳輸和控制采用獨立的連接方式具有以下三方面的優(yōu)點: 1.使FTP協(xié)議更加簡單并且更容易實現(xiàn),,例如控制連接可以直接采用Telnet協(xié)議實現(xiàn),,F(xiàn)TP數(shù)據(jù)連接不會與FTP命令混淆起來; 2.在數(shù)據(jù)連接結(jié)束后,,控制連接仍然保留著,,它能夠在新的傳輸連接時被使用; 3.發(fā)送方與接收方在所有的數(shù)據(jù)都到達時可以在數(shù)據(jù)連接上用文件結(jié)束來通知另一方,,從而達到命令傳輸?shù)墓δ堋?/span> FTP使用Telnet協(xié)議進行控制連接,。 通信: FTP使用客戶端/服務(wù)器模式,涉及到五個進程和兩個相關(guān),。 服務(wù)器首先運行一個本地FTP主服務(wù)進程,,當客戶端用戶輸入open或ftp命令后,客戶端指定一個遠程計算機時,建立一個客戶端控制進程,,本地應(yīng)用成為一個FTP客戶端,,建立了與自己的半相關(guān)。 然后,,客戶端用TCP建立與指定計算機上的FTP服務(wù)器之間的控制連接,。 服務(wù)器接收到客戶端的請求后,派生一個服務(wù)器控制進程,,該進程與客戶端控制進程建立起控制連接,,即相關(guān),雙方進入會話狀態(tài),。 客戶端要進行數(shù)據(jù)傳輸時,,派生一個客戶端數(shù)據(jù)傳輸進程,并在一個非默端口上被動打開,,通過控制連接,,客戶端用port將端口號發(fā)送給服務(wù)器控制進程。 服務(wù)器控制進程接收到后,,派生一個服務(wù)器數(shù)據(jù)傳輸進程,,該進程建立一個自己的半相關(guān)(20),并向客戶端數(shù)據(jù)進程發(fā)出連接請求,,與客戶端數(shù)據(jù)傳輸進程建立相關(guān),,雙方建立數(shù)據(jù)傳輸。 數(shù)據(jù)傳輸結(jié)束后,,關(guān)閉數(shù)據(jù)連接,,雙方數(shù)據(jù)傳輸進程結(jié)束,但控制進程仍然存在,,然后可以再重新發(fā)起新的數(shù)據(jù)傳輸服務(wù),。 FTP命令與響應(yīng) FTP命令主要用于控制連接,可以直接采用Telnet協(xié)議實現(xiàn),,所以FTP命令同Telnet命令包括中斷進程,、Telnet的同步信號、查詢服務(wù)器,、帶選項的Telnet命令等,。 命令以NVT ASCII碼形式傳送,要求在每行結(jié)尾都要CR,、LF對,。 FTP響應(yīng)都是ASCII碼形式的3位數(shù)字,響應(yīng)也是以NVT ASCII碼形式傳送,,要求在每行結(jié)尾都要返回CR,、LF對,。 匿名FTP的用途: 從前面的講解可知,使用FTP時必須首先利用Telnet協(xié)議登錄,,獲得遠程主機相應(yīng)的權(quán)限,,才能上傳和下載文件。 本地主機必須具有用戶ID和口令,,獲得遠程計算機的適當授權(quán),,否則便無法傳送文件,Internet上的FTP主機很多,,不可能要求每個用戶在每一臺主機上擁有賬號,。 匿名FTP無需本地主機成為遠程計算機的注冊用戶,從而解決了這個問題,。 匿名FTP機制: 遠程計算機建立了名為anonymous的用戶特殊ID,這樣Internet上的任何人在任何地方都可使用該用戶ID,,下載文件,而無需成為其注冊用戶,。 匿名FTP主機的連接使用方式同連接普通FTP主機的方式差不多,,只是在要求提供用戶標識ID時必須輸入anonymous,其口令可以是客戶端自己喜歡的任意字符串,。 |
|