初入网络系列笔记(6)TFTP协议
一、借鑒說明,本博文借鑒以下博文
1.錘子,FTP協議,http://www.cnblogs.com/loadrunner/archive/2008/01/09/1032264.html
2.sunada,FTP協議及工作原理詳解,http://www.cnblogs.com/sunada2005/articles/2781712.html
3.wang_j,FTP協議及數據包淺析,http://www.cnblogs.com/wangj08/archive/2013/05/29/3106501.html
4.Hundre,FTP協議詳解,http://www.cnblogs.com/li0803/archive/2010/11/16/1878833.html
二、TFTP協議
- 基礎知識
TFTP(Trivial File Transfer Protocol),即小文件傳輸協議。
它是一個網絡應用程序,它比FTP簡單也比FTP功能少。它在不需要用戶權限或目錄可見的情況下使用,它使用UDP協議而不是TCP協議。
TFTP是一個傳輸文件的簡單協議,它基于UDP協議而實現,但是我們也不能確定有些TFTP協議是基于其它傳輸協議完成的。此協議設計的時候是進行小文件傳輸的,因此它不具備通常的FTP的許多功能,它只能從文件服務器上獲得或寫入文件,不能列出目錄,不進行認證,它傳輸8位數據。傳輸中有三種模式:netascii,這是8位的ASCII碼形式,另一種是octet,這是8位源數據類型;最后一種mail已經不再支持,它將返回的數據直接返回給用戶而不是保存為文件。
任何傳輸起自一個讀取或寫入文件的請求,這個請求也是連接請求。如果服務器批準此請求,則服務器打開連接,數據以定長512字節傳輸。每個數據包包括一塊數據,服務器發出下一個數據包以前必須得到客戶對上一個數據包的確認。如果一個數據包的大小小于512字節,則表示傳輸結構。如果數據包在傳輸過程中丟失,發出方會在超時后重新傳輸最后一個未被確認的數據包。通信的雙方都是數據的發出者與接收者,一方傳輸數據接收應答,另一方發出應答接收數據。大部分的錯誤會導致連接中斷,錯誤由一個錯誤的數據包引起。這個包不會被確認,也不會被重新發送,因此另一方無法接收到。如果錯誤包丟失,則使用超時機制。錯誤主要是由下面三種情況引起的:不能滿足請求,收到的數據包內容錯誤,而這種錯誤不能由延時或重發解釋,對需要資源的訪問丟失(如硬盤滿)。TFTP只在一種情況下不中斷連接,這種情況是源端口不正確,在這種情況下,指示錯誤的包會被發送到源機。這個協議限制很多,這是都是為了實現起來比較方便而進行的。
初始連接時候需要發出WRQ(請求寫入遠程系統)或RRQ(請求讀取遠程系統),收到一個確定應答,一個確定可以寫出的包或應該讀取的第一塊數據。通常確認包包括要確認的包的包號,每個數據包都與一個塊號相對應,塊號從1開始而且是連續的。因此對于寫入請求的確定是一個比較特殊的情況,因此它的包的包號是0。如果收到的包是一個錯誤的包,則這個請求被拒絕。創建連接時,通信雙方隨機選擇一個TID,因此是隨機選擇的,因此兩次選擇同一個ID的可能性就很小了。每個包包括兩個TID,發送者ID和接收者ID。這些ID用于在UDP通信時選擇端口,請求主機選擇ID的方法上面已經說過了,在第一次請求的時候它會將請求發到TID 69,也就是服務器的69端口上。應答時,服務器使用一個選擇好的TID作為源TID,并用上一個包中的TID作為目的ID進行發送。這兩個被選擇的ID在隨后的通信中會被一直使用。
轉載于:https://www.cnblogs.com/MGKKKK/p/6195163.html
總結
以上是生活随笔為你收集整理的初入网络系列笔记(6)TFTP协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件分类和商业机会
- 下一篇: sklearn 安装_初识sklearn