FTP協議及工作原理詳解

2021-10-19 07:31:15 字數 4088 閱讀 2350

1. ftp協議 

什麼是ftp呢?ftp 是 tcp/ip 協議組中的協議之一,是英文file transfer protocol的縮寫。

2. ftp伺服器和客戶端

同大多數internet服務一樣,ftp也是乙個客戶/伺服器系統。使用者通過乙個客戶機程式連線至在遠端計算機上執行的伺服器程式。依照 ftp 協議提供服務,進行檔案傳送的計算機就是 ftp 伺服器,而連線ftp伺服器,遵循ftp協議與伺服器傳送檔案的電腦就是ftp客戶端。使用者要連上 ftp 伺服器,就要用到 fpt 的客戶端軟體,通常 windows自帶「ftp」命令,這是乙個命令列的 ftp 客戶程式,另外常用的 ftp 客戶程式還有 cuteftp、ws_ftp、flashfxp、leapftp、流星雨-貓眼等。

3. ftp使用者授權

(1)使用者授權

要連上 ftp 伺服器(即「登陸」),必須要有該 ftp 伺服器授權的帳號,也就是說你只有在有了乙個使用者標識和乙個口令後才能登陸ftp伺服器,享受ftp伺服器提供的服務。

(2)ftp位址格式

:2003

:2003/soft/list.txt

(3)匿名ftp

互連網中有很大一部分 ftp 伺服器被稱為「匿名」(anonymous)ftp 伺服器。這類伺服器的目的是向公眾提供檔案拷貝服務,不要求使用者事先在該伺服器進行登記註冊,也不用取得ftp伺服器的授權。anonymous(匿名文 件傳輸)能夠使使用者與遠端主機建立連線並以匿名身份從遠端主機上拷貝檔案,而不必是該遠端主機的註冊使用者。使用者使用特殊的使用者名稱「anonymous」登 陸ftp服務,就可訪問遠端主機上公開的檔案。許多系統要求使用者將emai1位址作為口令,以便更好地對訪問進行跟綜。匿名ftp一直是internet 上獲取資訊資源的最主要方式,在internet成千上萬的匿名ftp主機中儲存著無以計數的檔案,這些檔案包含了各種各樣的資訊,資料和軟體。人們只要 知道特定資訊資源的主機位址,就可以用匿名ftp登入獲取所需的資訊資料。雖然目前使用www環境已取代匿名ftp成為最主要的資訊查詢方式,但是匿名 ftp仍是 internet上傳輸分發軟體的一種基本方法。如red hat 、autodesk等公司的匿名站點。

4. ftp的傳輸模式

ftp協議的任務是從一台計算機將檔案傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的作業系統無關。假設兩台 計算機通過ftp協議對話,並且能訪問internet,你可以用ftp命令來傳輸檔案。每種作業系統使用上有某一些細微差別,但是每種協議基本的命令結 構是相同的。

ftp的傳輸有兩種方式:ascii傳輸模式和二進位制資料傳輸模式。

1.ascii傳輸方式:假定使用者正在拷貝的檔案包含的簡單ascii碼文字,如果在遠端機器上執行的不是unix,當檔案傳輸時ftp通常會自動 地調整檔案的內容以便於把檔案解釋成另外那台計算機儲存文字檔案的格式。但是常常有這樣的情況,使用者正在傳輸的檔案包含的不是文字檔案,它們可能是程式, 資料庫,字處理檔案或者壓縮檔案(儘管字處理檔案包含的大部分是文字,其中也包含有指示頁尺寸,字型檔等資訊的非列印符)。在拷貝任何非文字檔案之前,用 binary 命令告訴ftp逐字拷貝,不要對這些檔案進行處理,這也是下面要講的二進位制傳輸。

