A. 什麼是ftp主動模式和被動模式
FTP主動模式就是FTP會用自己的20埠去主動得跟客戶端建立連接,當客戶端網路做NAT的時候會發生錯誤。把NAT的埠認為是客戶端與FTP 20埠建立連接的
被動模式就是當建立ftp連接後,客戶端發送一個被動模式請求給伺服器,伺服器選擇一個數據埠監聽,並把埠告訴客戶端,客戶端直接向數據埠發起連接,這樣,即使中間有做NAT也不影響FTP數據傳輸通道建立
B. java連接ftp是主動模式還是被動模式
正常情況下,默認使用主動模式 連接ftp;如果ftp仍然是登陸成功但是沒有上傳或下載文件,就在登陸後加入一行代碼,客戶端使用被動方式連接ftp服務端
ftpC.login(user, password);
// ftpC.enterLocalPassiveMode();
if (null != remotePath) {
// 打開進入指定目錄
ftpC.changeWorkingDirectory(remotePath);
}
C. ftp主動模式如何開啟
設置FTP的主動模式和被動模式,用到的工具:8uftp,步驟如下:
打開8uftp軟體,點擊編輯菜單--選項:
注意事項:適用於8uftp.
D. ftp客戶和伺服器間傳遞ftp命令時,使用的連接是tcp還是udp
ftp客戶和伺服器間傳遞ftp命令時,使用的連接是tcp。
FTP協議是基於傳輸層TCP協議的。FTP的控制連接使用埠21,用來傳輸控制信息(如連接請求、傳送請求等),數據連接使用埠20,用來傳輸數據。
控制連接的特點是:
1、以客戶一伺服器方式建立。
2、伺服器以被動方式打開用於FTP的埠21,等待客戶的連接。
3、客戶則以主動方式打開TCP埠21,來建立連接。
4、控制連接始終等待客戶與伺服器之間的通信。該連接將命令從客戶傳給伺服器,並傳回伺服器的應答。由於命令通常是由用戶鍵入的,所以IP對控制連接的服務主要責任就是「最大限度地減小遲延」。
(4)FTP什麼時候使用主動連接擴展閱讀:
FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。
在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。此外,由於FTP傳輸效率非常高,在網路上傳輸大的文件時,一般也採用該協議。
默認情況下FTP協議使用TCP埠中的 20和21這兩個埠,其中20用於傳輸數據,21用於傳輸控制信息。但是,是否使用20作為傳輸數據的埠與FTP使用的傳輸模式有關,如果採用主動模式,那麼數據傳輸埠就是20;如果採用被動模式,則具體最終使用哪個埠要伺服器端和客戶端協商決定。
E. 請高手介紹一下ftp的主動連接和被動連接
自己看,不用加分,其實就是協商的過程,很容易理解.
http://www.lovim.com/dbbs/redirect.php?tid=7&goto=lastpost
ftp的兩種連接模式PASV(被動)和PORT(主動)
FTP基礎知識 FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。 FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。 Port模式:ftp server:tcp 21 <------client:dynamicftp server:tcp 20 ------>client:dynamic Pasv模式:ftp server:tcp 21 <----client:dynamicftp server:tcp dynamic <----client:dynamic PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。 PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。 從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。