FTP技術原理

2021-10-14 13:45:38 字數 1621 閱讀 9888

ftpserver:執行於裝置上的ftp服務。提供遠端客戶端訪問和操作的功能,使用者可以通過ftp客戶端程式登入到裝置上,訪問裝置上的檔案服務。

ftp client:ftp的客戶端。提供本地裝置對遠端伺服器的檔案進行操作的命令。使用者在pc上通過終端程式或telnet程式與作為ftp client的裝置建立連線後,可以輸入ftp命令建立與遠端ftp server的連線並訪問遠端主機上的檔案,對遠端主機上的檔案進行操

作。ftp採用2個tcp連線來傳輸檔案:控制連線和資料連線。其中控制連線用於連線控制埠,傳輸控制命令:資料連線用於連線資料埠。在控制連線建立後,資料連線通過控制埠的命令建立起連線,進行資料的傳輸。

ftp連線的建立分為主動模式和被動模式,兩者的區別在於資料連線是由伺服器發起還是由客戶端發起。預設情況下採用主動模式,使用者可以通過命令切換。

主動模式:

伺服器開啟埠21啟動監聽,等待連線。

客戶端發起控制連線的建立請求,伺服器響應連線,控制連線建立。

客戶端通過控制連線傳送port命令,將客戶端資料連線的臨時埠號告訴伺服器。port資訊裡面帶有資料通道建立的ip位址+x、y值,通過x*256+y能夠計算出客戶端資料通道的埠號。

伺服器的20號埠與客戶端建立起資料連線。

被動模式:

伺服器開啟埠21啟動監聽,等待連線。

客戶端發起控制連線的建立請求,伺服器響應連線,控制連線建立。

客戶端通過控制連線傳送命令字pasv,告知伺服器處於被動模式。

伺服器通過控制連線,向客戶端傳送port命令,將伺服器端資料連線的臨時埠號告訴伺服器。port資訊裡面帶有資料通道建立的ip位址+x、y值,通過x*256+y能夠計算出伺服器端資料通道的埠號。

客戶端用臨時埠向伺服器計算出來的埠建立起資料連線。

源隨機臨時埠選擇注意點:

源埠號一般是由系統自己動態生成的乙個從1024-65535的號碼,當一台計算機a通過網路訪問計算機b時,如果它需要對方返回資料的話,它也會隨機建立乙個大於1023的埠 ,告訴b返回資料時把資料送到自己的哪個埠,然後軟體開始偵聽這個埠, 等待資料返回。

而b收到資料後會讀取資料報的源埠號和目的埠號,然後記錄下來、當軟體建立了要返回的資料後就把原來資料報中的原埠號作為目的埠號,而把自己的埠號作為原埠號,也就是說把收到的資料報中的原和目的反過來,然後再送回a, a再重複這個過程如此反覆直到資料傳輸完成。當資料全部傳輸完a就把源埠釋放出來,所以同乙個軟體每次傳輸資料時不一定是同乙個源埠號。

為什麼要區分主動和被動模式:

當ftp client和ftp server之間有防火牆時,如果僅放行了客戶端到伺服器放行的流量,那麼主動模式下資料通道的建立則是由伺服器發起,此流量無法通過防火牆,被丟棄,導致ftp資料通道無法建立。

在這種情況下,可以使用被動模式來建立資料通道。當然,這不是最好的方式,最好的方式是在防火牆上開啟aspf功能。

FTP工作原理

在進行檔案傳輸時,ftp的客戶端和伺服器之間會建立兩個連線 1.控制連線是客戶端和ftp伺服器之間傳送命令的通道。2.資料連線是客戶端和ftp伺服器之間傳輸檔案的通道。ftp會話時,客戶端首先和ftp 伺服器的tcp 21埠建立控制連線,通過這個通道傳送命令。ftp協議中,控制連線均有客戶端發起,而...

ftp連線原理

關於 ftp 事實上 僅知道如何操作 iptables 工具 還不足以設定好您的防火牆及 nat 您還要對各種 tcp ip 服務都要有相當程度的了才行 您必須知道乙個連線的建立過程是怎樣的 每乙個封包動作是怎樣從一端送到另一端的。您除了要知道每乙個封包的來源和目的位址 還要知道它們的來源埠口和目的...

FTP工作原理

ftp transfer protocol 件傳輸協議的縮寫,在rfc 959中具體說明。ftp會話時包含了兩個通道,乙個叫控制通道,乙個叫資料通道。控制通道 控制通道是和ftp伺服器進行溝通的通道,連線ftp,傳送ftp指令都是通過控制通道來完成的。資料通道 資料通道是和ftp伺服器進行檔案傳輸或...