FTP服务器主动被动模式详解
簡單地說,支持FTP協(xié)議的服務(wù)器就是FTP服務(wù)器。
與大多數(shù)Internet服務(wù)一樣,FTP也是一個(gè)C/S模式系統(tǒng)。用戶通過一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到在遠(yuǎn)程主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。比如說,用戶發(fā)出一條命令,要求服務(wù)器向用戶傳送某一個(gè)文件的一份拷貝,服務(wù)器會(huì)響應(yīng)這條命令,將指定文件送至用戶的機(jī)器上。客戶機(jī)程序代表用戶接收到這個(gè)文件,將其存放在用戶目錄中。
FTP協(xié)議是基于TCP協(xié)議之上的應(yīng)用層協(xié)議,支持兩種模式:Standard (PORT方式,主動(dòng)方式),Passive (PASV,被動(dòng)方式)。
Port模式
FTP?客戶端首先和服務(wù)器的TCP 21端口建立連接,用來發(fā)送命令,客戶端需要接收數(shù)據(jù)的時(shí)候在這個(gè)通道上發(fā)送PORT命令。PORT命令包含了客戶端用什么端口接收數(shù)據(jù)。在傳送數(shù)據(jù)的時(shí)候,服務(wù)器端通過自己的TCP 20端口連接至客戶端的指定端口發(fā)送數(shù)據(jù)。FTP server必須和客戶端建立一個(gè)新的連接用來傳送數(shù)據(jù)。
具體步驟詳情如下(筆者所用FTP服務(wù)器地址:10.0.1.66,客戶端地址:10.0.13.222):
實(shí)驗(yàn)截圖如下:
抓包可以看到,FTP客戶端(IP:10.0.13.222,端口:10100)與FTP服務(wù)器(IP:10.0.1.66,端口:21)建立三次連接。然后登陸成功(230 login successful)后FTP客戶端發(fā)送 "PORT 10,0,13,222,39,136"。
接著可以看到服務(wù)器主動(dòng)去發(fā)起TCP連接,該連接用于FTP數(shù)據(jù)傳輸?shù)耐ǖ?#xff0c;協(xié)議包名為FTP-DATA。可以發(fā)現(xiàn)服務(wù)器用20端口去連接客戶端的10120端口,10120其實(shí)就是客戶端發(fā)送的"PORT 10,0,13,222,39,136"中根據(jù)后倆個(gè)數(shù)值得到的。
連接端口(10120) = ?256 * 倒數(shù)第二位(39)+ 倒數(shù)第一位(136)
Passive模式
建立控制通道和Standard模式類似,但建立連接后發(fā)送Pasv命令。服務(wù)器收到Pasv命令后,打開一個(gè)臨時(shí)端口(端口號(hào)大于1023小于65535)并且通知客戶端在這個(gè)端口上傳送數(shù)據(jù)的請(qǐng)求,客戶端連接FTP服務(wù)器此端口,然后FTP服務(wù)器將通過這個(gè)端口傳送數(shù)據(jù)。
具體步驟詳情如下(筆者所用FTP服務(wù)器地址:10.0.13.222,客戶端地址:10.0.13.111):
實(shí)驗(yàn)截圖如下:
?
主動(dòng)和被動(dòng)模式計(jì)算端口的方法都是相同的。
總結(jié)
以上是生活随笔為你收集整理的FTP服务器主动被动模式详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高效的技术图纸管理系统有哪些价值
- 下一篇: 数据分析--缺失值填充的几种方法