P2P技术原理及应用(1)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
作 者:金海 廖小飞

    摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。现在人们已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全研究等方面。

    关键词:对等网络;分布式哈希表;覆盖层网络

Abstract:ThePeer-to-peer(P2P)network has three main structures: Distributed Hash Table (DHT) structure, tree structure, and mesh structure. P2P technology has been extended to almost all areas of network applications, including distributed scientific computing, file sharing, streaming media on-demand and live broadcast, voice communications, and online gaming support platform. Now, study areas such as node latency aggregation for overlay network, Inter-Overlay optimization, P2P supporting platform, and P2P security are receiving more attention.

    Keywords:P2P;distributedHash table; overlay network

1 P2P技术原理

    什么是对等网络(P2P)技术?P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一失效点;单一服务器面对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。

    P2P网络有3种比较流行的组织结构,被应用在不同的P2P应用中。

    (1)DHT结构

    分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输[2]。

    (2)树形结构

    P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播[3-4]。

    (3)网状结构

    网状结构如图1(c)所示,又叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。网状结构[5]为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA[6]。

2 P2P技术应用现状

    由于能够极大缓解传统架构中服务器端的压力过大、单一失效点等问题,又能充分利用终端的丰富资源,所以P2P技术被广泛应用于计算机网络的各个应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。

    (1)分布式科学计算

    我们知道,许多计算机的CPU资源并不是时刻保持峰值运转的,甚至很多时候计算机处于“空闲”状态,比如使用者暂时离开等情况。而P2P技术可以使得众多终端的CPU资源联合起来,服务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务(包括逻辑与数据等)被划分成多个片,被分配到参与科学计算的P2P节点机器上。在不影响原有计算机使用的前提下,人们利用分散的CPU资源完成计算任务,并将结果返回给一个或多个服务器,将众多结果进行整合,以得到最终结果。

    世界最著名的P2P分布式科学计算系统非“SETI@home”项目莫属。SETI@home项目(简称为S@H或SETI),由美国加利福尼亚大学伯克利分校在1999年发起,是至今最成功的分布式计算项目。SETI@home通过分析从射电望远镜传来的数据来搜寻地外文明,这在不少科幻迷甚至是很多普通大众眼里都是一个“很酷”的应用。SETI的早期版本截至2005年已经吸引了543万用户,分析了大量积压数据。正如宇宙的浩瀚一般,需要计算的数据(即存在宇宙空间的无数无线电信号)也是海量的。可以说,这几百万台终端组成了一个目前最快的高性能计算机都望尘莫及的“超级计算机”。

    (2)文件共享

    要问一百个网友目前中国最流行的文件下载方式,恐怕99个都会回答是“BT”。“BT”是BitTorrent[7]的简称,是一种依赖P2P方式将文件在大量互联网用户之间进行共享与传输的协议,对应的客户端软件有BitTorrent、BitComet和BitSpirit等。由于其实现简单、使用方便,在中国用户之间被广泛使用。BitTorrent中的节点在共享一个文件时,首先将文件分片并将文件和分片信息保存在一个流(Torrent)类型文件中,这种节点被形象地称作“种子”节点。其他用户在下载该文件时根据Torrent文件的信息,将文件的部分分片下载下来,然后在其他下载该文件的节点之间共享自己已经下载的分片,互通有无,从而实现文件的快速分发。由于每个节点在下载文件的同时也在为其他用户上传该文件的分片,所以整体来看,不会随着用户数的增加而降低下载速度,反而下载的人越多,速度越快。

    BitTorrent是一种无结构的网络协议。除了BitTorrent之外,还有不少著名的无结构化的P2P文件共享协议,典型的有Gnutella[8]和KaZaA[6]。

    Gnutella协议是一种最典型的完全分布式、无等级结构的P2P网络模型。网络中的节点随机连接若干个其他节点,称之为“邻居”。这种结构能够很好地适应P2P网络中节点频繁加入与离开的动态特性,因为任意一个节点都可以被新加入的节点作为“邻居”而连接,任意一个“邻居”也可以随意地离开网络。同时,这种加入节点和离开节点的选择是节点间的独立行为,随机分布于网络之中。所以说Gnutella的网络具有健壮性、实时性、可靠性、负载平衡等优势。


WIFI Direct/WIFI P2P 技术交流有兴趣请加:  音视频技术交流群:308601278  无线投屏技术交流群:582349005    本文可在找到相关详细内容 必捷网络|因必捷而简单  商务合作请至邮件marketing@bijienetworks.com    上节说过了网卡的选型,之所以网卡的选型如此重要,主要是因为Miracast网卡相比较于普通的网卡多了个P2P功能,底层可靠了,才能很好的进行接下来的上层开发... 阅读详情

相关推荐

我所认识的P2P

什么是P2P?      此处要跟大家介绍的P2P不是常听到的金融P2P,它是Peer-to-Peer的简写,即对等网络技术,但我更愿意称之为媒体数据分发技术,通过p2p可以传输音视频数据、文件、图片等对象 。p2p的最大特点就是去中心化,每个p2p节点既是客户端同时又扮演服务器的角色,资源的所有权和控制权被分散到p2p网络的每一个节点上。 P2P与传统CDN的区别?     CDN即内容分...

云水间 761

stm32控制nfc(PN532)模块进行P2P(点对点)通信程序

stm32控制nfc(PN532)模块进行P2P(点对点)通信程序,移植了nfclib库,实现点对点通信

STM32实现P2P通信可视化

