協(xié)議及數(shù)據(jù)包淺析_第1頁
協(xié)議及數(shù)據(jù)包淺析_第2頁
協(xié)議及數(shù)據(jù)包淺析_第3頁
協(xié)議及數(shù)據(jù)包淺析_第4頁
協(xié)議及數(shù)據(jù)包淺析_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

FTP協(xié)議及數(shù)據(jù)包淺析第27章FTP:文獻傳送協(xié)議

27.1引言

FTP是另一個常見的應(yīng)用程序。它是用于文獻傳輸?shù)腎nternet標(biāo)準(zhǔn)。我們必須分清文獻傳

送(filetransfer)和文獻存取(fileaccess)之間的區(qū)別,前者是FTP提供的,后者是如NFS

(Sun的網(wǎng)絡(luò)文獻系統(tǒng),第29章)等應(yīng)用系統(tǒng)提供的。由FTP提供的文獻傳送是將一個完整的

文獻從一個系統(tǒng)復(fù)制到另一個系統(tǒng)中。要使用FTP,就需要有登錄服務(wù)器的注冊帳號,或者通

過允許匿名FTP的服務(wù)器來使用(本章我們將給出這樣的一個例子)。

與Telnet類似,F(xiàn)TP最早的設(shè)計是用于兩臺不同的主機,這兩個主機也許運營在不同的操作系

統(tǒng)下、使用不同的文獻結(jié)構(gòu)、并也許使用不同字符集。但不同的是,Telnet獲得異構(gòu)性是強制兩端

都采用同一個標(biāo)準(zhǔn):使用7比特ASCII碼的NVT。而FTP是采用另一種方法來解決不同系統(tǒng)間的差

異。FTP支持有限數(shù)量的文獻類型(ASCII,二進制,等等)和文獻結(jié)構(gòu)(面向字節(jié)流或記錄)。

參考文獻959[Postel和Reynolds1985]是FTP的正式規(guī)范。該文獻敘述了近年來文獻傳輸

的歷史演變。

27.2FTP協(xié)議

FTP與我們已描述的另一種應(yīng)用不同,它采用兩個TCP連接來傳輸一個文獻。

1)控制連接以通常的客戶服務(wù)器方式建立。服務(wù)器以被動方式打開眾所周知的用于

FTP的端口(21),等待客戶的連接??蛻魟t以積極方式打開TCP端口21,來建立連

接??刂七B接始終等待客戶與服務(wù)器之間的通信。該連接將命令從客戶傳給服務(wù)器,

并傳回服務(wù)器的應(yīng)答。

由于命令通常是由用戶鍵入的,所以IP對控制連接的服務(wù)類型就是“最大限度地減小遲延”。

2)每當(dāng)一個文獻在客戶與服務(wù)器之間傳輸時,就創(chuàng)建一個數(shù)據(jù)連接。(其他時間也可以創(chuàng)

建,后面我們將說到)。

由于該連接用于傳輸目的,所以IP對數(shù)據(jù)連接的服務(wù)特點就是“最大限度提高吞吐量”。

圖27-1描述了客戶與服務(wù)器以及它們之間的連接情況

從圖中可以看出,交互式用戶通常不解決在控制連接中轉(zhuǎn)換的命令和應(yīng)答。這些細節(jié)均

由兩個協(xié)議解釋器來完畢。標(biāo)有“用戶接口”的方框功能是按用戶所需提供各種交互界面

(全屏幕菜單選擇,逐行輸入命令,等等),并把它們轉(zhuǎn)換成在控制連接上發(fā)送的FTP命令。

類似地,從控制連接上傳回的服務(wù)器應(yīng)答也被轉(zhuǎn)換成用戶所需的交互格式。

從圖中還可以看出,正是這兩個協(xié)議解釋器根據(jù)需要激活文獻傳送功能。

27.2.1數(shù)據(jù)表達

FTP協(xié)議規(guī)范提供了控制文獻傳送與存儲的多種選擇。在以下四個方面中每一個方面都必

