當前位置:首頁 » 文件管理 » ftp會話包含了兩個通道

ftp會話包含了兩個通道

發布時間: 2022-11-28 14:49:38

1. ftp是什麼

FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。

其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。此外,由於FTP傳輸效率非常高,在網路上傳輸大的文件時,一般也採用該協議。



(1)ftp會話包含了兩個通道擴展閱讀:

同大多數Internet服務一樣,FTP也是一個客戶/伺服器系統。用戶通過一個客戶機程序連接至在遠程計算機上運行的伺服器程序。依照 FTP 協議提供服務,進行文件傳送的計算機就是 FTP伺服器,而連接FTP伺服器,遵循FTP協議與伺服器傳送文件的電腦就是FTP客戶端。

用戶要連上FTP 伺服器,就要用到 FTP 的客戶端軟體,通常 Windows自帶「ftp」命令,這是一個命令行的 FTP客戶程序,另外常用的 FTP 客戶程序還有FileZilla、 CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-貓眼等。

2. 怎樣用serv-U設置FTP地址

先要提到的是這里的內網是指一般我們網吧內部環境的內網,對區域網內網我沒什麼好說的。一個基本條件:一個公網IP,對網關有操作許可權。
FTP伺服器端192.168.0.100,我選用Win2K+Serv-U 6.1.0.0,很普通常用的一個組合網關是最簡單的雙網卡PC,一接外網一接內網,這里假設外網IP為218.4.218.4,內網IP為192.168.0.1。
提一些概念性的東東:
一次完整的FTP會話,包含有兩個連接,一個稱之為命令通道,一個稱之為數據通道。命令通道用來傳遞一些"命令"和反饋,包括用戶名密碼登陸,而且眾所周知是明文數據通道用來傳遞實際數據----列目錄、文件傳輸,一旦需要列目錄或文件傳輸,數據通道就會被建立起來,這里分兩種方式,一是 PORT二是PASV。
你會在網際網路上找到許多FTP伺服器,有的要麼只支持PORT,有的要麼只支持PASV,有的是因為考慮安全因素,有的是因為條件限制等等。我想把我的FTP做成PORT和PASV方式都能支持的,這樣不會使客戶端在連接上受到困擾,特別是一些新手,對於PORT和PASV的定義,比較容易理解的解釋是針對FTP服務端而言的:
PORT是主動模式,在建立數據通道時,服務端去連接別人;
PASV是被動模式,在建立數據通道時,服務端被別人連接;
建立數據通道時,用PORT模式還是PASV模式,選擇權在於FTP客戶端。
現在要做的,就是埠映射了,最基本的是命令通道的映射,這里選用默認的21,我想把在網關外網介面收到的對218.4.218.4埠21的連接請求,轉發到192.168.0.100的21埠去。
Win2K網關
系統自帶簡單的埠轉發程序,就是能給我們提供連接共享的ICS/RRAS,這兩種方式原理是一樣的,而且都能提供這類業務的埠轉發設置過程比較簡單,我也不抓圖了,以前有過很多。
就是在"服務與埠"中,注冊一條類似"公用網路與埠218.4.218.4:21 To 專用網路與埠192.168.0.100:21"這樣格式的規則設置好後,別人就能訪問你的內網FTP伺服器了,但你很快會發現你的FTP伺服器只支持 PORT方式,如果客戶端也在內網環境則PORT方式也用不了了這是為什麼呢?我們來分析一下,因為在PASV方式,伺服器接到客戶端的PASV命令後,會指定一個本地的隨機埠來作為PASV埠,並通知客戶端,然後等待客戶端的連接,在通知消息里包含有FTP伺服器的IP地址和打開的PASV埠,我 FTP伺服器的IP地址是什麼?
現在是192.168.0.100,那麼對方收到的PASV通知將是這樣格式的227 Entering Passive Mode (192,168,0,100,m,n)mn是定義了PASV埠的值,計算方式是m*256+m,如果這里m是10而n是20,那麼PASV埠就是 2580客戶端收到這條通知後,當它想發起數據通道的連接,它會向192.168.0.100:2580這個目標地址發送SYN請求,毫無疑問將不會收到應答,因為這個IP在公共網路事實上是不存在的解決的辦法是讓FTP伺服器發送帶公網IP的PASV通知,我們的Serv-U支持這個功能。
然後在網關上把需要打開的PASV埠跟21埠一樣做映射到192.168.0.100
你也許會疑惑了,PASV是伺服器動態打開的隨機埠,我怎麼會知道它會用哪個?怎麼映射啊?沒有問題,Serv-U同樣可以定義每次使用固定的PASV埠,當然為了同時承接多個連接會話,你需要多設置幾個成一段,然後在網關上一一對應映射到FTP伺服器上去.

