檔案傳輸協定

檔案傳輸協定

檔案傳輸協定使得主機間可以已分享檔案。 FTP 使用TCP 生成一個虛擬連線用於控制信息,然後再生成一個單獨的 TCP 連線用於數據傳輸。控制連線使用類似TELNET協定在主機間交換命令和訊息。檔案傳輸協定是TCP/IP網路上兩台計算機傳送檔案的協定,FTP是在TCP/IP網路和INTERNET上最早使用的協定之一,它屬於網路協定組的套用層。FTP客戶機可以給伺服器發出命令來下載檔案,上傳檔案,創建或改變伺服器上的目錄。

基本信息

簡介

FTP是套用層的協定,它基於傳輸層,為用戶服務,它們負責進行檔案的傳輸。FTP是一個8位的客戶端-伺服器協定,能操作任何類型的檔案而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間會非常長,並且不時的必需執行一些冗長的登入進程。
FTP服務一般運行在20和21兩個連線埠。連線埠20用於在客戶端和伺服器之間傳輸數據流,而連線埠21用於傳輸控制流,並且是命令通向ftp伺服器的進口。當數據通過數據流傳輸時,控制流處於空閒狀態。而當控制流空閒很長時間後,客戶端的防火牆會將其會話置為逾時,這樣當大量數據通過防火牆時,會產生一些問題。此時,雖然檔案可以成功的傳輸,但因為控制會話會被防火牆斷開,傳輸會產生一些錯誤。

工作原理

檔案傳輸協定(FTP)是TCP/IP提供的標準機
制,用來將檔案從一個主機複製到另一個主機。FTP使用TCP的服務。

網頁瀏覽器

大多數最新的網頁瀏覽器和檔案管理器都能和FTP伺服器建立連線。這使得在FTP上通過一個接口就可以操控遠程檔案,如同操控本地檔案一樣。這個功能通過給定一個FTP的URL實現,形如ftp://<伺服器地址>。是否提供密碼是可選擇的,如果有密碼,則形如ftp:// : @。大部分 網頁瀏覽器要求使用被動FTP模式,然而並不是所有的FTP 伺服器都支持被動模式。
網路協定
套用層DNS, FTP, ENRP, HTTP, IMAP, IIRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, DHCP...
傳輸層DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, ...
網路層IPv4, IPv6...
數據鏈路層乙太網, Wi-Fi, 令牌環, MPLS, PPP...
物理層RS-232, EIA-422, RS-449, EIA-485, 10BASE2, 10BASE-T...

FTP和網站

我們都知道,當我們需要往 網站空間上放網站檔案的時候,我們可以採用 WEB和 FTP兩種方法。在這裡,我們建議直接使用FTP進行 數據交換,因為不管是安全性還是快捷性來說,ftp都是很不錯的。
那么我們怎么往空間上傳送網站的數據檔案呢,這時,我們就需要一個軟體 FlashFXP或者其他FTP 客戶端。這裡我們以FlashFXP為例,我們去網上下載這個 軟體包並解壓出來,雙擊FlashFXP.exe這個檔案,進入頁面之後,有一個閃電符號的按鈕,這是 連線。單擊或者直接按F8,這時會出來一個對話框,我們只需要輸入網站的URL或者 IP,然後再輸入 用戶名和 密碼就行,這時,我們就可以進行網站數據檔案的傳輸了。

FTP用戶授權

(1)用戶授權
要連上 FTP 伺服器(即“登入”),必須要有該 FTP 伺服器授權的帳號,也就是說你只有在有了一個 用戶標識和一個口令後才能登入FTP伺服器,享受FTP伺服器提供的服務。
(2)FTP地址 格式
FTP地址如下: ftp://用戶名:密碼@FTP 伺服器IP或域名:FTP命令連線埠/ 路徑/檔案名稱
上面的參數除FTP 伺服器IP或域名為必要項外,其他都不是必須的。

FTP伺服器

FTP的全稱是File Transfer Protocol(檔案傳輸協定),顧名思義,就是專門用來傳輸檔案的協定。FTP的主要作用,就是讓用戶連線上一個遠程計算機(這些計算機上運行著 FTP伺服器程式)察看遠程計算機有哪些檔案,然後把檔案從遠程計算機上拷到本地計算機,或把本地計算機的檔案送到遠程計算機去。
其實 早期在Internet上傳輸檔案,並不是一件容易的事,我們知道 Internet是一個非常複雜的計算機環境,有PC、工作站、MAC、伺服器、大型機等等,而這些計算機可能運行不同的作業系統,有Unix、Dos、 Windows、MacOS等等,各種作業系統之間的檔案交流,需要建立一個統一的檔案傳輸協定,這就是所謂的FTP。雖然基於不同的作業系統有不同的 FTP應用程式,而所有這些應用程式都遵守同一種協定,這樣用戶就可以把自己的檔案傳送給別人,或者從其它的用戶環境中獲得檔案。
與大 多數Internet服務一樣,FTP也是一個客戶機/伺服器系統(C/S)。用戶通過一個支持FTP協定的客戶機程式,連線到遠程主機上的FTP伺服器 程式。用戶通過客戶機程式向伺服器程式發出命令,伺服器程式執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個檔案,伺服器會回響這條命令,將指定檔案送至用戶的機器上。客戶機程式代表用戶接收到這個檔案,將其存放在用戶指定目錄中。FTP客戶程式 有字元界面和圖形界面兩種。字元界面的FTP的命令複雜、繁多。圖形界面的FTP客戶程式,操作上要簡潔方便的多。
在FTP的使用當 中,用戶經常遇到兩個概念:"下載"(Download)和"上載"(Upload)。"下載"檔案就是從遠程主機拷貝檔案至自己的計算機上;"上載"文 件就是將檔案從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程式向(從)遠程主機上載(下載)檔案。
在ftp的使用過程中,必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上傳或下載檔案。也就是說,要想同哪一台計算機傳送檔案,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送檔案。這種情況違背了Internet的開放性,Internet上的FTP主機何止千 萬,不可能要求每個用戶在每一台主機上都擁有帳號。因此就衍生出了匿名 FTP。

