TCP/IP协议族之应用层协议(FTP、TFTP)
文件傳送協(xié)議FTP: File Transfer Protocol
??? 是因特網(wǎng)上使用得最廣泛的文件傳送協(xié)議。提供交互式的訪問,允許客戶指明文件的類型與格式(如指明是否使用ASCII碼),并允許文件具有存取權(quán)限(如訪問文件的用戶必須經(jīng)過授權(quán),并輸入有效的口令)。FTP屏蔽了各計算機(jī)系統(tǒng)的細(xì)節(jié),可在異構(gòu)網(wǎng)絡(luò)中任意計算機(jī)之間傳送文件。
??? FTP基于TCP,TFTP基于UDP,是文件共享協(xié)議的一大類,即復(fù)制整個文件。其特點是:若要存取一個文件,就必須先獲得一個本地的文件副本。若要修改文件,只能對文件的副本進(jìn)行修改,然后再將修改后的文件副本傳回原節(jié)點。
??? 文件共享協(xié)議的另一大類是聯(lián)機(jī)訪問。聯(lián)機(jī)訪問意味著允許多個應(yīng)用程序同時對一個文件進(jìn)行存取。和數(shù)據(jù)庫系統(tǒng)不同的是用戶不需要調(diào)用一個特殊的客戶進(jìn)程,而是由操作系統(tǒng)提供對遠(yuǎn)地共享文件進(jìn)行訪問的服務(wù),就如同對本地文件的訪問一樣。使用戶可以用遠(yuǎn)地文件人微言輕輸入和輸出運行任何應(yīng)用程序,而操作系統(tǒng)中的文件系統(tǒng)則提供對共享文件的透明存取。透明存取優(yōu)點:將原來用于處理本地文件的應(yīng)用程序用來處理遠(yuǎn)地文件時,不需要對該應(yīng)用程序作明顯改動。屬于文件共享協(xié)議的有網(wǎng)絡(luò)文件系統(tǒng)NFS。NFS使本地計算機(jī)共享遠(yuǎn)地的資源,就像這些資源在本地一樣。NFS主要應(yīng)用于TCP/IP網(wǎng)絡(luò)上。現(xiàn)在也可OS/2、MS-Windows,NetWare等。
??? 主機(jī)間傳送文件需要解決的主要問題有:
??????? 計算機(jī)存儲數(shù)據(jù)的格式不同;
??????? 文件的目錄結(jié)構(gòu)和文件命名的規(guī)定不同;
??????? 對于相同的文件存取功能,操作系統(tǒng)使用的命令不同;
??????? 訪問控制方法不同。
??? FTP只提供文件傳送的一些基本的服務(wù),使用TCP可靠的運輸服務(wù)。
??? 主要功能是減少或消除在不同操作系統(tǒng)下處理文件的不兼容性。
??? 使用客戶服務(wù)器方式。一個FTP服務(wù)器進(jìn)程可同時為多個客戶進(jìn)提供服務(wù)。FTP服務(wù)器進(jìn)程主要由兩大部分組成:一個主進(jìn)程,負(fù)責(zé)接受新的請求;另外有若干個從屬進(jìn)程,負(fù)責(zé)處理單個請求。
??? 主進(jìn)程的工作步驟:
??? <1>. 打開熟知端口(TCP21),使客戶進(jìn)程能夠連接上。
??? <2>. 等待客戶進(jìn)程發(fā)出連接請求。
??? <3>. 啟動從屬進(jìn)程來處理客戶進(jìn)程發(fā)來的請求。從屬進(jìn)程對客戶進(jìn)程的請求處理完畢后即終止,但從屬進(jìn)程來運行期間根據(jù)需要還可能創(chuàng)建其他一些子進(jìn)程。
??? <4>. 回到等待狀態(tài),繼續(xù)接受其他客戶進(jìn)程發(fā)來的請求。主進(jìn)程與從屬進(jìn)程的處理是并發(fā)地進(jìn)行。
??? 在進(jìn)行文件傳輸時,FTP的客戶和服務(wù)器之間要建立兩個并行的TCP連接:“控制連接”和“數(shù)據(jù)連接”。控制連接在整個會話期間一直保持打開,FTP客戶所發(fā)出的傳送請求,通過控制連接發(fā)送給服務(wù)器端的控制進(jìn)程,但控制連接并不用來傳送文件。實際用于傳輸文件的是“數(shù)據(jù)傳送進(jìn)程”和“數(shù)據(jù)連接”,用來連接客戶端和服務(wù)器端的數(shù)據(jù)傳送進(jìn)程。數(shù)據(jù)傳送進(jìn)程實際完成文件的傳送,在傳送完畢后關(guān)閉“數(shù)據(jù)傳送連接”并結(jié)束運行。由于FTP使用了一個分離控制連接,因此FTP的控制信息是帶外傳送的。
??? 當(dāng)客戶進(jìn)程向服務(wù)器進(jìn)程發(fā)出建立連接請求的時候,要尋找連接服務(wù)器進(jìn)程的熟知端口(21),同時還要告訴服務(wù)器進(jìn)程自己的另一個端口號碼,用于建立數(shù)據(jù)傳送連接。接著,服務(wù)器進(jìn)程用自己傳送數(shù)據(jù)的熟知端口(20)與客戶進(jìn)程所提供的端口號碼來建立數(shù)據(jù)傳送連接。由于FTP使用了兩個不同的端口號,所以數(shù)據(jù)連接與控制連接不會發(fā)生混亂。
??? NFS允許應(yīng)用程序打開一個遠(yuǎn)地文件,并能在該文件的某一個特定的位置上開始讀寫數(shù)據(jù)。這樣,NFS可使用戶只復(fù)制一個大文件中的一個很小的片段,而不需要復(fù)制整個大文件。在網(wǎng)絡(luò)上傳送的只是少量的修改數(shù)據(jù)。
?
簡單文件傳送協(xié)議TFTP: Trivial File Transfer Protocol
??? 客戶服務(wù)器方式,使用UDP數(shù)據(jù)報,需要有自己差錯改正措施。TFTP只支持文件傳輸而不支持交互。TFTP沒有一個龐大的命令集,沒有列目錄的功能,也不能對用戶進(jìn)行身份識別。
??? 主要優(yōu)點:<1>.TFTP可用于UDP環(huán)境。當(dāng)需要將程序或文件同時向許多機(jī)器下載時就往往需要使用TFTP。<2>.TFTP代碼所占內(nèi)存較小。
??? 主要特點:
??? <1>.每次傳送的數(shù)據(jù)報文有512字節(jié)的數(shù)據(jù),但最后一次可不足512字節(jié)。
??? <2>.數(shù)據(jù)報文按序編號,從1開始。
??? <3>.支持ASCII碼或二進(jìn)制傳送。
??? <4>.可對文件進(jìn)行讀或?qū)憽?/p>
??? <5>.使用很簡單的首部。
??? TFTP工作很像停止等待協(xié)議,每發(fā)送完一個文件塊后就等待對方的確認(rèn),確認(rèn)時應(yīng)指明所確認(rèn)的塊編號。發(fā)送數(shù)據(jù)后在規(guī)定時間內(nèi)收不到確認(rèn)就要重發(fā)數(shù)據(jù)PDU。發(fā)送確認(rèn)PDU的一方若在規(guī)定時間內(nèi)收不到下一個文件塊,也要重發(fā)確認(rèn)PDU。這樣就可保證文件的傳送不致因某一個數(shù)據(jù)報的丟失而告終。
??? 在一開始工作時,TFTP客戶進(jìn)程發(fā)送一個讀請求報文或?qū)懻埱髨笪慕oTFTP服務(wù)器進(jìn)程,其熟知端口號為69。TFTP服務(wù)器進(jìn)程要選擇一個新的端口和TFTP客戶進(jìn)程進(jìn)行通信。若文件長度恰好為512字節(jié)的整數(shù)倍,則在文件傳送完畢后,還必須在最后發(fā)送一個只含首部而無數(shù)據(jù)的數(shù)據(jù)報文。若文件長度不是512字節(jié)的整數(shù)倍,則最后傳送數(shù)據(jù)報文中的數(shù)據(jù)字段一定不滿512字節(jié),這正好可以作為文件結(jié)束的標(biāo)志。
?????
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/way_testlife/archive/2010/10/11/1847529.html
總結(jié)
以上是生活随笔為你收集整理的TCP/IP协议族之应用层协议(FTP、TFTP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android LitePal库详解
- 下一篇: 如果没有,那么就去创造