又一次面試的時候,面試像這樣問我:請簡述FTP的主動模式與被動模式的差別?FTP這玩意不是天天都要用到的麼,看起來這麼簡單的問題我居然回答不上來,好尴尬!經過幾天的思考與了解,終于有點眉目,拙見讓諸位見笑了。
主動模式中FTP的用戶端發送 PORT 指令到FTP伺服器。被動模式中FTP的用戶端發送 PASV指令到 FTP 伺服器。
我們可以通過以下圖檔及文字了解每種FTP方式是怎樣工作的。
主動模式(伺服器向用戶端敲門,然後用戶端開門)FTP:
客戶機與伺服器之間建立連接配接時,客戶機是大于1024的端口上,伺服器是20端口。
客戶機的端口是大于1024的,而伺服器的端口是21端口接收請求,而是20端口給客戶機回應。
允許FTP客戶機從大于1024的端口連接配接伺服器的21端口。
允許FTP伺服器從21端口回應FTP客戶機中大于1024端口的網絡連接配接。
允許FTP伺服器從20端口主動連接配接FTP客戶機中大于1024的端口。
允許FTP客戶機從大于1024的端口回應來自FTP伺服器的20端口的網絡連接配接。
指令連接配接:用戶端 >1024端口 -> 伺服器 21端口
資料連接配接:用戶端 >1024端口

被動模式(用戶端向伺服器敲門,然後伺服器開門)FTP:
客戶機與伺服器之間建立連接配接都是在大于1024的端口上的。
客戶機的端口是大于1024的,而伺服器的端口是21端口接收請求,而是從大于1024端口給客戶機回應。
允計FTP客戶機從大于1024的端口連接配接FTP伺服器的大于1024端口。
允許FTP伺服器從大于1024的端口回應來自FTP客戶機大于1024端口的網絡連接配接。
資料連接配接:用戶端 >1024端口 -> 伺服器 >1024端口
主動模式對便于FTP伺服器的管理,不便于對用戶端進行管理。因為FTP伺服器企圖與用戶端的高位随機端口建立連接配接,而這個端口很有可能被用戶端的防火牆所阻塞。被動模式對FTP便于對用戶端進行管理,不便于對伺服器端進行管理。因為用戶端要與伺服器端建立兩個連接配接,其中一個連到一個高位随機端口,而這個端口很有可能被伺服器端的防火牆阻塞掉。