數(shù)碼相框熱插播_廣告機ftp協(xié)議_第1頁
數(shù)碼相框熱插播_廣告機ftp協(xié)議_第2頁
數(shù)碼相框熱插播_廣告機ftp協(xié)議_第3頁
數(shù)碼相框熱插播_廣告機ftp協(xié)議_第4頁
數(shù)碼相框熱插播_廣告機ftp協(xié)議_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、FTP-文件傳輸協(xié)議(FileTransfrotocol,FTP)1. 介紹FTP 的目標是提高文件的共享性,提供非直接使用計算機,使介質(zhì)對用戶透明和可靠高效地傳送數(shù)據(jù)。雖然也可以手工使用它,但是它的主要作用是供程序使用的。在閱讀本文之前最好能夠閱讀 TCP協(xié)議標準規(guī)范和2. 概覽在本節(jié)中net 協(xié)議標準規(guī)范。一些表面上的問題,有些名詞的定義請參閱 TCP 和net 參考文獻。先介紹一下(1) 字節(jié)大小,在FTP 中字節(jié)大小有兩個:邏輯字節(jié)大小和用于傳輸?shù)淖止?jié)大小。后者通常是 8 位,而前者可不一定是多少了。傳輸字節(jié)不必等于邏輯字節(jié)大小,也不 必對數(shù)據(jù)結(jié)構(gòu)進行解釋。(2)控制連接是建立在 US

2、IT 和 SERVI 之間用于交換命令與應(yīng)答的通信鏈路。(3)數(shù)據(jù)連接是傳輸數(shù)據(jù)的全雙 工連接。傳輸數(shù)據(jù)可以發(fā)生在服務(wù)器 DTP 和用戶 DTP 之間也可以發(fā)生在兩個服務(wù)器 DTP 之間。(4)DTP:數(shù)據(jù)傳輸過程(DTP)建立和管理數(shù)據(jù)連接,DTP 可以是主動的也可以是的。(5)EOR 代表尾。(6)NTV代表網(wǎng)絡(luò)虛擬終端,它的定義與在net 協(xié)議中的定義一致。(7)NVFS 代表網(wǎng)絡(luò)虛擬文件系統(tǒng)。 (8)FTP可以傳輸非連續(xù)的文件,這些文件的一部分稱為頁。(9)PI 代表協(xié)議解釋器。(10)服務(wù)器 DTP 代表一種傳輸過程,它通常處于“主動”狀 態(tài),它和偵聽端口建立數(shù)據(jù)連接,它還可以為傳輸

3、和設(shè)置參數(shù),并根據(jù)PI 的指令傳輸數(shù)據(jù)。當然,DTP 也可以轉(zhuǎn)入“”狀態(tài)。(11)服務(wù)器 FTP 進 程,它是和用戶 FTP 進程一起工作的,它由 PI 和DTP 組成。至于用戶FTP 進程則是由意圖:TP 和用戶接口組成的。下圖是 FTP 服務(wù)示注意:數(shù)據(jù)連接是雙向的,它不用整個時間都存在。上圖中用戶 PI 開始控制連接,控制連接與net 協(xié)議很象。在開始階段,標準 FTP 命令由用戶 PI 產(chǎn)生并通過控制連接傳送到服務(wù)器進程。服務(wù)器 PI 向用戶 PI返回標準應(yīng)答。FTP 命令指定數(shù)據(jù)連接參數(shù)和文件系統(tǒng)操作。用戶 DTP 在特定數(shù)據(jù)端口偵聽,服務(wù)器開始數(shù)據(jù)連接并以指定的參數(shù)開始數(shù)據(jù)傳輸。數(shù)

4、據(jù)端口不必在開始 FTP 命令的機器上,但用戶或用戶 FTP 進程必須確定它在指定的數(shù)據(jù)端口上偵聽。這個數(shù)據(jù)連接是全雙工的。在另外一種情況下,用戶或許希望在兩個主機間傳送文件,不是兩個本機。用戶在兩臺主機間建立控制連接,然后規(guī)劃數(shù)據(jù)連接。用這種方式,控制信息由用戶 PI 獲得,但是數(shù)據(jù)在服務(wù)器 DTP 之間傳送。下面就是一個例子:協(xié)議要求數(shù)據(jù)傳輸在處理時打開控制連接。在完成FTP 服務(wù)后由用戶中止控制連接,而服務(wù)器具體操作。如果在未接收 命令時關(guān)閉了控制連接,服務(wù)器也會關(guān)閉數(shù)據(jù)傳輸。FTP 和net 很有聯(lián)系,F(xiàn)TP 使用net協(xié)議進行控制連接,可有兩種方法達到目的:用戶 PI 或服務(wù)器 PI

5、 可以在自己的過程中實現(xiàn)net 協(xié)議的功能;第二種方法是利用系統(tǒng)中現(xiàn)有的實現(xiàn),代碼量也不大。3. 數(shù)據(jù)傳輸功能net 模塊。實現(xiàn)上,F(xiàn)TP 對net 協(xié)議的依賴也不多,即使重新數(shù)據(jù)連接只傳輸數(shù)據(jù),控制連接傳送命令和響應(yīng)。幾個命令是關(guān)于在主機間傳輸數(shù)據(jù)的,數(shù)據(jù)傳輸基本上獨立于物理結(jié)構(gòu)的,但是如果在壓縮傳輸模式3.1. 數(shù)據(jù)表示與保存式傳輸與文件結(jié)構(gòu)有關(guān),文件的屬性與表示類型有關(guān)。數(shù)據(jù)是在主機間的設(shè)置間傳送的。因為兩個系統(tǒng)的數(shù)據(jù)方式不同,因此需要對它進行轉(zhuǎn)換,在傳送文本時會有對ASCII 表示的問題,在進行二進制傳送的時候,會有不同系統(tǒng)對字節(jié)長度規(guī)定不同的問題,有的系統(tǒng)是 7 位,有的系統(tǒng)可能是

