當前位置:首頁 » 文件傳輸 » ftp的兩個並行連接是什麼意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp的兩個並行連接是什麼意思

發布時間: 2022-09-25 15:22:23

㈠ ftp是什麼意思呢

ftp是文件傳輸協議的意思。

文件傳輸協議(英文:FileTransferProtocol,縮寫:FTP)是用於在網路上進行文件傳輸的一套標准協議,使用客戶/伺服器模式。它屬於網路傳輸協議的應用層。文件傳送(file transfer)和文件訪問(file access)之間的區別在於:前者由FTP提供,後者由如NFS等應用系統提供。

工作原理

FTP採用Internet標准文件傳輸協議FTP的用戶界面,向用戶提供了一組用來管理計算機之間文件傳輸的應用程序。

FTP是基於客戶———伺服器(C/S)模型而設計的,在客戶端與FTP伺服器之間建立兩個連接。

開發任何基於FTP的客戶端軟體都必須遵循FTP的工作原理,FTP的獨特的優勢同時也是與其它客戶伺服器程序最大的不同點就在於它在兩台通信的主機之間使用了兩條TCP連接,一條是數據連接,用於數據傳送;另一條是控制連接,用於傳送控制信息(命令和響應),這種將命令和數據分開傳送的思想大大提高了FTP的效率。

㈡ FTP文件傳送協議為什麼有兩個TCP連接

通過FTP傳送文件,雙方至少需要建立兩個TCP連接,一個稱為控制連接,用於傳送FTP命令;
另一個稱為數據連接,用於傳輸文件數據。

㈢ FTP協議為什麼需要兩個TCP連接啊(數據和控制連接)

我記得一個是用來發送數據,一個用來接收數據,
只是它們所用的埠不一樣,
一個用20(接收數據) ,一個用21(發送數據)。
如果只是一個連接的話,那就是復用一個埠,如果你清楚的話,
埠之間通信需要傳輸協議才能建立連接,
埠的復用等於說在一個埠上同時使用2種協議以上,如果是10種協議呢?
不但會影響傳輸速度,數據出錯的概率也變大了。

㈣ 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)。

㈤ FTP中存在的兩個並行連接的作用及特點

你好,你是曲師大的吧。

我是你們司廣濤老師

我說了可以寫英文
這是課件里的,你直接背下來就行了

control: exchange commands, responses between client, server. It remains open throughout the ration of the user session
「out of band control」
data: file data to/from server. A new data connection is created for each file transferred within a session, so it is nonpersistent.
(你照著寫就行,如果能翻譯出來最好,其實這一段我也不會翻譯,課件中能翻譯得我都已經翻譯了,剩下的不會翻譯得你們自己翻譯著看吧,不好意思了。)

㈥ FTP可以有多個TCP連接用於多個並行文件傳輸

盡管理論上可以讓FTP伺服器支持多個並發傳輸,但它不受 RFC 或任何已知的實現。

該塊很簡單,控制連接在接收到傳輸請求後,在數據傳輸完成之前不會返回最終狀態或接受新命令。因此,盡管您可以排隊另一個傳輸請求,但實際上伺服器不會處理它,直到當前的傳輸請求完成。

如果您想要多個文件傳輸,只需記錄日誌進入FTP伺服器多次使用不同的程序或命令行窗口,並且每個都啟動一次傳輸。

㈦ FTP建立後,和伺服器建立哪兩種連接

起初,FTP並不是應用於IP網路上的協議,而是ARPANEt網路中計算機間的文件傳輸協議, ARPANET是美國國防部組建的老網路,於1960-1980年使用。在那時, FTP的主要功能是在主機間高速可靠地傳輸文件。目前FTP仍然保持其可靠性,即使在今天,它還允許文件遠程存取。這使得用戶可以在某個系統上工作,而將文件存貯在別的系統。例如,如果某用戶運行Web伺服器,需要從遠程主機上取得HTML文件和CGI程序在本機上工作,他需要從遠程存儲站點獲取文件(遠程站點也需安裝Web伺服器)。當用戶完成工作後,可使用FTP將文件傳回到Web伺服器。採用這種方法,用戶無需使用Telnet登錄到遠程主機進行工作,這樣就使Web伺服器的更新工作變得如此的輕松。

FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層上,即應用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和伺服器建立連接前就要經過一個被廣為熟知的"三次握手"的過程,它帶來的意義在於客戶與伺服器之間的連接是可靠的,而且是面向連接,為數據的傳輸提供了可靠的保證。

下面,讓我們來看看,一個FTP客戶在和伺服器連接是怎麼樣的一個過程(以標準的FTP埠號為例)。

