FTP 協議與NFS協議


【上一篇】HTTP協議與HTTPS協議的區別

FTP簡介

FTP(File Transport protocol),即文件傳輸協議,可有效地提高文件的共享和數據可靠高效地傳輸。FTP協議與前面幾節介紹的Http協議更復雜,建立FTP連接時,需要同時開啟兩個端口,一個用於命令控制,另一個作為數據傳輸的端口,提高了效率。一般21端口作為命令控制的端口、20端口作為數據傳輸的端口。

命令控制端口:負責FTP命令發送、接收返回的響應信息。

數據端口:顯示目錄列表、上傳、下載文件等有數據傳輸的操作。

下面簡單介紹一下FTP的兩種連接模式:主動模式、被動模式,其中的主動和被動都是針對服務器端來說的,主動模式下,服務器開啟數據端口主動連接客戶端,被動模式下,服務器端開啟一個數據傳輸端口告訴客戶端,然后服務器端被動地去連接這個端口。

FTP的主動模式【PORT】

主動模式下,客戶端打開一個隨機端口,向服務器端的21端口發起連接;同時客戶端還會打開一個監聽端口,並向服務器發送命令,服務器響應客戶端命令主動開放20端口連接到客戶端。
主動模式下,客戶端告訴服務器端自己的端口號,讓服務器的20端口主動連接客戶端,這種方式是不安全的。因此客戶端和服務器端都應該開啟防火牆,對於客戶端的防火牆來說,這是從外部到內部的連接,可能會被阻塞。
【FTP協議的安全性分析,具體可以看一下網管小王的博客】防火牆對FTP主動和被動模式的影響.

FTP的被動模式【PASV】

被動模式下,當開啟一個FTP連接時,客戶端打開兩個隨機的端口,提交PASV命令,並用第一個端口去連接服務器的端口命令控制端口21,返回消息服務器的地址及開放的數據端口號,這是客戶端的第二個端口去連接服務器的數據端口號,至此FTP的客戶端和服務器端就建立了被動連接模式,進行后續的數據傳輸。

NFS協議簡介

NFS(Network File System),是Sun公司用於分布式訪問的文件系統。是在Linux的內核中實現的。

正如上圖中所看到的,客戶端通過發送消息來獲取它們需要的服務器端磁盤上的目錄和文件。問題來了,為啥我們不直接使用客戶機上的本地磁盤呢?
主要原因有3:
(1)這種布局使得在客戶機之間的數據共享更加容易。比如,如果你訪問Client 0上的一個文件,然后你使用Client 2,你會看到相同的文件系統視圖。數據可以很自然地在不同機器上共享。
(2)集中管理。比如要備份文件,可以只備份少數幾個服務器上的數據,而不用備份許多客戶機上的數據。
(3)安全,將所有的服務器放在一個鎖好的機房里可以防止特定類型的問題發生。

參考資料

【1】高 樂怡,顧 鋒磊.使用 Socket 通信實現 FTP 客戶端程序
.https://www.ibm.com/developerworks/cn/linux/l-cn-socketftp/index.html[EB/OL].2011.04.07.

【2】Sun’s Network File System (NFS).http://pages.cs.wisc.edu/~remzi/OSTEP/dist-nfs.pdf

【上一篇】HTTP協議與HTTPS協議的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM