專利名稱:匿名獲取文件的方法和節點的制作方法
技術領域:
本發明涉及互聯網領域,特別涉及ー種匿名獲取文件的方法和節點。
背景技術:
BT(BitTorrent,內容分發協議)是著名的文件共享工具,擁有大量的用戶。BT 的應用主要包括兩個步驟第一,將需要共享的文件進行切分,得到種子文件,并上傳到 Tracker服務器或是網絡上;第二,在Tracker服務器或是網絡上下載種子文件,然后基于種子文件開始對共享文件的下載。目前,當用戶通過BT下載文件吋,首先從Tracker服務器取回節點列表信息,然后向擁有請求信息的節點發起請求,根據BitTorrent協議中規定,節點如果擁有用戶所請求的信息,則開始文件傳遞;如果沒有,則請求失敗。其中,在通信過程中通信雙方都知道對方的身份,即請求或者擁有的內容。在對現有技術進行分析后,發明人發現現有技術至少具有如下缺點在BT系統中,由于通信雙方都知道對方的身份,使得BT并不能提供很好的匿名保護,也就是說當用戶在用BT下載和上傳文件吋,能夠監視局部網絡的攻擊者是不難發現通信雙方的,例如節點B收到節點A的請求,則B可以確定A想要下載什么內容,如果B是ー個攻擊者,那么A 的隱私完全暴露。
發明內容
為了在BT下載過程中保護互聯網用戶的隱私,本發明實施例提供了ー種匿名獲取文件的方法和節點。所述技術方案如下一方面,提供了ー種匿名獲取文件的方法,所述方法包括獲取客戶端下載文件的請求信息;根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。所述將所述文件的信息傳輸給所述客戶端,包括判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,否則返回給所述客戶端請求失敗的消息。所述將所述請求信息轉發給本地的鄰居節點,包括判斷本地的鄰居節點是否有所述文件,如果是則將所述請求信息轉發給所述鄰居 ザル所述將所述請求消息轉發給本地的鄰居節點,之后還包括接收并存儲所述鄰居節點返回的所述文件的信息,所述文件的信息包括所述鄰居節點擁有的鄰居節點的信息。
所述存儲所述鄰居節點返回的所述文件的信息,包括根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。另ー方面,還提供了ー種節點,所述節點包括獲取模塊,用于獲取客戶端下載文件的請求信息;生成模塊,用于根據所述請求信息生成轉發所述請求信息的概率;處理模塊,用于判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。所述處理模塊包括第一判斷単元,用于判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,否則返回給所述客戶端請求失敗的消息。所述處理模塊還包括第二判斷単元,用于判斷本地的鄰居節點是否有所述文件的鄰居節點,如果是則將所述請求信息轉發給所述鄰居節點。所述處理模塊還包括存儲單元,用于將所述請求消息轉發給本地的鄰居節點之后,接收并存儲所述鄰居節點返回的所述文件的信息,所述文件的信息包括所述鄰居節點擁有的鄰居節點的信肩、ο所述存儲単元包括添加子単元,用于根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。本發明實施例提供的技術方案,獲取客戶端下載文件的請求信息;根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。這樣以概率轉發客戶端的請求信息,使得攻擊者并不能確定請求的發起者是誰,目的方又是誰,而只能概率猜測,從而保證了通信雙發的隱私。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發明實施例1提供的ー種匿名獲取文件的方法的流程圖;圖2是本發明實施例2提供的ー種匿名獲取文件的方法的流程圖;圖3是本發明實施例3提供的一種節點的示意圖;圖4是本發明實施例3提供的另ー種節點的示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進ー步地詳細描述。實施例1參見圖1,本實施例中提供了ー種匿名獲取文件的方法,包括101、獲取客戶端下載文件的請求信息;102、根據所述請求信息生成轉發所述請求信息的概率;103、判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。本實施例中,將所述文件的信息傳輸給所述客戶端,包括判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,否則返回給所述客戶端請求失敗的消息。可選地,本實施例中,將所述請求信息轉發給本地的鄰居節點,包括判斷本地的鄰居節點是否有所述文件,如果是則將所述請求信息轉發給所述鄰居 ザル可選地,本實施例中,將所述請求消息轉發給本地的鄰居節點,之后還包括接收并存儲所述鄰居節點返回的所述文件的信息,所述文件的信息包括所述鄰居節點擁有的鄰居節點的信息。優選地,本實施例中所述存儲所述鄰居節點返回的所述文件的信息,包括根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。本實施例的有益效果包括獲取客戶端下載文件的請求信息;根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。這樣以概率轉發客戶端的請求信息,使得攻擊者并不能確定請求的發起者是誰,目的方又是誰,而只能概率猜測,從而保證了通信雙發的隱私。實施例2參見圖2,本實施例提供了ー種匿名獲取文件的方法,包括201、節點接收客戶端發起的下載文件的請求信息。本實施例中,當客戶端向"Tracker服務器請求下載文件吋,Tracker進行響應,選擇部分節點傳輸給客戶端,同時把該節點加入到Swarm節點列表中呈現給客戶端,客戶端從Tracker服務器取回Swarm節點列表后,選擇節點列表中的任ー節點作為請求對象,井向該節點發起下載文件的請求。202、節點收到客戶端發起的請求后,根據所述請求信息生成轉發所述請求消息的概率。本實施例中,節點收到請求信息后,按照本地處理策略,可以在本地處理該請求信息,也可以將該請求信息轉發給其鄰居節點去處理。具體的,節點接收到請求信息后,隨機生成一個轉發該請求消息的概率,根據概率值決定該請求消息的處理方式。其中轉發請求消息的概率可以通過隨機生成器生成,也可以通過其它方式來生成,具體的實現方式現有技術中有很多種,對此本實施例不做具體限定。203、判斷所述概率是否滿足預設的范圍,如果是則執行步驟204;否則執行步驟 205。本實施例中,判斷本地生成的概率是否滿足預設的范圍,包括判斷本地生成的概率是否小于預設的閾值,其中預設的閾值是預先規定好的,可以為0. 3、0. 5或是0. 6對此本實施例不做具體限定,如果預設的閾值為0.6,規定如果生成的概率小于0.6,則在本地節點處理請求消息,不再將請求消息轉發給其它的鄰居節點,如果生成的概率大于0. 6,則將該請求消息轉發給鄰居節點處理,如本地生成的概率為0. 8,大于0. 6,則將該請求消息繼續轉發給其它的鄰居節點進行處理,鄰居節點接收到該請求消息后,進行與本地節點相應的處理流程,即生成轉發請求消息的概率,判斷該請求消息是在本地處理還是轉發給其它鄰居節點處理,對此本實施例不再贅述。本實施例中,判斷本地生成的概率是否滿足預設的范圍,包括判斷本地生成的概率是否大于預設的閾值,如果大于預設的閾值則在本地節點處理該請求消息,如果小于預設閾值則將該請求消息轉發給鄰居節點處理,對此本實施例不做具體限定。204、判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,使所述客戶端在本地下載所述文件;否則返回給所述客戶端請求失敗的消息。本實施例中,本地節點可能是Tracker服務器提供的節點列表中的節點,其中將 Tracker服務器提供的節點列表中的節點稱作節點1,也可能是節點2轉發到的節點,如節點1按照本地處理策略將請求信息轉發給節點2,節點2又將該請求信息轉發給節點3。如果本地節點為節點1,則判斷出需要在本地處理請求消息后,則直接將文件傳輸給客戶端。 如果本地節點是節點3,且節點3根據生成的概率判斷出需要本地處理請求信息,則該節點首先判斷本地是否有客戶端請求下載的文件,如果本地有客戶端請求的文件,則響應客戶端的請求,按請求信息的傳輸路徑將文件的信息返回給客戶端,即將文件沿著節點3、節點 2到節點1的原路徑返回到客戶端,以使客戶端在本地下載所述文件。本實施例中,如果本地節點是節點3,則在節點3返回的文件信息的過程中,途徑的每個節點都會存儲該文件的信息,如節點2在接收到節點3返回的文件信息的時候,將文件信息保存,如果判斷出本地已存儲有該文件信息,則再將該文件信息刪除,如果發現本地沒有存儲有該文件信息,則保留該文件信息。本實施例中,如果本地節點上沒有客戶端需要下載的文件,則返回給客戶端請求失敗的信息,使得客戶端可以在Tracker服務器提供的節點列表中尋找其它的節點下載文件。205、將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。本實施例中,如果生成的概率不滿足預設的范圍,如大于預設的閾值,則將該請求信息轉發給其鄰居節點,該鄰居節點再對該請求消息按照本地處理策略進行處理。其中優選地,將所述請求信息轉發給本地的鄰居節點,包括判斷本地的鄰居節點是否有所述文件的鄰居節點,如果是則將所述請求信息轉發給所述鄰居節點。本實施例中,在將請求信息轉發給鄰居節點之前先判斷鄰居節點是否存儲有客戶端需要請求下載的文件,如果其鄰居節點有客戶端需要下載的文件,則再將該請求信息轉發給該鄰居,這樣能降低客戶端請求失敗的概率。本實施例中,任何一個節點收到請求后,都會進行概率轉發,這樣攻擊者并不能確定請求的發起者是誰,目的方又是誰,而只能概率猜測,從而保證了通信雙發的隱私。206、接收并存儲鄰居節點返回的所述文件的信息。本實施例中,如果本地節點沒有處理請求信息,而是將請求信息轉發給鄰居節點處理,如上述節點3決定響應請求信息,則節點3沿著節點2,節點1的路徑回傳文件的信息,其中文件的信息除了包括客戶端請求下載文件的內容外,還包括該鄰居節點擁有的鄰居節點的信息,節點1接收到節點3返回的文件信息后,保存該信息,并將該鄰居節點擁有的鄰居節點添加為本地的鄰居節點。可選地,本實施例中,節點1可以根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。具體的本實施例中,預設的規則可以是,判斷鄰居節點擁有的某些鄰居節點上是否有相同的文件信息,如果是,則可以將這些節點添加為本地的鄰居節點,或是,判斷鄰居節點擁有的某些鄰居節點上是否有預設數量的文件信息,如超過20個文件的信息,如果是則可以將這樣的節點添加為鄰居節點,并可以進ー步對添加到的鄰居節點進行篩選,將ー些通信質量好,內容豐富的節點保留為鄰居節點,相対的,將ー些內容少的節點節點刪除,對此本實施例不做具體限定,總的原則是以較大的概率使得擁有同一個文件分片的節點聚集在一起;同時要保證擁有不同分片的節點成為自己的鄰居,以能夠保證以很高的概率請求成功。本發明實施例提供的技術方案的有益效果是獲取客戶端下載文件的請求信息; 根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。這樣以概率轉發客戶端的請求信息, 使得攻擊者并不能確定請求的發起者是誰,目的方又是誰,而只能概率猜測,從而保證了通信雙發的隱私。并且在將請求信息轉發給鄰居節點之前先判斷鄰居節點是否有請求文件的信息,如果有則再將請求信息轉發給鄰居節點,這樣能提高客戶端請求成功的概率。且在接收到鄰居節點返回的文件的信息后,存儲該文件信息,將鄰居節點擁有的鄰居節點添加為本地的鄰居節點,這樣進一步保證客戶端請求成功的概率。實施例3參見圖3,本實施例中提供了ー種節點,所述節點包括獲取模塊301、生成模塊 302和處理模塊303。獲取模塊301,用于獲取客戶端下載文件的請求信息;生成模塊302,用于根據所述請求信息生成轉發所述請求信息的概率;處理模塊303,用于判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。參見圖4,本實施例中,處理模塊303包括第一判斷単元303a,用于判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,否則返回給所述客戶端請求失敗的消息。可選地,本實施例中處理模塊303還包括第二判斷単元30北,用于判斷本地的鄰居節點是否有所述文件,如果是則將所述請求信息轉發給所述鄰居節點。可選地,參見圖4,本實施例中,處理模塊303還包括存儲單元303c,用于將所述請求消息轉發給本地的鄰居節點之后,接收并存儲所述鄰居節點返回的所述文件的信息,所述文件的信息包括所述鄰居節點擁有的鄰居節點的
イロ‘ >Ε、。優選地本實施例中,存儲單元303c包括添加子単元,用于根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。本實施例的有益效果包括獲取客戶端下載文件的請求信息;根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。這樣以概率轉發客戶端的請求信息,使得攻擊者并不能確定請求的發起者是誰,目的方又是誰,而只能概率猜測,從而保證了通信雙發的隱私。本實施例提供的節點,具體可以與方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。本發明實施例提供的上述技術方案的全部或部分可以通過程序指令相關的硬件來完成,所述程序可以存儲在可讀取的存儲介質中,該存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種獲取文件的方法,其特征在干,所述方法包括 獲取客戶端下載文件的請求信息;根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端, 否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。
2.根據權利要求1所述的方法,其特征在干,所述將所述文件的信息傳輸給所述客戶端,包括判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,否則返回給所述客戶端請求失敗的消息。
3.根據權利要求1所述的方法,其特征在干,所述將所述請求信息轉發給本地的鄰居節點,包括判斷本地的鄰居節點是否有所述文件,如果是則將所述請求信息轉發給所述鄰居節點。
4.根據權利要求1-3任一項所述的方法,其特征在干,所述將所述請求消息轉發給本地的鄰居節點,之后還包括接收并存儲所述鄰居節點返回的所述文件的信息,所述文件的信息包括所述鄰居節點擁有的鄰居節點的信息。
5.根據權利要求4所述的方法,其特征在干,所述存儲所述鄰居節點返回的所述文件的信息,包括根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。
6.ー種節點,其特征在干,所述節點包括 獲取模塊,用于獲取客戶端下載文件的請求信息;生成模塊,用于根據所述請求信息生成轉發所述請求信息的概率; 處理模塊,用于判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。
7.根據權利要求6所述的節點,其特征在干,所述處理模塊包括第一判斷単元,用于判斷本地是否有所述文件,如果是則將所述文件的信息按所述請求消息的傳輸路徑回傳給所述客戶端,否則返回給所述客戶端請求失敗的消息。
8.根據權利要求6所述的節點,其特征在干,所述處理模塊還包括第二判斷単元,用于判斷本地的鄰居節點是否有所述文件,如果是則將所述請求信息轉發給所述鄰居節點。
9.根據權利要求6-8任ー項所述的節點,其特征在干,所述處理模塊還包括 存儲單元,用于將所述請求消息轉發給本地的鄰居節點之后,接收并存儲所述鄰居節點返回的所述文件的信息,所述文件的信息包括所述鄰居節點擁有的鄰居節點的信息。
10.根據權利要求9所述的節點,其特征在干,所述存儲単元包括添加子単元,用于根據預設的規則對所述鄰居節點擁有的鄰居節點進行篩選,將所述篩選出的鄰居節點添加為本地的鄰居節點。
全文摘要
本發明公開了一種匿名獲取文件的方法和節點,屬于互聯網領域。所述方法包括獲取客戶端下載文件的請求信息;根據所述請求信息生成轉發所述請求信息的概率;判斷所述概率是否滿足預設的范圍,如果是則將所述文件的信息傳輸給所述客戶端,否則將所述請求信息轉發給本地的鄰居節點,使所述客戶端在本地的鄰居節點上下載所述文件。本發明實施例中以概率轉發客戶端的請求,這樣攻擊者并不能確定請求的發起者是誰,目的方又是誰,而只能概率猜測,從而保證了通信雙發的隱私。
文檔編號H04L29/06GK102546634SQ201210006349
公開日2012年7月4日 申請日期2012年1月10日 優先權日2012年1月10日
發明者謝豐, 趙偉, 趙玲玲, 金昕, 陸天波, 陳冬青 申請人:北京郵電大學