統一檔案傳輸

統一檔案傳輸

一般來說,使用網際網路的首要目的就是實現信息共享,檔案傳輸是信息共享非常重要的內容之一。網際網路上早期實現傳輸檔案。並不是一件容易的事,網際網路是一個非常複雜的計算機環境,有PC、工作站、MAC和大型機,而連線在網際網路上的計算機有上千萬台,並且這些計算機可能運行不同的作業系統,有運行Unix的伺服器。也有運行Linux、Windows的PC和運行MacOS的蘋果機等.而各種作業系統之問的檔案交流問題,需要建立一個統一的檔案傳輸協定,這就是FTP(File Transfer Protockl)。

概述

FTP用於網際網路上的控制檔案的雙向傳輸;同時,它也是一個應用程式(Appli cation)。用戶可以通過它把自己的PC與世界各地所有運行FTP協定的伺服器相連,訪問伺服器上的大量程式和信息。FTP的主要作用,就是讓用戶連線上一個遠程計算機(這些計算機上運行著FTP伺服器程式),查看遠程計算機有哪些檔案,然後把檔案從遠程汁算機上複製到本地計算機,或把本地計算機的檔案送到遠程計算機去。

FTP伺服器一般運行在20和21兩個連線埠。連線埠20用於在客戶端和伺服器之間傳輸數據流,而連線埠21用於傳輸控制流,並且是命令通向FTP伺服器的進口。在傳輸檔案時。FTP客戶端程式先與伺服器建立連線,然後向伺服器傳送命令。伺服器收到命令後給予回響,並執行命令。FTP雖然可以被終端用戶直接使用。但是它是設計成被FTP客戶端程式所控制。

連線埠

命令連線埠

一般來說,客戶端有一個Socket用來連線FTP伺服器的相關連線埠,它負責FTP命令的傳送和接收返回的回響信息。一些操作如“登錄”、“改變目錄”、“刪除檔案”等依靠這個連線傳送命令即可完成。

數據連線埠

對於有數據傳輸的操作。主要是顯示日錄列表,上傳、下載檔案,需要依靠另一個Socket來完成。FTP的數據傳輸有兩種模式:主動模式和被動模式。在主動模式下,通常客戶端會傳送一個連線埠號給伺服器端,並在這個連線埠監聽。伺服器需要連線到客戶端開啟的這個數據連線埠,並進行數據的傳輸。主動模式下容易出現的問題是,伺服器的主動連線請求會被客戶端的防火牆阻塞。在被動模式下,通常伺服器端會返回一個連線埠號。客戶端需要另開一個Socket來連線這個連線埠,然後根據操作傳送命令,數據會通過新開的一個連線埠傳輸。被動模式解決了本地防火牆的阻塞問題。

模式

主動模式

主動模式下,客戶端隨機打開一個大於1024的連線埠向伺服器的命令連線埠P(即21連線埠),發起連線,同時開放N+1連線埠監聽,並向伺服器發出“port N+1”命令,由伺服器從它自己的數據連線埠(20)主動連線到客戶端指定的數據連線埠(N+1)。

FTP的客戶端只是告訴伺服器自己的連線埠號,讓伺服器來連線客戶端指定的連線埠。對於客戶端的防火牆來說,這是從外部到內部的連線,可能會被阻塞。

被動模式

為了解決伺服器發起到客戶的連線問題,有了另一種FTP連線方式,即被動方式。命令連線和數據連線都由客戶端發起,這樣就解決了從伺服器到客戶端的數據連線埠的連線被防火牆過濾的問題。

常見命令

FTP使用從客戶端到伺服器端的命令報文,以及從伺服器端到客戶端的回響報文完成檔案件傳輸功能。FTP常見命令如下:

(1)USER username:用於向伺服器傳送用戶標識。

(2)PASS password:用於向伺服器傳送用戶口令。

(3)LIST:用於請求伺服器返回遠程主機當前目錄的所有檔案列表。檔案列表是在數據連線上傳送,而不是在控制TCP連線上傳送。

(4)RETR filename:用於從遠程主機的當前目錄檢索檔案。該命令觸發遠程主機發起一個數據連線,並在該數據連線上傳送所請求的檔案。

相關詞條

熱門詞條

聯絡我們