2.二進位制傳輸模式:在二進位制傳輸中,儲存檔案的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的檔案是沒意義的。例 如,macintosh以二進位制方式傳送可執行檔案到windows系統,在對方系統上,此檔案不能執行。如果你在ascii方式下傳輸二進位制檔案,即使 不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞資料,使檔案變得不能用。(在大多數計算機上,ascii方式一般假設每一字元的第一有效位無意義,因為ascii字元組合不使用它。如果你傳 輸二進位制檔案,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進位制方式對文字檔案和資料檔案都是有效的。

5. ftp的工作方式

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必須和客戶端建立乙個新的連線用來傳送資料。

passive模式在建立控制通道的時候和standard模式類似,但建立連線後傳送的不是port命令,而是pasv命令。ftp伺服器收到 pasv命令後,隨機開啟乙個高階埠(埠號大於1024)並且通知客戶端在這個埠上傳送資料的請求,客戶端連線ftp伺服器此埠,然後ftp服務 器將通過這個埠進行資料的傳送,這個時候ftp server不再需要建立乙個新的和客戶端之間的連線。

很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的ftp伺服器不支援pasv模式,因為客戶端無法穿過防火牆 開啟ftp伺服器的高階埠;而許多內網的客戶端不能用port模式登陸ftp伺服器,因為從伺服器的tcp 20無法和內部網路的客戶端建立乙個新的連線,造成無法工作。

6.fxp

因為上述的原因,fxp傳送出錯時,本地的使用者程序還留在ftp伺服器中,並沒有退出,如此時再次連線ftp伺服器,可能會因使用者執行緒超過允 許,ftp伺服器提示客戶已登陸並拒絕客戶端的連線,直至伺服器中的傀儡程序因超時或其他原因被ftp伺服器殺死後,才能再次連線ftp伺服器。

成功fxp有兩個必要條件:①兩個ftp伺服器均支援fxp;②兩個ftp伺服器均支援pasv方式。但並不是說滿足這兩個條件的ftp伺服器均經 本地操作成功fxp,這還與本地與ftp伺服器的網路狀況有關。故有時會出現同樣兩個ftp,別人可以fxp,而你不可以的情況。 

7. tftp

tftp(trivial file transfer protocol)小檔案傳輸協議

它是乙個網路應用程式,它比ftp簡單也比ftp功能少。它在不需要使用者許可權或目錄可見的情況下使用,它使用udp協議而不是tcp協議。

tftp是乙個傳輸檔案的簡單協議,它基於udp協議而實現,但是我們也不能確定有些tftp協議是基於其它傳輸協議完成的。此協議設 計的時候是進行小檔案傳輸的,因此它不具備通常的ftp的許多功能,它只能從檔案伺服器上獲得或寫入檔案,不能列出目錄,不進行認證,它傳輸8位資料。傳 輸中有三種模式:netascii,這是8位的ascii碼形式,另一種是octet,這是8位源資料型別;最後一種mail已經不再支援,它將返回的數 據直接返回給使用者而不是儲存為檔案。   

任何傳輸起自乙個讀取或寫入檔案的請求,這個請求也是連線請求。如果伺服器批准此請求,則伺服器開啟連線,資料以定長512位元組傳輸。 每個資料報包括一塊資料,伺服器發出下乙個資料報以前必須得到客戶對上乙個資料報的確認。如果乙個資料報的大小小於512位元組,則表示傳輸結構。如果資料 包在傳輸過程中丟失,發出方會在超時後重新傳輸最後乙個未被確認的資料報。通訊的雙方都是資料的發出者與接收者,一方傳輸資料接收應答,另一方發出應答接 收資料。大部分的錯誤會導致連線中斷,錯誤由乙個錯誤的資料報引起。這個包不會被確認,也不會被重新傳送,因此另一方無法接收到。如果錯誤包丟失,則使用 超時機制。錯誤主要是由下面三種情況引起的:不能滿足請求,收到的資料報內容錯誤,而這種錯誤不能由延時或重發解釋,對需要資源的訪問丟失(如硬碟滿)。 tftp只在一種情況下不中斷連線,這種情況是源埠不正確,在這種情況下,指示錯誤的包會被傳送到源機。這個協議限制很多,這是都是為了實現起來比較方 便而進行的。   

初始連線時候需要發出wrq(請求寫入遠端系統)或rrq(請求讀取遠端系統),收到乙個確定應答,乙個確定可以寫出的包或應該讀取的 第一塊資料。通常確認包包括要確認的包的包號,每個資料報都與乙個塊號相對應,塊號從1開始而且是連續的。因此對於寫入請求的確定是乙個比較特殊的情況, 因此它的包的包號是0。如果收到的包是乙個錯誤的包,則這個請求被拒絕。建立連線時,通訊雙方隨機選擇乙個tid,因此是隨機選擇的,因此兩次選擇同乙個 id的可能性就很小了。每個包包括兩個tid,傳送者id和接收者id。這些id用於在udp通訊時選擇埠,請求主機選擇id的方法上面已經說過了,在 第一次請求的時候它會將請求發到tid 69,也就是伺服器的69埠上。應答時,伺服器使用乙個選擇好的tid作為源tid,並用上乙個包中的tid作為目的id進行傳送。這兩個被選擇的id 在隨後的通訊中會被一直使用。

FTP協議工作原理及總結

1.ftp協議 什麼是ftp呢?ftp 是 tcp ip 協議組中的協議之一,是英文file transfer protocol的縮寫。2.ftp使用者授權 1 使用者授權 要連上 ftp 伺服器 即 登陸 必須要有該 ftp 伺服器授權的帳號,也就是說你只有在有了乙個使用者標識和乙個口令後才能登陸...

FTP工作原理

在進行檔案傳輸時,ftp的客戶端和伺服器之間會建立兩個連線 1.控制連線是客戶端和ftp伺服器之間傳送命令的通道。2.資料連線是客戶端和ftp伺服器之間傳輸檔案的通道。ftp會話時,客戶端首先和ftp 伺服器的tcp 21埠建立控制連線,通過這個通道傳送命令。ftp協議中,控制連線均有客戶端發起,而...

FTP工作原理

ftp transfer protocol 件傳輸協議的縮寫,在rfc 959中具體說明。ftp會話時包含了兩個通道,乙個叫控制通道,乙個叫資料通道。控制通道 控制通道是和ftp伺服器進行溝通的通道,連線ftp,傳送ftp指令都是通過控制通道來完成的。資料通道 資料通道是和ftp伺服器進行檔案傳輸或...