【RL-TCPnet網絡教程】第35章 FTP文件傳輸協議基礎知識

第35章      FTP文件傳輸協議基礎知識

本章節爲大家講解FTP(File Transfer Protocol,文件傳輸協議)的基礎知識,方便後面章節的實戰操作。

(本章的知識點主要整理自網絡)

35.1  初學者重要提示

35.2  FTP基礎知識參考資料

35.3  FTP基礎知識點

35.4  總結

35.1  初學者重要提示

FTP文件傳輸協議在實際項目中有比較重要的實用價值,需要初學者對FTP的基礎知識也有個認識。

35.2  FTP基礎知識參考資料

大家可以從以下地址獲得FTP基礎知識:

對於初學者來說,學習上面三個參考資料就夠了。如果大家有網絡方面的書籍,比如《TCP/IP詳解》,也可以直接看書籍。

35.3  FTP基礎知識點

(這裏的知識點整理自上面的參考資料地址)

教程這裏也對FTP的基礎知識做個介紹,方便大家先有個大概的認識。

35.3.1 FTP簡要說明

FTP(File Transfer Protocol,文件傳輸協議)用於Internet上面控制文件的雙向傳輸。同時,它也是一個應用程序。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:下載和上傳。下載文件就是從遠程主機拷貝文件至自己的計算機上;上傳文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。

FTP服務一般運行在20和21兩個端口。端口20用於在客戶端和服務器之間傳輸數據流,而端口21用於傳輸控制流。

35.3.2 FTP服務器/客戶端

簡單地說,支持FTP協議的服務器就是FTP服務器。

與大多數Internet服務一樣,FTP也是一個客戶機/服務器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求服務器向用戶傳送某一個文件的一份拷貝,服務器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。

35.3.3 匿名FTP

使用FTP時必須首先登錄,在遠程主機上獲得相應的權限以後,方可下載或上傳文件。也就是說,要想同哪一臺計算機傳送文件,就必須具有哪一臺計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一臺主機上都擁有帳號。匿名FTP就是爲解決這個問題而產生的。

匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,並從其下載文件,而無需成爲其註冊用戶。系統管理員建立了一個特殊的用戶ID,名爲anonymous, Internet上的任何人在任何地方都可使用該用戶ID。

通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在提供用戶ID時必須輸入anonymous,該用戶ID的口令可以是任意的字符串。習慣上,用自己的E-mail地址作爲口令,使系統維護程序能夠記錄下來誰在存取這些文件。

值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。

當遠程主機提供匿名FTP服務時,會指定某些目錄向公衆開放,允許匿名存取。系統中的其餘目錄則處於隱匿狀態。作爲一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上傳文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上傳有問題的文件,如帶病毒的文件。

35.3.4 FTP傳輸方式

FTP的傳輸有兩種方式:ASCII、二進制。

  • ASCII傳輸方式

假定用戶正在拷貝的文件包含簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時,ftp通常會自動地調整文件的內容以便於把文件解釋成另外那臺計算機存儲文本文件的格式。

但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序、數據庫或者壓縮文件。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝。

  • 二進制傳輸模式

在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一 一對應的。即使目的地機器上這種位序列的文件是沒意義的。例如,Mac OS以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。

如果在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯,這會損壞數據(ASCII方式一般假設每一字符的第一個bit無意義,因爲ASCII字符組合不使用它。如果傳輸二進制文件,所有的位都是重要的)。

35.3.5 FTP支持的模式

FTP支持兩種模式:Standard (PORT,主動方式),Passive (PASV,被動方式)。

  • Standard模式

FTP 客戶端首先和服務器的TCP 21端口建立連接,用來發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。PORT命令包含了客戶端用什麼端口接收數據。在傳送數據的時候,服務器端通過自己的TCP 20端口連接至客戶端的指定端口發送數據。FTP服務器必須和客戶端建立一個新的連接用來傳送數據。

  • Passive模式

建立控制通道和Standard模式類似,但建立連接後發送Pasv命令。服務器收到Pasv命令後,打開一個臨時端口(端口號大於1023小於65535)並且通知客戶端在這個端口上傳送數據,客戶端連接FTP服務器此端口,然後FTP服務器將通過這個端口傳送數據。

很多防火牆在設置的時候都不允許接受外部發起的連接,所以許多位於防火牆後或內網的FTP服務器不支持PASV模式,因爲客戶端無法穿過防火牆打開FTP服務器的高端端口。而許多內網的客戶端不能用PORT模式登錄FTP服務器,因爲從服務器的TCP 20無法和內部網絡的客戶端建立一個新的連接,造成無法工作。

35.3.6 FTP實現的目標和缺點

FTP實現的目標如下:

  1. 促進文件的共享(計算機程序或數據)。
  2. 鼓勵間接的使用遠程計算機。
  3. 向用戶屏蔽不同主機中各種文件系統的細節。
  4. 可靠和高效的傳輸數據。

FTP的缺點如下:

  1. 密碼和文件內容都使用明文傳輸,可能發生竊聽。
  2. 因爲必須開放一個隨機的端口以創建連接,當防火牆存在時,客戶端很難過濾處於主動模式下的FTP流量。這個問題,通過使用被動模式的FTP,很大程度上得到了解決。
  3. 服務器可能會被告知連接一個第三方計算機的保留端口。
  4. 此方式在需要傳輸文件數量很多的小文件時,性能不好。

35.4 總結

本章節就爲大家講解這麼多,更多FTP的相關知識需要大家查閱相關書籍進行學習,或者網上搜索相關資料進行學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章