P2P技术概要

P2P(Peer to Peer)也就是 对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构[1]  ,是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、伙伴、对端”的意义。因此,从字面上,P2P可以理解为对等计算或对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”,学术界则统一称为对等网络(Peer-to-peer networking)或对等计算(Peer-to-peer computing),其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)[2]  。

在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。

对等网络是一种网络结构的思想。它与目前网络中占据主导地位的客户端/服务器(Client/Server)结构(也就是WWW所采用的结构方式)的一个本质区别是,整个网络结构中不存在中心节点(或中心服务器)。在P2P结构中,每一个节点(peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能。从计算模式上来说,P2P打破了传统的Client/Server (C/S)模式,在网络中的每个节点的地位都是对等的。每个节点既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。

P2P有别于传统的计算机网络结构,以常见的下载服务为例:
1.对于传统的服务器下载,在同一时刻下载的人数越多,下载速度越慢,因为服务器的带宽是固定的,人数越多,每个人所分得的带宽就越小

2.而P2P网络,在同一时刻下载的人越多,下载速度越快,因为在P2P网络中每一个下载的用户充起到了服务器的作用

P2P技术的常见应用:

1.BitTorrent介绍

BitTorrent(比特洪流)就是我们常说的BT,它使用的就是P2P通信方式。

它将文件划分为256KB的chunk(块)

在节点加入torrent(索引):没有chunk,但是会逐渐积累

向tracker注册以获得节点清单,与某些节点建立连接

在下载的同时,节点需要向其它节点上传chunk

其中节点可能加入或离开,不会一直在线。

2.P2P搜索信息

P2P的索引:信息到节点位置(IP地址+端口号)的映射

文件共享(电驴):

即时消息(QQ):

 

3.集中式索引

Napster最早采用这种设计:一切都要经过中央,一切决定都需中央制定。

4.洪泛式查询

洪范式查询=Query flooding

采用完全分布式架构,每个节点对它共享的文件进行索引,且只对它共享的文件进行索引。

查询消息通过已有的TCP连接发送,收到消息的节点若无其所查询的内容,则转发查询消息,

如果查询命中则利用反向路径发回给查询节点。

5.层次式覆盖网络

它是介于集中式索引和洪范式查询之间的一种方法。

每个节点或者是一个超级节点,或者被分配到一个超级节点。

超级节点负责跟踪子节点的内容。

这种结构属于小区域集中管理,大区域分布管理。

总结:
P2P网络说起来的简单,但是大家要考虑P2P网络中计算机是如何通讯的,可能这一台计算机有防火墙,或者说这一台计算机在某一个内网中,如何访问这台计算机才是是P2P技术实现的关键

在后面会详细介绍P2P技术

原文地址:https://www.cnblogs.com/mlgjb/p/8243612.html

时间: 2024-10-07 16:19:09

P2P技术概要的相关文章

直播P2P技术一窥

1. 直播协议 直播协议主要有RTMP,HLS,MPEG-DASH,RTSP,HTTP-FLV等.每种协议都各有长短,比如RTMP延迟低,但诞生于Adobe,依赖于Flash Player,在如今FLash Player面临被淘汰的时代,RTMP前途未卜:HLS是苹果基于HTTP开发并主导的流媒体协议,它充分利用了HTTP的通用性,并能根据带宽自适应码率,但单个TS文件duration过大(一般为10s),延迟较高:MPEG-DASH类似于HLS,也是基于HTTP的,不同点是DASH单个片段du

P2P技术简介(包括BT软件的分析)(转)

这是一篇别人发表的论文,里面很全面的解释了P2P技术的实现,以及BT网络中应用P2P技术所设计的原理,并列举BT软件的一些专业名词的定义.由于论文发表的比较早,2005年时还没有DHT技术. http://files.cnblogs.com/files/EasonJim/P2P%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B.pdf 原文出处:上海交通大学-周中夏 2005年

P2P技术简介

NAT( Network Address Translation)穿越(俗称打洞)技术 前言: p2p已经存在于我们生活的方方面面:我们通过下载在工具(比如迅雷,bitorent,各种网盘)下载,观看live视频(ppstream,pplive)都在使用p2p,有些im也是通过p2p来传递消息的:我们知道使用p2p技术的下载工具下载更快,使用p2p的live视频更流畅,而且同时使用的人越多效果越好,因为他是可能从我们“邻居”那里获取数据. 那么p2p到底是个什么样的东西呢.暂且我么可以这样理解为

TCP穿洞,p2p技术的一些原理

上回提到udp的穿洞,这回提一下tcp的穿洞,资料来源于网络,供大家学习参考. 建立穿越NAT设备的p2p的TCP连接只比UDP复杂一点点,TCP协议的"打洞"从协议层来看是与UDP的"打洞"过程非常相似的.尽管如此,基于TCP协议的打洞至今为止还没有被很好的理解,这也造成了对其提供支持的NAT设备不是很多.在NAT设备支持的前提下,基于TCP的"打洞"技术实际上与基于UDP的"打洞"技术一样快捷.可靠.实际上,只要NAT设备

什么是P2P技术

什么是P2P peer-to-peer简称P2P,即点对点技术.又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上. 简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互.P2P使得网络上的沟通变得容易.更直接共享和交互,真正地消除中间商.P2P就是人可以直接连接到其他用户的计算机.交换文件,而不是像过去那样连接到服务器去浏览与下载. P2P的三种模式 纯P2P 节点同时作为客户端和服务器端.没有中心服务器,没有中心路由器.

【原创】IP摄像头技术纵览(七)---P2P技术—UDP打洞实现内网NAT穿透

[原创]IP摄像头技术纵览(七)-P2P技术-UDP打洞实现内网NAT穿透 本文属于<IP摄像头技术纵览>系列文章之一: Author: chad Mail: [email protected] 本文可以自由转载,但转载请务必注明出处以及本声明信息. NAT技术的实际需求在10几年前就已经出现,为了解决这个问题,10几年来全世界的牛人早已经研究好了完整的解决方案,网上有大量优秀的解决方案文章,笔者自知无法超越,所以秉承拿来主义,将优秀文章根据个人实验及理解整理汇录于此,用于解释IP摄像头整个技

HTML5 Video P2P技术研究(转)

说明:之前在Flash时代,可以基于其实现P2P的技术,也就是现在主流的视频网站用的视频技术,不过要实现P2P技术,在Flash时代有点难,且要服务器支持等等:但是现在基于HTML5技术的P2P技术使用WebRTC实现,API相对简单,且集成也非常方便,现在主流网站正在逐步转向HTML5去实现P2P.注意,WebRTC不只可以实现P2P,同时也支持实时浏览器点对点的通讯,比如聊天.视频聊天等等. 一.背景 节约带宽,减少缓冲时间,提升服务质量,处理峰值流量, 视频观看的人越多,播放越流畅. 二.

【产品场景】弹性裸金属服务器服务于市场的技术概要分析

摘要: 弹性裸金属服务器服务于市场的技术概要分析 混合云和第三方虚拟化软件部署 伴随着公有云的高速发展,混合云打通客户线下专有云和线上公有云资源的需求日趋强烈.Open stack和VMware等IaaS stack在公有云部署,同时管理客户线上和线下IaaS资源.可以看到,VMware cloud on AWS就属于此种混合云业务应用场景 而Open stack和VMware cloud等IaaS stack在公有云部署,最为关键就是要求公有云暴露CPU虚拟化能力,否则在普通虚拟机中部署嵌套虚

团队项目-技术概要

团队项目-技术概要 一.简述 1.1 概述 根据网站的需求,我们团队在经过网上调研比较之后,决定使用bootstrap作为前端开发框架,Django作为后端服务器开发框架.选用MySQL作为数据库.在开发阶段使用sqlite作为临时的数据库. 1.2 前端技术 我们团队选择了bootstrap v3.3.7作为前端框架.一方面由于其文档教程较为丰富,另一方面在于其社区活跃,使用的人多.遇到困难能够更轻松地解决. 1.3 后端技术 我们团队比较了基于Java的spring,基于python的web