FTP文件傳輸協議


㈠定義

FTP(File Transfer Protocol,文件傳輸協議) 是 一個用於簡化IP網絡上系統之間文件傳送的協議,是TCP/IP 協議組中的協議之一。

 

㈡組成

⑴FTP協議包括兩個組成部分,其一為FTP服務器,其二為FTP客戶端。

⑵其中FTP服務器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP服務器上的資源。

⑶在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web服務器上。

⑷此外,由於FTP傳輸效率非常高,在網絡上傳輸大的文件時,一般也采用該協議。

 

㈢工作原理

⑴FTP有兩個過程一個是控制連接,一個是數據傳輸。

⑵FTP協議不像HTTP協議一樣需要一個端口作為連接(默認時HTTP端口是80, FTP端口是21)。

⑶FTP協議需要兩個端口,一個端口是作為控制連接端口,也就是FTP的21端口,用於發送指令給服務器以及等待服務器響應;

⑷另外一個端口用於數據傳輸端口,端口號為20 (僅用PORT模式),是用建立數據傳輸通道的,

⑸主要作用是從客戶向服務器發送一一個文件, 從服務器向客戶發送一個文件, 從服務器向客戶發送文件或目錄列表。

 

㈣工作方式

⑴FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive(也就是PASV,被動方式)。

⑵Standard模式 FTP的客戶端發送 PORT 命令到FTP服務器。

⑶Passive模式FTP的客戶端發送 PASV命令到 FTP Server。

 

㈤PORT(主動模式)工作原理

⑴FTP 客戶端首先和FTP服務器的TCP 21端口建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。

⑵PORT命令包含了客戶端用什么端口接收數據。

⑶在傳送數據的時候,服務器端通過自己的TCP 20端口連接至客戶端的指定端口發送數據。

⑷FTP server必須和客戶端建立一個新的連接用來傳送數據。

 

㈥PASV(被動模式)工作原理

⑴在建立控制通道的時候和 Standard 模式類似,但建立連接后發送的不是 Port 命令,而是 Pasv 命令。

⑵FTP 服務器收到 Pasv 命令后,隨機打開一個高端端口(端口號大於 1024)並且通知客戶端在這個端口上傳送數據的請求,

⑶客戶端連接 FTP 服務器此端口,通過三次握手建立通道,然后 FTP 服務器將通過這個端口進行數據的傳送。

 

⑴很多防火牆在設置的時候都是不允許接受外部發起的連接的,

⑵所以許多位於防火牆后或內網的 FTP 服務器不支持 PASV 模式,

⑶因為客戶端無法穿過防火牆打開 FTP 服務器的高端端口;

⑷而許多內網的客戶端不能用 PORT 模式登陸 FTP 服務器,

⑸因為從服務器的 TCP 20 無法和內部網絡的客戶端建立一個新的連接,造成無法工作。

 

㈦傳輸模式

⑴FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。

⑵FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。

⑶假設兩台計算機通過ftp協議對話,並且能訪問Internet,你可以用ftp命令來傳輸文件。

⑷每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。

 

㈧ASCII傳輸模式

⑴假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的是不同的操作系統,

⑵當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。

⑶但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,

⑷它們可能是程序,數據庫,字處理文件或者壓縮文件

(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字庫等信息的非打印字符)。

 ⑸在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理

 

㈨二進制傳輸模式

⑴在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。

⑵即使目的地機器上包含位序列的文件是沒意義的。

⑶例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。

⑷如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。

⑸這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。

⑹在大多數計算機上,ASCII方式一般假設每一字符的第一有效位無意義,

⑺因為ASCII字符組合不使用它。如果你傳輸二進制文件,所有的位都是重要的.

⑻如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。

 

㈩用戶授權

⑴授權

要連上 FTP 服務器(即“登陸”),必須要有該 FTP 服務器授權的帳號,

也就是說你只有在有了一個用戶標識和一個口令后才能登陸FTP服務器,享受FTP服務器提供的服務。

 

⑵地址格式

ftp://用戶名:密碼@FTP服務器IP或域名:FTP命令端口/路徑/文件名

上面的參數除FTP服務器IP或域名為必要項外,其他都不是必須的。

如以下地址都是有效FTP地址:

ftp://foolish.6600.org
ftp://list:list@foolish.6600.org
ftp://list:list@foolish.6600.org:2003
ftp://list:list@foolish.6600.org:2003/soft/list.txt
 
⑶匿名
①互聯網中有很大一部分 FTP 服務器被稱為“匿名”(Anonymous)FTP 服務器。
這類服務器的目的是向公眾提供文件拷貝服務,不要求用戶事先在該服務器進行登記注冊,也不用取得FTP服務器的授權。
 
②Anonymous(匿名文件傳輸)能夠使用戶與遠程主機建立連接並以匿名身份從遠程主機上拷貝文件,
而不必是該遠程主機的注冊用戶。
 
③用戶使用特殊的用戶名“anonymous”登陸FTP服務,就可訪問遠程主機上公開的文件。
許多系統要求用戶將Email地址作為口令,以便更好地對訪問進行跟綜。
 
④匿名FTP一直是Internet上獲取信息資源的最主要方式,
在Internet成千上萬的匿名FTP主機中存儲着無以計數的文件,
這些文件包含了各種各樣的信息,數據和軟件。
人們只要知道特定信息資源的主機地址,就可以用匿名FTP登錄獲取所需的信息資料。
 
⑤雖然使用WWW環境已取代匿名FTP成為最主要的信息查詢方式,
但是匿名FTP仍是 Internet上傳輸分發軟件的一種基本方法。
如red hat 、autodesk等公司的匿名站點。
 
 
(十一)FTP的限制
⑴對於FTP服務器來講,他必須在整個會話期間保持用戶的狀態(state)
⑵特別是,服務器必須把特定的用戶賬戶與控制聯系起來,
⑶用戶在遠程目錄樹上不斷跳轉時,服務器必須追蹤到用戶在遠程樹上的當前位置,
⑷換句話說,當客戶端用戶數量不斷增多,FTP服務器所要維持的會話總數,也會迅速增長。
⑸這會大大限制FTP服務器的性能。
 
 
(十二)FTP中的命令與應答
⑴命令
 
①FTP協議的命令是認可讀的,每個命令由4個大寫的ASCII字符組成,有些還可帶一些可選參數,命令后面跟回車符換行。
 
②以下是比較常見的命令:

 

⑵應答

①FTP客戶端每個發出的命令都會對應一個FTP服務器發出的應答。應帶是一個3為的數字,后跟一個可選信息。他與http響應報文的狀態碼和狀態信息的結構相同。
 
②比較常見的幾個應帶可以參考如下:

 

注意:FTP-RFC959中文版https://wenku.baidu.com/view/fd5c3611f18583d049645969.html

           里面有非常詳細的有關FTP協議的相關知識,可以閱讀參考。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM