複製鏈接
請複製以下鏈接發送給好友

簡單文件傳輸協議

鎖定
簡單文件傳輸協議 (TFTP,Trivial File Transfer Protocol)用於在TFT客户端和TFTP服務器之間傳輸文件,其中一台計算機上需要運行tftpdTFTPdeamon。TFTP基於UDP協議進行文件傳輸,與FTP不同的是,TFTP傳輸文件時不需要用户進行登錄。 [1] 
中文名
簡單文件傳輸協議
外文名
Trivial File Transfer Protocol
數據類型
8位
端口號
69

簡單文件傳輸協議簡介

端口號為69。
簡單文件傳輸協議,它基於UDP協議而實現。它不具備通常的FTP的許多功能,它只能從文件服務器上獲得或寫入文件,不能列出目錄,不進行認證,它傳輸8位數據。傳輸中有三種模式:netascii,這是8位的ASCII碼形式,另一種是octet,這是8位源數據類型;最後一種mail已經不再支持,它將返回的數據直接返回給用户而不是保存為文件。

簡單文件傳輸協議概況

任何傳輸起自一個讀取或寫入文件的請求,這個請求也是連接請求。如果服務器批准此請求,則服務器打開連接,數據以定長512字節傳輸。每個數據包包括一塊數據,服務器發出下一個數據包以前必須得到客户對上一個數據包的確認。如果一個數據包的大小小於512字節,則表示傳輸結束。如果數據包在傳輸過程中丟失,發出方會在超時後重新傳輸最後一個未被確認的數據包。通信的雙方都是數據的發出者與接收者,一方傳輸數據接收應答,另一方發出應答接收數據。大部分的錯誤會導致連接中斷,錯誤由一個錯誤的數據包引起。這個包不會被確認,也不會被重新發送,因此另一方無法接收到。如果錯誤包丟失,則使用超時機制。錯誤主要是由下面三種情況引起的:不能滿足請求,收到的數據包內容錯誤,而這種錯誤不能由延時或重發解釋,對需要資源的訪問丟失(如硬盤滿)。TFTP只在一種情況下不中斷連接,這種情況是源端口不正確,在這種情況下,指示錯誤的包會被髮送到源機。這個協議限制很多,這些都是為了實現起來比較方便而進行的。

簡單文件傳輸協議通信特點

因為TFTP使用UDP,而UDP使用IP,IP可以還使用其它本地通信方法。因此一個TFTP包中會有以下幾段:本地媒介頭,IP頭,數據報頭,TFTP頭,剩下的就是TFTP數據了。TFTP在IP頭中不指定任何數據,但是它使用UDP中的源和目標端口以及包長度域。由TFTP使用的包標記(TID)在這裏被用做端口,因此TID必須介於0到65,535之間。對它的初始化我們在後面討論。TFTP頭中包括兩個字節操作碼,這個碼指出了包的類型,下面是TFTP包格式
---------------------------------------------------
| Local Medium | Internet | Datagram | TFTP |
---------------------------------------------------

簡單文件傳輸協議連接

簡單文件傳輸協議初始連接

初始連接時候需要發出WRQ(請求寫入遠程系統)或RRQ(請求讀取遠程系統),收到一個確定應答,一個確定可以寫出的包或應該讀取的第一塊數據。通常確認包包括要確認的包的包號,每個數據包都與一個塊號相對應,塊號從1開始而且是連續的。因此對於寫入請求的確定是一個比較特殊的情況,因此它的包的包號是0。如果收到的包是一個錯誤的包,則這個請求被拒絕。創建連接時,通信雙方隨機選擇一個TID,因為是隨機選擇的,因此兩次選擇同一個ID的可能性就很小了。每個包包括兩個TID,發送者ID和接收者ID。這些ID用於在UDP通信時選擇端口,請求主機選擇ID的方法上面已經説過了,在第一次請求的時候它會將請求發到TID 69,也就是服務器的69端口上。應答時,服務器使用一個選擇好的TID作為源TID,並用上一個包中的TID作為目的ID進行發送。這兩個被選擇的ID在隨後的通信中會被一直使用。下例是一個寫入的例子,其中WRQ,ACK和DATA代表寫入請求,確認和數據。

簡單文件傳輸協議正常終止

傳輸的結束由DATA數據標記,其包括0-511個字符。這個包可以被其它數據包確認。接收方在發出對最後數據包的確認後可以斷開連接,當然,適當的等待是比較好的,如果最後的確定包丟失可以再次傳輸。如果發出確認後仍然收到最後數據包,可以確定最後的確認丟失。發送最後一個DATA包的主機必須等待對此包的確認或超時。如果響應是ACK,傳輸完成。如果發送方超時並不準備重新發送並且接收方有問題或網絡有問題時,發送也正常結束。當然實現時也可以是非正常結束,但無論如何連接都將被關閉。

簡單文件傳輸協議早終結

如果請求不能被滿足,或者在傳輸中發生錯誤,需要發送ERROR包。這僅是一種傳輸友好的方式,這種包不會被確認也不會被重新傳輸,因此這種包可能永遠不會被接收到。因此需要用超時來偵測錯誤。

簡單文件傳輸協議FTP協議區別

簡單文件傳輸協議優勢

儘管與FTP相比TFTP的功能要弱得多,但是TFTP具有兩個優點:
(1)TFTP能夠用於那些有UDP而無TCP的環境;
(2)TFTP代碼所佔的內存要比FTP小。
儘管這兩個優點對於普通計算機來説並不重要,但是對於那些不具備磁盤來存儲系統軟件的自舉硬件設備來説TFTP特別有用。

簡單文件傳輸協議相同點

TFTP協議的作用和我們經常使用的FTP大致相同,都是用於文件傳輸,可以實現網絡中兩台計算機之間的文件上傳與下載。可以將TFTP協議看作是FTP協議的簡化版本。

簡單文件傳輸協議不同點

(1)TFTP協議不需要驗證客户端的權限,FTP需要進行客户端驗證;
(2)TFTP協議一般多用於局域網以及遠程UNIX計算機中,而常見的FTP協議則多用於互聯網中;
(3)FTP客户與服務器間的通信使用TCP,而TFTP客户與服務器間的通信使用的是UDP;
(4)TFTP只支持文件傳輸。也就是説,TFTP不支持交互,而且沒有一個龐大的命令集。最為重要的是,TFTP不允許用户列出目錄內容或者與服務器協商來決定哪些是可得到的文件。
參考資料
  • 1.    Joe Casad 著 井中月 譯 . TCP/IP入門經典:人民郵電出版社 ,2009