不得不說在windows下下載自從有了迅雷以後就沒有考慮過什麼是BT還是電驢下載,總之只要有什麼thunder,有magnet,或者是ed2k的統統丟進迅雷,歐,當然還有.torrent的種子,迅雷都可以一站式解決,加上校園網的下載速度不差,一般資源都由5-600K/s,當然你願意還可以租用個會員什麼的,直接把速度拉到2-5MB/s,所以我一直都是這麼下各種小電影的,咳咳,回到正經的。
換到linux以後我也沒有關注過迅雷,因為換到linux以後,就沒有下載過GB級別的文件,比如高清電影什麼的,一般一些軟件都是十幾M的,最近在追的《甲鐵城的卡巴內瑞》一集也就500M,在浏覽器下載掛著上個課就下載好了,而且速度不慢.以致於我一直都是用wget下載,什麼aria2,transmission的都沒有用過,我的Kali裡面就只有個wget.所以之前寫的一篇開源軟件推薦裡面我也忽略了下載工具這方面,因為那時候還沒有需求,然而最近需求來了,我想看一部叫《墊底辣妹》的日影,然而都網上找不到http或者ftp(電影天堂那個要迅雷客戶端的),總之就算我想用浏覽器掛慢慢下都不可以,何況我不想用浏覽器掛著慢慢下載.
其實我要看《墊底辣妹》有幾種選擇,第一,直接到電影院,為票房作出貢獻,然而時間已經過了,何況貌似中國大陸沒有上映?第二,等,等國內各種視頻網站更新這部電影,然後沖個VIP什麼的,直接在線觀看,首先在知道有高清片源流出的時候,我壓根不想等,其次給網站沖VIP,對我而言簡直天方夜譚,所以我只能選擇第三,下載~
我統計了一下我找到的這部片子都有幾種下載方法
1.magnet的磁力鏈接
2..torrent結尾的BT種子
3.ek2k的電驢鏈接
4.迅雷自家的thunder鏈接
非常好,這麼一統計,各種下載協議看得我眼花缭亂,以前用迅雷的時候就沒有管什麼是什麼的鏈接,現在突然冒出這麼多,也不知道哪個好,哪個快,結果是要看片,就得自己折騰。
P.s.順帶提一句,有一點國內還是不錯的,至少一些P2P下載工具還是能光明正大地跑,甚至還有迅雷這麼一家專門的P2SP公司,這在美國等一些版權意識十分強烈的國家是不敢想象的,但是正是因為國內的小水管道,單純http或者是htp下載簡直要命,所以作為補充,P2P甚至是P2SP的方式才顯得那麼需要,我還記得以前不知道有下載工具,比如迅雷的時候,掛著windows的IE等文件下載的感覺,那是十分不好。
下載協議
現在我就來就著上面這四種下載方式稍微報告一下我的調查結果,稍微做個對比:
(首先要明確兩個基本概念,①P2P的核心思想就是沒有服務器的概念,任何一個下載者既是client,又是server;②下載者從別人那裡取文件的時候,稱為下載,而為別人提供文件的時候,稱為上傳)
1.Magnet
磁力鏈接(Magnet URI scheme),是對等網絡中進行信息檢索和下載文檔的電腦程序,和基於“位置”連接的統一資源定位符(URL)不同,磁力連結是基於元數據(metadata)文件內容,屬於統一資源名稱(URN),即磁力連結不基於文檔的IP地址或定位符,而是在分布式數據庫中,通過散列函數值來識別、搜索來下載文檔。
這個標准的草稿出現於2002年,是為了對eDonkey2000的“ed2k:”和Freenet的“freenet:”兩個URI格式進行“廠商與項目中立化”而制定的。同時這個標准也嘗試緊密地跟進IETF官方的URI標准
磁力鏈接最常見的用途是基於文件內容的散列函數值來鏈接到特定文件,生成一個唯一的文件識別符,類似於ISBN。不像常規的識別符,內容散列可以被任意一位持有此文件的人生成,所以並不需要一個中心機構,這使其在文件共享領域經常被用作搜索條件,因任何人都可以分發一個磁力鏈接來確保該鏈接指向的資源就是他想要的,而和得到該資源的方式無關。(雖然技術上講,兩個不同的文件可能具有相同的散列值,但實際上這是極不可能發生的)
另一個磁力鏈接的優勢是開放性和跨平台性:一個磁力鏈接可被運行在幾乎所有平台上的應用程序們使用以下載一個文件。因為磁力鏈接十分簡潔且為純文本格式,所以用戶可以很方便地將其復制到電子郵件或即時消息中,比如種子文件。
P.s.Magnet每次連接的源頭都是不固定的,也就沒法查封源頭。
2.BT
BitTorrent(簡稱BT)是一個文件分發協議,每個下載者在下載的同時不斷向其他下載者上傳已下載的數據,而在FTP,HTTP協議中,每個下載者在下載自己所需文件的同時,各個下載者之間沒有交互。當非常多的用戶同時訪問和下載服務器上的文件時,由於FTP服務器處理能力和帶寬的限制,下載速度會急劇下降,有的用戶可能訪問不了服務器。BT協議與FTP協議不同,特點是下載的人越多,下載速度越快,原因在於每個下載者將已下載的數據提供給其他下載者下載,充分利用了用戶的上載帶寬。通過一定的策略保證上傳速度越快,下載速度也越快。在很短時間內,BitTorrent協議成為一種新的變革技術
.torrent文件本質上是文本文件,包含Tracker信息和文件信息兩部分。Tracker信息主要是BT下載中需要用到的Tracker服務器的地址和針對Tracker服務器的設置。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數次方(由於是虛擬分塊,硬盤上並不產生各個塊文件),並把每個塊的索引信息和Hash驗證碼寫入種子文件(.torrent)中。所以,種子文件(.torrent)就是被下載文件的“索引”。
後來又發展出DHT網絡技術,使得無Tracker下載成為可能,DHT全稱為分布式哈希表(Distributed Hash Table),是一種分布式存儲方法。在不需要服務器的情況下,每個客戶端負責一個小范圍的路由,並負責存儲一小部分數據,從而實現整個DHT網絡的尋址和存儲。使用支持該技術的BT下載軟件,用戶無需連上Tracker就可以下載,因為軟件會在DHT網絡中尋找下載同一文件的其他用戶並與之通訊,開始下載任務。
有些軟件(比如比特精靈)還會自動通過DHT搜索種子資源,構成種子市場。
另外,這裡使用的DHT算法叫Kademlia(在eMule中也有使用,常把它叫做KAD,具體實現協議有所不同),這種技術好處十分明顯,就是大大減輕了Tracker的負擔(甚至不需要)。用戶之間可以更快速建立通訊(特別是與Tracker連接不上的時候)。
3.ed2k
與多數文件共享網絡一樣,它是分布式的;文件基於點對點原理傳輸,而不是由中樞服務器提供。客戶端程序連接到ed2k網絡來共享文件。而ed2k服務器作為一個通訊中心,幫助用戶在ed2k網絡內查找文件。它的客戶端和服務端可以工作於Windows、Mac OS、Linux、UNIX等操作系統。2005年因與美國唱片工業協會的官司敗訴被美國聯邦最高法院判為非法,被判罰向RIAA賠款3000萬美元並且永久停止開發。
由歐洲黑客和愛好者們破解ed2k協議(未經MetaMachine公司授權,並不合法)開發的MLDonkey,電騾eMule等客戶端卻普及開來,當時這些兼容客戶端有:eMule(電騾),MLDonkey,Shareaza,aMule,Hydranode,Lphant,Morpheus,lMule,此外也有很多國內的兼容客戶端紛紛出現,請查看段落“國內的兼容客戶端”。
作為ED2K客戶端,mldonkey的最大特色就是支持同時連接多服務器(emule,amule等都只能連接一個ed2k服務器),大大提高了可用源的數量。
4.迅雷(國內流行)
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值判斷是否為同一個文件,從而形成一個龐大的下載鏈接庫,這樣就在迅雷服務器端進行了資源的整合,當後面的用戶下載同一個文件時,迅雷就會根據用戶具體的網速去一個速度最快的服務器上面下載同一個文件,由於選擇通常是最優化的結果,因此用戶感覺下載速度的確非常快。
總的來說,小型的軟件下載站應該避免浪費流量,避免盜鏈,同時也應該量力而行,如果沒有足夠的流量支持,例如使用幾百元的虛擬主機,就不要提供大量文件下載,否則肯定會被拖垮。不過,大型軟件下載站的策略就可以不同,不一定非要節省流量,因為通常大型下載站都會托管了獨立的服務器,有了一定帶寬的保證,只要不放一些大型文件,通常不會流量超限,那時就不必在乎迅雷的這種P2SP行為了,而可以利用迅雷做一些廣告,如果實在流量太大,可以直接使用上面說的第四條方法,限制下載空間的連接數即可減輕服務器負載
個人理解:迅雷就是結合了P2S,P2P兩者的特點,盡最大極限找下載來源,但是他又不上傳,或者是上傳很少,甚至只是在迅雷用戶圈內上傳,並不反饋到P2P網絡,那麼“盜鏈”和“吸血驢”就這麼來了.
P.s.沒錯,你在中文維基裡面看的內容和上面基本一樣,我只是做了刪減和提煉,特在此作出聲明.
吐槽一句:雖然內容都是維基的,而且中文維基對這三者的介紹都非常全面,可我就沒有看到有把這三種(迅雷是P2SP)P2P下載方式放在一起作出比較的,那麼不比較的話,其實磁力鏈接,BT還有電驢在我看來都很像好不好:-)
實際下載工具
那麼接下來是說說linux下實際的下載工具:
(linux上的下載工具多到讓你頭疼,但其實各個下載軟件的下載協議還是脫不開上面說的幾種P2P協議):
1.Wget
2.BitTorrent(原版)
3.Transmission
4.Uget(cURL+Aria2)
5.KTorrent
6.μTorrent
7.Amule/Emule
8.MLDonkey
9.flashget
9.xware–迅雷替代方案
1.Wget
Wget是一款CLI的下載工具,幾乎所有Unix Like的平台都有它,小巧輕便,和上面列出其他下載工具不同,它並不是基於P2P的方式,目前它支持通過HTTP,HTTPS,以及FTP這三個最常見的TCP/IP協議協議下載,即它的下載方式是P2S的方式.
它最強大的地方是-r(recursive遞歸)這個選項,意思就是可以下載請求URL頁面內引用的所有鏈接,幾乎每個web頁面都會引用URL,所以基本上-r以後下載就會一直進行,但是它的缺點是支持的協議較少,特別是cURL相比,流行的流媒體協議MMS和RTSP沒有得到支持,還有廣泛使用各種的P2P協議也沒有涉及.
結論就是如果只是進行非P2P下載,wget一個足以.
2.BitTorrent(原版)
這款軟件我沒有用過,不過見到一篇介紹挺好的,就抄來了。
首先國內可能很多人不知道BitTorrent這款BT下載軟件,國內知道的比較廣泛的大多數都是比特彗星(BitComet)比特精靈(BitSpirit),以及國內著名滴流氓下載軟件迅雷。當然喜歡PT下載以及BT下載的發燒友估計也知道國外滴一款新興BT、PT軟件μtorrent,國內現在越來越多喜歡下載BT的朋友知道了μtorrent這款軟件很好用,下載速度快、穩定、資源占用非常少(內存占用還不到10MB)下載國外的BT種子用μtorrent速度飛快,迅雷卻完全沒有速度(國外沒人知道中國迅雷,外國種子不認識迅雷)因為以上種種原因國內使用μtorrent的朋友越來越多,但是國內很少有人知道其實μtorrent這款軟件只不過是“美國BitTorrent公司為了旗下的 BitTorrent BT下載軟件(也是全世界第一款BT下載軟件,真正的BT下載軟件始祖)進行新版本、新功能、的測試而收購的一家子公司,換句話說μtorrent只不過是BitTorrent的測試版或者“割閹版”,而且因為utorrent最早就是為了給BitTorrent測試新版本、新功能的軟件。穩定性、BUG各個方面來說都比BitTorrent要差很多
3.Transmission
是一種BitTorrent客戶端,特點是一個跨平台的後端和其上的簡潔的用戶界面,Transmission以MIT許可證和GNU通用公共許可證雙許可證授權,因此是一款自由軟件,支持Magnet.
4.Uget(cURL+Aria2)
其實cURL和Aria2也是單獨的兩款下載工具,Uget對兩者都可以同時集成調用,所以就一起放在這裡說了
cURL
cURL是一個利用URL語法在CLI下工作的文件傳輸工具,1997年首次發行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱cURL為下載工具,cURL還包含了用於程序開發的libcurl。
cURL支持的通信協議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
Aria2
Aria2也是一款CLI下工作的下載工具,支持HTTP/HTTPS, FTP, SFTP, BitTorrent 和 Metalink通信協議.
Uget
GUI工具
(待補充:後面還有對各種下載工具的在國內條件下的評測,以及linux下迅雷實現[xare?],還有一些對linux常用軟件的補充說明[搜狗輸入法?]….)
結束
以上具體P2S,P2P,P2SP下載工具由於時間精力有限,只是做了部分列舉,如果你有其他好的工具的體驗,不妨寫在下面的評論區域~