精华内容
下载资源
问答
  • Server 技术一种设计模式思想,P2P属于网络应用层技术,与 Web和 FTP 等应用是并列,只是 P2P 应用在设计实现上更要复杂得多。P2P对等网络模型中,各个结点是对等,具有相同责任和义务,彼此互为客户端/...


    1. P2P网络技术

    P2P技术起源于局域网文件共享,P2P(即对等网络模型)本身是基于TCP/UDP  Client/Server 技术的一种设计模式思想,P2P也属于网络应用层技术,与 Web FTP 等应用是并列的,只是 P2P 应用在设计实现上更要复杂得多。P2P对等网络模型,各个点是对等的,具有相同的责任和义务,彼此互为客户端/服务器,协同完成任务。每个结点既可充当服务器,为其他结点提供服务,同时也可作为客户端享用其他结点提供的服务对等点之间通过直接互连共享信息资源、处理器资源、存储资源甚至高速缓存资源等,无需依赖集中式服务器资源就可以完成。

    在下面图(1-1)中,我们仅以PC机为例,来说明P2P对等网络模型的含义。

    图(1-1P2P模式


    2. 基于P2P模式的UDP/TCP实现原理图

       下面的图(2-1)和图(2-2)P2P(peer-to-peer)对等网络模型的TCP/UDP协议的具体套接口通信实现原理图,我们假设有对等的两个通信方:A方和B方,并且黑线部分流程图为作为服务器时的运行流程,红线部分流程图为作为客户机时的运行流程。


    图(2-1P2P模式的TCP套接口通信原理流程图


    图(2-2P2P模式的UDP套接口通信原理流程图








    
    展开全文
  • P2P的发展可以被划分为三代:第一代是以Napster为代表、还用中央服务器管理的P2P,这一代的P2P生命力十分脆弱——只要关闭服务器,网络就死了;第二代分布式P2P没有中央服务器,但是速度太慢;而第三代为混合型,...
    P2P工作原理与工作方式

    P2P的发展可以被划分为三代:第一代是以Napster为代表的、还用中央服务器管理的P2P,这一代的P2P生命力十分脆弱——只要关闭服务器,网络就死了;第二代分布式P2P没有中央服务器,但是速度太慢;而第三代为混合型,采用分布服务器。目前我国流行的BT?变态下载?和电驴就是属于这类。

    说到P2P,就不能不提BT,这个被人戏称为“变态”的词几乎在大多数人感觉中与P2P成了对等的一组概念,而它也将P2P技术发展到了近乎完美的地步。实际上BitTorrent(中文全称比特流,简称BT)原先是指是一个多点下载的P2P软件。它不象FTP那样只有一个发送源,BT有多个发送点,当你在下载时,同时也在上传,使大家都处在同步传送的状态。应该说,BT是当今P2P最为成功的一个应用。

      如果解释一下的话,BT首先在上传者端把一个文件分成了多个部分,客户端甲在服务器随机下载了第N部分,客户端乙在服务器随机下载了第M部分。这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的第M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的第N部分。

      有一句话可以作为BT最为形象的解释就是:“我为人人,人人为我”。现在看来,没有贡献怎么会有获取?这大概最可以概括BT下载传输的精髓。工具软件BTJoy,将这一技术以软件的形式完美起来,这个诞生仅有一年的软件已经迅速热遍了整个网络——对于BT下载的爱好者来说,120G的硬盘都可以被迅速塞满!

    ? P2P给互联网的分布、共享精神带来了无限的遐想,有观点认为至少有100种应用能被开发出来,但从目前的应用来看,P2P的威力还主要体现在大范围的共享、搜索的优势上。在这方面主要引发了,或者是说更好的解决网络上四大类型的应用:对等计算、协同工作、搜索引擎、文件交换。

    ? 1、对等计算

    ? 通过众多计算机来完成超级计算机的功能,一直是科学家梦寐以求的事情。采用P2P技术的对等计算,正是把网络中的众多计算机暂时不用的计算能力连结起来,使用积累的能力执行超级计算机的任务。任何需要大量数据处理的行业都可从对等计算中获利,如天气预报、动画制作、基因组的研究等,有了对等计算之后,就不再需要昂贵的超级计算机了。在硅谷现在有许多公司正在投入对等计算的开发,如Popular Power,Centrata,United Devices,Entropia等,并获得了巨大的风险资金。Intel也利用对等计算技术来设计其CPU,并为其节省极大的费用,同时对等计算的发展是以PC机资源的有效利用为根本出发点的,自然也极力受到Intel的极力推崇。从本质而言,对等计算就是网络上CPU资源的共享。

    ? 2、协同工作

    ? 公司机构的日益分散,给员工和客户提供轻松、方便的消息和协作的工具,变得日益重要。网络的出现,使协同工作成为可能。但传统的WEB方式实现,给服务器带来了极大的负担,造成了昂贵的成本支出。P2P技术的出现,使得互联网上任意两台PC都可建立实时的联系,建立了这样一个安全、共享的虚拟空间,人们可以进行各种各样的活动,这些活动可以是同时进行,也可以交互进行。P2P技术可以帮助企业和关键客户,以及合作伙伴之间建立起一种安全的网上工作联系方式,因此基于P2P技术的协同工作也受到了极大的重视,Lotous公司的创始人奥奇更是获得了6000万美元的风险投资,来开发其协同工作产品Groove。

    ? 3、搜索引擎

    ? P2P技术的另一个优势是开发出强大的搜索工具。P2P技术使用户能够深度搜索文档,而且这种搜索无需通过Web服务器,也可以不受信息文档格式和宿主设备的限制,可达到传统目录式搜索引擎(只能搜索到20%-30%的网络资源)无可比拟的深度(理论上将包括网络上的所有开放的信息资源)。以P2P技术发展的另一先锋Gnutella进行的搜索为例:一台PC上的Gnutella软件可将用户的搜索请求同时发给网络上另外10台PC,如果搜索请求未得到满足,这10台PC中的每一台都会把该搜索请求转发给另外10台PC,这样,搜索范围将在几秒钟内以几何级数增长,几分钟内就可搜遍几百万台PC上的信息资源。可以说,P2P为互联网的信息搜索提供了全新的解决之道。著名的搜索引擎公司Google也宣称要采用P2P技术来改进其搜索引擎,一家名为infrasearch的新建公司也因为开发P2P技术的搜索引擎而获得了一笔巨额风险投资。

    ?4、文件交换

    ? 可以说文件交换的需求直接引发了P2P技术热潮。在传统的WEB方式中,要实现文件交换需要服务器的大力参与,通过将文件上传到某个特定的网站,用户再到某个网站搜索需要的文件,然后下载,这种方式的不便之处不言而喻。电子邮件是方便了个人间文件传递问题,却没法解决大范围的交换。这也是WEB的重要缺陷,Napster就是在情况下横空出世,抓住人们对MP3喜欢的需求,Napster的MP3交换直接引发了网络的P2P技术革命。

    ?文件交换的需求也很轻松地延伸到了信息的交换,在线拍卖也被赋予了新的形式,大家也不必要到拍卖网站登记要卖的商品了,在自家的硬盘上建个商店就可以了。由此又可以延伸到,一切中介网站都会被替代。

    ? 当然以上四类型应用决不是P2P仅有的应用,被认为至少还有100种应用等着去开发。与B2C、B2B、C2C、C2B等一些概念不同,P2P是技术,甚至技术思想的革命。更重要的是,P2P技术将实现互联网的大部分潜力,将互联网从一个基于文件的网页和电子邮件网络转变成一个动态的、颗粒状网络,在网络中,特定的信息组件可被有效地放置和分享。网络与计算机将不再有什么差别了,大家还记得这个口号吧:网络就是计算机,也许就是武侠小说的最高境界:天人合一。

    5、即时通讯。

    所谓即时通讯,其实指的就是诸如QQ、旺旺等被我们称作在线聊天的软件,从某种意义上说,由于版权的限制,即时通讯应用将超过文件共享应用,成为P2P的第一大应用。在即时讯息领域,AOL和微软、Yahoo一直有比较激烈的争斗,当然国内还是QQ一家的天下。为什么即时通讯软件会那么红火?与IRC比较,即时通讯软件可以以极其简单的方法实现聊天;与WEB聊天室比较,即时通讯软件可以随时知晓对方在线与否,使交流的可能性最大。

    目前很多游戏也开始向P2P方向发展,本文在下面章节也提供一套基于P2P平台的游戏框架。但是在游戏不同于聊天软件,特别是对战游戏,它的即时性远远高于通讯软件。在聊天时一方可以等待对方一段时间,甚至当对方不在线的时候也可以发送信息,但是游戏必须在一定的时间范围内接受到应该收到的消息,否则游戏就没法玩起来。关于如何提高P2P平台下响应时间,也将在下文有介绍。

    P2P网络架构优缺点

    在客户/服务器体系中,客户请求服务,服务器提供服务。在当今的Internet上,存在在大量的服务器–Web服务器,邮件服务器,FTP服务器等等。客户/服务器体系是中央化体系的一个例子,整个的网络都依靠中央的节点和命名的服务器来提供服务。如果没有服务器,网络将是毫无意义的;如果没有它们,Web浏览器如何工作?不论客户端或者浏览器的数目有多少,网络只能在服务器存在的前提下才有意义。

      和客户/服务器体系相似,P2P也是一个分布的计算模型,但是有一个很大的不同,P2P是一个非中央化的体系,在网络中并没有客户或者服务器的状态区分。网络中的每个实体都是同等的,有着同样的状态,这意味着一个实体可以请求一个服务(客户端的特性)或者提供一个服务(服务器的特性)。展示的是一个P2P网络。

      虽然每个节点在网络中有着同等的状态,不过它们并不要求都有着同样的物理性能。一个P2P网络可以包含有不同性能的节点,由移动设备到大型机。对于一个移动设备来说,可能由于自身的限制,不能作为服务器,但从网络方面来说,并没有这个限制。

      两个网络模型都有着各自的优点和缺点。由图中的客户/服务器网络你可以看到,当网络增大时(即越来越多的客户加入),中央服务器的压力就越大。当加多一个客户,中央节点的性能就会弱化;而它的失效将会导致整个网络的瘫痪。

      对于P2P网络来说,情况就完全不一样了。由于网络中的每个实体(或者节点)都是积极的参与者,每个节点都会为网络提供一些资源,例如存储空间或者CPU。当越来越多的节点加入网络时,网络的性能将会增长。因此,当网络增大时,它的性能也会增强。你将不会碰到客户/服务器体系中的扩展问题。

      P2P网络和客户/服务器模型还有一个很大的不同是:即使只有一个节点是活跃的,P2P网络也被认为是活跃的。只有在没有任何节点时,P2P网络才是不可用的。

      不过,金无足赤,虽然P2P网络有着这些的优点,但你也要付出一些代价的。首先,管理这样一个网络可能是一个噩梦,而在客户/服务器网络中,你只需要管理中央的节点。因此,无论在安全策略和备份策略方面,P2P网络都要复杂一些。第二,P2P协议比传统的客户/服务器协议需要更多的“交互”,例如当节点加入或者退出网络。这些方面都会对性能产生一些影响。

    JXTA介绍

    JXTA 是 Juxtapose (并列)的缩写。JXTA最早起源于2000年的夏天,现在大家把JXTA看成是P2P的平台,JXTA的目标是要解决几个技术与商业上的难题。第一是解决众多P2P系统互不相通的问题。2000年,是P2P突飞猛进的高潮年,但高潮背后却是许多小公司用自己的封闭系统试图在Internet上圈一块地。Sun认为,只有互通才能真正发挥出P2P的优势,就好像IM(Instant Messaging),能互连的人越多,越有价值。所以Sun决定出面发布一个平台,使所有P2P系统都能连接起来,只有Sun这样位置中立、但在技术上有雄存实力被大家认可的公司才有希望做成这一平台。Jxta 工程是按社区方式运作的,旨在为对等应用构建实用应用程序底层。虽然 Jxta 的参考实现是用 Java 语言写的,但事实上它对当今现有的任何语言,操作系统(OS)或平台都会欣然接纳 — 而且,更重要的是,对于人们现在想都没想过的技术,它也做好了准备。目前Jxta的最高版本是2.3.2.

    JXTA对P2P的作用与影响

    JXTA的一个目的是寻找一套数量最少、概念最简单的系统构成的“积木“。如果成功,这几块积木就会是今后大家构架信息系统的基本模块,从而帮助人们摆脱像Windows或TCP/IP这样的传统软件带来的包袱。JXTA,它是由一系列网络协议构成的,用任何语言都可以实现,并不只限于Java,只有彻底独立于操作系统、网络传输技术以及程序设计语言,才能真正达到了跨平台,这样的技术,也最容易受到业界的认同。

    JXTA技术提供了基础性的机制解决当前分布计算应用中面临的问题,实现新一代统一、安全、互操作以及异构的应用。目前它支持基于Java技术的平台和系统。而将来JATX技术将不受到内存的限制而支持更多小型移动设备。JXTA通过Java技术和XML数据表达的结合,提供了强大的功能使得垂直应用得以交互,并且可以克服目前P2P软件中的限制。同时,通过小型、简单、便于开发的构造模块,JXTA将使开发者从建立各自框架的复杂工作得以解放,可以潜心关注于建设各类新颖、创造性的、分布式计算应用。

    JXTA的协议

     有六个协议构成了JXTA的核心,JXTA通过这六个协议来完成Peer之间的通信,彼此之间的资源的发布和发现,信息的传递和路由,协议本身并不是应用程序,需要添加更多的代码来开发有用的应用,协议隐藏了很多细节,这样使得编写JXTA应用程序比从空白开发P2P应用要容易得多。

    1、对等机发现协议Peer Discovery Protocol(PDP):主要用来发布自己的广告信息,并且从其他Peer处获得广告。PDP允许一个Peer发现其他Peer的广告(包括Peer广告、对等组广告、服务广告,或者是管道广告)。该协议通过指定一种广告类型(如Peer、对等组)、一个XML标签名、一个匹配这个XML标签所表示数据的字符串来定义查询。它使用Peer Resolver Protocol来发送和传播搜索广告的请求。

    2、管道绑定协议Pipe Binding Protocol(PBP):允许Peer之间建立虚拟的通信通道。

    该协议首要关注的是通过Peer端点路由协议提供的路由连接Peer。它使用Peer Resolver Protocol来发送和传播搜索广告的请求。

    3、对等机信息协议Peer Information Protocol(PIP):用来获得其他Peer的状态信息,包括更新时间、状态等等。该协议有时被用做ping命令,有时被用来获得一个Peer的基本状态信息,PIP消息的正文是自由格式的,它允许询问特定的Peer信息。此外,这种能力可以被扩展以提供控制能力,它使用Peer Resolver Protocol来发送和传播搜索广告的请求。

    4、对等机解析协议Peer Resolver Protocol(PRP):允许Peer发送更一般的请求,并可以接收到该请求的回应;同时可以将请求分发到组内的一个或者多个匹配的处理器,Peer解析协议是一个基础通信协议,它按照一种请求/响应格式来进行,要使用这个协议,需要提供一个查询的Peer和一个包含能被目标Peer理解的XML请求消息,该协议被用来支持JXTA中的其他协议(PDP、PBP和PIP),而且允许传播查询,例如,如果一个Peer收到一个查询并且不知道答案,解析协议就会将该查询发送给别的Peer。

    5、端点路由协议Peer Endpoint Protocol(PEP):通过该协议Peer以发送消息的形式获得一条路由路径。它使用Peer间的网关来建立一条包含一个或多个适合建立管道的管道协议组成的通路。管道绑定协议借助此Peer列表来建立Peer间的路由。一般情况下传统的路由器和DNS服务器会因为防火墙、代理服务器和NAT设备等原因而无法建立连接,而端点路由协议通过寻找网关来穿越诸如防火墙等障碍来建立连接。端点路由协议还可以同时帮助相互不支持对方使用协议的Peer进行通信。例如,如果你连接支持TCP的Peer-A和只支持HTTP的Peer-B,端点路由协议既可以选择一个可以支持此传输的网关,又可以选择多个并且相互协议兼容的一组网关。

    6、集合点协议Rendezvous Protocol(RVP):通过该协议Peer可以对一个服务订阅或者被订阅。集合点协议负责在JXTA对等组内传播消息,它为Peer在组内接收和发送消息并且控制消息如何传播定义了一个基本的协议。

    从编写P2P应用程序的角度而言,可以简单地划分上述协议的主要用途:

    * Peer Discovery—-搜索资源

    * Peer Resolver—-一般查询服务

    * Peer Information—-监控

    * Pipe Binding—-可寻址的消息传递

    * Rendezvous—-消息传播

    * PeerEndpoint—-路由

    JXTA工作原理

    对等(P2P)网络与传统的客户机/服务器或多层服务器网络不同,对等网络中的对等机是彼此直接通信的。这种通信无需依赖集中式服务器或资源就可完成。在 P2P 网络中,通过对等机之间的交互操作就可以完成工作,共享信息。通过创建有潜力展示非常高的可用性和容错能力的计算资源网络,P2P 体系结构使真正的分布式计算成为可能。

    传统的客户机/服务器和多层次体系结构已经是业界的识途老马,而采用 P2P 体系结构的系统则还只是初生牛犊。Jxta 工程是 Sun 为了向构建跨平台、跨操作系统(OS)和跨编程语言的 P2P 应用提供实用应用程序底层而发动的突袭。这项工程现在是开放源代码的,Sun 也参与其中,可以参阅http://www.jxta.org官方网站以获取关于 Jxta 社区的信息。

    Jxta 工程的组件是认真的设计分工的产物。它们为泛型 P2P 网络提供最小需求,去除了所有特定于策略的逻辑和组件。这样,就仅剩下几乎所有的应用程序都能使用的构件要素,不考虑目标用户和特定实现。在接下来的几个月和几年里,Jxta 核心社区的一个主要任务就是确保这种普遍适用性仍然是真实的。您可以争辩说,P2P 最引人注目的应用程序尚未开发,那么如果 Jxta 把特定于策略或实现的细节嵌入其基础构造层后就完事的话,那么这些尚未想像到的应用程序就可能永远不会和这个平台一起工作。换句话说,Jxta 组件没有强加一些不必要的策略,也没有硬性规定特定的应用操作模型,使得简单地构造 P2P 应用成为可能,也更方便。
    展开全文
  • P2P对等网络技术原理整合

    千次阅读 2016-12-17 15:13:42
    P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方式。在C/S模式中,数据分发采用专门服务器,多个客户端都从此服务器获取数据。 优点是:数据一致性...
    P2P(Peer to Peer)对等网络

    P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。

    优点是:数据的一致性容易控制,系统也容易管理。

    缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一失效点;单一服务器面对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。

    P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。

    P2P应用软件主要包括文件分发软件、语音服务软件、流媒体软件。目前P2P应用种类多、形式多样,没有统一的网络协议标准,其体系结构和组织形式也在不断发展。


    对等网络的基本结构


    (1)集中式对等网络(Napster、QQ)

    集中式对等网络基于中央目录服务器,为网络中各节目提供目录查询服务,传输内容无需再经过中央服务器。这种网络,结构比较简单,中央服务器的负担大大降低。但由于仍存在中央节点,容易形成传输瓶颈,扩展性也比较差,不适合大型网络。但由于目录集中管理,对于小型网络的管理和控制上倒是一种可选择方案。

    (2)无结构分布式网络Gnutella

    无结构分布式网络与集中式的最显著区别在于,它没有中央服务器,所有结点通过与相邻节点间的通信,接入整个网络。在无结构的网络中,节点采用一种查询包的机制来搜索需要的资源。具体的方式为,某节点将包含查询内容的查询包发送到与之相邻的节点,该查询包以扩散的方式在网络中蔓延,由于这样的方式如果不加节制,会造成消息泛滥,因此一般会设置一个适当的生存时间(TTL),在查询的过程中递减,当TTL值为0时,将不再继续发送。

       这种无结构的方式,组织方式比较松散,节点的加入与离开比较自由,当查询热门内容时,很容易就能找到,但如果需求的内容比较冷门,较小的TTL不容易找到,而较大的TTL值又容易引起较大的查询流量,尤其当网络范围扩展到一定规模时,即使限制的TTL值较小,仍然会引起流量的剧增。但当网络中存在一些拥有丰富资源的所谓的类服务器节点时,可显著提高查询的效率。

    (3)结构化分布式网络第三代P2P Pastry、Tapestry、Chord、CAN)

        结构化分布式网络,是近几年基于分布式哈希表(Distributed Hash Table)技术的研究成果。它的基本思想是将网络中所有的资源整理成一张巨大的表,表内包含资源的关键字和所存放结点的地址,然后将这张表分割后分别存储到网络中的每一结点中去。当用户在网络中搜索相应的资源时,它将能发现存储与关键词对应的哈希表内容所存放的结点,在该结点中存储了包含所需资源的结点地址,然后发起搜索的结点根据这些地址信息,与对应结点连接并传输资源。这是一种技术上比较先进的对等网络,它具有高度结构化,高可扩展性,结点的加入与离开比较自由。这种方式适合比较大型的网络。


    对等网络经典结构

      (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]。


    P2P技术应用

    (1)分布式科学计算
    P2P技术可以使得众多终端的CPU资源联合起来,服务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务(包括逻辑与数据等)被划分成多个片,被分配到参与科学计算的P2P节点机器上。在不影响原有计算机使用的前提下,人们利用分散的CPU资源完成计算任务,并将结果返回给一个或多个服务器,将众多结果进行整合,以得到最终结果。
    (2)文件共享
    BitTorrent是一种无结构的网络协议。除了BitTorrent之外,还有不少著名的无结构化的P2P文件共享协议,典型的有Gnutella[8]和KaZaA[6]。
    (3)流媒体直播
    (4)流媒体点播
    (5)IP层语音通信
    Skype采取类似KaZaA的拓扑结构,在网络中选取一些超级节点。在通信双方直连效果不好时,一些合适的超级节点则担当起其中转节点的角色,为通信双方创建中转连接,并转发相应的语音通信包。


    典型P2P应用的机制分析
          分析典型的P2P应用机制可以深入了解P2P的原理。本节将对文件分发、流媒体应用、语音服务3个领域中具有代表性的软件机制进行详细的分析。对于这些软件的分析有助于理解P2P技术的原理和把握P2P技术未来发展的趋势。

    BitTorrent
          BitTorrent软件用户首先从Web服务器上获得下载文件的种子文件,种子文件中包含下载文件名及数据部分的哈希值,还包含一个或者多个的索引(Tracker)服务器地址。它的工作过程如下:客户端向索引服务器发一个超文本传输协议(HTTP)的GET请求,并把它自己的私有信息和下载文件的哈希值放在GET的参数中;索引服务器根据请求的哈希值查找内部的数据字典,随机地返回正在下载该文件的一组节点,客户端连接这些节点,下载需要的文件片段。因此可以将索引服务器的文件下载过程简单地分成两个部分:与索引服务器通信的HTTP,与其他客户端通信并传输数据的协议,我们称为BitTorrent对等协议。BitTorrent软件的工作原理如图4所示。BitTorrent协议也处在不断变化中,可以通过数据报协议(UDP)和DHT的方法获得可用的传输节点信息,而不是仅仅通过原有的HTTP,这种方法使得BitTorrent应用更加灵活,提高BitTorrent用户的下载体验。

    eMule
          eMule软件基于eDonkey协议改进后的协议,同时兼容eDonkey协议。每个eMule客户端都预先设置好了一个服务器列表和一个本地共享文件列表,客户端通过TCP连接到eMule服务器进行登录,得到想要的文件的信息以及可用的客户端的信息。一个客户端可以从多个其他的EMule客户端下载同一个文件,并从不同的客户端取得不同的数据片段。eMule同时扩展了eDonkey的能力,允许客户端之间互相交换关于服务器、其他客户端和文件的信息。eMule服务器不保存任何文件,它只是文件位置信息的中心索引。eMule客户端一启动就会自动使用传输控制协议(TCP)连接到eMule服务器上。服务器给客户端提供一个客户端标识(ID),它仅在客户端服务器连接的生命周期内有效。连接建立后,客户端把其共享的文件列表发送给服务器。服务器将这个列表保存在内部数据库内。eMule客户端也会发送请求下载列表。连接建立以后,eMule服务器给客户端返回一个列表,包括哪些客户端可以提供请求文件的下载。然后,客户端再和它们主动建立连接下载文件。图5所示为eMule的工作原理。


          eMule基本原理与BitTorrent类似,客户端通过索引服务器获得文件下载信息。eMule同时允许客户端之间传递服务器信息,BitTorrent只能通过索引服务器或者DHT获得。eMule共享的是整个文件目录,而BitTorrent只共享下载任务,这使得BitTorrent更适合分发热门文件,eMule倾向于一般热门文件的下载。

    迅雷
          迅雷是一款新型的基于多资源多线程技术的下载软件,迅雷拥有比目前用户常用的下载软件快7~10倍的下载速度。迅雷的技术主要分成两个部分,一部分是对现有Internet下载资源的搜索和整合,将现有Internet上的下载资源进行校验,将相同校验值的统一资源定位(URL)信息进行聚合。当用户点击某个下载连接时,迅雷服务器按照一定的策略返回该URL信息所在聚合的子集,并将该用户的信息返回给迅雷服务器。另一部分是迅雷客户端通过多资源多线程下载所需要的文件,提高下载速率。迅雷高速稳定下载的根本原因在于同时整合多个稳定服务器的资源实现多资源多线程的数据传输。多资源多线程技术使得迅雷在不降低用户体验的前提下,对服务器资源进行均衡,有效降低了服务器负载。

          每个用户在网上下载的文件都会在迅雷的服务器中进行数据记录,如有其他用户再下载同样的文件,迅雷的服务器会在它的数据库中搜索曾经下载过这些文件的用户,服务器再连接这些用户,通过用户已下载文件中的记录进行判断,如用户下载文件中仍存在此文件(文件如改名或改变保存位置则无效),用户将在不知不觉中扮演下载中间服务角色,上传文件。

    PPLive
          PPLive软件的工作机制和BitTorrent十分类似,PPLive将视频文件分成大小相等的片段,第三方提供播放的视频源,用户启矾PPLive以后,从PPLive服务器获得频道的列表,用户点击感兴趣的频道,然后从其他节点获得数据文件,使用流媒体实时传输协议(RTP)和实时传输控制协议(RTCP)进行数据的传输和控制。将数据下载到本地主机后,开放本地端口作为视频服务器,PPLive的客户端播放器连接此端口,任何同一个局域网内的用户都可以通过连接这个地址收看到点播的节目。图6所示为PPLive的工作原理示意图。

    Skype
          Skype是网络语音沟通工具。它可以提供免费高清晰的语音对话,也可以用来拨打国内国际长途,还具备即时通讯所需的其他功能,比如文件传输、文字聊天等。Skype是在KaZaA的基础上开发的,就像KaZaA一样,Skype本身也是基于覆盖层的P2P网络,在它里面有两种类型的节点:普通节点和超级节点。普通节点是能传输语音和消息的一个功能实体;超级节点则类似于普通节点的网络网关,所有的普通节点必须与超级节点连接,并向Skype的登陆服务器注册它自己来加入Skype网络。Skype的登陆服务器上存有用户名和密码,并且授权特定的用户加入Skype网络,图7所示为Skype的体系结构[18]


          Skype的另一个突出特点就是能够穿越地址转换设备和防火墙。Skype能够在最小传输带宽32 kb/s的网络上提供高质量的语音。Skype是使用P2P语音服务的代表。由于其具有超清晰语音质量、极强的穿透防火墙能力、免费多方通话以及高保密性等优点,成为互联网上使用最多的P2P应用之一。


    P2P实现的原理

    首先先介绍一些基本概念:
       NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT从历史发展上分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。
       最先提出的是基本的NAT(peakflys注:刚开始其实只是路由器上的一个功能模块),它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(这是在上世纪90年代中期提出的)。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。
    因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。(基本的NAT会改变IP包中的原IP地址,但是不会改变IP包中的端口)
    关于基本的NAT可以参看RFC 1631
    另外一种NAT叫做NAPT,从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。基本NAT的设备可能我们见的不多(基本已经淘汰了),NAPT才是我们真正需要关注的。看下图:

    有一个私有网络10.*.*.*,Client A是其中的一台计算机,这个网络的网关(一个NAT设备)的外网IP是155.99.25.11(应该还有一个内网的IP地址,比如10.0.0.10)。如果Client A中的某个进程(这个进程创建了一个UDP Socket,这个Socket绑定1234端口)想访问外网主机18.181.0.31的1235端口,那么当数据包通过NAT时会发生什么事情呢?
    首先NAT会改变这个数据包的原IP地址,改为155.99.25.11。接着NAT会为这个传输创建一个Session(Session是一个抽象的概念,如果是TCP,也许Session是由一个SYN包开始,以一个FIN包结束。而UDP呢,以这个IP的这个端口的第一个UDP开始,结束呢,呵呵,也许是几分钟,也许是几小时,这要看具体的实现了)并且给这个Session分配一个端口,比如62000,然后改变这个数据包的源端口为62000。所以本来是
    (10.0.0.1:1234->18.181.0.31:1235)的数据包到了互联网上变为了(155.99.25.11:62000->18.181.0.31:1235)。
    一旦NAT创建了一个Session后,NAT会记住62000端口对应的是10.0.0.1的1234端口,以后从18.181.0.31发送到62000端口的数据会被NAT自动的转发到10.0.0.1上。(注意:这里是说18.181.0.31发送到62000端口的数据会被转发,其他的IP发送到这个端口的数据将被NAT抛弃)这样Client A就与Server S1建立以了一个连接。
    上面的是一些基础知识,下面的才是关键的部分了。
    看看下面的情况:

    接上面的例子,如果Client A的原来那个Socket(绑定了1234端口的那个UDP Socket)又接着向另外一个Server S2发送了一个UDP包,那么这个UDP包在通过NAT时会怎么样呢?
    这时可能会有两种情况发生,一种是NAT再次创建一个Session,并且再次为这个Session分配一个端口号(比如:62001)。另外一种是NAT再次创建一个Session,但是不会新分配一个端口号,而是用原来分配的端口号62000。前一种NAT叫做Symmetric NAT,后一种叫做Cone NAT。如果你的NAT刚好是第一种,那么很可能会有很多P2P软件失灵。(可以庆幸的是,现在绝大多数的NAT属于后者,即Cone NAT)
    peakflys注:Cone NAT具体又分为3种:
    (1)全圆锥( Full Cone) : NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。任何一个外部主机均可通过该映射发送IP包到该内部主机。
    (2)限制性圆锥(Restricted Cone) : NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。但是,只有当内部主机先给IP地址为X的外部主机发送IP包,该外部主机才能向该内部主机发送IP包。
    (3)端口限制性圆锥( Port Restricted Cone) :端口限制性圆锥与限制性圆锥类似,只是多了端口号的限制,即只有内部主机先向IP地址为X,端口号为P的外部主机发送1个IP包,该外部主机才能够把源端口号为P的IP包发送给该内部主机。
    好了,我们看到,通过NAT,子网内的计算机向外连结是很容易的(NAT相当于透明的,子网内的和外网的计算机不用知道NAT的情况)。
    但是如果外部的计算机想访问子网内的计算机就比较困难了(而这正是P2P所需要的)。
    那么我们如果想从外部发送一个数据报给内网的计算机有什么办法呢?首先,我们必须在内网的NAT上打上一个“洞”(也就是前面我们说的在NAT上建立一个Session),这个洞不能由外部来打,只能由内网内的主机来打。而且这个洞是有方向的,比如从内部某台主机(比如:192.168.0.10)向外部的某个IP(比如:219.237.60.1)发送一个UDP包,那么就在这个内网的NAT设备上打了一个方向为219.237.60.1的“洞”,(这就是称为UDP Hole Punching的技术)以后219.237.60.1就可以通过这个洞与内网的192.168.0.10联系了。(但是其他的IP不能利用这个洞)。


    P2P的常用实现

    一、普通的直连式P2P实现
    通过上面的理论,实现两个内网的主机通讯就差最后一步了:那就是鸡生蛋还是蛋生鸡的问题了,两边都无法主动发出连接请求,谁也不知道谁的公网地址,那我们如何来打这个洞呢?我们需要一个中间人来联系这两个内网主机。
    现在我们来看看一个P2P软件的流程,以下图为例:
    首先,Client A登录服务器,NAT A为这次的Session分配了一个端口60000,那么Server S收到的Client A的地址是202.187.45.3:60000,这就是Client A的外网地址了。同样,Client B登录Server S,NAT B给此次Session分配的端口是40000,那么Server S收到的B的地址是187.34.1.56:40000。
    此时,Client A与Client B都可以与Server S通信了。如果Client A此时想直接发送信息给Client B,那么他可以从Server S那儿获得B的公网地址187.34.1.56:40000,是不是Client A向这个地址发送信息Client B就能收到了呢?答案是不行,因为如果这样发送信息,NAT B会将这个信息丢弃(因为这样的信息是不请自来的,为了安全,大多数NAT都会执行丢弃动作)。现在我们需要的是在NAT B上打一个方向为202.187.45.3(即Client A的外网地址)的洞,那么Client A发送到187.34.1.56:40000的信息,Client B就能收到了。这个打洞命令由谁来发呢?自然是Server S。
    总结一下这个过程:如果Client A想向Client B发送信息,那么Client A发送命令给Server S,请求Server S命令Client B向Client A方向打洞。然后Client A就可以通过Client B的外网
    地址与Client B通信了。
    注意:以上过程只适合于Cone NAT的情况,如果是Symmetric NAT,那么当Client B向Client A打洞的端口已经重新分配了,Client B将无法知道这个端口(如果Symmetric NAT的端口是顺序分配的,那么我们或许可以猜测这个端口号,可是由于可能导致失败的因素太多,这种情况下一般放弃P2P  ---peakflys)。

    二、STUN方式的P2P实现
    STUN是RFC3489规定的一种NAT穿透方式,它采用辅助的方法探测NAT的IP和端口。毫无疑问的,它对穿越早期的NAT起了巨大的作用,并且还将继续在NAT穿透中占有一席之地。
    STUN的探测过程需要有一个公网IP的STUN server,在NAT后面的UAC必须和此server配合,互相之间发送若干个UDP数据包。UDP包中包含有UAC需要了解的信息,比如NAT外网IP,PORT等等。UAC通过是否得到这个UDP包和包中的数据判断自己的NAT类型。
    假设有如下UAC(B),NAT(A),SERVER(C),UAC的IP为IPB,NAT的IP为 IPA ,SERVER的 IP为IPC1 、IPC2。请注意,服务器C有两个IP,后面你会理解为什么需要两个IP。
    (1)NAT的探测过程
    STEP1:B向C的IPC1的port1端口发送一个UDP包。C收到这个包后,会把它收到包的源IP和port写到UDP包中,然后把此包通过IP1C和port1发还给B。这个IP和port也就是NAT的外网IP和port,也就是说你在STEP1中就得到了NAT的外网IP。
    熟悉NAT工作原理的应该都知道,C返回给B的这个UDP包B一定收到。如果在你的应用中,向一个STUN服务器发送数据包后,你没有收到STUN的任何回应包,那只有两种可能:1、STUN服务器不存在,或者你弄错了port。2、你的NAT设备拒绝一切UDP包从外部向内部通过,如果排除防火墙限制规则,那么这样的NAT设备如果存在,那肯定是坏了„„
    当B收到此UDP后,把此UDP中的IP和自己的IP做比较,如果是一样的,就说明自己是在公网,下步NAT将去探测防火墙类型,就不多说了(下面有图)。如果不一样,说明有NAT的存在,系统进行STEP2的操作。
    STEP2:B向C的IPC1发送一个UDP包,请求C通过另外一个IPC2和PORT(不同与SETP1的IP1)向B返回一个UDP数据包(现在知道为什么C要有两个IP了吧,为了检测cone NAT的类型)。
    我们来分析一下,如果B收到了这个数据包,那说明什么?说明NAT来着不拒,不对数据包进行任何过滤,这也就是STUN标准中的full cone NAT。遗憾的是,full cone nat太少了,这也意味着你能收到这个数据包的可能性不大。如果没收到,那么系统进行STEP3的操作。
    STEP3:B向C的IPC2的port2发送一个数据包,C收到数据包后,把它收到包的源IP和port写到UDP包中,然后通过自己的IPC2和port2把此包发还给B。
    和step1一样,B肯定能收到这个回应UDP包。此包中的port是我们最关心的数据,下面我们来分析:
    如果这个port和step1中的port一样,那么可以肯定这个NAT是个CONE NAT,否则是对称NAT。道理很简单:根据对称NAT的规则,当目的地址的IP和port有任何一个改变,那么NAT都会重新分配一个port使用,而在step3中,和step1对应,我们改变了IP和port。因此,如果是对称NAT,那这两个port肯定是不同的。
    如果在你的应用中,到此步的时候PORT是不同的,那就只能放弃P2P了,原因同上面实现中的一样。如果不同,那么只剩下了restrict cone 和port restrict cone。系统用step4探测是是那一种。
    STEP4:B向C的IP2的一个端口PD发送一个数据请求包,要求C用IP2和不同于PD的port返回一个数据包给B。
    我们来分析结果:如果B收到了,那也就意味着只要IP相同,即使port不同,NAT也允许UDP包通过。显然这是restrict cone NAT。如果没收到,没别的好说,port restrict NAT.
    协议实现的算法运行图如下:
    一旦路经到达红色节点时,UDP的沟通是没有可能性的(peakflys注:准备来说除了包被防火墙blocked之外,其他情况也是有可能建立P2P的,只是代价太大,一般放弃)。一旦通过黄色或是绿色的节点,就有连接的可能。
    最终通过STUN服务器得到自己的NAT类型和公网IP、Port,以后建立P2P时就非常容易了。

    参考文章:

    P2P技术原理:http://www.360doc.com/content/14/0305/17/8285430_357987074.shtml

    P2P技术现状及发展未来:http://www.zte.com.cn/cndata/magazine/zte_communications/2007/6/magazine/200712

    P2P原理及其常用的实现方式:http://www.cppblog.com/peakflys/archive/2013/01/25/197562.html

    展开全文
  • “对等”技术是一种近几年兴起的网络新技术,属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较...

         P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术是一种近几年兴起的网络新技术,属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络技术改变了人们使用网络的方式,也为未来网络的发展提供了一种新的思路。P2P网络具有良好的扩展性和健壮性,性价比也较高,P2P与其说是一种技术,不如说是一种思想。P2P网络是在IP网络基础之上,通过应用软件构筑起来的一个逻辑覆盖网,并不是独立于现行的IP网络之外的什么特殊网络。在实际物理网络中安装有某种P2P软件的节点可以构成一个逻辑覆盖网络,而没有安装这种P2P软件的节点则被排除在外。在P2P网络中,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,客户端实现了直接通讯。这样,庞大的终端资源被利用起来,降低了部署成本以及复杂性,从而一举解决了C/S模式中的两个弊端。

     1、P2P网络拓扑结构

          拓扑结构是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,结点之间的拓扑结构一直是确定系统类型的重要依据。目前互联网中广泛使用集中式、层次式等拓扑结构。集中式拓扑结构系统目前面临着带宽瓶颈等一些难以解决的问题。而P2P系统主要采用非集中式的拓扑结构。P2P模型可以分为集中式、分散式、层次式混合式这四种模型。

    1.1集中式模型

          集中式P2P模式中有一个中心服务器负责记录共享信息以及响应对这些信息的查询。每一个对等实体根据需要下载它所需要的其他对等实体上的信息。这种具有中心化特点的形式不同于传统意义上的C/S模式:传统意义上的C/S模式是所有资料都存放在固定的服务器上,客户机只能从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都分别存放在提供该资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体间都具有交互能力。集中模型中,最具代表性的模型是Napster。Napster是最早出现的P2P系统之一,它实质上并非是纯粹的P2P系统,而是通过一个中央索引服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。它的工作原理如图1所示。当某个用户需要某个文件时,首先连接到中央索引服务器,在服务器上进行检索,服务器返回该文件的用户信息,再由请求者直接连到文件的所有者传输文件。Napster实现了查询与传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。
                          
             然而,这种对等网络模型存在以下这些问题:

             (1)可靠性和安全性较低;一旦中央索引服务器瘫痪,将直接导致整个网络的崩溃。

             (2)成本较高;随着网络规模的扩大,对中央索引服务器进行维护和更新的费用将急剧增加。

             (3)服务提供商容易被追究法律责任。

              综上所述,该模型对小型网络而言,在管理和控制方面占一定优势,但并不适合大型网络应用。

      1.2分散式模型

          分散式模型采用随机图的组织方式,能够较快发现目的节点,具有较好的可用性,并支持复杂的查寻,但不能保证查询的结果完全。为了保证查询结果,有些P2P网络维护一个中心目录,但如此就大大限制了网络的可扩展性。分散模型中,最具代表性的是Gnutella模型。Gnutella因为没有中央索引服务器,避免了服务器性能瓶颈。每台机器在Gnutella网络中既是客户机同时又是服务器。在文件检索方面,在Gnutella网络的发展初期,它主要采用基于完全随机图的Flooding搜索算法:当一台计算机要下载一个文件,它首先以文件名或者关键字生成一个查询,并把这个查询发送给与它相连的所有计算机,这些计算机如果存在这个文件,则与查询的机器建立连接,如果不存在这个文件,则继续在自己相邻的计算机之间转发这个查询,直到找到文件为止。为了控制搜索消息不至于永远这样传递下去,一般通过TTL(Time To Live)的减值来控制查询的深度。但是,随着联网节点的不断增多,网络规模不断扩大,网络开销成指数级增长。搜索请求遍历整个P2P网络需要经过很多跳,完整地获得搜索结果延迟比较大。通过这种Flooding方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。

     1.3层次化模型

          层次化模型将网络分为三个层次:核心层、分发层和接入层。

        (1)核心层:形成主干网,提供高性能、无阻塞高速通道。核心层网络用于提供全网的信息通信,因此,应当选用高档、高性能的网络设备。

        (2)分发层:形成主干接入网,提供到高速主干的接入,可比喻为省市级公路。分发层网络宜选用中档网络设备。

        (3)接入层:提供对用户接入的接口,可比喻为一般公路。接入层网络设备宜选用中低档网络设备,以降低成本。这样,整个网络就非常具有弹性、高效性和可靠性。

          优点:相对于集中模型,索引信息不是保存在中央服务器上,不会产生服务器瓶颈,索引信息同步较快,相对于完全分散式模型,信息检索不会给网络造成较大流量。

          缺点:层次化模型对于非结构化网络,维护整个网络比较困难,特别是处于结构顶层的节点在离开网络后,对网络的影响比较大,重构网络比较复杂。

     1.4混合模型

          混合模型的思想,是把整个P2P网络建成一个二层结构,由普通节点和超级节点组成,一个超级节点管理多个普通节点,超级节点直接使用gossip协议构成完全分散式模型。混合模型可以利用完全分散式模型在节点数不多时实现的高分散性,鲁棒性和高覆盖率。也可以利用层次模型对大规模网络提供可扩展性。在完全分散式模型中,当TTL=5时,网络的规模不超过20000,性能是较好的,如果每个超级节点管理50-200个普通节点,整个网络规模是可观的。对于超级节点组成的完全分散式网络,更好的gossip协议和智能的TTL选择方法可以改善网络负载和搜索覆盖率的平衡性。超级节点的选取算法也影响混合P2P网络的服务质量。

          在实际应用中,每种拓扑结构的P2P网络都有其优缺点,表1从可扩展性、可靠性、可维护性、发现算法的效率、复杂查询等方面比较了这四种拓扑结构的综合性能。

    2
    、基于P2P网络的应用

          随着P2P网络技术的不断发展。目前,P2P网络技术在高校校园网络中运用广泛。例如P2P网络技术在文件共享、流媒体直播与点播、分布式科学计算、信息检索中都得到了较好的运用。

    2.1文件共享

          在高校校园网络中,应用P2P技术可以使校内的任意两台计算机直接相互共享文本、音乐、影视或多媒体等文件;网上计算机之间可以直接进行交互,不需要使用任何一台中央服务器。

           在传统的Web方式中,要实现文件交换需要将文件上传到特定网站,用户再到网站上搜索需要的文件,然后进行下载,这对用户而言非常不方便。在P2P网络中,用户通过不同的查询机制定位含有所需资源的其他PC机后,可以直接与其建立连接并下载所需文件。

    2.2 流媒体直播与点播

          在流媒体直播和点播过程中,人们发现P2P非常适合于流媒体的应用。在流媒体领域,P2P技术也由于其对等传输的特性被广为看好。P2P流媒体技术主要应用于视频直播和视频点播两种数据传输方式,两者之间最大区别在于对等节点之间的数据共享模式。视频直播用户在下载流媒体文件的同时进行数据的播放,它将下载到的流媒体数据直接放入系统内存中,并不对下载的流媒体数据进行保存,这样客户端下载的数据信息并不是存放在硬盘上而是在内存中。而视频点播正好相反,它首先采用一定的文件调度策略将所有的流媒体文件下载到系统硬盘上,当文件下载完毕后再进行播放。由于P2P流媒体的保证,网络视频直播、点播以高清晰的画面、高音质音频和流畅的播放速度给传统互联网用户带来"声色兼备"的强大冲击。

    2.3 分布式科学计算

           Intel将P2P计算定义为“通过系统间的直接交换所达成的计算机资源与信息的共享”,这些资源与服务包括信息交换、处理器时钟、缓存和磁盘空间等。P2P计算允许用户使用网络中集中的处理能力,它可以帮助相关组织进行以前不可能进行的繁重计算工作,譬如利用P2P技术的特性,将计算任务划分到数十万甚至数百万台个人计算机上,用来破解蛋白质或是DNA密码。P2P计算正在得到业内一致的看好,它成功地将许多有趣的分布计算技术重新拉回到人们视线当中。总之,对于任何一个高校校园网络的广大师生来说,P2P计算的好处是拥有更低的成本和更快的处理速度。

     2.4 信息检索

           基于P2P的校园网络搜索引擎使信息检索更具有针对性,搜索更新周期缩短,并且引入了P2P资源共享技术,充分利用以大规模分布形式存在的信息,弥补传统搜索引擎无力深度挖掘信息的弱点。P2P网络的分散性使得基于P2P的信息检索可以挖掘到终端设备上动态存储的海量信息,从而改变了传统搜索引擎只能检索网站上静态页面的现状。

    3、结束语

          佰锐AnyChat针对可不经过服务器中转的音视频应用,采用了P2P通信技术,该技术的核心在于防火墙的穿越。使用P2P通信技术,可以大大的减轻系统服务器的负荷,并成几何倍数的扩大系统的容量,且并不会因为在线用户数太多而导致服务器的网络阻塞。支持UPNP协议,自动搜索网络中的UPNP设备,主动打开端口映射,提高P2P通信效率。总之, P2P网络技术始终不断朝着成熟的方向发展。



    本文转自 fanxiaojun 51CTO博客,原文链接:http://blog.51cto.com/2343338/443289,如需转载请自行联系原作者

    展开全文
  • P2P(Peer to Peer)对等网络

    万次阅读 2018-07-17 22:06:43
    P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方式。在C/S模式中,数据分发采用专门服务器,多个客户端都从此服务器获取数据。 优点是:数据一致性...
  • P2P技术原理 P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方式。在C/S模式中,数据分发采用专门服务器,多个客户端都从此服务器获取数据。这种...
  • 对等网络(P2P)--网络大典

    千次阅读 2004-10-22 08:53:00
    对等网络(P2P)属于网络类型之一,该网络计算机相互之间可以直接通信,而不需要通过中心服务器。对等(或P2P)型计算机网络是通过大量对等节点连接任意网络,这些对等节点承担网络中其它对应节点客户机和...
  • P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方式。在C/S模式中,数据分发采用专门服务器,多个客户端都从此服务器获取数据。 优点是:数据一致性...
  • P2P技术

    2017-04-24 12:31:40
    P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据...
  • P2P技术介绍

    2018-11-20 14:47:51
    P2P技术属于覆盖层网络的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是: 数据的一致性容易控制...
  • P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据...
  • p2p介绍

    2018-07-19 16:55:00
    一、什么是p2p(互联网金融点对点借贷平台) P2P是英文person-to-person(或peer-to-peer)的缩写,意...属于民间小额借贷,借助互联网、移动互联网技术的网络信贷平台及相关理财行为、金融服务。 平台模式为:网...
  • P2P技术原理

    千次阅读 2015-08-08 16:12:44
    P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据...
  • P2P原理与实践

    2019-12-03 20:45:05
    P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方式。在C/S模式中,数据分发采用专门服务器,多个客户端都从此服务器获取数据。 优点是:数据一致性...
  • P2P原理(转)

    2018-10-10 00:40:00
    P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方式。在C/S模式中,数据分发采用专门服务器,多个客户端都从此服务器获取数据。 优点是:数据一致性...
  • 【转载】P2P技术

    2013-08-13 15:48:06
    P2P技术 2011-03-23 15:47:29 ...P2P技术原理 ...什么是对等网络(P2P)技术?P2P技术属于覆盖层网络(Overlay Network)范畴,是相对于客户机/服务器(C/S)模式来说一种网络信息交换方 式。在C/S模式中,
  • P2P网贷平台软件

    2018-01-19 15:33:29
    是一种将小额资金聚集起来借贷给有资金需求人群的一种民间小额借贷模式属于互联网金融(ITFIN)产品的一种。属于民间小额借贷,借助互联网、移动互联网技术的网络信贷平台及相关理财行为、金融服务
  • 是直接面向计算机网络的用户,遵循相应的网络应用协议,为用户提供某个特定的网络服务或功能的一套完整的软件系统 1. 客户机/服务器模式 客户机/服务器模式 在客户端发出请求,服务器等待响应 C/S与B/S的区别 ...
  • 用于金融,比如一些P2P模式;用于游戏,比如近期大火“网赚游戏”。 在游戏市场上,网赚游戏是一类特殊存在,一些人面对它持续霸榜现象忍不住下水尝试;一些人却不认可“它属于游戏”。所以,所谓网赚游戏...
  • 2020-12-12

    2020-12-12 21:37:05
    云计算与大数据理解心得 P2P原理 这次我们来学习P2P的原理。...属于民间小额借贷,借助互联网、移动互联网技术的网络信贷平台及相关理财行为、金融服务P2P概述 所谓P2P,类似与网络中的对等网络结构,p2p即是Pee
  • 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...
  • 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...
  • 防御方式:必须与给你提供网络服务的服务商进行磋商,要求网络服务商更换采用既能把IP跟MAC静态绑定,也能把 MAC地址跟物理接入端口静态绑定,或者做基于接口VLAN交换机,因为幻境网盾所攻击是用户上层网络...
  • 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

属于p2p模式的网络服务是