標籤:Edito 外部 windows mail 客戶機 系統管 網路 高效 大於
第35章 FTP檔案傳輸通訊協定基礎知識
本章節為大家講解FTP(File Transfer Protocol,檔案傳輸通訊協定)的基礎知識,方便後面章節的實戰操作。
(本章的知識點主要整理自網路)
35.1 初學者重要提示
35.2 FTP基礎知識參考資料
35.3 FTP基礎知識點
35.4 總結
35.1 初學者重要提示
FTP檔案傳輸通訊協定在實際項目中有比較重要的實用價值,需要初學者對FTP的基礎知識也有個認識。
35.2 FTP基礎知識參考資料
大家可以從以下地址獲得FTP基礎知識:
- RFC959地址 : ftp://ftp.rfc-editor.org/in-notes/rfc959.txt 。
- wiki百科中文版FTP:地址連結(這個是超連結)
- wiki百科英文版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碼文本,如果在遠程機器上啟動並執行不是UNIX,當檔案傳輸時,ftp通常會自動地調整檔案的內容以便於把檔案解釋成另外那台電腦儲存文字檔的格式。
但是常常有這樣的情況,使用者正在傳輸的檔案包含的不是文字檔,它們可能是程式、資料庫或者壓縮檔。在拷貝任何非文字檔之前,用binary 命令告訴ftp逐字拷貝。
在二進位傳輸中,儲存檔案的位序,以便原始和拷貝的是逐位一 一對應的。即使目的地機器上這種位序列的檔案是沒意義的。例如,Mac OS以二進位方式傳送可執行檔到Windows系統,在對方系統上,此檔案不能執行。
如果在ASCII方式下傳輸二進位檔案,即使不需要也仍會轉譯,這會損壞資料(ASCII方式一般假設每一字元的第一個bit無意義,因為ASCII字元組合不使用它。如果傳輸二進位檔案,所有的位都是重要的)。
35.3.5 FTP支援的模式
FTP支援兩種模式:Standard (PORT,主動方式),Passive (PASV,被動方式)。
FTP 用戶端首先和伺服器的TCP 21連接埠建立串連,用來發送命令,用戶端需要接收資料的時候在這個通道上發送PORT命令。PORT命令包含了用戶端用什麼連接埠接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20連接埠串連至用戶端的指定連接埠發送資料。FTP伺服器必須和用戶端建立一個新的串連用來傳送資料。
建立控制通道和Standard模式類似,但建立串連後發送Pasv命令。伺服器收到Pasv命令後,開啟一個臨時連接埠(連接埠號碼大於1023小於65535)並且通知用戶端在這個連接埠上傳送資料,用戶端串連FTP伺服器此連接埠,然後FTP伺服器將通過這個連接埠傳送資料。
很多防火牆在設定的時候都不允許接受外部發起的串連,所以許多位於防火牆後或內網的FTP伺服器不支援PASV模式,因為用戶端無法穿過防火牆開啟FTP伺服器的高端連接埠。而許多內網的用戶端不能用PORT模式登入FTP伺服器,因為從伺服器的TCP 20無法和內部網路的用戶端建立一個新的串連,造成無法工作。
35.3.6 FTP實現的目標和缺點
FTP實現的目標如下:
- 促進檔案的共用(電腦程式或資料)。
- 鼓勵間接的使用遠端電腦。
- 向使用者屏蔽不同主機中各種檔案系統的細節。
- 可靠和高效的傳輸資料。
FTP的缺點如下:
- 密碼和檔案內容都使用明文傳輸,可能發生竊聽。
- 因為必須開放一個隨機的連接埠以建立串連,當防火牆存在時,用戶端很難過濾處於主動模式下的FTP流量。這個問題,通過使用被動模式的FTP,很大程度上得到瞭解決。
- 伺服器可能會被告知串連一個第三方電腦的保留連接埠。
- 此方式在需要傳輸檔案數量很多的小檔案時,效能不好。
35.4 總結
本章節就為大家講解這麼多,更多FTP的相關知識需要大家查閱相關書籍進行學習,或者網上搜尋相關資料進行學習。
【RL-TCPnet網路教程】第35章 FTP檔案傳輸通訊協定基礎知識