FTP的主动传输模式(PORT Mode)及被动传输模式(Passive Mode)(PASV)(FTP客户端 client 服务端 server 通信原理)
文章目錄
- FTP的特殊性
- 主動傳輸模式和被動傳輸模式
FTP的特殊性
大多數(shù)的TCP服務(wù)是使用單個的連接,一般是客戶向服務(wù)器的一個周知端口發(fā)起連接,然后使用這個連接進(jìn)行通訊。但是,FTP協(xié)議卻有所不同,它使用雙向的多個連接,而且使用的端口很難預(yù)計。一般,FTP連接包括:
一個控制連接(control connection)
這個連接用于傳遞客戶端的命令和服務(wù)器端對命令的響應(yīng)。它使用服務(wù)器的21端口,生存期是整個FTP會話session時間。(就是從open ip[port]到close這段時間?)
幾個數(shù)據(jù)連接(data connection) (數(shù)據(jù)連接隸屬于會話?)
這些連接用于傳輸文件和其它數(shù)據(jù),例如:目錄列表等。這種連接在需要數(shù)據(jù)傳輸時建立,而一旦數(shù)據(jù)傳輸完畢就關(guān)閉,每次使用的端口也不一定相同。而且,數(shù)據(jù)連接既可能是客戶端發(fā)起的,也可能是服務(wù)器端發(fā)起的。
主動傳輸模式和被動傳輸模式
在FTP協(xié)議中,控制連接使用周知端口21。相反,數(shù)據(jù)傳輸連接的目的端口通常實現(xiàn)無法知道。FTP協(xié)議使用一個標(biāo)準(zhǔn)的端口21作為ftp-data端口,但是這個端口只用于連接的源地址是服務(wù)器端的情況,在這個端口上根本就沒有監(jiān)聽進(jìn)程。FTP的數(shù)據(jù)連接和控制連接的方向一般是相反的,也就是說,是服務(wù)器向客戶端發(fā)起一個用于數(shù)據(jù)傳輸?shù)倪B接。連接的端口是由服務(wù)器端和客戶端協(xié)商確定的。FTP協(xié)議的這個特征對ISA轉(zhuǎn)發(fā)以及防火墻和NAT的配置增加了很多困難。
除此之外,還有另外一種FTP模式,叫做被動模式(passive mod)。在這種模式下,數(shù)據(jù)連接是由客戶程序發(fā)起的,和剛才討論過的模式(我們可以叫做主動模式)相反。是否采取被動模式取決于客戶程序,在ftp命令行中使用passive命令就可以關(guān)閉/打開被動模式。
這兩種模式發(fā)起連接的方向截然相反,主動模式是從服務(wù)器端向客戶端發(fā)起連接;被動模式是客戶端向服務(wù)器端發(fā)起連接。
PORT(主動)方式的連接過程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時,客戶端在命令鏈路上用PORT命令告訴服務(wù)器:“我打開了***X端口,你過來連接我”。于是服務(wù)器從20端口向客戶端的***X端口發(fā)送連接請求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。
PASV(被動)方式的連接過程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時,服務(wù)器在命令鏈路上用PASV命令告訴客戶端:“我打開了***X端口,你過來連接我”。于是客戶端向服務(wù)器的***X端口發(fā)送連接請求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。 (我們arm ftp客戶端默認(rèn)是被動模式)
ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing.從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數(shù)據(jù)鏈路的建立方法就完全不同。
各客戶端默認(rèn)連接方式說明:
1、 IE瀏覽器訪問方式-------被動模式
2、 Linux字符連接-----------被動模式
3、 Windows字符連接-----主動模式
IE更改FTP連接方式為主動方法:
工具—Internet選項—高級—使用被動FTP(去掉勾選)-------OK
Linux下更改ftp連接方式為主動:(默認(rèn)是被動,貌似我們目前需要的就是被動)
當(dāng)ftp正常連接后輸入:passive 將passive 模式關(guān)閉即可。
參考文章:FTP的主動模式(PORT Mode)及被動模式(Passive Mode)
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的FTP的主动传输模式(PORT Mode)及被动传输模式(Passive Mode)(PASV)(FTP客户端 client 服务端 server 通信原理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux运行脚本报错:/bin/bas
- 下一篇: C语言system函数(C语言程序中执行