優缺點

優點:
1.促進檔案的共享(電腦程式或數據)。
2.鼓勵間接或者隱式的使用遠程計算機。
3.向用戶禁止不同 主機中各種檔案存儲系統的細節。
4.可靠和高效的傳輸數據。
缺點:
1.密碼和檔案內容都使用明文傳輸,可能產生不希望發生的竊聽。
2.因為必須開放一個隨機的連線埠以建立連線,當 防火牆存在時, 客戶端很難過濾處於主動模式下的FTP流量。這個問題通過使用被動模式的FTP得到了很大解決。
3.伺服器可能會被告知連線一個第三方計算機的保留連線埠。
FTP雖然可以被終端用戶直接使用,但是它是設計成被FTP 客戶端程式所控制。
運行FTP服務的許多站點都開放匿名服務,在這種設定下,用戶不需要 帳號就可以登錄 伺服器,默認情況下,匿名用戶的用戶名是:“anonymous”。這個帳號不需要 密碼,雖然通常要求輸入用戶的郵件地址作為認證密碼,但這只是一些細節或者此郵件地址根本不被確定,而是依賴於 FTP伺服器的配置情況。

使用模式

FTP有兩種使用模式:主動和被動。主動模式要求 客戶端和 伺服器端同時打開並且監聽一個連線埠以建立連線。在這種情況下, 客戶端由於安裝了 防火牆會產生一些問題。所以,創立了被動模式。被動模式只要求伺服器端產生一個監聽相應連線埠的進程,這樣就可以繞過 客戶端安裝了 防火牆的問題。
一個主動模式的FTP連線建立要遵循以下步驟:
1. 客戶端打開一個隨機的連線埠( 連線埠號大於1024,在這裡,我們稱它為x),同時一個FTP進程連線至伺服器的21號命令連線埠。此時,源連線埠為隨機連線埠x,在 客戶端,遠程連線埠為21,在伺服器。
2.客戶端開始監聽連線埠(x+1),同時向 伺服器傳送一個連線埠命令(通過伺服器的21號命令連線埠),此命令告訴 伺服器客戶端正在監聽的 連線埠號並且已準備好從此連線埠接收數據。這個連線埠就是我們所知的數據連線埠。
3.伺服器打開20號 源連線埠並且建立和客戶端數據連線埠的連線。此時, 源連線埠為20,遠程數據連線埠為(x+1)。
4. 客戶端通過本地的數據連線埠建立一個和伺服器20號連線埠的連線,然後向伺服器傳送一個應答,告訴伺服器它已經建立好了一個連線。
被動模式FTP:
為了解決 伺服器發起到客戶的連線的問題,人們開發了一種不同的FTP連線方式。這就是所謂的被動方式,或者叫做PASV,當 客戶端通知伺服器它處於被動模式時才啟用。
在被動方式FTP中,命令連線和 數據連線都由 客戶端發起,這樣就可以解決從 伺服器到 客戶端的數據連線埠的入方向連線被 防火牆過濾掉的問題。
當開啟一個 FTP連線時, 客戶端打開兩個任意的非特權本地連線埠(N > 1024和N+1)。第一個連線埠連線 伺服器的21連線埠,但與主動方式的FTP不同, 客戶端不會提交PORT命令並允許伺服器來回連它的數據連線埠,而是提交 PASV命令。這樣做的結果是 伺服器會開啟一個任意的非特權連線埠(P > 1024),並傳送PORT P命令給 客戶端。然後 客戶端發起從本地連線埠N+1到 伺服器的連線埠P的連線用來傳送數據。
對於伺服器端的 防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:
1. 從任何大於1024的連線埠到 伺服器的21連線埠 ( 客戶端的初始化連線)
2. 伺服器的21連線埠到任何大於1024的連線埠 (伺服器回響到客戶端的 控制連線埠的連線)
3. 從任何大於1024連線埠到 伺服器的大於1024連線埠 (客戶端初始化 數據連線到伺服器指定的任意連線埠)
4. 伺服器的大於1024連線埠到遠程的大於1024的連線埠(伺服器傳送ACK回響和數據到 客戶端的數據連線埠)

擴展

內部資金轉移定價(Funds Transfer Pricing)

相關詞條

相關搜尋

熱門詞條

聯絡我們