日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

FTP主动模式和被动模式讲解

發(fā)布時(shí)間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FTP主动模式和被动模式讲解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

主動(dòng)模式FTP與被動(dòng)模式FTP該如何選擇?

  

? ?無(wú)論是主動(dòng)模式還是被動(dòng)模式,其要進(jìn)行文件傳輸都必須依次建立兩個(gè)連接,分別為命令連接與數(shù)據(jù)連結(jié)。而主動(dòng)模式與被動(dòng)模式的差異主要體現(xiàn)在數(shù)據(jù)連結(jié)通道上。為了說(shuō)明兩者的差異,我將主要對(duì)這個(gè)數(shù)據(jù)連結(jié)進(jìn)行比較詳細(xì)的說(shuō)明。?

   當(dāng)FTP客戶端需要登陸到FTP服務(wù)器上的時(shí)候,服務(wù)器與客戶端需要進(jìn)行一系列的身份驗(yàn)證過程,這個(gè)過程就叫做命令連接。如在客戶端向服務(wù)器發(fā)起連接請(qǐng)求的時(shí)候,客戶端會(huì)隨即的選擇某個(gè)TCP端口來(lái)跟FTP服務(wù)器的21號(hào)端口進(jìn)行連接,這主要是通過TCP三方握手來(lái)實(shí)現(xiàn)的。當(dāng)三方握手完成之后,客戶端與服務(wù)器之間便建立了命令連接通道。不過這個(gè)通道的用途是非常有限的,其主要用來(lái)傳輸FTP的相關(guān)指令。如查看文件列表、刪除文件等等,而不能夠用來(lái)在客戶 端與服務(wù)端進(jìn)行文件傳輸。為此這個(gè)通道就被稱之為命令通道。而跟數(shù)據(jù)傳輸相關(guān)的為數(shù)據(jù)通道。?

   到客戶端與服務(wù)器建立了連接之后,可能客戶端暫時(shí)不需要進(jìn)行數(shù)據(jù)傳輸。如只是需要查看目錄下的文件或則其他相關(guān)的動(dòng)作。此時(shí)之需要命令連接通道就可以完 成了。如果此時(shí)客戶端需要往FTP服務(wù)器上上傳或者下載文件的話,就需要在客戶端與服務(wù)器端再建立一條額外的數(shù)據(jù)傳輸連接。?

二、主動(dòng)模式的實(shí)現(xiàn)與特點(diǎn)。?

? 當(dāng)客戶端發(fā)出數(shù)據(jù)傳輸?shù)闹噶钪?如上傳數(shù)據(jù)或者下載文件),客戶端會(huì)啟用另外一個(gè)端口監(jiān)聽等待連接,并利用先前建立的命令連接通道告訴FTP服務(wù)器其監(jiān)聽的端口號(hào)。然后FTP服務(wù)器會(huì)利用端口20和剛才的FTP客戶端所告知的端口再次進(jìn)行三方握手。三次握手成功后便建立了一條數(shù)據(jù)傳輸通道。注意此時(shí)數(shù)據(jù) 連結(jié)通道建立的過程中,是FTP服務(wù)器的20號(hào)端口主動(dòng)連接FTP客戶端的,為此這種連接方式就叫做主動(dòng)模式。?

三、被動(dòng)模式的實(shí)現(xiàn)與特點(diǎn)。?

   被動(dòng)操作模式在建立命令連接通道的時(shí)候,跟主動(dòng)操作模式是相同的。兩者主要的差異就在于數(shù)據(jù)傳輸通道的建立上面。但是如果用戶需要進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候, 則FTP客戶端會(huì)通過命令通道告訴FTP服務(wù)器,如會(huì)向服務(wù)器發(fā)出一個(gè)PASV指令。這個(gè)指令就是告訴服務(wù)期,要采用被動(dòng)模式建立連接。如果采用被動(dòng)操作 模式,服務(wù)期會(huì)選擇自身的一個(gè)端口來(lái)進(jìn)行監(jiān)聽連接(而在主動(dòng)操作模式下是利用客戶端的一個(gè)端口來(lái)進(jìn)行監(jiān)聽連接),并再次利用命令連接通道告訴客戶端“我為 你開啟了哪個(gè)端口,你要建立數(shù)據(jù)連接的話就跟我的哪個(gè)端口聯(lián)系”。客戶端在接到這個(gè)信息后,就會(huì)在自己操作系統(tǒng)上選擇一個(gè)數(shù)據(jù)連接的通信端口,與服務(wù)器提 供的端口進(jìn)行三方握手,并最終建立起可以進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ馈?

  可見,從技術(shù)上來(lái)說(shuō),主動(dòng)模式與被動(dòng)操作模式的主要差異就在于誰(shuí)開啟一個(gè)端口來(lái)進(jìn)行監(jiān)聽連接,誰(shuí)等待(提供端口)、誰(shuí)主動(dòng)。雖然在技術(shù)上的差異比較小,但是其在具體的應(yīng)用上卻有很大的不同。?