6、32 位,這也需要進行轉(zhuǎn)換。需要提供數(shù)據(jù)表示與傳輸模型函數(shù),但是 FTP 提供這方面的功能不多,超過 FTP 提供功能的那一部分要用戶自己實現(xiàn)。數(shù)據(jù)類型數(shù)據(jù)表示是由用戶指定的表示類型,它可以是隱含的,也可以是用戶指定的。請一定注意:邏輯字節(jié)長度與物理字節(jié)長度是不同的。ASCII 類型這是所有 FTP 必須實現(xiàn)的默認類型,用于傳送文本文件,當在主機間使用 EBCDIC 傳送時更方便,則不使用ASCII 類型。發(fā)送內(nèi)部表示轉(zhuǎn)換為 NVT-ASCII 格式,接收進行相反的過程接收數(shù)據(jù)。根據(jù) NVT 標準,要在行結(jié)束處使用序列。NVT-ASCII 是 8 位的。ASCII 和 EBCDIC 的格式參數(shù)

7、在下面. EBCDIC 類型。它是作為 ASCII 的另法在主機間傳送數(shù)據(jù)的數(shù)據(jù)類型。EBCDIC 和 ASCII 很象,僅在類型的功能描述上有一些差別。行結(jié)束符使用很少。. 圖象類型在此類型下傳送的數(shù)據(jù)被看作連續(xù)的位,發(fā)送數(shù)據(jù)打包到 8 位傳輸字節(jié)中傳送。因為結(jié)構(gòu)的需要要對傳送數(shù)據(jù)進行填充,填充字節(jié)全部為 0,填充必須在文件結(jié)構(gòu)時使用,而且要標記出以便接收方過濾掉。它用于傳送二進制數(shù)據(jù)和有效地傳送和. 本地類型文件,因此所有 FTP 也必須實現(xiàn)。也可以以十進制指定邏輯字節(jié)大小。如果物理字節(jié)大小和邏輯字節(jié)大小不同,直接將物理數(shù)據(jù)打包為邏輯字節(jié),不用什么填充。接收方根據(jù)邏輯字節(jié)大小進行和本機的也

8、就是說,相同的文件相同的參數(shù),那內(nèi)容必須是一樣的。. 格式控制特點進行轉(zhuǎn)換。傳輸必須是可重復的,ASCII 和 EBCDIC 有一個可選參數(shù),它說明文件垂直格式控制,下面的數(shù)據(jù)表示類型在 FTP 中有定義。字符文 件可能有三種用途,打印,或留待以后處理。如果是用于打印,那主機必須知道垂直格式控制的表示,如果或等以后處理,也需要保留文件格式。如果在主機上處理完后傳輸回本機,要保證主機處理時沒有麻煩。這都需要在 ASCII 和 EBCDIC 格式上加入新的參數(shù)。.1.PR未指定第二個參數(shù)是它是默認值。它必須為所有 FTP 接受。如果傳輸?shù)奈募怯糜诖蛴〉?,則使用邊界和間隔的默認值。通常它不用于打印

9、目的,而用于保存文件或執(zhí)行文件。NET 格式控制文件包括 ASCII/EBCDIC 垂直格式控制,這些控制字符可以使打印正常進行。CARRIAGE CONTROL (ASA)文件包含 ASA (FORTRAN)垂直格式控制字符。在以 ASA 標準形成的行中,第一個字符不打印,它用于決定打印前的走紙量。下面是定義了的 ASA 字符:bl: 向下移動 1 行;0:向下移動 2 行;1:移動至下一頁;+:不移動打印機必須能夠決定結(jié)構(gòu)體的結(jié)束。如果文件本身有但這些格式標記已經(jīng)由ASA 控制字符使用了。3.1.2. 數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)就沒有問題,如果沒有,用于區(qū)別打印行,除了有不同的數(shù)據(jù)類型外,F(xiàn)TP 還允許

10、有不同的文件結(jié)構(gòu),下面是三種文件結(jié)構(gòu):文件式結(jié)構(gòu):文件中沒有內(nèi)部結(jié)構(gòu),文件被看作是二進制流;索引頁組成的。結(jié)構(gòu):文件是由一系列組成的;頁結(jié)構(gòu):文件是由不同的如果未使用STRU 命令,文件結(jié)構(gòu)是默認值。文件的結(jié)構(gòu)會影響傳輸模型,和數(shù)據(jù)表示。文件本來的屬性和保存它 的主機有關(guān),不同的機器會以自己的方式保存文件。在不同主機間傳送文件時必須使主機能夠識別相互的表示。有些主機上的文件是面向字節(jié)的,有些是面向的,在傳送時就會出現(xiàn)問題。那就要在接收方進行內(nèi)部轉(zhuǎn)換。在進行轉(zhuǎn)換的時候,需要區(qū)別的邊界,在 ASCII 中使用,在 EBCDIC 中使用作為分隔符。采用這種實現(xiàn)方法的必須保證轉(zhuǎn)換是可逆的。. 文件結(jié)構(gòu)