3. 名詞解釋 FTP

文件傳輸協議(英文:File Transfer Protocol,縮寫:FTP)是用於在網路上進行文件傳輸的一套標准協議,使用客戶/伺服器模式。它屬於網路傳輸協議的應用層。文件傳送(file transfer)和文件訪問(file access)之間的區別在於:前者由FTP提供,後者由如NFS等應用系統提供。
FTP是一個8位的客戶端-伺服器協議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間,會非常長;並且不時的必須執行一些冗長的登錄進程。
補充
工作原理
FTP 採用 Internet 標准文件傳輸協議 FTP 的用戶界面, 向用戶提供了一組用來管理計算機之間文件傳輸的應用程序。
FTP 是基於客戶———伺服器(C/S)模型而設計的,在客戶端與 FTP 伺服器之間建立兩個連接。
開發任何基於 FTP 的客戶端軟體都必須遵循 FTP 的工作原理,FTP 的獨特的優勢同時也是與其它客戶伺服器程序最大的不同點就在於它在兩台通信的主機之間使用了兩條 TCP 連接,一條是數據連接,用於數據傳送;另一條是控制連接,用於傳送控制信息(命令和響應),這種將命令和數據分開傳送的思想大大提高了 FTP 的效率,而其它客戶伺服器應用程序一般只有一條 TCP 連接。圖 1 給出了 FTP 的基本模型。客戶有三個構件:用戶介面、客戶控制進程和客戶數據傳送進程。伺服器有兩個構件:伺服器控制進程和伺服器數據傳送進程。在整個交互的 FTP 會話中,控制連接始終是處於連接狀態的,數據連接則在每一次文件傳送時先打開後關閉。

4. FTP 使用的是什麼協議

FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分。

1、FTP伺服器。

2、FTP客戶端。

其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。

(4)ftp會話包含了兩個通道擴展閱讀

FTP屏蔽了各計算機系統的細節,因而適合在異構網路中任意計算機之間傳送文件。FTP只提供文件傳送的一些基本服務,它使用TCP可靠地運輸服務,FTP主要功能是減小或消除在不同系統下處理文件的不兼容性。

FTP使用客戶端-伺服器模型,一個FTP伺服器進程可以為多個客戶進程提供服務。FTP伺服器有兩大部分組成:一個主進程,負責接受新的請求;還有若干從屬進程,負責處理單個請求。

5. ftp會話中,20和21埠都是用來干什麼的

不懂你問的問題是個什麼意思!FTP的埠默認的就是21呀,如果開FTP伺服器的話,默認21埠是要打開的呀 當然你也可以把FTP的埠改成23 .24啊什麼的,只有有個空閑的埠給FTP就可以了!

6. 敘述FTP 的會話過程(步驟)

FTP的會話過程其步驟如下:
1)FTP在打開控制連接與建立數據連接之前,要進行客戶的身份認證。在客戶端提供的登錄用戶名和口令通過後,客戶機與伺服器雙方協商數據交換參數,如文件數據類型(一般為ASCII類型或二進制類型)與傳輸模式(流模式、塊模式或壓縮模式)。
2)伺服器後台進程監聽來自客戶端控制進程的連接請求,與對方建立控制連接,接收並
執行來自用戶進程的命令,同時給出命令執行結果的應答。客戶端控制進程負責向伺服器建
守連接,發送客戶命令並分析伺服器應答。
3)客戶端數據傳輸進程監聽伺服器數據傳輸進程的連接要求,與之建立數據連接,完成
文件傳送後關閉數據連接。
4)在伺服器接收到客戶端的close命令後關閉與客戶端的控制連接,接收到exit命令後
結束此次FTP會話。

7. FTP傳送數據前要建立兩個連接

1, 被動模式(PORT):
最常用的模式
A, 客戶端從任何埠到伺服器的21埠,21埠為默認控制埠,用戶登陸等各種控制命令都由21埠連接(S<-C)。
B, 伺服器的21埠到任何大於1024的埠,此過程與A過程構成了完整的FTP控制。(S->C)。
C, 伺服器指定隨機埠(大於1024),通知客戶端准備數據傳輸。此命令中,明示了伺服器IP地址。(S>C)。
D, 協商完畢,開始數據傳輸,數據從C過程中伺服器指定的隨機埠傳輸。(S<->C)。

2, 主動模式(PASV):
A, 客戶端從任何埠到伺服器的21埠,21埠為默認控制埠,用戶登陸等各種控制命令都由21埠連接(S<-C)。
B, 伺服器的21埠到任何大於1024的埠,此過程與A過程構成了完整的FTP控制。(S->C)。
C, 客戶端指定隨機埠(大於1024),通知伺服器准備傳送數據。(S<C)
D, 協商完畢,開始數據傳輸,數據從C過程中客戶端指定的隨機埠傳輸,伺服器埠固定為20埠。(S<->C)。

8. ftp的解讀

、什麼是FTP:文件傳輸協議原理

互聯網文件傳輸協議(File Transfer Protocol ,FTP) 標準是在RFC959說明的。該協議定義了一個從遠程計算機系統和本地計算機系統之間傳輸文件的一個標准。一般來說,傳輸文件的用戶需要先經過認證以後才能登錄網站,然後方能訪問在遠程伺服器的文件。而大多數的FTP伺服器往往提供一個GUEST的公共帳戶來允許沒有遠程伺服器的用戶可以訪問該FTP伺服器。

一個FTP會話通常包括五個軟體元素的交互。

用戶介面 提供了一個用戶介面並使用客戶端協議解釋器的服務
客戶 PI 客戶協議解釋器,其項遠程伺服器協議機發送命令並且驅動客戶數據傳輸過程
伺服器PI 伺服器協議解釋器,響應客戶協議機發出的命令並驅動伺服器端數據傳輸過程
客戶 DTP 客戶數據傳輸過程,其負責完成和伺服器數據傳輸過程及客戶端本地文件系統的通信
服務DTP 伺服器數據傳輸過程,其負責完成和客戶數據傳輸過程及伺服器端文件系統的通信

在RFC 959中,一般使用用戶這個名詞來指代客戶。RFC 959定義了客戶PI和伺服器PI交互的方式和規范。用戶介面與PI和DTP交互的機理都並不是協議標準的一部分。PI和DTP往往通常是在同一個程序模塊中實現的。

在FTP會話中,一共會存在有兩個獨立的網路連接,一個是由兩端的PI使用的,另一個是由兩端的DTP使用的。PI之間的連接一般被稱作控制連接(control connection),DTP之間的連接被稱做數據連接(data connection)

使用TCP服務的控制和數據連接

通常情況下,FTO伺服器監聽埠號21來等待控制連接建立請求。而數據連接埠號的選擇依賴於控制連接上命令。通常是客戶發送一個控制消息來指定客戶監聽並等待伺服器端發送數據連接建立請求的埠號。

對數據傳輸和控制命令傳輸來使用不同的獨立連接有如下優點:兩個連接可以選擇不同的合適服務質量,如:對控制連接來說高需要更小的延遲時間,對數據連接來說需要更大的數據吞吐量;而且可以避免實現數據流中的命令的通明性及逃逸。

當傳輸建立時,總是由客戶端首先發起。然而客戶和伺服器都可能是數據發送者。除了傳輸用戶請求下載文件,數據傳輸過程同樣在客戶端請求列伺服器端目錄結構時建立。

1.命令選擇

當一個傳輸建立時,一般通常需要指定四個方面的屬性:

文件類型
該屬性指定如何將文件的數據匹配成適於傳輸的格式,一共有四種可能的選擇:

ASCII文件類型
在發送端,文件從本地文本文件格式轉換為 NVT ASCII格式,每行結束有一個CR/LF對來標識。 在接收端,再被轉換為本地的文本格式。

這說明了為什麼Unix主機之間傳輸文本文件為何傳輸的數據量要大於文件的實際大小。若傳輸一段端或傳輸兩端都不使用ASCII文本編碼,則是應該由數據傳輸過程來實現本地編碼和NVT ASCII 編碼之間的轉換。