首先,FTP並不像HTTP協議那樣,只需要一個埠作為連接(HTTP的默認埠是80,FTP的默認埠是21),FTP需要2個埠,一個埠是作為控制連接埠,也就是21這個埠,用於發送指令給伺服器以及等待伺服器響應;另一個埠是數據傳輸埠,埠號為20(僅PORT模式),是用來建立數據傳輸通道的,主要有3個作用

從客戶向伺服器發送一個文件。

從伺服器向客戶發送一個文件。

從伺服器向客戶發送文件或目錄列表。

其次,FTP的連接模式有兩種,PORT和PASV。PORT模式是一個主動模式,PASV是被動模式,這里都是相對於伺服器而言的。為了讓大家清楚的認識這兩種模式,朗月繁星分別舉例說明。
PORT模式

當FTP客戶以PORT模式連接伺服器時,他動態的選擇一個埠號(本次試驗是6015)連接伺服器的21埠,注意這個埠號一定是1024以上的,因為1024以前的埠都已經預先被定義好,被一些典型的服務使用,當然有的還沒使用,保留給以後會用到這些埠的資源服務。當經過TCP的三次握手後,連接(控制信道)被建立(如圖1和圖2)。

圖1:FTP客戶使用FTP命令建立於伺服器的連接

圖2:用netstat命令查看,控制信道被建立在客戶機的6015和伺服器的20埠

現在用戶要列出伺服器上的目錄結構(使用ls或dir命令),那麼首先就要建立一個數據通道,因為只有數據通道才能傳輸目錄和文件列表,此時用戶會發出PORT指令告訴伺服器連接自己的什麼埠來建立一條數據通道(這個命令由控制信道發送給伺服器),當伺服器接到這一指令時,伺服器會使用20埠連接用戶在PORT指令中指定的埠號,用以發送目錄的列表(如圖3)。

圖3:ls命令是一個交互命令,它會首先與伺服器建立一個數據傳輸通道。經驗證本次試驗客戶機使用6044埠

當完成這一操作時,FTP客戶也許要下載一個文件,那麼就會發出get指令,請注意,這時客戶會再次發送PORT指令,告訴伺服器連接他的哪個"新"埠,你可以先用netstat -na這個命令驗證,上一次使用的6044已經處於TIME_WAIT狀態(如圖4)。

圖4:使用netstat命令驗證上一次使用ls命令建立的數據傳輸通道已經關閉

當這個新的數據傳輸通道建立後(在微軟的系統中,客戶端通常會使用連續的埠,也就是說這一次客戶端會用6045這個埠),就開始了文件傳輸的工作。

PASV模式

然而,當FTP客戶以PASV模式連接伺服器時,情況就有些不同了。在初始化連接這個過程即連接伺服器這個過程和PORT模式是一樣的,不同的是,當FTP客戶發送ls、dir、get等這些要求數據返回的命令時,他不向伺服器發送PORT指令而是發送PASV指令,在這個指令中,用戶告訴伺服器自己要連接伺服器的某一個埠,如果這個伺服器上的這個埠是空閑的可用的,那麼伺服器會返回ACK的確認信息,之後數據傳輸通道被建立並返回用戶所要的信息(根據用戶發送的指令,如ls、dir、get等);如果伺服器的這個埠被另一個資源所使用,那麼伺服器返回UNACK的信息,那麼這時,FTP客戶會再次發送PASV命令,這也就是所謂的連接建立的協商過程。為了驗證這個過程我們不得不藉助CUTEFTP Pro這個大家經常使用的FTP客戶端軟體,因為微軟自帶的FTP命令客戶端,不支持PASV模式。雖然你可以使用QUOTE PASV這個命令強制使用PASV模式,但是當你用ls命令列出伺服器目錄列表,你會發現它還是使用PORT方式來連接伺服器的。現在我們使用CUTEFTP Pro以PASV模式連接伺服器(如圖5)。

圖5:使用CUTEFTP Pro以PASV模式連接伺服器

請注意連接LOG里有這樣幾句話:

COMMAND:> PASV
227 Entering Passive Mode (127,0,0,1,26,108)
COMMAND:> LIST
STATUS:> Connecting ftp data socket 127.0.0.1: 6764...
125 Data connection already open; Transfer starting.
226 Transfer complete.

其中,227 Entering Passive Mode (127,0,0,1,26,80). 代表客戶機使用PASV模式連接伺服器的26x256+108=6764埠。(當然伺服器要支持這種模式)
125 Data connection already open; Transfer starting.說明伺服器的這個埠可用,返回ACK信息。

再讓我們看看用CUTEFTP Pro以PORT模式連接伺服器的情況。其中在LOG里有這樣的記錄:

