嚴 浪,鐘克吟
(肇慶學院 圖書館,廣東 肇慶 526061)
基于文件指紋的搜索和禁用文件控制設(shè)計
嚴 浪,鐘克吟
(肇慶學院 圖書館,廣東 肇慶 526061)
文章研究Maze系統(tǒng)中資源的性質(zhì),介紹根據(jù)文件指紋的搜索方式,利用文件指紋聚合鏡像文件,向用戶提供所需文件的所有可下載源。同時,為控制Maze網(wǎng)絡(luò)中的禁用文件的傳播,提出禁用指紋庫和禁用詞表相結(jié)合的禁用文件識別方法。
P2P;檢索系統(tǒng);文件指紋
在P2P網(wǎng)絡(luò)中,熱門文件的流傳往往非常廣泛。在Maze網(wǎng)絡(luò)中,文件備份數(shù)呈重尾分布,其中熱門類別影視類文件,平均備份數(shù)達到了8.92。因此有效的發(fā)現(xiàn)文件的備份所在位置,有利于充分利用Maze網(wǎng)絡(luò)中資源,均衡對Peer的負載要求,提高下載的可靠性和速度[1]。
筆者采用MD5哈希算法,針對文件內(nèi)容計算文件指紋。通過文件指紋識別文件的備份現(xiàn)象,并提出文件指紋搜索方式。
P2P網(wǎng)絡(luò)的最大亮點是每個Peer自由和平等的參與。因此也不可避免有違規(guī)Peer的存在,他們提供禁用資源的共享。發(fā)現(xiàn)并阻止的這些資源的傳播,以及對違規(guī)Peer進行懲罰,是P2P網(wǎng)絡(luò)的研究重點之一,也是難點之一。集中式架構(gòu)的P2P網(wǎng)絡(luò)的最大優(yōu)點就在于此,它能有效的控制禁用文件的傳播,并對違規(guī)Peer施以懲罰,提高共享禁用資源的代價[2]。
筆者提出結(jié)合禁用指紋庫和禁用詞表,識別禁用文件。再從中央服務(wù)器發(fā)起對Maze網(wǎng)絡(luò)內(nèi)禁用文件的控制。
Maze網(wǎng)絡(luò)中有眾多的文件資源,每個文件資源都可能有許多鏡像,但部分鏡像的命名卻完全沒有聯(lián)系;也有許多文件它們在內(nèi)容上毫無相連,卻有非常相似的命名,混淆了人們對文件的使用[3]。因此,根據(jù)文件名的搜索方式,不能發(fā)現(xiàn)目標文件的所有鏡像地址,不能充分利用網(wǎng)絡(luò)中的文件資源。為了彌補根據(jù)文件名的搜索方式的不足,筆者提出根據(jù)文件指紋的搜索方式,對用戶的目標文件做深入搜索;下面稱之為文件指紋搜索方式。文件指紋搜索方式的流程如下。
1.用戶提交目標資源的文件指紋。筆者使用文件的部分內(nèi)容的MD5值作為文件指紋。我們只使用文件的部分內(nèi)容,是基于下列考慮:在內(nèi)容交換系統(tǒng)中,有大量的文件是影視文件,文件都非常大,計算所有內(nèi)容的MD5值代價非常高;此外,經(jīng)應用,只要合理選擇參與計算的內(nèi)容部分,鏡像的誤判率非常低,因此只選取部分內(nèi)容也足以表示文件內(nèi)容差異。MD5算法是一種廣泛使用的哈希算法,其碰撞率非常低,可以忽略不計,因此筆者采用它來計算文件指紋。
2.檢索服務(wù)器查找所有具有所需文件指紋的資源,將所有在線的目標資源鏡像路徑返回給用戶。生成以文件指紋為主鍵的數(shù)據(jù)庫,將相同文件指紋文件聚合在一塊,可以迅速的返回所有具有所需文件指紋的文件信息。
3.用戶可嘗試從所有可能下載位置多點下載資源。通過文件指紋搜索方式,用戶獲得了所需資源的所有可下載源。利用多點下載,充分利用了Maze網(wǎng)絡(luò)中的資源,提高了下載效率,又平衡了被下載方的負載。
文件指紋搜索方式可以發(fā)現(xiàn)目標資源所有的可下載源,主要用在兩處:第一,是對根據(jù)文件名的搜索方式的補充,對返回結(jié)果中用戶感興趣的資源進行深入搜索;第二,在瀏覽過程中,發(fā)現(xiàn)感興趣的資源更多的可下載源。尤其在第二種情形,用戶瀏覽好友或者鄰居的共享資源列表,尋找感興趣的資源;此時,對于目標資源只有唯一的可下載源,由于網(wǎng)絡(luò)原因,下載的成功率無法保證,而下載速度也不能達到最優(yōu);文件指紋搜索方式正好適應了用戶的需求,給出目標資源的所有可能的下載源,提高下載成功率和下載速度。
文件指紋搜索方式是根據(jù)文件名的搜索方式的重要補充。分析以往的搜索日志,其中有5.57%的搜索屬于文件指紋搜索方式。
筆者設(shè)計了一種禁用文件識別機制——結(jié)合禁用指紋庫和禁用詞表,合作識別禁用文件。
禁用詞表法是一種常用的禁用文件過濾方法,它通過審查文件文件名中是否包含禁用詞來判斷文件是否為禁用文件。禁用詞表法存在嚴重的不足,部分禁用文件能夠輕易逃過審查。因為違規(guī)用戶可隨意的改變文件名,改用一些誘惑性但正常的詞語來對禁用文件進行命名,這樣既逃過了禁用詞表法的審查,又保持了文件的吸引力。
相對于文件名的易變,文件指紋相對穩(wěn)定。雖然也可通過改變文件的內(nèi)容,來改變文件指紋。但這種改變代價相對較高,尤其對于多媒體文件,因此可收集禁用文件的指紋,建立禁用指紋庫,通過審查文件的指紋是否屬于禁用指紋庫來判斷文件是否為禁用文件。
禁用指紋庫杜絕了禁用文件通過改名逃避審查的現(xiàn)象,但它只能識別已確認的禁用文件,不能識別新的禁用文件。而禁用詞表法能夠識別部分新的禁用文件,因此筆者提出結(jié)合禁用指紋庫和禁用詞表,合作識別禁用文件。
這個禁用文件識別機制的關(guān)鍵在于建立禁用指紋庫和禁用詞表。建立和更新禁用指紋庫和禁用詞表的步驟為:(1)初步創(chuàng)建禁用詞表;(2)用已有的禁用指紋庫和禁用詞表過濾每天的被下載文件;(3)考察文件名含有禁用詞,但不具備禁用文件指紋的文件,再次審查它們是否屬于禁用文件,將確認為禁用文件的指紋添加到禁用指紋庫;(4)考察文件名中不包含任何已有禁用詞的禁用文件,審查其文件名中是否有新的禁用詞。第1步只在初創(chuàng)禁用詞表時做,而第2~4步是周期執(zhí)行,通過人工參與和機器學習,不斷更新禁用指紋庫和禁用詞表。下面詳細解釋各個步驟。
1.初步創(chuàng)建禁用詞表。這個步驟是人工收集能識別禁用文件的禁用詞。這個步驟不要求禁用詞表規(guī)模很大,覆蓋所有可能的禁用詞,而是要求收集的禁用詞有識別禁用文件能力,誤判率較低。
2.用已有的禁用指紋庫和禁用詞表過濾每天的被下載文件。這個步驟主要是根據(jù)已有過濾資源篩選禁用文件。其中,禁用文件有三類:第一類文件名中含有禁用詞,同時文件指紋屬于禁用指紋庫;第二類是文件名中含有禁用詞,但文件指紋不屬于禁用指紋庫;第三類是文件指紋屬于禁用指紋庫,但文件名中沒有已有的禁用詞出現(xiàn)。對于第一類文件,不作后續(xù)處理;對于第二類文件,在第3步中進行處理,據(jù)此更新禁用指紋庫;對于第三類文件,在第4步中處理,據(jù)此更新禁用詞表。
3.考察文件名含有禁用詞,但不具備禁用文件指紋的文件,審查它們是否屬于禁用文件,將確認為禁用文件的指紋添加到禁用指紋庫。這個步驟更新禁用指紋庫,將新的禁用文件指紋入庫。這個步驟的關(guān)鍵是審查禁用詞表法判斷的準確性。因為存在用戶在正常文件的文件名中加入禁用詞以吸引下載,這種情況會造成對正常文件的誤判。對過濾的準確性的審查可以是人工審查或者機器審查。
人工審查是最正確的。管理員可下載具有該指紋的文件,通過觀看文件內(nèi)容判斷文件是否屬于禁用文件。不過,這種審查方式,代價太高,需要非常多的人工參與。只能偶爾對一些爭議性高,影響重大的文件,進行如此審查。
機器審查則是收集所有具有候選禁用指紋的文件的文件名,再對這些文件進行禁用詞表法過濾,當判斷為禁用文件的比例超過設(shè)定閾值時才將該指紋加入到禁用指紋庫。這種審查方式方便,可作為日常更新所用的審查方式。
4.考察文件名不包含任何已有禁用詞的禁用文件,看其文件名中是否有新的禁用詞。這個步驟發(fā)現(xiàn)新的禁用詞,更新禁用詞表。首先對其文件名進行切詞;然后對所得每個詞,計算其在禁用文件文件名庫中出現(xiàn)頻率,求得該詞對禁用文件的識別率;再對這些詞,計算其在正常文件文件名庫中出現(xiàn)頻率,求得該詞的誤判率。將綜合識別能力高于設(shè)定閾值的詞添加到禁用詞表中。
綜上所述,設(shè)計過濾庫更新算法,并列于下方:
對于基于P2P的內(nèi)容交換系統(tǒng),因其自由的特性,禁用文件在資源中所占的比例遠高于社會其他傳播渠道中的比例,因此對禁用文件的控制成為P2P網(wǎng)絡(luò)重要的課題[4]。
Maze系統(tǒng)的架構(gòu)是集中式,可以采取中央發(fā)起的方式,對禁用文件進行控制。Maze系統(tǒng)的禁用文件控制機制,分為兩個部分:
1.禁用指紋庫和禁用詞表的更新。這兩項數(shù)據(jù)是禁用文件控制機制的基礎(chǔ),其更新方法如上所述。根據(jù)Maze系統(tǒng)的實際運行,而禁用指紋庫則在不斷的增加,每天約增加62項,禁用指紋庫中已有25 842項禁用文件指紋;禁用詞表現(xiàn)在采用人工修改方式更新。當然,其中仍存在誤判率的問題,在Maze系統(tǒng)中,采取寧枉勿縱的原則,盡可能的消除禁用文件的影響。
2.對禁用文件的控制。對禁用文件的控制分為兩個部分,客戶端和服務(wù)器端。
禁用詞表較穩(wěn)定,規(guī)模較少,且識別文件時的計算量較大,因此將禁用詞表加密后置于客戶端。當用戶共享資源時,用禁用詞表對共享資源進行審查,將禁用文件進行屏蔽,不予提供服務(wù),且對該用戶提出警告或懲罰。
禁用指紋庫在持續(xù)更新,而且?guī)斓囊?guī)模較大,若將其放在客戶端,同步的代價較高,因此將禁用指紋庫放在服務(wù)器端。服務(wù)器端用禁用指紋庫,審查Peer上傳的共享資源列表,將禁用文件踢出服務(wù)范圍,并對禁用Peer進行警告或懲罰。
Maze系統(tǒng)的禁用文件控制機制,通過不斷地更新禁用指紋庫和禁用詞表,能識別新的禁用文件資源,從資源和Peer兩個層面進行禁用文件的控制,減少了禁用文件的傳播,凈化了Maze社區(qū)。
介紹了禁用文件的控制機制,提出采取禁用指紋庫和禁用詞表相結(jié)合的識別機制,以及它們的更新機制,并結(jié)合客戶端和服務(wù)器端,從資源與Peer兩個層面控制禁用文件的傳播和凈化Maze社區(qū)出發(fā)介紹了Maze系統(tǒng)中的禁用文件控制機制。
[1] MOFFAT A,ZOBEL J.Self-indexing inverted files for fast text retrieval[J].Acm Transactions on Information Systems,1996,14:349-379.
[2] XIE Y,O'Hallaron D.Locality in search engine queries and its implications for caching[J].In IEEE Infocom 2002,20:1 238-1 247.
[3] 董科軍,馮家宏,閻保平.一種基于Erasure Code的分布式文件系統(tǒng)模型[J].計算機工程,2005,31(20):93-95.
[4] 蔡晟,王澤兵,馮雁,等.基于Super-peer的對等網(wǎng)絡(luò)研究[J].計算機應用研究,2004,6:258-260.
(責任編輯:禤展圖)
TP311
A
1009-8445(2011)01-0098-03
2010-11-30
廣東肇慶學院科研基金青年資金資助(0714)
嚴 浪(1972-),男,廣東龍川人,肇慶學院圖書館副研究館員。