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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux主机ftp传输文件效率,FTP和TCP的文件传输效率对比测试分析

發布時間:2024/2/28 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux主机ftp传输文件效率,FTP和TCP的文件传输效率对比测试分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近因項目需要,需要把一定數量的中等文件從開發板上傳到電腦上,分別選擇了FTP和TCP自定義協議兩種方式進行傳輸,進行了簡單的對比測試,故做如下記錄。

測試環境

開發板:Linux,ARMv7 單核,內存512M

PC:winodw, i7,8G內存,SSD

網絡:100M,局域網

文件:大小4.06M,數量50個

四種方案簡述

1、FTP上傳,短連接,單線程

2、FTP上傳,長連接,單線程

3、TCP上傳,短連接,單線程

4、TCP上傳,短連接,多線程

5、TCP上傳,長連接,單線程

說明

1、這里提的TCP上傳,是指使用自定義協議TCP方式上傳。

2、短連接是指每上傳一個文件就連接一次,傳完后就關閉連接。

3、長連接是指先連接,再上傳多個文件,到退出程序時再關閉連接。

4、單線程是指所有文件的連接、發送、關閉都是在一個線程內完成。

5、多線程是指一個文件對應一個線程,多個文件同時使用多個線程發送。

自定義文件傳輸協議

自定義文件協議設計得非常簡單。

客戶端發送數據包= 128B文件名+ 4B文件長度+文件數據

服務端響應數據包=“OK”

之所以如此設計,列如下幾點原因:

1、固定文件名長度,方便處理,也方便定位到文件長度字段。

2、4字節文件長度剛好和整型相等,在兩個32位小端機器上直接拷貝發送,代碼簡單。

3、文件長度字段可以方便檢查數據是否接收完全,解決粘包問題。

4、局域網內網絡相對比較好,所以沒帶文件校驗。

測試結果

方案1,2分鐘

方案2,45秒

方案3,20秒

方案4,20秒

方案5,20秒

結果分析

分析之前,先計算一下理論的傳輸速度應該是多少,文件總大小約為203M,按100M網絡計算,速度應該是203/(100/8) = 16秒。所以說20秒是一個比較不錯的速度了,畢竟還有一些文件操作等操作,需要占用一些時間。

方案1和方案2比較

FTP建立連接相對復雜,不斷的連接和斷開肯定消耗不少時間,所以長連接比短連接傳輸速度快也是應該的。

FTP方案和TCP方案比較

FTP方案整體上比TCP方案慢得多,畢竟FTP協議肯定比自定義的文件傳輸協議要復雜得多,交互指令越多,速度越慢。

方案3和方案4比較

兩個方案的差別在于是否使用多線程發送。從結果來看,速度相差不大。因為網絡的極限速度就是100M,同時發送再多的數據也沒有用,都會阻塞在網絡上。即使發送的速度可能快一點點,但開啟多個線程、線程同步鎖等也需要時間,可能相抵消了。

方案3和方案5比較

兩個方案的差別在于是否使用長連接。從結果來看,速度相關不大。和上面分析一樣,網絡的極限速度是100M,而TCP在局域網內建立連接(三次握手)、關閉都非常快。對于發送大量數據的情況,是否使用長連接影響都不大。

從上面的測試和分析結果來看,在本項目中使用方案3或5(TCP上傳,單線程),是比較合適的。首先傳輸速度上表現不錯,而且避免使用多線程,不需要線程同步,代碼設計更簡單,越簡單越容易做得更可靠。

當然上面的測試是不充分的,對于其他情況沒有進行測試分析。例如,使用FTP多線程發送、更小的文件(小于1k)、更大的文件(大幾百M)、更多的數量等等,因時間有限不做測試了。不過通過上面的分析,考慮各個因素對速度的影響,也大概可以選擇出比較優的方案。如有機會再測試分析。

歡迎各位評論,指出不足之處。

內容來源于網絡如有侵權請私信刪除

總結

以上是生活随笔為你收集整理的linux主机ftp传输文件效率,FTP和TCP的文件传输效率对比测试分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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