I2P

I2P（Invisible Internet Project即“隐形互联网计划”），是一项混合授权的匿名网络项目。
I2P网络是由I2P路由器以大蒜路由方式组成的覆盖网络，建立于其上的应用程序可以安全匿名的相互通讯。它可以同时使用UDP及TCP协议，支援UPnP映射。其应用包括匿名上网、聊天、搭建暗网服务和文件分享。
系统简介.
I2P是可伸缩性强，具有自我组织与恢复能力的基于消息的匿名网络。其上运行有多种不同的匿名安全程序，各程序可以自行决定匿名性、延迟、流量平衡而不用考虑混淆式路由网络的具体实现。它们的数据活动可以与现有的I2P用户的匿名数据相混合。目前的用途包括全部典型的Internet应用 - 匿名网页浏览（Outproxy），匿名网站（Eepsite），匿名博客与内容聚合（Syndie ），匿名聊天（通过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.
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地址和活动保持私密。
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 在很多方面都很相似，但大部分术语是不同的。
自由网(Freenet).
Freenet是一个完全分布式的P2P匿名发布网络，提供安全的数据存储方式，以及一些试图解决洪泛负载的方法。虽然Freenet的设计目的是分布式的数据存储，但是人们也在Freenet之上建立了一些应用程序，使得更通用的匿名通信成为可能，如静态网站和留言板等。
相比于I2P，Freenet提供了一些实质性的好处——它是一个分布式数据存储，而I2P并不是，Freenet允许用户检索即便内容的发布者已经离线了的已发布内容。此外，Freenet应该能够高效地分发热门数据，I2P本身不提供此功能。另一方面，对于那些只想通过网站、留言板、文件共享程序等方式匿名交流的用户来说，两者有重叠。I2P也进行了一些尝试以支持分布式数据存储（最近的是Tahoe-LAFS的移植) ，但还没有准备好全面使用。