11、如果未使用 STRU 命令,文件結(jié)構(gòu)是默認值。文件結(jié)構(gòu)中沒有默認值,文件被看作是連續(xù)的字節(jié)串。結(jié)構(gòu).對于文本文件,. 頁結(jié)構(gòu)結(jié)構(gòu)必須是所有 FTP 實現(xiàn)必須有的。結(jié)構(gòu)文件是由連續(xù)的的。文件是非連續(xù)時使用頁結(jié)構(gòu)。這種文件稱為隨機文件。這些文件中有時會的和文件整體或部分相關(guān)的信息出現(xiàn)。在 FTP 中,文件的一個部分稱為頁。為了提供不同的頁大小和相關(guān)信息,每頁都帶頁頭發(fā)送。頁頭中有如下域:所有域均以 1 個邏輯字節(jié)長度為大小,邏輯字節(jié)長度由 TYPE 命令指定。如果版本與和開始版本號一致,文件時必須以相同的參數(shù)進行。如果參數(shù)相同,F(xiàn)TP 實現(xiàn)要保證取得的文件內(nèi)容是相同的。3.2. 建立數(shù)據(jù)連接傳送數(shù)

12、據(jù)機制包括建立連接選擇數(shù)據(jù)參數(shù)。用戶和服務(wù)器 DTP 有默認數(shù)據(jù)端口。用戶進程默認數(shù)據(jù)端口和控制連接端口 相同。服務(wù)器進程默認數(shù)據(jù)端口和控制連接端口相鄰。傳輸字節(jié)大小是 8 位字節(jié)。此字節(jié)是實際傳輸字節(jié),但不代表主機內(nèi)的數(shù)據(jù)表示。數(shù)據(jù)傳輸進程在數(shù)據(jù)端 口接收數(shù)據(jù),F(xiàn)TP 請求命令決定數(shù)據(jù)傳輸?shù)姆较颉7?wù)器在接收到請求以后,將初始化端口的數(shù)據(jù)連接。當連接建立后,傳輸在 DTP 之間傳送,服務(wù)器PI 對用 戶 PI 返回應(yīng)答。FTP 實現(xiàn)運行一個默認數(shù)據(jù)端口,用戶 PI 才能改變默認端口。通過 PORT 命令可能改變端口,用戶可能希望數(shù)據(jù)在第主機上進行其它操作,用戶 PI 需要在兩個服務(wù)器 PI

13、上建 立連接。一個服務(wù)器知偵聽另一服務(wù)器的請求。用戶 PI 通過 PORT 命令通知另一服務(wù)器的數(shù)據(jù)端口。最后雙方發(fā)送相應(yīng)的傳送命令。通常,服務(wù)器負責支持 數(shù)據(jù)連接,初始化并關(guān)閉它,除非用戶DTP 在傳輸模式下要求關(guān)閉連接。服務(wù)器在下面情況下關(guān)閉數(shù)據(jù)連接:服務(wù)器結(jié)束發(fā)送數(shù)據(jù),通過 EOF 要求中止傳送;用戶發(fā)送 ABORT 命令;用戶改變端口;控制連接關(guān)閉;發(fā)生不可恢復錯誤。3.3. 數(shù)據(jù)連接管理默認數(shù)據(jù)連接端口:所有 FTP 必須支持默認數(shù)據(jù)連接,只有用戶 PI 能夠初始化非默認端口的使用。確定非默認數(shù)據(jù)端口:用戶 PI 可以使用 PORT 命令指定非默認端口,它要求服務(wù)器數(shù)據(jù)端口。連接是由

14、雙方地址確定的,因此改變一方地址就改變了連接。PASV 確定非默認數(shù)據(jù)連接的重用:在使用流式數(shù)據(jù)傳輸模型時,文件結(jié)束通過關(guān)閉連接指示。如果要傳送多個文件時就會出麻煩,解決的 方法有兩個,一個是確定非默認端口,另一個是使用另一種傳輸模式。就傳輸模式而言,頭長度包括此字節(jié)的頁頭長度,為字節(jié),最小長度為 4頁索引此部分在原文件中的位置,它和傳輸不是一回事數(shù)據(jù)長度頁數(shù)據(jù)中的邏輯字節(jié)數(shù),最小值為 0頁類型頁的類型有以下幾種:0=未頁,指示傳輸結(jié)構(gòu),包頭必須為 4,數(shù)據(jù)長度必須為 0;1=通常頁,沒有控制信息的通常頁文件的普通類型;2=描述子頁,用于傳送整體文件的描述信息;3= 控制頁,包括頁級 控制信息

15、的頁文件頭域,包頭長度必須為 5可選域提供每頁的控制信息流傳輸模式是不安全的,因此無法確定連接是暫時還是關(guān)閉。其它傳輸 模式不通過關(guān)閉連接表示文件結(jié)構(gòu),它們可以通過 FTP 命令決定傳送結(jié)構(gòu)。因此使用這些傳輸模式可以在保持連接的情況下傳送多個文件。3.4. 傳輸模式有三種傳輸模式:一種將數(shù)據(jù)格式化并考慮重新開始過程;一種壓縮數(shù) 據(jù);一種是不經(jīng)過處理(少量處理)傳送。所有數(shù)據(jù)傳輸必須以一個 EOF 結(jié)束,它可以顯式給出,也可以通過關(guān)閉連接隱式給出。對于文件,所有 EOR 是顯 式的,包括最后一個。對于以頁結(jié)構(gòu)傳送的文件,使用“最后一頁”表示結(jié)束。從這里開始,下文中提到的字節(jié)指的是“傳輸字節(jié)”。為

16、了進行標準化傳送,傳送主機必須把行結(jié)束或結(jié)束的內(nèi)部表示轉(zhuǎn)化為傳輸模式和文件結(jié)構(gòu)指定的形式傳送,接收進行相反的工作。IBM 大型機的計數(shù)域可能不能為其它主機識別,所以結(jié)束標記在流模式下以雙字節(jié)控制碼傳送,在塊或壓縮模式下以標記位傳送。而 ASCII 或 EBCDIC 的行結(jié)束則則或指示。這樣的轉(zhuǎn)換需要時間,所以相同的系統(tǒng)在傳送文本文件時采用二進制或流表示比較合適。下面是 FTP定義的傳輸模式:3.4.1. 流模式數(shù)據(jù)以字節(jié)流的形式傳送。使用的表示類型沒有限制,允許結(jié)構(gòu)。在結(jié)構(gòu)文件 EOR 和 EOF 表示為雙字節(jié)控制 碼。第一字節(jié)全為 0,后一字節(jié)為轉(zhuǎn)義字符。當?shù)诙恢禐?1 時表示 EOR,為

