FTP、SFTP、TFTP,文件傳輸協議怎麼選?

轉載:FTP、SFTP、TFTP,文件傳輸協議怎麼選?

FTP

FTP(File Transfer Protocol,文件傳輸協議)是用於在計算機網絡中傳輸文件的標準協議。FTP是一種客戶端/服務器協議,我們一般都通過FTP客戶端軟件將客戶端連接到服務器,並使用FTP協議來上傳和下載文件。

文件傳輸過程如下圖所示:

圖片

傳輸過程

  1. 服務器打開用於FTP控制連接的TCP(Transmission Control Protocol,傳輸控制協議)端口21(標準),等待FTP客戶端的連接。當客戶端需要登錄FTP服務器時,與服務端(端口21)建立控制連接,該連接始終等待客戶端和服務器之間的通信,將命令從客戶端傳遞到服務器,並傳回服務器的應答。
  2. 每當需要文件傳輸時,就創建一個數據連接。
  • 舉例

寄件人文檔君相當於FTP客戶端,收件人相當於FTP服務器。

圖片

文檔君需要寄快遞,只需要在手機上操作,就可以讓快遞小哥上門取件,也可以隨時取消取件訂單,這個過程類似於控制連接。也就是說,控制連接用於傳輸控制指令,也可以在傳輸途中終止傳輸的指令。

快遞小哥取到件之後,需要負責包裹(數據)的轉運,直至派送。這個過程類似於數據連接,也就是說,數據連接用於實際的文件傳輸, 在傳輸完畢後關閉數據連接,結束整個文件傳輸流程。

特點

  • 安全性:FTP傳輸過程採用TCP明文傳輸,存在安全隱患,對於安全性要求較高的數據,不建議採用FTP服務。

  • 可靠性:FTP使用TCP作爲傳輸層協議進行數據傳輸,保證了數據傳輸的可靠性。

  • 面向連接:FTP建立連接後會一直保持連接狀態,直到連接被關閉。

  • 需要身份驗證:FTP服務器通常需要用戶進行身份驗證後才能進行文件傳輸,以保護數據的安全性。

  • 支持的傳輸模式:支持二進制模式ASCII模式,可以適應不同類型的文件傳輸。

    二進制模式應用場景:

    圖片

    ASCII模式應用場景:文本文件、HTML 文件、CGI 腳本、級聯樣式表文件、javascript 文件。

  • 支持文件列表:支持列出目錄內容的操作。

  • 支持傳輸大文件:可以傳輸GB(Gigabyte,千兆字節)大小的文件。

STFP

SFTP(Secure File Transfer Protocol,安全文件傳輸協議)是用於在計算機網絡中安全傳輸文件的協議,其實就是加強版的FTP,專門採用了一個加密傳輸技術,來提高數據傳輸的安全性。

圖片

傳輸過程

  1. 客戶端通過密鑰對要傳輸的文件進行加密,然後發送給SFTP服務器。
  2. SFTP服務器使用密鑰對加密文件進行解密,最終得到原文件。

特點

  • 安全性:SFTP使用SSH(Secure Shell,安全外殼協議)的加密機制,SSH可以在不安全的網絡中對網絡服務提供安全的傳輸環境,相當於給文件傳輸通道加上了一個保護罩,從而保證了數據的安全傳輸。
  • 可靠性:SFTP的傳輸過程是可靠的。如果傳輸中斷,它可以從上一次中斷的地方恢復,而無需重新傳輸整個文件
  • 面向連接:SFTP建立連接後會一直保持連接狀態,直到連接被關閉。
  • 需要身份驗證:SFTP 提供了兩種驗證連接的方法。
    • 與 FTP 一樣,連接時只需要驗證用戶 ID 和密碼就可以了,但是,與FTP不同的是,這些憑據是加密的,這是 SFTP 最主要的安全優勢。
    • 除密碼外,還可以通過 SSH 密鑰來驗證並通過 SFTP 協議連接。
  • 支持的傳輸模式:二進制模式和ASCII模式,可以適應不同類型的文件傳輸。
  • 支持文件列表:支持列出目錄內容的操作。
  • 支持傳輸大文件:可以傳輸GB(Gigabyte,千兆字節)大小的文件。

TFTP

TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)是一個用來在客戶端與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務,它只能從服務器上獲得或寫入文件。

圖片

傳輸過程

TFTP客戶端和TFTP服務器都是數據的發出者與接收者,一方傳輸數據接收應答,另一方發出應答接收數據。

  • 舉例

類似於我們生活中和小夥伴打語音電話,一方發出語音請求,另一方可以接收語音。

個人覺得上述例子不恰當,因爲TFTP基於UDP協議,無法建立連接,可以舉例:發微信消息。

特點

  • 安全性:TFTP不支持任何身份驗證機制,因此安全性較差,需要在安全的網絡中使用。
  • 可靠性:TFTP基於UDP(User Datagram Protocol,用戶數據報協議)協議實現,沒有錯誤恢復和重傳機制是不可靠的
  • 面向無連接:TFTP是面向無連接的,即每個TFTP包都是獨立的,不需要建立連接。
  • 不支持身份驗證:TFTP不支持任何身份驗證機制,因此安全性較差,需要在安全的網絡中使用。
  • 支持的傳輸模式:支持二進制模式和ASCII模式,可以適應不同類型的文件傳輸。二進制模式和ASCII模式,可以適應不同類型的文件傳輸。
  • 不支持文件列表:TFTP不支持列出目錄內容的操作,用戶需要知道需要下載或上傳的文件名。
  • 不支持傳輸大文件:TFTP只能傳輸較小的文件,因爲它限制了數據包的大小。

應用場景

假設文檔君需要將一份公司文件從你的電腦上傳到公司服務器。這是一個常見的文件傳輸場景,可以用FTP、SFTP或TFTP協議進行傳輸。

圖片

  • 當文檔君需要傳輸團建VLOG視頻文件,可以使用FTP客戶端連接到公司服務器,輸入用戶名和密碼進行身份驗證,然後上傳文件。因爲FTP傳輸不加密,如果VLOG視頻中包含敏感信息,需要考慮其它安全性更高的協議。
  • 當文檔君需要傳輸機密會議錄屏文件,可以使用SFTP客戶端連接到公司服務器,輸入用戶名和密碼或SSH密鑰進行身份驗證,然後使用加密傳輸將文件上傳到服務器。這種方式更加安全,適用於需要保護數據安全性的場合。
  • 當文檔君需要傳輸固件(固化在集成電路內部的程序代碼),可以使用TFTP客戶端通過公司內部的本地網絡上傳到公司服務器中。因爲TFTP傳輸速度快,佔用帶寬少,因此可以快速完成上傳過程。但需要注意,TFTP在安全性方面較弱,因此不適用於傳輸敏感信息。

圖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章