COMMAND:> PORT 127,0,0,1,28,37
200 PORT command successful.
COMMAND:> LIST
150 Opening ASCII mode data connection for /bin/ls.
STATUS:> Accepting connection: 127.0.0.1:20.
226 Transfer complete.
STATUS:> Transfer complete.

其中,PORT 127,0,0,1,28,37告訴伺服器當收到這個PORT指令後,連接FTP客戶的28x256+37=7205這個埠。
Accepting connection: 127.0.0.1:20表示伺服器接到指令後用20埠連接7205埠,而且被FTP客戶接受。

比較分析

在這兩個例子中,請注意: PORT模式建立數據傳輸通道是由伺服器端發起的,伺服器使用20埠連接客戶端的某一個大於1024的埠;在PASV模式中,數據傳輸的通道的建立是由FTP客戶端發起的,他使用一個大於1024的埠連接伺服器的1024以上的某一個埠。如果從C/S模型這個角度來說,PORT對於伺服器來說是OUTBOUND,而PASV模式對於伺服器是INBOUND,這一點請特別注意,尤其是在使用防火牆的企業里,比如使用微軟的ISA Server 2000發布一個FTP伺服器,這一點非常關鍵,如果設置錯了,那麼客戶將無法連接。

最後,請注意在FTP客戶連接伺服器的整個過程中,控制信道是一直保持連接的,而數據傳輸通道是臨時建立的。

在本文中把重點放到了FTP的連接模式,沒有涉及FTP的其他內容,比如FTP的文件類型(Type),格式控制(Format control)以及傳輸方式(Transmission mode)等。不過這些規范大家可能不需要花費過多的時間去了解,因為現在流行的FTP客戶端都可以自動的選擇正確的模式來處理,對於FTP伺服器端通常也都做了一些限制,如下:

類型:A S C I I或圖像。

格式控制:只允許非列印。

結構:只允許文件結構。

傳輸方式:只允許流方式

至於這些內容,限於篇幅在這里就不想再介紹了。希望這篇文章能對大家有些幫助,特別是正在學習ISA Server2000的朋友和一些對FTP不很了解的朋友。

㈧ FTP傳輸文件時,客戶機和伺服器之間需要建立多少個並行的TCP連接

2個,一個TCP連接用於控制,另外一個TCP連接用來傳輸數據。

㈨ 大家好 我問一個問題 就是什麼是FTP 他們告訴我的話是『FTP地址...........』 這個FTP是什麼意思

FTP文件傳送協議(File Transfer Protocol,簡稱FTP),是一個用於從一台主機到另送文件的協議。該協議的歷史可追溯到1971年(當時網際網路尚處於實驗之中),不過至今仍然極為流行。FTP在RFC 959中具體說明。下圖是它提供的服務的概貌。

圖1 FTP在本地和遠程文件系統之間傳輸文件

在一個典型的FTP會話中,用戶坐在本地主機前,想把文件傳送到一台遠程主機或把它們從一台遠程主機傳送來。該用戶必須提供一個用戶名—口令對才能訪問遠程賬號。給出這些身份認證信息後,它就可以在本地文件系統和遠程文件系統之間傳送文件了。如圖中所示,用戶通過一個FTP用戶代理與FTP交互。他首先提供一個遠程主機的主機名,這使得本地主機中的FTP客戶進程建立一個與遠程主機中的FTP伺服器進程之間的連接。用戶接著提供用戶名和口令,這些信息將作為FTP命令參數經由TCP連接傳送到伺服器。伺服器批准之後,該用戶就在本地文件系統和遠程文件系統之間拷貝文件。

HTTP和FTP都是文件傳送協議,它們有許多共同的特徵,譬如說都運行在TCP之上。不過這兩個應用層協議之間存在重要的差別。最重要的差別是FTP使用兩個並行的TCP連接來傳送文下一節件,一個是控制連接,一個是數據連接。控制連接用於在客戶主機和伺服器主機之間發送控制信息,例如用戶名和口令、改變遠程目錄的命令、取來或放迴文件的命令。數據連接用於真正發送文件。既然TCP使用一個獨立的控制連接,我們說FTP在帶外(out-of-band)發送控制信息的。另外,用於控制音頻和視頻等持續媒體數據之傳送的RTSP協議也是在帶外發送控制信息的。HTTP中,同一個TCP連接既用於承載請求和響應頭部,也用於承裁所傳送的文件,因此我們說HTTP在帶內(in-band)發送控制信息。下一篇文章將討論的用於電子郵件的主要協議SMTP也在帶內發送控制信息。圖2展示了FTP的控制連接和數據連接。

圖2

