I2P性能统计
我测试过i2p……
它确实可以运行,但性能、匿名性和可靠性都非常令人质疑…
TL;DR
简而言之:
- 测试了三种部署方式,以衡量它们作为代理的工作方式(非常相似)
- 测试了三种隐藏服务的部署方式(i2p+ 表现最好)
- 参与洪水(flood)不会影响 i2p 网络性能,但会增加资源消耗。
I2P 很慢。 一次 ping 需要 5-10 秒。 即使你有良好的连接,也不能保证不会超时。
简要说明是什么
I2P 是一种基于 IP 的网络协议,它同时使用 TCP 和 UDP,以及 IPv6 和 IPv4。
主要思想类似于 TOR,通过在传输过程中对数据包进行加密,使得:
- 传输数据包的节点不知道数据包内部的内容
- 接收数据包的节点不知道原始发送者。
I2P 没有标准的方式来访问“大互联网”(clearnet),虽然有 outproxies,但说实话,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+ 消耗了约 350MB 内存 + 70% 以上的 CPU。
在我的 I2P+ 配置中,我稍微增加了内存分配,希望它能表现得更好。 所以,我们就是这样了。
在我的实验中,参与洪水(flood)并未影响 i2p 网络性能,但增加了约 20% 的 CPU 负载。
因此,如果你计划托管 I2Pd,我认为 1vCPU + 512MB 就足够了。而 I2P+ 至少需要 2vCPU + 1GB。
感觉
这感觉就像一只 Fido、BBS 和旧日时光。 当网络如此之小,以至于几乎每个人通过昵称就能互相认识。
它很慢,而且空荡荡的。
但这种感觉是如此模拟。