1. 程式人生 > >【TCP/IP】TFTP

【TCP/IP】TFTP

TFTP:

TFTP(Trivial File Transfer Protocol)即簡單檔案傳輸協議,最初打算用於引導無盤系統

和使用TCP的檔案傳輸協議(FTP)不同,為了保持簡單和短小,TFTP將使用UDP

TFTP的程式碼(和它所使用UDP、IP和裝置驅動程式)都能適合只讀儲存器

TFTP報文格式:

操作碼:1是讀,2是寫,3是資料,4是確認,5是差錯

檔名:要讀或者寫的檔名

模式:什麼編碼

塊編號:第幾塊,傳送與回覆的塊編號一樣

       TFTP(UDP:69)停止等待協議,發一個塊編號的資料報,就等待一個塊編號資料報的確認,確認了就再發送,不確認就不傳送,而且資料報的每一個包的資料都是512位元組,除了最後一個包可以不是512位元組,由包的大小不是512位元組來判斷資料報傳送完畢。

       如果剛好最後一個包是512 位元組,有人提出猜想:如果最後一個包剛好是512位元組,那麼就再發送一個為0位元組的資料報。理論上是可行了,但是沒有測試過。

       TFTP發起者的第一個包目的埠肯定是69,源埠隨機(1037)。伺服器給確認包源埠隨機(57494),目的埠(1037)。然後後面的所有TFTP包都在這兩個隨機埠間傳送。在防火牆中要放行TFTP,必須inspect TFTP,因為TFTP第一個確認包會換埠)

       TFTP報文中是沒校驗和的,如果要校驗TFTP的完整性可以使用MD5,受到整個TFTP報文後進行MD5計算,計算的結果與伺服器給的MD5值進行比較。

TFTP的安全性:

       在我們使用TFTP時,一定要指定訪問特定的目錄下的檔案,限制訪問目錄點。不允許其檢視其它目錄。