跳至內容

簡單檔案傳輸協定

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

簡單檔案傳輸協定也稱小型檔案傳輸協定Trivial File Transfer Protocol, TFTP),是一種於1981年在RFC 783中定義的簡化的檔案傳輸協定(FTP)。

小型檔案傳輸協定非常簡單,透過少量記憶體就能輕鬆實現——這在當時是很重要的考慮因素。所以TFTP被用於引導電腦,例如沒有大容量記憶體的路由器。現在它仍然被用於在一個網絡上主機之間傳輸小檔案,例如從一台網絡主機或伺服器引導一個遠端X Window System終端或其他的瘦客戶端

小型檔案傳輸協定部分基於更早期的檔案傳輸協定,檔案傳輸協定是通用分組協定(PUP Protocol)中的一部分。在TCP/IP協定組早期的工作中,TFTP往往是在一個新的主機類型上首先完成的協定——因為其非常的簡單。

最早的小型檔案傳輸協定版本是在RFC 1350之前,顯示出相當糟糕的協定缺陷,發現的時候被稱為魔術新手症候群

技術資訊

小型檔案傳輸協定的一些詳細資料:

  • 使用UDP(埠69)作為其傳輸協定(不像FTP使用TCP埠21)。
  • 不能列出目錄內容。
  • 無驗證或加密機制。
  • 被用於在遠端伺服器上讀取或寫入檔案。
  • 支援三種不同的傳輸模式:"netascii","octet"和"mail",前兩種符合FTP協定中的"ASCII"和"image(binary)"模式;第三種從來很少使用,目前已經廢棄。

因為小型檔案傳輸協定使用UDP協定,就必須自己支援傳輸和對談的控制。每個通過TFTP傳輸的檔案構成了一個獨立的交換。此傳輸表現為步鎖,任何時間網絡上僅僅傳遞一個包(一個數據塊或一個首部確認)。由於缺少窗口切換技術,TFTP在有很多潛在連接的情況下僅提供較低的吞吐量。

由於小型檔案傳輸協定缺少安全性,在開放式互聯網上載輸非常危險,所以普遍僅僅用於私人本地網絡。目前TFTP常用於PXE無盤啟動,網絡裝置的設置等。

選項協商後來加到協定中(RFC 2347),已經被協定的選項能對協定的操作進行輕微的更改(特別是更大分塊尺寸的使用使得吞吐量略有提高),但協定大體上還是保持不變的。

小型檔案傳輸協定對談的詳細資料

  • 初始化主機A送一個讀請求(RRQ)或寫請求(WRQ)包給主機B,包含了檔名和傳輸模式。
  • B向A發一個ACK包應答,同時也通知了A其餘送往B包應該傳送的埠號。
  • 源主機向目的主機送編過號的封包,除了最後一個都應該包含一個全尺寸的數據塊。目的主機用編號的ACK包應答所有的封包。
  • 最終的封包必須包含少於最大尺寸的數據塊以表明這是最後一個包。如果被傳輸檔案正好是尺寸塊的整數倍,源主機最後送的封包就是0位元組的。