P2SP

迅雷首創的下載技術

就是下載不再像傳統方式那樣只能依賴伺服器,內容的傳遞可以在網路上的各個終端機器中進行。P2SP除了包含P2P以外,P2SP的“S”是指伺服器。P2SP有效地把原本孤立的伺服器和其鏡像資源以及P2P資源整合到了一起。

概述


p2sp急速補丁下載技術原理圖
p2sp急速補丁下載技術原理圖
P2SP是迅雷首創的一種下載技術,並於2003年在美國申請了專利,也申請了全球專利,具有較高的技術含量。
P2SP技術在下載的穩定性和下載的速度上,都比傳統的P2P或P2S有了非常大的提高。但是有得必有失,無論是P2P還是P2SP型的下載,都對正在下載或者下載后沒有關閉程序的用戶有做種子的要求,BT是強制的,而迅雷則可以通過增大緩衝區、限制上傳速率來限制這一點。
由於做種子時,是有其他用戶不停通過網際網路讀寫你的磁碟,所以會對磁碟有損傷而且會佔用系統資源,導致機器的反應變慢。但這一情況已經在迅雷最新推出的7.9版本有了顯著的改善,不再是從前的“卡”。
如果為了較高下載速度,則可以設置上傳限制,以減少自己電腦的負擔。當然了,做種子光榮,下完就關者可恥。做人要厚道,如果你使用了P2P的資源,那麼也忍痛做一次種子吧。

基本概念


一種用戶下載協議或模式
P2SP:Peer to Server&Peer 點對伺服器和點(用戶對伺服器和用戶)。
此處“點”(Peer)即網路節點或終端,可以理解為用戶計算機。
BitTorrent中的“長效種子”就是P2SP的一個實現。

其他模式


相關的用戶下載模式還有:
P2P:Peer to Peer點對點(對等網路),基於PPP點對點協議,藉由仲裁中介伺服器實現的數據傳輸,尤指用戶下載。我想大多數人不會陌生。
P2S:Peer to Server 點對伺服器(用戶對伺服器)。
QQ旋風是P2SP技術;
BitComet、迅雷是P2SP;
網際快車是P2SP;
而BT則是典型的P2P型下載,因為BT的資源是需要至少有一台電腦作為種子,而一旦你使用了BT下載或者下載后沒有關閉BT則你也是一個種子。

迅雷下載


從原理上講,P2P(Peer to Peer)是基於點對點(對等網路),一端的下載速度和另一端的上傳速度密切相關,由於中國用戶大多使用ADSL上網,ADSL的上傳速度並不快,僅幾十K速度,一些用戶還會人為限制上傳速度,這導致了P2P方式的上傳帶寬資源的缺乏,因此中國用戶會普遍感覺P2P的速度較慢。
P2S(Peer to Server)是基於用戶對伺服器,用戶直接到某個大型的下載網站去下載文件,文件存儲在網站伺服器上,因此速度可以得到保證,通常都會有數百K的速度,但存在的問題是資源分散、不易搜索。
而迅雷使用的P2SP(Peer to Server & Peer)基於用戶對伺服器和用戶機制,不同於P2P,也不同於P2S,P2SP下載方式實際上對P2P技術的延伸,它不但支持P2P技術,同時還通過檢索資料庫把伺服器資源和P2P資源整合到了一起,用戶下載某一個文件的時候,會自動搜索其他資源,選擇合適的資源進行加速,這使得迅雷在下載的穩定性和下載的速度上,比傳統的P2P有了非常大的提高。
這裡面的核心問題就是迅雷的智能資源選擇,用戶使用迅雷下載某個文件的同時,迅雷會自動收集用戶的下載地址,並以MD5值判斷是否為同一個文件,從而形成一個龐大的下載鏈接庫,這樣就在迅雷伺服器端進行了資源的整合,當後面的用戶下載同一個文件時,迅雷就會根據用戶具體的網速去一個速度最快的伺服器上面下載同一個文件,由於選擇通常是最優化的結果,因此用戶感覺下載速度的確非常快。

網站衝突


