如何加快互相網路傳輸文件的速度?

能不能有一些傳輸軟體先進行處理需要傳輸的文件,從而加快傳輸速度,比如壓縮(小幅度有損壓縮和無損壓縮)。


能啊,ssh 和 rsync 不都有壓縮選項嗎?

你也可以先壓縮了再傳。

如果對方已有相似的數據,可以只傳輸有差異的部分(比如用 rsync)。

這方案是減少數據傳輸量。還可以增加帶寬。具體如何做取決於你的實際情況(找 ISP 升級、升級網卡、加網線、拉專線/光纖等)。還可以嘗試走不同的線路。

如果你的網路傳輸速度受限於延遲(而不是帶寬;比如地月/火地間的數據傳輸),可以考慮改用 UDP 或者類似的協議,這樣可以亂序發很多在路上的包了。

如果要傳輸的數據量很大,可以考慮快遞硬碟。雖然這個延遲非常大,但是一個包就能上T!


提升互聯網文件傳輸速度,必須是雙向的,單向提速現在往往是很難做到更好的體驗。

首先,先要理解一些互聯網文件傳輸的基礎。

如果是標準http傳輸,http文件傳輸支持起始點定義,也就是說,你可以在你的客戶端代碼中添加幾個線程,把你的遠端文件獲得大小平均分為幾分(和線程數一一對應),然後每個線程從指定的位置開始下載,比如文件有10K,你可以同時下載0k-2K,2K-4K,4k-6k,6k-8k,8k-10k這5個線程,同時下載5個文件,全部下載完成後合併文件即可成為你要的東西。(這也就是以前網路快車等下載工具的核心實現方法之一)

不過這種方法極度消耗伺服器的帶寬,目前,一般的伺服器都會根據你的賬號限速,不會讓你過多的佔據伺服器下載資源。所以現在多點續傳這類客戶端演算法往往受到了限制。(比如某盤,你註冊會員了就能下載的快實際上就是你註冊了會員,它提高了你在伺服器下載限速的數值而已。從而你的下載速度會變的很快)

再比如現在比較流行的視頻直播軟體,你可以獲得指定的視頻直播流,視頻流協議是可以選擇清晰度的,也就是說,可以通過插值演算法降低網路幀的清晰度來減少流的大小,還有就是可以支持圖片幀的差值運算獲得下一幀圖片改變的部位單獨傳輸(協議特有演算法)來有效降低傳輸的流量。

總之,不同的行業是有不同的優化手段的,你如果是開發伺服器的,需要注意限制自己的帶寬不要被客戶端多線程刷爆了,也要做一定規則的限速才行。當然,你有錢上CDN另說,那是有錢人的玩法。


有啊,用雲盤的客戶端向雲端傳視頻,很多時候是本地算了文件hash,雲端比較一下hash,如果存在相同的文件就不傳了


恕我直言 國內網路複雜 用qq微信百度雲這些普通軟體 一個上T的文件得用幾天吧。

所以必須要用些專業軟體,例如 aspera高速傳輸產品,可以把帶寬出口打到95%以上。例如你辦公帶寬100M,可以跑到95M/s。

如果你信得過,可以聯繫我qq3248313452。

我不是微商,只是通信行業銷售一枚,只做生意不騙錢。


要是純文本很簡單,隨便zip之類的壓縮就好了。視頻圖片好像壓縮不了多少,當然有損壓縮的話可以省下比較可觀的空間


推薦閱讀:

網站頻繁間歇性宕機幾分鐘是怎麼回事?
實現一個http伺服器需要怎樣進行?需要哪些知識呢?
實驗室里想搭建生物信息學平台,請問是買塔式伺服器好還是刀片式的好?
雲伺服器都能用來做什麼?
ansiable和saltstack優劣勢,在百台伺服器規模下碰到的坑?

TAG:伺服器 | 文件傳輸 | 網速 | 網路傳輸 |