与传统的Client-Server网络模式相比,P2P网络所有节点平等,数据互相传输。

P2P(英文全称:Peer-to-peernetworking;简称P2P),也称为对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。存储、带宽资源利用率高,比如最早期的BT下载工具。

特点

        去中心化
        抗单点故障网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。

        可扩展性
        在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能比较容易地满足用户的需要。理论上其可扩展性几乎可以认为是无限的。例如:在传统的通过FTP的文件下载方式中,当下载用户增加之后,下载速度会变得越来越慢,然而P2P网络正好相反,加入的用户越多,P2P网络中提供的资源就越多,下载的速度反而越快。

        健壮性
        抗单点故障,P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。

        高性价比
        性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。目前,P2P在这方面的应用多在学术研究方面,一旦技术成熟,能够在工业领域推广,则可以为许多企业节省购买大型服务器的成本。

        隐私保护
        在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。

        负载均衡
        P2P网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。

发展阶段

P2P 主要存在四种不同的网络模型,也代表着 P2P 技术的四个发展阶段

        第一阶段:集中式

最简单的路由方式就是集中式,即存在一个中心节点保存了其他所有节点的索引信息,索引信息一般包括节点 IP 地址、端口、节点资源等。集中式路由的优点就是结构简单、实现容易。但缺点也很明显,由于中心节点需要存储所有节点的路由信息,当节点规模扩展时,就很容易出现性能瓶颈;而且也存在单点故障问题。

        第二阶段:纯分布式

在 P2P 节点之间建立随机网络,就是在一个新加入节点和 P2P 网络中的某个节点间随机建立连接通道,从而形成一个随机拓扑结构。新节点加入该网络的实现方法也有很多种,最简单的就是随机选择一个已经存在的节点并建立邻居关系。像比特币的话,则是使用 DNS 的方式来查询其他节点,DNS 一般是硬编码到代码里的,这些 DNS 服务器就会提供比特币节点的 IP 地址列表,从而新节点就可以找到其他节点建立连接通道。新节点与邻居节点建立连接后,还需要进行全网广播,让整个网络知道该节点的存在。全网广播的方式就是,该节点首先向邻居节点广播,邻居节点收到广播消息后,再继续向自己的邻居节点广播,以此类推,从而广播到整个网络。这种广播方法也称为泛洪机制

纯分布式结构不存在集中式结构的单点性能瓶颈问题和单点故障问题,具有较好的可扩展性,但泛洪机制引入了新的问题,主要是可控性差的问题,包括两个较大的问题,一是容易形成泛洪循环,比如节点 A 发出的消息经过节点 B 到 节点 C,节点 C 再广播到节点 A,这就形成了一个循环;二是响应消息风暴问题,如果节点 A 想请求的资源被很多节点所拥有,那么在很短时间内,会出现大量节点同时向节点 A 发送响应消息,这就可能会让节点 A 瞬间瘫痪。

        第三阶段:混合式

就是混合了集中式和分布式结构,如下图所示:

网络中存在多个超级节点组成分布式网络,而每个超级节点则有多个普通节点与它组成局部的集中式网络。一个新的普通节点加入,则先选择一个超级节点进行通信,该超级节点再推送其他超级节点列表给新加入节点,加入节点再根据列表中的超级节点状态决定选择哪个具体的超级节点作为父节点。这种结构的泛洪广播就只是发生在超级节点之间,就可以避免大规模泛洪存在的问题。在实际应用中,混合式结构是相对灵活并且比较有效的组网架构,实现难度也相对较小,因此目前较多系统基于混合式结构进行开发实现。其实,比特币网络如今也是这种结构。

        第四阶段:结构化模型

它也是一种分布式网络结构,但与纯分布式结构不同。纯分布式网络就是一个随机网络,而结构化网络则将所有节点按照某种结构进行有序组织,比如形成一个环状网络或树状网络。而结构化网络的具体实现上,普遍都是基于 DHT(Distributed Hash Table,分布式哈希表) 算法思想。

DHT是在BitTorrent、IPFS网络中采用的P2P协议,DHT通过去中心化的方式存下了一个key-value表,key是文件的hash,value是文件所在节点的ip:port

  1. 每个节点任选一个hash值作为节点id
  2. 每个节点仅存hash值和自己id接近的key及其value
  3. 每个节点会维护自己所有peer的ip:port及其id
  4. 当检索一个key的时候,通过multi-hop search找到节点

DHT 主要想解决如何在分布式环境下快速而又准确地路由、定位数据的问题。具体的实现方案有 Chord、Pastry、CAN、Kademlia 等算法,其中 Kademlia 也是以太坊网络的实现算法,很多常用的 P2P 应用如 BitTorrent、电驴等也是使用 Kademlia。

在 P2P 网络中,可以抽象出两种空间:资源空间节点空间

资源空间就是所有节点保存的资源集合,节点空间就是所有节点的集合。对所有资源和节点分别进行编号,如把资源名称或内容用 Hash 函数变成一个数值(这也是 DHT 常用的一种方法),这样,每个资源就有对应的一个 ID,每个节点也有一个 ID,资源 ID 和节点 ID 之间建立起一种映射关系,比如,将资源 n 的所有索引信息存放到节点 n 上,那要搜索资源 n 时,只要找到节点 n 即可,从而就可以避免泛洪广播,能更快速而又准确地路由和定位数据。当然,在实际应用中,资源 ID 和节点 ID 之间是无法做到一一对应的,但因为 ID 都是数字,就存在大小关系或偏序关系等,基于这些关系就能建立两者的映射关系。这就是 DHT 的核心思想。DHT 算法在资源编号和节点编号上就是使用了分布式哈希表,使得资源空间和节点空间的编号有唯一性、均匀分布式等较好的性质,能够适合结构化分布式网络的要求。

