p2p小结(一):基本

因开发需要,最近对P2P技术进行了研究,总结如下:

基本概念

p2p是peer to peer(对等网络或对等技术)的简称,在p2p网络中的各个节点被称为peer(对等体)。简单地说,p2p技术是一种用于不同网络节点之间、不经过中继设备而直接交换数据或服务的技术。在p2p网络中,每个节点的地位都是相同的,具备客户端和服务器的双重特性,可以同时作为服务的使用者和服务的提供者。

p2p并非生事物,其理念自互联网诞生以来就存在了,它是因特网整体架构的基础。在因特网最基本的协议TCP/IP中并没有客户机和服务器的概念,所有的节点设备都是通信平等的一端,同时具有服务器和客户机的功能。然而,受早期计算机性能、资源等以后因素的限制,大多数连接到因特网上的普通用户并没有能力提供网络服务,从而逐步形成了以少数服务器为中心的客户机/服务器架构,也就是传统的c/s架构。

由于c/s架构对客户机的资源要求非常少,因而可以使用户以非常低廉的成本方便地连接到因特网,享受服务端带来的服务,这种c/s架构推动了因特网的迅速普及。

但是,随着技术的不断发展,网络环境的改善及软硬件系统性能的不断提高,加之人们对互联网应用的需求日益增加,导致p2p技术被重新运用到了互联网环境中。

总之,p2p方式的通信是计算机网络的最初构想,只是由于当时现实条件的限制,而被迫大量使用了c/s架构,现在,已经具备了实现p2p的环境,p2p才得以迅速的发展。

c/s网络

  • 以服务器为中心

  • 单点故障隐患

  • 服务器是网络的瓶颈,其性能将影响网络整体性能

p2p网络

  • 高可扩展性:p2p网络中的节点是完全分布式的,没有中心节点,不存在单点性能瓶颈。节点可以随时加入、退出,整个过程平滑进行,网络可以自由伸缩

  • 健壮性:p2p网络中各服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其他部分的影响很小,p2p结构天生就具备了耐攻击、高容错的优点

  • 高性价比:对于由用户节点组成的p2p网络来说,可以有效地利用互联网中散布的大量普通用户节点的空闲资源,不需要部署服务器或需要的服务器很少。对于由服务器组成的p2p网络来说,采用p2p这种分布式架构后,可以使用一群高性价比的普通服务器来取代价格及其昂贵的超级服务器

  • 流量均衡:p2p网络环境下,硬件资源和数据内容被分布在多个节点,而p2p节点可以分布在网络各个角落,可以很好地实现整个网络的流量均衡

  • 自组织、低部署维护成本:p2p网络环境下,一般没有中心管理者,p2p网络采用自动计算技术,以实现网络的自组织、自配置、自愈合等特性,从而大大降低了对人为干涉的需要

p2p和c/s网络结构各有特点,在c/s网络中,服务器能有效控制客户机的行为,在并发用户量不大的时候能提供高效的信息索引、下载等服务,但是,当信息量增加,许多的用户并发下载时,服务器就成了瓶颈,效率就会降低。而p2p网络的情况则与之相反,用户量的增加反而会消除服务器瓶颈,但在用户规模不大的情况下并不能体现出资源分布的优势。p2p与c/s适用于不同的网络场景,两种结构是并存的关系。

p2p技术的相关应用

  • 文件共享:用户不需要通过中心服务器,直接与其他对等节点实现下载/上传文件,代表产品:eMule、BT、各种音乐盒(kugou、kuwo、Kooting)。文件共享常采用p2p和c/s混合的模型,即p2sp(peer to server or peer)

  • 即时通信:利用p2p技术实现两个或多个用户之间的文字、话音通信或文件交流,代表产品:QQ、MSN、Skype

  • 数据存储:利用p2p技术将数据分布式存储在用户终端,而不是集中存放在专用的服务器上,代表产品有:CFS、PAST、OceanStore

  • 流媒体:利用p2p技术实现高质量的音频/视频点播、直播等流媒体业务,代表产品有:pplive、ppstream

  • 网络游戏:利用类似Napster的集中式p2p结构实现双人或多人的网络游戏对战,代表产品:《星级争霸》

  • 协同计算:利用互联计算机的CPU空闲时间进行协同计算,完成超大计算机的工作(如空间探测、分子生物计算等),代表产品:Netbatch

  • 协同工作:利用p2p技术创建一个安全的企业级协同工作平台,使企业员工通过因特网协同工作,代表产品:Groove


Next-p2p小结(二):NAT