什麼是吸血,如何定義吸血行為,如何對抗吸血行為

前言
吸血行為對ed2k網路的危害是很嚴重的,這一點得到了廣泛的認同。但是,我們總是在這個概念上迷惑:什麼是吸血,哪些行為屬於吸血行為?如何對抗吸血行為?
SO,我們來討論一下

1wikipedia對「吸血(leecher)」的定義

In most P2P-networks, leeching can be defined as behavior consisting of downloading more data, over time, than the individual is uploading to other clients, thus draining speed from the network. The term is used in a similar way for shared FTP directories. Mainly, leeching is taking without giving.

摘自http://en.wikipedia.org/wiki/Leecher

通常,吸血驢(吸血騾)的行為被定義成「上傳全是為了下載」而特別訂製的特點都可以叫做吸血行為,它是違反共享精神的。用通俗的話來說,就是「私驢,自私的驢」。

http://zh.wikipedia.org/wiki/吸血驢

eMule/eDonkey 採用的是基於P2P網路的共享原理,擁有排隊機制。這種機制可以保證「分享給我最多的人獲得最優先的下載權」,同時保持資源的長期有效性。但是吸血驢(吸血騾)破壞了這種機制,下載完畢後並不提供給其他人,這種潛在的對P2P共享精神的摒棄,可能將最終導致P2P網路效率下降,直至崩潰

http://zh.wikipedia.org/wiki/吸血驢

個人認為,Taking without giving,和中文定義中的「上傳全是為了下載」,這兩點是一致的。
首先確立一點,吸血行為為什麼是不好的?因為違反共享精神。
在P2P的世界裡,任何一個客戶端能夠下載到數據,都是因為有其他的客戶端上傳了等量的數據。而作為對p2p網路的回饋,接收數據的客戶端應當在其他客戶端需要這些數據的時候將這些數據上傳。這樣才能保證該p2p網路的存續性。換句話說,共享精神是ed2k這個p2p網路生存的根源,一旦被顛覆,那麼ed2k將不復存在。
也正是因此,ed2k有積分系統和回饋模式,依據某客戶端的上傳量來分配其獲得下載的權利。

2什麼是吸血行為

既然確定了吸血行為具有怎樣的特性,那麼可以歸納出一些典型的吸血行為。
wikipedia中文認為:http://zh.wikipedia.org/wiki/吸血驢

吸血驢(吸血騾)通常具備以下行為:
每次啟動時變換自己的UserHash(用戶切細值)和安全認證。(讓其他用戶看起來此用戶是新手)
只上傳自己可以交換到對方下載的數據。(這就是著名的Credit Shaping,相當於用軟體實現「下了就跑」)
沒有自己的Mod String的稱為Ghost Mod,是一種純粹的欺騙行為。(因為它冒充官方版本)
正常工作時不斷變換自己的UserHash(用戶識別碼)、以及假冒不同的IP+Port下同一個文件。
另外,過分的(濫用)社區加速和好友加速也屬於「集體吸血」行為。(因為,社區之外的客戶將受到歧視,無法體現公平性)

另外,個人認為,頻繁向伺服器發送請求(增加ed2k伺服器負擔,影響其他用戶使用),盜用MOD String(這顯然是不正常的),虛假的MOD String(如果是好人,為什麼不亮明身份),盜用用戶昵稱和UserHash(會被emule加入到放行隊列),傳播壞塊(用壞的換好的,騙取上傳),偽造隊列排名(嚴重影響公平)也都屬於吸血行為。
留待補充。
總而言之,個人認為,影響ed2k網路公平性的行為,都屬於吸血行為。

3吸血行為與吸血騾

