[轉帖討論]p2p更新方式討論

討論的目的:希望開發P2P更新功能。

目前較為流行的P2P方式共享方式是eMule和BT,下面簡單介紹其原理(文件分塊不包含)。

eMule

使ED2K協議和KAD網絡,其方式是在客戶端存儲服務器列表和共享文件列表。

發布方式:發布一條鏈接,包含文件的獨一無二的信息。

傳播方式:分享鏈接列表。

下載方式:用戶打開客戶端,與服務器相連接,與其他用戶共享的文件列表對比,相同則提供分享。

典型工具:eMulewww.emule-project.net

優點:使用鏈接傳播,非常方便。

BT

使用種子文件torrent來作為分享中介文件中包含服務器地址,發布者信息,以及共享的一個文件或多個文件的信息。

發布方式:發布一包含服務器信息,文件信息的torrent文件。

傳播方式:通過分享torrent文件傳遞。

下載方式:用戶打開torrent文件,連接到服務器,找到一樣連接的用戶分享資源。

典型工具:Bitcometwww.bitcomet.com
優點:速度。
缺點:種子壽命短。
上面兩種分享方式有很大的遺憾,即依賴服務器,且不能動態更新。

儘管eMule等都有使用DHT技術,使得用戶依賴服務器的情況降低,但是由於客戶端能力的限制,使得在不連接服務器的情況只能採取單一的點對點比對方式,所獲得的資源非常有限。

不能動態更新即指共享的文件只能是什麼就是什麼,要共享新的文件,只能提供新的連接或種子文件。種子自己不能更新。

UPnP

UPNP的英文全稱是UniversalPlugandPlay,即通用即插即用協議,是為了實現電腦與智能的電器設備對等網絡連接的體系結構。詳細功能介紹請網絡搜索。winXP中已包含此功能,雖然目前此功能不是很普及,但是有幾大因素會使其在未來逐漸被普及。
1,IPV6:當大部分設備擁有了獨立的IP時,UPNP識別的障礙才會消除。
2,物聯網:物聯網的發展必然帶動UPNP的進步。
3,信息爆炸和信息安全:信息爆炸是指人均信息量可能在未來的十年里進入1-1000TB的時代,這樣就要求用戶或家庭擁有獨立的信息中心或者在網絡上擁有存儲空間。網絡信息化,設備的升級,技術的進步,比如網速的提升都會使個人或家庭的信息中心成倍擴張,而且不再獨立。信息安全是指,未來個人都可能被打上信息標籤,越來越多的信息需要安全技術來支撐,而針對UPNP也會有很大推動作用。

基本信息如上述所寫,細節請參考網絡不再贅述。
未來信息分享方式可能的變化方向:
如前面描述的那樣,未來的網速的提升和存儲空間的擴大或極大的改變信息溝通的方式。
看看過去的信息發布,電報隻言片語,如今的信息是視頻,到未來可能是三維信息及其他諸多環境信息的傳遞,隨着容量和速度的提升,必然會有新的變化。
現在是主要媒體通過網站發布信息,比如視頻網站,一般都是通過視頻服務器提供原始素材,而用戶可以直接訪問或增加P2P共享。未來可能是一個P2P的信息發布方式。即無中心或小網絡的信息發布方式,而不是像現在的,少數中心及大網絡的信息發布方式。
少中心大網絡(傳統信息發布)>>多中心小網絡(wiki阿桑)>>無中心小網絡(未來)

我們的需求:
1、任何『我』可以發布一個種子文件並可以鏈接共享,共享的文件包含現有的N件。於是有很多客戶下載了該種子文件,開始在網絡上共享。某一天,我希望追加一個新的共享文件,而無需再發布新的種子文件,其他已經下載原種子文件的客戶只需要選擇是否更新種子文件,更新種子文件後,可以選擇是否需要下載該文檔。我作為文件共享和種子發布者,可以隨時在任意網絡終端以任意版本的種子為基礎更新。客戶之間也可以相互更新種子文件。
2、比如我是一個圖像觀察者,我發布了一個種子文件,當我在不同的時間更新圖像觀察結果時,只需要更改我的種子文件,比如追加鏈接和文件列表,一旦成功連上客戶即開始更新種子及共享文檔,而無需再發布種子文件。即信息發布者不需要藉助任何中心媒介,只需要通過網絡和客戶即可完成信息的更新和分享。

如何做:
A、方便的共享方式:學習eMule的鏈接方式。
B、可更新的種子文件:
1,將torrent文件中的Dictionary模式改寫,將更新時間和文件一起hash進dictionary中,這樣可以通過時間檢查是否需要更新,也可以通過選擇時間段來更新。
2,torrent地址及新文件共享添加確認加密,保證只有發布者或密碼知情者能夠更新torrent文件,防止torrent文件版本過多。
3,種子文件是否更新的選擇權和簽名確認權由用戶決定,是否更新共享文檔也有用戶決定,或者適當讓用戶保留部分選擇權。比如某一天源共享者在某一網絡終端更新了文件和分享鏈接地址,那麼當用戶更新後,可以適當的選擇其中的部分連接表更新,而不是全部,部分享有刪除(比如刪除長期無效鏈接)或編輯權限,但不能將此編輯共享於他人,只能將沒編輯的共享於他人。可以理解為客戶端可以根據自己的特點部分解讀種子文件,即可以選擇性的選擇鏈接列表,不與那些鏈接共享。
C、保密的信息傳輸:鏈接和種子文件可包含加密信息,即當你打開一個鏈接或種子文件時,可能需要輸入相應的密碼才能解讀下載。更新需要加密,即只有掌握密碼的人才擁有修改的權限。文檔傳輸可加密,即不同用戶傳輸同樣的文件時採取不同的密碼流,雖然在客戶端擁有同樣的源數據,但是針對不同的對象採取不同的加密流,這種方式可以只共享與信任對象用戶群,相互認證後才能正確傳輸文檔。
D、客戶端智能識別同類文件,即如果兩個種子共享了同樣的文檔,客戶端可以智能識別分享。
E、結合DHT和UPNP思想,無限的無中心信息分享。即任何點與點之間可構建分享。
F、用戶保密方式,如果記錄IP地址,那麼固定的IPV6必然泄漏網絡地址,如果不用固定的IP就需要結合唯一的ID,如何保護分享用戶的地址隱私還不知道如何實現。

