1 FTP工作模式 2 不同模式FTP面臨的問題 3 主動模式的FTP連接建立連接主要步驟 客戶端打開一個隨機的埠(埠號大於1024,在這裡,我們稱它為x),同時一個FTP進程連接至伺服器的21號命令埠。此時,源埠為隨機埠x(在客戶端);遠程埠為21(在伺服器端)。輸入正確的用戶名/密碼 ...
1 FTP工作模式
2 不同模式FTP面臨的問題
3 主動模式的FTP連接建立連接主要步驟
- 客戶端打開一個隨機的埠(埠號大於1024,在這裡,我們稱它為x),同時一個FTP進程連接至伺服器的21號命令埠。此時,源埠為隨機埠x(在客戶端);遠程埠為21(在伺服器端)。輸入正確的用戶名/密碼後FTP建立成功。如果需要發送數據則客戶端會向伺服器發送PORT命令。
POST命令的含義:有6個數,通過5個逗號分開,前4個數是IP地址,第5個數*256+第6個數=埠號(這就是x+1埠,可以算一下一定是等於x+1)
客戶端開始監聽埠(x+1),同時向伺服器發送一個PORT命令(通過伺服器的21號命令埠),此命令告訴伺服器現在客戶端正在監聽的埠號,並且已準備好從此埠接收數據。這個埠就是我們所知的數據埠。
伺服器打開20號埠建立和客戶端數據埠的連接。此時源埠為20,遠程數據埠為(x+1)。
客戶端使用本地的數據埠建立一個和伺服器20號埠的連接,然後向伺服器發送一個應答,告訴伺服器它已經建立好了一個連接。之後就可以傳輸數據了。
客戶端通過x埠向伺服器的發送PORT命令,告訴伺服器我的數據埠是什麼。
傳送數據的埠為20埠
4. 被動模式的FTP連接建立連接主要步驟
- 當開啟一個FTP連接時,客戶端打開兩個任意的非特權本地埠X和X+1(X>1024)。
- 第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠。而是提交PASV命令(用途是詢問伺服器是否支持PASV,伺服器如果支持的話伺服器會回覆227)。
- 這樣做的結果是伺服器會開啟一個任意的非特權埠P(P>1024),併發送命令給客戶端。
- 然後客戶端發起從本地埠X+1到伺服器的埠P的連接,建立成功後就可以用X+1和P埠來傳送數據。
被動模式的FTP-DATA可以是由客戶端向伺服器端發起的連接