I2P

I2P（Invisible Internet Project即“隱形互聯網計劃”），是一項混合授權的匿名網絡項目。
I2P網絡是由I2P路由器以大蒜路由方式組成的覆蓋網絡，建立於其上的應用程序可以安全匿名的相互通訊。它可以同時使用UDP及TCP協議，支援UPnP映射。其應用包括匿名上網、聊天、搭建暗網服務和文件分享。

**系統簡介**
I2P是可伸縮性強，具有自我組織與恢復能力的基於消息的匿名網絡。其上運行有多種不同的匿名安全程序，各程序可以自行決定匿名性、延遲、流量平衡而不用考慮混淆式路由網絡的具體實現。它們的數據活動可以與現有的I2P用戶的匿名數據相混合。目前的用途包括全部典型的Internet應用 - 匿名網頁瀏覽（Outproxy），匿名網站（Eepsite），匿名博客與內容聚合（ Syndie date=20091215031010 ），匿名聊天（通過IRC、Jabber、I2P-QTMessanger），匿名文件傳輸（I2PSnark，Robert），匿名文件分享（I2Phex, iMule），匿名電子郵件（I2PMail+susiMail），匿名新聞組，及其他開發中的程序。與自由網或GNUnet上內容發佈網絡不同，I2P所提供的服務具有更強的交互性 - 從常規的Web搜索引擎，到論壇，博客，數據站點再到無需安裝Tor / 自由網即可訪問其中內容的網關。
I2P做為消息機制為基礎的中間件與這些匿名性程序協同工作 - 程序要求發送數據給某一加密標識（目標），I2P來處理並保證數據安全匿名的到達#目標。I2P還帶有易用的流封裝庫，可將I2P匿名消息轉換為可靠有序的數據流傳輸，提供基於TCP協議和QUIC協議（於SSU2）的擁堵控制算法解決網絡程序的寬帶延遲問題。I2P同時有簡易的SOCKS代理接口可以將現有的網絡程序綁定於I2P網絡中。為了方便使用，I2P為提供了一系列API，從而充分利用I2P的資源。

**I2P應用程序**
I2P被設計為其他程序可以使用的匿名網絡層。這些運行於I2P上的程序有的被捆綁在I2P的安裝包中，有的需要自行下載。I2P路由控制檯是一個Web界面，可以通過瀏覽器管理I2P路由器的運行，類似於現在大多數家用路由器的管理方式。

**I2PTunnel**
I2PTunnel是I2P的內置程序，它可以通過#隧道將遠程計算機上的端口映射為本地主機端口，從而允許任意TCP/IP程序通過I2P進行通信。

**SAMV3**
SAM協議允許任意語言編寫的程序通過Socket接口使用I2P路由器。

**BOB（已廢棄）**
BOB比SAM更簡單的TCP類型的橋協議。

**I2CP**
I2P 客戶端協議 (I2CP) 使客戶端應用程序能直接控制隧道數量、跳躍長度和目的地標識符等信息，使程序和I2P路由緊密結合。目前主要用於BiglyBT I2PHelper

**BitTorrent**
I2P網絡中有多個客戶端支持BitTorrent功能，每種客戶端都支持Web界面的遠程控制。這些客戶端不允許下載含I2P外部Tracker的種子或連接I2P以外的用戶，也不允許I2P外部的用戶連接進來。由於匿名性的原因，目前I2P內部還沒有Tracker站點開放對公網IP的支持。
I2PSnark，包含於I2P安裝包中，是BitTorrent客戶端Snark的移植版。
BiglyBT基於I2CP，提供了Tor和I2P插件，支持純暗網和混合下載/做種。

**eDonkey iMule**
thumb
iMule（隱身騾）是全平臺客戶端aMule的I2P移植版。
與eDonkey不同，iMule只使用Kademlia連接因此沒有服務器。iMule自1.2.3版起攜帶內置的GCJ編譯的I2P路由器，但由於I2P的GCJ編譯版效率低下版本滯後，內置路由器被I2P開發者叫停。