EBCDIC文件類型
類似於ASCII,區別僅僅上使用EBCDIC字元編碼

圖象 (或二進制)文件類型
文件以本地傳輸內容傳輸,在遠端以同本地完全相同的內容存儲。

本地文件系統
用在位元組大小不是8位的環境下。沒位元組位數由發送者指定。

在實際應用中,只有ASCII和圖象格式使用的較多。

格式控制
該屬性是和將文本文件最後傳送到列印設備相關的,其中有多種方式來實現將垂直格式信息編碼到文件中,包括指示一個新頁開始的方式。有如下方式可供選擇:

無須列印格式控制,這是預設值
Telnet列印控制,在telnet協議中定義的控制字元包含在數據流中。.
Fortran列印控制,
該屬性在實際中很少使用。

結構
文件可以擁有內部結構,在傳輸中該結構被保留。由數據傳輸過程來負責在傳輸中的結構及本地結構之間相互匹配,有三種可能性:

文件結構
這實際上意味著文件被看作沒有內部結構的連續的位元組流。

記錄結構
文件是有一系列記錄組成的結構。這只適用於文本文件。

頁面結構
也可以稱做塊結構。每一頁都伴隨一個頁號來傳輸,從而以順序的方式來完成傳輸。

頁面結構很少在實際中遇到。記錄結構也不是很常見。對於文本文件使用ASCII文件類型可以獲得相同的效果。

傳輸模式
該屬性可以取三個不同的值:

流模式
文件的以位元組流的方式傳輸。

塊模式
文件以一個塊連接一個塊的方式傳輸,每個塊的開頭都有一個頭。

壓縮模式
一個簡單的運程長度壓縮編碼被應用,來壓縮連續的相同的位元組。

實際中,一般只有流模式被使用。而壓縮一般通過使用各種其他的工具程序來獲得。

當一次傳輸被建立,客戶端一般指定一個或多個前面說明的屬性。若伺服器端不能支持某個選項,伺服器將用一個錯誤信息來響應客戶端,並不具有協商機制。

FTP提供了充足的命令來使用戶和遠程建立連接並訪問遠程文件系統。

2.命令格式

命令以NVT ASCII串的格式被傳輸。每個命令以三個或四個大寫的NVT ASCII字元開始,後面帶有選項參數和一個CR/LF對來標識命令結束

應答由三個NVT ASCII數字及一個選項消息組成。

一個長的應答也許會有多個消息組成,第一個消息的三個數字後帶有一個破折號,最後的消息不帶有破折號。中間的消息無須攜帶三個數字,但是如果帶了三個數字,則也需要破折號。

下面是所有的命令的列表。帶有星號的命令一般很少使用,所以往往在具體實現中不支持。

String Meaning
ABOR 放棄傳輸
*ACCT 某些系統將帳號和用戶與文件系統相關聯
*ALLO 為即將傳送的文件分配空間。後面攜帶的參數來確定位元組數
*APPE 將文件附加到已經存在的文件後面
CDUP 在遠程系統上將當前目錄切換到上級父目錄
CWD 改變遠程系統的工作目錄
DELE 刪除遠程系統的文件
HELP 讀取伺服器的幫助信息,如:支持的命令的列表
LIST 在一個新建立的數據連接上發送當前工作目錄下的文件名列表
MKD 創建目錄
MODE 指定傳輸模式,可攜帶的參數是:S、B或 C.
NLST 在一個新建立的數據連接上發送一個當前目錄下的「完全」的目錄列表
NOOP 空操作,防止連接斷掉
PASS 提供一個用戶登錄密碼,必須立即跟隨在USER命令後
*PASV 指定伺服器數據傳輸過程監聽等待客戶端的數據連接連接建立請求
PORT 指定客戶端監聽等待伺服器端建立的連接的埠號
PWD 顯示伺服器端的當前工作目錄名
QUIT 退出登錄並終止連接
*REIN 重新初始化,退出登錄但是並不斷開連接,後面必須隨後發出一個新的USER命令
*REST 從伺服器的一個標識處重新開始傳輸
RETR 從遠程系統取回一個文件
RMD 刪除一個目錄
*RNFR 指定要被命名的文件的老的路徑名,隨後必須是一個RNTO命令
*RNTO 指定要被命名的文件的新的路徑名
*SITE 站點特有的伺服器提供的服務
*SMNT 結構載入,提供一個文件系統結構的遠程系統路徑名
*STAT 狀態信息
STOR 上載一個文件到伺服器上,若文件已經存在則覆蓋
*STOU 上載一個文件到伺服器上,不覆蓋已經存在的文件
STRU 指定文件結構,參數可以是F、R或P.
*SYST 報告遠程系統的操作系統類型
TYPE 指定文件類型,參數可以是A、E、I、L只有TYPE A和TYPE I常用