本文基于STM32与CC2530、SIM800C构建硬件P2P网络,通过Zigbee组网和UCOSIII系统实现节点间通信。设计信任、激励与加密算法,保障网络安全性与稳定性,并利用LCD屏幕实时显示通信过程,实现P2P网络的可视化。研究为低成本、硬件级P2P网络提供了可行方案。

qsc90123456的博客 323

C#实现P2P即时通讯技术探究

即时通讯技术的发展已经改变了人们的交流方式,P2P(Peer-to-Peer)技术在其中扮演着关键角色。在本章中,我们将了解P2P技术的起源、发展历程,以及它在即时通讯应用中的场景和优势。

weixin_42527589的博客 1298

Java P2P应用程序设计与实现

P2P技术极大地推动了网络应用的去中心化,提高了网络的扩展性和可靠性。Java作为一种平台无关的编程语言,非常适合开发跨平台的P2P应用。我们将介绍Java P2P技术的基本概念和应用背景。Java P2P技术以其独特的去中心化和网络自治特点,在处理大规模分布式系统时显示出其巨大优势。在本章末尾,我们将总结Java P2P技术的关键点,并讨论其在现代IT行业中的应用前景。Java虚拟机(JVM)是跨平台程序设计的核心,它在不同操作系统中提供了统一的运行环境。

weixin_31139479的博客 832

基于Java的P2P即时通讯系统设计与实现

本文还有配套的精品资源,点击获取 简介:本文介绍了使用Java技术实现的P2P即时聊天程序,该系统支持单人和多人聊天功能,无需中央服务器即可进行点对点通信。文章探讨了系统的设计原理和实现细节,包括P2P网络架构、Java编程语言、TCP/IP协议、多线程技术、用户身份验证与安全、聊天室管理、事件驱动编程、图形用户界面、文件传输以及异常处理与错误恢复等关键技术点。 ...

weixin_30923011的博客 1892

区块链基础:基于websocket的P2P实现

1、创建一个maven工程 pom.xml文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http...

程裕强的专栏 6720

转载:P2P技术原理应用(1)

转帖allen303allen的空间 作 者:金海 廖小飞 摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术已 经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。现在人们已经开始将重心转入到覆盖 层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究...

weixin_30480075的博客 195

P2P技术原理应用

P2P技术原理应用(1)2008-04-07 23:52作 者:金海 廖小飞    摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。现在人们已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网

yaoliangzhong的专栏 3376

P2P对等网络技术原理整合

P2P(Peer to Peer)对等网络 P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。 优点是:数据的一致性容易控制,系统也容易管理。 缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一失效点;单一服务器

EricFantastic 1万+

P2P应用

文章目录前言一、P2P原理二、文件分发1.客户机/服务器 vs P2P2. BitTorrent协议三、索引技术1.集中式索引2.洪泛式查询(Query flooding)3.层次式覆盖网络总结 前言 提示:以下是本篇文章正文内容 一、P2P原理 P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式 P2P也叫「对等网络」(英语:peer-to-peer, 简称P2P),是一种在对等者(Peer)之间分配任务和工作负载..

风间琉璃的博客 4122

PCIe之P2P应用

也就是说,该访问请求绕过了IOMMU的隔离,进行了P2P(peer to peer)传输。GPUDirect RDMA 通过绕过主机内存和 CPU,直接在 GPU 和 RDMA 网络设备之间进行数据传输,显著降低传输延迟,加快数据交换速度,并可以减轻 CPU 负载,释放 CPU 的计算能力。GPU Direct是NVIDIA开发的一项技术,利用PCIE交换实现GPU与其他设备(比如网络接口卡(NIC)和存储设备)之间的直接通信和数据传输,而不涉及CPU,从而减少不必要的内存和CPU开销,从而显著提升性能。

Lllongroad的博客 2546

什么是P2P和它的应用

无论是 HTTP 协议,还是 FTP 协议,都有一个比较大的缺点,就是难以解决单一服务器的带宽压力, 因为它们使用的都是传统的客户端--服务器的方式。 一种创新的、被称为 P2P 的协议流行起来。P2P就是peer-to-peer的缩写。p2p的资源并不集中存储在某些设备上,而是分散地存储在许多设备上。这些设备我们称为 peer。 HTTP下载和FTP下载的区别 使用Web浏览器时,这两个协议之间的差异几乎不会对使用的方便性及下载时间产生影响。不过,它们却拥有不同的结构。 HTTP下载 H..

甜筒八部 的专栏 3570

P2P 应用

P2P 工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。

m0_64621282的博客 1760

P2P技术原理应用(2)

在Gnutella网络中存在以下问题:     冗余消息多,对带宽的消耗存在一定的浪费。Gnutella网络协议采用泛洪式(Flooding)消息传播机制,这种消息传播机制产生了呈指数级增长的冗余消息。据统计,P2P软件白天占Internet上运行带宽的40%~70%,晚上有时能达到80%。     搜索效率低,可扩展性差。Gnutella网络的搜索协议将所有资源与节点统一对待,没有考虑节点的

一朶婲 2485

实现P2P聊天应用的打洞技术

本文还有配套的精品资源,点击获取 简介:P2P技术通过直接的设备间通信,绕开中心服务器,实现高效的数据交换。在NAT环境下,P2P通信受阻,而"打洞"技术是解决这一问题的关键。通过UDP和TCP打洞,设备可建立直接连接。UDP打洞适合实时通信,而TCP打洞适用于需要可靠传输的场景。打洞技术能有效降低聊天应用服务器负载,但并非总是成功。此时,可利用STUN、TURN或ICE等...

weixin_36288992的博客 1919
上一篇: java中重载与重写的区别
下一篇: P2P技术原理及应用(2)
JoeBaby_
博客等级 码龄15年 79粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值