17、 2 時表示 EOF,如果要同時表示 EOR 和 EOF,值為 3。全 1 字節(jié)作為數(shù)據(jù)發(fā)送 時必須使字節(jié)傳送,其中數(shù)據(jù)保存在第二個字節(jié)內(nèi)。如果是文件結(jié)構(gòu),通過發(fā)送方關(guān)閉連接表示 EOF,接收到的所有數(shù)據(jù)就是文件內(nèi)容。3.4.2. 塊模式文件以塊形式傳送,塊帶有自己的頭部分。頭字節(jié)包括計數(shù)域和描述子代碼。計數(shù)域說明了數(shù)據(jù)塊的字節(jié)數(shù),描述子代碼定義了以下內(nèi)容:EOF,EOR 重新開始標記或懷疑錯誤數(shù)據(jù)。懷疑錯誤數(shù)據(jù)不是為了進行差錯控制,它是為了站點間交換特定數(shù)據(jù),傳送時不管本地錯誤(如硬盤錯誤)而傳送,但是傳送時可要,這個數(shù)據(jù)可能有錯。在此模式下可以使用結(jié)構(gòu),也可以使用相應(yīng)的數(shù)據(jù)表示。頭字節(jié)的結(jié)

18、構(gòu)如下圖所示:描述子代碼由在描述子字節(jié)中的位標記說明,下面是已經(jīng)指定的四種代碼及其意義:以這種編碼,對于特定塊可能存在多個描述子編碼條件,所需要的位必須全部設(shè)置。重新開始標記包括在數(shù)據(jù)流中,它作為 8 位整數(shù)代表在控制連接上使用語言的可打印字節(jié),但不得出現(xiàn)在其中。例如要傳送 6字節(jié)標記,下面就是例子:代碼意義128數(shù)據(jù)塊結(jié)束是 EOR64數(shù)據(jù)塊結(jié)束是 EOF32數(shù)據(jù)塊內(nèi)有懷疑錯誤16數(shù)據(jù)塊是重新開始標記描述子 8 位字節(jié)計數(shù) 16 位3.4.3. 壓縮模式有三種信息需要傳送:常規(guī)數(shù)據(jù)以字節(jié)串傳送;壓縮數(shù)據(jù),包括復本和過濾器;控制信息,以兩個轉(zhuǎn)義字符傳送。如果有N(0 但小于 127)個常規(guī)數(shù)據(jù)

19、傳送,在數(shù)據(jù)前一位加上一個字節(jié),這個字節(jié)最其它位表示的數(shù)值等于N。如下圖:為 0,若要壓縮一個數(shù)據(jù)位 D 的N 復本字符串,用兩個字節(jié)傳送,如下圖,它表示的是壓縮的字節(jié):一串N 過慮器字節(jié)可以壓縮為一個字節(jié),而過濾器字節(jié)根據(jù)表示法不同而不同。如果類型是ASCII 或EBCDIC,過濾器字節(jié)是,如果是圖象或本地類型,則是 0。下面就是過濾器字節(jié):轉(zhuǎn)義序列是雙字節(jié),頭一個全 0,后一個內(nèi)是定義模式下的描述子代碼。描述子代碼與塊模式中的意義相同,它作用于其后串中的字節(jié)。而壓縮模式對于增加帶寬有好處(因為數(shù)據(jù)是壓縮過的)。3.5. 差錯恢復和重新開始位丟失和數(shù)據(jù)錯誤是這一層的差錯控制由 TCP 負責。

20、而重新開始則是給用戶一個處理系統(tǒng)(包括操作系統(tǒng),網(wǎng)絡(luò)等)失敗的方法。重新開始過程僅適用和壓縮模式,它要求發(fā)送者在數(shù)據(jù)流中加入特定標記,標記僅對傳送者有意義,但其中的內(nèi)容是控制連接使用的語言。標記可以代表一個位記數(shù),記數(shù)或可以標記數(shù)據(jù)數(shù)目的任何點。如果接收方也支持重新開始,將會在接收系統(tǒng)中保存這一標記。在系統(tǒng)失敗重新啟動后,用戶可以根據(jù)原來的標記重新開始數(shù)據(jù)傳送,也就是通常熟悉的斷點續(xù)傳過程。接收方接收到一段數(shù)據(jù),然后記下一點,如果發(fā)送方失敗了,就從這一點以后再傳送相應(yīng)的數(shù)據(jù)。具體的這里不多說了。文件傳輸功能從用戶 PI 到服務(wù)器的信道是建立在用戶到標記服務(wù)器端口間的。用戶協(xié)議解釋器負責發(fā)送命令

21、和解釋接收的應(yīng)答;服務(wù) 器 PI 解釋命令,發(fā)送應(yīng)答,指導 DTP 建立數(shù)據(jù)連接并傳送數(shù)據(jù)。如果數(shù)據(jù)傳輸?shù)牡诙绞怯脩?DTP,通過用戶 FTP 主機的內(nèi)部協(xié)議對它進行控制;如果第二 方是服務(wù)器 DTP,它由用戶 PI 發(fā)來令經(jīng)過自己的PI 控制。FTP 命令控制命令4.1.1.下列命令指定用戶名(USER)控制標記(命令碼在括號內(nèi)):參數(shù)是標記用戶的net 串。用戶標記是服務(wù)器必須的,此命令通常是控制連接后第一個發(fā)出令,有些主 機還會要求口令和帳戶。服務(wù)器可以在任何時間接收新的 USER 命令以改變信息。這可以重新開始登錄過程,所以傳輸參數(shù)不變,在進行中 的文件傳輸在過去的成??刂坪停ɑ颍?/p>

