FTP主动跟被动模式区别
目錄
?
1、拓?fù)鋱D
2、FTP協(xié)議簡介
3、FTP工作原理
3.1、主動(dòng)連接(PORT)
3.2、被動(dòng)連接(PASV)
3.3、FTP主動(dòng)模式穿越SNAT原理
3.4、FTP被動(dòng)模式穿越DNAT原理
4、問題思考
4.1、主動(dòng)模式和被動(dòng)模式是誰決定的
4.2、主動(dòng)模式和被動(dòng)模式是怎么協(xié)商出端口
4.3、設(shè)想中間防火墻怎么識別子連接并給子連接放行
4.4、思考NAT設(shè)備如何給子連接做地址轉(zhuǎn)換
4.5、下載兩個(gè)文件,會(huì)每個(gè)文件開一個(gè)數(shù)據(jù)連接么
4.6、列出目錄,服務(wù)器發(fā)送目錄列表,會(huì)使用數(shù)據(jù)連接傳輸么
5、FTPipv4和ipv6的區(qū)別
1、拓?fù)鋱D
?
2、FTP協(xié)議簡介
FTP 英文全稱:File Transfer Protocol,中文全稱:文件傳輸協(xié)議
提供交互式的訪問,對傳輸文件的格式和類型有分類,允許文件具有存取權(quán)限。適合異構(gòu)網(wǎng)絡(luò)任意計(jì)算機(jī)的傳送。
3、FTP工作原理
FTP采用C/S架構(gòu),使用TCP可靠的傳輸服務(wù)。一個(gè)FTP服務(wù)器進(jìn)程可同時(shí)為多個(gè)客戶進(jìn)程提供服務(wù),FTP服務(wù)器檢查有兩大部分組成:一個(gè)主進(jìn)程,負(fù)責(zé)接收新的請求,另外有若干的從屬進(jìn)程,負(fù)責(zé)處理單個(gè)請求,工作步驟如下:
3.1、主動(dòng)連接(PORT)
1、主動(dòng)連接介紹
服務(wù)端通過制定端口號(20)主動(dòng)與客戶端建立數(shù)據(jù)連接,并向客戶端發(fā)送數(shù)據(jù)。
以下報(bào)文是SNAT轉(zhuǎn)換后的報(bào)文,源IP(10.10.10.2)轉(zhuǎn)換成出接口IP地址(192.168.10.114)
2、報(bào)文拆分解釋
2.1、報(bào)文1-3:TCP建立三次握手,建立連接
?
2.2、報(bào)文4:服務(wù)端(21端口)向客戶端(49203端口)發(fā)送request報(bào)文。code字段表示新用戶服務(wù)就緒,arg字段為服務(wù)器名稱和服務(wù)器版本號
?
2.3、報(bào)文5:客戶端(49203端口)向服務(wù)端(21端口)發(fā)送request報(bào)文。command字段表示該報(bào)文里包含的是用戶名,arg字段為用戶名內(nèi)容。
?
2.4、報(bào)文6:服務(wù)端(21端口)回復(fù)response報(bào)文,code值為331,表示用戶名可以,需要密碼
2.5、報(bào)文7:客戶端(49203端口)向服務(wù)端(21端口)發(fā)送request報(bào)文,command字段表示該報(bào)文里包含的是密碼,arg字段為密碼內(nèi)容。
?
2.6、報(bào)文8:服務(wù)端(21端口)回復(fù)response報(bào)文,code值為230,表示用戶已登錄,請繼續(xù)操作
2.7、報(bào)文9:客戶端(49203端口)向服務(wù)端(21端口)發(fā)送SYST報(bào)文,表示返回服務(wù)器使用的操作系統(tǒng)。
2.8、報(bào)文10:服務(wù)端(21端口)回應(yīng)系統(tǒng)類型,code字段為215,表示返回的是系統(tǒng)類型。arg字段為UNIX,表示系統(tǒng)類型是UNIX系統(tǒng)
2.9、包11:客戶端(49203端口)請求系統(tǒng)狀態(tài)
包12:服務(wù)端(21端口)回應(yīng)系統(tǒng)狀態(tài),code字段為211,arg字段為特征列表
2.10、包15:客戶端(49203端口)PWD獲取當(dāng)前路徑
包16:服務(wù)端(21端口)返回當(dāng)前路徑
包17:客戶端(49203端口)CWD更改目錄
包18:服務(wù)端(21端口)返回修改后的目錄
包19:客戶端(49203端口)PWD獲取當(dāng)前路徑
包20:服務(wù)端(21端口)返回當(dāng)前路徑
2.11、包21:客戶端(49203端口)請求使用ascii傳輸
包22:服務(wù)端(21端口)響應(yīng),同意使用ascii傳輸
?
2.12、包23:客戶端(49203端口)發(fā)起主動(dòng)連接,向服務(wù)端發(fā)送建立子連接的IP和端口
包24:服務(wù)端(21端口)響應(yīng),同意使用客戶端發(fā)送的IP端口建立子連接
2.13、包26-28:FTP子連接三次握手建立TCP連接。
2.14、包:30-32:服務(wù)端(20端口)向客戶端(49204端口)發(fā)送數(shù)據(jù)。
2.15、包33-37:數(shù)據(jù)傳輸完成,TCP斷開連接
2.16、包60-63:控制連接已斷開,TCP四次揮手?jǐn)嚅_TCP連接
3.2、被動(dòng)連接(PASV)
1、被動(dòng)連接介紹
服務(wù)端采用客戶端建議使用被動(dòng)模式,開啟數(shù)據(jù)傳輸端口的監(jiān)聽,被動(dòng)等待客戶端的連接然后向客戶端發(fā)送數(shù)據(jù)。
以下報(bào)文是SNAT轉(zhuǎn)換后的報(bào)文,源IP(10.10.10.2)轉(zhuǎn)換成出接口IP地址(192.168.10.114)
2、報(bào)文拆分解釋
2.1、TCP三次握手建立TCP連接
2.2、報(bào)文4:服務(wù)端(21端口)向客戶端(49206端口)。code字段表示新用戶服務(wù)就緒,arg字段為服務(wù)器名稱和服務(wù)器版本號
2.3、報(bào)文5:客戶端(49206端口)向服務(wù)端(21端口)發(fā)送request報(bào)文。command字段表示該報(bào)文里包含的是用戶名,arg字段為用戶名內(nèi)容。
2.4、報(bào)文6:服務(wù)端(21端口)回復(fù)response報(bào)文,code值為331,表示用戶名可以,需要密碼
2.5、報(bào)文7:客戶端(49206端口)向服務(wù)端(21端口)發(fā)送request報(bào)文,command字段表示該報(bào)文里包含的是密碼,arg字段為密碼內(nèi)容。
2.6、報(bào)文8:服務(wù)端(21端口)回復(fù)response報(bào)文,code值為230,表示用戶已登錄,請繼續(xù)操作
2.7、報(bào)文9:客戶端(49206端口)向服務(wù)端(21端口)發(fā)送SYST報(bào)文,表示返回服務(wù)器使用的操作系統(tǒng)。
2.8、報(bào)文10:服務(wù)端(21端口)回應(yīng)系統(tǒng)類型,code字段為215,表示返回的是系統(tǒng)類型。arg字段為UNIX,表示系統(tǒng)類型是UNIX系統(tǒng)
2.9、包11:客戶端(49206端口)請求系統(tǒng)狀態(tài)
包12:服務(wù)端(21端口)回應(yīng)系統(tǒng)狀態(tài),code字段為211,arg字段為特征列表
2.10、包15:客戶端(49206端口)PWD獲取當(dāng)前路徑
包16:服務(wù)端(21端口)返回當(dāng)前路徑
包17:客戶端(49206端口)CWD更改目錄
包18:服務(wù)端(21端口)返回修改后的目錄
包19:客戶端(49206端口)PWD獲取當(dāng)前路徑
包20:服務(wù)端(21端口)返回當(dāng)前路徑
2.12、包23:客戶端(49206端口)向服務(wù)端請求建立被動(dòng)連接
包24:服務(wù)端(21端口)響應(yīng),同意建立被動(dòng)連接,并且向客戶端發(fā)送服務(wù)端的IP和監(jiān)聽端口
2.13、包26-28:FTP子連接三次握手建立TCP連接。
2.14、包:32-33:服務(wù)端(20端口)向客戶端(49207端口)發(fā)送數(shù)據(jù)。
2.15、包34-36:數(shù)據(jù)傳輸完成,TCP斷開連接
2.16、包59-62:控制連接已斷開,TCP四次揮手?jǐn)嚅_TCP連接
3.3、FTP主動(dòng)模式穿越SNAT原理
主動(dòng)模式穿越SNAT主要用于FTP服務(wù)端在公網(wǎng),客戶端需要通過SNAT轉(zhuǎn)換訪問服務(wù)端。
1、FTP客戶端通過防火墻的SNAT訪問FTP服務(wù)端時(shí)使用主動(dòng)模式。
2、當(dāng)客戶端發(fā)送PORT報(bào)文到服務(wù)端時(shí),報(bào)文內(nèi)的active ip address字段為10.10.10.2,active port字段為49217
3、當(dāng)穿越SNAT的時(shí)候,SNAT會(huì)把a(bǔ)ctive ip address字段和active port字段改為轉(zhuǎn)換后的IP和端口
4、服務(wù)端收到經(jīng)過SNAT后的PORT報(bào)文后,會(huì)給192.168.10.114發(fā)送響應(yīng)報(bào)文。
5、響應(yīng)報(bào)文經(jīng)過鏈接跟蹤表,轉(zhuǎn)發(fā)給客戶端。
3.4、FTP被動(dòng)模式穿越DNAT原理
被動(dòng)模式穿越DNAT主要用于FTP服務(wù)端在私網(wǎng),客戶端需要通過DNAT轉(zhuǎn)換后訪問服務(wù)端。
1、FTP客戶端訪問防火墻的10.10.10.1,進(jìn)行DNAT轉(zhuǎn)換,轉(zhuǎn)換目的IP為192.168.10.114
2、當(dāng)客戶端發(fā)送PASV報(bào)文到服務(wù)端后,服務(wù)端返回自己的監(jiān)聽IP和端口,passive ip address字段是192.168.10.115,passive port字段是62443
3、當(dāng)穿越DNAT的時(shí)候,DNAT會(huì)把passive ip address字段和passive port字段改為轉(zhuǎn)換后的IP和端口
4、客戶端收到轉(zhuǎn)換后的響應(yīng)報(bào)文后,和轉(zhuǎn)換后的響應(yīng)報(bào)文進(jìn)行建立數(shù)據(jù)連接
?
4、問題思考
4.1、主動(dòng)模式和被動(dòng)模式是誰決定的
主動(dòng)模式和被動(dòng)模式是由客戶端決定的,客戶端請求建立數(shù)據(jù)連接時(shí),發(fā)送PVSA報(bào)文,服務(wù)端就會(huì)建立被動(dòng)連接;當(dāng)客戶端發(fā)送PORT報(bào)文時(shí),服務(wù)端就會(huì)建立主動(dòng)連接。
4.2、主動(dòng)模式和被動(dòng)模式是怎么協(xié)商出端口
主動(dòng)模式協(xié)商端口
1、客戶端使用任意一個(gè)的非熟知權(quán)端口N(N>1024)與服務(wù)端建立FTP控制連接,然后客戶端開始監(jiān)聽N+1端口。客戶端向服務(wù)端21端口發(fā)送PORT報(bào)文,PORT報(bào)文里包含客戶端監(jiān)聽的IP和N+1端口。
2、服務(wù)端收到客戶端的PORT報(bào)文后,使用客戶端發(fā)送的IP和N+1端口與客戶端建立數(shù)據(jù)連接。
被動(dòng)模式協(xié)商端口
4.3、設(shè)想中間防火墻怎么識別子連接并給子連接放行
被動(dòng)模式:
4.4、思考NAT設(shè)備如何給子連接做地址轉(zhuǎn)換
主動(dòng)模式:
4.5、下載兩個(gè)文件,會(huì)每個(gè)文件開一個(gè)數(shù)據(jù)連接么
FTP同時(shí)下載兩個(gè)文件,FTP會(huì)為每個(gè)文件打開一個(gè)數(shù)據(jù)連接。
1、下載文件test.txt,開啟一條數(shù)據(jù)連接
2、下載文件test1.txt,開啟另一條數(shù)據(jù)連接
4.6、列出目錄,服務(wù)器發(fā)送目錄列表,會(huì)使用數(shù)據(jù)連接傳輸么
會(huì)使用數(shù)據(jù)連接發(fā)送目錄列表,當(dāng)數(shù)據(jù)連接建立完成后,服務(wù)器會(huì)向客戶端發(fā)送當(dāng)前路徑和目錄列表內(nèi)容。
5、FTPipv4和ipv6的區(qū)別
控制連接請求(被動(dòng)模式)
IPv4使用PASV建立控制連接。PASV報(bào)文response報(bào)文的code字段為227(進(jìn)入被動(dòng)模式),arg字段為監(jiān)聽IP和端口。
IPv6使用EPSV建立控制連接。EPSV報(bào)文response報(bào)文的code字段為229(進(jìn)入被動(dòng)模式),arg字段為監(jiān)聽端口
控制連接請求(主動(dòng)模式)
IPv4使用PORT建立控制連接。請求時(shí)攜帶監(jiān)聽的IPv4地址和端口。PART報(bào)文response報(bào)文返回200
IPv6使用EPRT建立控制連接。請求時(shí)攜帶監(jiān)聽的IPv6地址和端口。EPRT報(bào)文response報(bào)文返回200
?
轉(zhuǎn)自:https://blog.csdn.net/ever_peng/article/details/89022796
總結(jié)
以上是生活随笔為你收集整理的FTP主动跟被动模式区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线性代数笔记:逆矩阵及伪逆矩阵,最小二乘
- 下一篇: pytorch中x.norm(p=2,d