I2P性能统计
我测试过i2p……
它确实可以运行,但性能、匿名性和可靠性都存在疑问…
TL;DR
简而言之:
- 测试了三种部署方式,以衡量它们作为代理的工作方式(非常相似)
- 测试了三种隐藏服务的部署方式(i2p+ 表现最佳)
- 洪水参与不会影响 i2p 网络性能,但会增加资源消耗。
I2P 很慢。 一次 ping 需要 5-10 秒。 即使你有良好的连接,也不能保证它不会超时。
简要说明是什么
I2P 是一种建立在 IP 之上的网络协议,它同时使用 TCP 和 UDP,以及 IPv6 和 IPv4。
主要思想类似于 TOR —— 通过在飞行中对网络数据包进行加密,使得:
- 传输数据包的节点不知道里面的内容
- 接收数据包的节点不知道原始发送者。
I2P 没有标准的方式来查看“大互联网”(明网),虽然有出站代理,但说实话,TOR 在这方面要好得多。 I2P 所拥有的是“隐藏服务”。理论上,这些服务不知道是谁在调用它们,而用户也不知道每个服务位于哪个节点。
这些服务可以是任何标准的互联网程序 —— IRC 服务器、托管有各种内容的 Web 服务器、REST API、XMPP 或邮件服务器。
那里的服务并不多。大约 200 个网站?还是 300 个?
目的、方式、道德和法律方面
我可以看到两种动机来托管隐藏服务:
- 确保自己的匿名性和隐私
- 逃避“老大哥”的直接监视 —— 并非所有人都生活在民主国家,一些专制政府会压迫和镇压他们能触及的任何人。但在这个“逃避”的桶里,我会把任何非法活动也放进去。这只是动机。
道德和法律方面都很复杂。 我的观点(我不是法律专家,所以请不要将其视为建议):
人们有[道德]上的隐私权。 他们有[道德]上的权利说“去你的,这不关你的事”。 他们有[道德]上的权利在某些程序或手机发布他们的位置、卫星拍摄他们的后院并将其发布在谷歌街景上,而政府却对此活动和不满视而不见时,感到不高兴。
同时,政府有[法律]上的权利侵犯人们的隐私,但有一些条件,有时如此。 例如,在澳大利亚,警察可以要求你解锁手机,这有巨大的道德影响。 请参阅 Monica Smith 的历史,她曾被要求以某种方式解锁她的手机, 以便警方可以获取支持自由抗议者的联系人。 (那是墨尔本疫情期间最严格的封锁时期)。 警方撤回了要求,但 Monica 然后因不配合而面临入狱的风险。
匿名性是人们生活中另一个重要的方面。 我的观点是,监视和去匿名化经常被用于 Doxxing(公开个人信息)、侵犯隐私和欺凌。 更好的做法是,当任何人被允许使用这些手段时,应有明确的规则和程序。
性能
好的,我们开始吧。
我测量了完成 ping 所需的时间。 (HEAD {site}.i2p)
以下是响应延迟分布。
这个分布图显示,预期的调用持续时间大约为 5 秒。
我将超时设置为 90 秒,正如你所看到的,有些请求根本没有完成。 30 秒和 60 秒可能是服务端或路由器端的超时。
核心站点是已经建立的站点 http://idk.i2p/, http://zzz.i2p/, http://identiguy.i2p/, http://333.i2p/, http://i2pforum.i2p 和类似的,总共有 25 个。 额外组 —— 其他 100 多个站点的集合。
我假设核心站点的拥有者知道他们在做什么,确实他们的站点性能优于额外组。 但差异并不大 —— 仅仅 1 秒(中位数调用持续时间约为 5 秒 vs 6 秒)。而且!核心站点仍然偶尔会超时,正如你在第一张图(请求持续时间分布)中看到的那样。
下面是代理类型可用性图。
从核心组站点测量不同代理的 ping 持续时间。 I2P+ 在一个部署中,I2Pd 在两个不同部署中,结果都非常相似。
现在是服务托管的适用性。
这里较粗的红色线是 I2P+。
匿名性
在线上有 4000-10000 个路由器,它们的公共 IP 地址很容易看到。 因此,我们不能在这里谈论巨大的匿名性。
资源消耗
在我的实验中,I2Pd 消耗了约 130MB 内存 + 约 7% 的 CPU。
I2P+ 消耗了约 350+MB 内存 + 约 70%+ 的 CPU。
在我的 I2P+ 配置中,我稍微增加了内存允许量,希望它能表现得更好。 所以,我们就是这样了。
在我的实验中,洪水参与并没有影响 i2p 网络性能,但增加了约 20% 的 CPU 负载。
因此,如果你计划托管 I2Pd —— 我认为 1vCPU + 512MB 就够了。对于 I2P+ 至少需要 2vCPU + 1GB。
感觉
它就像一只 Fido、BBS 和旧时光。 当网络如此之小,以至于每个人通过昵称就知道彼此。
它很慢。而且空荡荡的。
但这种感觉是如此 模拟。