控制連接命令應答有如下形式:

Type Description
1yz 主動初步應答,在發送另一個命令以前等待另一個應答
2yz 主動最後應答,最後一個命令成功結束
3yz 主動中間應答,必須再發送一個命令
4yz 暫時被動應答,要求的動作當時不能完成,但可以重試
5yz 永久被動應答,要求的動作不能完成,不應該重試

"y"數字編碼進一步的信息

Digit Meaning
0 語法錯誤
1 信息
2 連接狀態
3 認證和記帳
4 保留
5 File s文件系統狀態

下面是一些典型的消息:

Number Meaning
125 數據連接打開,傳輸開始
200 命令OK
331 用戶名OK 需要輸入密碼
425 不能打開數據連接
452 錯誤寫文件
500 語法錯誤-不可識別的命

具體的詳細情況可以參見RFC

9. FTP兩個埠號,它們分別的作用是什麼

上傳和下載。 客戶端首先連接到FTP伺服器的21埠,進行用戶的認證,認證成功後,當我們要傳輸文件時,伺服器會開一個埠為20來進行傳輸數據文件。

FTP允許用戶以文件操作的方式(如文件的增、刪、改、查、傳送等)與另一主機相互通信。

然而, 用戶並不真正登錄到自己想要存取的計算機上面而成為完全用戶, 可用FTP程序訪問遠程資源, 實現用戶往返傳輸文件、目錄管理以及訪問電子郵件等等, 即使雙方計算機可能配有不同的操作系統和文件存儲方式。



(9)ftp會話包含了兩個通道擴展閱讀:

FTP客戶端發起FTP會話,與FTP伺服器建立相應的連接。FTP會話期間要建立控制信息進程與數據進程兩個連接。控制連接不能完成傳輸數據的任務,只能用來傳送FTP執行的內部命令以及命令的響應等控制信息。

數據連接是伺服器與客戶端之間傳輸文件的連接,是全雙工的,允許同時進行雙向數據傳輸。當數據傳輸完成後,數據連接會撤消,再回到FTP會話狀態,直到控制連接被撤消,並退出會話為止。

10. ftp 工作原理

FTP服務是客戶/伺服器模式,用戶通過客戶機程序連接遠程計算機上運行的伺服器程序,具體過程如下。
(1)客戶端向伺服器發出連接請求,同時客戶端系統動態打開大於一個1024的埠等候伺服器連接(如1031),
(2)若FTP伺服器在埠21偵聽到該請求,則會在客戶端埠1031和伺服器的埠21之間建立一個FTP會話連接
(3)需要傳輸數據時,FTP客戶端再動態打開一個大於1024的埠(如1032)連接到伺服器的埠20,並在這兩個埠之間進行數據的傳輸
(4)數據傳輸完畢後,這兩個埠會自動關閉。當FTP客戶端斷開與FTP伺服器的連接時,客戶端上動態分配的埠將自動釋放掉。

熱點內容
多大孩子適合學編程 發布:2025-07-22 12:24:05 瀏覽:87
代理伺服器佔ip 發布:2025-07-22 12:24:01 瀏覽:578
java全局變數 發布:2025-07-22 12:19:14 瀏覽:150
osgi源碼 發布:2025-07-22 12:12:38 瀏覽:29
yarphp 發布:2025-07-22 12:04:32 瀏覽:262
暗區突圍輔助腳本 發布:2025-07-22 12:04:29 瀏覽:757
js操作資料庫 發布:2025-07-22 11:58:07 瀏覽:525
辦公及生活配置有哪些 發布:2025-07-22 11:55:05 瀏覽:687
模擬器玩金鏟鏟為什麼伺服器滿 發布:2025-07-22 11:53:18 瀏覽:766
編程英語詞彙大全 發布:2025-07-22 11:50:36 瀏覽:572