**Gnutella I2Phex**
I2Phex是Gnutella客戶端Phex的I2P移植版。

**I2P-Messanger**
通過I2P進行匿名通信的無服務器即時聊天程序。

**MuWire**
MuWire 是一個匿名文件共享程序。它使用 I2P進行所有通信，使您的 IP地址和活動保持私密。- 搜索文件：您可以搜索其他 MuWire 用戶共享的文件。- 共享文件：您可以與其他MuWire用戶共享您自己的文件，通過多種方式：
** 您可以將文件發佈為 自動提要 ，例如博客。
** 您可以評論共享文件。
** 您可以為您共享的文件頒發證書 ，以向其他人證明您擁有該文件。- 消息和聊天：您可以其他 MuWire用戶交流通過消息和即時聊天。- 信任：您可以選擇 信任或不信任 其他 MuWire 用戶。

**Susimail**
I2P免費的假名Email服務，由'Postman'維護。郵件傳輸服務器為pop.mail.i2p（POP3）及smtp.mail.i2p（SMTP）。可以通過I2PTunnel利用普通的Email客戶端訪問。
Susimail被編寫來處理隱私問題，普通的Email客戶端可能在與SMTP服務器的通信中發送用戶的主機名。Susimail是Web界面的Email客戶端，最初被設計來與配合Postman的郵件服務，設計中考慮到匿名性與安全性，是I2P默認安裝包的一部分。可以通過I2P路由控制檯訪問。（注意SusiMail僅僅被設計來進行郵件的讀寫，郵件賬戶的管理需要訪問www.mail.i2p。）

**Syndie**
Syndie是I2P的博客程序可以同時使用Tor網絡，目前開發停滯仍處於Alpa階段。

**I2P術語**
I2P用戶在I2P的網站及路由界面中會遇到如下術語：

**I2P匿名站點**
I2P匿名站點（eepsite）是I2P網絡內的網站。I2P站點的名稱以.i2p結尾，例如ugha.i2p或forum.i2p. I2P代理（eepProxy）可以通過I2P文件夾下hosts.txt中的加密識別密鑰找到這些站點。通常，必須通過I2P才能訪問這些站點。對於使用加密賃集的I2P匿名網站/出口代理-{只}-有持有該站點密鑰的路由器才能訪問。

**I2P代理**
I2P代理（eepProxy）程序處理瀏覽器與#I2P匿名站點間的所有通信。它以HTTP代理服務器的形式工作，適於絕大多數瀏覽器。
.i2p是一個虛擬的頂級域名（eppsite），只在I2P表層網絡內有效。.i2p域名由瀏覽器提交給eepProxy進行解析，eepProxy查詢到I2P用戶密鑰後處理數據的傳輸，從而使瀏覽器可以透明瀏覽I2P網絡。

**用戶/節點**
用戶/節點（Peer），I2P網絡中的其他計算機。I2P網絡中的每臺計算機都會共享帶寬對拆分後加密的數據包進行路由及中轉。

**隧道**
每10分鐘，用戶的I2P路由就會與新的節點建立連接，將本機數據包與其他I2P節點中轉的數據包一併通過這些隧道中轉傳遞，令數據包最終到達最終的#目標。

**目標**
I2P中將可到達的匿名端點（EndPoint）稱為目標（Destination）在I2PTunnel中體現為主機+端口，每個I2P程序都可以創建自己的目標與其他目標間進行通信。

**對比其他的匿名網絡**

**Tor /洋蔥路由**
Tor和I2P之間的兩個主要區別 是威脅模型和外代理設計（雖然 Tor也支持隱藏服務）。此外，Tor採用基於目錄的方法-提供一箇中心化的目錄服務器，以收集和報告統計數據，而不是I2P的分佈式網絡數據庫和對等選擇 。 Tor 確實有一些針對某些攻擊者的重大弱點 - 一旦通信離開網絡，全球對手可以更輕鬆地進行流量分析。此外，出口節點可以訪問明文雙向傳輸的數據，以及很容易被濫用。
然而，很多人不必擔心這些情況，因為這超出了他們的威脅模型。這也在 I2P 的（正式）功能範圍之外（你當然可以構建出口代理，但I2P並不為此而生）。