須作出一個選擇。1.文獻類型

(a)ASCII碼文獻類型(默認(rèn)選擇)文本文獻以NVTASCII碼形式在數(shù)據(jù)連接中傳輸。這規(guī)定

發(fā)方將本地文本文獻轉(zhuǎn)換成NVTASCII碼形式,而收方則將NVTASCII碼再還原成本地文本文獻。

其中,用NVTASCII碼傳輸?shù)拿啃卸紟в幸粋€回車,而后是一個換行。這意味著收方必須掃描每

個字節(jié),查找CR、LF對(我們在第15.2節(jié)見過的關(guān)于TFIP的ASCII碼文獻傳輸情況與此相同)。

(b)EBCDIC文獻類型該文本文獻傳輸方式規(guī)定兩端都是EBCDIC系統(tǒng)。

(c)圖像文獻類型(也稱為二進制文獻類型)數(shù)據(jù)發(fā)送呈現(xiàn)為一個連續(xù)的比特流。通常

用于傳輸二進制文獻。

(d)本地文獻類型該方式在具有不同字節(jié)大小的主機間傳輸二進制文獻。每一字節(jié)的比特

數(shù)由發(fā)方規(guī)定。對使用8bit字節(jié)的系統(tǒng)來說,本地文獻以8bit字節(jié)傳輸就等同于圖像文獻傳輸。

2.格式控制

該選項只對ASCII和EBCDIC文獻類型有效。

(a)非打?。J(rèn)選擇)文獻中不具有垂直格式信息。

(b)遠程登錄格式控制文獻具有向打印機解釋的遠程登錄垂直格式控制。

(c)Fortran回車控制每行首字符是Fortran格式控制符。

3.結(jié)構(gòu)

(a)文獻結(jié)構(gòu)(默認(rèn)選擇)文獻被認(rèn)為是一個連續(xù)的字節(jié)流。不存在內(nèi)部的文獻結(jié)構(gòu)。

(b)記錄結(jié)構(gòu)該結(jié)構(gòu)只用于文本文獻(ASCII或EBCDIC)。

(c)頁結(jié)構(gòu)每頁都帶有頁號發(fā)送,以便收方能隨機地存儲各頁。該結(jié)構(gòu)由TOPS-20操

作系統(tǒng)提供(主機需求RFC不提倡采用該結(jié)構(gòu))。

4.傳輸方式

它規(guī)定文獻在數(shù)據(jù)連接中如何傳輸。

(a)流方式(默認(rèn)選擇)文獻以字節(jié)流的形式傳輸。對于文獻結(jié)構(gòu),發(fā)方在文獻尾提

示關(guān)閉數(shù)據(jù)連接。對于記錄結(jié)構(gòu),有專用的兩字節(jié)序列碼標(biāo)志記錄結(jié)束和文獻結(jié)束。

(b)塊方式文獻以一系列塊來傳輸,每塊前面都帶有一個或多個首部字節(jié)。

(c)壓縮方式一個簡樸的全長編碼壓縮方法,壓縮連續(xù)出現(xiàn)的相同字節(jié)。在文本文獻

客戶

用戶接口

用戶協(xié)議

解釋器

用戶數(shù)據(jù)傳

輸功能

文獻系統(tǒng)

數(shù)據(jù)連接

控制連接

服務(wù)器

服務(wù)器協(xié)

議接口

服務(wù)器數(shù)據(jù)傳

輸功能

文獻系統(tǒng)

(FTP命令)

(FTP應(yīng)答)

在終端上

的用戶

下載

318使用TCP/IP詳解,卷1:協(xié)議

中常用來壓縮空白串,在二進制文獻中常用來壓縮0字節(jié)(這種方式很少使用,也不受支持。

現(xiàn)在有一些更好的文獻壓縮方法來支持FTP)。

假如算一下所有這些選擇的排列組合數(shù),那么對傳輸和存儲一個文獻來說就有72種不同