区块链技术之P2P网络(一)相关推荐

  1. 区块链技术之P2P网络(二)

    Gossip Protocol Gossip protocol 也叫 Epidemic Protocol (流行病协议).Gossip protocol在1987年8月由施乐-帕洛阿尔托研究中心发表A ...

  2. 第10讲 | 深入区块链技术(二):P2P网络

    在上一篇文章中,我大致讲解了一下区块链技术的几个核心要素.P2P网络协议.分布式一致性算法(共识机制).加密签名算法.账户与存储模型.今天我们就来看看区块链技术的第一个核心要素:P2P网络. 如果我们 ...

  3. IBM推出跨境支付区块链网络,企业级区块链技术进一步升级

    周一,IBM公布了一个应用于跨境支付的区块链网络,这也是首个同类型的国际支付网络. "这标志着企业区块链应用实践进化到了一个新的阶段."IBM全球区块链市场开发副总裁Jesse L ...

  4. AI干货分享:基于群签名的新一代区块链技术

    来源:启迪之星上海 本文约2700字,建议阅读7分钟. 本文中郭晓峰先生将与大家分享基于VRF的一些新技术,并对DFINITY进行详细的讨论,包括它相对于PoW技术的进步,解决的问题,以及个人理解上的 ...

  5. gossip 区块链_区块链技术创新生态 Gossiptoken黑马横空出世

    当今数据革命 互联网的出现引发了巨大的数据革命.科学技术的发展为人类带来了无限的可能性,但也给数据存储带来了前所未有的压力. 集中式数据存储的成本因其较长的部署周期,变化快速,大量基础设施资本投资,高 ...

  6. gossip 区块链_区块链中的P2P

    区块链中P2P介绍 p2p是什么 为什么区块链需要P2P 比特币.以太坊.超级账本和EOS的P2P对比 P2P是什么 P2P作为区块链网络中去中心化的标识 P2P全称对等式网络(peer-to-pee ...

  7. 【转载】区块链技术原理、应用领域及挑战

    区块链技术原理.应用领域及挑战 李董, 魏进武 中国联合网络通信有限公司研究院,北京 100032 引用本文: 李董, 魏进武. 区块链技术原理.应用领域及挑战. 电信科学[J], 2016, 32( ...

  8. 区块链技术在金融行业的应用

    作为比特币背后的分布式账本技术--区块链,它的热潮似乎已经无可阻挡.在区块链的创新和应用探索中,金融是最主要的领域,现阶段主要的区块链应用探索和实践,也都是围绕金融领域展开的.在金融领域中,区块链技术 ...

  9. 小白入门区块链技术与应用展望(有参考文献)

    区块链技术的技术原理与应用展望      区块链技术是一种去中心化,去信任的分布式数据库技术方案.该数据库由参与系统的所有节点集体维护,具有去中心化,不可篡改,透明,安全等特性.随着比特币数字加密货币 ...

  10. 移动网络安全_中国移动研究院威胁情报区块链应用获区块链技术网络安全应用创新大赛全国一等奖...

    近日,由中国移动研究院打造的"基于区块链的网络威胁情报共享及评级方法和系统"在成都举办的区块链技术网络安全应用创新大赛中获得全国一等奖,并受邀在"2020成都全球创新创业 ...

最新文章

  1. java代码使用http请求解压zip包并解析xml_Javascript 是如何解析 Excel 文件的?
  2. matlab里面板有什么作用,MATLAB轻松享受GPU的强大功能
  3. Windows 8 Release Preview 安装秘技两则
  4. img加载不出来,给个默认图片。
  5. Timer组件的使用
  6. 7.Mysql数据库表引擎与字符集
  7. Oracle 备份与还原
  8. docker安装mysql主从视频教程_docker安装mysql主从
  9. 如何从外网向内网传东西_鱼缸内出现气泡还会不断缓缓升起,是什么东西,如何处理和解决?...
  10. Ionic3在ts中获取html中值的方法
  11. Spark ML机器学习
  12. UG NX 12 删除草图
  13. 网络渗透就业学习路线
  14. mysql如何更新视图,MySQL更新视图
  15. 数据标准化——scikit-learn
  16. python Flask web 框架 (十七)
  17. The superclass javax.servlet.http.HttpServlet was not found on the Java Buid Path
  18. 【数学建模论文】数学模型分析红楼梦作者
  19. 【CF1280】C. Jeremy Bearimy(贪心)
  20. C_TFIN52_67 - SAP PA认证考试真题 Financial Accounting with SAP ERP

热门文章

  1. 石头机器人拖地水量调节_拖地组件再评测:正式版 家有 石头科技T4 米家一代 水箱拖地组件...
  2. Clark变换及比例系数2/3推导过程
  3. Clark与Park变换详解
  4. 找回 Windows 11 丢失的扫雷游戏【新春快乐】
  5. 服装行业进销存软件有哪些简单好用又便宜的?
  6. 网易蜗牛读书与微信读书竞品分析
  7. 推荐几款开发板TI AM335X NXP IMX6UL
  8. MSI GT60 16F4升级、超频、解锁功耗限制的研究
  9. 浅谈能耗分项计量监测系统在某大型公建的应用
  10. 前端50个精美登录注册模板