優點:
1、可以大大延長torrent種子的生命力。
2、方便系列文檔共享,比如某系列文檔需要在未來不斷的更新,那麼就不用每次去找種子文件,只需要一次下載種子文件,以後更新便可。
3、隨時隨地更新,一個種子解決問題。Onetorrent,updateforever.

磁力下載

主要基於磁力協議(MagNetURI協議)【這類下載我用的不多,可能解釋的不對,僅供參考】按照我的理解是,它是eMule的一個升級版,只是將原來eMule用戶的met文件中tracker的信息去掉,只用DHT運作,這樣每個用戶都是無中心的源頭。基於內容的hash方式可能有所不同(好像還沒到這個地步),對於同一文件,使用eMule發布種子鏈接可能不同的人有不同的結果,就好比小李家賣的梨子跟小王家去賣同一個梨子貼了不同的條碼,而基於magnetURL協議即hash給他們生成同樣的條碼。這樣一來,只要兩個客戶端之間有同樣內容的共享文件內容就能實現共享。其實它也是雙刃劍的做法,首先一個幾G的文件,如果中間稍有改動變化成無數版本,短短的hash鏈接能否包含其信息,其次,如果鏈接唯一,則具有文件指向性,不通過tracker跟蹤源頭,但可以根據文件鏈接跟蹤源頭。
發布方式:發布一條磁力鏈接
傳播方式:傳播鏈接
下載方式:用戶存儲相近用戶鏈接,對比共享文件,如有發布鏈接相同的共享文件即共享。
典型工具:µTorrentwww.utorrent.comwww.bittorrent.com

磁力下載還是類似於不使用中心服務器的eMule。仍然不能滿足種子更新的要求。
可以這樣理解我們的目標下載方式:
1,通過eMule鏈接或磁力鏈接來分享torrent種子文件。
2,torrent種子文件同樣不存儲中心服務器信息,只存儲可更新的文檔信息。
3,客戶通過鏈接實現第一步無源分享,即『唯一的鏈接』獲得『原始版本的torrent種子文件』,或者唯一的鏈接可以從其他用戶那裡獲得該用戶保存的torrent版本。
4,下載到torrent文件後,可以更新種子文件,仍然是分布式hash無源的。

這樣一來,共享的文檔不是通過鏈接傳播,所以鏈接不包含任何侵權信息。其次,torrent文件可以更新,任何新用戶或老用戶可以只通過鏈接識別torrent文件。而torrent文件可以更新。既然可以更新,那麼同一個發布共享者可以使用同一個種子文件,也可以保證種子的長期有效,因為大家會長期保存有更新的種子,這樣種子的有效性長和用戶數會很多。

—原文未完-超字符請看鏈接-

引用http://www.sciencenet.cn/m/user_content.aspx?id=393272

1.通過磁力鏈接來分享torrent文件,這個目前已經很普及了。

2.不依賴服務器,用戶群怎麼有效的建立聯繫?目前DHT還不是很給力的,冒失也沒有太好的方法。

3.種子文件可以更新? 安全性會降低,密碼不是個很安全的東西。

具體不多說了。

1.通過磁力鏈接來分享torrent文件,這個目前已經很普及了。

2.不依賴服務器,用戶群怎麼有效的建立聯繫? …
gavin496 發表於 2010-12-15 10:09

1,普及是好事

2,完全不依賴服務器可能不行,但是可以在連接一次服務器分享到用戶列表時,就採用DHT。或者完全局域網內識別同類,接力下去,雖然效率可能會很低。
3,更新未嘗不可,密碼不一定不安全,hash值能反演回去麼?只要制定好更新的規則和算法,安全性可以保證。可以更新有其好處,但肯定也會有風險,用戶可以選擇是否更新種子文件就是了。

本帖最後由 set00off 於 2010-12-16 15:31 編輯

網路沒有所謂的藏得住的秘密,千萬別相信而亂放私人的東西,導致被人看光光.....

DHT有時真的很不給力…

呵呵 樓上說的有理。 私密文件最好打包加密,放到不太顯眼的路徑中。

網路沒有所謂的藏得住的秘密,千萬別相信而亂放私人的東西,導致被人看光光.....

DHT有時真的很不給 …
set00off 發表於 2010-12-16 01:13

同意保密確實不給力,但是保密的不給力就意味著洩密的給力。

想一想如果種子可以更新,只要網路P2P不禁止,即使封禁網站都可以傳播資訊。
比如以最近很熱的wikileaks為例,只要使用者掌握了一個連結,同時種子檔可以更新,那麼不用設立網站和伺服器,只要發佈者本人將資料連接到網路就行,就可以隨時發佈資訊,除非禁止P2P,否則對新聞和消息的封鎖將無法實現,比如一個網站可以發佈一個種子,將其傳播到網站不能訪問的網域,這樣這個網域內的用戶可以通過P2P直接更新網站的資訊,比如新聞或視頻。