1. 程式人生 > >淺談HTTP FTP和P2P網路大檔案傳輸的優劣勢

淺談HTTP FTP和P2P網路大檔案傳輸的優劣勢

隨著各種行業和硬體裝置的發展,大檔案越來越多,比如在媒體行業為了保證圖片和視訊的清晰,和以前的相比,都比較大,尤其是出版社等行業。確保檔案能快速的傳輸,現在很多企業還是使用的硬碟郵寄的方式。如果使用網上傳輸的方式,可以實現嗎?  想弄清楚這個問題,我們首先用知道現在網上資訊傳輸常用的方式HTTP FTP和P2P優劣勢。我們一起來看下吧:

  1、  Http傳輸:

  比較傳統的檔案分發方式,優點是部署方便,一般會採用IIS、Apache、Nginx、Tomcat等web伺服器,基本上能執行網站的web伺服器都可以用來做檔案的傳輸。

  http這種部署需要注意,很多http伺服器對一個連線的超時、檔案大小預設都有些限制的,因為http最初主要是針對網頁、圖片這類小檔案設計的協議,所以一般需要改一些設定。

  2、  FTP傳輸

 類似於Http,也是比較傳統的檔案分發方式,特點跟http類似。基本上優缺點也跟http想似,所以可以二者放一起講他們的優缺點。Ftp最初是希望改進http對大檔案支援不好的領域,但實際上,這幾年隨著http的發展,這些弊端也都有辦法規避,ftp和http相似性較大,所以這幾年,ftp已經慢慢基本退出市場了,應用越來越少。

  HTTP和FTP這兩類分發統一的特點都是:

  A)  所有資料都要走伺服器,對伺服器頻寬、效能壓力要求比較高。

  B)  如果使用者量多,一臺伺服器效能不夠時,如果增加多個伺服器,需要通過智慧DNS等排程,但如果有冷門時間段,比如多伺服器很多在空閒時,很難同時利用多個伺服器的效能,

只能隨機給客戶一臺伺服器提供資料。

  C)  如果要自己做客戶端去下載,一般需要自己去實現斷點續傳、多線路(多執行緒)下載增加速度,以及考慮不同環境的最優下載速度、限速處理等

  D)  一般適合檔案分發量不大;或者檔案同時下載的機率比較小,或者希望輕量級解決分發的使用者,不希望使用p2p等更高階方案的輕量級使用者。

  這類客戶,小編比較建議如果自己做下載的客戶端,可以考慮用一些具有斷點續傳、限速、對單地址多執行緒下載、如果有多伺服器地址,可以同時從多個映象伺服器下載等功能的HttpFtp核心,可以發揮這兩類協議的最大潛力。並且幾行程式碼實現一個完整的下載客戶端。

  3、  CDN:

嚴格來說不屬於一個協議,它只是對http這種的一個擴充,簡言之就是:你有一臺http伺服器,但全國人民都去下載可能速度不夠快,cdn給你複製到了全國很多份,讓每個省的人民訪問時,它自動給分配一個距離他最近的一臺http伺服器。上面快取了你伺服器上的資料內容。

  相比普通http伺服器,它解決了不同運營商、不同地區訪問速度慢的問題。但帶來的是成本增加。用這類的客戶,也可以考慮點量HttpFtp核心,因為斷點續傳(比如一個檔案1G,上次下載了500M,下次開機,繼續從500M下載,而不是從頭下載)、限速、多執行緒等還是對這類使用者有需求的。

  4、  P2P分發:自己搭建p2p的伺服器,搭建自己的伺服器(也可以不用搭建伺服器,直接服務端用cdn,或者http伺服器)。這種方式有點有很多:

  A)節省伺服器頻寬:這個是p2p眾所周知的優點,這裡就不多加贅述了。

  B)可以多源下載:這個是人們往往忽略的,經常有人問我說:如果只有一個人下載,此時p2p是不是就沒什麼好處了。其實這個也是不對的。就算只有一個人下載,這個使用者如果用普通http,一般是從單個伺服器下載,如果遇到這個伺服器比較慢,他只能忍受。但如果是p2p的系統,p2p後端可以有多臺伺服器,比如你購買10幾臺美國伺服器,頻寬又便宜,又不限流量,這種模式下,下載是從10幾臺伺服器一起下載,速度還是要快,而且就算一臺伺服器宕機,也一點不影響下載,這個其實也是p2p的一個很大的好處。伺服器運維時,上下線對使用者沒有任何影響。

  C)天然的防盜鏈:p2p協議如果不用標準的BT協議,是完全可以自定義一些私有傳輸協議的。這種協議,使用者幾乎無法去盜鏈你的資源,除非他自己寫一個一樣協議的p2p軟體,所以這方面優勢比http好太多。

  D)使用者下載速度比HTTP快:因為多源下載,所以自然速度就比單伺服器模式速度可以快。

  E)成本低:不同於http模式,p2p的伺服器不一定放優質機房,可以只少量放機房。很多伺服器可以用美國的低價伺服器,1G頻寬一個月就1000多人民幣,這價格秒殺很多國內機房。2008年以前,我還見過有人是租一些民房,放一些普通電腦,用來做p2p加速。特別是找一些頻寬上傳便宜的地區,因為很多民用頻寬在很多地區1年只有幾百塊就能拿到的。

  F)安全和校驗:P2P傳輸可以用私有協議、檔案內建了hash指紋校驗防篡改資料,這這安全性非常高。幾乎檔案沒有篡改的可能。