22、戶控制參數(shù)下完Marker 8 位Marker 8 位Marker 8 位Marker 8 位Marker 8 位Marker 8 位Descrptr code = 16Byte count = 6口令(PASS)參數(shù)是標記用戶口令的net 串。此命令緊跟 USER 命令,在某些站點它是完成控制不可缺少的一步。因此口令是個重要的東西,因此不能顯示出來,服務(wù)器方?jīng)]有辦法隱藏口令,所以這一任務(wù)得由用戶 FTP進程完成。ACCOUNT (ACCT)參數(shù)是標記用戶帳戶的net 串。此命令不需要與 USER 相關(guān),一些站點可能需要帳戶用于登錄,另一些可以限 制帳戶的權(quán)限,在后一種情況下,此命令可在任何時

23、候發(fā)送。應(yīng)答的不同可以區(qū)別不同的情況:當?shù)卿浶枰獛粜畔r,對PASS 命令的響應(yīng)是 332。另外,如 果不需要帳戶信息,對 PASS 的響應(yīng)是 230,如果需要帳戶信息在以后需要,服務(wù)器會返回 332 或 532,這要看它是保存此命令還是改變工作目錄(CWD)此命令了。此命令使用戶可以在不同的目錄或數(shù)據(jù)集下工作而不用改變它的登錄或帳戶信息。傳輸參數(shù)也不變。參數(shù)一般是目錄名或與系統(tǒng)相關(guān)的文件集合?;氐缴弦粚幽夸?CDUP)此命令要求系統(tǒng)實現(xiàn)目錄樹結(jié)構(gòu),它的響應(yīng)和 CWD 的相同。結(jié)構(gòu)加載(SMNT)此命令使用戶在不改變登錄或帳戶信息的情況下加載另一個文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)。傳輸參數(shù)也不變。參數(shù)是文件

24、目錄或與系統(tǒng)相關(guān)的文件集合。重新初始化(REIN)此命令終止USER,將所有 I/O 和帳戶信息寫入,但不許進行中的數(shù)據(jù)傳輸完成。重置所有參數(shù),控制連接打開,可以再次開始USER 命令。退出登錄(QUIT)此命令終止USER,如果沒有數(shù)據(jù)傳輸,服務(wù)器關(guān)閉控制連接;如果有數(shù)據(jù)傳輸,在得到傳輸響應(yīng)后服務(wù)器關(guān)閉控制連 接。如果用戶進程正在向不同的 USER 傳輸數(shù)據(jù),不希望對每個 USER 關(guān)閉然后再打開,可以使用REIN。對控制連接的意外關(guān)閉,可以導致服務(wù)器運行中止 (ABOR)和退出登錄(QUIT)。4.1.2. 傳輸參數(shù)命令所有數(shù)據(jù)傳輸參數(shù)有默認值。服務(wù)器必須命令傳送參數(shù):數(shù)據(jù)端口(PORT)

25、下默認值,在 FTP 服務(wù)請求后,可以以任何順序發(fā)送。下面參數(shù)是要使用的數(shù)據(jù)連接端口,通常情況下對此不需令響應(yīng)。如果使用此命令時,要發(fā)送 32 位的 IP地址和 16 位的 TCP 端PORT h1,h2,h3,h4,p1,p2。上面的信息以 8 位為一組,逗號間隔十進制傳輸,如下例:其中 h1 是 IP 地址的最高 8 位。(PASV)此命令要求服務(wù)器DTP 在指定的數(shù)據(jù)端口偵聽,進入表示類型(TYPE)接收請求的狀態(tài),參數(shù)是主機和端口地址。參數(shù)指定表示類型。有些類型需要第二個參數(shù),第一個參數(shù)由單個整數(shù)指定字節(jié)大小,參數(shù)間以分隔。下面是格式:net 字符定義,第二個參數(shù)是十進制默認表示類型是

26、ASCII 非打印字符,如果參數(shù)未改變,以后只改變了第一個參數(shù),則使用默認值。文件結(jié)構(gòu)(STRU)參數(shù)是一個net 字符代碼指定文件結(jié)構(gòu)。下面是代碼及其意義:F - 文件(非結(jié)構(gòu)),它是默認值結(jié)構(gòu)R -P - 頁結(jié)構(gòu)傳輸模式(MODE)參數(shù)是一個net 字符代碼指定傳輸模式。下面是代碼及其意義:S - 流(默認值)B - 塊C - 壓縮4.1.3. FTP 服務(wù)命令FTP 服務(wù)命令定義用戶請求的文件傳輸或文件系統(tǒng)功 能。此命令的參數(shù)通常是路徑名,其語法要和服務(wù)器的規(guī)范一致。的默認值是最近指定的設(shè)備目錄或目錄。命令順序通常沒有限制,只有rename from命令后面必須是rename to,重新

27、啟動命令后面必須是中斷服務(wù)命令。服務(wù)命令的響應(yīng)通常在數(shù)據(jù)連接上傳輸。下面是具體獲得文件(RETR)令:此命令使服務(wù)器DTP 傳送指定路徑內(nèi)的文件復本到服務(wù)器或用戶 DTP。這邊服務(wù)器上文件的狀態(tài)和內(nèi)容不受影響。保存(STOR)此命令使服務(wù)器DTP 接收數(shù)據(jù)連接上傳送過來的數(shù)據(jù),并將數(shù)據(jù)保存在服務(wù)器的文件中。如果文件已存在,原文件將被覆蓋。如果文件不存在,則新建文件。唯一保存(STOU)此命令和 STOR 差不多,此命令要求在此目錄下的文件名是唯一的,對此命令的響應(yīng)必須包括產(chǎn)生的用戶名。附加(APPE)它和 STOR 的功能差不多,但是如果文件在指定路徑內(nèi)已存在,則把數(shù)據(jù)附加到原文件尾部,如果不

