日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TFTP通信原理

發布時間:2024/4/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TFTP通信原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TFTP的通信流程

TFTP共定義了五種類型的包格式,格式的區分由包數據前兩個字節的Opcode字段區分,分別是:

·?l?讀文件請求包:Read?request,簡寫為RRQ,對應Opcode字段值為1

·?l?寫文件請求包:Write?requst,簡寫為WRQ,對應Opcode字段值為2

·?l?文件數據包:Data,簡寫為DATA,對應Opcode字段值為3

·?l?回應包:Acknowledgement,簡寫為ACK,對應Opcode字段值為4

·?l?錯誤信息包:Error,簡寫為ERROR,對應Opcode字段值為5

1、由客戶端發起讀文件/寫文件的請求,同時可以進行請求連接

2、服務器監聽到請求,打開連接,并向客戶端發送文件,以每個定長為512字節的塊進行發送。每個數據包包含一個數據塊,在發送下一個包的時候必須被客戶端確認回應一個回應包。

3、當發現某個數據包小于512個字節,說明傳輸終止。

4、如果出現網絡丟包,收件方(客戶端)會超時,并且重傳最后的接收包(可以是數據包或者回應包),因此這將可以讓發送者重新發送丟失包。當之前的包已經接受成功之后,發送者只需要保持一個重傳包。注意?發送者?要做的事情:發送數據,接受?回應包;接受者要做的:發送回應包,接受數據。如下圖所示:

讀請求和寫請求的回應是不一樣的下圖是讀請求


?

有許多的錯誤會造成連接中斷.

1、發送錯誤的包,這個包沒有回應,也沒有重發,(例如,TFTP服務器或者客戶端會因為收到錯誤的信息終止)這樣導致對方接受不到。所以引入了超時機制。通常錯誤由3種情況導致:

?(1)、不能滿足請求的內容(例如:文件找不到,不允許接入,或者用戶不存在)
2)、由于網絡延遲或者重置導致正在接收的包無法解析(例如包的格式不正確)
(3)、必須訪問資源丟失(例如磁盤滿了,或者傳輸過程中拒絕訪問)

TFTP意識到僅有一個錯誤條件是不會導致中斷的,那就是接收包的源端口不正確。在這種情況下會向原始的服務器發一個錯誤包。

為了簡單的實現,TFTP協議非常的有限。例如:固定大小的塊可以使得分配空間更直接,在鎖定等待回應包可以方便控制流并且不需要重排接到的數據包

?

錯誤碼

???值??????????表示意思

???0?????????未定義Not?defined,?see?error?message?(if?any).
???1?????????文件找不到File?not?found.
???2?????????拒絕訪問Access?violation.
???3?????????磁盤滿了或者超出了可分配空間Disk?full?or?allocation?exceeded.
???4?????????非法TFTIllegal?TFTP?operation.
???5?????????傳輸ID未知Unknown?transfer?ID.
???6?????????文件不存在File?already?exists.
???7?????????沒有該用戶No?such?user.

?

轉載于:https://www.cnblogs.com/sexyboy/p/8509625.html

總結

以上是生活随笔為你收集整理的TFTP通信原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。