四、兩者該如何選擇??

   當(dāng)企業(yè)的網(wǎng)絡(luò)環(huán)境不同,兩個(gè)操作模式的應(yīng)用效果是不同的。這主要是主動(dòng)操作模式與被動(dòng)操作模式在數(shù)據(jù)的傳輸通道建立上有一定的差異。從以上的分析中我們 可以看出,在主動(dòng)操作模式下,FTP服務(wù)器的20號(hào)端口是主動(dòng)同客戶端聯(lián)系,建立數(shù)據(jù)傳輸通道的。而在被動(dòng)操作模式下,則FTP服務(wù)器是被動(dòng)的等待,等待 客戶段與其的20號(hào)端口建立連接。不要小看這個(gè)細(xì)小的差異,這個(gè)差異卻決定了兩者應(yīng)用環(huán)境的不同。?

   一般來(lái)說(shuō),如果這個(gè)FTP服務(wù)器只對(duì)企業(yè)的內(nèi)部局域網(wǎng)客戶提供文件傳輸?shù)姆?wù),那么基本上兩者的應(yīng)用效果沒有很大的差異。但是如果企業(yè)網(wǎng)絡(luò)外部的用戶也 需要通過互聯(lián)網(wǎng)與FTP服務(wù)器進(jìn)行文件傳輸?shù)脑?#xff0c;就會(huì)有很大的不同。這主要是因?yàn)?#xff0c;在數(shù)據(jù)通道建立的過程中,客戶端會(huì)在另一個(gè)端口上監(jiān)聽等待連接,并利用 命令連接通道告訴服務(wù)器其監(jiān)聽的端口好。然后企業(yè)的邊界路由器會(huì)將FTP的IP地址轉(zhuǎn)換為合法的公網(wǎng)IP地址(假設(shè)企業(yè)由于公網(wǎng)IP地址有限,在邊界路由 器上通過NAT服務(wù)向外部用戶提供FTP連接)。如果此時(shí)采用的是自動(dòng)操作模式的話,則在連接這個(gè)數(shù)據(jù)通道的過程中FTP服務(wù)器會(huì)主動(dòng)跟邊界路由器的端口 進(jìn)行通信(因?yàn)镕TP服務(wù)器認(rèn)為這臺(tái)邊界路由器,其實(shí)就是NAT服務(wù)器,就是FTP客戶段)。但是實(shí)際上不是,而且也有可能沒有啟用這個(gè)端口。為此客戶端 與FTP服務(wù)器之間的連接最終沒有建立起來(lái)。所以說(shuō),如果采用主動(dòng)操作模式的話,當(dāng)FTP服務(wù)器部署在NAT等服務(wù)器后面的時(shí)候,則FTP服務(wù)器與客戶端 之間只能夠建立命令連接通道,而無(wú)法建立起數(shù)據(jù)傳輸通道。如果FTP服務(wù)器與客戶端之間還有防火墻的話,在連接的過程中也會(huì)出現(xiàn)以上類似的情況。?

   而如果是采用被動(dòng)操作模式的話,是客戶端主動(dòng)跟服務(wù)器的20號(hào)端口進(jìn)行連接的。為此在數(shù)據(jù)傳輸通道建立的過程中,即使中間有NAT服務(wù)器或者防火墻,也 會(huì)準(zhǔn)確無(wú)誤的連接到FTP服務(wù)器的數(shù)據(jù)傳輸接口。所以說(shuō),如果在客戶端與FTP服務(wù)器之間存在防火墻或者NAT服務(wù)器等類似設(shè)備的話,那么在FTP服務(wù)器 部署的時(shí)候,最好采用被動(dòng)操作模式。否則的話,很可能只能夠建立命令連接通道,而無(wú)法進(jìn)行數(shù)據(jù)傳輸。?

在 FTP服務(wù)器部署的時(shí)候,其默認(rèn)采用的是主動(dòng)操作模式。如果企業(yè)FTP服務(wù)器的用戶都是在內(nèi)部網(wǎng)絡(luò)中的,即不用像外部網(wǎng)絡(luò)的用戶提供FTP連接的需求,那 么采用這個(gè)默認(rèn)操作方式就可以了。但是如果一些出差在外的員工或者員工在家庭辦公時(shí)也需要訪問企業(yè)內(nèi)部的FTP服務(wù)器,而此時(shí)出于安全的考慮或者公網(wǎng)IP 地址數(shù)量的限制,企業(yè)往往會(huì)把FTP服務(wù)器部署在防火墻或者NAT服務(wù)器的后面,此時(shí)這個(gè)主動(dòng)操作模式就不行了。如果企業(yè)中通過互聯(lián)網(wǎng)來(lái)訪問企業(yè)內(nèi)部 FTP服務(wù)器的員工比較多的時(shí)候,那么最好能夠一勞永逸的解決這個(gè)問題,即在FTP服務(wù)器上進(jìn)行設(shè)置,強(qiáng)制客戶端在連接的時(shí)候采用被動(dòng)操作模式。相反如果 用戶比較少的話,而且用戶又具有一定的計(jì)算機(jī)知識(shí),那么可以不在服務(wù)器上進(jìn)行設(shè)置。而是在連接的過程中,通過FTP客戶端來(lái)設(shè)置。如在某些FTP客戶端 上,會(huì)有一個(gè)Passive Transfers等類似的選項(xiàng)。選中這個(gè)選項(xiàng)就表示以被動(dòng)操作方式進(jìn)行傳輸。而沒有選中這個(gè)選項(xiàng)的客戶端則仍然采用主動(dòng)操作模式來(lái)進(jìn)行連接。