28、存在則新建文件。分配(ALLO)此命令用于在一些主機上為新傳送的文件分配足夠的空間。參數(shù)是十進制的邏輯字節(jié)數(shù)。如果是或頁結(jié)構(gòu),頁或的最大大小也需要,這在第二個參數(shù)內(nèi)以十進制指定。第二個參數(shù)是可選的,如果有它,它和第一個參數(shù)以net 字符 R 分隔。此命令在 STOR 或 APPE 命令后,對于不需要分配空間的機器,它的作用等于NOOP。重新開始(REST)參數(shù)域代表服務(wù)器要重新開始的那一點,此命令并不傳送文件,而是略過指定點后的數(shù)據(jù),此命令后應(yīng)該跟其它要求文件傳輸?shù)腇TP 命令。重命名(RNFR)這個命令和重命名為(RNTO)此命令和上面放棄(ABOR)在其它操作系統(tǒng)中使用的一樣,只不過后面要

29、跟rename to指定新的文件名。令共同完成對文件的重命名。此命令通知服務(wù)中止以前的 FTP 命令和與之相關(guān)的數(shù)據(jù)傳送。如果先前的操作已經(jīng)完成,則沒有動作,返回 226。如果沒有完成,返回 426,然后再返回 226。關(guān)閉控制連接,數(shù)據(jù)連接不關(guān)閉。刪除(DELE)此命令刪除指定路徑下的文件。用戶進程負責對刪除的提示。刪除目錄(RMD)此命令刪除目錄。創(chuàng)建目錄(MKD)此命令在指定路徑下創(chuàng)建新目錄。打印工作目錄(PWD)在響應(yīng)是返回當前工作目錄。列表(LIST)服務(wù)器傳送列表到DTP,如果路徑指定一個目錄或許多文件,返回指定路徑下的文件列表。如果路徑名指定一個文件,服務(wù)器返回文件的當前信息,參

30、數(shù)為空表示用戶當前的工作目錄或默認目錄。數(shù)據(jù)傳輸在 ASCII 或 EBCDIC 下進行,用戶必須確認這一點。因為文件信息因系統(tǒng)不同而不同,所以不可能被程序自動利用,但是人類用戶卻很需要。名字列表(NLST)服務(wù)器傳送目錄表名到用戶,路徑名應(yīng)指定目錄或其它系統(tǒng)指定的文件群描述子;空參數(shù)指當前目錄。服務(wù)器返回文件名數(shù)據(jù)流,以 ASCII 或 EBCDIC 形式傳送,并以或分隔。這里返回的信息有時可以供程序進行進一步處理。站點參數(shù)(SITE)服務(wù)器用來提供服務(wù)器系統(tǒng)信息,信息因系統(tǒng)不同而不同,格式在 HELP SITE 命令應(yīng)答中給出。系統(tǒng)(SYST)用于確定服務(wù)器上運行的操作系統(tǒng)。狀態(tài)(S)此命

31、令返回控制連接狀態(tài),它可以在文件傳送過程中發(fā)送,服務(wù)器返回操作進行的狀態(tài)。也可以在文件傳送之間發(fā)送,這 時命令有參數(shù),參數(shù)是路徑名,此命令的功能除了數(shù)據(jù)在控制連接上傳送以外和列表命令相似。如果指定部分路徑,服務(wù)器以文件名或與說明相關(guān)的屬性返回;如沒 有參數(shù),服務(wù)器返回服務(wù)器 FTP進程的狀態(tài)信息,包括傳輸參數(shù)的當前值和連接狀態(tài)。幫助(HELP)這條命令 在平常系統(tǒng)中得到的幫助沒有什么區(qū)別,響應(yīng)類型是 211 或 214。建議在使用 USER 命令前使用此命令。等待(NOOP)此命令不產(chǎn)生什么實際動作,它僅使服務(wù)器返回 OK。FTP 在控制連接上使用net 通信,因此有機會大家相關(guān)的協(xié)議說明。對

32、下文的理解會很有好處。下面內(nèi)容將 對命令的應(yīng)答和關(guān)于命令的詳細信息作以說明。FTP 命令可分為控制標記,數(shù)據(jù)傳輸參數(shù)或 FTP 服務(wù)請求,特定令(如 ABOR,S)可以在數(shù) 據(jù)傳輸過程中在控制連接上傳輸。有些服務(wù)器不能同時監(jiān)視數(shù)據(jù)和控制鏈路,那就要另外采取措施了。請注意下面的幾點建議:用戶系統(tǒng)將用戶系統(tǒng)發(fā)送net 的errupt Pros(IP)信息 net 的Synch信號;net 流;用戶系統(tǒng)將命令(如 ABOR)服務(wù)器 PI 在接收到 IP 后,在4.2. FTP 應(yīng)答net 流;net 流中尋找僅有一個的 FTP 命令。FTP 命令的響應(yīng)是為了對數(shù)據(jù)傳輸請求和過程進行同步,也是為了讓用

