大数跨境

【区块链】对等网络技术及常见P2P网络协议

【区块链】对等网络技术及常见P2P网络协议 数组智控产业发展科技院
2022-03-18
3
导读:开篇先特别说明:本文中讲到的P2P不是指网贷行业的P2P,是指一种区块链技术所描述的点对点对等网络技术。一、


开篇先特别说明:本文中讲到的P2P不是指网贷行业的P2P,是指一种区块链技术所描述的点对点对等网络技术。


一、目前,P2P技术广泛应用于计算机网络的各个领域,如分布式计算、文件共享、流媒体直播与点播、语音即时通讯、在线游戏支撑平台等。


1.分布式计算


P2P技术可以应用于分布式计算领域,将众多终端主机的空闲计算资源进行联合,从而服务于同一个计算量巨大的科学计算。


每次计算过程中,计算任务被划分为多个片,被分配到参与计算的P2P节点机器上。


节点机器利用闲置计算力完成计算任务,返回给一些服务器进行结果整合以达到最终结果。


世界上最著名的P2P分布式科学计算系统非“SETI@home”莫属,它召集具有空闲计算资源的用户组成一个分布式计算网络,共同完成通过分析射电望远镜传来的数据来搜寻地外文明的任务。


2.文件共享


P2P技术最直接的应用就是文件共享。


在这些基于P2P的应用中,每个用户都可以上传文件至网络中,供其他用户下载,不需要借助中心服务器存储这些文件。


用户下载完成后,也可以作为服务端,供更多用户下载。


整个网络中下载人数越多,则下载速度越快。


完全不会发生传统中心架构网络中,下载数量过多,导致资源抢占,速度过慢的问题。


目前国内最为流行的P2P文件共享方案即是比特洪流。


除此之外,还有不少各具特性的文件共享协议,如Gnutella、Chord、Pastry等。


3.流媒体直播


P2P模式应用于流媒体直播也是十分合适的,目前已有许多这方面的研究。


目前较为成熟的流媒体直播解决方案有香港科技大学的Coolstreaming、清华大学的Gridmedia等。


同时,国内也涌现了很多成功的P2P流媒体直播商业产品,如PPLive、PPStream等。


4.IP层语音通信


IP层语音通信(Voice over Internet Protocol, VoIP)是一种全新的网络电话通信业务,它和传统的公共交换电话网(Public Switched Telephone Network,PSTN)电话业务相比,有着扩展性好、部署方便、价格低廉等明显的优点。


目前,最为流行的P2P VoIP应用是Skype,它能够提供清晰的语音和免费的服务,使用起来极其方便快捷。


二、P2P网络技术经过几十年的发展,为适用各种不同类型的应用,催生了大量具有不同特性的网络协议,如比特币及以太坊分别采用的Gossip、Kademlia协议。


1.Gossip协议


Gossip协议由1987年ACM上发表的论文Epidemic Algorithms for ReplicatedDatabase Maintenance提出,主要应用于分布式数据库系统中各个slave节点的数据同步,从而保证各个节点数据的最终一致性。


Gossip算法又被称作“病毒传播算法”、“流言算法”。


这些别名可谓形象地描述了Gossip的工作原理。


Gossip来源于流行病学的研究,类似于病毒传播或者办公室八卦信息的传播过程,一个节点发生状态变化后,开始向邻近节点发送消息,节点收到消息后又会发送给相邻节点,最终所有节点都会收到消息。


Gossip协议共有Anti-Entropy(反熵)、Rumor monge(谣言传播)两种交互模式,两种模式的介绍及相应优缺点如下:


Anti-Entropy:


每个节点周期性地随机选取一定数量的相邻节点,互相同步自己的数据。该方式可以保证数据的最终一致性。


但是,由于在该模式下,节点会不断地交换数据,导致网络中消息数量巨大、网络开销巨大。


Rumor monge:


当一个节点收到消息后,该节点周期性地向相邻节点发送新收到的消息。


由于在该模式中,节点仅在收到新消息后的一段时间内转播新消息,所以相对于Anti-Entropy模式来说,网络开销小很多,但是有一定概率无法达到强一致性。


实际上,在Gossip协议中,节点之间的同步率和节点间的通信开销是一组互相矛盾的指标。


在实际应用中,需要对这一对指标进行细致的考量,即根据应用对节点同步率的具体需求和可用的网络情况作出权衡。


在Gossip协议中,每个节点都会维护数据的键(key)、值(value)、版本(version)信息。


信息交换共支持pull、push、pull/push三种通信方式。


例如,A、B两个节点同步信息,三种方式的过程分别如下:


• pull:


A点将key、version信息发送给B,B收到消息后返回本地更新比A新的信息。


• push:


A点将key、value、version信息发送给B,B收到消息后更新比本地信息新的内容。


• pull/push:


在pull的基础上多了一步,A收到返回后,会再次将本地新的消息发送给B。


2.Kademlia协议


Kademlia协议于2002年发布,是由Petar和David为非集中式P2P计算机网络设计的一种通过分布式散列表实现的P2P协议。


在Kademlia网络中,所有信息均以哈希表条目形式加以存储,这些条目被分散地存储在各个节点上,从而在全网中构成一张巨大的分布式哈希表,在不需要服务器的情况下,每个客户端负责一个小范围的路由,并存储一小部分数据,从而实现整个分布式散列表网络的寻址和存储。


Kademila协议中使用的分布式散列表,与其他的分布式散列表技术相比,具有以异或算法(XOR)为距离度量基础的特性,大大提高了路由查询速度。


Kademlia协议也对节点间的信息交换方式进行了规定。


具体来说,Kademlia网络节点之间使用UDP进行通讯。


参与通讯的所有节点形成一张虚拟网(或者叫作覆盖网),这些节点通过一组数字(或称为节点ID)来进行身份标识。


节点ID不仅可以用来做身份标识,还可以用来进行值定位(这里的值通常是文件的Hash值或者关键词)。


例如,节点ID与文件Hash值直接对应,进而表示某个节点存储着能够获取对应文件和资源的相关信息。


当节点作为客户端在网络中搜索某些值对应的节点(即搜索存储文件Hash或关键词的节点)的时候,Kademlia算法需要知道与这些值相关的键,然后分步在网络中开始搜索。


其中,每一步都会找到一些节点,这些节点的ID与键逐步接近,在找到对应键值(ID)的节点或者无法继续寻找更为接近的键值时,搜索便会停止。


这种搜索值的方法是非常高效的:


在一个包含n个节点的系统的值的搜索中,Kademlia仅访问O(log(n))个节点,降低了值的查询开销。


【声明】内容源于网络
0
0
数组智控产业发展科技院
以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
内容 986
粉丝 0
数组智控产业发展科技院 以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
总阅读450
粉丝0
内容986