簡單檔案傳輸協定(Trivial File Transfer Protocol,TFTP)是 TCP/IP 協定族中一種簡單的檔案傳輸協定,用來在用戶端與伺服器之間進行檔案傳輸。
TFTP 基於 UDP 協定進行檔案傳輸。與 FTP 協定不同的是,TFTP 傳輸檔案時不需要使用者進行登入。它只能從檔案伺服器上下載或上傳檔案,不能列出目錄。本節將講解 TFTP 協定的工作方式。
協定模式
TFTP 協定模式類似於用戶端傳送請求,伺服器進行響應。由於 TFTP 是基於 UDP 協定的,而 UDP 封包本身就不是很安全,即傳送端傳送的資料是否能成功到達接收端是不能確定的。
因此,為了能夠讓傳送端知道接收端已經接收到了傳送端發來的封包,接收端對接收到的每一個封包都進行確認。
報文型別
TFTP 用戶端與伺服器進行資訊互動的過程中有 5 種報文型別。每種報文型別及含義如下:
-
Read Request(RRQ):請求讀取報文,表示用戶端向 TFTP 伺服器傳送讀取請求,希望從 TFTP 伺服器上讀取檔案,即下載檔案。
-
Write Request(WRQ):請求寫入報文,表示用戶端向 TFTP 伺服器傳送寫入請求,希望向 TFTP 伺服器寫入檔案,即上傳檔案。
-
Data(DATA):傳輸封包報文,表示用戶端與 TFTP 伺服器之間進行檔案的資料傳輸。
-
Acknowledgment(ACK):確認報文,表示對請求讀取、請求寫入和傳輸封包進行確認。
-
Error(ERROR):差錯報文,在檔案傳輸過程中,如果出現讀取和寫入錯誤,將會產生這種封包。
構建 TFTP 伺服器
為了能夠驗證 TFTP 協定工作機制,需要構建一個 TFTP 伺服器。netwox 工具提供了編號為 167 的模組,它可以構建 TFTP 伺服器,允許使用者完成簡單的檔案傳輸任務。
其語法格式如下:
netwox 167