對等 (P2P) 世界/所有章節
前言
本書旨在向您解釋對等 (P2P) 技術在當今世界的整體應用,它深入探討了儘可能多的實現,並比較了益處、問題,甚至法律影響以及對社會行為和經濟基礎設施的改變。我們詳細解釋了該技術及其工作原理,並試圖為您提供對未來期望的願景。
版權宣告
作者
以下人員是本書的作者
您可以透過檢查華夏公益教科書 (https://wikibook.tw/) 的歷史記錄來驗證誰對本書做出了貢獻。
對於使用其他作品中的一些內容表示感謝,例如 維基百科、theinfobox:Peer to Peer 和網際網路技術
|
|
本作品根據知識共享 署名-相同方式共享 3.0 未移植 許可證授權。簡而言之:您可以在適當歸屬其來源並僅以相同、類似或相容 的許可證分發其衍生作品的條件下,自由共享和創作該作品的衍生作品。如果您獲得版權持有者的許可,則可以放棄上述任何條件。 |
什麼是 P2P ?


一般來說,對等(或P2P)計算機網路指的是任何沒有固定客戶端和伺服器的網路,而是由許多自主的對等節點組成的網路,這些節點既充當客戶端,也充當網路上其他節點的伺服器。這種網路排列模型與客戶端-伺服器模型形成對比(客戶端-伺服器模型無法擴充套件到今天的需求)。在 P2P 模型中,任何節點都應該能夠啟動或完成任何受支援的事務。對等節點在本地配置、處理速度、網路頻寬和儲存量方面可能有所不同。這是任何 p2p 系統的基本定義。
術語 P2P 在不同的上下文中對不同的人可能意味著不同的東西。例如,雖然該術語已應用於 Usenet 和 IRC 的所有化身,甚至適用於稱為網際網路的 IP 主機網路,但它最常用於限制在 20 世紀 90 年代後期開始開發的對等網路,其特點是根據接收者的請求而不是傳送者的請求傳輸資料。這些早期的網路包括 Gnutella、FastTrack 和現在已不存在的 Napster,它們都提供在以動態和不可靠的方式連線到網路的個人計算機之間進行免費(並且某種程度上是匿名)檔案傳輸的功能,以便共同努力實現共同的目標。
即使那些早期的網路也圍繞著相同的概念或實現工作。在某些網路中,例如 Napster、OpenNap 或 IRC,客戶端-伺服器結構用於某些任務(例如搜尋),而對等結構用於其他任務,即使那樣也不一致。像 Gnutella 或 Freenet 這樣的網路,在所有用途上都使用對等結構,有時被稱為真正對等的網路,即使它們最近的演變現在正在使它們成為一種混合方法,在這種方法中,每個對等節點在功能上並不平等。
當術語對等用於描述 Napster 網路時,它暗示對等協議的性質很重要,但實際上 Napster 的偉大成就是賦予了對等節點權力(即網路的邊緣)。對等協議只是一種實現這一目標的常用方法。
因此,最好的方法是將對等定義為一組嚴格的定義,而是將其擴充套件到技術/社會/文化運動的定義,該運動試圖提供一種去中心化、動態和自我調節的結構(直接與舊的中央控制或伺服器-客戶端模型相反,該模型無法擴充套件到今天的期望),其目標是提供內容和服務。這樣,任何試圖擺脫使用中央伺服器/儲存庫的需求並旨在賦予權力或向一組類似的計算機提供類似的服務/訪問許可權的計算機程式/協議都可以被稱為 P2P 實現,實際上它將使每個人成為創作者/提供者,而不僅僅是消費者。每個 P2P 系統都是自供給的,參與者越多,它就越能滿足其目標。
從計算機科學的角度來看
從技術角度講,真正的點對點應用程式只應實現不識別“伺服器”和“客戶端”概念的對等協議。這種*純粹*的對等應用程式和網路很少見。大多數被稱為點對點的網路和應用程式實際上包含或依賴一些非對等元素,例如 DNS。此外,現實世界中的應用程式通常使用多種協議,並同時或隨著時間的推移充當客戶端、伺服器和對等方。
從計算機科學的角度來看,P2P 為研究創造了新的有趣領域,這些領域不僅是網路元件角色的非近期轉變,而且是由於它帶來的意想不到的好處和資源最佳化,以及網路效率和穩定性。
點對點系統和應用程式引起了計算機科學研究的極大關注;一些著名的研究專案包括 Chord 查詢服務、PAST 儲存實用程式和 CoopNet 內容分發系統(有關這些專案的外部連結,請參見下面)。
同樣重要的是要注意,計算機主要是一種資訊裝置,其主要功能是將資料從一個位置複製到另一個位置,甚至超過執行其他型別的計算。這使得數字複製成為任何計算機正常功能的內在組成部分,不可能實現任何型別的複製保護的通用開放計算目標。數字時代版權的執行不應被視為技術問題,而應被視為社會需要適應的新現實。
分散式系統
分散式系統 正在成為 IT 公司資料中心計算的關鍵元件。這些系統的通用示例是 Google 基礎設施 或任何類似系統。如今,這些系統的大部分發展都集中在如何分析和提高效能。P2P 系統也是分散式系統,並且根據實現情況,它共享分散式系統的特性和問題(錯誤/故障檢測、機器時間對齊等)。
Ganglia
Ganglia 是一種可擴充套件的分散式監控系統,適用於叢集和網格等高效能計算系統。它基於針對叢集聯合體的層次結構設計。它利用了廣泛使用的技術,例如 XML 用於資料表示、XDR 用於緊湊的行動式資料傳輸以及 RRDtool 用於資料儲存和視覺化。它使用精心設計的的資料結構和演算法來實現非常低的每個節點開銷和高併發性。
Ganglia 已移植到廣泛的作業系統和處理器體系結構,目前正在全球數千個叢集中使用。它已被用於連線大學校園和世界各地的叢集,並且可以擴充套件以處理擁有 2000 個節點的叢集。( http://ganglia.info/ )
分散式計算
分散式計算背後的基本前提是在空間上分佈的多臺機器之間分散計算任務,大多數新專案專注於利用“個人”分散式機器的空閒處理能力,即普通家庭使用者的 PC。這種當前趨勢是一個令人興奮的技術領域,它與分散式系統的子集有關(客戶端/伺服器通訊、協議、伺服器設計、資料庫和測試)。
這種舊概念的新實現源於人們認識到,現在我們的家中擁有數量驚人的計算機,這些計算機的使用率遠遠不足,不僅是家用計算機,而且很少有企業能夠全天候使用其計算機。事實上,看似正在執行的計算機可能只使用其處理能力的一小部分。使用文字處理、電子郵件和網頁瀏覽需要很少的 CPU 資源。因此,“新”概念是利用這種未被充分利用的資源(CPU 週期),它可以在成本上遠遠低於幾臺超級計算機,因為這些機器由公眾單獨擁有和操作。
SETI@Home
最著名的 分散式計算 專案之一,由 空間科學實驗室 主持,位於 加州大學伯克利分校,位於 美國。SETI 是 搜尋地外文明計劃 的首字母縮寫。 SETI@home 於 1999 年 5 月 17 日向公眾釋出。
平均而言,它使用了數十萬臺連線到 網際網路 的家用計算機來搜尋地外文明。該程式的全部意義是在您的 CPU 週期空閒時執行,原始專案現在已過時,將被納入 BOIC。
BOINC
BOINC 由加州大學伯克利分校空間科學實驗室的一個團隊開發,由 David Anderson 領導,他也領導著 SETI@home。
Boinc 代表伯克利開放網路計算基礎設施,這是一個非商業性(免費/w:開源軟體),在 LGPL 下發布的,中介軟體 系統,用於 志願者計算,最初是為了支援 SETI@home 專案而開發的,並且仍然託管在( http://boinc.berkeley.edu/ )上,但旨在適用於其他領域的應用,這些領域多種多樣,例如數學、醫學、分子生物學、氣候學和天體物理學。一個用於使用志願者資源進行計算的開源軟體平臺,它擴充套件了原始概念,並允許您將計算能力捐贈給其他科學研究專案,例如
- Climateprediction.net:研究氣候變化。
- Einstein@home:搜尋脈衝星發出的引力訊號。
- LHC@home:改進 CERN LHC 粒子加速器的設計。
- Predictor@home:研究與蛋白質相關的疾病。
- Rosetta@home:幫助研究人員開發人類疾病的治療方法。
- SETI@home:尋找地外生命存在的無線電證據。
- Folding@Home( http://www.stanford.edu/group/pandegroup/folding/ ):瞭解蛋白質摺疊、錯誤摺疊和相關疾病。
- 細胞計算生物醫學研究。(日語;需要非標準客戶端軟體)
- 世界社群網格:推進我們對人類疾病的瞭解。(需要 5.2.1 或更高版本)
作為一個“準超級計算”平臺,BOINC 在全球擁有超過 435,000 臺活動計算機(主機)。BOINC 由 美國國家科學基金會 透過 SCI/0221529、SCI/0438443 和 SCI/0506411 獎項資助。
它也用於商業用途,因為有一些私營公司開始使用該平臺來協助他們自己的研究。該框架受各種作業系統支援:Windows(XP/2K/2003/NT/98/ME)、Unix(GNU/Linux、FreeBSD)和 Mac OS X。
世界社群網格 (WCG)
由 IBM 建立的世界社群網格 ( http://www.worldcommunitygrid.org/ ) 與上述系統類似。14 臺 IBM 伺服器充當 WCG 的“中央指揮部”。當它們收到來自某個組織的研究任務時,它們會仔細檢查任務是否存在安全漏洞,將其解析為資料單元,對其進行加密,將其透過排程程式執行,並將其以三份副本傳送給志願者 PC 軍隊。
要成為志願者,只需下載一個免費的小型軟體代理(類似於螢幕保護程式)。
專案的選擇基於 WCG 技術的潛在益處以及解決人道主義問題的能力,並由一個獨立的外部慈善家、科學家和官員委員會進行選擇。
該軟體是開源的 (LGPL),C/C++ 和 wxWidgets,並且可用於 Windows、Mac 或 Linux。
網格網路
網格最初出現在美國使用超級計算機中,因為科學家和工程師尋求訪問集中在少數幾個地點的稀缺高效能計算資源。
開放科學網格
開放科學網格 ( http://www.opensciencegrid.org/ ) 由 OSG 聯盟構建和運營,它是一個美國網格計算基礎設施,透過大學和國家實驗室的科學研究人員和軟體開發人員、儲存和網路提供商之間的開放合作,支援科學計算。
Globus 聯盟
Globus 聯盟 ( http://www.globus.org/ ) 是一個由組織和個人組成的社群,他們開發“網格”背後的基礎技術,該技術讓人們可以跨企業、機構和地理邊界安全地共享計算能力、資料庫、儀器和其他線上工具,而不會犧牲本地自治。
Globus 聯盟還提供 Globus 工具包,這是一個用於構建健壯、安全、網格系統(超級計算機、叢集和其他高效能系統上的點對點分散式計算)和應用程式的開源軟體工具包。Globus 開發人員社群可以使用一個 Wiki( http://dev.globus.org/wiki/Welcome )。
高通量計算 (HTC)
當一些科學家試圖從他們的計算環境中提取更多每秒浮點運算 (FLOPS) 或每分鐘浮點運算時,另一些人則專注於更大時間尺度(例如,幾個月或幾年)的相同目標,我們將這些環境稱為高效能計算 (HPC) 環境。
HTC 一詞是在 1996 年 7 月美國宇航局戈達德太空飛行中心的一次研討會上創造出來的,用於區分高效能計算 (HPC) 和高吞吐量計算 (HTC)。
HTC 的重點在於處理能力,而不是網路,但系統也可以在網路上建立,因此可以看作是為處理能力最佳化的網格網路。
Condor 專案
Condor 專案的目標 ( http://www.cs.wisc.edu/condor/ ) 是開發、實施、部署和評估支援在大量分散擁有的計算資源上進行高吞吐量計算 (HTC) 的機制和策略。在這樣的計算環境的技術和社會挑戰的指導下,Condor 團隊一直在構建軟體工具,使科學家和工程師能夠提高他們的計算吞吐量。
IBM 網格計算
IBM 以及其他 IT 池中的大魚,花費了一些資源來調查網格計算。他們在網格計算方面的嘗試列在專案門戶頁面上 ( http://www.ibm.com/grid )。所有這些似乎都試圖利用伺服器機器的企業地位為客戶提供網格服務。最活躍的專案是 網格醫療檔案解決方案,這是一個可擴充套件的虛擬儲存解決方案,適用於醫療保健、研究和製藥客戶。
內容分發/託管
分發大型檔案的傳統方法是將它們放在中央伺服器上。伺服器和客戶端可以透過網路使用約定的協議(從 HTTP、FTP 到無限數量的變體)共享內容,當使用 IP 連線時,資料可以透過 TCP 或 UDP 連線或兩者的組合傳送,這一切主要取決於服務、機器、網路和許多安全方面的要求。
關於最佳化速度、可用性和服務一致性的優點,在最優定位方面是眾所周知的。Akamai Technologies 和 Limelight Networks 以及其他類似的解決方案試圖從商業上解決這個問題,甚至 Google 也將資料中心的地理位置分散,以提高其服務的響應速度。這解決了大型內容和服務分發的需求,但不是完全去中心化的控制結構。
P2P 的發展是為了解決一個不同的問題,即中央伺服器無法很好地擴充套件。頻寬、空間和 CPU 構成了一個故障點,很容易導致系統功能終止,就像任何服務的集中化一樣。
會議和論文
P2P 還沒有成為一個成熟的研究領域,甚至不是一個專門的計算機科學領域。P2P 技術涵蓋了太多主題,以至於將所有互動都限制為一個領域本身仍然很困難。因此,許多相關資訊很難找到。
- 會議
對於會議來說,一個提供非商業性和平臺無關的觀點的更新資訊的位置是 GNUnet 專案 在 https://gnunet.org/conferences 提供的列表。
- 論文
從經濟學角度看
為了使 P2P 系統可行,必須在對等體之間平等共享工作,目標應該是平衡資源的消耗和生產,目標是在網路上維護一類參與者,共享相同的責任。大多數 P2P 系統難以激勵使用者進行生產(貢獻),最終會產生金字塔形(或多層、樹狀)方案,因為使用者在系統內互動,使得系統依賴於 網路效應。系統擁有的使用者越多,它就越有吸引力(價值越高),就像任何依賴網路效應的系統一樣,它的成功取決於相容性和一致性問題。
數字革命掀起了一股變化的浪潮,有些變化還沒有完全被理解。在經濟學方面,最重要的是,商業商品生產者充分意識到的是,由於舊作品的積累和永續性不斷增加,價值被稀釋。數字媒體不僅使舊作品更持久,而且更容易獲得和可見,並且積累成本低廉。
即使很少有人維護公共領域的著作,這些著作仍在繼續使消費者從購買新著作的需求中解脫出來。隨之而來的是,這使得我們共同的文化歷史記錄成為來自基本經濟利益產生的黑暗勢力的主要目標。
文化商品生產和分發的普及
P2P 從根本上改變了無形文化商品(智慧財產權)的分發和商業模式的經濟學。由於大多數內容都是虛擬的,只由資訊組成。這些資訊可以是任何型別的非物質物件,這些物件是由思想(文字、多媒體等)構成的。因此,內容也是思想表達的無數方式。它可以包括音樂、電影、書籍或任何一個單一方面的組合。
音樂
數字革命迫使音樂行業以多種方式重塑自己。從推廣到分發透過。
- 廣播
長期以來,廣播一直是該行業管理其產品需求的方式。這不是質量問題,而是產品“可見性”問題,以及從 版稅 中獲得收入的簡便方法。
電晶體和隨身聽的出現應該已經讓該行業意識到即將到來的變化。即使在這裡,簡單的數字化以及將廣播從空中波段轉移到網際網路的可能性,也給該行業帶來了巨大的痛苦,並大大侵蝕了它如何塑造需求。
- 從磁帶到 MP3
另一個攻擊方向來自出售內容的媒體本身。這是從 8 軌磁帶 的出現開始的,最終演變成 緊湊型盒式磁帶,這是對商業模式的又一次革命性變化,對音樂行業來說是革命性的,就像對影片一樣。適應導致了 CD 和混合內容的出現。事實上,似乎所有改變的壓力和動力都是由消費者和行業經濟努力降低生產成本所驅動的,但那些對行業擁有決策權的人仍然對他們自己培養的技術變化視而不見。
在這裡,向數字化的轉變不僅使複製更容易,而且最終使產品完全虛擬化,獨立於其出售的媒體。隨身聽演變成行動式 CD 播放器,最終在固態儲存和行動式播放器接管市場時默默地消亡。
- 網際網路
丹·布林 的 D.O.A.C.T.A(ACTA 的死亡),ACTA 是《反假冒貿易協定》,創作者簡明扼要地解釋了獨立音樂創作者如何看待這種持續呼籲智慧財產權控制政策的呼聲。
對內容中介的需求正在迅速下降。大多數中介除了能夠為內容生產者提供更好的營銷方向和一般的業務訣竅之外,並沒有給產品增加太多價值。
唱片公司可以提供更好製作設施的時代已經過去,因為製作音訊作品的價格現在對所有人來說都是可以接受的,即使是實體形式也是如此。事實上,中介變得過於昂貴,以至於無法提供他們仍然可以提供的額外福利。它們在生產者和消費者之間製造了不必要的障礙。
在當今相互關聯的世界中,分發渠道非常多樣化,因此為數字分發(實體或虛擬)建立人工控制方案只會降低消費者的滿意度,而不會增加產品價值,只會增加授權分銷商的成本。
如果客戶遇到帶有 DRM 的產品,那麼如果未經授權的副本被公開提供,它將建立一個沒有限制的競爭產品,從而建立一個價格更低、質量更好的產品。事實上,使用 DRM 創造了差異化,並促進了平行市場的產生(如果可以這樣稱呼它,因為大多數產品都是免費的,但多種 DRM 方案會以同樣的方式分割市場),這是由消費者希望透過主要產品提供的產品或簡單地提供更多選擇而無法滿足的需求所致。
如今,廣播、電視和新聞媒體作為一種宣傳工具,其效力正在逐漸被網際網路允許的互動媒體所超越,並且可以被利用作為直接的分發渠道。越來越多的藝術家開始意識到控制其作品版權和負責分發其作品的優勢,這也提升了與消費者的溝通水平。
這一點在音樂行業中已經變得非常明顯,主要是因為該媒介一直非常不穩定,消費者擁有大量使用內容的方式,減少內容的流通自由一直都被嘗試過但最終都失敗了,影片領域也正在經歷同樣的情況,隨著時間的推移,連書籍也將不得不面對這種新現實,就像現在印刷媒體所面臨的情況一樣。隨著內容媒介變得無處不在、廉價且為消費者所接受,製作方將不得不適應。
影片
- 電影
- 電視
最近,一些電視網路正在重新思考其受眾策略,這源於 DVD 影集的接受程度和興趣程度,以及一些改善分發的線上嘗試。由於現在任何人都可以輕鬆地非法下載他們喜歡的節目,類似於音樂錄製行業中隨著替代交付技術的興起而出現的分發渠道碎片化的現象,如果電視行業未能適應並滿足受眾對快速輕鬆獲取新內容的期望,將會產生類似的結果。
ISP
多年來,ISP 一直在塑造/限制 P2P 流量,特別是更受歡迎的網路,導致了 ISP 與 P2P 開發者之間持續的貓捉老鼠遊戲。在美國,網路中立性的討論,以及最近有關 ISP 針對 P2P 流量採取行動的證據,已將此事變成了一個政治問題。
2007 年 11 月,Azureus(一種 BitTorrent 應用程式)的建立者 Vuze 向 FCC 提出請願,導致 FCC 於 2007 年 12 月舉行了聽證會。其中一個提出的問題是有關 BitTorrent 限速的資料量。這導致 Vuze 的總法律顧問 Jay Monahan 發表宣告稱:“我們建立了一個簡單的軟體“外掛”,它與您的 Vuze 應用程式一起工作,以收集有關您網際網路流量可能受到干擾的資訊。”
這個 外掛 一直在收集更多有關 ISP 行為的硬資料,導致一個不斷增長的干擾 P2P 協議的 ISP 列表在 Azureus WIKI 上維護(http://www.azureuswiki.com/index.php/Bad_ISPs)。
從社會學的角度
從人到人或使用者到使用者,一個新世界正在誕生,每個人都是製作方和消費者。資訊將是免費的,因為分發成本將繼續下降,而任何人都可以參與創作。
這在道德上是否錯誤?
如前所述,沒有共同的立場來回答這個問題,觀點差異很大,甚至國家之間在解釋或合法性方面也存在差異,即限制/實施智慧財產權。
- 對於每個動作,都會有反應
如今,有證據表明,存在著一場反對普遍被視為版權對公共物品的腐敗的社會運動,即法律上的少數群體試圖對大多數規模龐大、跨國企業(絕大多數甚至不是這些商品的直接製造者)的經濟利益進行擴充套件和縮減自由權利。在本例中,虛擬商品主要是數字商品,其複製成本接近於 0,且不受時間或使用的影響。
DRM(數字版權管理)
當我們談論 DRM 時,需要記住,正在被“管理”的權利與在非數字媒體上獲得保護的簡單智慧財產權截然不同。由於允許的控制程度可能非常高,對於尊重 DRM 的人來說,有時從消費者手中剝奪的權利僅僅是過去媒體中存在的自由,例如借閱的自由。它已經發展到購買商品的概念正在緩慢轉變為租賃的地步,以至於您最終並不擁有或完全控制您所支付的商品。
一個更加統一的無 DRM 檔案標記,還可以教育下載者瞭解 DRM,這是一種強大的方式,可以增加無 DRM 的價值。在亞馬遜等地方尋找電子書的人通常難以分辨哪些電子書有 DRM,哪些沒有,因為亞馬遜不會宣傳該資訊。這個標籤是朝著解決這個問題邁出的一步,使反對 DRM 的人可以輕鬆找到志同道合的藝術家、作者和出版商來支援。
2005 年末,基於市場的理由促使索尼 BMG 在數百萬張 CD 上部署了 DRM 系統,這些系統威脅了其客戶計算機的安全,並更廣泛地損害了資訊基礎設施的完整性。這被稱為索尼 BMG 根目錄工具包醜聞(有關詳細資訊,請參見論文 Mulligan, Deirdre and Perzanowski, Aaron K., "The Magnificence of the Disaster: Reconstructing the Sony BMG Rootkit)。
2007 年 2 月,史蒂夫·喬布斯寫了一封公開信,談論 DRM,因為它正在影響蘋果在 iTunes/iPod 商店的業務(http://www.apple.com/hotnews/thoughtsonmusic/)。
在 RIAA 的大衛·休斯於 2007 年在美國亞利桑那州立大學的一次演講中,RIAA 技術高階副總裁大衛·休斯將蘋果的“精神領袖”史蒂夫·喬布斯稱為“偽君子”,因為他對 iTunes 上的 DRM 的態度。“儘管史蒂夫一直在敦促音樂公司放棄 DRM,但他卻不願意透過 iTunes 銷售其皮克斯電影,而沒有 DRM,也不願意銷售沒有 CSS 加密的 DVD。”
對歷史記錄的危險
P2P 聯合
這是一個現已解散的組織,由六個最大的 P2P 群體(eDonkey、Grokster、Morpheus、Blubster、Limewire 和 BearShare 背後的組織)組成,亞當·艾斯格勞擔任執行董事。該組織成立於 2003 年 7 月中旬,旨在為 P2P 在美國國會和世界智慧財產權組織(WIPO)遊說提供途徑,WIPO 是管理智慧財產權條約的聯合國組織,因為檔案共享行業(作為一個行業)在華盛頓或媒體中沒有可識別的名稱和麵孔。
此舉失敗,自那以後,該組織的大多數成員都輸掉了訴訟,或達成和解並停止運營。
點對點工作組
點對點工作組(P2Pwg)。
一篇關於工作組建立問題的好文章可在 (www.openp2p.com) 上獲得,由蒂姆·奧萊利於 2000 年 10 月 13 日撰寫,文章地址為(http://www.openp2p.com/pub/a/p2p/2000/10/13/working_grp.html)。
非技術領域的 P2P
還有一些運動試圖建立如何在非技術領域(如政治、經濟、生態等)應用 P2P 的概念。
其中一個嘗試是點對點替代基金會(http://p2pfoundation.net),它作為這些開放/免費、參與式/點對點和公共資源導向的倡議的交換中心,旨在成為一個多元化的網路,以記錄、研究和推廣點對點替代方案。
從法律的角度
這些網路上最常共享的檔案是流行音樂的 MP3 檔案和 DivX 電影檔案。這導致許多觀察者,包括大多數媒體公司和一些點對點倡導者,得出結論,這些網路對已建立的媒體公司的商業模式構成嚴重威脅。因此,點對點網路成為 RIAA 和 MPAA 等行業貿易組織的目標,被視為潛在威脅。Napster 服務被 RIAA 的訴訟關閉;RIAA 和 MPAA 兩家組織都花費大量資金試圖遊說立法者實施法律限制。迄今為止(截至 2003 年 1 月),這些努力最極端的表現是加州眾議員伯曼提出的一項法案,該法案將賦予版權所有者合法權利,可以侵入被認為非法分發受版權保護材料的計算機系統,並破壞點對點網路的運作。該法案於 2002 年在委員會中被否決,但伯曼眾議員表示將在 2003 年的會議期間重新提出該法案。
隨著媒體公司的攻擊範圍擴大,這些網路似乎以很快的速度適應,在技術上變得更加難以拆除。這導致這些系統的使用者成為目標。有些人預測,開放網路可能會讓位於封閉的、加密的網路,在這些網路中,請求方不知道共享方的身份。另一個免受媒體公司侵害的趨勢似乎是無線自組織網路,在這些網路中,每個裝置都以真正的點對點方式連線到其附近的裝置。
雖然歷史上 P2P 檔案共享一直被用來非法分發受版權保護的材料(如音樂、電影和軟體),但未來的 P2P 技術肯定會發展,並被用來改善材料的合法分發。
正如現在顯而易見的那樣,P2P 技術給內容所有者、分發渠道控制和使用者(消費者)權利帶來的問題是巨大的,該技術正在打破控制生產者和消費者之間關係的標準意識形態,一些新的模式已被提出(例如,參見“P2P 問題解決方案” - http://groups.sims.berkeley.edu/pam-p2p/)。
2007 年,一些最富裕的國家(美國、歐盟委員會、日本、瑞士、澳大利亞、紐西蘭、韓國、加拿大和墨西哥)開始秘密談判,以達成一項條約,建立一項新的全球智慧財產權保護標準,即《反假冒貿易協定》(ACTA),該協定最初計劃在 2008 年 7 月的第 34 屆八國集團首腦會議上透過,現在希望能在 2010 年達成協議。
有人認為,該條約的主要目的是為服務提供商提供安全港,以便他們不會猶豫向有關侵權者提供資訊;例如,這可以用來在確認侵權者身份後迅速識別和阻止侵權者。
同樣,該條約還規定將版權侵權行為刑事化,賦予執法部門進行刑事調查、逮捕和追究可能侵犯版權的嫌疑人的刑事指控或起訴的權力。
更令人擔憂的是,作為一項國際條約,它允許這些條款(通常透過公開立法管理,並受司法監督)透過簽署國行政機構成員之間的閉門談判推行,一旦得到批准,便可利用貿易激勵措施等手段說服其他國家在沒有太多談判餘地的情況下接受其條款。
這違法嗎?
P2P 本身並不是什麼新鮮事。我們可以說,FTP 傳輸或任何一對一的傳輸都是 P2P,例如 IRC 使用者向另一個使用者傳送 DCC 檔案,甚至電子郵件,唯一可能違法的是對特定工具的使用方式。
P2P 的合法用途包括分發開放或公開內容,例如電影、軟體分發(Linux、更新),甚至 維基百科 DVD 出現在 P2P 網路上。它還可以用來繞過審查制度,例如,邁克爾·摩爾的電影“西科”透過 P2P 洩露,或者用作宣傳機器來推廣產品和理念,甚至可以用作市場分析師工具。
但是,未經許可交易受版權保護的資訊在大多數國家都是非法的。您可以自由分發您最喜歡的 Linux 發行版、您自己拍攝的影片或圖片、您已獲得許可線上釋出的當地樂隊的 MP3 檔案,也許甚至可以複製開源軟體或書籍。合法性的觀點主要取決於文化和道德基礎,在全球互聯的世界中,沒有可以避免跨越的固定界限,有一點是肯定的,大多數人不會製作受限制的內容,大多數人認為他們的創作是獻給全球社群的,因此從數學上看,少數人受到對一般思想、概念和文化的自由流動使用和限制的保護。
正如我們將看到的,P2P 不僅關乎檔案共享,更廣泛地說,關乎內容/服務的傳播。

分享你無權分享的內容不算偷竊。在世界上任何地方它從未被視為偷竊。任何說這是偷竊的人都是錯的。分享你不擁有(或沒有分發權)的內容構成版權侵犯。複製數字商品不會降低原始商品的價值,也不會意味著從所有者那裡減去同等價值的商品。另一方面,在沒有許可的情況下將該數字商品提供給他人可能會導致該商品的知名度增加,從而產生免費廣告和有關該商品的討論,這通常會導致對該商品的需求增加,這一點已在數字書籍、音樂和影片釋出的測試中得到驗證。
使用“盜版”一詞來描述版權侵犯是一種比喻式啟發法,是代表版權所有者或擁有可商業化文化商品版權的大公司的遊說集團為了誤導公眾和立法者而採取的一種公關手段。這會導致直接損害社會和文化的做法(參見 索尼·博諾版權期限延長法案或米老鼠保護法案)。
我們現在習慣聽到的法律戰主要圍繞著控制,其次是權利保護。對分發方式的控制(誰以何種方式獲得什麼)導致了人為的稀缺。這與金錢有關,因為由於格式以及時間和空間上的限制,控制和限制訪問許可權會帶來附加價值。

內容和索引器
需要區分的另一個區別是內容分發(尤其是違反版權的內容分發)和對該內容的索引。索引的方式和目標似乎很重要,如果僅僅是因為版權所有者更願意起訴那些能夠為侵犯其權利付費的服務。但是,索引可能根本不構成違法行為,因為在某些司法管轄區,問題似乎在於它在多大程度上促進這種侵犯,以及它本身是否構成違法行為,這一點可能非常難以證明。無論如何,到 2015 年,大多數公開的 BitTorrent 跟蹤器例如會公開遵守 DMCA 的要求,並實施下架程式,即使他們經常抱怨這些要求有時過於寬泛,甚至涵蓋了申請者沒有權利的作品。
世界智慧財產權組織 (WIPO)
世界智慧財產權組織 是聯合國的一個專門機構。WIPO 成立於 1967 年,其宗旨是“鼓勵創造性活動,並在全世界促進智慧財產權保護”。建立世界智慧財產權組織的公約於 1967 年 7 月 14 日在斯德哥爾摩簽署。

2007 年 8 月,音樂產業在歐洲遭到拒絕,要求識別檔案共享者,德國奧芬堡的一家法院拒絕命令 ISP 在音樂產業要求其這樣做時識別訂閱者,音樂產業懷疑特定賬戶被用於侵犯版權的檔案共享,拒絕的依據是法院認為,命令 ISP 交出詳細資訊將是“不成比例的”,因為音樂產業代表沒有充分解釋訂閱者的行為將構成“與犯罪相關的損害”,這可能是請求訪問該資料的依據。
這並不是德國的孤立事件,因為同樣是在 2007 年,策勒首席檢察官辦公室以沒有顯示重大損害為理由拒絕了資料請求,並且遵循了歐洲法院 (ECJ) 檢察官總長朱利安·科科特兩週前釋出的建議,支援這一立場,因為它指出,法律限制向刑事案件提交識別資料的國家符合歐盟指令。該建議是針對西班牙的一起案件,其中一個版權持有人團體要求從 ISP 電信公司獲取訂閱者詳細資訊。ECJ 沒有義務遵循檢察官總長的建議,但實際上在超過四分之三的案件中都照做了。
在大多數歐洲國家,只有在商業規模上進行的版權侵犯才構成刑事犯罪。這種區別很重要,因為公共資金沒有用於調查和起訴對經濟影響有限的個人和最常見的私人版權侵犯行為。
2007年6月12日,法國唱片製作者協會(SPPF - http://www.sppf.com/ ),一個代表法國獨立音訊創作的合法權益併為其收取版權費用的實體,公開宣佈,他們已在巴黎初級法院提起民事訴訟,要求法院命令終止Morpheus(由Streamcast釋出)、Azureus的傳播和功能,並要求賠償經濟損失。2007年9月18日,對Shareaza採取了類似的行動,2007年12月20日,SPPF宣佈對Limewire採取了新的行動。所有這些法律行動似乎都是基於對國家版權法的修正,該修正規定,可以對未採取措施阻止使用者訪問非法內容的軟體創作者/釋出者採取民事訴訟。
反版權盜版聯合會 (FACT)
反版權盜版聯合會(FACT)是一個英國的行業組織,旨在代表其在電影和廣播業務中的成員在版權和商標問題上的利益。成立於1983年,FACT與執法機構合作解決版權侵權問題。
FACT製作了許多廣告,這些廣告出現在英國發行的影片和 DVD 的開頭,以及電影院放映電影前的預告片。雖然FACT與美國電影協會 (MPAA)的功能相同,但FACT透過將大部分行動集中在打擊涉及版權侵權的嚴重和有組織的犯罪,避免了公眾的強烈反對。
在一個有趣的跨境相互支援的示範中,2008年,FACT幫助 MPAA 對流媒體連結網站 SurfTheChannel 進行了釣魚行動。MPAA 不僅參與了質詢,帶來了自己的調查人員,還被允許檢查被捕獲的裝置,並設法找到了一名在美國為該網站工作的程式設計師,以在法律訴訟中作證。這名程式設計師沒有在美國受到起訴,但他同意向 MPAA 支付他在 SurfTheChannel 工作的收入(詳細資訊請參閱MPAA 代理商揭露據稱的電影盜版者)。
2009年7月,在西班牙巴塞羅那,法官勞爾·N·加西亞·奧雷胡多宣佈:“P2P 網路,僅僅是在網際網路使用者之間傳輸資料,原則上不會侵犯智慧財產權法保護的任何權利”,在駁回西班牙作家和出版商協會(SGAE)關閉 eD2K 連結網站 elrincondejesus.com 的法律訴訟時如此表示。
2009年8月,葡萄牙文化活動總督察局(IGAC)向葡萄牙最大的 ISP(葡萄牙電信,PT)傳送了一份通知,要求其刪除託管指向從外部頁面免費下載未經授權的版權材料的連結的頁面。這份通知是在網際網路反盜版公民運動(Movimento Cívico Antipirataria na Internet,MAPINET)報告了這一情況後發出的,該協會最突出的成員是葡萄牙視聽貿易協會(Associação de Comércio Audiovisual de Portugal,ACAPOR)、葡萄牙唱片協會(Associação Fonográfica Portuguesa,AFP)、權利管理和分配協會(Associação para a Gestão e Distribuição de Direitos,AUDIOGEST)、影片編輯聯合會(Federação de Editores de Videogramas,FEVIP)、藝術家權利管理合作社(Cooperativa de Gestão dos Direitos dos Artistas,GDA)、作者權利管理協會(Associação para a Gestão de Direitos de Autor,GEDIPE,屬於AGICOA 聯盟)、葡萄牙作家協會(Sociedade Portuguesa de Autores,SPA)以及一些其他製作人和編輯以及一些翻譯人員。由於葡萄牙電信控制的伺服器上沒有託管任何真正的非法內容,因此連結似乎沒有違反使用者在已識別的部落格門戶服務中的使用條款,到目前為止還沒有采取任何行動。一份以葡萄牙語寫成的文章中列出了 28 個違規頁面的列表。
挪威的個人資料法 (PDA) 要求該國的所有 ISP 刪除其客戶超過三週的所有 IP 地址日誌,因為這些日誌被視為個人資訊。這是個人資料保護法律向前邁出的一大步,但也將使“盜版獵手”的工作更加困難。Simonsen 律師事務所就是一個例子,該事務所以律師 Espen Tøndel(處理此類事務的領軍人物)而聞名,並且自 2006 年(現已終止)以來,該事務所獲得了挪威資料保護辦公室的臨時許可,可以監控可疑的 IP 地址,無需法律監管。
美國
根據美國法律,“Betamax 判決” (索尼公司訴環球影業公司案) 認為,如果可以對“技術”進行大量的非侵權使用,那麼複製“技術”本身並不違法。這一判決早於網際網路的廣泛使用,適用於大多數資料網路,包括點對點網路,因為可以合法地分發一些檔案。這些非侵權用途包括髮送開源軟體、知識共享作品以及公有領域作品。其他司法管轄區往往以類似的方式看待這種情況。
美國也是世界智慧財產權組織條約的簽署國,這些條約部分促成了《數字千年版權法案》(DMCA) 的建立和透過。
如美國版權法所述,必須牢記關於合理使用、許可、版權濫用和訴訟時效的規定。
米高梅訴格洛克斯特案
美國唱片業協會 (RIAA)
|
一旦線上音樂檔案共享變得流行,RIAA 和唱片公司就採取了強硬的立場。他們在 2001 年取得了早期勝利,關閉了著名的音樂共享服務 Napster。 該網站是一個容易的目標,因為 Napster 物理上維護了儲存非法音樂檔案的計算機伺服器,這些檔案通常以高保真、壓縮、便於下載的 MP3 格式儲存。[在 P2P 網路中,檔案儲存在各個使用者計算機上;特殊的軟體可以讓消費者“看到”這些檔案並將它們下載到自己的硬碟驅動器上。] |
美國唱片業協會 (RIAA)(http://www.riaa.com/)是代表美國唱片業的行業協會。RIAA 的資金來自四大音樂集團 EMI、華納、索尼 BMG 和環球,以及數百個小型獨立唱片公司。
美國電影協會 (MPAA)
MPAA 是一個美國貿易協會,代表六家最大的好萊塢工作室。它成立於 1922 年,名為美國電影製作人和發行商協會 (MPPDA)。它的重點是促進其成員的商業利益,並管理 MPAA 電影分級制度。
在 20 世紀 80 年代初,該協會以版權為由反對錄影機 (VCR)。在 1982 年的一次國會聽證會上,瓦倫蒂譴責了“這臺機器的野蠻和破壞”並將它對電影業和美國公眾的影響比作波士頓扼殺狂。
MPAA 充當遊說團體,為更嚴格的版權保護、保護延長和制裁立法而努力,並積極追查版權侵權行為,包括透過法律和技術破壞性方式打擊透過點對點檔案共享網路共享受版權保護的作品的行為。
MPAA 推出了各種宣傳活動,旨在提高公眾對版權侵權的意識,包括誰製作電影?;你可以點選,但你無法隱藏;以及你不會偷車,這是一則 2004 年的廣告,出現在許多DVD的節目內容之前。
MPAA 的英國對應機構是反版權盜版聯合會 (FACT)。
加拿大
加拿大對空白錄音介質徵收稅款,該稅款於 1998 年 3 月 19 日透過新的聯邦版權法實施。加拿大引入了該稅款來處理私人複製錄音的行為,其他擁有類似版權制度的國家包括大多數 G7 國家和歐盟成員國。有關該稅款的詳細資訊可以在加拿大空白錄音介質版權稅款常見問題解答中找到 ( http://neil.eton.ca/copylevy.shtml )。
由於與鄰國接壤並與之緊密聯絡,加拿大曆來不太傾向於為公司利益服務,其社會政策與美洲大陸其他國家形成鮮明對比。現實情況是,加拿大一直受到其最強大的鄰國美國的高度影響甚至施壓(經濟和政治),被迫遵從其法律、社會和經濟演變。近年來(2007 年 11 月),加拿大政府試圖推動透過一項類似 DMCA 的版權法,以遵守該國 1997 年簽署的 WIPO 條約,類似於美國的做法,這引發了公眾對該法案的強烈反對,並可能導致其修改。這次嘗試的可見性要歸功於渥太華大學法學教授邁克爾·蓋斯特博士 ( Michael Geist ) 的努力,他被認為是版權和網際網路方面的專家,擔心該法案會複製美國數字千年版權法中最糟糕的方面。
暗網與明網
由於拒絕根據公眾需求和意願進行立法。透過延長版權期限(美國、英國)並積極推動其他國家頒佈類似 DMCA 的法律,創造了一種單一文化,其中文化產品實際上形成了壟斷,產生了某種文化帝國主義。
這種現實促使人們將支援從透明的分發系統(明網)轉向更封閉的系統(暗網),而這些系統將越來越依賴於社交關係才能進入,就像禁酒令期間出現的秘密酒吧一樣,再次針對人民立法將被證明是一場失敗。
只有在圍繞無所有權媒體/系統構建或像舊的集中式系統一樣受到高度控制、擁有媒體/系統的條件下,用於內容分發的 P2P 明網才能實現,在這種情況下,沒有人違反法律,因此沒有人需要躲在黑暗中。這可能圍繞著一箇中心實體,該實體應保證控制和管理內容,甚至可能需要使用某種 DRM 方案,這是一個整體上失敗的系統。
這類網路已經過測試並失敗了,因為內容也是資訊,開放系統中對隱私的需要或缺乏始終會建立生成更分層的系統,該系統最終會退化為暗網以逃避法律訴訟。
暗中操縱
在任何開放的社會中,秘密、故意隱瞞事實以及篡奪或壓制權利不僅應該被視為負面行為,而且通常被視為文明倒退。這類活動通常是非法的或受到嚴格限制,不僅可能由國家進行,而且還可能由大型公司積極追求,這些公司在某些國家(或標準制定組織)中能夠對政策施加前所未有的控制。
在一個終端使用者希望控制自己的硬體和軟體的世界裡,某些行為並不打算公開。本節旨在闡明一些主題/行為,以幫助讀者充分了解一些鮮為人知的關於 P2P 演變的資訊。
一些組織(或擁有既得利益的團體)仍然認為,他們有權替大眾思考,而不是僅僅嘗試將資訊推出去,賦予公眾做出自己明智決定的能力。總的來說,有一種明顯的組織化的企圖,即向公眾隱瞞事實。資訊就是力量。
試圖控制資訊獲取和流動是一項徒勞無功的事情。人們一直反抗由行業強制執行的黑盒解決方案及其人為的限制,這些限制除了滿足試圖控制資訊的人的經濟利益外沒有其他目的。
作業系統
自從 P2P(和與 P2P 相關的技術)開始出現並獲得動力以來,使用者在作業系統上的安全性開始受到重視,並被置於使用者自由之上,透過強加一些選擇,這些選擇無視對使用者進行適當教育的必要性,削弱了他們做出自己選擇的能力。這種理念讓人們處於技術落後和害怕改變的狀態。看到人們為保持這些“安全增強功能”的隱蔽程度付出的努力,甚至讓人覺得好笑。
好吧,並非一切都已失去,有些人似乎無法遵守這種情況,並且可以找到一些資訊並逆轉一些行為。
- 關於 Microsoft Windows
- CrackTcpip.sys - [適用於 Vista SP1 的類似解決方案]
- BadVista.org - 由 FSF/GNU 運營的一場資訊宣傳活動,旨在透過推廣自由軟體來阻止 Microsoft Windows Vista 的採用。 Microsoft Windows Vista 的問題是什麼? ( http://badvista.fsf.org/what-s-wrong-with-microsoft-windows-vista ) 列出了作業系統中與使用者失去自由和 DRM 相關的一系列問題。
ISP
網際網路服務提供商(ISP)最重要的方面之一是能夠快速適應客戶的需求和需求變化以及使用方式的變化。這種適應可以從兩個方面進行,透過修改網路服務並建立新的服務來適應,或者透過壓制和降低新的消費趨勢來適應。如果 ISP 是更大的媒體機構的一部分,後者就很容易實現,因為它不僅可以影響公眾輿論,還可以塑造立法。
ISP 對 P2P 技術並不十分滿意,因為 P2P 技術給他們的網路帶來了負載,儘管他們以無限使用的方式出售網際網路連線,但如果人們真正接受了他們的報價,ISP 最終將無法以相同的價格/利潤水平滿足需求。更簡單的解決方案是將他們的報價與使用情況相匹配,透過增加他們的容量並至少履行合同義務,但有些人決定簡單地限制(即降低)點對點流量,甚至故意干擾點對點流量。這使得客戶越來越擔心一些 ISP 的行為,從流量整形(協議/資料包優先順序)到流量篡改。
總部位於舊金山的電子前沿基金會(EFF)的一個數字權利團體,成功地證實了網際網路服務提供商進行的這種破壞其服務某些用途的努力,並且證據似乎表明這是一個日益增長的趨勢,因為 EFF 收到了其他報告,並由美聯社進行了調查。
EFF 釋出了關於康卡斯特干擾網際網路流量的報告 ( http://www.eff.org/wp/packet-forgery-isps-report-comcast-affair ),EFF 網站上還提供了有關該主題的其他資訊。
指標
強制流量整形
一些 ISP 現在使用更復雜的方法(例如模式/計時分析或根據側通道資料對埠進行分類)來檢測 P2P 流量。這意味著即使是加密流量也可以被限制。然而,對於那些繼續使用更簡單、成本更低的方法來識別和限制 P2P 網路的 ISP 來說,目前新增到 P2P 解決方案中的對策仍然非常有效。
流量篡改
流量篡改比流量整形更令人擔憂,更難以被發現或驗證。它也可以被定義為欺騙攻擊,它包括透過操縱給定協議將摻假/虛假資訊注入通訊中。就像郵局冒充你的一個朋友的身份,用它的名義給你寄信一樣。
Pcapdiff ( http://www.eff.org/testyourisp/pcapdiff/ ) 是 EFF 開發的一個免費 Python 工具,用於比較兩個資料包捕獲並識別可能被偽造、丟失或損壞的資料包。
當有需求時,滿足需求的供應就會迅速跟進。一個例子是Sandvine Incorporated 應用程式,該應用程式能夠攔截 p2p 通訊並顛覆協議。這類應用程式有兩個目的(從所有者的角度來看),例如 Sandvine 應用程式最初設計用於改變 Gnutella 網路流量作為一種“最佳化”路徑。但如今,BitTorrent 的採用似乎佔據主導地位,Sandvine 應用程式的最新版本能夠攔截 BitTorrent 點對點跟蹤器通訊,以根據跟蹤器返回的點對點列表中的 IP 地址和埠號識別點對點。當 Sandvine 後來發現與被攔截的點對點列表中的點對點建立連線時,它可能會(根據策略)透過傳送偽造的 TCP 重置來斷開這些連線。即使 BitTorrent 協議繼續實施對策,它們也會產生成本,並將問題變成一場“軍備競賽”,問題本質上是道德或法律上的,並具有安全隱患。
爭取網路中立的鬥爭
網路中立旨在防止 ISP 對客戶支付的寬頻連線費用和網站/組織也要支付的費用進行雙重收費,以根據流量的來源、目的地或使用的協議對流量進行優先順序排序。
秘密的反假冒貿易協定
《反假冒貿易協定》(ACTA)是一項擬議中的多邊協議,旨在制定有關智慧財產權權利執法的國際標準。
ACTA 的目的是建立一個新的國際法律框架,各國可以自願加入,並將在現有的國際機構(如世界貿易組織 (WTO)、世界智慧財產權組織 (WIPO) 或聯合國)之外建立自己的管理機構。
建立關於假冒偽造的《多邊協定》的想法是由日本和美國在 2006 年提出的。加拿大、歐盟和瑞士在 2006 年和 2007 年期間加入了初步談判。正式談判於 2008 年 6 月開始,澳大利亞、墨西哥、摩洛哥、紐西蘭、大韓民國和新加坡加入了談判。計劃在 2010 年 9 月完成談判。
談判國將其描述為對“全球假冒商品和盜版版權作品交易增加的回應”。
《反假冒貿易協定》(ACTA) 的範圍很廣,包括假冒商品、仿製藥品和版權侵權,包括在網際網路上的侵權。《反假冒貿易協定》(ACTA) 實際上是一項條約,它將克服許多界定消費者“合理使用”權利的法院先例,並將改變或取消對智慧財產權法應用的限制。
在 2008 年、2009 年和 2010 年的一系列草案文字洩露之後,談判各方在 2010 年 4 月 20 日公佈了當前草案的正式版本。
美國
奧巴馬政府和布什政府都拒絕了將《反假冒貿易協定》(ACTA) 文字公開的要求,白宮表示披露將“損害國家安全”。
2009 年,知識生態國際組織在美國提交了一份《資訊自由法案》(FOIA) 請求,但其全部請求都被拒絕。美國貿易代表辦公室的資訊自由辦公室表示,該請求因涉及“為國家安全目的適當歸類的材料”而被拒絕。
美國參議員伯尼·桑德斯 (I-VT)和謝羅德·布朗 (D-OH)於 2009 年 11 月 23 日聯名寫信給美國貿易代表,要求公開《反假冒貿易協定》(ACTA) 的文字。
秘密談判
電子前沿基金會(EFF) 反對《反假冒貿易協定》(ACTA),在其論文“陽光照進《反假冒貿易協定》(ACTA)”中呼籲對擬議中的條約進行更多公開關注 (http://www.eff.org/action/sunlight-acta)
自 2008 年 5 月以來,與《反假冒貿易協定》(ACTA) 談判相關的討論檔案和其他檔案已上傳至維基解密,隨後報紙報道了有關秘密談判的訊息。
2008 年 6 月,加拿大學者邁克爾·蓋斯特為《版權新聞》撰文,認為“政府應該揭開《反假冒貿易協定》(ACTA) 的神秘面紗”,指出在網際網路上洩露檔案之前,《反假冒貿易協定》(ACTA) 籠罩在 secrecy 之中。《多倫多星報》對這些檔案的報道“引發了廣泛的反對,因為加拿大人擔心一項可能導致對個人電腦進行侵入式搜尋和加強對網上活動的監控的貿易協定”。蓋斯特認為,公開《反假冒貿易協定》(ACTA) 條約草案“可能會消除人們對在邊境檢查站搜尋 iPod 的擔憂”,並且它“可能會將注意力集中在其他關鍵問題上,包括加強網際網路服務提供商對內容的過濾,提高對連結到涉嫌侵權內容網站的責任,以及減少網際網路使用者的隱私”。蓋斯特還認為,更大的透明度將導致更具包容性的程序,強調《反假冒貿易協定》(ACTA) 談判排除了民間社會團體和發展中國家。蓋斯特報道稱,“報道顯示,貿易談判人員被要求籤署保密協議,以防條約條款洩露給公眾”。他認為,需要“所有利益相關者的合作來解決假冒問題”,並且“有效的策略需要更廣泛的參與和定期反饋機制”。
2008 年 11 月,歐盟委員會對這些指控做出瞭如下回應:
有人指稱,談判是在 secrecy 的掩蓋下進行的。這是不正確的。出於效率的考慮,政府間談判涉及經濟影響的議題,自然不會公開進行,談判人員也受到一定程度的謹慎約束。然而,我們從未打算隱藏談判的事實,或隱瞞談判的最終目標、歐盟委員會貿易 5/6 談判中所持立場,甚至談判時間和地點的詳細資訊。歐盟和其他合作伙伴(美國、日本、加拿大等)於 2007 年 10 月 23 日在公開發布的新聞稿中宣佈了啟動《反假冒貿易協定》(ACTA) 談判的意願。從那時起,我們在許多場合談論了《反假冒貿易協定》(ACTA),包括在歐洲議會(INTA 委員會會議)和許多參與人數眾多的研討會上。委員會於 6 月 23 日在布魯塞爾組織了一次利益攸關方協商會議,對所有人開放 - 包括行業和公民,參加者超過 100 人。美國、澳大利亞、加拿大、紐西蘭和其他《反假冒貿易協定》(ACTA) 合作伙伴也做了同樣的事情。
這一立場在 2010 年 3 月 10 日發生了變化,當時歐洲議會通過了一項直接針對《反假冒貿易協定》(ACTA) 的決議,批評了該協定、程式以及對基本人權的侵犯。
對自由和基本人權的威脅
許多組織簽署了一封公開信,包括消費者國際、EDRi(27 個歐洲民權和隱私非政府組織)、自由軟體基金會 (FSF)、電子前沿基金會(EFF)、ASIC(法國 Web 2.0 公司貿易協會)和自由知識研究院 (FKI),信中指出,“《反假冒貿易協定》(ACTA) 的當前草案將嚴重限制歐洲公民的基本權利和自由,尤其是言論自由和通訊隱私權”。
自由軟體基金會認為,《反假冒貿易協定》(ACTA) 將創造一種監視和懷疑的文化。(參見http://www.fsf.org/campaigns/acta“反對《反假冒貿易協定》(ACTA)”。
哈佛大學伯克曼網際網路與社會中心研究員艾倫·肖認為,“《反假冒貿易協定》(ACTA) 將制定過高的法律標準,這些標準不符合當代民主政府、自由市場交易或公民自由的原則。儘管《反假冒貿易協定》(ACTA) 的具體條款尚未確定,但談判人員的初步檔案揭示了擬議協議的許多令人擔憂的方面”,例如消除“保護網際網路服務提供商免受其使用者行為責任的法律保障”,實際上使網際網路服務提供商別無選擇,只能屈服於隱私侵犯。肖還表示,《反假冒貿易協定》(ACTA) 還將促進商標和版權持有人在沒有任何法律程式的情況下,對涉嫌侵權的個人進行隱私侵犯。
自由軟體基金會(FSF) 釋出了“反對《反假冒貿易協定》(ACTA)”,指出《反假冒貿易協定》(ACTA) 威脅到自由軟體,因為它創造了一種“將生產自由軟體所需的自由視為危險和威脅,而不是創造性、創新和令人興奮”的文化。
《反假冒貿易協定》(ACTA) 還要求現有的網際網路服務提供商不再託管能夠訪問受版權保護的媒體的自由軟體;這將嚴重影響許多提供自由軟體或託管軟體專案的網站,例如SourceForge。具體來說,自由軟體基金會認為,《反假冒貿易協定》(ACTA) 將使透過檔案共享和P2P 技術(如BitTorrent)分發自由軟體變得更加困難和昂貴,而這些技術目前用於分發大量的自由軟體。自由軟體基金會還認為,《反假冒貿易協定》(ACTA) 將使自由作業系統使用者更難播放非自由媒體,因為DRM 保護的媒體在自由軟體下無法合法播放。
2010 年 3 月 10 日,歐洲議會通過了一項批評《反假冒貿易協定》(ACTA) 的決議,663 票贊成,13 票反對,認為“為了尊重基本權利,如言論自由權和隱私權”,應該對《反假冒貿易協定》(ACTA) 的內容和程式進行一些修改。
法律範圍
Ars Technica 的內特·安德森在其文章中指出 (http://arstechnica.com/news.ars/post/20080602-the-real-acta-threat-its-not-ipod-scanning-border-guards.html),《反假冒貿易協定》(ACTA) 鼓勵服務提供商透過給予他們“免受某些法律威脅的避風港”來提供有關涉嫌侵權者的資訊。同樣,它規定了對版權侵權的刑事化,賦予執法部門進行刑事調查、逮捕並對可能侵犯版權的嫌疑人進行刑事傳票或起訴的權力。它還允許對沒有可能原因的個人進行刑事調查和侵入式搜查,在這方面削弱了無罪推定,並允許過去被視為非法搜查的行為。
由於《反假冒貿易協定》(ACTA) 是一項國際條約,因此它是一個政策洗白的例子,用於建立和實施法律變更。政策洗白允許法律條款 - 通常透過公共立法實施並受司法監督 - 透過簽署方行政部門成員之間的閉門談判來推動。一旦批准,非成員公司的企業可能被迫遵守《反假冒貿易協定》(ACTA) 的要求,因為它們將失去避風港保護。此外,使用貿易激勵措施等手段說服其他國家簽署條約是國際關係中的標準做法。額外的簽署方必須接受《反假冒貿易協定》(ACTA) 的條款,而沒有太多談判空間。
2010 年 6 月 16 日至 18 日,華盛頓法學院舉行了一次會議,來自六大洲的“90 多位學者、從業人員和公益組織”參加了會議。他們的結論於 2010 年 6 月 23 日在美國大學華盛頓法學院網站上釋出。他們發現,“《反假冒貿易協定》(ACTA) 公開發布草案中的條款威脅到許多公眾利益,包括談判人員明確否認的每一個擔憂”。
公開要求
2008 年 9 月,許多利益相關團體敦促 ACTA 談判各方公開正在制定協議的文字內容。這些團體在一封公開信中指出:“由於條約文字和相關討論檔案仍然保密,公眾無法評估這些以及相關擔憂是否以及在多大程度上是合理的。” 這些利益相關團體包括:消費者聯盟、電子前沿基金會、必備行動、智慧財產權正義、知識生態國際、公共知識、全球貿易觀察、美國公共利益研究小組、IP Left(韓國)、加拿大圖書館協會、日本消費者聯盟、國家消費者委員會(英國)和無國界醫生組織的必需藥物運動。
P2P 網路和協議
本章將試圖概述什麼是點對點,它的歷史演變,技術和用途。
P2P 和網際網路:一段“位元”的歷史
P2P 並不是一項新技術,它幾乎與網際網路一樣古老,它始於電子郵件協議,下一代被稱為“元計算”或歸類為“中介軟體”。P2P 協議的普遍分散化使它席捲了網際網路,不僅賦予了普通使用者權力,而且還節省了資訊分發資源,這與舊的集中化概念截然不同。
這對於共享資訊的安全性或控制可能會造成問題,或者換句話說,是對資訊進行“民主化”(P2P 用於從檔案共享網路下載 MP3、程式甚至電影的眾所周知用途)。由於其分散的特性,流量模式難以預測,因此為其提供支援基礎設施是大多數 ISP 目前面臨的主要問題。
P2P 也被譽為索引深層網路的解決方案,因為大多數 P2P 技術的植入都是基於和麵向執行 TCP/IP 的有線網路。有些甚至正在轉移到無線應用(感測器、電話和機器人應用),你可能已經聽說過一些智慧地雷或機器人昆蟲群的軍事應用。
最終使 P2P 流行起來的是,它創造了一個公平競爭的平臺,因為今天在世界大部分地區,人們很容易獲得計算機和網路基礎設施。我們可以輕鬆地成為生產者,取代舊的集中化模式,在這種模式下,大多數人口仍然是消費者,依賴於單一實體(壟斷、品牌、可見度)來分發或建立服務或數字商品。這種轉變無疑將降低生產和分發成本,因為可以進行數字傳輸的服務和產品的價格,成本現在也變得顯而易見,質量也會下降,直到出現新的分類系統,這在網際網路衝擊後與書面媒體有關的今天可以看到。
FidoNet
FidoNet 今天仍然是一個全球性的計算機網路,用於公告板系統 (BBS) 之間的通訊。它使用儲存和轉發系統在網路中的 BBS 之間交換私人(電子郵件)和公共(論壇)訊息,以及在某些情況下交換其他檔案和協議。
FidoNet 系統是基於許多小型協同互動程式開始的。這些“對等節點”與 BBS 系統一起執行,並透過指令碼或某種形式的低階程序間通訊與它們進行互動。它們的功能是從一個系統的某個位置自動打包/解包和匯入/匯出內容到另一個位置。獨立性極大地簡化了移植,而 FidoNet 是少數幾個幾乎所有 BBS 軟體以及許多非 BBS 線上服務都廣泛支援的網路之一。這種模組化結構還使 FidoNet 能夠輕鬆升級到新的資料壓縮系統,這在使用調變解調器透過電話線路進行通訊的時代非常重要,當時長途電話費很高。
20 世紀 90 年代初,調變解調器速度的快速提高,再加上計算機系統和儲存價格的快速下降,使得 BBS 越來越受歡迎。到 20 世紀 90 年代中期,FidoNet 系統已達到近 40,000 個,並且可以與世界各地的數百萬使用者進行通訊。在廣度或數量方面,只有 UUCP 接近;FidoNet 的使用者群遠遠超過 BITNET 等其他網路。
從 20 世紀 90 年代中期開始,低成本網際網路連線的廣泛可用性降低了對 FidoNet 儲存和轉發系統的需求,因為可以以同等的成本訪問世界上任何系統。直接撥號到本地 BBS 系統迅速減少。網際網路連線的可用性並非普遍,儘管 FidoNet 自 20 世紀 90 年代初以來已經大幅縮減,但它仍然在世界各地使用。
電子郵件
電子郵件(通常縮寫為電子郵件或電子郵件),最初是一種集中式服務,用於建立、傳輸或儲存主要基於文字的人類通訊,使用數字通訊系統,最初的標準化工作導致採用簡單郵件傳輸協議 (SMTP),該協議於 1982 年首次作為網際網路標準 10 (RFC 821) 釋出。
現代電子郵件系統基於儲存和轉發模型,在這種模型中,電子郵件計算機伺服器系統代表使用者接受、轉發或儲存訊息,使用者僅在訊息傳輸或檢索期間與其指定伺服器連線他們的個人電腦或其他支援網路的裝置。
最初,電子郵件只包含用 ASCII 字元集編寫的文字訊息,如今,幾乎可以傳送任何媒體格式,包括音訊和影片剪輯的附件。
Peer2Mail
Peer to Mail (http://www.peer2mail.com/) 是一款適用於 Windows 的免費軟體應用程式,可讓您在任何網路郵件帳戶上儲存和共享檔案,您可以使用 Gmail(Google Mail)、Walla!、Yahoo 等網路郵件提供商,它會將共享檔案拆分為段,這些段將被壓縮和加密,然後逐個傳送到您具有管理許可權的帳戶。要下載檔案,該過程相反。
安全
Peer2Mail v1.4 中的加密已被破解(先前版本也受到影響) - Peer2Mail 加密密碼轉儲漏洞。
Usenet
Usenet 是最初的點對點檔案共享應用程式。它最初是為了利用 UUCP(Unix 到 Unix 複製)來同步兩臺計算機的訊息佇列而開發的。Usenet 將每篇文章儲存在一個單獨的檔案中,並將每個新聞組儲存在它自己的目錄中。同步兩個對等節點就像同步兩個不同檔案系統中的選定目錄一樣簡單。
Usenet 的建立基於每個人都會接收、儲存和轉發相同新聞的假設。這個假設極大地簡化了開發,以至於一個對等節點能夠連線到任何其他對等節點以獲取新聞。Usenet 碎片化為無數個新聞組,使其能夠在保持基本架構的同時擴充套件。“每個節點儲存所有新聞”變為“每個節點儲存其訂閱的新聞組中的所有新聞”。
在所有其他點對點協議中,Usenet 最接近 Freenet,因為所有節點都是絕對平等的,並且網路的全域性對映不會由任何節點子集保留。與 Freenet 透過沿著對等節點線性鏈遞迴拉取請求的物件不同,Usenet 透過遞迴推送所有新聞到它們在樹中的直接鄰居來工作。
FTP
檔案傳輸協議 (FTP) 可以看作是原始的 P2P 協議。即使它依賴於客戶端/伺服器結構,限制只在於執行的應用程式型別(客戶端/伺服器),因為角色是靈活的。
檔案交換協議 (FXP)
零配置網路
零配置網路(zeroconf)是一組技術,可以自動建立可用的網際網路協議 (IP) 網路 P2P 方式,無需人工干預或特殊配置伺服器。
Bonjour
Bonjour,以前稱為Rendezvous。一種由蘋果公司開發的服務發現協議。Bonjour 以 P2P 方式定位,例如印表機等裝置,以及其他計算機和這些裝置在本地網路上提供的服務,使用多播來維護域名系統記錄。該軟體內置於蘋果的Mac OS X作業系統中,從 10.2 版開始,可以安裝到使用Microsoft Windows作業系統的計算機上。Bonjour 還支援包含其他軟體的元件,例如iTunes。
Bonjour for Windows(http://support.apple.com/downloads/Bonjour_for_Windows)
Bonjour for Windows 包含一個外掛,用於使用 Internet Explorer 發現已釋出的 HTTP 伺服器。如果您在本地網路上擁有具有嵌入式 HTTP(Web)伺服器的 Bonjour 裝置,它們將顯示在列表中。
網際網路中繼聊天 (IRC)
網際網路中繼聊天,通常縮寫為IRC,是一個即時基於文字的多使用者通訊協議規範和實現;它在網路上的使用者之間中繼訊息。IRC 出生於 1988 年,出自Jarkko Oikarinen之手。根據 IRChelp.org(http://www.irchelp.org/irchelp/rfc/),IRC 的官方規範是在 1993 年以RFC 格式編寫的。該協議在“RFC 1459:網際網路中繼聊天協議”中定義,這是一個非常優秀的資源,既是 IRC 協議的入門介紹,也提供了有關 IRC 協議的詳細資訊。
IRC 最大的體系結構單元是IRC 網路。世界上可能有數百個 IRC 網路,每個網路都並行執行,彼此獨立。登入到一個網路的客戶端只能與同一網路上的其他客戶端通訊,而不能與其他網路上的客戶端通訊。每個網路都由一個或多個IRC 伺服器組成。IRC 客戶端是一個程式,它連線到給定的 IRC 伺服器,以便伺服器將通訊中繼到同一網路上的其他客戶端,但不一定是同一伺服器上的其他客戶端。
IRC 上的訊息以塊的形式傳送。也就是說,其他 IRC 客戶端將不會看到一個人像那樣打字和編輯。一個人建立一個訊息塊(通常只是一句話)並立即傳輸該塊,該塊由伺服器接收,並根據地址將其傳遞給相應的客戶端,或將其中繼到其他伺服器,以便再次傳遞或中繼,等等。為了瞭解 IRC 網路上交換的訊息,您可以檢視(http://www.alien.net.au/irc/irc2numerics.html),它清楚地標識了多種實現和功能。
連線到伺服器後,其他客戶端的定址是透過IRC 暱稱實現的。暱稱只是一個唯一的 ASCII 字串,用於標識特定客戶端。儘管實現方式各不相同,但對暱稱的限制通常規定它們只包含字元 a-z、A-Z、0-9、下劃線和連字元。
IRC 上的另一種定址方式,也是其最顯著的特徵之一,是IRC 頻道。IRC 頻道通常與 CB 無線電 (公民頻段無線電) 頻道相比。在 CB 中,據說人們在“收聽”一個頻道,而在 IRC 中,據說人們的客戶端“加入”了該頻道。傳送到該頻道的所有通訊都會被客戶端“聽到”或看到。另一方面,同一網路上的其他客戶端,甚至同一伺服器上的其他客戶端,但不在同一頻道上的客戶端將不會看到傳送到該頻道的任何訊息。
有關 IRC 的最新資訊可以在IRC.org 上獲得,支援 IPv6 的遷移以及新的技術論文,IETF(網際網路工程任務組)批准了最新的技術草案(2000 年 4 月 - 作者為 C Kalt)
RFC 2810 : IRC Architecture RFC 2811 : IRC Channel-Management RFC 2812 : IRC Client-Protocol RFC 2813 : IRC Server-Protocol
這些文件已在 IRC.org 的官方 FTP 伺服器上提供,可以透過ftp://ftp.irc.org/irc/server 訪問。
雖然 IRC 本身不是P2P 協議,但 IRC 確實有一些擴充套件,這些擴充套件支援直接從客戶端到客戶端傳輸文字和檔案,而無需任何中繼。這些擴充套件被稱為DCC(直接客戶端到客戶端)和CTCP(客戶端到客戶端協議)。
標識協議
在RFC 1413 中指定的標識協議是一種網際網路協議,它有助於識別特定 TCP 連線的使用者,並將他們與共享同一連線的其他使用者區分開來。伺服器。
標識協議被設計為在使用者計算機上以伺服器守護程序形式工作,它接收對指定埠(通常為 113)的請求。然後,伺服器將傳送專門設計的響應,以標識當前使用者的使用者名稱。
大多數獨立的 Windows 機器預設情況下沒有執行或存在標識服務,在這種情況下,您可能需要在自己的機器上執行自己的標識伺服器(有幾個獨立的伺服器可用),另一方面,如果您在 Unix/Linux 機器上,該服務預設情況下存在。一些 Windows IRC 客戶端也內建了標識伺服器。
執行標識伺服器的原因是,IRC 伺服器出於安全原因使用該資訊(不是特別有效的方法),有些伺服器甚至會阻止沒有標識響應的客戶端,主要原因是它使透過“開放代理”或您已以某種形式入侵單個帳戶但沒有root許可權的系統連線變得更加困難。
DCC(直接客戶端連線)協議
CTCP(客戶端到客戶端協議)協議
使用 CTCP,客戶端可以實現諸如“ctcp 暱稱 版本”或“ctcp 暱稱 ping”之類的命令,以獲取有關其他使用者的有趣資訊(就像mIRC 一樣)。
機器人
IRC 系統也支援(ro)機器人,在這種情況下,它們不是真正的使用者,而是從指令碼(文字)檔案載入到 IRC 客戶端的命令集合,甚至是一個連線到 IRC 頻道的獨立程式。它們的作用是簡化人機互動,提供某種自動化,甚至測試或實現一些 AI。
基本命令
以下是一些 IRC 的基本命令
| 命令 | 功能 | 示例 |
|---|---|---|
| /attach /server |
登入到伺服器 | /attach irc.freenode.net /server irc.freenode.net |
| /nick | 設定您的暱稱 | /nick YourName |
| /join | 加入頻道 | /join #wikibooks |
| /msg | 傳送訊息(可以是私人訊息,也可以是傳送給整個頻道的訊息) | 向頻道傳送訊息:/msg #wikibooks hello world! 傳送私人訊息:/msg JohnDoe Hi john. |
| /whois | 顯示有關伺服器上使用者的資訊 | /whois JohnDoe |
| /clear /clearall |
清除頻道的文字。 清除所有開啟的頻道的文字。 |
/clear
/clearall |
| /away | 設定離開資訊。注意:再次輸入 /away 可從離開狀態返回。 | /away I'm away because... |
| /me | 向頻道傳送操作。請參閱示例。 | 以下 /me loves pie. 將在 JohnDoe 的情況下輸出到聊天中 JohnDoe loves pie. |
特權使用者命令
適用於半操作員、頻道操作員、頻道所有者和管理員的命令
| 命令 | 功能 | 示例 |
|---|---|---|
| /kick | 踢出或將使用者從頻道中踢出。您必須是半操作員或更高才能執行此操作。 | 將使用者從頻道中踢出並說明原因:/kick JohnDoe I kicked you because... |
| /ban /unban |
禁止使用者訪問頻道。您必須是頻道操作員或更高才能執行此操作。 解除對使用者的頻道禁令。您必須是頻道操作員或更高才能執行此操作。 |
/ban JohnDoe /unban JohnDoe |
IRC 網路
- EFnet
- Undernet
- Dalnet
- Rede Portuguesa de IRC (PTnet)(http://www.ptnet.org/)是最大的葡萄牙 IRC 網路,它創建於 1997 年,您可以獲取其伺服器的最新列表(http://www.ptnet.org/servidores)。
安全風險
軟體實現
- KVIrc(http://www.kvirc.net/)是一個基於 Qt GUI 工具包並用 C++ 編寫的開源(GPL)行動式 IRC 客戶端。
- Bersirc(http://bersirc.free2code.net/index.php/home/)是一個開源 IRC 客戶端(LGPL),用 C 編寫,執行在 Windows 上(Linux 和 Mac OS X 埠正在開發中),它利用 Claro GUI 工具包。
- XChat(http://www.xchat.org/)是適用於 Windows 和 UNIX(Linux/BSD)作業系統的 IRC(聊天)程式。I.R.C. 是網際網路中繼聊天。XChat 在大多數 BSD 和 POSIX 相容作業系統上執行。開源(GPL),用 C 編寫。
- Irssi(http://irssi.org/)是一個 IRC 客戶端程式,最初由 Timo Sirainen 編寫,並在 GNU 通用公共許可證的條款下發布。它用 C 程式語言編寫,在正常操作中使用文字模式使用者介面。
- mIRC(http://www.mirc.co.uk/)是適用於 Windows 的共享軟體網際網路中繼聊天客戶端,由 Khaled Mardam-Bey 於 1995 年建立並開發。最初,它只用於此目的,但由於其整合的指令碼語言,它已發展成為一個可高度配置的工具,可用於多種目的。
您也可以檢視維基百科 IRC 客戶端列表 和 網際網路中繼聊天客戶端比較(未更新)...
隱形 IRC 專案
這是相對於普通 IRC 網路的一項技術進步,由 invisibleNET 建立,invisibleNET 是一家以研發為主導的組織,其主要關注點是智慧網路技術的創新。其目標是在廣泛使用但臭名昭著的不安全網際網路上提供最高的安全和隱私標準。
隱形 IRC 專案 (http://invisibleip.sourceforge.net/iip/) 是一個三層、對等分散式網路,旨在為高速、低容量、動態內容提供安全和私密的傳輸介質。特點
- 使用迪菲-赫爾曼金鑰交換協議的完美前向保密
- 持續的會話金鑰輪換
- 128 位 Blowfish 節點到節點加密
- 160 位 Blowfish 端到端加密
- 填充流量以阻止流量分析
- 使用加密簽名名稱空間進行節點識別的安全動態路由
- 節點級泛洪控制
- 無縫使用標準 IRC 客戶端
- GUI 介面
- 對等分散式拓撲結構,用於保護使用者身份
- 完全模組化設計,所有協議都支援外掛
IIP 軟體在 GPL 許可下發布,適用於 Windows 98/ME/NT/2000/XP、*nix/BSD 和 Mac OSX,用 C 語言編寫。
即時訊息
即時訊息可以被認為是 P2P 的一種子型別,簡單來說,它包括在網路(LAN 或 WAN)上以文字為主進行兩人或多人之間即時交流的行為。這需要使用客戶端程式,以便在傳送訊息時,在目標應用程式上顯示通知,並在短時間後顯示通知,使該應用程式的使用者能夠回覆原始訊息。IM 協議可以是集中式、分散式或兩者兼而有之。
即時訊息允許使用者幾乎即時地向其他使用者傳送簡短的筆記或提醒。IM 可以,但也可能不包括任何 P2P 實現或支援額外的 P2P 服務,例如檔案共享、VoIP 或視訊會議,廣義上說,IM 是幾乎即時的訊息交換,無論採取何種形式。
由於任何 P2P 網路都依賴於參與,因此支援某種 IM 實現非常重要,因為它可以作為建立社群和維持網路的一種方式。
安全風險
IM 軟體實現
- Gaim/Pidgin (http://pidgin.im/pidgin/home/) 開源(GPL)即時訊息客戶端,支援 Windows、GNU、BSD 和許多 Unix 派生產品,並與 AIM、ICQ、MSN、Yahoo!、IRC、Jabber、Gadu-Gadu、SILC、GroupWise Messenger 和 Zephyr 網路相容。
- Trillain (http://www.ceruleanstudios.com/) 可自定義外觀的聊天客戶端,支援 AIM、ICQ、MSN、Yahoo! 和 IRC,它還包含許多這些聊天程式中沒有的功能。
- BitWise IM (http://www.bitwiseim.com),加密的跨平臺(Windows、Mac OS X 和 Linux)即時訊息,免費但閉源,使用 wxWidgets。還支援白板、語音聊天。
- digsby (http://www.digsby.com),一個閉源、僅限 Windows 的多協議 IM 客戶端,可讓您使用一個簡單的、易於管理的聯絡人列表與 AIM、MSN、Yahoo、ICQ、Google Talk 和 Jabber 上的所有朋友聊天。
- Google Talk (http://www.google.com/talk/),僅限 Windows XP+,閉源,支援 IM 並與 Gmail(谷歌 WEB 郵件)平臺互動。
VoIP
語音 over IP 也可以被看作是 IM 的擴充套件,其中文字被即時音訊或影片取代,技術挑戰非常相似,如果不是考慮到需要傳輸的資料型別以及由於時間原因而需要進行的具體考慮的話。IM 應用程式也支援 VoIP 或視訊會議並不罕見。
VoIP 上的安全性面臨著與其他 P2P 協議和應用程式相同的漏洞和安全威脅,包括模糊測試、泛洪、欺騙、隱形攻擊和 VoIP 垃圾郵件。
Napster
Napster 網路是在應用程式層使用客戶端-伺服器協議透過點對點 TCP 建立的。在這種情況下,伺服器是一個集中式目錄,它將儲存所有提供檔案(MP3/WMA)的索引。客戶端將連線到伺服器,向伺服器標識自己(使用者在伺服器上有帳戶),並將他們正在共享的 MP3/WMA 檔案列表傳送給伺服器,使其他客戶端能夠搜尋該中央儲存庫中的網路上的任何檔案,然後從任何可用來源請求該檔案。
軟體實現
- OpenNap (http://opennap.sourceforge.net),一個基於 Napster 的對等網路,建立為開源(GPL),用 C 語言編寫,適用於 Windows。旨在將 Napster 協議擴充套件到允許共享任何媒體型別,並新增將伺服器連結在一起的功能。已停產。
- audioGnome (http://www.audiognome.com),閉源但作為 Windows 的免費軟體。
- JNerve (http://jnerve.sourceforge.net),一個開源(GPL)Java Napster 伺服器協議實現,其目標是跨平臺相容性。
- Napsack (http://napsack.sourceforge.net) 是一個專門的多執行緒客戶端,用於將 Napster 查詢廣播到多個伺服器;目標伺服器列表從 www.napigator.com 獲取,並且使用者可過濾(根據索引的使用者、檔案或吉位元組數)。使用 Java 開源(GPL)。
Gnutella
Gnutella 是一個開放的 檔案共享網路,最初由 Nullsoft 的 Justin Frankel 建立。這意味著,與大多數其他網路不同,任何人都可以編寫一個能夠訪問 GNet 的客戶端,只要它符合公開可用的規範。
規範由 GDF(Gnutella 開發論壇)討論和建立,GDF 是一個面向開發人員的開放郵件列表,迄今為止已有 1000 多名成員。之後,它們記錄在 rfc-gnutella 中。這樣,所有程式都共享一個共同的基礎,而該協議也允許客戶端特定的選項。開發人員謹慎地確保儘可能大的向後相容性。
儘管有這個名字,Gnutella 並不是 GNU 軟體,儘管一些 Gnutella 客戶端是 GPL 許可的。它是一個開放網路,它的名字的起源更容易在吃太多 Nutella 時找到,而不是在 GNU 中。(這意味著:Gnutella 不是 FSF 的專案,也不與 GNU 軟體工具相關)。雖然 Gnutella 最初被宣佈為一個完全分散式的資訊共享技術,但該協議的後期版本是集中式和分散式網路的混合體,包括“伺服器”(超級對等體或超級對等體)和“客戶端”(葉節點或節點)。
Gnutella 客戶端軟體本質上是一個小型搜尋引擎(提供 Web 搜尋引擎的替代方案)和檔案服務系統。新實現的 Gnutella 還支援 Tiger 樹雜湊 (TTH) 用於檔案傳輸。
Gnutella 的一個兄弟值得特別關注,即使目前客戶端的一些開發人員會否認這一點。它被稱為 MP(Mike 的協議)或大多數 Gnutella 開發人員的 Shareaza 協議,而它的開發人員稱之為 Gnutella2,這個名字讓他的程式(Shareaza)獲得了大量媒體報道,並在 _gdf 中造成了和正在造成很多爭議和反感。
- Gnutella2(Mike 的協議,G2)
由於開發人員社群未能就協議的演變達成共識,導致 Gnutella 協議 分叉 的結果。
Gnutella2 也被稱為 Mike 的協議,因為第一次更改和實現來自單個開發人員 Michael Stokes。2002 年 11 月,Michael Stokes 正式且單方面地向 Gnutella 開發人員論壇 宣佈建立 Gnutella2 協議,這導致開發人員之間出現分歧,並導致修改不被一些 Gnutella 應用程式支援,因為原始提案與其他供應商的概念存在衝突(特別是 LimeWire 和 Bearshare)。
現在產生的實現放棄了所有舊的 Gnutella 協議,除了連線握手,並採用了一個全新的搜尋 演算法。Gnutella2 通常縮寫為 G2。
網路模型
最初:FoF
你可以把 Gnutella 網路的原始模型想象成朋友之間互相打電話獲取資訊。一個人問另外五個人,每個人再問另外五個人,以此類推。在第一步之後,被聯絡到的人數是 5 個,第二步是 25 個,第五步是 3125 個,第七步是 78,125 個,第 14 步大約是 61 億個。這足以聯絡到地球上的每一個人。原始的 Gnutella 使用了 7 步(稱為 HTL:Hops To Live)。
這個模型最大的問題(除此之外還有其他問題)是你必須先成為這個圈子的一部分才能使用它。
朋友的朋友模型的問題
朋友的朋友模型有一些缺點,這些缺點源於搜尋執行的方式。如果搜尋結果過多,你所連線的節點(你最近的 5 個朋友)可能會超負荷,因為每個答案都必須透過它們才能到達你,因為它們不會提供你的“電話號碼”,而是提供它們自己的號碼,並將答案傳遞給你。如果你問校園裡大學領導的名字,你實際上會得到數百個答案,而在網上會得到數千甚至數百萬個答案。另外,如果每個問題都要傳遞給 75,000 到 600,000 臺計算機網路中的每一個人,而每臺計算機每小時只詢問一次,那麼它們中的每一臺每秒鐘都要回答大約 130 到 1600 個問題。而且它們必須將這些問題傳遞下去。雖然計算機很快,而且現在的網際網路連線與幾年前相比可以處理相當多的資料,但這對它們來說仍然太多了。想象一下,你的電話整天不停地響,全是各種各樣的問題。
加入網路
為了解決連線問題,人們提出了幾個解決方法。
第一種方式:Pong 快取
Pong 快取是指節點(即你)詢問它的朋友他們的朋友是誰。這意味著你的朋友把你介紹給他們的朋友,特別是他們非常看重的朋友,你把你所有的新地址都記在你的電話簿裡,這樣你就知道你的朋友不在家的時候該給誰打電話(有點像一直在參加雞尾酒會)。這很簡單,並且有給你提供非常可靠的聯絡人的優點,但如果沒有知道至少一個已經在網路中的人,就無法加入網路。這意味著你可以隨時回到網路中,但如果你以前從未連線過,就無法連線。
第二種方式:記住誰回答了
第二種方式非常簡單。當你 5 個朋友中的一位回電話說 Smith(你以前不認識他)知道一些事情時,你記下她的電話號碼。當你下次把他加入你的 5 個直接聯絡人之一時,你更可能很快獲得你的資訊,因為他很可能有一些與你興趣相似的朋友(他從哪裡得到的資訊呢?),而這些人比隨機挑選的人更有可能擁有你的資訊(至少當你詢問與你上次問題相似的問題時)。缺點是這些聯絡人可能並不經常在家,所以你可能會找到一個知識淵博的聯絡人,但你可能再也不能聯絡到他了。第一次仍然無法加入網路。現在我們來看看 Gnutella 的最新發展之一:GWebCaches。我會在下文中討論它們。
第三種方式:GWebCaches
為了便於理解,GWebCache 是一個將她的電話號碼放到報紙上,並記錄下打電話者的聯絡人。當你離開一段時間,不再確定你的聯絡人是否還有相同的手機號碼時,你可以撥打公開的聯絡人。在提供號碼之前,他/她會問你:“你認識其他公開的聯絡人嗎?如果認識,請告訴我他們的號碼。”之所以這樣做,是因為他們無法閱讀所有的報紙,而你一直都在做這件事,而且不需要花太多力氣。這樣,他們就可以互相跟蹤。然後聯絡人會給你一些電話號碼,並記下你的號碼(以便提供給其他人)以及他/她知道的其他公共聯絡人的地址(GWebCaches)。
這大致就是 GWebCaches 的工作原理。GwebCaches 只有在第一次連線時才是必需的。當你的本地地址簿為空時,你可以使用它們。它們不能優先於你的本地地址簿。正如我所說,它們是 Gnutella 的一項新發展,因此我現在將討論 Gnutella 中的一些最新變化和未來計劃。
超節點和葉子節點
- 改變誰給誰打電話
你一定有一些朋友認識很多其他人,你可以問他們,並確定他們會知道能給你答案的人。在 Gnutella 中,這些節點被稱為超節點。超節點本身不需要知道很多東西,它只需要知道誰知道它。在 Gnutella 中,這意味著一個好的超節點不需要擁有很多檔案就能使網路受益。如果你害怕分享很多東西,你應該在 Gnutella 中成為一個超節點。
- 更詳細的說明
在計算機世界中,就像在現實世界中一樣,有一些聯絡人可以處理更多的電話,而另一些聯絡人則無法經常打電話(或者負擔不起賬單)。在現實世界中,這是因為他們有更多空閒時間。而在計算機世界中,這是因為他們擁有更快的連線(如 DSL、電纜、T1、T3 或類似的寬頻)。開發者意識到這一點後,決定改變網路拓撲結構,這意味著當你在外面繪製網路時,網路看起來是什麼樣的。現在,你不再只是給任何朋友打電話,而是隻給那些你認為有時間接聽你的電話並將其傳遞給其他人的朋友打電話。為了避免你接到太多電話,他們會問你擁有哪些型別的資訊,或者用更人性化的話來說,你的專業領域是什麼。在計算機世界中,這意味著你的計算機將所有檔案的列表傳送給超節點,這就是我們對這類聯絡人的稱呼。該列表包含你所有共享檔案(你決定讓其他人下載的檔案)的摘要(雜湊字串),下載者可以根據這些摘要驗證這些檔案確實是他們想要的。每當一個電話到達超節點時,它會檢查你是否可能知道答案,只有在那種情況下才會給你打電話。
這些超節點與其他節點有許多連線,這意味著它們擁有一個非常大的地址簿。通常,它們會與地址簿中其他 16 個超節點保持聯絡,並將問題傳送給它們,這些超節點會將問題傳送給另外 16 個超節點。此外,它們還擁有大約 16 個葉子節點,這些葉子節點不能或不想打很多電話,超節點會接受來自它們的電話,並且知道它們的專長或檔案。對於人類世界來說,專長就是指它們所擁有的資訊。
這可能看起來對超節點來說是一個不公平的交易,因為它們為保持網路完整而投入的資源遠遠多於葉子節點,但事實並非如此。雖然超節點(UP)將大部分時間用於維護網路執行,但葉子節點專門負責收集和傳遞資訊。因此,當任何一個超節點或葉子節點想要知道某件事時,它只需發起一個電話,一個葉子節點專家就可以向它們解釋。這樣,人們就會專門從事某個領域,從而使所有人都能獲得更多好處。
超節點間查詢路由協議
雖然有了超節點,並非每個人都需要參與向其他人傳送問題,人們可以專門負責共享他們的資訊,但超節點仍然會將每個問題傳送給每個人,而不會考慮該超節點是否擁有包含這些檔案的葉子節點。這聽起來很正常,因為超節點如何知道其他超節點擁有哪些檔案呢?答案再次來自現實生活。一個普通人認識她的朋友,並且知道他們中哪些人可能知道某個特定問題的答案,哪些人肯定不知道。在現實生活中,這通常是透過友好的聊天來完成的。
現在,計算機通常不會閒聊,因此它們不會透過這種方式交換這些資訊。因此,開發了查詢路由協議。在這個協議中,每個葉子節點都會告訴它的超節點它擁有哪些檔案,但它不會使用檔名(因為檔名會佔用太多空間),而是將檔名中的每個單詞都儲存為數字(畢竟這些是計算機)。你可以想象這個過程就像玩戰艦遊戲一樣(這些數字形成了一個帶有兩個座標的棋盤)。超節點不會將所有問題都發送給葉子節點,而只發送那些它可能能夠回答的問題(擊中了一艘戰艦),這樣葉子節點就會收到更少的無用電話。
既然這會減輕葉子節點的壓力,為什麼不擴充套件它呢?正是這樣做的。現在,所有超節點都將其棋盤傳送給其直接鄰居。它們只將那些還有一步就能完成的搜尋傳送給那些棋盤上擊中了一艘戰艦的超節點。這意味著,搜尋的最後兩步將只在有可能產生結果的情況下才會進行。你可以很容易地理解為什麼這會大幅減少頻寬使用:想象一棵樹,一棵普通的樹,而不是那些數學構造的樹。如果你試圖數樹葉,你幾乎不可能數清。但如果你把樹葉拿走,只數樹枝,你的工作量會少很多。如果你現在拿走所有這些小樹枝,你就可以真正開始數它們了。QRP 並沒有把所有的樹葉和小樹枝都拿走,而是去掉了那些無法給你答案的樹葉和小樹枝。由於每個問題必須經過的部分都會消耗頻寬,而且葉子節點比樹枝多得多,在許多情況下,去掉最後兩步中的很多步驟(意味著去掉很多葉子節點和小樹枝),就會減少計算機需要傳送的問題數量(葉子節點比樹枝多得多)。這個例子並不適用於整個 Gnutella 網路,但在這裡它很適合。
搜尋:動態查詢
現在,雖然 Ultrapeer 模型和 QRP 部分解決了您沒有時間向他人正確解釋某事,或得到解釋的問題,因為電話不斷響起,詢問您不知道答案的問題(或者用技術語言來說:因為網路流量超過了您的連線速度),但仍然存在另一個問題,如果您仔細觀察,可能通常甚至不會被發現。在現實世界中,Ultrapeer 會尋找一位能夠為您提供資訊的專家,直到他/她找到一位為止,然後停止。在計算機世界中,問題會不斷傳遞下去,傳遞給儘可能多的聯絡人,而不會檢視是否已經有答案。
動態查詢改變了這一點。現在 Ultrapeers 一次詢問另一個 Ultrapeer,等待一段時間,看看他們是否得到答案。當他們得到足夠多的答案感到滿意時,他們就會停止詢問更多。這聽起來很自然,但對於 Gnutella 來說卻是一個很大的進步,因為它節省了浪費在非常流行的問題上的資源。我將再次以大學領導為例:現在,如果您詢問大學領導,您的 Ultrapeers 會首先檢視他們是否直接認識能夠回答您問題的人。然後,他們會簡單地提供一些他們認識的住在校園裡的人的號碼。您仍然會收到不止一個答案,因為他們會給您不止一個號碼,因為他們不能確定您是否能聯絡到他們給您的所有號碼。但是您不會收到成千上萬的電話號碼(來自校園中每個學生的號碼),首先是因為 Ultrapeers 在一些沒有給您額外好處的事件上浪費時間,其次,因為您永遠無法打給所有那些人,第三,因為那樣您可能無法再聯絡到您的 Ultrapeers,因為他們會忙於接聽來自其他告訴他們號碼的人的回電,並將您的問題傳送給其他 Ultrapeers。
無需搜尋即可查詢資源,即下載網格
現在您可能會說,“但我無法從這三個人那裡下載,因為其他人已經下載了。我想獲取所有我可以下載的地址。”(您並不是唯一有這種想法的人。我也是這樣想的。)透過觀察現實世界,我們也可以找到解決這個問題的方法,而無需浪費太多資源。在那裡(在現實世界中),如果您要求一位專家向您解釋某事,而這位專家很忙,他或她會認識一些其他專家(因為他們彼此認識),他們可能現在有更多時間。
將此應用於 Gnutella 並不像 Ultrapeer-Leaf 模型或動態查詢模型那樣容易。但程式設計師找到了解決方法。正如我在動態查詢模型中所述,您將獲得不止一個可以詢問的號碼。現在,當您致電應該知道答案的人時,您也會向他或她提供您知道的其他號碼。這樣,專家們就會相互認識(與我之前提到的 GWebCaches 一樣,它們會了解彼此)。由於所有詢問者都會帶來自己的號碼集,專家們會了解越來越多的其他地址,當您要求他們解釋,而他們現在沒有時間時,他們會將這些地址提供給您(即使他們有時間,他們也會這樣做,以防萬一他們會被打斷,因為在 Gnutella 中,您可以從多個來源同時下載,就像您可以在 overnet 網路中一樣(該網路將此方法發揮到極致,但實際上僅對大型檔案有效)。此外,專家們也會在您知道足夠多的知識可以教導他人後,將您新增到他們備用聯絡人的號碼中。
這就是為什麼很多人從您那裡下載您剛剛下載的檔案的原因。
下載
群集和部分檔案共享
群集的解釋很快(但在朋友的朋友模型中很難實現,所以我只在此部分省略了它)。它的工作原理是簡單地同時從不止一個人那裡獲取一個檔案。該檔案被簡單地分成幾個部分,就好像您想從一些朋友那裡得到一本書,他們每個人只複製了幾頁一樣。當您要求每個人複製書的不同部分時,您將獲得完整的書,而他們每個人只需要做很少的工作(如果一個人沒有時間去做,另一個人可以做)。
群集與下載網格和部分檔案共享 (PFS) 配合使用效果最佳,PFS 允許人們共享他們正在下載的檔案,因為他們可以共享他們已經擁有的部分,而他們仍然從其他人那裡下載。您可以複製您擁有的那些頁,而無需擁有整本書,因為您的頁都是編號的,朋友可以向您詢問特定頁碼。
透過防火牆下載
想象一下,有些人無法接聽電話,但只能打電話給其他人(可能是因為他們只使用公用電話,或者他們的號碼沒有顯示在您的電話上,他們不喜歡給出自己的號碼,因為他們不喜歡接到推銷電話,或者接到恐嚇他們的電話)。在 Gnutella 中,這些是位於防火牆後面的計算機。它們可以打電話給其他人並從他們那裡獲取資訊,但沒有人可以打電話給他們。
解決方案是讓防火牆後的使用者定期打電話給他們的 Ultrapeers,當有人想打電話給他們時,他或她只需打電話給 Ultrapeers,然後 Ultrapeers 同時接聽兩部電話,一部是防火牆後的使用者(無法接聽電話的使用者)接聽的電話,另一部是您撥打的電話。這樣您就可以與防火牆後的使用者通話,但這需要同時進行兩通電話,這意味著在計算機世界中,它需要兩倍的頻寬。防火牆後的使用者始終保持與 Ultrapeers 的連線,Ultrapeers 僅轉發資訊或資料。
有一些計劃可以幫助 Ultrapeers 節省這種額外的頻寬使用,方法是讓其他人來連線電話。然後,當有人想從防火牆後的專家那裡獲取資訊時,Ultrapeer 會告訴防火牆後的使用者和詢問者打電話給第三個人。然後,這個人會同時接聽兩部電話。在 Gnutella 中,大多數人擁有三到五部電話,所以這不是什麼大問題。這些電話聯結器很可能被稱為路由節點。
檔案磁力連結
檔案磁力連結偏離了朋友的朋友模型。它們是網頁上的連結,您只需點選它們,它們就會告訴您的檔案共享程式搜尋 Gnutella(實際上還包括其他網路)以查詢特定檔案,並下載該檔案。
您可以想象它就像報紙上的一篇文章,它告訴您一些資訊,這些資訊會讓您的 Ultrapeers 獲得您要從他們那裡學習的專家的確切資訊。在現實世界中,您很可能會找到一位專家,以及從他或她那裡學習的人。
使用磁力連結,您可以避免獲取不良檔案,因為它們使用雜湊字串,這就像專家會告訴您的資訊的摘要一樣。如果他或她開始告訴您廢話,您會立即發現它不符合摘要。在 Gnutella 中,程式會請求那些擁有這些檔案的人已分配了相同摘要(即雜湊字串)的檔案。下載後,程式會進行自己的摘要並檢查它們是否確實匹配。如果不匹配,它會告訴您檔案已損壞。來自相同檔案的摘要始終完全相同,因為它們是透過特定的數學方法完成的,這些方法在給出相同資料(即資訊)時總是得到相同的結果。
與磁力連結不同,KaZaA 連結和 eDonkey 連結並不安全,因為它們使用的方法很容易被偽造檔案欺騙(例如,KaZaA 連結會請求一種型別的摘要,該摘要只檢查資訊的開頭和第一部分,而忽略所有其他內容,以便更快地建立摘要。當然,很容易給您提供虛假資訊,因為他們只需要在開頭說真話,然後就可以隨意撒謊或虛構。有關磁力連結的更多資訊,請訪問 Magnet-Uri 和 MagnetLink.org
現在有一個新的磁力連結版本:KaZaA 磁力連結。遺憾的是,這些連結並不安全,因為它們使用的是 KaZaA 雜湊系統(不完整的摘要),並進行了一些更改(它們現在添加了另一個更小的摘要,該摘要可能會告訴您有關缺失部分的資訊,但它們沒有公佈如何建立它)。如果 KaZaA 磁力連結提供有關搜尋詞的資訊,它們可能與 Gnutella 配合使用,但不能保證您能獲得他們提供的內容。如果您在連結中發現“kzhash”一詞,它可能不安全(除了名稱放置得有點不對之外)。
Lime Wire LLC
LimeWire 是一個用於跨平臺 Java 平臺 的 點對點檔案共享 客戶端,開源(GPL),它使用 Gnutella 網路查詢和傳輸檔案。它還鼓勵使用者支付費用,然後使用者就可以使用 LimeWire Pro。它還透過使用 C++、Boost 許可的 libtorrent 庫支援 BitTorrent 協議。
軟體實現
要加入 Gnutella 網路,您可以使用下面列出的客戶端之一
- Deepnet Explorer(http://www.deepnetexplorer.com/)是一個帶有 RSS 新聞閱讀器、P2P 客戶端整合(Gnutella)和釣魚警報的瀏覽器,閉源,僅限 Windows,免費軟體。
- Phex 是一個跨平臺 Java 客戶端。
- XoloX
- Gnucleus - Gnutella、Gnutella2 (G2) 使用 C++ 和 Microsoft MFC 庫編寫。核心是 LGPL,並使用 Windows COM-base 與 GPL 前端通訊。
- Gtk-Gnutella,GPL,適用於 GNU/Linux。
- Hydranode(多協議,在 eDonkey2000/eMule 部分中引用)
- ezpeer 是一箇中國客戶端。
- pp365 是一箇中國客戶端。
- POCO 是一箇中國客戶端,使用 GnucDNA。
- Bearshare 是一個針對 Window 的免費閉源軟體。
- CocoGnut 適用於 RISC OS。
- Swapper 是一個針對 Windows 的免費閉源軟體,使用 .NET。
- TrustyFiles 適用於 Windows,支援 FatTrack (KaZaA)、Gnutella 和 G2。
- Shareaza(http://shareaza.sourceforge.net/)是一個開源(GPL)軟體,用 C++、MFC 和 ATL 編寫。多網路點對點檔案共享客戶端,支援 Gnutella2 (G2)、Gnutella、eDonkey2000/eMule、BitTorrent、FTP 和 HTTP 協議。
- FrostWire(http://sourceforge.net/projects/frostwire/)是 Gnutella 網路的點對點 (P2P) 資訊共享客戶端。該專案與 LimeWire LLC 無關。它是 Limewire Java 實現的一個分支,承諾永遠不包含內容過濾器。FrostWires 的原始碼(Java)根據 GNU GPL 開源許可證授權。更新版本已遷移到使用 BitTorrent 協議。
- Acquisition 是一個基於 Limewire 核心的 Mac OS X 客戶端,用 Cocoa 編寫,共享軟體。
- XNap 是一個使用 Limewire Core 用於 Gnutella 的 Java 多網路程式。
Ares Network
Ares(軟體實現)開發於2002年中期,最初使用Gnutella網路。執行六個月後,它切換到自己的網路,該網路包含葉子節點和超級節點的P2P架構。由於協議難以識別,Ares有時是唯一可以在受限網路(例如某些大學校園)上執行的P2P客戶端。
軟體實現
- Ares(http://aresgalaxy.sourceforge.net/)是一個用Delphi/Kylix實現的聊天/檔案共享P2P軟體。它基於一個組織成葉子節點和超級節點的網路,形成了一種具有廣播式搜尋的拓撲結構。Ares可以透過DHT技術提供更廣闊的搜尋範圍,使用MIME過濾器與DHT引擎互動。Ares使用者還可以加入聊天室或建立頻道。它適用於32位MS Windows作業系統(NT/2000/XP),並根據GPL許可證(GNU通用公共許可證)釋出開原始碼。從1.9.0版本開始,允許防火牆後的兩個對等節點之間進行資料共享。從1.9.4版本開始,Ares包含了對BitTorrent協議的支援。從1.9.9版本開始,Ares Galaxy支援SHOUTcast網路廣播電臺。
- 已停止的實現
- Warez P2P是一個專有的P2P檔案共享服務,它使用Ares網路,並提供類似於Kazaa的服務。在1.6版本之前,Warez P2P是Ares Galaxy的克隆,由義大利開發人員Alberto Trevisan建立,但從那時起,它一直由Neoteric Ltd獨立開發,直到最近才被停用。
直接連線
直接連線是一種點對點檔案共享協議/網路,但它使用中心伺服器,這種對中心點的依賴也體現在舊的Napster網路中,每個伺服器都構建了一個獨立的網路(不像eMule那樣是混合型)。需要注意的是,一些客戶端現在也正在實現DHT,這將導致使用的網路統一。直接連線協議最初由Jonathan Hess開發,用於在Neo-Modus直接連線(NMDC)v1上使用,該協議於2001年9月釋出,並在2003年7月釋出的NMDC v2中部分使用。
直接連線將伺服器定義為HUB。客戶端連線到中心HUB,該HUB包含連線到它的客戶端或使用者列表。然後,使用者可以搜尋要下載的檔案,或者與其他在場(在該伺服器上)的使用者聊天。
直接連線還為檔案傳輸實現了Tiger樹雜湊(TTH)。
NMDC協議
由Jon Hess在Neo-modus協議映象(http://www.teamfair.info/wiki/index.php)上建立
ADC協議
ADC協議(http://dcplusplus.sourceforge.net/ADC.html)類似於Neo-Modus直接連線(NMDC)協議。它包含一個用於客戶端-伺服器網路的文字協議,建立的目的是簡單但可擴充套件。
Jon Hess透過Neo-Modus直接連線客戶端/HUB貢獻了最初的直接連線想法,為該協議的建立做出了貢獻。其他主要貢獻來源是Jan Vidar Krey的DCTNG草案,該草案導致了Dustin Brody、Walter Doekes、Timmo Stange、Fredrik Ullner、Fredrik Stenberg等人的後續工作。
HUB軟體實現
- DConnect Daemon(http://www.dc.ds.pg.gda.pl/)是一個用C語言編寫的開源直接連線HUB(作為守護程序執行)。目前可以在GNU Linux和FreeBSD下執行,但計劃使其能夠在所有Unix和Windows系統上執行。作為守護程序,它在後臺執行,不需要任何Xwindow系統。支援telnet管理控制檯。
客戶端軟體實現
- NeoModus直接連線
- DC++(http://dcpp.net/或http://sourceforge.net/projects/dcplusplus/)是一個旨在使用ADC協議生產檔案共享客戶端的專案。它還支援連線到直接連線網路,在GPL下發布開原始碼,使用C++/MFC在Windows上執行。它主要由Jacek Sieka開發,暱稱arnetheduck。
- BCDC++
- RevConnect(http://www.revconnect.com/)還支援Kademlia,在GPL下發布開原始碼,使用C++/MFC在Windows上執行。
- Strong DC++(http://strongdc.berlios.de/download.php?lang=eng)在GPL下發布開原始碼,使用C++/MFC在Windows上執行。
- ApexDC++(http://www.peerwebdc.tk/ - http://sourceforge.net/projects/apexdc/)基於Strong DC++。它具有許多功能,例如用於阻止IP地址的外掛(使用PeerGuardian阻止列表)、超級種子、自定義、主題以及一個不錯的Vista風格的通用使用者介面,在GPL下發布開原始碼,使用C++/MFC在Windows上執行。
- TkDC++(http://tkdcpp.com)在GPL下發布開原始碼,使用C++/MFC在Windows上執行。
- GtkDC(http://gna.org/projects/gtkdc/)是用C語言編寫的直接連線客戶端,基於GIMP工具包2.0 GUI。它旨在在基於UNIX的平臺上執行,但經過少量移植,它應該可以在Windows平臺上使用Gtk庫執行。根據GNU通用公共許可證V2或更高版本授權。
- FlylinkDC++(http://www.flylinkdc.com和http://www.flylinkdc.ru)基於StrongDC++
eDonkey
eDonkey是eDonkey網路(也稱為eDonkey2000網路或eD2k)的原始客戶端,由MetaMachines(Sam Yagan和Jed McCaleh)建立和管理,總部位於紐約市。它擁有一個穩定的P2P社群,該協議比BitTorrent更早,誕生於2002年,就在Napster關閉後不久,並與FastTrack網路競爭。2005年6月,娛樂行業在美國最高法院取得了勝利,最高法院裁定,如果檔案共享開發人員誘導了這種行為,他們可以被起訴侵犯版權。2005年9月,美國唱片業協會(RIAA)向包括MetaMachines在內的多家商業P2P開發商傳送了多封停止和終止信函,由於沒有資金來應對最高法院裁決的解釋,Sam Yagan承認失敗,因為他向美國參議院司法委員會作證。
2006年9月11日,使用者無法獲得eDonkey2000客戶端軟體,2006年9月12日,MetaMachines以3000萬美元(美元)達成和解,該協議結束了MetaMachines在未來處理任何P2P技術的任何途徑...
eDonkey網路是中心化的(因為它依賴於伺服器)以提供內容的去中心化共享(未儲存在伺服器上),仍然有許多軟體實現支援該網路,最流行的是eMule。
協議
"eMule協議規範"(http://sourceforge.net/project/showfiles.php?group_id=53489&package_id=145950)由Yoram Kulbak和Danny Bickson編寫,DANSS(分散式演算法、網路和安全系統)實驗室 - 希伯來大學計算機科學與工程學院 - 以色列 - 2005年1月20日,由Emule專案提供的PDF文件。
Kademlia
由eDonkey2000的建立者Jed McCaleb啟動,作為Overnet專案,以克服對伺服器的需求。Overnet實現了Kademlia演算法。2006年末,Overnet及其所有Overnet擁有的資源被關閉,這是因為來自RIAA和其他機構的法律訴訟。然而,由於Overnet的核心是去中心化的,Overnet客戶端仍然能夠以有限的功能執行。
KadC庫(http://kadc.sourceforge.net/)提供了一個開源C庫,用於在基於Kademlia的分散式雜湊表中釋出和檢索記錄。
一篇名為Kademlia:一種基於XOR度量的點對點資訊系統的較舊論文,也是關於該協議的資訊來源。
該網路現在被稱為Kademlia,並得到許多舊eDonkey/Overnet客戶端實現的支援,尤其是eMule專案。Kademlia是一個研究工作,旨在基於XOR度量路由實現一個功能齊全的點對點系統。特別令人感興趣的是,對高效資料儲存和查詢的目標;匿名性;網路、內容和使用者安全以及身份驗證。
eMule內容資料庫

(http://content.emule-project.net/)由eMule專案團隊為eDonkey2000和Kad網路使用者提供的一項服務,使免費內容可供下載,並易於查詢。內容資料庫已於2004年新年左右上線。
軟體實現
- eMule(http://www.emule-project.net/)是一個基於eDonkey2000網路的檔案共享軟體實現,但它提供了比標準客戶端更多的功能,開源C++/MFC,僅限Windows,根據GPL授權(http://sourceforge.net/projects/emule/)
- Xmod(http://savannah.nongnu.org/projects/x-mod/)Xmod專案基於eMule客戶端,在GPL下發布開原始碼。
- xMule(http://www.xmule.ws/)即X11 Mule,旨在將eMule的克隆帶到幾乎所有主要的Unix平臺,特別側重於Linux。使用wxWidgets進行GUI的C++,在GPL下發布開原始碼。
- MLdonkey ( http://mldonkey.sourceforge.net ) 是一款跨平臺、多網路的 P2P 實現。它支援多個大型網路,例如 eDonkey、Overnet、Kademlia、Bittorrent、Gnutella (Bearshare、Limewire 等)、Gnutella2 (Shareaza) 或 Fasttrack (Kazaa、Imesh、Grobster)。網路可以啟用或停用。搜尋在所有啟用的網路上並行執行。對於某些網路,每個檔案可以從多個客戶端同時下載。
- AMule ( http://www.amule.org/wiki/ ) 該專案基於 eMule 客戶端,也使用 C++,但也使用 wxWidgets 和 crypto++。在 GPL 下開源,目前支援 Linux、FreeBSD、OpenBSD、Windows、MacOS X 和 X-Box,無論是在 32 位還是 64 位計算機上。
- eMule Bowlfish ( http://pwp.netcabo.pt/DeepSea/ ),另一個基於 eMule 的專案,旨在提供一個受限的網路解決方案。
- Hydranode ( http://hydranode.com/ ) 一個模組化、外掛驅動的點對點客戶端框架,其設計理念是真正的多網路下載(支援 eDonkey2000 和 Bittorrent 網路)。在 GPL 下開源,支援 Linux 和 Windows。
- Shareaza ( 多協議,在 Gnutella 部分提及 )
BitTorrent
BitTorrent 是一種協議 ( BitTorrent 協議規範 v1.0 ) 由 Bram Cohen 建立,源於 Gnutella 的概念,但主要設計用於透過網際網路分發大型計算機檔案並允許 WEB 整合,事實上,它旨在替代舊的集中式 HTTP 下載,而不是一個完整的 P2P 網路。因此,它最初避免了透過網路傳輸搜尋請求的限制,最近隨著類似於 eDonkey 解決方案的 DHT 的採用,這種情況已經得到改善,該解決方案允許在整個網路中進行搜尋。使 BitTorrent 成為一個兩層 P2P。
BitTorrent 用於分發合法內容,但本身並沒有對共享材料的版權狀態進行任何區分,與任何其他分散式網路一樣,這允許大規模侵權。Bram Cohen 和 Ashwin Navin 於 2004 年 9 月 22 日創立了 BitTorrent, Inc.,總部位於 舊金山,加利福尼亞州,是一傢俬營的 美國 公司,開發變革性的技術和產品,繼續推動更有效和開放的網際網路的發展,也透過研發和開放規範促進 BitTorrent 協議的開發。
BitTorrent ( http://www.bittorrent.com ) 也是該協議原始實現的名稱。它最初是一個 Python ( 原始碼和舊版本 ) 應用程式,現在被稱為 BitTorrent 主線,它導致了一個功能齊全的商業企業。BitTorrent.com 是 BitTorrent Inc. 的一部分,現在已成為使用 BitTorrent 協議下載娛樂內容的目的地。該網站提供快速、按需訪問最全面的授權目錄,其中包含數千部電影、電視劇、音樂和遊戲,但它也為內容創作者提供了一個釋出平臺,讓他們可以在最具代表性的主要電影工作室、電視臺和唱片公司的作品中列出自己的作品。
BitTorrent Inc. 還透過更廣泛的標準機構(如網際網路工程任務組 (IETF) 的 LEDBAT 工作組 ( http://www.ietf.org/html.charters/ledbat-charter.html ))做出貢獻。BitTorrent, Inc. 擁有 BitTorrent 主線和 µTorrent 客戶端,以及 BitTorrent DNA (Delivery Network Accelerator),這是一種基於 BitTorrent 協議的免費內容交付服務,它將使用者貢獻的頻寬的力量帶給了傳統的內容釋出者,同時讓釋出者完全控制他們的檔案。
BitTorrent 協議本質上是點對點的,它最初的創新方法在於不以建立真正的分散式網路為中心,而是以特定的共享資源為中心,在這種情況下是檔案,最好是大型檔案,因為使用者直接相互連線以從其他對等方(也已下載檔案或檔案的一部分)傳送和接收大型檔案的片段。然後將這些片段重新組裝成完整的檔案。由於使用者相互下載,而不是從一箇中央伺服器下載,因此下載大型檔案的頻寬負載在使用者下載的許多來源之間分配。這降低了託管大型檔案的使用者的頻寬成本,並提高了下載大型檔案的使用者的下載速度,因為該協議利用了每個下載者的上行頻寬來提高整體分發的效率,並在下載者方面獲得優勢。但是,有一箇中央伺服器(稱為跟蹤器)協調所有此類對等方的操作。跟蹤器只管理連線,它對正在分發的檔案內容一無所知,因此可以使用相對有限的跟蹤器頻寬支援大量使用者。
BitTorrent 的主要理念是使用者應該在下載(接收入站)的同時上傳(傳輸出站)。透過這種方式,網路頻寬可以得到最有效地利用。與其他檔案傳輸協議相比,BitTorrent 的設計在對特定檔案感興趣的人數增加時效果更好。
BitTorrent 正在重新定義人們分享和搜尋內容的方式,並且正在變得越來越流行,用於下載電影、電視劇、完整的音樂專輯和應用程式(它在效能方面優於其他替代方案),因為它非常特定於檔案,並且在 P2P 內容的“新”因素方面獲得了優勢,更多使用者意味著更快的速度,但它不是罕見檔案或分發不被高度追捧的內容的最佳解決方案。
要下載使用 BitTorrent 託管的檔案,使用者必須有一個 BitTorrent 客戶端,而要釋出檔案,使用者必須執行一個跟蹤器。
2004 年 11 月,BitTorrent 佔網際網路所有流量的驚人 35%,2006 年,根據英國網路分析公司 CacheLogic 的資料,BitTorrent 協議已上升到網際網路所有流量的 60% 以上。因此,一些 ISP 正在進行流量整形,也稱為頻寬限制,這意味著他們在其網路中降低了協議優先順序,並降低了其整體效能,這導致了兩種型別的響應,一些 ISP 正在投資升級其網路併為該協議提供本地快取,而該協議的實施者開始透過加密和隨機化來對抗拒絕適應的 ISP,這種適應的必要性以及由於偏離其建立者的願景而導致的越來越高的流行度,正在將協議的演變越來越多地交到獨立開發人員手中。
BitTorrent 系統高度依賴於對等方的積極參與,因為它的唯一目標是共享檔案。罕見和“舊”內容在系統中不容易找到,只有高度追捧的內容才能從這種 P2P 實現中獲益。小檔案也無法完全從中受益,因為複製所需的時間太短,在某些極端情況下甚至會降低體驗。
內容索引器
有許多不同的 BitTorrent 網站索引內容,每個網站都提供有關透過 BitTorrent 協議分發的檔案的相關資訊。它們通常包含多個種子檔案和這些檔案的索引。在典型情況下,使用者會進入這樣的網站,並根據其他使用者在網站上釋出的種子檔案描述,瀏覽或搜尋他們想要的內容。如果找到包含所需內容的種子檔案,使用者就可以下載該種子檔案。
合法種子 ( http://www.legaltorrents.com ),一個包含 Creative Commons 許可的、合法下載的、可自由分發的創作者認可檔案的集合,從電子/獨立音樂到電影和書籍,這些檔案已透過 BitTorrent 提供。每個獲取 BitTorrent 客戶端並下載的人都有助於貢獻更多的頻寬。
還有 OpenBitTorrent ( http://openbittorrent.com )、OpenBitTorrent.kg ( http://www.openbittorrent.kg )、myTorrentTracker ( http://www.mytorrenttracker.com ) 和 trackhub ( http://trackhub.appspot.com ),它們都是 BitTorrent 跟蹤器,任何人都可以免費使用它們來共享檔案。您不需要在任何地方註冊、上傳或索引種子檔案,您只需在種子檔案中包含跟蹤器 URL 即可。
其他
- bt.etree.org ( http://bt.etree.org/ ),etree.org 社群提供的一個網站,用於分享對貿易友好的藝術家的現場音樂會錄音。
- 海盜灣 ( http://thepiratebay.org )。
- mininova ( http://www.mininova.org/ )。
這些網站各有特色,方便使用者搜尋。請參見維基百科的 BitTorrent 網站比較 頁面。一些大型 BitTorrent 跟蹤器網站被關閉,原因是擔心版權持有者(主要是大型商業利益代表)的問題。雖然從短期來看,這確實可以防止大規模侵犯版權,但它也給合法使用帶來了困難,而且還存在虛假通知的問題,即聲稱侵犯了他們並不擁有的作品的權利。從長遠來看,這無助於解決問題,並迫使該協議以避免這種型別的破壞的方式發展。人們適應這種壓力的一種方法是建立僅透過邀請才能訪問的私人跟蹤器。
協議
如前所述,BitTorrent 是一種用於分發檔案的協議。它透過 URL 識別內容,旨在與 Web 無縫整合。與普通 HTTP 相比,它的優勢在於,當多個下載者同時下載同一檔案時,每個下載者都可以互相上傳,這使得檔案源能夠以較小的負載支援大量下載者。( http://www.bittorrent.com/protocol.html )。BitTorrent 借鑑了其他 P2P 協議的一些術語,但也建立了一些新的術語(參見維基百科頁面 BitTorrent 詞彙表 瞭解更完整的列表)。
- 種子檔案
- “種子檔案”可以指
.torrent元資料 檔案,也可以指它描述的所有檔案,具體取決於上下文。種子檔案,正如 BitTorrent 規範中定義的那樣,包含多個 跟蹤器 的 URL,這些跟蹤器協調蜂群中對等節點之間的通訊,並提供有關所有可下載檔案的完整性元資料,包括其名稱、大小和 校驗和。它還可以包含在 BitTorrent 規範的擴充套件中定義的附加元資料,這些擴充套件被稱為BitTorrent 增強提案。例如,這些提案中的元資料可以用於說明種子檔案的建立者和建立時間。
- 索引
- 索引 是一個 .torrent 檔案列表(通常包括描述和其他資訊),由一個 網站 管理並可供搜尋。索引 網站有時也被稱為跟蹤器,但它跟蹤的是“種子檔案”,而不是 BitTorrent 跟蹤器)。
該協議部分依賴於集中式跟蹤器,因為需要跟蹤器。
- 客戶端
- 該程式可以透過 BitTorrent 協議實現 P2P 檔案共享。它仍然表明該協議的半集中化性質,在協議定義中,該術語有時會被“對等節點”(例如:peer_id)代替,例如 Gnutella 將參與者始終稱為對等節點或節點,並將實現者稱為供應商。
- 跟蹤器
- 跟蹤器 是一臺伺服器,負責跟蹤蜂群中哪些是種子節點,哪些是對等節點。客戶端會定期向跟蹤器報告資訊,並交換接收有關其他客戶端的資訊,以便它們可以連線。跟蹤器不直接參與資料傳輸,也不擁有檔案的副本。
- 抓取
- 當客戶端向跟蹤伺服器傳送請求以獲取有關種子檔案統計資訊的請求時,例如與誰共享檔案以及其他使用者共享的程度。
隨著 DHT(分散式雜湊表)的採用,BitTorrent 協議開始變得不再僅僅是圍繞單個資源的半集中式分發網路,它變得更加分散,並消除了靜態控制點(跟蹤器),這是透過依賴 DHT 和使用 PEX 擴充套件實現的。允許易變的對等節點也充當跟蹤器,但即使這解決了對靜態跟蹤器伺服器的需求,網路仍然圍繞內容集中。對等節點沒有預設能力在該上下文中之外相互聯絡。
- 種子節點
- 種子節點 是一個擁有種子檔案完整副本的客戶端,並且仍然提供上傳。種子節點 越多,獲得更高下載速度的機會就越大。如果種子節點播種下載的完整副本,它們應該能夠獲得更快的下載速度。
播種規則,就像我們在超級播種的特殊情況下看到的那樣,是客戶端在一般配置中本地實現的變數和演算法,通常以某種形式開放供使用者控制。這些規則控制並可能用於最佳化選擇要播種的可用種子檔案,而不是僅僅啟動列表中的下一個種子檔案,並根據播種等級對種子檔案進行排序。
- 播種等級
- 是一個優先順序評級,它是根據客戶端的活動播種規則進行計算得出的,用於根據種子檔案的稀缺程度對它們進行優先順序排序。它生成一個優先順序佇列,其中可用的種子檔案被分配到可用的開放傳輸時隙。幾個因素可以影響播種等級。
- 種子比例。比例越低,種子檔案越稀缺,播種等級應該越高,優先順序應該更高,優先播種罕見的種子檔案。
- 種子數量。與種子比例類似,但不僅考慮完整的種子,還考慮對種子檔案感興趣的任何客戶端的數量,效果相反,優先考慮更大的蜂群和需求量高的種子檔案。
- 定時輪換。種子檔案將輪流進入和退出播種模式。每個種子檔案都會被賦予一段播種時間。
- 預設。每個種子檔案將根據它們新增到播種列表的順序進行播種。
- 宣佈
- 與“抓取”類似,但意味著客戶端還宣佈它希望加入蜂群,並且伺服器應該將其新增到該蜂群的對等節點列表中。
- 可用性(也稱為分散式副本)
- 這是一個在分散式系統中常用的術語,在本例中,它指的是客戶端可用的完整檔案副本數量。每個種子節點都將此數字增加 1.0,因為它們擁有一個完整的檔案副本。連線的對等節點如果擁有檔案的一部分,則會將其分數新增到可用性中,如果其他對等節點沒有擁有檔案的這部分,則會這樣做。
- 示例:一個擁有 65.3% 下載檔案的對等節點會將可用性增加 0.653。但是,如果兩個對等節點都擁有相同的下載檔案部分 - 比如 50% - 並且只有一個種子節點,那麼可用性就是 1.5。
- 感興趣
- 描述一個希望獲取客戶端擁有的檔案部分的下載者。例如,如果下載者不擁有上傳者擁有的某個部分,並且希望獲得該部分,那麼上傳者將標記下載者為“感興趣”。
- 下載者
- 下載者 是任何沒有擁有整個檔案並正在下載檔案的對等節點。這個術語,在 布拉姆·科恩 的 Python 實現中使用,沒有吸血鬼所具有的負面含義。布拉姆選擇下載者 而不是吸血鬼,因為 BitTorrent 的等價交換確保下載者也會上傳,因此不會不公平地被歸類為吸血鬼。
- 阻塞
- 描述一個被拒絕檔案部分的客戶端。客戶端在以下幾種情況下會阻塞另一個客戶端。
- 第二個客戶端是種子節點,在這種情況下,它不希望任何部分(即,它完全不感興趣)。
- 客戶端已經以其最大容量上傳(它已達到
max_uploads的值)。 - 第二個客戶端已被 列入黑名單,因為它具有攻擊性或使用了列入黑名單的 BitTorrent 客戶端。
- 冷落
- 如果下載客戶端在超過 60 秒的時間內沒有收到上傳客戶端的任何資料,則上傳客戶端會被標記為冷落。
BitTorrent 擴充套件協議
由阿維德·諾貝格和路德維希·斯特里格斯建立(描述參見 http://www.rasterbar.com/products/libtorrent/extension_protocol.html),它是協議的擴充套件,旨在為 BitTorrent 協議的未來擴充套件提供一個簡單且輕薄的傳輸層。該協議使得輕鬆新增新的擴充套件成為可能,而不會干擾標準 bittorrent 協議或不支援此擴充套件的客戶端。
擴充套件訊息 ID 在握手過程中定義,以避免擁有全域性訊息 ID 登錄檔。相反,擴充套件訊息的名稱需要唯一名稱,這在沒有全域性登錄檔的情況下更容易實現。
似乎 Vuze 也有一個並行的實現或變體(http://wiki.vuze.com/w/Azureus_messaging_protocol),它被 Vuze 和 Transmission 都使用。
對等節點交換
對等節點交換 或 PEX 是一種 通訊協議,它擴充套件了 BitTorrent 檔案共享協議。它允許一組使用者(或 對等節點)以更快、更有效的方式協作共享給定檔案。PEX 使用兩種常見的擴充套件協議之一實現。
在 BitTorrent 檔案共享協議的原始設計中,檔案共享組(稱為“蜂群”)中的使用者(對等節點)依賴於稱為 跟蹤器 的中央計算機伺服器來相互查詢並維護蜂群。PEX 透過允許每個對等節點直接更新蜂群中的其他對等節點來了解哪些對等節點當前在蜂群中,從而極大地減少了對等節點對跟蹤器的依賴。透過減少對集中式跟蹤器的依賴,PEX 提高了 BitTorrent 協議的速度、效率和健壯性,使其更加分散。
如前所述,希望獲取檔案副本的使用者通常會先下載一個 .torrent 檔案,該檔案描述了要共享的檔案,以及一個或多個稱為 URL 的中央計算機,稱為 跟蹤器,它們維護著當前共享 .torrent 檔案中描述的檔案的節點列表。在最初的 BitTorrent 設計中,節點依賴於這個中央跟蹤器來互相查詢並維持蜂群。後來 分散式雜湊表 (DHT) 的開發意味著部分節點列表可以由蜂群中的其他計算機儲存,從而減輕中央跟蹤器計算機的負載。PEX 允許蜂群中的節點直接交換有關蜂群的資訊,而無需 (輪詢) 跟蹤器計算機或 DHT。透過這樣做,PEX 利用使用者連線到的節點的知識,詢問他們連線到的節點的地址。這比僅僅依賴跟蹤器更快、更高效,並且減少了跟蹤器的處理負載。它還可以在跟蹤器宕機時將蜂群保持在一起。實際上,一旦節點保留了檔案共享的完整副本,就消除了對分佈的任何控制。
節點交換本身不能用於將新的節點引入蜂群。要與蜂群建立初始連線,每個節點必須透過“.torrent”檔案連線到跟蹤器,或者使用稱為 引導節點 的路由器計算機來查詢描述蜂群節點列表的分散式雜湊表 (DHT)。對於大多數 BitTorrent 使用者來說,DHT 和 PEX 會在使用者啟動 BitTorrent 客戶端並開啟 .torrent 檔案後自動開始工作。一個明顯的例外是“私有種子”,它們不是公開可用的;這些種子將停用 DHT。
Azureus 和 µTorrent 開發人員之間達成協議,任何實現上述兩種機制的客戶端在傳送 PEX 訊息時都會嘗試遵守以下限制
- 在任何給定的 PEX 訊息中,新增的節點不應超過 50 個,移除的節點不應超過 50 個。
- 節點交換訊息的傳送頻率不應超過每分鐘一次。
某些客戶端可能會選擇強制執行這些限制,並斷開忽略這些限制的客戶端的連線。
永久 DHT 跟蹤
隨著 PEX 的實施和對分散式雜湊表 (DHT) 的依賴,向建立真正的無伺服器 P2P 覆蓋網路的演變成為下一步的邏輯步驟,就像我們所見到的 eDonkey 網路一樣。DHT 的工作方式基本相同,它不僅會從舊的跟蹤器獲取資訊,還會從 PEX 的實施獲取資訊,從而建立類似於共享種子的分散式資料庫,作為備份跟蹤器,當所有其他跟蹤器都宕機或無法提供足夠的節點時,以及啟用無跟蹤器種子。如果客戶端啟用了該選項,DHT 充當並新增到種子作為偽跟蹤器,並且可以像普通跟蹤器一樣為每個種子啟用和停用 DHT 跟蹤器。使用這種永久 DHT 跟蹤的客戶端現在是一個完全連線的去中心化 P2P 網路,它們作為新節點進入 DHT,這當然使得私有跟蹤器(或非公共分發)必須排除自己。
- 引導 DHT
由於 DHT 獨立於任何單個跟蹤器(和故障點),因此必須解決首次使用 DHT 時如何引導 DHT 路由表的問題。這是通過幾種方式完成的
- 手動輸入 DHT 節點的主機名和埠號。
- 連線到具有包含 DHT 節點列表的 .torrent 檔案的跟蹤器。
- 下載任何具有廣告支援 DHT 的節點的種子。並非所有客戶端都完全支援,因為它要求客戶端在 BitTorrent 握手 DHT 支援中進行廣告。
- 磁力連結
傳統上,.torrent 檔案是從種子網站下載的。但是,幾個客戶端也支援 Magnet URI 方案。磁力連結不僅可以提供在 DHT 中查詢共享檔案的所需節點所需的種子雜湊,還可以包含檔案的跟蹤器。
BitTorrent 增強提案 (BEP)
BitTorrent 增強提案流程 (BEP) 是由 John Hoffman 啟動的流程。該流程在公共領域文件 ( http://www.bittorrent.org/beps/bep_0001.html ) 中定義。
BitTorrent 增強提案列表 ( http://www.bittorrent.org/beps/bep_0000.html ) 可用。
BEP 是一種設計文件,它向 BitTorrent 社群提供資訊,或者描述 BitTorrent 協議的新功能。BEP 應提供該功能的簡潔技術規範和理由,旨在成為提出新功能、收集社群對問題的意見以及記錄 BitTorrent 設計決策的主要機制。
BEP 作者負責在社群內達成共識並記錄異議。由於 BEP 保持為版本控制的儲存庫中的重構文字檔案,因此它們的修訂歷史是功能提案的歷史記錄。
超級種子
超級種子 在 BEP 16 ( http://www.bittorrent.org/beps/bep_0016.html ) 中指定,是對 BitTorrent 協議 的擴充套件(在不更改協議的情況下實現),旨在僅當存在一個 種子 時使用,它允許管理資源的稀缺性。
在種子檢測到它是檔案唯一來源的情況下,它將嘗試將上傳的資料量降至最低,以保證外部共享並最佳化對稀缺資源的訪問,直到它檢測到其他完整種子存在。該功能由 John Hoffman 構思,並於 2003 年首次在 BitTornado 客戶端中實現。
uTP
uTP 或 µTP(有時也稱為 微傳輸協議)是一個 開源 跨平臺 協議,旨在構建在 UDP 協議之上,是 LEDBAT(一種 TCP 擁塞避免演算法)的類似 TCP 的實現。
µTP 是在 BitTorrent, Inc. 內部開發的,沒有來自網路或 BitTorrent 社群的任何輸入,旨在提供可靠、有序的交付,同時保持最小的額外延遲,以便在干擾其他應用程式時自動減慢在 點對點 檔案共享 種子 的使用者之間傳輸資料包的速率。例如,該協議應自動允許在 BitTorrent 應用程式和 Web 瀏覽器之間共享 ADSL 線路。它最初在 µTorrent 1.8.x 測試版分支中引入,並在 µTorrent 1.9 的 alpha 版本中公佈。現在是 uTorrent 點對點連線的主要傳輸協議。
uTP 在 BEP 29 ( http://bittorrent.org/beps/bep_0029.html ) 中作為 BitTorrent 擴充套件進行記錄。BitTorrent, Inc. 已在 MIT 許可下提供了一個 C++ 實現 ( http://github.com/bittorrent/libutp ),但外部介面嚴格為 C(ANSI C89)。
BitTorrent 協議加密
截至 2005 年 1 月,BitTorrent 流量佔住宅網際網路總流量的三分之一以上。一些 ISP 決定採取不同的措施來控制甚至破壞 P2P 流量,如本書中關於 影子游戲 部分所述。
這就需要提供 BitTorrent 協議加密。混淆和加密使流量更難檢測和監控,因此也更難節流。BitTorrent 協議加密並非旨在提供 匿名性 或 機密性,即使某些解決方案會透過混淆內容來提高機密性。
BitTorrent 的發明者 Bram Cohen 反對在 BitTorrent 協議中新增加密。Cohen 表示他擔心加密會導致客戶端之間出現不相容,強調了大多數 ISP 並沒有阻止種子協議這一點。Cohen 寫道:“我懷疑某些開發人員的 ISP 限制了他們的速率,並且他們更感興趣的是嘗試繞過 ISP 的限制,而不是整個網際網路的效能。”在受到一些關於這一立場的批評後,Cohen 後來在他的 主線客戶端 上添加了接收但不能發起加密連線的功能。值得注意的是,當 µTorrent 被 BitTorrent, Inc. 收購後,隨後成為下一個主線版本時,發起加密連線的功能保留了下來,但預設情況下處於關閉狀態。
加密不會阻止配置為普遍減慢所有加密的、不可識別的或未知協議的流量整形系統,使用的方法很簡單,例如丟包。加密跟蹤器通訊可以防止竊聽節點列表,並且不需要升級點對點連線的兩端,但它需要給跟蹤器施加計算開銷。
- 協議頭加密 (PHE)
- 由 RnySmile 建立,並於 2005 年 9 月 8 日在 BitComet 0.60 版本中首次實現。規範既未釋出,也與 MSE/PE 不相容,而且有說法稱它已經被反向工程,降低了其實用性。
- 訊息流加密 (MSE)/協議加密 (PE)
- 由 Azureus(現為 Vuze)於 2006 年 1 月底開發,後來經過多次修改,以便更廣泛地為其他 BitTorrent 客戶端的建立者所接受。
- 根據規範 ( http://wiki.vuze.com/w/Message_Stream_Encryption ),MSE/PE 使用 金鑰交換 與種子的 infohash 相結合來建立 RC4 加密金鑰。金鑰交換有助於最大程度地降低被動監聽的風險,而 infohash 有助於避免 中間人攻擊。選擇 RC4 是因為它速度快。丟棄 RC4 輸出的第一個千位元組以防止 特定攻擊。
- 該規範允許使用者選擇僅加密報頭或加密整個連線。加密整個連線提供了更多混淆,但會使用更多 CPU 時間。為了確保與不支援該規範的其他客戶端的相容性,使用者還可以選擇是否仍然允許未加密的傳入或傳出連線。支援的客戶端透過 PEX 和 DHT 傳播他們啟用了 MSE/PE 的事實。
- 對該方法的分析表明,對 TCP 會話中前 100 個數據包的資料包大小和資料包方向進行統計測量可以用於識別混淆協議,準確率超過 96%,這使得該解決方案僅對不採用最先進的流量分析的 ISP 有效,主要是較小的 ISP。
存在各種解決方案來保護 BitTorrent 網路免受攻擊,包括加密對等-跟蹤器和對等-對等通訊,使用 Microsoft 的 Teredo 使 TCP 連線在 UDP 資料包內進行隧道傳輸,在攻擊到達終端主機中的 TCP 層之前過濾 TCP 重置,或完全從基於 TCP 的傳輸切換到基於 UDP 的傳輸。每種解決方案都有其權衡。過濾掉攻擊 TCP 重置通常需要核心訪問許可權,並且需要遠端對等體的參與,因為攻擊者必須將重置資料包傳送到本地和遠端對等體。Teredo 並非所有 BitTorrent 客戶端都可用。在新的 UDP 協議中重寫 TCP 可靠性、按順序交付和擁塞控制代表了大量的工程工作,並且需要升級任何對等-對等連線的兩端。
軟體實現
維基百科在 BitTorrent 軟體比較 和 BitTorrent 客戶端使用份額 等文章中提供了一些相關資訊。以下列表旨在提供有關與其他 P2P 協議相關的實現細節的一般想法和比較。
(這不應被視為 BitTorrent 客戶端的完整列表,沒有使用特殊順序。所有連結都已驗證,特別注意了軟體的程式語言和許可證。上次更新時間為 2010 年 9 月 11 日)
- BitTorrent 佇列管理器 ( http://btqueue.sourceforge.net ),一個基於控制檯的 BitTorrent 客戶端,具有內建排程程式以處理多個會話。它旨在輕鬆管理佇列中的會話,而無需重量級的 GUI。外部模組可以搜尋跟蹤器中的新種子並自動提交。開源 (Python 軟體基金會許可證) 專案,使用 Python。
- Vuze 以前稱為 Azureus ( http://azureus.sourceforge.net 或 http://www.vuze.com/ ),一個用 Java 編寫的開源 BitTorrent 客戶端,可能是網路中更高階的對等體 (多個種子下載、排隊/優先順序系統、啟動/停止種子選項、嵌入式跟蹤器、Mainline DHT 等等),但它是一種已知的資源消耗大戶,會消耗大量的記憶體和 CPU 能力。
- µTorrent ( http://utorrent.com ),一個用 C++ 編寫的閉源免費軟體 BitTorrent 客戶端,一個非常完整對等體 (包括頻寬優先順序、排程、RSS 自動下載和 Mainline DHT 等等),具有非常低的系統佔用空間。
- BitTornado ( http://bittornado.com ),一個基於原始 BitTorrent 客戶端的用 Python 編寫的開源 BitTorrent 客戶端。
- BitComet ( http://www.bitcomet.com ),(最初從版本 0.11 到 0.37 被稱為 SimpleBT 客戶端) 是一個閉源但免費的 BitTorrent 客戶端,僅適用於 MS Windows 作業系統,它還支援 HTTP/FTP 下載管理。
- ABC (另一個 BitTorrent 客戶端) ( http://pingpong-abc.sourceforge.net ),一個基於 BitTornado 的開源 BitTorrent 客戶端。
- Transmission ( http://transmission.m0k.org/ ),一個具有簡單圖形使用者介面的輕量級開源 BitTorrent 客戶端,位於跨平臺後端之上。Transmission 在 Mac OS X 上執行,具有 Cocoa 介面,在 Linux/NetBSD/FreeBSD/OpenBSD 上執行,具有 GTK+ 介面,在 BeOS 上執行,具有原生介面。在 MIT/X Consortium 許可證下發布。
- Warez ( http://www.warezclient.com ),一個來自 Neoteric Ltd. 的閉源、僅適用於 MS Windows 的 BitTorrent 客戶端 (以前支援 Ares Network Warez P2P 客戶端)。
- Bits on Wheels ( http://bitsonwheels.com ),一個免費但閉源的實現,用 Objective-C 和 Cocoa 為 Macintosh 編寫。
- Vidora ( http://www.videora.com/ ),一個閉源、免費軟體實現,也支援 Really Simple Syndication (RSS) 提要。
- sharktorrent ( http://sharktorrent.sourceforge.net/ ),一個用 C++ 編寫的開源 (GNU GPL)。這是一個跨平臺 BitTorrent 客戶端,使用 QT、libtorrent 和 boost 庫。
- ted [種子劇集下載器] ( http://www.ted.nu/ ),一個用 Java 編寫的開源 (GNU GPL) BitTorrent 客戶端,它也支援種子 RSS 提要。
- rTorrent| ( http://libtorrent.rakshasa.no ) 是一個基於文字的 ncurses BitTorrent 客戶端,用 C++ 編寫,基於 libTorrent 庫,適用於 Unix (不要與 Arvid Norberg/Rasterbar 的 libtorrent 混淆),其作者的目標是“專注於高效能和良好的程式碼。客戶端和庫都在 GNU GPL 下可用。”
- libtorrent ( http://www.rasterbar.com/products/libtorrent/ ) 來自 Rasterbar Software,一個開源 C++ 庫,實現了 BitTorrent 協議和應用程式的核心必要條件,使用 zlib 和 Boost 庫,特別是 Boost.Asio,並共享 Boost 許可證。該庫也通常用於 嵌入式裝置。該庫還提供對 UPnP 配置的支援。libtorrent 被以下實現使用
- Halite ( http://www.binarynotions.com/halite-bittorrent-client ),一個開源的,在 Boost 軟體許可證下的 BitTorrent 客戶端,使用 libtorrent 庫。用 C++ 編碼,使用 Boost 庫和 WTL (僅限 Windows)。
- FireTorrent ( https://addons.mozilla.org/en-US/firefox/addon/10931 ) 由 Pete Collins、Radical Software Ltd、Jan Varga、Matthew Gertner 共同開發,使用 libtorrent 庫的開源 JavaScript,Mozilla 公共許可證 FireFox 擴充套件/附加元件,用於下載種子。
- Folx ( http://www.mac-downloader.com/ ),閉源,使用 libtorrent 庫 (僅限 Mac)。
- qBittorrent ( http://www.qbittorrent.org/ ),開源 GNU GPL,由一位博士生 (Christophe Dumez) 開發,一個使用 C++ / libtorrent 和 Qt4 圖形使用者介面的 Bittorrent 客戶端。
- Deluge ( http://deluge-torrent.org ),一個開源的,使用 Python 和 libtorrent 的輕量級、跨平臺 BitTorrent 客戶端,用 Python 編寫,在 GNU GPL 許可證下發布。
- Limewire,作為著名的 Gnutella 實現,也透過使用 libtorrent 庫支援 BitTorrent 協議。
- BTG ( http://btg.berlios.de ),用 C++ 實現並使用 Rasterbar Libtorrent 庫的 Bittorrent 客戶端,在 GNU GPL 下發布。提供 Ncurses、SDL、Gtkmm 和 WWW GUI,它們與執行實際 BitTorrent 操作的公共後端進行通訊,僅適用於 OSX、BSD 和 Linux。
- 免費下載管理器 (FDM),( http://www.freedownloadmanager.org ),用 C++ 編寫的開源軟體,在 GNU GPL 下發布,使用 libtorrent 庫 (僅限 Windows)。
- torrent2exe.com,一個網路工具,據稱將 .種子轉換為可執行檔案 (Windows) 以進行分發,閉源,使用 libtorrent 庫。
- Flush ( http://sourceforge.net/projects/flush ) 基於 GTK 的 BitTorrent 客戶端,適用於 Linux,開源 C++/GTK+,使用 libtorrent 庫。
- Pump ( http://www.vipeers.com ),一個閉源影片管理器,透過使用 libtorrent 庫支援 BitTorrent 協議。
- Lince ( http://lincetorrent.sourceforge.net ),開源 C++/GTK+/libtorrent BitTorrent 客戶端,在 GNU GPL 下發布 (Linux/BSD/UNIX 類作業系統)。
- Miro,以前稱為 Democracy Player 和 DTV ( http://getmiro.com ),旨在自動從基於 RSS 的“頻道”下載影片,管理它們並播放它們。用 Python/GTK/libtorrent 編寫的開源軟體,在 GNU 通用公共許可證條款下發布。
- tvitty ( http://tvitty.com ) 使用 libtorrent 的閉源 BitTorrent 下載附加元件,適用於 vista 媒體中心 (僅限 Windows)。
- FatRat ( http://fatrat.dolezel.info ),是一個用 C++ 編寫的適用於 Linux 的開源下載管理器,使用 Qt4 和 libtorrent 庫。
- LeechCraft ( http://leechcraft.org ),開源 BitTorrent 客戶端 (也支援 HTTP/FTP 下載),使用 C++、Qt 和 libtorrent 建立。在 GNU 通用公共許可證下發布。
- MooPolice ( http://www.moopolice.de ),適用於 Windows 的 BitTorrent 客戶端,具有非正統的 GUI。開源 (沒有特定許可證) C++,使用 MFC 和 libtorrent BitTorrent 客戶端庫和 MiniUPnP。
- Linkage ( http://code.google.com/p/linkage ),一個用 C++ 編寫的輕量級 BitTorrent 客戶端,使用 gtkmm 和 libtorrent,在 GNU 通用公共許可證下開源 (不再維護)。
- Arctic Torrent ( http://int64.org/projects/arctic-torrent ),一個適用於 Windows 的小型 BitTorrent 客戶端 (包括 64 位版本)。開源 C++,在 MIT 許可證下,使用 libtorrent。
特定 BitTorrent 論文
- 2003 年 5 月 22 日 - 獎勵機制構建了 BitTorrent 的穩健性 (PDF),Bram Cohen
BitTorrent 檔案分發系統使用“以牙還牙”作為尋求帕累託效率的一種方法。它實現了比任何當前已知的合作技術更高的穩健性和資源利用率。我們解釋了 BitTorrent 的作用,以及如何使用經濟方法來實現該目標。
其他軟體實現
JXTA
JXTA™ 技術是由 Sun™(http://www.jxta.org)建立的一套開放協議,它允許網路上任何連線的裝置,從手機和無線 PDA 到 PC 和伺服器,以 P2P 方式進行通訊和協作。JXTA 對等體建立一個虛擬網路,其中任何對等體可以直接與其他對等體及其資源進行互動,即使其中一些對等體和資源位於防火牆和 NAT 後面或使用不同的網路傳輸。該專案的目標是跨不同的點對點系統和社群的互操作性、平臺獨立性、多種/多種語言、系統和網路,以及普遍性:每個具有數字心跳的裝置。該技術使用 Apache 軟體許可證(類似於 BSD 許可證)進行許可。
大多數實現是用 Java 完成的(在 C 中有一些小的示例)。
iFolder
iFolder(http://www.ifolder.com)是一個仍在早期開發中的開源應用程式,由Novell, Inc.開發,旨在允許跨平臺檔案共享透過計算機網路,使用 Mono/.Net 框架。
iFolder 基於共享資料夾的概念,其中一個資料夾被標記為共享,然後資料夾的內容被同步到網路上的其他計算機,無論是直接在計算機之間進行點對點方式,還是透過伺服器進行。這旨在允許單個使用者在不同的計算機之間同步其檔案(例如,在工作計算機和家庭計算機之間),或與其他使用者共享檔案(例如,一群正在合作進行專案的人)。
iFolder 的核心實際上是一個名為Simias的專案。正是 Simias 監控檔案以進行更改,同步這些更改並控制資料夾的訪問許可權。實際的 iFolder 客戶端(包括圖形桌面客戶端和 Web 客戶端)是作為與 Simias 後端通訊的獨立程式開發的。
iFolder 客戶端以兩種執行模式執行:企業共享(使用伺服器)和工作組共享(點對點,或不使用伺服器)。
Freenet
Freenet 專案(http://freenetproject.org)旨在允許在網際網路上自由交換資訊,而無需擔心審查或報復。為了實現這一點,Freenet 使對手很難發現釋出或下載內容者的身份。Freenet 專案始於 1999 年,於 2000 年 3 月釋出了 Freenet 0.1,並且一直在積極開發中。
Freenet 的獨特之處在於它處理內容的儲存,這意味著如果需要,使用者可以將內容上傳到 Freenet,然後斷開連線。我們發現,這對許多 Freenet 使用者來說是一個關鍵需求。上傳後,內容會在 Freenet 網路中映象和移動,使其難以追蹤或銷燬。只要有人檢索內容,內容就會保留在 Freenet 中,儘管 Freenet 不保證內容會無限期地儲存。
通往 Freenet 0.7 的旅程始於 2005 年,當時人們意識到,一些最脆弱的 Freenet 使用者需要隱藏他們正在使用 Freenet 的事實,而不僅僅是他們在用它做什麼。這一認識的結果是,對 Freenet 進行徹底的重新設計和重寫,添加了“暗網”功能,允許使用者限制其 Freenet 軟體可以與哪些受信任的朋友通訊。這將使第三方更難確定誰在使用 Freenet。
Freenet 0.7 還體現了對 Freenet 幾乎所有其他方面的重大改進,包括效率、安全性以及可用性。Freenet 可用於 Windows、Linux 和 OSX。可以從以下位置下載:
軟體實現
所有軟體均可在 Freenet 專案頁面上獲得。
Frost 是 Freenet 的一個應用程式,它為我們提供了類似 usenet 的訊息板以及檔案上傳/下載/共享功能。如果您使用標準的 Freenet 安裝程式,它應該會與 Freenet 0.7 一起自動安裝。
jSite 是一個圖形應用程式,您可以使用它來建立、插入和管理您自己的 Freenet 網站。它是由 Bombe 用 Java 編寫的。
Thaw 是一個檔案共享工具和上傳/下載管理器。它用作 Freenet 檔案共享的圖形介面。
KaZaa
KaZaa(http://www.kazaa.com)
軟體(FastTrack)實現
- Kazaa
- Kazaa Lite
- Diet Kaza
- giFT
- Grokster
- iMesh
GNUnet
GNUnet(http://gnunet.org/)始於 2001 年後期,作為一個安全的點對點網路框架,不使用任何集中式或可信服務。該框架提供了一個傳輸抽象層,目前可以將網路流量封裝在 UDP(IPv4 和 IPv6)、TCP(IPv4 和 IPv6)、HTTP 或 SMTP 訊息中。網路中的所有點對點訊息都是機密的,並且經過身份驗證。
建立在該框架之上的主要服務是匿名檔案共享,該服務是在網路層之上實現的,它允許匿名且防審查的檔案共享。GNUnet 使用一個簡單的、基於盈餘的經濟模型來分配資源。GNUnet 中的對等體監控彼此在資源使用方面的行為;對網路做出貢獻的對等體將獲得更好的服務獎勵。
GNUnet 是 GNU 專案的一部分。我們的官方 GNU 網站可以在(http://www.gnu.org/software/gnunet/)上找到,目前只有現有的客戶端,OpenSource,GPL,用 C 編寫,與網路同名。可以從該網站或 GNU 映象下載 GNUnet。
MANOLITO(MP2P)
MANOLITO 或 MP2P 是由Pablo Soto開發的專有點對點檔案共享網路的內部協議名稱。MANOLITO 使用 UDP 連線在埠 41170 上進行搜尋路由,並基於 Gnutella。此外,檔案傳輸使用基於 TCP 的專有協議。
MANOLITO 主機透過聯絡 HTTP 網路閘道器來獲取網路條目,閘道器返回大約一百個 MANOLITO 主機的列表。也可以手動連線到主機。Servents 保持與固定數量的對等體(取決於 Internet 連線)的聯絡,這些對等體被髮送搜尋查詢和結果。
軟體實現
- Blubster(http://www.blubster.com)是 MP2P 協議的第一個實現,閉源但對 Windows 來說是免費軟體。
- Piolet(http://www.piolet.com)是閉源但對 Windows 來說是免費軟體。
Mute 檔案共享
MUTE 檔案共享(http://mute-net.sourceforge.net)是一個匿名、分散的搜尋和下載檔案共享系統。MUTE 使用受螞蟻行為啟發的演算法來路由所有訊息(包括檔案傳輸),透過鄰居連線的網狀網路。
作者 Jason Rohrer - jcr13 (at) cornell (dot) edu 使用 C++ 和 Crypto++ 庫建立,支援多個作業系統,有一個使用 MFC 為 Windows 建立的前端,Mute 是開源的,並在 GPL 許可下發布。
iMesh
iMesh(http://www.imesh.com)是一個免費但閉源的 P2P 網路 (IM2Net),在埠 80、443 和 1863 上執行,適用於 Widows。iMesh 歸美國公司 iMesh, Inc. 所有,並在以色列設有開發中心。也已與 MPAA 達成協議。大小超過 50 兆位元組、時長超過 15 分鐘的影片檔案將不再允許在 iMesh 網路上共享,保證了完整長度的版本無法透過網路傳輸。
BitCoop
BitCoop(http://bitcoop.sourceforge.net/)由 Philippe Marchesseault 建立,是一個控制檯(基於文字)的點對點備份系統,它允許在遠端計算機上儲存檔案,並提供加密和壓縮支援。檔案大小取決於您想與其他對等體共享的數量。它適用於希望彼此之間備份資料的伺服器場。支援多種作業系統,包括 Windows、Linux 和 Mac OS X,它是用 Java 實現的(在 GPL 下開源)。
CSpace
CSpace(http://cspace.in/)提供了一個平臺,用於透過網際網路進行安全的、分散的、使用者對使用者的通訊。CSpace 平臺背後的驅動力是提供一個 connect(user,service) 原語,類似於 sockets API connect(ip,port)。建立在 CSpace 之上的應用程式可以簡單地呼叫 connect(user,service) 來建立連線。CSpace 平臺將負責定位使用者並建立安全的、nat/防火牆友好的連線。因此,應用程式開發人員無需承擔連線建立的負擔,而可以專注於應用程式級邏輯!CSpace 使用 Python 開發。它使用 OpenSSL 進行加密,並使用 Qt 進行 GUI。CSpace 在 GPL 許可下發布。
I2P
I2P 是一個通用的匿名且安全的點對點通訊層。它是一個建立在另一個網路之上的網路(在本例中,它建立在網際網路之上)。它負責匿名且安全地將訊息傳遞到另一個位置。
p300
p300(http://p300.eu/)是一個用 Java 建立的 P2P 應用程式,旨在為多種作業系統提供即用型單一下載解決方案,而無需處理使用者帳戶或特定協議和安全配置(例如,samba)。另一個方面是,p300 主要用於 LAN 或 VPN。該應用程式是開源的,在 GNU GPL v3 許可下發布。
Netsukuku
Netsukuku (http://netsukuku.freaknet.org/) 是一種點對點(網狀)網路系統,最初由 FreakNet MediaLab 開發,可以自主生成並維持自身。它旨在處理無限數量的節點,而無需大量的 CPU 和記憶體資源。它似乎可以輕鬆用於構建一個全球分散式、匿名的去中心化網路,該網路位於網際網路之上,無需任何伺服器、ISP 或權威控制的支援。Netsukuku 用另一個路由協議替換了OSI 模型的網路層 3。一個開源的 Python 實現於 2007 年 10 月完成。
Netsukuku 基於一個非常簡單的想法:將Wi-Fi網狀網路的概念擴充套件到全球範圍,雖然不一定要使用該介質。透過使用專門的路由協議和演算法,可以利用現有的 Wi-Fi 技術來形成一個全球性的 P2P 無線網路,其中每個對等體(節點)都連線到其鄰居。
其他媒體同樣可以用來互連節點,因為互動作用獨立於它所傳遞的介質,但人們認為 Wi-Fi 將是最方便普通使用者利用的。一旦實現更大的普及,可能會看到一些節點在彼此之間建立高速陸線連線,以提高網路頻寬,以便透過網路連線和降低延遲。
Adobe 的 RTMFP(即時媒體流協議)組
RTMFP 是一種基於建立Amicima 的封閉協議/實現,Amicima 是一家成立於 2004 年的初創公司,專注於開發針對客戶端-伺服器和點對點網路以及衍生應用的改進型網際網路協議(p2p-hackers - amicima's MFP - preannouncement, Jul 2005,MFP - The Secure Media Flow Protocol - version 1),被Adobe 收購,並納入 Flash 平臺,使開發人員能夠在不透過中央伺服器(Flash Media Server)的情況下將資料流式傳輸到端點。這一對 Flash Player v10.1+ 功能的補充使大多數 P2P 網路需求能夠在 Flash 上執行。關於該實現的資訊還不多。該簡報以 Flash 影片形式提供(http://tv.adobe.com/watch/max-2009-develop/p2p-on-the-flash-platform-with-rtmfp)。
其他
- Thunderbolt(又名 Thunder) (http://www.xunlei.com/) 由迅雷 網路科技有限公司建立。Thunderbolt 專有的 P2P 網路支援多協議 P2P 資源(支援 BitTorrent、eDonkey、Kad 和 FTP),以及 HTTP 下載(下載加速器),因為它會進行網頁快取,以幫助加速下載。它主要用於中國大陸,最近釋出了英文版。特別值得注意的是,2007 年 1 月 5 日,谷歌收購了該公司 4% 的股份。
- Cassandra (http://code.google.com/p/the-cassandra-project/) 是一個在 P2P 網路上構建的結構化儲存系統,用於管理結構化資料,同時在大規模範圍內提供可靠性。使用 Java 在 Apache 許可證 2.0 下製作。
- Aimini (http://www.aimini.com/),Windows 免費軟體。
- TinyP2P ( http://www.freedom-to-tinker.com/tinyp2p.html ),聲稱是世界上最小的 P2P 應用程式,用十五行程式碼用 Python 程式語言編寫。
- 安全內容下載器,閉源,Windows 和 Microsoft 專用 P2P 應用程式。
- XNap ( http://xnap.sourceforge.net/ ) 開源(GPL),用 Java 編寫。客戶端具有基於現代 Swing 的使用者介面和控制檯支援。能夠在多個 P2P 網路 OpenNap、Gnutella、Overnet 和 OpenFT(以及 giFT 支援的其他網路)中工作。它還支援 ICQ 和 IRC,MP3 標籤檢視器、影像、PDF、ZIP 檔案和文字轉語音功能。
- Filetopia ( http://www.filetopia.com ),針對 Windows 的免費但閉源伺服器/客戶端 P2P 應用程式。它包括即時訊息、聊天和檔案共享系統,並提供搜尋引擎、線上好友列表和留言板。它還支援使用跳板(開源,Java)作為匿名層,以實現間接連線。
- Carracho ( http://www.carracho.com ),免費軟體,但針對 MacOS X 的閉源 P2P 應用程式。
- SockeToome ( http://www.blackdiamond.co.za/bdsock.html ),針對 Mac 和 Windows 的共享軟體 P2P 應用程式。
- FilePhile ( http://www.filephile.net ),閉源,但免費軟體,基於 Java,因此是跨平臺應用程式。
- Napster 網路
- WinMX
- Napigator
- FileNavigator
- WPNP 網路
- WinMX
- 其他網路
- 星際檔案系統 - 旨在建立一個內容可定址的點對點方法,用於在分散式檔案系統中儲存和共享超媒體的協議和網路。最初由 Juan Benet 設計,現已開源。
- MojoNation
- Carracho
- Hotwire
- Chord 點對點查詢服務|Chord
- Dexter
- Swarmcast
- Alpine 程式|Alpine
- Scribe
- Groove
- Squid_Soft|Squid
- Akamai
- Evernet
- Overnet 網路
- Audiogalaxy 網路
- SongSpy 網路
- The Circle
- OpenFT
- Acquisition
- Cabos
- Swapper
- SoulSeek
構建 P2P 系統
開發者
有許多理由讓人們應該投入時間和精力來建立 P2P 應用程式。正如我們在第一章中已經提到的那樣,P2P 技術涉及並開始對人類活動的許多領域產生影響。除了任何型別的程式設計任務背後的正常原因(金錢、名聲和樂趣)之外,它還可以是政治立場的體現,或者是一種實現網路甚至經濟學中新概念的工具。最重要的是,P2P 本身就意味著人與人之間的合作,人們為了特定目標而共同努力。由您,程式設計師來建立必要的基礎設施,使這一切成為可能。
任何 P2P 專案的目標都是成為一個廣泛使用、值得信賴和可靠的專案。很少有專案是開放的、安全的、免費的、無歧視的、平等的、不受限制的和防審查的。
選擇程式語言

選擇許可證
為任何用於公開發布的軟體選擇合適的許可證是最重要的一步。它將決定專案的完成方式,甚至限制為實現解決方案而選擇的程式語言、獲得最終產品所需的時間,以及對使用者關係的重要性與日俱增。
有一個永遠不會結束的許可證列表,您可以直接使用這些許可證,作為實施者,您甚至可以建立自己的許可證。在最後一步,如果對所有含義沒有掌握,請務必謹慎,不要冒不必要的風險。
開源計劃 (OSI) 提供了一個很棒的關於開源的註釋定義,請檢視這裡(http://www.opensource.org/docs/osd)。
開源與閉源

P2P 如何產生收入

⁴
共享軟體/付費
由於這種設定會讓您陷入法律糾紛,而且您需要遵守相關的形式和義務,因此這是最成問題的設定。
此外,限制網路上的參與度將有意識地降低其有用性,這就是為什麼大多數 P2P 服務是免費的,或者至少支援一定程度的免費訪問。
變體
有幾種模型是簡單捐贈/付費模型的變體,它們針對使用者或專案與收集到的價值相關的特定目標。
- 贖金
- 將應用程式的功能或程式碼作為贖金支付,如果人們確實做出貢獻並達到了目標,您同意遵守您的提議(例如:公開原始碼、修復或實現一項功能)。
贖金已被證明在實踐中有效,它被用於幾個開源專案中,甚至作家也嘗試過這種方案,後者的一個例子是作家勞倫斯·瓦特·埃文斯對幾個標題進行的測試,它們都成功地達到了他的資金和生產目標。
- 付費功能
- 在贖金模型的變體中,在這種特定情況下,您應該特別注意告知使用者他們為哪些內容付費,以及您為該付款提供的服務合法性。額外的功能可能是更好的服務,甚至可以提高現有功能的質量。
- 付費支援
- 付費支援包括為使用者提供付費優先服務,以獲得技術支援,這在開源專案中非常常見。您應該避免過於複雜地設計軟體,以從中獲利,因為使用者將構成網路。一個解決方案是為公眾消費提供一個預設的簡化版本,並使軟體、協議或網路能夠進行高度調整,然後嘗試從中獲利。
許可新技術
如果您想出了新的技術,或者找到了互連現有技術的新方法,這些方法也可以轉化為收入來源。
風險投資
控制級別
對等體
對等體以及執行它的使用者是所有 P2P 系統的基石,沒有對等體,就無法建立網路,這看似顯而易見,但往往會忽視使用者的需求,而專注於最終目標,即網路本身,這就好比看著一片森林,卻看不到樹木。
構建社群
將社交元素融入軟體中具有益處。它可以讓使用者不僅僅是分享內容或服務,還可以圍繞共同目標進行合作,而最終目標應該是為最佳化狀態而合作。

- P2P 應用程式是一種社交軟體。
社交軟體被定義為任何促進和支援社會協作的軟體。這當然也是現代 P2P 系統的定義的一部分,其中不再有守門人,參與者可以自由地以自己的方式互動。P2P 應用程式在這個現實中成為了一種賦能工具。
世界可以越來越多地被定義為網路的網路,所有事物在某種程度上都是相互關聯的。隨著網際網路的普及成為現實,它不僅使通訊速度加快,而且來源數量的增加也帶來了質量保證問題。
圍繞功能性點對點網路的共同目標構建的線上協作將不僅有助於改善系統,而且有助於建立信任關係,從而導致聲譽階梯的出現。在參與者、網路和軟體本身中,這種個性化最終將使信任和聲譽擴充套件到點對點網路中可能存在的眾多關係。
社交網路(人對人)
隨著社群的出現和聚集,它們不僅提高了以前內容的可定址性,而且提高了生產者和消費者之間的可定址性,這些生產者和消費者將根據個人偏好進行自我組織,建立超級和子組(多對多)。
實現資訊的有意義交流和促進協作的增加,也提高了稀有或晦澀內容的可獲得性,以及微內容的重要性,因為消除了無關資訊,因為內容可以始終定向到合適的受眾(拉取,而不是推送)。
使用社交軟體或任何型別的集中式社交網路可以輕鬆提取使用者行為的指標,這已被公司高度探索,這些公司已經進行了一段時間的戰爭,不僅是為了獲得這些互動所產生的資料的份額,而且是為了控制這些資訊(例如:谷歌和微軟)。微軟有一個專門針對此主題的研究專案(企業社會計算)。
- 開啟封閉花園
面向使用者的 GUI
當您開始設計 P2P 應用程式時,使用者將使用 GUI 與您的作品進行互動,您應該嘗試定義不僅要支援的 OS,還要定義可以在哪個框架中設計該應用程式以便從 Web 瀏覽器使用,或者選擇一個可移植框架,以便您可以將其移植到其他系統。
- 成為使用者
用過多的選項來淹沒使用者總是一個糟糕的解決方案,只會吸引經驗豐富的使用者,即使它是基於你自己的喜好,你也要記住,你並不是為你自己建立它。
- 簡單就是終極的複雜性
除了技術決策之外,您提供的功能也應考慮在內,最好的方法是一致性,併為現有實現、其他應用程式甚至您正在使用的環境/作業系統上的正常操作提供類似的選項。例如,您可以選擇遵循一些指南,蘋果為 OSX 提供了指南(http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/)。
- 內容為王
- 區別在於細微之處
- 引導使用者
P2P 網路拓撲
P2P 網路的拓撲結構可以非常多樣化,它取決於執行它的介質(硬體)、網路的大小(LAN、WAN)甚至軟體/協議,這些軟體/協議可以強加或使特定的網路組織出現。
下面我們可以看到最常用的拓撲結構(可以混合拓撲結構,甚至可以疊加在同一個網路上),大多數如果不是所有點對點網路都被歸類為 覆蓋網路,因為它們是在已經存在的具有自身拓撲結構的網路之上建立的。

環形拓撲結構 - 網狀 拓撲結構 - 星形拓撲結構 - 全網狀或完全 網狀 - 線形拓撲結構 - 樹形拓撲結構 - 匯流排拓撲結構 - 混合 拓撲結構
當有大量對等節點參與時,全連線的 P2P 網路是不可行的。
- 在有數千或數百萬參與者(n = 參與者)的網路中
- 每個對等節點將不得不處理 O(n2) 個總連線,它將無法擴充套件。
由於大多數 P2P 網路也是一種覆蓋網路,因此 P2P 系統的最終拓撲結構還取決於協議、基礎設施(介質/基本網路)或對等節點之間的互動。這些“變數”為正常網路的複雜性增加了更多層,其中基本特徵是頻寬、延遲和魯棒性,使大多數 P2P 網路成為自組織的覆蓋網路。
在執行 P2P 網路研究時,最終拓撲結構(結構屬性)至關重要,有許多關於 P2P 網路最佳化或特徵的論文。
Gonzalo Travieso 和 Luciano da Fontoura Costa 的論文《用於即時分散式處理的有效網路》(http://arxiv.org/abs/physics/0612134)似乎表明,均勻隨機互連方案是特定 Erdős-Rényi(ER)隨機網路模型,具有固定數量的邊,比無標度對應模型 Barabási-Albert(BA) 無標度模型效率更高。
測試/除錯系統
虛擬機器
軟體工具
自組織系統 (SOS)
P2P 系統預設情況下屬於此類別,考慮到大多數系統試圖消除大多數集中式系統/網路中存在的集中化或控制和命令 (C&C) 結構。
自組織系統的研究相對較新,它適用於從組織到自然發生的事件的各種系統或結構。主要使用數學,並依賴於模型和模擬,其準確性取決於結構的複雜性、干預因素的數量和初始選項。
本書不會詳細介紹 P2P 系統的這一方面,但一些參考文獻和結構特徵確實與 SOS 概念並行執行。有關 SOS 的更多資訊,請檢視 USENET 新聞組 comp.theory.self-org-sys 的自組織系統 (SOS) 常見問題解答(http://www.calresco.org/sos/sosfaq.htm)。
協同效應
SOS 的一個新興特徵是協同效應,其中成員圍繞共同目標聚集在一起,每個人都為所有人的利益而努力。這也存在於大多數 P2P 系統中,對等節點協同工作以最佳化資源共享和改善網路。
群體
SOS 中的參與者產生的效應,聚合在一起並進行互補工作,以便以一種提高協調的方式共享知識和行為。這在鳥群或社會昆蟲的自然界中是可以觀察到的。我們將在後面介紹 P2P 的這一方面,但請記住,它與 SOS 相關。
引導
大多數 P2P 系統沒有(也不需要)中央伺服器,但需要了解進入網路的入口點。這就是所謂的引導 P2P 應用程式。它處理對等節點的連線,以便能夠找到並連線其他 P2P 對等節點(網路),即使沒有具體瞭解誰在哪裡以及是什麼。
這不是一個新問題;它在幾種網路技術中共享,這些技術避免了要求中央伺服器索引所有參與者的中心故障點——一個守門人。
一個解決方案,零配置網路 (zeroconf)(見 http://www.zeroconf.org/),包含一系列技術,這些技術可以自動(無需人工干預或特殊的配置伺服器)建立一個可用的網際網路協議 (IP) 網路。這些技術通常用於幫助引導、配置或跨路由器和防火牆開啟路徑。
混合型與真正對等型系統
P2P 系統的主要目標之一是確保它沒有任何一個部分對集體目標至關重要。透過在點對點網路中引入任何型別的集中化,人們正在建立故障點,因為一些對等節點將比其他對等節點更多,這甚至會導致安全或穩定性問題,就像舊的伺服器-客戶端模型一樣,其中單個使用者可能會使伺服器崩潰並拒絕網路中的其他人使用它。
可用性
由於 P2P 網路的不穩定性,節點總是加入和離開,因此必須付出一些努力來保證不僅網路可用,並使新對等節點能夠加入,而且共享的資源在暫時不可用時仍然可以被識別或至少被索引。
完整性
由於點對點網路的開放性,大多數網路都受到具有各種動機的人們的不斷攻擊。大多數攻擊可以透過精心設計點對點網路以及使用加密來擊敗或控制。實際上,P2P 網路防禦與“拜占庭將軍問題”密切相關。然而,當大多數對等節點試圖破壞它時,幾乎任何網路都會失敗,而許多協議可能被更少數量的對等節點變得無能為力。
聚類
計算機科學通常將計算機叢集定義為一組緊密耦合的計算機,它們緊密地協同工作,因此在許多方面,它們可以被視為一臺計算機。
叢集的元件通常透過快速網路相互連線,並且通常用於提高與單個計算機相比提供的效能和/或可用性,同時通常比具有可比速度或可用性的單個計算機更具成本效益。
正如我們之前所見,如果將此概念應用於分散式網路或 WAN(代替 LAN),將生成分散式計算、網格和其他系統。所有這些應用程式都是 P2P 概念的一部分。
我們寬泛地將叢集定義為物理的、社會的甚至經濟的/統計的事件。也就是說,它是由實體由於共享共同屬性而聚集在一起定義的,該屬性可能是共享的目的或特徵,或任何其他共性。
當我們觀察點對點網路生成的拓撲結構時,可以發現大多數協議會在網路結構、資源周圍形成某種形式的叢集,甚至可能會由於網路狀況而出現叢集。因此,叢集是一個無監督學習問題,是一個自動出現的事件,導致建立了對未標記物件的臨時集合(資料/專案或事件)。有關叢集的更多資訊,您可以檢視叢集演算法教程(http://home.dei.polimi.it//matteucc/Clustering/tutorial_html/)。
因此,叢集是物件集合,它們彼此之間是“相似”的,並且使用相同的特徵集與屬於其他叢集的物件是“不相似”的。
這個概念不僅對點對點網路的形式非常重要,而且對基於點對點應用程式的使用可以建立的社會結構/關係也有影響。
突發式人群
突發式人群是一種行為模型,參與者傾向於聚集/擁擠在一個事件周圍,在點對點術語中,這可能是一個稀缺資源,例如我們將在後面看到 BitTorrent 促進大型檔案而不是小型檔案,以及新檔案而不是舊檔案,這是由於連線到基於單個專案的網路的結果,BitTorrent 的速度主要取決於在檔案周圍生成突發式人群(更多對等節點,更多速度,這將在更多種子中形成滾雪球)。
這也可能導致拒絕服務 (DoS) 或洪泛攻擊。例如,如果點對點系統設計不當,嘗試將大量對等節點連線到網路可能會擾亂使用的引導方法。
您應該教育使用者,更多連線並不等於更多速度,充其量會導致更多對查詢的響應,但這可能取決於協議的結構方式,但啟用它們將消耗頻寬。另一方面,更多對等節點將導致更多資源被共享,這也將導致共享重疊,從而提高速度,隨著點對點網路的擴大,它可以更好地為使用者提供服務。
最佳化
在任何點對點協議中都應該進行一些簡單的最佳化,這些最佳化可以使對等節點和網路整體受益。這些最佳化基於系統指標或配置檔案,例如 IP(ISP 或範圍)、內容、物理位置、共享歷史記錄、比率、搜尋以及許多其他變數。
大多數點對點網路和拓撲結構的邏輯/特徵(在廣域網環境中)將導致對等節點的聚合,因此這些叢集將共享分散式行為模型的相同屬性,例如群體、羊群和魚群,這導致更容易研究的環境並建立對等節點關係的相關性並推斷出提高效率的方法。
- 對齊
- 從本地系統/環境中獲取資訊/特徵,以便透過選擇和最佳化分離和凝聚函式來最佳化網路上的對等節點“位置”,從而改善本地鄰域。
- 分離
- 實現一種方法來避免與其他對等節點因不希望的對齊而擁擠。
- 凝聚
- 根據對等節點自身的對齊選擇對等節點。
點對點網路流量

由於協議和拓撲結構的性質,在網際網路上檢測到的點對點流量有時只能透過基於感知使用(線上使用者、給定實現的下載次數)的估計來完成,或者透過對網路本身進行點檢查來完成。如果協議或應用程式的實現以該目標為目標,甚至可以訪問資訊,例如,Gnutella 的幾種實現具有該選項,Bearshare 甚至報告了一些使用者的系統引數,例如防火牆型別等。
例如,提供這種點對點網路流量資訊的服務的示例包括 Cachelogic(http://www.cachelogic.com/research/2005_slide16.php#)。
- 通訊
您最重要的考慮因素之一是如何預測對等節點的通訊方式,即使我們放棄使用中心伺服器(如超級節點)以及作為對等節點/節點的多個分散式客戶端,也需要考慮幾個問題
- 通訊是否需要跨越防火牆和代理伺服器?
- 網路傳輸速度是否重要?使用者可以配置它嗎?
- 通訊是同步的還是非同步的?
- 它是否只需要/使用單個埠?我們應該使用哪個埠?
- 您需要支援哪些資源?是否有大小限制?是否應該使用壓縮?
- 資料是否必須加密?
- 等等…
必須仔細考慮專案的具體目標和要求,這將有助於您評估使用工具包和框架。如果您不能想出更好的解決方案,或者沒有時間、能力或意願,請儘量不要重新發明輪子。您也可以使用開放標準(即:使用 HTTP 協議)來實現,但也可以自由探索其他方法。
如今,即使是小型區域網也將至少擁有一個防火牆,可能還會擁有一個路由器,即使所有元件都在使用者的控制之下,一些使用者只是缺乏如何正確設定它們的知識。另一個考慮因素是應用程式的簡單配置要求,大多數使用者在處理技術術語和依賴項時都會遇到問題,即使是 Windows 作業系統的最新版本也將預設啟用防火牆,這些防火牆可能會成為使用者的不可逾越的障礙,值得慶幸的是,有一些工具可以使所有人的生活變得更輕鬆。
UPnP
通用即插即用 (UPnP) 架構由UPnP 論壇(http://www.upnp.org/)頒佈的一組開放標準和技術組成,旨在擴充套件即插即用概念以支援網路和對等節點發現(在網路上自動發現。有線或無線)、配置和控制,從而使裝置、PC 和服務能夠透明地連線。允許任何 UPnP 裝置動態加入網路,獲取其 IP 地址並同步功能(從其他裝置學習和通知其他裝置)。從一般意義上講,它也可以被視為類似於分散式簡單網路管理協議 (SNMP)。
由於 UPnP 在大多數現代路由器和網路裝置中提供,並且自 Windows XP 以來一直受到微軟的支援。雖然據說是為了解決網路程式使用者在接受來自網際網路的傳入連線方面的難題(“埠轉發”或“NAT 穿越”),因為它將消除配置路由器以接受傳入連線,然後將其路由到路由器後面的 LAN 本地機器所需的步驟,而這是很難解釋的,對於普通使用者來說難以理解。
所有這一切都使其成為 Windows 點對點應用程式必須透過程式設計支援這種架構的必要條件,因此避免了使用者在啟用 UPnP 時處理必要更改的要求(預設情況下應該停用,因為存在安全風險)。另外還有一個必要條件,如果本地機器上存在不符合 UPnP 的防火牆,則必須更改其配置,以便為 UPnP 啟用必要的 TCP(埠 2859)和 UDP(埠 1900)通訊。
微軟提供 UPnP 控制點 API。它在 Windows Me、CE .Net、XP 及更高版本中可用,位於系統服務“SSDP 發現服務”(ssdpsrv)和“通用即插即用裝置主機”(upnphost)中,或者透過 COM 庫。它可以在 C++ 或 Visual Basic 應用程式中使用,或者在嵌入 HTML 頁面中的指令碼中使用。
有關 Windows 上 UPnP 技術的更多資訊,可以從以下來源收集
- 使用 UPnP 控制點 API 程式設計控制點應用程式(http://www.codeproject.com/KB/IP/upnplib.aspx)由 amatecki 撰寫
- 使用 UPnP 進行程式設計埠轉發和 NAT 穿越(http://www.codeproject.com/KB/IP/PortForward.aspx)由 Mike O'Neill 撰寫
- 免費可用的實現
- CyberLink(http://sourceforge.net/projects/clinkcc)是針對 C++ 的 UPnP 程式設計師開發包。使用該軟體包,您可以輕鬆建立 UPnP 裝置和控制點。在 BSD 許可下發布。
- MiniUPnP 專案(https://miniupnp.tuxfamily.org)是根據 BSD 相容許可釋出的開源 C 實現。
- GUPnP(http://www.gupnp.org)是一個用於建立 UPnP 裝置和控制點的面向物件的開源框架,使用 GObject 和 libsoup 以 C 語言編寫。它提供與 libupnp 相同的功能集,但可以保護開發人員免受大多數 UPnP 內部機制的影響。在 GNU LGPL 下發布。
- UPNPLib(http://www.sbbi.net/site/upnp)是在 Apache 軟體許可下發布的開源 Java 實現。
安全注意事項
透過使用點對點系統,使用者將向其他人廣播其存在,這與他們可能與其他人互動但其匿名性可以得到保護的集中式服務形成對比。
違反網路安全可能構成犯罪,例如2008 年科羅拉多大學和華盛頓大學的研究專案案例,研究人員參與了跨越 Tor 匿名代理網路的使用者運動,他們可能會因為窺探而面臨法律風險。
分散式通訊的這種漏洞會導致身份攻擊(例如,跟蹤網路使用者並騷擾或法律攻擊他們)、DoS、垃圾郵件、竊聽和其他威脅或濫用。所有這些行為通常針對單個使用者,有些甚至可能是自動化的,建立者可以採取一些措施來使其更難,但最終它們無法阻止,應該預料到並處理,第一步是向用戶提供資訊,以便他們可以本地實施硬體或軟體操作,甚至可以實施社會行為來抵消這種濫用。
DoS(拒絕服務)、垃圾郵件
由於每個使用者都是一個“伺服器”,因此他們也容易受到拒絕服務攻擊(如果最佳化得當,這些攻擊可能會使網路執行速度非常慢或完全崩潰),結果可能取決於攻擊者的資源以及點對點協議的去中心化程度。另一方面,成為垃圾郵件(例如,在網路上傳送未經請求的資訊 - 不一定作為拒絕服務攻擊)的目標,僅取決於您的可見性和可聯絡程度,例如,其他使用者是否可以向您傳送訊息。大多數點對點應用程式都支援某種聊天系統,這種型別的濫用在這樣的系統中非常常見,它們可以解決問題,但不會完全解決問題,這可能會導致社會工程學攻擊,使用者可能會被誘使執行會損害他們或其系統的操作。在這一點上,僅向用戶提供使他們能夠了解風險的資訊將有效。
ARP 攻擊
竊聽
硬體流量控制
軟體流量控制
由於大多數網路應用程式,尤其是點對點工具容易成為安全問題的來源(它們將繞過內部的一些預設安全措施),因此在使用或建立此類工具時,必須注意賦予可能性或配置系統以儘可能安全。
安全工具
為了實現這種效果,可以使用多種工具和選項,例如配置防火牆、新增 IP 攔截器,或者在部署應用程式時確保預設情況下開啟一些限制。
- PeerGuardian 2 (http://phoenixlabs.org/pg2/ ) 是由 Phoenix Labs 開發的開源工具,它是一個針對 Windows 作業系統的 IP 攔截器,支援多個列表、列表編輯、自動更新以及遮蔽所有 IPv4(TCP、UDP、ICMP 等)。
- PeerGuardian Lite (http://phoenixlabs.org/pglite/ ) 是 PeerGuardian 2 的一個版本,旨在降低系統佔用。
遮蔽列表
遮蔽列表是包含反對並積極打擊檔案共享(如 RIAA)的組織的 IP 地址的文字檔案,以及任何在網路中挖礦或試圖使用資源而不參與實際檔案共享的企業。它本質上類似於電子郵件系統中存在的垃圾郵件過濾器。
防火牆
為了提高使用者的安全性,今天的作業系統預設情況下會提供某種形式的外部通訊限制,允許使用者定義不同的信任級別,這被稱為防火牆。防火牆可以採用硬體或軟體實現,並被配置為允許、拒絕或代理資料透過計算機網路。由於連線網際網路已成為普遍現象,而缺乏或預設配置的防火牆可能會給 P2P 應用程式的使用帶來一些困難,因此大多數最新的作業系統都會附帶執行的軟體實現。

在 Windows 上
在最近的作業系統版本中,為了使用者的安全,微軟預設情況下會包含並啟用一個簡單的防火牆解決方案,從 Windows XP SP2 開始。這會遮蔽任何傳入連線(HTTP 埠 80 或郵件埠 110 或 25),將“未經請求的訊息”歸類為有點過於強調,因為這些訊息可能是 P2P(或任何其他型別的分散式)網路的一部分。這也會影響遮蔽本地機器上的 UPnP 功能。
- ICF(Internet 連線防火牆) 包含在微軟的 Windows XP、Windows Server 2003 和 Windows Vista 作業系統中。
組播
路由器
路由
NAT
NAT 穿越
NAT 後面的使用者應該能夠互相連線,有一些解決方案可以實現這一點。
STUN
STUN(透過 NAT 的 UDP 簡單穿越)是一個網路協議,它可以幫助許多型別的軟體和硬體透過使用NAT的家用寬頻路由器正確接收UDP資料。
引自其標準文件,RFC 3489
- 它還允許應用程式確定NAT分配給它們的公共IP 地址。
- “STUN 與許多現有的 NAT 相容,並且不需要它們有任何特殊的行為。因此,它允許各種應用程式透過現有的 NAT 基礎設施工作。”
正如STUN RFC 所述,該協議並不是解決與NAT相關問題的萬能藥,但它對於使語音 over IP 透過家用路由器工作特別有用。VoIP信令協議(如SIP)使用 UDP 資料包透過網際網路傳輸音訊資料,但這些 UDP 資料包在透過家用路由器中的NAT時通常會遇到問題。
STUN是一個客戶端-伺服器協議。VoIP 電話或軟體包可能包含STUN客戶端,它會向 STUN 伺服器傳送請求。然後,伺服器會向 STUN 客戶端報告NAT路由器的公共 IP 地址以及NAT開啟哪個埠以允許傳入流量返回網路。
響應還允許STUN客戶端確定正在使用的NAT型別,因為不同型別的NAT對傳入 UDP 資料包的處理方式不同。它將與四種主要型別中的三種類型相容:全錐 NAT、受限錐 NAT和埠受限錐 NAT。它不會與對稱 NAT(也稱為雙向NAT)相容,這種 NAT 通常存在於大型公司的網路中。

埠轉發
如果對等體位於路由器或防火牆後面(使用 NAT),則可能需要手動配置它,以允許 P2P 程式正常執行,這對技術水平較低的人來說可能是一項艱鉅的任務,甚至會影響 P2P 應用程式的採用。這可以透過使用 UPnP 等一些解決方案自動解決。
埠轉發或埠對映(有時稱為埠對映)是指將網路埠從一個網路節點轉發到另一個網路節點的行為,實際上是在網路上建立了一條路徑,在本例中,是從連線到路由器或防火牆的網際網路側到區域網內部的計算機,允許外部使用者從外部訪問區域網內部的私有 IP 地址上的埠。否則,區域網內部的計算機將無法訪問,P2P 無法完全工作(它可以聯絡外部機器,但無法完全被外部看到)。
由於最終實現相同功能的 GUI 實現種類繁多,因此進行必要的更改並非易事,而且一個解決方案並不適用於所有情況。
首先要意識到的是,連線到網際網路的路由器或計算機將具有不同的 IP 地址,一個由您的 ISP 提供,可以在網際網路上看到,另一個只能在區域網內部看到,這個地址可以由使用者分配,或者預設為出廠設定或作業系統出廠設定。
要對路由器的配置進行任何更改,您需要知道可以訪問其配置頁面的 IP 地址並登入到它,如果使用計算機,則可以在軟體允許的情況下本地或遠端執行此操作。使用者需要具備一些關於如何使用 IP 地址和埠,甚至協議(一些配置允許區分 TCP 和 UDP 資料包)的最低限度的知識才能執行這些任務,因此對於普通使用者來說,這可能會變得很複雜。
唯一 ID
數字控制著你的生活。隨著時間的推移,每個人都被各種數字標識。例如電話號碼、信用卡號碼、駕照號碼、社會保險號碼,甚至郵政編碼或汽車牌照。這些唯一號碼的建立、分配和驗證方式非常引人入勝。Alan De Smet 的唯一 ID 網站 (http://www.highprogrammer.com/alan/numbers/) 提供了有關該主題的總體資訊。對於我們特定的主題,重要的是它背後的演算法。如何為使用者和資源建立唯一的識別符號。
通用唯一識別符號 (UUID) / 全域性唯一識別符號 (GUID)
對於 P2P 協議/應用程式來說,要能夠管理使用者身份驗證、身份驗證、構建路由協議、識別資源等,就需要(一組)唯一識別符號。雖然真正的點對點協議不打算建立集中式服務,但它經常可以利用已經建立的這種服務。因此,例如,Usenet 利用域名為文章建立全域性唯一識別符號。如果該協議甚至避免使用這種服務,那麼唯一性只能基於隨機數和數學機率。
生成唯一 ID 的問題可以分解為空間上的唯一性和時間上的唯一性,當它們結合在一起時,旨在生成一個全域性唯一序列。這導致了在使用開放協議/多個供應商實現的某些 P2P 網路上檢測到的一個問題,由於在生成GUID時使用了不同的演算法,導致空間上的唯一性被破壞,從而導致零星的衝突。
UUID 正式且明確地定義為 ISO-11578 標準的一部分,其他規範也存在,如RFC 4122、ITU-T Rec. X.667。
使用示例
- Usenet 文章 ID。
- 在微軟的元件物件模型 (COM) 泥潭中,這是一個包含 MFC(微軟基礎類)、OLE(物件連結與嵌入)、ActiveX、ActiveMovie 以及微軟最近正在推廣的所有其他內容的面向物件程式設計模型,GUID 是一個 16 位元組或 128 位數字,用於唯一地標識物件、資料格式,以及所有內容。
- Windows 登錄檔中的識別符號。
- RPC(遠端過程呼叫)中使用的識別符號。
- 在 ActiveMovie 中,存在用於影片格式的 GUID,對應於 Video for Windows 中使用的 FOURCC 或四個字元程式碼。這些在 Active Movie 軟體開發工具包 (SDK) 中的 uuids.h 檔案中指定。ActiveMovie 需要傳遞與 AVI 檔案中影片的 FOURCC 對應的 GUID。
安全 存在一個已知的版本 1 UUID(基於時間和節點)的脆弱性,因為它們會廣播節點的 ID。
軟體實現
需要實現 UUID 的程式設計師可以參考這些示例
- OSSP uuid ( http://www.ossp.org/pkg/lib/uuid/ ) 是一個用於 ISO C、ISO C++、Perl 和 PHP 的 API,以及一個相應的 CLI,用於生成符合 DCE 1.1、ISO/IEC 11578:1996 和 RFC4122 標準的通用唯一識別符號 (UUID)。它支援 DCE 1.1 變體的 UUID,版本 1(基於時間和節點)、版本 3(基於名稱,MD5)、版本 4(基於隨機數)和版本 5(基於名稱,SHA-1)。UUID 是 128 位的數字,旨在具有很高的在空間和時間上的唯一性機率,並且在計算上很難猜測。它們是全域性唯一的識別符號,可以在本地生成,無需聯絡全域性註冊機構。它是在 MIT/X Consortium 許可證下開源的。
雜湊、加密和壓縮
大多數 P2P 系統必須至少實現一種用於雜湊、加/解密和解/壓縮的演算法,本節將嘗試提供一些關於這些操作與 P2P 主題相關的一些想法,因為我們將在其他章節中討論這些問題。
有關該主題的詳細資訊,請參閱 Cryptography Wikibook ( https://wikibook.tw/wiki/Cryptography )。
建立結構化 P2P 網路的一種方法是維護一個分散式雜湊表 (DHT),它將充當網路上資源的分散式索引。
加密的另一個需求是保護分散式資源本身的完整性,使其能夠在大多數 P2P 實現中抵禦攻擊,某種型別的雜湊函式 (MD5、SHA1),甚至可能實現一個雜湊樹,旨在檢測資源內容作為整體或使用者獲取的部分的損壞(例如使用 Tiger Tree Hash)。
雜湊函式
一個 雜湊函式 是一種可重複的方法,用於將某種 資料 轉換成一個(相對)較小的數字,該數字可以作為資料的數字“指紋”。該 演算法 會替換或轉置資料以建立這些指紋。這些指紋被稱為 雜湊總和、雜湊值、雜湊碼或簡稱為 雜湊。當您談論雜湊或雜湊時,需要注意,因為它也可以指雜湊函式。
一組雜湊(將雜湊函式應用於資料的結果)有時被稱為 桶 或更準確地說是雜湊桶。大多數雜湊桶,如果由非衝突雜湊函式生成,將為給定的資料輸入生成不同的雜湊,在選擇雜湊函式時還應考慮其他特性,但這超出了本書的範圍,請記住檢查您正在實現的雜湊函式/演算法是否滿足您的要求。Wikibooks 有幾本書以某種方式涵蓋了雜湊,您可以在 Algorithm implementation 或 Cryptography 中瞭解更多關於該主題的資訊。

雜湊總和通常用作 雜湊表 或 雜湊檔案 的索引。 加密雜湊函式 用於 資訊安全 應用中的各種目的。
- 選擇一個好的雜湊函式
一個好的雜湊函式對於雜湊表效能至關重要。選擇一個不好的雜湊函式可能會導致聚集,在這種情況下,鍵對映到同一個雜湊桶的機率(即衝突)遠遠大於隨機函式的預期。在任何雜湊實現中,非零衝突機率都是不可避免的,但通常,解決衝突所需的運算次數與對映到同一個桶的鍵的數量成線性比例,因此過多的衝突會嚴重降低效能。此外,一些雜湊函式在計算上代價高昂,因此計算雜湊所需的時間(以及在某些情況下,記憶體)可能很繁重。
用於驗證 p2p 系統中檔案完整性的第一個雜湊演算法之一(以及一般檔案傳輸)是 1992 年建立的 MD5(見 rfc1321 The MD5 Message-Digest Algorithm)。但正如所有雜湊一樣,大多數演算法在一段時間後都會發現一些弱點,這個過程在 SHA1 演算法中重複出現,並且很可能還會出現其他演算法。選擇合適的工具還不夠,程式設計師必須持續檢查所選擇的工具的安全效能是否符合對所選雜湊演算法的要求。
簡單性和速度很容易客觀地衡量(例如,透過程式碼行數和 CPU 基準測試),但強度是一個更難以捉摸的概念。顯然,像 加密雜湊函式 這樣的 SHA-1(見 Secure Hash Standard FIPS 180-1)將滿足雜湊表所需的相對寬鬆的強度要求,但它們的速度慢和複雜性使其不具有吸引力。但是,使用加密雜湊函式可以防止衝突攻擊,前提是雜湊表模數及其因子對攻擊者保密,或者透過應用一個秘密的 鹽。但是,對於這些特殊情況,可以使用 通用雜湊函式 來代替一個靜態雜湊。
在沒有雜湊函式強度標準衡量的情況下,目前的技術是採用一系列 統計 測試來衡量雜湊函式是否可以很容易地與隨機函式區分開來。可以說最重要的測試是確定雜湊函式是否顯示出 雪崩效應,該效應本質上說明輸入金鑰中的任何一位變化平均都會影響輸出中的一半位。Bret Mulvey 主張特別測試 嚴格雪崩條件,該條件說明,對於任何一位變化,每個輸出位應該以二分之一的機率改變,與金鑰中的其他位無關。純粹的加法雜湊函式,如 CRC,慘敗於這個更強的條件。
有關雜湊的更多資訊
- Hashing Function Lounge 包含對哪些演算法存在已知安全缺陷的總結。
衝突避免
實現雜湊演算法
大多數 雜湊演算法 具有高度的複雜性,並且專為特定目標(雜湊函式)而設計,這些目標可能不適用於其他任務,並且不能在其他任務中提供相同的保證級別。這些演算法(或它們的原始描述)可以免費獲取,您可以實現自己的版本,也可以選擇使用現有的經過測試的實現(並注意安全問題)。一些公開可用的實現示例可在 Cryptography Wikibook 中找到。
需要一致的結果和可重複性,在您選擇和實現雜湊演算法時,請記住對其執行一批測試向量。如果您使用的是 測試框架,則應將其新增到您的測試中。
雜湊樹 (Merkle 樹)
在 密碼學 中,雜湊樹(也稱為 Merkle 樹,由 Ralph Merkle 於 1979 年發明)是對更簡單的 雜湊列表 概念的擴充套件,而雜湊列表又是對舊的 雜湊 概念的擴充套件。它是一種雜湊結構,它在驗證檔案的完整性和檔案的子範圍方面表現出令人滿意的屬性,這些屬性以增量或亂序的方式完成。
底層雜湊函式是 Tiger(http://www.cs.technion.ac.il/~biham/Reports/Tiger/)的雜湊樹通常被稱為 Tiger 樹 或 Tiger 樹雜湊。
雜湊樹的主要用途是確保從對等網路中的其他對等方接收的資料塊未被損壞和更改,甚至可以檢查其他對等方是否傳送了偽造的資料塊。這將最佳化網路的使用,並允許快速排除偽造的內容,而不是等待整個檔案下載完成以進行單次雜湊檢查,可以下載部分或完整的雜湊樹,並且可以立即檢查每個分支的完整性(因為它們由“雜湊”的塊或雜湊樹的葉子組成),即使整個樹/內容尚未可用,這也使得下載對等方可以上傳未完成檔案的塊。
通常,使用諸如 SHA-1、Whirlpool 或 Tiger 之類的加密雜湊函式進行雜湊。如果雜湊樹只需要防止意外損壞,可以使用安全性低得多的校驗和,例如 CRC。
在雜湊樹的頂部有一個頂級雜湊(或根雜湊或主雜湊)。在對等網路上下載檔案之前,在大多數情況下,頂級雜湊是從可信來源(對等方或具有較高信任比率的中央伺服器)獲得的。當頂級雜湊可用時,雜湊樹就可以從任何來源接收。然後,將接收到的雜湊樹與可信的頂級雜湊進行比較,如果雜湊樹損壞或已損壞,將嘗試來自其他來源的另一個雜湊樹,直到程式找到一個與頂級雜湊匹配的雜湊樹。
這需要考慮幾個因素
- 根雜湊的可信來源是什麼。
- 雜湊演算法的一致實現(例如,要傳輸的塊的大小必須在每次檔案傳輸中都是已知且恆定的)。
Tiger Tree Hash (TTH)
Tiger 樹雜湊是對等網路中最有用的雜湊樹形式之一。它基於 1995 年由 Eli Biham 和 Ross Anderson 建立的加密雜湊 Tiger(有關建立者的資訊和 C 原始碼示例,請參閱 http://www.cs.technion.ac.il/~biham/Reports/Tiger/)。雜湊演算法的設計考慮了現代 CPU,特別是在處理 64 位時,它是 32 位機器上最快和最安全的雜湊之一。
TTH 使用一種二進位制雜湊樹形式,通常具有 1024 位元組的資料塊大小,並使用加密安全的 Tiger 雜湊。
使用 Tiger 雜湊是因為它速度快(並且樹需要計算大量雜湊),在最近的實現和體系結構中,TTH 與 SHA1 一樣快,並且透過更多最佳化和使用 64 位處理器,它將變得更快,即使它會生成更大的雜湊值(192 位對比 SHA1 的 160 位)。
Tiger 樹雜湊用於 Gnutella、Gnutella2 和 Direct Connect 以及許多其他 P2P 檔案共享協議以及一般檔案共享中。
作為 Tree Hash Exchange (THEX) 格式的一部分,提供了關於 TTH 用途的分步介紹(請參閱 WEB Archive 上的頁面)。
雜湊表
在計算機科學中,雜湊表或雜湊對映是一種將鍵與值相關聯的資料結構。它支援的有效主要操作是查詢:給定一個鍵,找到相應的 value。它的工作原理是使用雜湊函式將鍵轉換為雜湊,即一個用於索引陣列以定位所需位置(“桶”)的數字,值應該在那裡。

雜湊表支援有效地新增新條目,並且查詢所需資料所花費的時間與儲存的專案數量無關(即 O(1))。
在 P2P 系統中,雜湊表在每個客戶端/伺服器應用程式中本地使用以執行資料路由或檔案的本地索引,當我們嘗試以分散式方式使用相同的系統時,這種概念會進一步發展,在這種情況下,分散式雜湊表用於解決這個問題。
分散式雜湊表 (DHT)
分散式雜湊表 (DHT) 概念在 2001 年公開,但很少有人公開發布健壯的實現。
協議
- 內容可定址網路 (CAN)
- Chord(http://pdos.csail.mit.edu/chord/) - 旨在使用對等思想構建可擴充套件、健壯的分散式系統。它完全去中心化和對稱,並且可以使用 log(N) 個訊息找到資料,其中 N 是系統中節點的數量。Chord 的查詢機制在頻繁的節點故障和重新加入的情況下得到證明是健壯的。一個單一的 C 語言研究實現可用,但還有其他 C++、Java 和 Python 實現。
- Tulip
- Tapestry
- Pastry
- Bamboo(http://bamboo-dht.org/) - 基於 Pastry,一種用 Java 編寫的 Pastry 協議的重新設計,並根據 BSD 許可證授權。
加密
作為任何 P2P 網路安全的一部分,需要加密以確保只有“允許”的各方才能訪問敏感資料。示例包括伺服器/客戶端設定(即使在 P2P 上)上的資料加密,客戶端可以在不擔心資料在伺服器上被訪問的情況下共享資料(這其中一部分是如果網路本身能夠啟用用於傳輸的分散式快取機制,無伺服器),傳輸加密,以防止中間人攻擊,或資料監控(參見 FreeNet)以及許多其他旨在保護隱私併為網路提供擴充套件安全級別的應用程式。
有幾種演算法可用於實現加密,P2P 專案最常使用的是:BlowFish。
壓縮
資源(內容、其他)
P2P 應用程式可用於以可唯一標識的打包資訊形式共享任何型別的數字資產。P2P 應用程式以共享檔案而聞名,這引發了幾個問題和可能性。
元資料
元資料(元資料,或有時稱為元資訊)是“關於資料的資料”。元資料項可以描述單個數據項或內容項,或描述包含多個內容項和層次結構級別的資料集合,例如資料庫模式。
資料是知識的最低抽象級別,資訊是下一個級別,最後,知識是三者中最高的級別。元資料包含幫助定義目標專案知識的直接和間接資料。
元資料描述的層次結構可以無限地繼續下去,但通常上下文或語義理解使過於詳細的解釋變得不必要。
任何特定資料項所起的作用取決於上下文。例如,當考慮倫敦的地理位置時,“E83BJ”將是一個數據,而“郵政編碼”將是一個元資料。但是,當考慮管理地理資料的自動化系統的資料管理時,“郵政編碼”可能是一個數據,然後“資料項名稱”和“以 A-Z 開頭的 5 個字元”將是元資料。
在任何特定上下文中,元資料表徵它所描述的資料,而不是由該資料描述的實體。因此,與“E83BJ”相關,資料“位於倫敦”是對具有郵政編碼“E83BJ”的現實世界中地點的進一步描述,而不是對編碼本身的描述。因此,雖然它提供了與“E83BJ”相關的資訊(告訴我們這是倫敦某地的郵政編碼),但這通常不被認為是元資料,因為它描述的是現實世界中的qua地點,而不是qua資料。
- 資料和元資料的區別
通常無法區分(普通)資料和元資料,因為
- 有些東西可以同時是資料和元資料。文章的標題既是標題(元資料),也是文字的一部分(資料)。
- 資料和元資料可以改變它們的角色。一首詩本身會被視為資料,但如果有一首歌使用它作為歌詞,那麼整首詩可以作為元資料附加到歌曲的音訊檔案。因此,標籤取決於觀點。
這些考慮因素適用於上述任何定義,除非使用顯式標記來表示什麼是資料,什麼是元資料。
- 元資料層次結構
當以層次結構排列時,元資料更恰當地被稱為本體或模式。這兩個術語都描述了為了某種目的或為了使某些操作成為可能而“存在的東西”。例如,圖書館目錄中主題詞的排列不僅用作在書架上查詢特定主題書籍的指南,而且還用作指南,以瞭解圖書館本體中“存在”的主題以及更專業的主題是如何與更一般的主題詞相關或派生自更一般的主題詞的。
元資料通常儲存在中心位置,並用於幫助組織標準化其資料。此資訊通常儲存在元資料登錄檔中。
- 模式示例
關於元資料工作以及如何使其可訪問和有用的一個很好的例子可以在W3C的舊頁面元資料活動宣告 (http://www.w3.org/Metadata/Activity.html) 和資源描述框架 (RDF) 中看到,透過使用宣告性語言,它提供了一種使用 XML 以語句的形式表示元資料的標準方式,這些語句描述了 Web 上專案的屬性和關係。RDF 擁有自己的更新資料頁面,位於 http://www.w3.org/RDF/。
元資料登錄檔
- 免費服務
- MusicBrainz ( http://musicbrainz.org/ ) 是一個社群音樂元資料庫(非營利性服務),它試圖建立一個全面的音樂資訊網站。您可以透過瀏覽此網站使用 MusicBrainz 資料,也可以從客戶端程式訪問資料 - 例如,CD 播放器程式可以使用 MusicBrainz 識別 CD 並提供有關 CD、藝術家或相關資訊的的資訊。MusicBrainz 還支援 MusicIP 的 Open FingerprintTM 架構,該架構識別音訊檔案中的聲音,無論數字檔案細節如何變化。該社群提供了一個基於 XML 的 REST 風格 Web 服務。
資料庫和索引
檔案
P2P 應用程式的使用者可以選擇檔案作為要在網路上共享的資源。最簡單、最安全的方法是僅以不可變的方式共享檔案的內容,大多數 P2P 應用程式都滿足此需求,在任何情況下,其他同步模型都可以圍繞檔案資源和這些檔案的可能狀態構建,最複雜的是分散式檔案系統的實現。
共享檔案
在 P2P 網路上共享檔案包括管理(索引、啟用搜索和傳輸)兩種不同的資源,即本地檔案和遠端檔案。
本地檔案
如果 P2P 應用程式支援檔案共享。共享檔案的最常用方法是允許使用者選擇本地檔案系統卷中的一個或多個目錄。這包括在應用程式首選項中提供選擇要共享的檔案路徑以及將下載的檔案放在哪裡。
通常的做法是自動將下載目錄新增到共享路徑列表或下載檔案列表中,以便對等點立即開始複製下載的資源。
監控更改
在使用者確定了資源後,應用程式需要在執行時驗證任何刪除、重新命名或寫入操作,這些操作通常針對任何共享檔案,因為這可能構成檔案狀態的更改(內容更改)或任何新增檔案或對共享資源的更改。這會導致先前生成的雜湊或索引無效。可以透過為檔案內容生成雜湊值並使用作業系統對檔案系統的控制來監控發生的更改來解決此問題(例如,在 Windows 上可以使用 Win32 API ReadDirectoryChangesW)。
根據實現的要求,使用多個內容雜湊可能會有益,一個更強的雜湊用於整個網路,而一個更快、質量較低的雜湊僅用於監控本地更改。
- 檢測到的共享檔案及其更改
由於應用程式預計不會一直執行,並且能夠持續監控對資源進行的任何更改,因此必須採取措施來維護進一步的完整性。因為如果應用程式關閉,它將無法繼續監控更改,並且作業系統將負責允許某種 API 來檢測檔案更改,例如上次寫入訪問時間戳。因此,每次執行應用程式以保證完整性所需的步驟是
- 驗證資源(已知檔案和共享路徑)是否仍然有效(它們仍然存在且未被修改)。
- 更新本地索引以反映上述步驟中發現的內容(從共享列表中刪除任何無效目錄或卷)。甚至可以提示使用者採取糾正措施,因為有些可能是可移動介質(DVD 等)。
- 開始監控新更改。
- 檢查自應用程式上次退出以來所有資源內容的更改,這可能意味著必須單獨檢查每個檔案的上次寫入日期(大多數現代作業系統允許這樣做)。根據實現方式,可以包括以下步驟以減少重複工作。
- 驗證所有先前索引的檔案是否仍然存在。
- 驗證新檔案是否存在。
- 重要的本地路徑
對於 P2P 應用程式,至少有兩個路徑具有較高的實用價值。應用程式所在的路徑,因為可能需要更新或進行任何必要的安全檢查,甚至可能用作查詢應用程式首選項的基礎(如果未使用其他設定,例如 Windows 作業系統上的系統登錄檔)和/或下載目錄,一個啟用寫入的目錄,所有下載都將放在這裡。
外部檔案
這些檔案不在本地使用者的直接控制之下。
檔案過濾
大多數 P2P 應用程式不允許多選檔案共享,而是透過允許選擇特定目錄來批次進行共享,需要提供一種機制來排除特定檔案被共享,這取決於使用者的意願、網路的具體情況,甚至為了減少檔案共享系統負擔,在處理不需要的檔案方面,無論是大小、副檔名,甚至是檔案的固有內容,都有能力剔除它們,這都是有用的。
索引
索引是索引資源(如共享檔案)的任務,其目的是使應用程式能夠知道哪些資源可供網路共享。
每次執行應用程式時都會進行索引,因為只能在應用程式執行時監控資源的更改,並且在對共享資源首選項進行更改時進行索引。這也使得在應用程式執行時必須有一個監控資源更改的功能。
大多數 P2P 應用程式還支援排除或過濾共享資源,例如,如果選擇了一個目錄進行共享,但需要排除某些內容。
搜尋
使用 DHT
服務
種子
吸血鬼
在自然界中,合作很普遍,但吸血鬼(騙子、變種人)也很多。從進化的角度來看,騙子確實應該繁榮昌盛,因為他們不為集體利益做出貢獻,只是享受著他人合作努力帶來的好處,但他們並沒有。兩者都以不同的策略競爭同一個目標,合作是所有人的成本最低的途徑(即使從長遠來看,對於吸血鬼來說也是如此),合作提供了穩定性和可預見性,另一方面,如果騙子沒有保持某種平衡,他們會使系統退化,從而導致系統整體失敗。
在計算機科學中,尤其是在網際網路上,吸血鬼或吸血鬼是指從他人資訊或努力中受益的行為,通常是有意為之,但沒有提供任何回報,或者只是象徵性地提供一些回報,試圖避免被稱為吸血鬼。他們普遍受到譴責。
這個名字來源於水蛭,這種動物會吸食血液,然後試圖偷偷溜走。還會使用其他術語,例如白吃白喝,但吸血鬼是最常用的。
示例
- 在對等網路中,吸血鬼不會分享任何東西(或分享很少的東西,而且價值很低)以供上傳。許多應用程式都有處理吸血鬼的選項,例如以較低的速率上傳給那些不分享任何東西的人,或者根本不允許上傳給他們。一些檔案共享論壇有一個反吸血鬼政策來保護下載內容,在那裡,使用者將需要付出比大多數吸血鬼願意付出的更多精力或耐心才能訪問“下載區”。
- 大多數 BitTorrent 網站將吸血鬼稱為正在下載檔案的客戶端,但由於他們沒有完整的檔案副本,因此無法播種它。預設情況下,它們被配置為允許特定客戶端在上傳更多資料時下載更多資料。
- 在共享網路(例如學校或辦公室區域網)上,任何故意過度使用頻寬(以至於明顯降低網路的正常使用)都可以稱為吸血鬼行為。
- 在線上電腦遊戲中(尤其是角色扮演遊戲中),吸血鬼是指玩家加入某個隊伍的目的是為了獲得獎勵,而沒有為獲得這些獎勵所做的努力做出任何貢獻。有時,為了提升玩家等級,允許這樣做。通常來說,在沒有徵得小組成員同意的情況下這樣做,被認為是不好的行為。在第一人稱射擊遊戲中,這個術語指的是一個人,他透過讓隊友將他帶到勝利而獲益。
- 直接連結是一種頻寬吸血鬼行為,當在屬於第二個網站(吸血鬼)的網頁中放置一個未經授權的連結物件(通常是影像)時,該物件通常來自第一個網站。這構成了未經授權使用主機網站的頻寬和內容。
在某些情況下,吸血鬼與白吃白喝同義,而不是侷限於計算機環境。
可能的解決方案
信任和聲譽
由於點對點網路的波動性和模組化特性,點對點信任(在構建社群的參考中提到)和使用者參與是為最終歸屬於建立者的服務或資源的線上交易提供的少數動機或潤滑劑之一。在參與者中擁有良好的平均信譽也將增強對網路和構建在其上的系統的信任。
檔案共享

傳統上,檔案傳輸涉及兩臺計算機,通常被指定為客戶端和伺服器,大多數操作是將檔案從一臺機器複製到另一臺機器。
大多數 WEB 和 FTP 伺服器因流行而受到懲罰。由於所有上傳都從一箇中心位置進行,因此熱門網站需要更多資源(CPU 和頻寬)才能應對。使用 P2P,客戶端會自動映象他們下載的檔案,減輕釋出者的負擔。
大多數 P2P 協議的一個限制是它們不提供複雜的 檔案系統模擬或使用者許可權系統,因此像 NFS 或 FTP 協議提供的複雜檔案操作非常少見,這也是有原因的,因為網路是去中心化的,因此使用者身份驗證系統很難實現,而且大多數系統很容易被破解。
關於 P2P 傳輸的另一個概念是頻寬的使用,事情不會是線性的,傳輸將取決於資源的可用性、種子節點的負載、網路大小以及本地使用者連線及其頻寬的負載。
如前所述,下載具有限制性版權、許可或受特定國家法律保護的檔案,可能會增加被起訴的風險。這些網路上提供的一些檔案可能受版權保護或受法律保護。您必須意識到存在風險。
接收
來自多個來源(分段下載,群組下載)
多源下載(分段下載、群組下載)可能是更有效的方式下載檔案從多個對等節點。單個檔案從多個不同的來源或上傳者並行下載。這可以幫助一群使用者使用非對稱連線,例如ADSL為一個下載者提供高總頻寬,並處理下載需求峰值。所有群組傳輸都依賴於至少存在一個完整的檔案的完整副本(可能的演變可能包括新增某種裡德-所羅門 (RS) 演算法)並且它主要對大型檔案有用(大小取決於可用頻寬,因為權衡包括更高的 CPU 成本和額外的資料傳輸以使系統正常工作)。
這種技術不能神奇地解決問題,在一組上傳頻寬不足的使用者中,需求高於供應。但是,它可以很好地處理峰值,並且它也可以在一定程度上讓上傳者“更頻繁”地上傳,以更好地利用他們的連線。但是,簡單的實現通常會導致檔案損壞,因為無法知道所有來源是否都實際上傳了同一檔案的片段。這導致大多數程式使用分段下載使用某種校驗和或雜湊演算法來確保檔案完整性。
恢復
下載時預覽
這可能有助於讓使用者在下載過程完成之前儘快預覽檔案,這將提高網路上共享的質量,增強使用者的信心,減少時間和頻寬的浪費。
安全
中毒和汙染
示例包括
- 中毒攻擊(例如,提供內容與描述不同的檔案)
- 汙染攻擊(例如,將“不良”塊/資料包插入網路上的有效檔案)
- 插入
- 病毒到攜帶的資料(例如,下載或攜帶的檔案可能感染了病毒或其他惡意軟體)
- 惡意軟體在點對點網路軟體本身(例如,分發的軟體可能包含間諜軟體)
權利保護
保護內容的版權不應該強加於公眾,即使今天大多數版權政策已經取消了宣告作品保留權利的必要性,也不應該有任何期望公眾必須不遺餘力地保護少數人的利益,即使他們沒有明確說明。預計公共領域的作品今天將超過擁有有效版權的作品。
鑑於實際情況,任何 p2p 應用程式都有道德義務告知使用者因這種非常混亂的情況而產生的問題。隨著時間的推移,一些解決方案出現以緩解問題並幫助版權持有者保護他們的作品,但那些應該關心這個問題的人似乎沒有表現出任何興趣。本節將嘗試展示可用的可能性。
解決此問題的簡單方法是明確將識別版權作品的責任歸於權利所有者,為了實施此解決方案,需要有一個數據庫可供 p2p 應用程式免費使用,以便可以宣告內容為版權作品,或者需要建立一個標準來明確識別這些作品。為了解決這個問題,人們討論並提出了幾種解決方案,但在 2003 年 7 月,Kokopelli Network Inc.(由 Alex Sauriol 共同創立)提出了一個名為 BluFilter 的解決方案,它可以透過比較儲存在 mp3 中的波形來識別版權狀態(請參閱kokopellinetworks.com @ web.archive.org),這種方法似乎可行,但沒有采用類似的技術似乎公開用於告知使用者,但有傳言稱類似的方法已被用作合法訴訟的基礎。
分散式代理
VoIP
分散式流媒體
優先順序設定
在傳輸上啟用動態優先順序集不僅可以使使用者滿意,而且提供了一種簡單的方法來促進對高度病態內容的傳輸,從而提高網路上同一內容複製的速度。
人們甚至可以更進一步,允許按資源配置,啟用對每個資源的刪除或配置訪問許可權,例如在檔案系統上,甚至啟用一種方法來允許資料自由交易的市場,讓使用者為該資源設定特定的比率。
頻寬排程器
管理本地資源不僅對本地使用者很重要,而且對全域性網路也很重要。管理和啟用對應用程式頻寬使用的控制將激勵使用者改進他們管理該資源的方式(使用什麼以及如何使用),如果應用程式將其視為動態資源並予以考慮,則可以透過減少浪費來對全域性網路產生積極影響。
許多實際的 P2P 應用程式允許使用者對自己的頻寬進行這種控制,但這不僅對 P2P 有益,如今,隨著大多數計算機的重要部分連線到網際網路,管理這種稀缺資源至關重要。一個例子是微軟的後臺智慧傳輸服務 (BITS),其目標是在其他應用程式未使用頻寬時啟用系統更新,甚至啟用 MS IM 服務來傳輸資料,需要注意的是,還可以使用 BITS 技術,因為它透過元件物件模型 (COM) 公開。
"新" 模型
容錯網站
許多人推測,點對點檔案共享技術可用於改進 wiki 和其他型別的網際網路服務。
高質量影片或大型檔案分發
網際網路基礎設施不是為支援廣播而設計的。P2P 透過將伺服器或內容提供者從單點切換到去中心化基礎設施來部分解決這種基礎設施瓶頸,這並非取決於特定網路限制,而是取決於最佳化分發及其流行度的協議。
2008 年 2 月,歐盟宣佈承諾投入一個為期四年的專案,該專案旨在建立一個開源、類似於 BitTorrent 的點對點客戶端,稱為 P2P-Next,該客戶端基於對代爾夫特理工大學 python 專案 Tribler 的改進。歐盟將為此專案投入 1400 萬歐元(1050 萬英鎊,2200 萬美元),另外 21 個合作伙伴將再投入 500 萬歐元(370 萬英鎊,740 萬美元),其中包括歐洲廣播聯盟、蘭開斯特大學、英國廣播公司、Markenfilm、VTT 技術研究中心和先鋒數字設計中心有限公司。
影片分發
即使現有的幾個 P2P 應用程式確實支援影片分發,但它們很少擁有持續的基礎設施,而且主要目標是允許訂閱影片內容。幾個應用程式確實提供搜尋,但將影片播放器/媒體管理器與分發進行謹慎整合至今仍然非常罕見,是一個不斷發展的主張。
考慮到像 YouTube、Google Video 及其同類產品這樣的中心化系統在線上影片方面開啟的大門,這種對分發的新需求導致了幾個 P2P 產品的建立,例如 Joost(來自 Kazaa 和Skype 應用程式的同一團隊),Tape it off the Internet 或 Veoh TV。
在新的興起平臺中,值得特別注意的是 Miro(前身為 Democracy Player),這是這類專案中的先驅之一。它可以在 http://www.getmiro.com/ 獲取,是一個開源的(支援所有當前版本的 Windows、Mac OS 和多個 Linux 發行版)非營利性影片播放器,支援幾乎所有格式。它由參與式文化基金會 (PCF,一個非營利組織) 建立,它自動化訂閱影片 RSS 饋送,然後使用 Bittorrent 下載,從而減少了分發所需的頻寬費用。此外,還提供了 Miro Video Converter 應用程式,它促進了影片轉換為無專利 OGG Theora 編解碼器(它提供與非免費 h.264 相同的質量),並且一直支援讓維基百科上的影片的活動。
即時影片
使用實際基礎設施將即時活動傳輸給數百萬人,會對輸出質量施加限制,並對硬體資源提出很高的要求,不僅包括網路資源,還包括傳輸兩端編碼和播放功能。
這導致了使用 P2P 網路,試圖節省伺服器頻寬。這種新方法的一個例子是來自微軟亞洲研究院的 MSR 亞洲點對點影片廣播系統(http://research.microsoft.com/en-us/projects/p2pbroadcast/),該系統在 2008 年北京奧運會上使用,聲稱使用了超過 200 萬個網際網路對等節點。
透過半私有的 P2P 網路分發數字內容
近年來,P2P 也被用於幫助減輕一般數字內容分發系統中的負載,該系統具有受限的參與(非公共訪問)和專用功能。
BitTorrent DNA 或 **BitTorrent Delivery Network Accelerator** 據報道自 2005 年 1 月起開始運作,以這種方式運作。這種分發技術對於遊戲軟體公司尤其有趣,這些公司一直在將其業務轉移到網際網路,並採用訂閱服務或內容的商業實踐,取代了銷售其建立的數字商品副本的所有權,或者採用混合模式。這將需要網路連線來下載通常受 DRM 保護的額外內容,傳輸次數增加,以至於在更新過程中甚至在安裝產品時,使用者機器將被用於建立 P2P 網路,有時甚至沒有消費者完全知曉,以幫助分發該付費內容。
暴雪 例如,使用 BitTorrent 並告知使用者,在下載某些內容時,使用者還將在 P2P 網路中共享該內容。
Solid State Networks 已經提供了一種基於 P2P 的交付解決方案,就像 Akamai 一樣,它向遊戲發行商出售 Netsession 介面。還有一些其他工具用於實現相同的效果(不限於遊戲),但作為幫助分發大型檔案的工具,Pando Media Booster 就是一個例子。
但是,關於利用客戶資源的透明度存在問題。Solid State Networks 最近,在多位客戶報告了有關這種新方法的問題後,這種方法通常會降低使用者系統的安全性、穩定性和效能,已經開始了一項運動來建立行業“最佳實踐”,否則這些解決方案中的大多數將屬於惡意軟體的定義,http://www.solidstatenetworks.com/index.php/about-us/p2p-best-practices/ (PDF).
P2P 也用於數字藝術,例如 電子羊 專案(http://community.electricsheep.org),一個基於 libtorrent BitTorrent 實現的 C++ 開源專案,是一個 分散式計算 專案,用於為 分形火焰 製作動畫並使其進化,這些火焰反過來又分發到聯網的計算機上,這些計算機將其顯示為 螢幕保護程式。對於偶爾的使用者來說,這個過程是透明的,他們可以簡單地安裝軟體作為螢幕保護程式。或者,使用者可以更多地參與專案,手動建立羊(動畫分形火焰的影片檔案)以上傳到伺服器。
硬體
隨著 P2P 協議變得更加成熟,並聲稱已獲得良好的公眾採用程度,我們將看到更多嵌入式裝置支援 P2P 解決方案。這種情況已經開始出現。
- TonidoPlug(http://www.tonidoplug.com)是一款小型、低功耗、低成本的個人家用伺服器和 NAS 裝置。Tonido Torrent 是一款基於 Boost 許可的 libtorrent 庫中 BitTorrent 實現的基於網路的 Torrent 客戶端。
- Excito(http://excito.com)也提供一系列伺服器,名為“Buba”,這些伺服器透過使用 Boost 許可的 libtorrent 庫來支援 BitTorrent 協議。
流量整形器
機頂盒
P2P 技術還可以用於提供一種以低成本自動方式分發內容的方法。
使用直接連線到寬頻線路的點對點架構,一個機頂盒(一種簡化的 PC),帶有作業系統和一些儲存空間,可以例如提供類似於影片點播的服務。
VUDU
VUDU(http://www.vudulabs.com/),數千部電影直接送達您的電視,無需電腦,並且獨立於您的有線或衛星電視服務。
分散式檔案系統
分散式檔案系統並不新鮮,但前 P2P 系統依賴於伺服器(或從已知機器池中選舉伺服器),並且主要側重於提供網路穩定性的區域網。新的系統更可靠地面對網路的波動性,並實施了 P2P 依賴的新技術。大多數 P2P 分散式檔案系統的實現將在一定程度上基於 FreeNet 模型演變。
Tahoe-LAFS (http://allmydata.org/trac/tahoe/wiki) 是一個安全的遠端(分散式)檔案系統,根據 GNU 通用公共許可證 (GPL) 釋出,它與 P2P 共享底層網路架構和最少許可權原則,但它不是完全去中心化的。它需要一箇中心節點,稱為引入者,用於連線新節點。
其目標是在多個對等節點(雲端儲存)中建立容錯儲存池,其中每個人都為彼此提供儲存空間。檔案使用 AES 加密在多個節點之間分佈。Reed-Solomon 糾錯的變體用於允許對等節點斷開連線而不會影響內容的完整性。
Tahoe 是免費軟體:所有原始碼都根據開源許可證提供。主頁在 http://allmydata.org。Tahoe 由 allmydata.com 贊助,該網站使用它作為商業個人資料備份服務的後臺。
Omemo (http://www.omemo.com/) 是一個根據 GPL 釋出的免費開源 (Visual Basic) P2P 應用程式,由 Pablo Soto 建立,他是 MANOLITO 協議和 Blubster 的創造者。Omemo 採用不同的方法,使用基於 Chord 的環形 DHT。它旨在支援基於金鑰的路由,同時由於隨機化而保持查詢源模糊。適用於 Windows。
移動點對點計算
PEPERS 專案
PEPERS 專案 (http://www.pepers.org/) 的重點是設計、實現和驗證一個可靠的平臺,該平臺為未來環境智慧 (AmI) 環境中安全移動點對點應用程式的設計、開發和運營部署提供高階支援。該平臺將極大地幫助工作,並使移動應用程式和服務提供商以及服務使用者受益。該專案將透過提出一個相關的框架架構來解決與移動點對點 (p2p) 系統中的安全性、隱私、信任和訪問控制相關的問題。該框架將包括對基於策略的移動系統安全管理的支援。該專案的特定主題重點(也反映在將實施的試點場景的選擇中)是在地理區域分散的團隊之間的協作。該財團合作伙伴來自 4 個歐盟成員國(希臘、英國、義大利和塞普勒斯),包括關鍵技術提供商和行業參與者,以及領先的學術機構,以及來自不同商業領域(媒體和新聞、安全服務)的使用者合作伙伴,他們對透過先進技術解決方案進行安全協作的需求不斷增加,這些解決方案帶來了重要的專業知識和知識,涉及 PEPERS 相關技術以及底層的運營商業模式。
從技術角度來看,該專案將重點關注
- 為透過合適協議的移動點對點應用程式定義適當的安全服務
- 分析和設計移動裝置中可能的平臺和介面,這些平臺和介面可以提供安全服務來支援點對點應用程式
- 基於開放標準的介面定義,這些介面將允許安全地訪問應用程式伺服器
基於專案技術的移動點對點應用程式的安全使用將在支援兩個運營領域的實際試點應用程式中得到驗證
- 媒體和新聞:出差的記者需要能夠以保護和監控智慧財產權以及僱用他們的組織利益的方式記錄、編輯和交換資訊。這特別相關,因為它涵蓋了移動工作力的總體問題以及與媒體應用領域更具體的問題。
- 物理安全:警衛和移動巡邏人員需要能夠在動態環境中接收和傳輸敏感的客戶資訊,以便他們在出現臨時突發事件時做出響應和合作。
數字貨幣
比特幣
**比特幣**(http://www.bitcoin.org)是一個基於點對點的數字貨幣系統,沒有中央伺服器或可信方,沒有中央機構來發行新貨幣或跟蹤交易。網路節點擁有自己貨幣的加密金鑰,並藉助網路直接相互交易,以檢查雙重支出。
比特幣系統貨幣供應的有限通貨膨脹是透過整個網路(按 CPU 算力)平均分配的。
- 透過網際網路進行資金轉賬,無需中介。
- 沒有第三方控制交易。
- 交易實際上是免費的。
- 沒有由部分準備金銀行或央行政策造成的固有波動。
外部連結
- Chord 查詢服務
- PAST 分散式儲存工具
- CoopNet 協作內容分發系統
- 更多點對點研究資源
- 基於點的先進技術商業模式 - 來自麻省理工學院的 P2P 行業模型。
- FailSafeWiki
- 點對點基金會 網站,討論點對點網路背後的哲學和經濟學。
- 關於 P2P 的各種論文(研究和實踐)(GOBO)
- 點對點網路促進科學發展 回顧了點對點網路在科學研究中的當前和潛在用途。
- 年度 IEEE 國際點對點計算大會
- 點對點計算的會議和資源
- IBM 開發者網路:點對點計算實踐
- Internet2® 點對點工作組
- 微軟點對點網路
- OpenP2P 點對點開發資源
- Windows 點對點網路簡介 來自 MSDN。
- 研究:點對點對合法音樂銷售的影響“在統計學上與零沒有區別”。