被認定為吸血騾的原因不只是因為吸血行為的存在,還有其他原因也會使得某mod/客戶端程序被認定為吸血騾。
包括但不限於下面幾項:
1對GPL協議的違反。(GPL協議參見http://zh.wikipedia.org/wiki/GNU通用公共許可證
mod和客戶端程序(的ed2k部分)必須開源,否則是對GPL協議的違反。(此屬於違法行為,這不是本帖討論的重點)

GPL條款規定演繹作品也必須是GPL的。

(出處同上)
另外,不開源的mod和客戶端程序是否存在一些不正常的代碼無法得到判定,因此被視為吸血騾。
2不能主動生成ed2k鏈接
只能被動地接收ED2K鏈接,不能生成一個不在ED2K網路中的文件的ED2K鏈接從而將其分享至ED2K網路之中,稱為消極共享。這雖然並非罪大惡極,但是因為不鼓勵分享,這樣的mod不會得到騾友的認可。而大部分有此特點的mod和客戶端程序往往具備其他吸血特點,因此該條是一個表現(不積極共享),而不是一個判定原則(暫時性看法,留待討論查證)。另外,大部分正常的eD2k網路客戶端都能生成文件的eD2k鏈接。作為eD2k客戶端,卻不能生成eD2k鏈接,一般來說這是不容易想像的。
3包含惡意代碼
這與第一條通常是伴生的。
留待補充

4如何對抗吸血

當前得到普遍認可的是DLP。本類下面的引用全部出自

http://zh.wikipedia.org/wiki/動態反吸血騾保護

DLP全稱Dynamic Leecher Protection(動態反吸血騾保護)。是一個開源的用於eMule的類似插件的東西,主要用來輔助eMule檢測並屏蔽吸血騾(Leecher)。

DLP全稱Dynamic Leecher Protection(動態反吸血騾保護)。DLP最早是由eMule的Mod之一的Xtreme的開發者Xman開發,是一個開源的用於eMule的類似插件的東西,主要用來輔助eMule檢測並屏蔽吸血騾(Leecher)。官方DLP原來由Xman開發並更新,現在主要由Stulle負責更新維護,自V34版本中國人zz_fly亦參與其中。

在官方版本的DLP之外,還有風之痕改寫的DLP+可供選擇。
其他如mod自帶的反吸血(如Argos),本人不甚了解,留待討論補充。

5官方對屏蔽吸血的態度

事實上Emule-Project對於屏蔽吸血騾的態度是嚴守中立,不支持也不反對。
然而事實上,正如wikipedia指出的那樣:

吸血驢(吸血騾)會給eMule網路造成巨大危害,影響廣大eMule使用者的使用體驗,尤其在中國大陸地區,吸血驢(吸血騾)被廣泛使用,嚴重破壞eMule網路的公平性原則。鑒於此,很多中國eMule愛好者通過載入DLP,達到屏蔽部分不良eMule客戶端的目的。

http://zh.wikipedia.org/wiki/動態反吸血騾保護
請注意:「尤其在中國大陸地區,吸血驢(吸血騾)被廣泛使用,嚴重破壞eMule網路的公平性原則。」正在被請求來源。
吸血騾對ed2k網路的危害是得到廣大騾友承認的。而著名的mod大部分都有自己對抗吸血的方式(DLP,Argos==),從側面說明了對抗吸血騾的重要性。
個人認為,如果不屏蔽吸血騾,那麼正常的客戶端就很難下載到數據了,更不用提ED2K的存續。

這是一篇長期討論文章。

關於版權的聲明:因引用了Wikipedia的內容,本篇文章的版權遵循GNU自由文檔許可證

6條評論隱藏

  1. 2010年11月17日 周三 14:54 | 回復

    留爪,回頭轉載走……

  2. #2 viewfinder
    2011年4月5日 周二 22:11 | 回復

    非常好的普及文

  3. #3 sailias
    2012年2月3日 周五 23:52 | 回復

    學了很多,感謝作者

  4. #4 heibailief
    2012年2月13日 周一 21:41 | 回復

    謝謝編輯們的無私奉獻,學了很多

  5. #5 記錄
    2013年1月28日 周一 19:59 | 回復

    請問QQ旋風是不是吸血驢?我分享設定下載後持續上傳時間是:手動停止,請問這樣不算吸血了吧?另外聽說迅雷是只給迅雷用戶上傳,不知道QQ旋風是不是也這樣?請大神指教。

  6. #6 asp502010
    2013年1月28日 周一 20:47 | 回復

    @記錄
    毫無疑問,同樣是吸血驢。
    旋風(還有迅雷)根本就是為了下載而生的,根本沒有完善的共享功能(即使你設置為手動停止)。

    根據我的測試,迅雷基本上還會給正規emule上傳,是屬於「為了下載而上傳」。
    而旋風的emule模塊更垃圾,幾乎不會給正規emule上傳。它的上傳給誰了?可想而知……

    你可以繼續看這篇https://www.emulefans.com/leech-leecher-behavior/

2條Trackback/Pingback顯示

發表評論

您的Email將不會顯示出來。頭像請至Gravatar.com註冊上傳。*號標註項為必填。

*
*
*
標籤用法
字數:0