P2P对等网络

网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源获取者(Client)。

P2P打破了传统的Client/Server (C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。

优势

  • 去中心化:信息直接在节点直接传递,避免了可能存在的瓶颈。
  • 可扩展性:扩展方便,并且扩展不会对网络造成拥堵
  • 健壮性:天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。
  • 高性价比:采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。
  • 隐私保护:经过的节点少,隐私更有保护
  • 负载均衡:由于没有中心节点,资源较为均衡的分布在网络中,所以很好的实现了负载均衡。

应用

P2P通讯

拓扑结构

中心化拓扑(Centralized Topology)

类似C/S结构

全分布式非结构化拓扑(Decentralized Unstructured Topology)

全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络)

半分布式拓扑(Partially Decentralized Topology)

吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的结点作为超级结点(英文表达为SuperNodes或者Hubs),在各个超级结点上存储了系统中其他部分结点的信息,发现算法仅在超级结点之间转发,超级结点再将查询请求转发给适当的叶子结点。 但对超级点依赖性大,易于受到攻击,容错性也受到影响。

主要技术难点

peer是如何区分的?

每个peer都有一个唯一的标识符,是随机生成的。

uuid-59616261646162614E50472050325033816021CBBE15434AAF3B827A0B80417203

如何找到对等点的?

  1. 在节点启动的时候,可以指定一个正活跃的节点的IP地址;节点本身也有初始节点,这些是长期稳定运行的节点,称为种子节点,可以基于这些种子节点来发现网络中的其他节点。
  2. 节点可以向已知的其他节点发送获取地址的请求,要求它们返回自己知道的对等节点的IP地址列表,这样就能连接到需要连接的对等节点
  3. 节点在建立连接后,也会想其他相邻节点发送包含自身IP地址的信息,相邻节点会依次传递下去

如何保证可靠的网络通路?

比特币节点采用TCP协议通信,使用8333端口与节点j建立连接,建立连接时也会有认证“握手”的通信过程,用来确定协议版本,软件版本,节点IP,区块高度等。

连接建立后,就跟节点同步区块链数据,节点会相互发出getblocks的消息,消息里会包含本地区块链顶端的哈希值。

节点在收到消息后,判断该哈希值并不是自己区块链中顶端的区块,则说明其自身的本地区块链比其他节点的区块链更长,并告诉其他节点需要补充区块,其他节点发送getdata消息来请求区块,验证后更新到本地区块链中。

如何保证交易的私密性和安全性?

results matching ""

    No results matching ""