實(shí)施背景:

公司數(shù)據(jù)備份服務(wù)器(SYSTEM:WINDOWS SERVER 2003 ),數(shù)據(jù)采集方式為:FTP上傳方式。基于安全考慮,該服務(wù)器只允許基于ftp服務(wù)的tcp20、21端口數(shù)據(jù)流通過。

FTP模式說(shuō)明:

FTP是基于TCP的服務(wù),使用2個(gè)端口,一個(gè)數(shù)據(jù)端口和一個(gè)命令端口(也可叫做控制端口)。

固定的命令端口:21

數(shù)據(jù)端口:(取決于連接模式)20或者>1024其它端口

主動(dòng)FTP

主動(dòng)方式的FTP是這樣的:客戶端從一個(gè)任意的非特權(quán)端口N(N>1024)連接到FTP服務(wù)器的命令端口,也就是21端口。然后客戶端開始監(jiān)聽端口N+1,并發(fā)送FTP命令"port N+1"到FTP服務(wù)器。接著服務(wù)器會(huì)從它自己的數(shù)據(jù)端口(20)連接到客戶端指定的數(shù)據(jù)端口(N+1)。

針對(duì)FTP服務(wù)器前面的防火墻來(lái)說(shuō),必須允許以下通訊才能支持主動(dòng)方式FTP:

1. 任何端口到FTP服務(wù)器的21端口 (客戶端初始化的連接 S<-C)

2. FTP服務(wù)器的21端口到大于1024的端口(服務(wù)器響應(yīng)客戶端的控制端口 S->C)

3. FTP服務(wù)器的20端口到大于1024的端口(服務(wù)器端初始化數(shù)據(jù)連接到客戶端的數(shù)據(jù)端口 S->C)

4. 大于1024端口到FTP服務(wù)器的20端口(客戶端發(fā)送ACK響應(yīng)到服務(wù)器的數(shù)據(jù)端口 S<-C)

總結(jié):

服務(wù)器主動(dòng)連接客戶端

命令連接:客戶端>1024端口->?服務(wù)器21端口

數(shù)據(jù)連接:客戶端>1024端口<-?服務(wù)器20端口

被動(dòng)FTP

為了解決服務(wù)器發(fā)起到客戶的連接的問題,人們開發(fā)了一種不同的FTP連接方式。這就是所謂的被動(dòng)方式,或者叫做PASV,當(dāng)客戶端通知服務(wù)器它處于被動(dòng)模式時(shí)才啟用。

在被動(dòng)方式FTP中,命令連接和數(shù)據(jù)連接都由客戶端,這樣就可以解決從服務(wù)器到客戶端的數(shù)據(jù)端口的入方向連接被防火墻過濾掉的問題。當(dāng)開啟一個(gè) FTP連接時(shí),客戶端打開兩個(gè)任意的非特權(quán)本地端口(N > 1024和N+1)。第一個(gè)端口連接服務(wù)器的21端口,但與主動(dòng)方式的FTP不同,客戶端不會(huì)提交PORT命令并允許服務(wù)器來(lái)回連它的數(shù)據(jù)端口,而是提交 PASV命令。這樣做的結(jié)果是服務(wù)器會(huì)開啟一個(gè)任意的非特權(quán)端口(P > 1024),并發(fā)送PORT P命令給客戶端。然后客戶端發(fā)起從本地端口N+1到服務(wù)器的端口P的連接用來(lái)傳送數(shù)據(jù)。

對(duì)于服務(wù)器端的防火墻來(lái)說(shuō),必須允許下面的通訊才能支持被動(dòng)方式的FTP:

1. 從任何端口到服務(wù)器的21端口 (客戶端初始化的連接 S<-C)

2. 服務(wù)器的21端口到任何大于1024的端口 (服務(wù)器響應(yīng)到客戶端的控制端口的連接 S->C)

3. 從任何端口到服務(wù)器的大于1024端口 (入;客戶端初始化數(shù)據(jù)連接到服務(wù)器指定的任意端口 S<-C)

4. 服務(wù)器的大于1024端口到遠(yuǎn)程的大于1024的端口(出;服務(wù)器發(fā)送ACK響應(yīng)和數(shù)據(jù)到客戶端的數(shù)據(jù)端口 S->C)

總結(jié):

客戶端主動(dòng)連接客戶端

命令連接:客戶端>1024端口->?服務(wù)器21端口

數(shù)據(jù)連接:客戶端>1024端口->?服務(wù)器>1024端口

總結(jié)

以上是生活随笔為你收集整理的FTP主动模式和被动模式讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。