檔案傳輸方式目前有3種:http、ftp和P2P,其中http也包含輔助方式CDN,但是前兩者不太適合大檔案的傳輸,尤其是檔案的大小都很大的時候。這時硬碟快遞 是一種不錯的選擇,不過在網路發達的今天,如果這些檔案同時被很多人下載機率很大的話,還可以利用P2P的方式來進行,或者P2P+CDN的方式。
關於以上三種方式的優劣勢,做如下說明:
1)Http:比較傳統的檔案分發方式,優點是部署方便,一般會採用IIS、Apache、Nginx、Tomcat等web伺服器,基本上能執行網站的web伺服器都可以用來做檔案的傳輸。
http這種部署需要注意,很多http伺服器對一個連線的超時、檔案大小預設都有些限制的,因為http最初主要是針對網頁、圖片這類小檔案設計的協議,所以一般需要改一些設定。
2)FTP: 類似於Http,也是比較傳統的檔案分發方式,特點跟http類似。基本上優缺點也跟http想似,所以可以二者放一起講他們的優缺點。Ftp最初是希望改進http對大檔案支援不好的領域,但實際上,這幾年隨著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的伺服器,比如採用點量BT核心,搭建自己的伺服器(也可以不用搭建伺服器,直接服務端用cdn,或者http伺服器),然後使用點量BT開發自己的客戶端軟體。這種方式有點有很多:
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指紋校驗防篡改資料,這這安全性非常高。幾乎檔案沒有篡改的可能。
檔案傳輸方式目前有3種:http、ftp和P2P,其中http也包含輔助方式CDN,但是前兩者不太適合大檔案的傳輸,尤其是檔案的大小都很大的時候。這時硬碟快遞 是一種不錯的選擇,不過在網路發達的今天,如果這些檔案同時被很多人下載機率很大的話,還可以利用P2P的方式來進行,或者P2P+CDN的方式。
關於以上三種方式的優劣勢,做如下說明:
1)Http:比較傳統的檔案分發方式,優點是部署方便,一般會採用IIS、Apache、Nginx、Tomcat等web伺服器,基本上能執行網站的web伺服器都可以用來做檔案的傳輸。
http這種部署需要注意,很多http伺服器對一個連線的超時、檔案大小預設都有些限制的,因為http最初主要是針對網頁、圖片這類小檔案設計的協議,所以一般需要改一些設定。
2)FTP: 類似於Http,也是比較傳統的檔案分發方式,特點跟http類似。基本上優缺點也跟http想似,所以可以二者放一起講他們的優缺點。Ftp最初是希望改進http對大檔案支援不好的領域,但實際上,這幾年隨著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的伺服器,比如採用點量BT核心,搭建自己的伺服器(也可以不用搭建伺服器,直接服務端用cdn,或者http伺服器),然後使用點量BT開發自己的客戶端軟體。這種方式有點有很多:
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指紋校驗防篡改資料,這這安全性非常高。幾乎檔案沒有篡改的可能。