33、戶了解服務(wù)器的狀態(tài)。每個命令必須有最少一個 響應(yīng),如果是多個,它們要易于區(qū)別。有些命令是有順序性的,因此其中任何一個命令的失敗會導致從頭開始。FTP 響應(yīng)由三個數(shù)字,后面是一些文本。數(shù)字 帶有足夠的信息命名用戶 PI 不用檢查文本就知道。文本信息與服務(wù)器相關(guān),用戶可能得到不同的文本信息。文本和數(shù)字以間隔,文本后以net 行結(jié)束符結(jié)束。文本可能多于一行,這時文本必須在括號內(nèi),第一行內(nèi)要有信息表示文本多于一行,最后一行也要有所標記。如果是多行,可以在數(shù)字代碼后加上-,最后一行以數(shù)字開始,后面是,再加上net 的行結(jié)束符就可以了。下面是一個例子:123-第一行第二行234 以數(shù)字開始的一行123 最

34、后一行三位數(shù)字每位都有一定的意義,第一位確定響應(yīng)是好的,壞的還是不完全的,通過檢查第一位,用戶進程通常就能夠知道大致要采取什么行動了。如果用戶程序希望了解出了什么問題,可以檢查第二位,第三位留表示其它信息。第一位有五個值:1yz 確定預備應(yīng)答請求的操作正在被初始化;在進入下一個命令前等待另外的應(yīng)答。這類響應(yīng)用于說明命令被接受,在實現(xiàn)中如何同步監(jiān)視有響應(yīng)。2yz 確定完成應(yīng)答,用戶進程現(xiàn)在可以關(guān)注數(shù)據(jù)連接了。服務(wù)器 FTP 進程對第個命令幾乎都返回 1yz要求的操作已經(jīng)完成,可以執(zhí)行新命令。3yz 確定中間應(yīng)答命令已接受,但要求的操作被停止,停止接收更新的信息。4yz 暫時完成應(yīng)答未接受命令,要

35、求的操作未執(zhí)行,但錯誤是臨時的,過一會兒可以再次發(fā)送消息。用戶應(yīng)該返回命令序列的開始。這個暫時不好確定,此命令的意思就是讓用戶進程再次嘗試使用此命令。5yz 永遠它與暫時完成應(yīng)答完成應(yīng)答的區(qū)別就在于錯誤條件是一時半會不會。下面來看看第二位所代表的意義:x0z 格式錯誤;x1z 此類應(yīng)答是為了請求信息的;x2z 此類應(yīng)答是關(guān)于控制和數(shù)據(jù)連接的;x3z 關(guān)于認證和帳戶登錄過程;x4z 未使用;x5z 此類應(yīng)答是關(guān)于文件系統(tǒng)的;第三個數(shù)字是在第二個數(shù)字的基礎(chǔ)上對應(yīng)答內(nèi)容的進一步細化。一般來說,數(shù)字代碼后要有文本信息。實現(xiàn)時應(yīng)該盡量使用現(xiàn)有的代碼,而不要隨便添加新的意義不大的代碼。有些命令如 TYPE

36、 或 ALLO,它們的成功不為用戶進程提供任務(wù)新信息,所以不會有 200 應(yīng)答返回。如果有些命令對于服務(wù)器來說不支持,也要返回確定完成應(yīng)答,這樣用戶進程才有可能進行下面令。如果要求的不是可選實現(xiàn)令,而這個命令確實沒有實現(xiàn),那就要返回代碼 502。下面根據(jù)數(shù)字順序列出各個應(yīng)答碼及其意義:110重新啟動標記應(yīng)答。在這種情況下文本是確定的,它必須是:MARK yyyy=mmmm,其中 yyyy 是用戶進程數(shù)據(jù)流標記,mmmm 是服務(wù)器標記。120服務(wù)在 nnn 分鐘內(nèi)準備好125數(shù)據(jù)連接已打開,準備傳送150文件狀態(tài)良好,打開數(shù)據(jù)連接200命令成功202命令未實現(xiàn)211系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng)212目

37、錄狀態(tài)213文件狀態(tài)214幫助信息,信息僅對人類用戶有用215名字系統(tǒng)類型220對新用戶服務(wù)準備好221服務(wù)關(guān)閉控制連接,可以退出登錄225數(shù)據(jù)連接打開,無傳輸正在進行226關(guān)閉數(shù)據(jù)連接,請求的文件操作成功227進入模式230用戶登錄250請求的文件操作完成257創(chuàng)建PATHNAME331用戶名正確,需要口令332登錄時需要帳戶信息350請求的文件操作需要進一步命令421不能提供服務(wù),關(guān)閉控制連接425不能打開數(shù)據(jù)連接426關(guān)閉連接,中止傳輸450請求的文件操作未執(zhí)行451中止請求的操作:有本地錯誤452未執(zhí)行請求的操作:系統(tǒng)空間不足500格式錯誤,命令不可識別說明最小實現(xiàn)下面是 FTP 服務(wù)

38、器的最小實現(xiàn):類型模式結(jié)構(gòu)命令ASCII-prStreamFile, RecordUSER, QUIT, PORT,TYPE, MODE, STRU,RETR, STOR,NOOP.傳輸?shù)哪J參數(shù)為:類型模式結(jié)構(gòu)ASCII-prStreamFile所有主機都將上面的值作為默認值。5.2. 連接服務(wù)器協(xié)議解釋器會在端口 L 偵聽,用戶或用戶協(xié)議解釋器初始化全雙工控制連接,服務(wù)器和用戶進程應(yīng)該遵守net 協(xié)議的說明進行。服務(wù)器不提供對命令行的編輯功能,應(yīng)該由用戶負責這一切。在全部傳送和應(yīng)答結(jié)束后,在用戶的請求下服務(wù)器關(guān)閉控制連接。用戶 DTP 必須在指定的數(shù)據(jù)端口上偵聽,它可以是默認端口 U 或由

