脑内高手之:昨晚睡不着YY了个P2P网络

小时候我问电脑老师,为什么普通网页不用P2P技术老师讲了一堆意思是不方便什么的。
昨天看到有人传言饭否有可能又要关了,虽然我不怎么信的,但是还是想到了这东西,于是睡觉的时候空想了一下,不过感觉这方面应该有很多大牛在研究也肯定有成果了而且我只看过P2P的维基百科,很多机制其实是绕了远路的,所以这篇稚嫩的文章仅仅是我为了凑Blog更新的一篇口胡而已。

纯属意淫。当小说看也行。

这个网络是什么样子的?

一个没有中心服务器的纯PeerToPeer网络,用户之间传递的不是图片啊什么的而是可读的文本信息。用户之间有一种类似微博客的结构,也就是你广播的信息只有关注了你的人能接收,你也只会接收你关注的的人。

这个网络有什么用?

避免审查?虽然想这么说但是有上百种更加简单的方法来避免审查,而且按照我的幻想IP都是赤裸裸的保存在Sqlite的,于是这只是没有实际用途的门外汉空想而已。

具体的机制?

如何加入网络?查找别的用户?如何进行身份验证?

运行客户端,你就会变成一个孤立的节点,你会获得一个独一无二的UUID作为身份,然后通过各种方式(或许是IM,或许是Email,小纸条也行)获得你朋友的IP和客户端所占用的端口,连接成功后,你朋友那边再手动接受加入网络的请求,并且会发送给你一个随机私钥作为以后认证的凭证(每过一段时间会更新私钥),随后你朋友会将你的这些数据保存到数据库里面并向所有Follow自己的人广播这个新的UUID以及一些信息(比如说昵称啦头像的URL啦)还有你的IP。

收到你的信息以后,你朋友的Follower会重复登录操作(发送凭证和保存信息),你的客户端里面的数据库也会记录他们的IP,并且继续将你的身份广播下去,不过这次广播的速度会被限制,在一次比一次缓慢的数次广播以后将停止。

你现在如果下线再上线,并且IP变了,那么怎么确定是你呢,之前确认你的IP以后返回的私钥和对方的IP地址记录在你的数据库里面,你可以根据IP地址不断发送用其给你的随机私钥进行加密以后的日期信息(为了防止被截获……其实是我蛋疼),如果对方的节点比对正确,就能对你的身份提供佐证。

如果一个人收到了一个ID的消息,但是这个ID的IP和数据库里面的不一样,那么就会请求Follower帮忙佐证,如果Follower都能证明此人是彼人的话这条信息被冒充的可能就很小了。

如果我很久没登录大家的IP都变了呢

节点可以是服务器的,当然如果你的数据库里面没有服务器的话只好再麻烦你的朋友重新广播身份了。

如何发布信息?

向你的Follower广播,每条都包含你的IP你的用户ID等等等等,方便佐证。消息限制大小在几十K内,防止有人滥用。

可以发SPAM么?

随便,但是别人也有Block你这个节点的权利,并且在数据库里关于你的条目同时写入的也有你的“引路人”也就是在网络里面注册你的信息的人,是否连坐也是对方的自由。

为什么不能自己搜索网络?

最重要的理由,我不知道怎么弄!

其次,像上面的机制,可以生成出数个不相干的网络,如果一个网络被一锅端了还大丈夫(只是想出来的借口而已)

IP赤裸裸的写在数据库里面,这有什么匿名性啊!既然没有匿名性搞得那么复杂蛋疼哇!

因为我蛋疼。因为是昨天晚上躺在床上想着玩的东西……

其实在坐公交车的时候我又蛋疼的想了想,可以引入这样的机制,匿名发送信息,匿名发送的信息不会附带上IP之类的东西,只有信息自己的UUID和主题部分,连发布时间都不会有。

对于匿名信息,不特意查看不会出现,并且用户可以限制自己广播的信息条数乃至不广播匿名信息。

这个样子也不安全啊

所以说是蛋疼嘛!而且如果要搞什么特务活动的话也不至于沦落到用这种东西吧。多设置几个跳板代理什么的弄起来也不难嘛。

有没有可能真的做出来?

技术上应该没什么难题,速度上就不好说了,最重要的是做出来也没什么用处。

如果哪天我真的蛋疼想搞一下试试那也是几年以后的事情了。

你口齿不清概念模糊我没看懂!

本来想画几幅图的,但是太懒……

大错特错!你太笨了,明明这个……那个……还有更好的方法

好棒!赶快指出来!

你说这些奇怪的东西还不赶快学习去。

整个白天不间断的补课除了中午吃饭一段时间几乎连尿尿的时间都没有了!

脑内高手之:昨晚睡不着YY了个P2P网络》上有4条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注