《《文件傳輸協(xié)議》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《文件傳輸協(xié)議》PPT課件.ppt(41頁珍藏版)》請在裝配圖網上搜索。
1、1,第12章 文件傳輸協(xié)議,文件是計算機系統(tǒng)中信息存儲、處理和傳輸的主要形式,大多數計算機系統(tǒng)都支持網絡文件訪問功能。 對網絡文件訪問的需求來自四個方面: 不同應用程序之間的數據共享; 利用遠程存儲介質存儲后備文件; 無盤站點通過網絡訪問服務器上的文件信息; 以文件形式進行的數據交換。,2,第12章 文件傳輸協(xié)議,12.1 TCP/IP文件傳輸協(xié)議(FTP) 12.2 FTP 進程模型 12.3 FTP命令與響應 12.4 匿名FTP 12.5 簡單文件傳送協(xié)議(TFTP) 12.6 TFTP報文,3,12.1 TCP/IP文件傳輸協(xié)議(FTP),FTP工作在TCP/IP模型的應用層,基于的傳
2、輸協(xié)議是TCP, FTP客戶在和服務器之間的連接是可靠的,面向連接為數據的傳輸提供了可靠的保證。 1FTP的目標: 1)主機之間共享計算機程序或數據; 2)本地主機間接地使用遠程計算機 ; 3)向用戶屏蔽不同主機中各種文件存儲系統(tǒng)的細節(jié); 4)可靠和高效的傳輸數據。,4,2FTP主要特征: 1)控制連接是建立在用戶協(xié)議解釋器和服務器協(xié)議解釋器之間用于交換命令與應答的通信鏈路。 2)數據連接是傳輸數據的全雙工連接。傳輸數據可以發(fā)生在服務器數據傳輸過程DTP和用戶DTP之間也可以發(fā)生在兩個服務器DTP之間。,5,3)文件類型 (1) ASCII碼文件類型(默認選擇),以NVT ASCII碼形式通過
3、數據連接傳輸。 (2) EBCDIC文件類型。該文本文件傳輸方式要求兩端都是EBCDIC系統(tǒng)。 (3) 圖像文件類型(也稱為二進制文件類型)。數據發(fā)送形式呈現為一個連續(xù)的比特流。 ASCII碼文件類型和EBCDIC文件類型還要加上文件是否可打印的屬性(Noprint/TELNET),6,4)數據結構 文件結構(File structure)字節(jié)流,無結構。 記錄結構(Record structure )文件被劃分為記錄,用于文本文件。 頁結構(Page structure )文件被劃分為頁,每頁有頁號和頁頭。可以進行隨機存取或順序存取。,7,5) 傳輸方式 FTP的傳輸模式有流模式、塊模式和
4、壓縮模式: (1) 流模式 數據以字節(jié)流的形式傳送 記錄結構(EOR,EOF) 文件結構,接收到的所有數據就是文件內容。(EOF) (2) 塊模式 文件以塊形式傳送,塊帶有自己的頭部分。頭字節(jié)包括16位計數域和8位描述子代碼。 (3) 壓縮模式 壓縮模式中,因為數據是壓縮過的,對于增加帶寬有很多好處。,8,塊模式頭字節(jié)的結構 描述子代碼由在描述子字節(jié)中的位標記說明,9,3FTP的客戶服務器模型 下圖表示 FTP客戶服務器模型,客戶和服務器之間利用TCP建立連接。 FTP客戶與服務器之間要建立雙重連接,一個是控制連接,一個是數據連接。 控制連接:NVT ASCII 數據連接:文件類型、數據
5、結構、傳輸方式,10,建立雙重連接的原因:FTP是一個交互式會話系統(tǒng),某客戶每次調用FTP,便與服務器建立一個會話,會話以控制連接來維持。 客戶每提出一個請求,服務器與客戶建立一個數據連接,進行實際的數據(比如文件)傳輸。一旦數據傳輸結束,數據連接相繼撤消,但控制連接依然存在,客戶可以繼續(xù)發(fā)出命令。 客戶可以撤消控制連接(close命令),也可以退出FTP會話(quit命令)。,返回,11,12.2 FTP 進程模型,FTP服務的實現是由一組FTP進程完成的。 服務器FTP進程:由協(xié)議解釋器PI和數據傳輸過程DTP組成。 用戶FTP進程:由PI、DTP和用戶接口組成。 傳輸與控制采用獨立的連接
6、方式具有以下三方面的優(yōu)點: 使FTP協(xié)議更加簡單并且更容易實現,例如控制連接可以直接采用Telnet協(xié)議實現,FTP數據連接不會與FTP命令混淆起來。 在數據連接結束后,控制連接仍然保留著,它能夠在新的傳輸連接時被使用。 發(fā)送方與接收方在所有的數據都到達時可以在數據連接上用文件結束來通知另一方,從而達到命令傳輸的功能。,12,12.2.1 FTP控制連接 控制連接是建立在用戶協(xié)議解釋器和服務器協(xié)議解釋器之間用于交換命令與應答的通信鏈路。FTP僅僅在發(fā)送命令并接收應答時使用控制連接。 用戶在兩臺主機間建立控制連接,然后進行數據連接,客戶與服務器為每個文件傳輸建立一個單獨的數據連接。 如果用戶請求
7、另一個傳輸,那么客戶與服務器將建立一個新的數據連接。為了避免在控制與數據連接之間發(fā)生沖突,FTP對于兩者使用不同的協(xié)議端口號。,13,FTP協(xié)議要求數據傳輸在處理時打開控制連接。盡管數據連接頻繁地出現并消失,但是控制連接卻在整個會話中一直保持著。在完成FTP服務后由用戶發(fā)出中止控制連接命令。 控制連接用NVT ASCII傳命令和響應。,14,圖中,箭頭方向表示連接是由哪一方發(fā)起的。 客戶向服務器發(fā)出請求命令,形成控制連接。 數據連接按相反的方向形成??蛻襞c服務器的角色反轉了。 注意FTP和Telnet的關系,FTP使用Telnet協(xié)議進行控制連接。,15,12.2.2 FTP數據連接 數據連接
8、是傳輸數據的全雙工連接。 1數據連接機制 數據連接可以用文件結束來終止傳輸過程。這樣做的好處可以改變所傳輸文件的大小。例如,當服務器中應用程序正在寫入文件時,如果FTP也同時在將這個文件的副本傳輸至客戶。由于文件傳輸的連接是單獨的,服務器不必利用控制連接告訴客戶方所傳輸文件的大小,只需要用數據連接的文件結束來終止傳輸。,16,在建立數據連接時,客戶數據傳輸進程成為連接的接收者,而服務器數據傳輸進程成了連接的請求者。 客戶在需要進行數據傳輸時,其數據傳輸進程在一個自由端口上發(fā)出被動打開,然后客戶在控制連接上通過PORT命令將該自由端口告訴服務器控制進程,服務器數據傳輸進程在端口20上主動打開并與
9、客戶數據傳輸進程的自由端口建立連接。 數據連接機制還包括建立連接選擇數據參數。,17,2數據連接管理 默認數據連接端口:所有FTP服務器必須使用默認數據連接端口(20)。 確定非默認數據端口:用戶PI可以使用PORT命令指定客戶的非默認端口。 3數據連接的關閉 關閉連接的條件: 用戶端發(fā)送ABORT命令 服務器通過EOF終止要求,表示結束發(fā)送數據 控制連接關閉 發(fā)生不可恢復錯誤,18,被動打開,控制進程,,,60201,控制進程,,,21,,數據傳輸進程,,,60261,被動打開,控制進程,,,60201,控制進程,,,21,,數據傳輸進程,,數據傳輸進程,,,60261,,PORT 6026
10、1,控制進程,,,60201,控制進程,,,21,,數據傳輸進程,,數據傳輸進程,,,60261,,20,,客戶,服務器,控制連接,數據連接,,20,19,12.2.3 通信 FTP使用客戶/服務器模式。涉及到五個進程和兩個相關。 服務器首先運行一個本地FTP主服務進程,當客戶端用戶輸入open和ftp命令后,客戶指定一個遠程計算機時,建立一個客戶控制進程,本地應用成為一個FTP客戶,建立了自己的半相關。,20,然后,客戶用TCP建立與指定計算機上的FTP服務器之間的控制連接。 服務器接收到客戶連接請求后,派生一個服務器控制進程,該進程與客戶控制進程建立起控制連接,即相關,雙方進入會話狀態(tài)。
11、客戶要進行數據傳輸時,派生一個客戶數據傳輸進程,并在一個非默認端口上被動打開,通過控制連接,客戶用PORT將端口號發(fā)給服務器控制進程。 服務器控制進程接收到后,派生一個服務器數據傳輸進程,該進程建立一個自己的半相關(20),并向客戶數據進程發(fā)出連接請求,與客戶數據傳輸進程建立相關,雙方建立數據傳輸。 數據傳輸結束后,關閉數據連接,雙方數據傳輸進程結束,但控制進程仍然存在,然后可以再重新發(fā)起新的數據傳輸服務。,返回,21,12.3 FTP命令與響應,1FTP命令 FTP命令主要用于控制連接,可以直接采用Telnet協(xié)議實現,所以FTP命令同Telnet命令包括中斷進程、Telnet的同步信號、查
12、詢服務器、帶選項的Telnet命令等。 命令以NVT ASCII碼形式傳送,要求在每行結尾都要有CR、LF對。,22,,23,,24,2FTP響應 響應都是ASCII碼形式的3位數字,響應也是以NVT ASCII碼形式傳送,要求在每行結尾都要返回CR、LF對。,25,返回,26,12.4 匿名FTP,1.匿名FTP用途 從前面的講解可知,使用FTP時必須首先利用Telnet協(xié)議登錄,獲得遠程主機相應的權限,才能上傳或下載文件。 本地主機必需具有用戶ID和口令,獲得遠地計算機的適當授權,否則便無法傳送文件。Internet上的FTP主機很多,不可能要求每個用戶在每一臺主機上都擁有帳號。 匿名FT
13、P無需本地主機成為遠地計算機的注冊用戶,從而解決了這個問題。,27,2. 匿名FTP機制 遠程主機建立了名為anonymous的用戶特殊ID,這樣Internet上的任何人在任何地方都可使用該用戶ID,下載文件,而無需成為其注冊用戶。 匿名FTP主機的連接使用方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,其口令可以是客戶自己喜歡的任意字符串。 3. 匿名FTP的使用 匿名FTP是Internet網上發(fā)布軟件和其它信息內容的常用方法。,28,4. 匿名FTP的安全 當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統(tǒng)中的其余
14、目錄則處于隱匿狀態(tài)。 作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上傳文件。 即使有些匿名FTP主機確實允許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。 系統(tǒng)管理員會去檢查這些上傳文件,會將這些文件移至另一個公共下載目錄中,供其他用戶下載,同時也保護自己免受病毒破壞。,返回,29,12.5 簡單文件傳送協(xié)議(TFTP),1簡單文件傳送協(xié)議TFTP簡介 簡單文件傳送協(xié)議TFTP(Trivial File Transfer Protocol)是網絡應用程序,它比FTP簡單也比FTP功能少。TFTP客戶與服務器之間的傳輸層通信使用的是UDP。 TFTP服
15、務器必須提供一定形式的并發(fā)。TFTP服務器通過為每個客戶提供一個新的UDP端口來提供并發(fā)。 TFTP協(xié)議沒有提供安全特性,很多安全特性都必需由TFTP服務器系統(tǒng)管理員來限制客戶訪問所指定的文件。,30,2TFTP的用途 簡單文件傳送協(xié)議的應用包括: 1)為無盤工作站下載引導文件,下載初始化代碼到打印機、集線器和路由器。 例如存在這樣的設備,它擁有一個網絡連接和小容量的固化了TFTP、UDP和IP的只讀存儲器(Read-Only Memory,ROM)。 加電后,設備執(zhí)行ROM中的代碼,在網絡上廣播一個TFTP請求。網絡上的TFTP服務器響應請求包含可執(zhí)行二進制程序的文件,設備收到文件后,將它載
16、入內存,然后開始運行程序。,31,2)路由器的信息設置 路由器可以在指定的TFTP服務器上存儲設置參數,如果這個路由器癱瘓了,正確的設置信息可以從TFTP服務器上下載到一個修復的路由器或者一個替代的路由器,這便為路由器提供了種容錯能力。(備份),返回,32,12.6 TFTP報文,TFTP傳輸的數據使用固定長度( 512個字節(jié))的分組報文。如果一個分組報文少于512字節(jié),表明這是數據傳輸的最后一個分組報文。 當一個數據的分組報文被發(fā)送到目標主機之后,數據將在一個緩沖區(qū)域內保存直到接收到一個確認信號,它表明數據已經被成功地接收了。 如果在再發(fā)送時間失效之前,發(fā)送主機沒有接收到確認信號,則數據分組
17、報文將被重新發(fā)送。,33,TFTP 協(xié)議的封裝形式和五種消息格式:,,34,TFTP報文的頭兩個字節(jié)表示操作碼。 文件名指明從TFTP服務器上正在上傳或下載的文件的名字,它使用一個可變長的段,0指明文件名結束。 模式字段是一個ASCII碼串netascii或octet,同樣以0字節(jié)結束。 netascii表示數據是以成行的ASCII碼字符組成,以兩個字節(jié)回車字符后跟換行字符(稱為CR/LF)作為行結束符。 octet則將數據看作8bit一組的字節(jié)流而不作任何解釋。 TFTP協(xié)議的五種消息格式分別是:讀請求(RRQ)、寫請求(WRQ)、數據(DATA)、確認(ACK)、出錯(ERR)。,35,1
18、)讀請求(RRQ)和寫請求(WRQ) 讀請求(RRQ)和寫請求(WRQ)都使用相同的格式。操作碼:1為讀請求;2為寫請求。 2)數據(DATA) TFTP傳輸實際數據時,使用DATA消息格式。操作碼被設置成3,表明數據在以TFTP消息傳輸。 初始塊號被設置成1,為初始的DATA分組報文。每一個附加的分組報文將增加1,直到整個文件傳輸結束。 數據段可有512字節(jié)長。如果數據段少于512字節(jié)(0--511),則表明來自文件的最后一個數據塊。如果正好是512字節(jié)長,則說明要完成文件的傳輸必須傳送額外的0長度數據塊。,36,3)確認(ACK) ACK確認(ACK)分組報文的操作碼值為4。塊號段包含正在
19、被確認的DATA分組報文的塊號。 如果此確認信號是回答一個寫請求的,則這個塊號將被設置成0,從而表明數據的傳輸可以開始。 4)出錯(ERR) 出錯(ERR)操作碼設置為5。出錯代碼給出出錯類型值。出錯消息以NETASCII格式儲存,并且加上一個文本描述從而幫助調試TFTP的出錯消息。出錯消息段是可變長的,所以出錯消息總是以一個“0”來作為結尾標志。,37,出錯代碼描述:,38,TFTP與文件傳輸協(xié)議FTP的比較 1TFTP協(xié)議的優(yōu)勢 盡管TFTP比FTP的功能要弱得多,但是TFTP具有兩個優(yōu)點: TFTP能夠用于那些有UDP而無TCP的環(huán)境。 TFTP代碼所占的內存要比FTP小。 2TFTP協(xié)
20、議與FTP協(xié)議的共同點 兩個協(xié)議的作用大致相同,都是用于文件的傳輸,可以實現網絡中兩臺計算機之間的文件上傳與下載。可以將TFTP協(xié)議看做是FTP協(xié)議的簡化版本。,39,3TFTP協(xié)議與FTP協(xié)議的不同點 1)TFTP協(xié)議不需要認證客戶端的權限,FTP需要進行客戶端認證; 2)TFTP協(xié)議一般多用于局域網以及遠程UNIX計算機中,而常見的FTP協(xié)議則多用于互聯網中。 3)TFTP客戶與服務器之間的通信使用的是UDP而非TCP。 4)TFTP只支持文件傳輸。也就是說,TFTP不支持交互,而且沒有一個龐大的命令集。最為重要的是,TFTP不允許用戶列出目錄內容或者與服務器協(xié)商來決定那些可得到的文件名。
21、,40,本章要點,FTP客戶和服務器之間的連接是可靠的,而且是面向連接,為數據的傳輸提供了可靠的保證。 FTP客戶與服務器之間要建立雙重連接,一個是控制連接,一個是數據連接。 用戶在兩臺主機間建立控制連接,然后進行數據連接,但是FTP并不通過控制連接來傳送數據,客戶與服務器為每個文件傳輸建立一個單獨的數據連接。 FTP服務的實現由一組FTP進程完成。服務器FTP進程是和用戶FTP進程一起工作的,它由協(xié)議解釋器PI和數據傳輸過程DTP組成。用戶FTP進程則是由PI、DTP和用戶接口組成的。,41,FTP命令和響應主要用于控制連接,可以直接采用Telnet協(xié)議實現。 遠程主機建立了名為anonymous的用戶特殊ID,而無需成為其注冊用戶。 簡單文件傳送協(xié)議TFTP是網絡應用程序,它比FTP簡單也比FTP功能少。 TFTP協(xié)議的五種消息分別是:讀請求(RRQ)、寫請求(WRQ)、數據(DATA)、確認(ACK)、出錯(ERR)。,返回,