39、 PORT 命令指定的端口。服務(wù)器的默認數(shù)據(jù)端口為 L-1。傳輸方向和端口均可由 FTP 命令決定。只有用戶 PI 可以改變默認端口。當數(shù)據(jù)在服務(wù)器 A 和 B 之間傳送時,用戶 PI,C,在兩個服務(wù)器 PI 之間建立控制連接。其中一個服務(wù)器 A,在接收到傳輸 服務(wù)命令時接收 PASV 命令初始化連接,用戶 PI 接收到 PASV 命令的確認時(確認內(nèi)包括主機標識和端口),將端口以 PORT 命令發(fā)送到 B。在接收到確認 后,用戶 PI 可以發(fā)送相應(yīng)注意時差:令給A 和B 了,B 初始連接和傳輸進程,命令應(yīng)答序列如下面所示,請根據(jù)位置在任何時間,服務(wù)器和用戶只要有一方關(guān)閉連接,另一方就要趕快連

40、接。緩沖中的數(shù)據(jù),然后也關(guān)閉本方的501參數(shù)語法錯誤502命令未實現(xiàn)503命令順序錯誤504此參數(shù)下令功能未實現(xiàn)530未登錄532文件需要帳戶信息550未執(zhí)行請求的操作551請求操作中止:頁類型未知552請求的文件操作中止,分配溢出553未執(zhí)行請求的操作:文件名不合法5.3. 命令本節(jié)主要命令格式。命令對大小寫不敏感。命令通常由命令碼和相應(yīng)的參數(shù)組成。中間由一個或幾個空格分開。參數(shù)域由結(jié)束,服務(wù)器在未接收到行結(jié)束符時不會采取任何動作。下面描述的格式是以 NVT- ASCII 以準的,方括號代表可選的參數(shù)域,如果未選擇可選的參數(shù)域則采用默認值。5.3.1. FTP 命令下面是 FTP 命令,其中

41、 username 代表用戶名,password 代表口令,pathname 代表路徑名,host-port 代表主機端口,account-information 代表帳戶信息,typecode 代表類型代碼,decimal- marker 代表標記,string 代表字符串:USER PASS ACCT CWD CDUP SMNT QUIT REIN PORT PASV TYPE STRU MODE RETR STOR STOU APPE ALLO R REST RNFR RNTO ABOR DELE RMD MKD PWD LIST NLST SITESYSTeger 代表十進制整數(shù),S

42、HELP NOOP5.3.2. FTP 命令參數(shù)下面是用 BNF 范式表示的參數(shù)格式::=:=:=:= |:= 除和外的所有ASCII 字符:=:= |:= 可打印ASCII 字符,從 33 到 126:=:= ,:= ,:= ,:= 從 1 到 255 的十進制整數(shù):= N | T | C:= A | E | I| L:= F | R | P:= S | B | C:=:= 任何十進制整數(shù)5.4. 命令和響應(yīng)序列服務(wù)器和用戶之間的通信是據(jù)響應(yīng)再發(fā)送新命令。的過程,用戶發(fā)送FTP 命令,然后等待服務(wù)器的一個(或多個)響應(yīng),根連接時的響應(yīng)帶有許多信息,通常情況下,服務(wù)器會返回 220 應(yīng)答,等待

43、輸入,用戶在接收到此響應(yīng)后才發(fā)送新命令, 如果服務(wù)器不能立即接收輸入,會在 220 后面返回 120。有些信息如服務(wù)器將在 15 分鐘后停止工作是要服務(wù)器發(fā)向用戶的,但是服務(wù)器卻不能直接發(fā)向用戶, 處理的方法是將消息緩沖,在下一個響應(yīng)中返回給用戶。下面列出命令的應(yīng)答,第一個是預備應(yīng)答,第二個是確定完成,第三個是完成,最后是中間應(yīng)答。這些 應(yīng)答是建立連接120220220421登錄 USER 230530500, 501, 421331, 332PASS 230202530500, 501, 503, 421332狀態(tài)圖的基礎(chǔ),狀態(tài)圖會在下節(jié)中給出:ACCT230202530500, 501,

44、503, 421CWD 250500, 501, 502, 421, 530, 550CDUP 200500, 501, 502, 421, 530, 550SMNT 202, 250500, 501, 502, 421, 530, 550退出登錄REIN 120220220421500, 502QUIT 221500傳輸參數(shù)PORT 200500, 501, 421, 530PASV 227500, 501, 502, 421, 530MODE 200500, 501, 504, 421, 530TYPE 200500, 501, 504, 421, 530STRU 200500, 501,

45、 504, 421, 530文件操作命令ALLO 200202500, 501, 504, 421, 530REST500, 501, 502, 421, 530350STOR 125, 150(110)226, 250425, 426, 451, 551, 552532, 450, 452, 553500, 501, 421, 530STOU 125, 150(110)226, 250425, 426, 451, 551, 552532, 450, 452, 553500, 501, 421, 530RETR 125, 150(110)226, 250425, 426, 451450, 55

46、0500, 501, 421, 530LIST 125, 150226, 250425, 426, 451450500, 501, 502, 421, 530NLST 125, 150226, 250425, 426, 451450500, 501, 502, 421, 530APPE 125, 150(110)226, 250425, 426, 451, 551, 552532, 450, 550, 452, 553500, 501, 502, 421, 530RNFR450, 550500, 501, 502, 421, 530350RNTO 250532, 553500, 501, 502, 503, 421, 530DELE 250450, 550500, 501, 502, 421, 530RMD 250500, 501, 502, 421, 530, 550MKD 257500, 501, 502, 421, 530, 550PWD 257500, 501, 502, 421, 550ABOR 225, 226500, 501, 502, 421獲得信息命令SYST 215500, 501, 502, 421S211, 212, 213450500, 501, 502, 421, 530HELP 211, 214500, 501, 502,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論