java ftp主动模式和被动模式_ftp主动模式和被动模式
對于ftp的印象在于適合傳輸文件,特別是大量文件的傳輸時,使用ftp會加快傳輸速度,且比較穩定。
由于要將系統的大量資源文件遷移到新的服務器上,大概700多G,就在舊服務器上搭建了一個ftp服務器,然后在新服務器上連接下載,但是發現連接時總是獲取目錄失敗,逐步摸索下發現了原因,舊服務器少開放了端口。
在搭建ftp服務器過程中,選擇了默認的21端口,于是也就只開放了端口21,但是就悲劇了。
FTP只通過TCP連接,但不同于其他服務的是它使用了兩個端口, 一個數據端口和一個命令端口(或稱為控制端口)。通常21端口是命令端口,20端口是數據端口。然而混入主動/被動模式的概念時,又有所不同。主動模式FTP
FTP客戶端從任意的非特殊的端口(N > 1023)連入到FTP服務器的命令端口--21端口。然后客戶端在N+1(N+1 >= 1024)端口監聽,并且通過N+1(N+1 >= 1024)端口發送命令給FTP服務器。服務器會反過來連接用戶本地指定的數據端口,比如20端口。
主動模式的FTP的 主要問題實際上落在客戶端。FTP 的客戶端并不會主動連接到服務器的數據端口,而是是告訴服務器它正在監聽哪個端口,然后服務器發起連接到客戶端上指定的端口。但是,這樣的連接有時候會被客戶端的防火墻阻止。被動模式FTP
為了解決服務器主動發起到客戶端連接會被阻止的問題,另一種更完善的工作模式出現了,它就是 FTP 的被動模式,縮寫作 PASV,它工作的前提是客戶端明確告知 FTP 服務器它使用被動模式。
在被動模式的 FTP 中,客戶端啟動到服務器的兩個連接,解決了防火墻阻止從服務器到客戶端的傳入數據端口連接的問題。FTP 連接建立后,客戶端在本地打開兩個隨機的非系統端口 N 和 N + 1(N > 1023)。第一個端口連接服務器上的 21 端口,但是客戶端這次將會發出 PASV 命令,也就是不允許服務器連接回其數據端口。這樣,服務器隨后會打開一個隨機的非系統端口 P (P > 1023),并將 P 發送給客戶端作為 PASV 命令的響應。然后客戶端啟動從端口 N+1 到端口 P 的連接來傳輸數據。
總結
以上是生活随笔為你收集整理的java ftp主动模式和被动模式_ftp主动模式和被动模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java冒泡排序算法代码降序_冒泡排序(
- 下一篇: java hashmap遍历顺序_Jav