久久精品国产清自在天天线_日韩国产欧美系列_亚洲天堂影视在线观看_91在线艹亚洲无码午夜_日本写真高清视频免费网站网_亚州无码大尺度另类_高跟翘臀老师后进式视频午夜_久久精品国产亚洲AV热黑人_国产另ts另类人妖_丁香五月 开心五月 激情五月

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > tftp文件傳輸協(xié)議詳解

tftp文件傳輸協(xié)議詳解 時間:2018-07-30      來源:未知

TFTP是一個傳輸文件的簡單協(xié)議,它基于UDP協(xié)議而實現(xiàn),但是我們也不能確定有些TFTP協(xié)議是基于其它傳輸協(xié)議完成的。

此協(xié)議設計的時候是進行小文件傳輸?shù)摹R虼怂痪邆渫ǔ5腇TP的許多功能,它只能從文件服務器上獲得或寫入文件,

不能列出目錄,不進行認證,它傳輸8位數(shù)據(jù)。傳輸中有三種模式:netascii,這是8位的ASCII碼形式,另一種是octet,

這是8位源數(shù)據(jù)類型;最后一種mail已經(jīng)不再支持,它將返回的數(shù)據(jù)直接返回給用戶而不是保存為文件。

任何傳輸起自一個讀取或寫入文件的請求,這個請求也是連接請求。如果服務器批準此請求,則服務器打開連接,

數(shù)據(jù)以定長512字節(jié)傳輸。每個數(shù)據(jù)包包括一塊數(shù)據(jù),服務器發(fā)出下一個數(shù)據(jù)包以前必須得到客戶對上一個數(shù)據(jù)包的確認。

如果一個數(shù)據(jù)包的大小小于512字節(jié),則表示傳輸結束。如果數(shù)據(jù)包在傳輸過程中丟失,

發(fā)出方會在超時后重新傳輸最后一個未被確認的數(shù)據(jù)包。通信的雙方都是數(shù)據(jù)的發(fā)出者與接收者,一方傳輸數(shù)據(jù)接收應答,

另一方發(fā)出應答接收數(shù)據(jù)。大部分的錯誤會導致連接中斷,錯誤由一個錯誤的數(shù)據(jù)包引起。這個包不會被確認,

也不會被重新發(fā)送,因此另一方無法接收到。如果錯誤包丟失,則使用超時機制。錯誤主要是由下面三種情況引起的:

不能滿足請求,收到的數(shù)據(jù)包內(nèi)容錯誤,而這種錯誤不能由延時或重發(fā)解釋,對需要資源的訪問丟失(如硬盤滿)。

TFTP只在一種情況下不中斷連接,這種情況是源端口不正確,在這種情況下,指示錯誤的包會被發(fā)送到源機。

這個協(xié)議限制很多,這些都是為了實現(xiàn)起來比較方便而進行的。

TFTP是一個簡單的協(xié)議,適合于只讀存儲器,僅用于無盤系統(tǒng)進行系統(tǒng)引導,它只使用幾種報文格式,是一種停止等待協(xié)議

特點:

1、簡單

2、占用資源小

3、適合傳遞小文件

4、適合在局域網(wǎng)進行傳遞

5、端口號為69

6、基于UDP實現(xiàn)

缺陷:

TFTP分組中并不提供用戶名和口令。這是TFTP的一個特性(即"安全漏洞")。由于TFTP是設計用于系統(tǒng)引導進程,它不可能提供用戶名和口令。

目前大多數(shù)TFTP服務器提供了一個選項來限制只能訪問特定目錄下的文件,這個目錄中只包含無盤系統(tǒng)進行系統(tǒng)引導時所需的文件

當服務器找到需要現(xiàn)在的文件后,會立刻打開文件,把文件中的數(shù)據(jù)通過TFTP協(xié)議發(fā)送給客戶端

如果文件的總大小較大(比如3M),那么服務器分多次發(fā)送,每次會從文件中讀取512個字節(jié)的數(shù)據(jù)發(fā)送過來

因為發(fā)送的次數(shù)有可能會很多,所以為了讓客戶端對接收到的數(shù)據(jù)進行排序,所以在服務器發(fā)送那512個字節(jié)數(shù)據(jù)的時候,會多發(fā)2個字節(jié)的數(shù)據(jù),用來存放序號,并且放在512個字節(jié)數(shù)據(jù)的前面,序號是從1開始的

因為需要從服務器上下載文件時,文件可能不存在,那么此時服務器就會發(fā)送一個錯誤的信息過來,為了區(qū)分服務發(fā)送的是文件內(nèi)容還是錯誤的提示信息,所以又用了2個字節(jié) 來表示這個數(shù)據(jù)包的功能(稱為操作碼),并且在序號的前面。

為了允許多個客戶端同時進行系統(tǒng)引導,TFTP服務器必須提供一定形式的并發(fā)。因為UDP在一個客戶與一個服務器之間并不提供唯一連接,TFTP服務通過對每個客戶提供一個新的UDP端口來提供并發(fā)。這樣允許不同的客戶輸入數(shù)據(jù)報,然后由服務器中的UDP模塊根據(jù)目的端口號進行區(qū)分,而不是由服務器本身來進行區(qū)分。

因為udp的數(shù)據(jù)包不安全,即發(fā)送方發(fā)送是否成功不能確定,所以TFTP協(xié)議中規(guī)定,為了讓服務器知道客戶端已經(jīng)接收到了剛剛發(fā)送的那個數(shù)據(jù)包,所以當客戶端接收到一個數(shù)據(jù)包的時候需要向服務器進行發(fā)送確認信息,即發(fā)送收到了,這樣的包成為ACK(應答包)

為了標記數(shù)據(jù)已經(jīng)發(fā)送完畢,所以規(guī)定,當客戶端接收到的數(shù)據(jù)小于516(2字節(jié)操作碼+2個字節(jié)的序號+512字節(jié)數(shù)據(jù))時,就意味著服務器發(fā)送完畢了

上一篇:Linux應用程序幾種參數(shù)傳遞方式

下一篇:tftp命令使用詳解

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部