當用戶啟動與遠程主機間的一個FTP會話時,FTP客戶首先發起建立一個與FTP伺服器埠號21之間的控制TCP連接,然後經由該控制連接把用戶名和口令發送給伺服器。客戶還經由該控制連接把本地臨時分配的數據埠告知伺服器,以便伺服器發起建立一個從伺服器埠號20到客戶指定埠之間的數據TCP連接;為便於繞過防火牆,較新的FTP版本允許客戶告知伺服器改由客戶來發起建立到伺服器埠號20的數據TCP連接。用戶執行的一些命令也由客戶經由控制連接發送給伺服器,例如改變遠程目錄的命令。當用戶每次請求傳送文件時(不論哪個方向),FTP將在伺服器埠號20上打開一個數據TCP連接(其發起端既可能是伺服器,也可能是客戶)。在數據連接上傳送完本次請求需傳送的文件之後,有可能關閉數據連接,到再有文件傳送請求時重新打開。因此在FTP中,控制連接在整個用戶會話期間一直打開著,而數據連接則有可能為每次文件傳送請求重新打開一次(即數據連接是非持久的)。

在整個會話期間,FTP伺服器必須維護關於用戶的狀態。具體地說,伺服器必須把控制連接與特定的用戶關聯起來,必須隨用戶在遠程目錄樹中的游動跟蹤其當前目錄。為每個活躍的用戶會話保持這些狀態信息極大地限制了FTP能夠同時維護的會話數。無狀態的HTTP卻不必維護任何用戶狀態信息。

FTP命令和應答

現在討論幾個較為常用的FTP命令。從客戶到伺服器的命令和從伺服器到客戶的應答都是以7位ASCII碼格式經由控制連接傳送的,因此跟HTTP請求消息一樣.FTP命令也是直觀可讀的。用於分割相繼的命令或應答的是一個回車符和一個換行符。每個命令由4個大寫的ASCB字元構成,有些命令帶有可選的參數。下面給出的是一些較為常見的命令;●USER username:用於向伺服器發送用戶名。

●PASS passwod:用於伺服器發送口令。

●LIST:用於請求伺服器發回當前遠程目錄下所有文件的一個清單。該清單是通過數據連接而不是控制連接發送過來的。

●RETR filename:用於獲取遠程主機當前目錄下的一個文件,與用戶代理中的get命令相對應。

●STOR filename:用於存放遠程主機當前目錄下的一個文件,與用戶代理中的put命令相對應。

從客戶經由控制連接發送到伺服器的FTP命令和用戶向用戶代理發出的命令之間一般存在一一對應關系。每個命令之後跟隨的是從伺服器發送到客戶的應答。FTP應答是一個3位數值,可能後跟一個可選的消息。這與HTTP響應消息中的狀態碼和原因短語在結構上是類似的;HTTP的發明者們有意在HTTP響應消息中引入了這個類似性。下面列出了一些典型的應答以及可能後跟的消息。

●331 Username OK,password required

●125 Data connection already open,tranfer starting

●425 Car't open data connection

●452 Error writing

有興趣更多地了解FD命令和應答的讀者可以閱讀RFC 959。

下面是採用LEAPFTP客戶端登錄一個FTP伺服器的對話實錄,從中可以看到FTP客戶端和伺服器端的會話過程。

Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)

Connected. Waiting for response.

220 Microsoft FTP Service

USER username

331 Password required for username.

PASS xxxxxx

230 User 9878cn logged in.

SYST

215 Windows_NT

PWD

257 "/mydir" is current directory.

TYPE A

200 Type set to A.

PORT 192,168,xxx,xx,9,198

200 PORT command successful.

LIST

150 Opening ASCII mode data connection for /bin/ls.

226 Transfer complete.

Transfer done: 125 bytes in 0.016 secs (7.81 k/sec)

QUIT

㈩ ftp連接問題

ftp有兩個連接,一個控制連接,一個數據連接,Ftp還有兩種模式standard和passive的,21埠是控制連接,如果server在內網,應該使用standard ftp,數據連接從server的20埠到客戶端的一個高埠,這個高埠是伺服器和客戶機協商的。

標准FTP連接過程:
客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的命令埠,也就是21埠。
然後客戶端開始監聽埠N+1,並發送FTP命令「port N+1」到FTP伺服器。
接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
最後開始傳輸數據

passive ftp的連接過程:
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地埠(N > 1024和N+1)。
第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交 PASV命令。
這樣做的結果是伺服器會開啟一個任意的非特權埠(P > 1024),並發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
最後開始傳輸數據

passive mode的ftp的兩個連接全部是client發起的
standard mode的ftp的控制連接是client發起的,數據連接是server發起的
如果server在內網,使用passive mode,外部的client要發起的數據連接肯定進不來,
因為你沒有相應的埠映射
使用標准模式,數據連接是從內網到外網,默認是可以除去的