**Tor 和 I2P 術語的比較**
雖然 Tor 和 I2P 在很多方面都很相似，但大部分術語是不同的。

**Tor 相對 I2P 的優勢**
 大許多的用戶群；在學術和黑客群體中得到較多關注； 基於正式研究的匿名性、抵抗性和性能優勢；有一個非匿名的，來自大學的領導者- 解決了一些 I2P 尚未解決的規模問題（但現在I2P至少擁有3萬以上的活躍節點和一萬八千左右的公網IP，Tor擁有6000左右的中繼和2000左右的網橋）- 有可觀的資金- 有更多的開發者，其中有些是全職的- 由於具有基於 TLS 的傳輸和網橋，對國家級封鎖有更強的抵抗- 為出口流量設計和優化，有大量的出口節點- 更好的文檔，擁有正式文件和規範， 更美觀的網頁，多許多的翻譯- 內存使用更高效（試試I2Pd？）- Tor 客戶端節點的帶寬開銷非常低，在Tor中，客戶端節點不需要太多帶寬，他們沒有完全參與網絡。- 集中控制降低了每個節點的複雜性，並能有效應對 Sybil 攻擊- 高容量節點提供更高的吞吐量和更低的延遲- C，而不是Java

**I2P 相對 Tor 的優勢**
 專為隱藏服務設計和優化，在這方面比Tor快許多- 完全分佈式和自組織- 通過不斷分析和比較性能，而不是根據目錄聲稱的帶寬來選擇節點- 洪泛節點（“目錄服務器”）是持續變化並且不被信任的， 而不是硬編碼寫入- 足夠小以至於它還沒有被大量（或者根本沒有）封鎖或拒絕服務- P2P 友好- 消息交換而不是線路交換- 消息的隱式透明負載平衡跨越多個對等點，而不是單一路徑- 單向隧道而不是雙向隧道線路，使對等點必須的節點數量增加一倍以獲得相同的信息。- 防止檢測客戶端活動，甚至當攻擊者參與隧道時，如隧道不僅僅在終點結束消息（例如 netDb、隧道管理、 隧道測試）- I2P 中的隧道是短暫的，減少了攻擊者可以用來掛載的樣本，不像 Tor 中的線路，它們通常長壽。- I2P API 專為匿名和安全性，而 SOCKS 是為功能而設計的。- 基本上所有節點都參與為其他人的路由- 使用TCP和UDP傳輸- Java，而不是C（I2Pd使用C++）

**自由網(Freenet)**
Freenet是一個完全分佈式的P2P匿名發佈網絡，提供安全的數據存儲方式，以及一些試圖解決洪泛負載的方法。雖然Freenet的設計目的是分佈式的數據存儲，但是人們也在Freenet之上建立了一些應用程序，使得更通用的匿名通信成為可能，如靜態網站和留言板等。
相比於I2P，Freenet提供了一些實質性的好處——它是一個分佈式數據存儲，而I2P並不是，Freenet允許用戶檢索即便內容的發佈者已經離線了的已發佈內容。此外，Freenet應該能夠高效地分發熱門數據，I2P本身不提供此功能。另一方面，對於那些只想通過網站、留言板、文件共享程序等方式匿名交流的用戶來說，兩者有重疊。I2P也進行了一些嘗試以支持分佈式數據存儲（最近的是Tahoe-LAFS的移植) ，但還沒有準備好全面使用。

**參考**

**參考文獻**
 dead-url=no

**參閲**
 匿名P2P- 大蒜路由- 密碼學無政府主義- Tor –相似的匿名通信系統；Internet代理網絡；- OneSwarm

**外部鏈接**
  I2P官方主頁 date=20130910183251 （ I2P網內官網）-  I2P常見問題列表 date=20171204230450 -  I2P下載 date=20170422222118