詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

相信有很多第一次接觸FTP協議的同學會有一種感覺:扎眼一看FTP是一個很簡單的協議,但是細究的話會發現ftp協議也不是很簡單。

那麼今天我們就來聊一聊這個讓很多初學網絡的學員鬱悶的FTP協議。首先我們先了解下FTP協議的概念。

FTP(File Transfer Protocol,文件傳輸協議),其在互聯網上進行文件傳輸的標準協議,FTP協議使用的TCP協議作為傳輸協議,從而保證通過FTP協議傳輸的數據是可靠的。簡單理解就是我們使用FTP協議可以在網絡上對文件進行上傳和下載。

FTP分為控制連接和數據連接,其在數據連接上有兩種不同的數據傳輸方式:主動方式和被動方式。

而今天我們主要談談FTP的主動模式,FTP主動傳輸模式也稱為PORT方式,其也是FTP協議的默認傳輸方式。眾所周知,通過FTP協議進行數據的傳輸前,需要建立兩個連接:一個是控制連接;另外一個是數據連接。其中FTP主動傳輸方式在這個兩個連接的特點如下:

1)FTP client主動發起建立控制連接

2)FTP server主動發起建立數據連接

那麼接下來我們通過實驗的方式來詳細介紹這兩種連接的具體內容:

1.建立控制連接

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

圖:控制連接建立成功

如上圖所示:FTP主動模式的控制連接是由FTP client主動發起的,FTP client發起連接的端口號是由系統隨機生成的(50253);而FTP server的端口為知名端口號21(該端口號是FTP用於建立控制連接的端口號);經過FTP client和FTP server之間TCP三次握手後此時FTP client和FTP server之間的控制連接就建立成功了。

2.主動連接參數傳遞

當FTP client和FTP server之間的控制連接建立成功後,接下來是要建立數據連接,因為只有數據連接建立成功後,它們之間才能上傳下載文件信息,但是在建立數據連接之前,FTP client必須向FTP server端傳遞一些參數信息用於確定建立數據連接時FTP client所使用的臨時端口號。

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

圖:PORT參數

如上圖所示:FTP client主動通過已經建立好的控制連接向FTP server發送PROT命令,此時FTP client的端口信息仍然是系統隨機生成的(49323),FTP server的接口仍然是知名端口號21,而傳遞的PORT命令參數內容為(12,1,1,2,197,118)。其中12.1.1.2表示的是FTP client,而通過公式197*256+118=50550,這個通過公式算出來的端口號50550,就是用於後面建立數據連接時,FTP client所使用的端口號。

3.建立數據連接

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

圖:數據連接建立成功

如上圖所示:FTP主動模式的數據連接是由FTP server主動發起的,此時FTPserver的端口號為知名端口號20(該端口號是用於FTP數據連接的),而FTP client的端口號就是通過PORT參數計算出來的端口號(50550),經過FTP client和FTP server之間TCP的三次握手,此時FTP的數據連接就建立成功了。

當數據連接建立成功後,此時FTP server和FTP client之間就可以上傳下載文件了。

測試:

此時在FTP server建立fuquit的文件,而在FTP client建立china的文件.

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

此時我們讓FTP client下載FTP server的funquit,而讓FTP client上傳china文件給FTP server

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式

如果大家想免費獲取實驗配置文檔和如何使用ensp進行文件的上傳下載的話,請加入下面的QQ群號:414190249或者QQ掃描群

詳解讓無數初學網絡的學員鬱悶的FTP協議---主動模式


分享到:


相關文章: