电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

P2P (Peer-to-peer technology) 介绍


发布日期:2019/11/18
 

什么是PP?很难有一个确切的解释也许是由于有着不同的观点或理解

BW(JXTA book的作者)给出这样一个定义PP使得任何网络设备可以为其他网络设备提供服务(Peertopeer technology enable any networkaware device to provide services to another networkaware device)

我个人的理解是PP网络是一个网络中的所有节点(设备)的角色行为责任和义务都是平等的(对等的)

看一下我们现今的网络结构

大多数情况下我们使用一种称之为客户机/服务器(Client/Server简称C/S)的网络模式比如流行的WWW各种网络游戏等它们的共同特点是

都需要有一个中央服务器来处理绝大部分的运算工作

客户端和服务段处在完全不同的角色中客户端更被动通常是发送一个请求而服务端处在一个支配的地位获取这个请求进行计算然后返回一个结果来相应这个请求

即便如Email这种看上去比较不同的网络应用也对Client和Server有着明显得分工

这类网络应用模型有着一个明显的缺点就是随着服务的客户数目的增多服务端所需要占用的资源也随之增加显而易见最终制约了client的数目的增长

(这种集中式的模型似乎违背了Internet的初衷the ARPANET)

并且我们需要许多隐藏在Internet深处的服务的支持才能获取我们需要的服务如DNS如路由这也就是为什么即便每台机器都开设一个web server也无法被全部被访问到(由于IP地址的限制不可能每台机器都有一个静态的IP或是由于内部网络的原因也许即便你有一个静态不变的内部地址也可能没有一个路由到达你的机器或是访问被防火墙过滤

并且由于现在的Internet过分的依赖于DNS和网关只要其中有一个服务出了问题相应的其他任何服务就都无法获得

Edge of Internet

另一个有趣的现象是由于刚才所说的DNS和路由的限制可能有数以亿计的连在Internet上的计算机无法被其他机器访问这些计算机组成了所谓的Edge of Internet(它们属于Internet的一部分却不被整个Internet认可就像处在社会边缘一般充满着矛盾和孤寂)我们来做个计算

假设同时只有千万台MHz的计算机连接在网络上(事实上远不只这些)每台可以提供兆的空余空间bps的空余带宽和%的空余CPU时间因此这些机器总共提供了PB(^bytes)的存储空间亿bps的带宽(大约是GBps)和万MHz的计算能力!这是多么可观的数字如果都能加以利用或是只是开发其中的一部分……

Google的麻烦

我们通常使用的Google就是一个着名的集中式网络服务的例子Google中检索的信息依赖着一个巨大的数据库(大于 billion即便如此Google所保存的数据也只占整个Internet的很小一部分几个数量级的差别)这个数据库必须每天更新以保证信息的即时性即便如此Google便利一遍整个Internet也需要十几天的时间如何能更好的提供搜索服务是很多现今的搜索引擎始终没有办法解决的问题除此之外Google还有很多麻烦

Google的服务是建立在一个庞大数目的Linux集群上的(超过台)维护这么庞大的一群主机就够受的了

一旦Google发生了故障所有的服务就都玩完了不要说Google发生故障如果DNS路由等除了或者或那的问题……

由于Internet中数据的数量庞大且种类多样Google不仅无法提供一个精确的索引也无法提供一个完整的索引

Google只能看到静态的数据它无法访问到处在数据库里的数据

PP的承诺(宣言)

提供一个真正的完全平等自由的互联网

使用很少的资源消耗而提供高可靠性的服务

这似乎非常抽象事实上连我自己也不太清楚我在说些什么举个例子先

音乐爱好者kert想在Internet上找一首歌Sex PistolMy way通常他使用Google来搜索相关的关键字Sex Pistol +My way由于只是简单的依赖关键字匹配的方式Google通常会返回几百或是几千条匹配的记录当然包括不相关的那些(绝大多数尤其是当你的关键字中出现诸如Sex之类的词汇)作为一个音乐爱好者kert通常会耐着性子在这几千条记录中仔细寻找(头晕)有时找到一个可能性极大的链接却因为链接失效而伤心想象一下Google已经是世界上最好的搜索引擎之一了

如果换成一个PP网络应用又会如何?PP网络会将kert的搜索请求发送给每一个连接在网络上的节点(peer)每个节点会在自己所管理的资源中查找是否含有匹配的对象然后对kert的请求做出回答和那种集中式的搜索服务相比将相应交给每一个节点的好处是显而易见的

由于响应由节点即时完成而不是像集中式的服务那样将在可能已经过期的数据中寻求答案这种方式更准确不会出现让人沮丧的过期连接另外由于是由节点自由处理请求而非传统的在静态网页中寻找答案精确程度更高

请求分布到了Internet的每个角落信息更完整当然得到结果的可能性就越大

请求分布到了Internet的每个角落不需要大量的主机群不会有网络阻塞

kert很肯定这个世界上有与他爱好相同的fans因此他信心十足

刚才我们提到一个请求会发送至PP网络中的每个节点这似乎很不可思议但是事实上(至少在理论上)这是PP网络的特性之一因此在PP网络中你所享受的服务的是一个由成千上万台计算机组成的cluster提供的多么神奇而令人兴奋!

即便是最基本的路由服务也是有所有节点共同提供的因此不在会有因为某个结点的故障或是人为原因而造成的无法链接的现象了你面对的是一个友善自由平等的群体而非强权(路由)和专制(DNS)

上一篇:jOOQ 2.2.1发布 小型ORM框架

下一篇:把P2P进行到底:讲述Jxta的故事(2)