的方式。幸運的是,其中很多選擇不是廢棄了,就是不為多數(shù)實現(xiàn)環(huán)境所支持,所以我們可

以忽略掉它們。

通常由Unix實現(xiàn)的FTP客戶和服務(wù)器把我們的選擇限制如下:

?類型:ASCII或圖像。

?格式控制:只允許非打印。

?結(jié)構(gòu):只允許文獻結(jié)構(gòu)。

?傳輸方式:只允許流方式。

這就限制我們只能取一、兩種方式:ASCII或圖像(二進制)。

該實現(xiàn)滿足主機需求RFC的最小需求(該RFC也規(guī)定能支持記錄結(jié)構(gòu),但只有操作系統(tǒng)

支持它才行,而Unix不行)。

很多非Unix的實現(xiàn)提供了解決它們自己文獻格式的FTP功能。主機需求RFC指出“FTP協(xié)

議有很多特性,雖然其中一些通常不實現(xiàn),但對FTP中的每一個特性來說,都存在著至少一種

實現(xiàn)”。27.2.4連接管理

數(shù)據(jù)連接有以下三大用途:

1)從客戶向服務(wù)器發(fā)送一個文獻。

2)從服務(wù)器向客戶發(fā)送一個文獻。

3)從服務(wù)器向客戶發(fā)送文獻或目錄列表。

FTP服務(wù)器把文獻列表從數(shù)據(jù)連接上發(fā)回,而不是控制連接上的多行應(yīng)答。這就避免了行

的有限性對目錄大小的限制,并且更易于客戶將目錄列表以文獻形式保存,而不是把列表顯

示在終端上。

我們已說過,控制連接一直保持到客戶-服務(wù)器連接的全過程,但數(shù)據(jù)連接可以根據(jù)需要

隨時來,隨時走。那么需要如何為數(shù)據(jù)連接選端標(biāo)語,以及誰來負責(zé)積極打開和被動打開?

一方面,我們前面說過通用傳輸方式(Unix環(huán)境下唯一的傳輸方式)是流方式,并且文獻

結(jié)尾是以關(guān)閉數(shù)據(jù)連接為標(biāo)志。這意味著對每一個文獻傳輸或目錄列表來說都要建立一個全

新的數(shù)據(jù)連接。其一般過程如下:

1)正由于是客戶發(fā)出命令規(guī)定建立數(shù)據(jù)連接,所以數(shù)據(jù)連接是在客戶的控制下建立的。

2)客戶通常在客戶端主機上為所在數(shù)據(jù)連接端選擇一個臨時端標(biāo)語??蛻魪脑摱丝诎l(fā)布

一個被動的打開。

3)客戶使用PORT命令從控制連接上把端標(biāo)語發(fā)向服務(wù)器。

4)服務(wù)器在控制連接上接受端標(biāo)語,并向客戶端主機上的端口發(fā)布一個積極的打開。服

務(wù)器的數(shù)據(jù)連接端一直使用端口20。

圖27-4給出了第3步執(zhí)行時的連接狀態(tài)。假設(shè)客戶用于控制連接的臨時端口是1173,客戶

用于數(shù)據(jù)連接的臨時端口是1174。客戶發(fā)出的命令是PORT命令,其參數(shù)是6個ASCII中的十進

制數(shù)字,它們之間由逗點隔開。前面4個數(shù)字指明客戶上的IP地址,服務(wù)器將向它發(fā)出積極打

開(本例中是4),而后兩位指明16bit端口地址。由于16bit端口地址是從這兩個

數(shù)字中得來,所以其值在本例中就是4×256+150=1174。

圖27-5給出了服務(wù)器向客戶所在數(shù)據(jù)連接端發(fā)布積極打開時的連接狀態(tài)。服務(wù)器的端點

是端口20。服務(wù)器總是執(zhí)行數(shù)據(jù)連接的積極打開。通常服務(wù)器也執(zhí)行數(shù)據(jù)連

溫馨提示

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

評論

0/150

提交評論