然而這種下載機制卻對傳統的軟體下載站形成了較大的流量壓力,軟體下載站會發現自己的流量消耗越來越多,但是頁面訪問量卻不見增長,很多流量被大量迅雷用戶默默的消耗了,也就是通常所講的“盜鏈”。
“盜鏈”的定義是:此文件不在自己伺服器上,而通過技術手段,繞過別人放廣告有利益的最終頁,直接在自己的頁面上向最終用戶提供內容。
於是,在2006年6月的某一天,華軍、天空等國內知名下載站點突然發布一則封殺令,宣稱迅雷採取非法盜鏈的手段,消耗其下載伺服器資源,侵害下載站點的合法權益,因此停止提供迅雷軟體的下載服務。這一事件轟動了整個IT業界。
迅雷被封殺事件終究以和解收場,和解協議上白紙黑字寫著是“……實現合作共贏,共同致力於打造一個和諧的產業鏈”,之後迅雷發展速度也越來越快,還推出了基於P2SP上的影視頻道——迅雷看看,實現了較為流暢的視頻點播服務。
2009年初,迅雷聯盟也開始嘗試推送流量給各個軟體下載站,但這種推送流量類似彈窗的流量,其流量的質量並不太高。

軟體對策


普通的軟體下載站對這種“盜鏈”行為較為反感,如果其下載地址所在頁面並沒有被用戶訪問,這些站點不僅沒有得到網頁流量,反而把自己的伺服器資源免費貢獻給用戶,這會導致廣告投資等方面受到經濟損失。但通常使用了很多辦法卻不見成效,例如使用校驗碼方式、FTP變化密碼方式、修改下載路徑方式,但最終的下載地址還是會被迅雷客戶端獲取,無法避免這種“盜鏈”,那麼,軟體下載站如果想要避免被盜鏈的話,應該如何操作呢?我這裡想到了幾個方法來應對P2SP,從理論上講應該可以解決這個問題,供大家分析和探討。
1、修改下載文件的內容
既然P2SP通過MD5等方式來判斷是否是同一個文件,那麼改變文件的MD5數值就可以避免被P2SP軟體下載,如何改變下載文件的MD5呢,只要文件的內容有一點點改變,文件的MD5就會發生變化,因此解決方法也很簡單,例如ZIP格式的下載文件,只要批量將文件里加入一個無用的文件,即可改變文件的大小和MD5數值。不過,批量修改ZIP或RAR壓縮文件需要專門的軟體來執行。
2、修改下載文件路徑
如果下載文件放在同一個目錄下,那麼可以修改這個目錄名,這樣下載文件的下載鏈接URL地址就變化了,形成了一個新地址,如果這個地址的下載文件MD5再不相同,就不會被P2SP軟體判斷為同一個文件,從而避免了這類P2SP的下載。
3、謹慎加入迅雷聯盟
迅雷聯盟是迅雷為與合作下載站分享利益分成,共進共贏而形成的合作聯盟。下載站將下載鏈接修改為支持迅雷方式下載,迅雷即可按下載次數支付一定費用,並且迅雷還通過推送流量的方式增加下載站首頁流量。不過,用戶使用迅雷下載后,該文件就會被迅雷伺服器端記錄,當下載量非常大的時候,會在迅雷搜索排名中列第一,這樣就會帶來直接從迅雷搜索而來的下載量,這些下載都不會訪問到下載站原始頁面。
4、使用單獨的下載空間
使用一個獨立域名或網站放置下載文件,不要和主站放在一起,這樣就可以單獨配置下載網站的設置,限制同時連接的數量和下載帶寬,也是節省流量的好辦法。
總的來說,小型的軟體下載站應該避免浪費流量,避免盜鏈,同時也應該量力而行,如果沒有足夠的流量支持,例如使用幾百元的虛擬主機,就不要提供大量文件下載,否則肯定會被拖垮。不過,大型軟體下載站的策略就可以不同,不一定非要節省流量,因為通常大型下載站都會託管了獨立的伺服器,有了一定帶寬的保證,只要不放一些大型文件,通常不會流量超限,那時就不必在乎迅雷的這種P2SP行為了,而可以利用迅雷做一些廣告,如果實在流量太大,可以直接使用上面說的第四條方法,限制下載空間的連接數即可減輕伺服器負載。