久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7373|回復: 0
收起左側

TFTP簡單文件服務 工作原理及測試 :-)

[復制鏈接]
ID:91350 發表于 2015-10-30 11:44 | 顯示全部樓層 |閱讀模式
   


這幾年一直以來從未做過什么TCP UDP更上一層的應用,HTTP早在N年前碰過之后再也不想碰了。前幾天搞定了嵌入式文件系統之后,就開始了TFTP的文件傳輸。誠然我還是“拿來主義”get了一個tftp文件,然后加入工程中把文件系統的接口弄好,就開始閱讀源代碼和測試。

我不否認自己寫,更不否認拿來主義,只要是可以用穩定都可吧。拿來主義就是一點不好,有些實現看不懂看不到。自己寫的好處在于每個環節盡在自己掌握了。不過拿來主義可以提高對代碼的閱讀能力和效率。一旦看透了作者的意圖基本就變成了自己的東西了。難分伯仲。

一、TFTP的工作原理:
1、建立一個UDP使他在69端口監聽。(我一度認為TFTP就是在69上傳輸的,其實并不是)
2、建立一個對69端口數據的解析函數。process_tftp_request
3、解析69端口的數據,取出文件名和是什么請求(讀/寫文件)
4、建立一個用于傳輸文件的UDP端口(測試時最好綁定到指定端口,以觀察控制塊的狀態)
5、分別處理讀文件和寫文件。(以讀文件為例子)
6、利用文件系統打開總目錄。然后搜索這個文件,文件有則打開。
7、建立一個TFTP控制塊,主要控制文件塊的大小。并從文件中讀取512字節,發送第一塊512字節的數據到客戶端。
8、等待客戶端的ACK確認和序號匹配。然則繼續發送下一塊512字節的數據。
9、重復8,直到讀出的塊的大小小于512字節,此時文件已經讀取完畢了,因為小于512字節了/發送出去LAST
10、等待LAST的ACK之后確認LAST就好。
11、殺掉文件傳輸控制塊,釋放TFTP控制塊。
12、結束

顯然TFTP并不是在69上傳文件,而是使用別的隨機的端口傳輸,69只是負責取出請求類型和文件名。

二、問題和解決
1、測試中主要發現在4-8M壓力測試時TFTP不能正常相應。壓力撤出后TFTP無法使用。
2、69端口并發資源消耗。是其他的需要內存的得不到內存。
針對兩種問題,進行分別的限制,
第一種問題最后證實是TFTP沒有加超時機制,
1)、造成問題的原因是控制塊在進行收發時沒有對ACK進行檢測,我在程序ACK的回復上加上了時隙采樣,
添加250MS的trm函數對ACK進行檢測。如果正常則超時事件發生,如果客戶端和服務器之間的通信收到某種
原因的打斷則報告超時事件。
2)、超時事件的處理上糾結了一些時間,最后的解決辦法是第一步向客戶端發送一幀timeoutTFT錯誤幀,然后
關閉文件流UDP端口,再釋放控制塊。最后注冊回調函數到69端口。
第二種問題要限制連接服務器的客戶端數量。
1)、69端口是否有數據,如果有數據則注銷69端口的回調函數為NULL,
2)、進行正常的TFTP操作和處理。
3)、TFTP傳輸完畢后重新注冊69的回調函數,
這樣就可以避免當一臺主機在傳輸文件,又來了一個連接造成的資源損耗,保證TFTP是獨享的。

三、測試
1、硬件連接:CPU外接2G TF卡+100/10M 以太網+2*DS18B20
1)、2只1820負載采集溫度數據寫入文件中
2)、UDP打印出來\TCP作為命令解析和控制 使用TFTP下載TF卡上的溫度表文件。
2、CMD命令


tftp -i IP[addr] GET/PUT filename
3、連接建立

4、第一塊文件數據流開始下載

5、客戶端對第一塊數據的ACK

6、最后一塊數據接收

7、最后一塊數據ACK接收確認

8、PC下載文件結束

9、確認異常(最后一條就是加入TIMEOUT后的報告)


10、下載速度(和CPU主頻、文件系統的IO、驅動程序IO、還有網絡環境諸多因素有關,其中網絡因素是主變量了,最高到過200K看來已經極限,局域網傳點小型文件夠用了。)
路由器小局域網

公司局域網


四、后續接口和pull request
1)、完善一下和文件系統的接口,獨立出來方便接入不同的文件系統。
2)、文件說明和函數搞一下,(我是野路子)
3)、提交共享代碼。讓更多人一起測試一起找BUG/微笑

謹以此文送給最近郁悶的老王!!! /微笑



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品综合网 | 免费一看一级毛片 | 成人网在线| 国产精品视频久久久 | 中文字幕欧美一区 | 亚洲国产情侣自拍 | 人人性人人性碰国产 | 亚洲精品日韩综合观看成人91 | 日韩欧美中文 | 亚洲在线| 日韩视频精品在线 | 日韩激情一区 | 国产成人精品区一区二区不卡 | 99re6热在线精品视频播放 | 日韩成人在线免费观看 | 一级大黄| 国产偷录叫床高潮录音 | 国产高清一二三区 | 日韩高清成人 | 九九九视频在线观看 | 国产片侵犯亲女视频播放 | 精品久久久久久久久久久久久久 | 亚洲国产精品99久久久久久久久 | 一区二区三区高清在线观看 | 男人的天堂在线视频 | 成人在线免费 | 91久久精品一区二区二区 | 91美女在线 | 亚洲欧美国产精品久久 | 性生活毛片 | 久久久久久亚洲精品 | 黄色激情毛片 | 久久久做 | av毛片在线免费观看 | 视频在线一区二区 | 亚洲精视频 | 精品国产亚洲一区二区三区大结局 | 国产福利在线免费观看 | 91久久网站| 亚洲成人免费电影 | wwwxxx国产|