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的网络具有健壮性、实时性、可靠性、负载平衡等优势。
在Gnutella网络中存在以下问题:
冗余消息多,对带宽的消耗存在一定的浪费。Gnutella网络协议采用泛洪式(Flooding)消息传播机制,这种消息传播机制产生了呈指数级增长的冗余消息。据统计,P2P软件白天占Internet上运行带宽的40%~70%,晚上有时能达到80%。
搜索效率低,可扩展性差。Gnutella网络的搜索协议将所有资源与节点统一对待,没有考虑节点的性能差异,也没有利用查询成功的历史经验,使得搜索效率低下。
KaZaA协议中节点大体上也是无结构连接的。但是在KaZaA协议中存在一种“超级节点”。这种“超级节点”其实是来源于各个普通的客户端节点,但它们一般具有计算能力强、接入带宽大、在线时间稳定等特点。在KaZaA协议中,超级节点承担着部分服务器的任务,如管理部分普通节点,负责搜索消息的转发等。每一个节点上线后会寻找一个超级节点挂靠,并和原先挂靠在该超级节点下的其他普通节点随机相连,组成一个小的无结构网络。普通节点的共享文件索引汇报给所挂靠的超级节点。因而,KaZaA网络大体上可以看作是两层的无结构网络,上层是超级节点组成的无结构网络;下层是普通节点组成的多个无结构网络,按所挂靠的超级节点分成多个簇。当普通节点发起文件搜索请求时,将请求消息发给所挂靠的超级节点,超级节点从自己存储的共享文件索引信息中查找区域内符合条件的文件,同时将搜索请求转发给若干个其他超级节点,由它们返回其区域内搜索结果。如果需要,这个转发过程可以执行多步以获得更大范围内的搜索结果。这样的混合式结构对异构的终端节点“分而治之”,可以充分利用一些能力较强的终端节点来担任“小”服务器的角色,可谓是“人尽其才,物尽其用”。
除了这些无结构的P2P文件共享协议之外,几乎所有的DHT网络都可以并已经用来实现文件共享的应用,如Chord、Pastry、KAD、CAN等应用。
(3)流媒体直播
曾经人们以为P2P做文件共享最合适,但现在大家发现P2P模式是如此适合于流媒体直播,以至于研究热点在很短的时间内迅速转移到P2P的流媒体上来。中国最早的P2P流媒体直播软件应该算香港科技大学计算机系研究的Coolstreaming[5]、华中科技大学集群与网格计算湖北省实验室研究的AnySee[9]以及清华大学的Gridmedia等系统。
Coolstreaming是一款基于网状无结构网络拓扑的流媒体直播软件,中文名叫做“酷流”。在Coolstreaming中,每个节点通过登录服务器(BS)进入网络,并得到一些邻居列表。每个节点和邻居之间共享媒体数据。Coolstreaming中节点共享媒体数据是基于一种称作“数据驱动”的机制。首先,对于节点缓冲区内所拥有的数据,使用一种“缓冲映射表”(Buffer Map)来进行标记:对于每一秒的媒体内容,如果节点已经从节目源或邻居处获取,则标记该秒数据为“1”,否则标记为“0”。这样,一个80秒长度的缓冲区就对应一个80位长度的缓冲映射表。其次,节点之间以“心跳”(Heartbeat)方式定期交换各自的缓冲映射表,通过比对得到自己没有而邻居拥有的数据位,然后根据数据调度算法,选择合适的邻居,请求得到相应的数据。Coolstreaming采取全网状结构组织网络中的节点,每个节点连接20个左右的邻居,在定期交换缓冲映射表的同时,还要交换自己的邻居列表。这样,在一个邻居离开时,可以从它最近提供的邻居列表中选择一个连接数没有达到上限的邻居作为“替补”邻居进行连接。最早期的Coolstreaming是采取随机选取邻居的策略,即从BS上随机返回一些当前在线的节点列表,然后随机从中选择一些节点进行连接,在选择“替补”邻居时也是随机的。这样做同时又可以达到一定程度的负载平衡效果,因为每个节点连接的邻居数基本是均匀的。但是这样做的缺点也是明显的,两个距离很远、连接很差的节点也可能被调度成为邻居,大大影响的系统的服务质量。
华中科技大学集群与网格计算湖北省重点实验室是中国最早研究P2P流媒体直播的小组之一,它所研发的AnySee软件期望能够使得用户在网上任何时候任何地点都能观看多媒体直播节目。
AnySee的第一个版本基于树状结构:节目源是一个多播树的根节点,之后的节点被调度为其“儿子”或子树。每个节点向其父节点索要数据,并将数据提供给多个子节点。这样的结构可以使得节点快速加入到网络中,并且可以根据IP邻近原则构建起一棵IP多播树,使得节点加入位置都是和自己IP邻近的节点,从而优化服务质量。之后AnySee推出第二个版本,结合了原有的树状结构和流行的网状结构,使得“控制数据走树,媒体数据走网”,既能帮助节点快速定位到加入点,又能实现一定程度的负载均衡,并缓解了原有纯树状结构中底层节点和顶层节点之间播放时差较大的问题。最近的AnySee版本已经取消了树的结构,演化成了优化的网状结构(如图2所示),即每个节点维护一定数量的邻居成员,并从中选出最合适的“伙伴”节点与之交换数据。伙伴的数量既有上限又有下限,在不满足下限时,节点会不断寻找新的合适节点加入伙伴列表;在达到下限时,节点停止主动寻找伙伴的过程,但可以接受其他节点将其加入伙伴列表的请求;在达到上限时,节点不再和新的节点建立伙伴关系。
除了学术界对P2P流媒体直播的研究外,中国还涌现了很多成功的P2P流媒体直播商业产品,如PPLive、PPStream、沸点和TVAnts等,其中以PPLive最为有名。PPLive目前拥有数百个频道,在2006年“超级女声”决赛期间,频道观看人数达到十万人,可以说是把P2P发挥到了极限。此外,国外也有不少对P2P流媒体直播的研究,如SplitStream[10]等。
(4)流媒体点播
由于观看直播节目时用户不能选择观看指定片段,所以在人们热烈研究P2P流媒体直播时,已有人开始将目光转向P2P流媒体点播服务。目前成功推出P2P流媒体点播的机构还不多,典型的有GridCast[11]系统、PPStream点播系统。GridCast也是一款由华中科技大学集群与网格计算湖北省重点实验室于2005年12月份成功研发并投入使用的对等视频点播系统,具有支持多人共享点播片段、跟踪(Tracker)服务器用户引导、环状结构内容组织等特点。由于一个点播频道的人数往往不会太多,所以在用户进行视频录放(VCR) *** 作时(即前后拖动播放点、暂停/继续播放等 *** 作),能否快速将用户定位到观看该点节目的其他用户处就成了P2P点播技术的关键。为了实现快速定位,GridCast中采取了一种同心圆环的媒体内容组织结构。在每一个节目频道里,媒体内容按指数递增的区间进行划分,例如一个一个半小时的**节目,可划分成[0, 5]、(5, 15]、(15, 35]、(35, 75]和(75, END=90]几段,其单位为分钟。每个节点记录几个正在观看各个段之间内容的节点。这样,在和AnySee类似的网状结构中,可以定期交换这种分段记录,从而,在某个用户拖动观看点时,可以快速定位到相应段的记录节点处,并从这些节点当时所观看的区间内得到大量备用记录以请求该区间媒体数据。此外,GridCast还根据用户习惯对数据调度策略进行优化。
(5)IP层语音通信
IP层语音通信(VoIP)是一种全新的网络电话通信业务,它和传统的PSTN电话业务相比有着扩展性好、部署方便、价格低廉等明显的优点。在全球范围内的VoIP应用中,由于通信各方可能处于不同的网络状况下,所以采取少数几个服务器来进行话音包中转不仅存在压力过大的问题,还可能无法为指定通信双方提供满意的通话质量保证。所以采取P2P技术动态自适应地根据通信双方网络进行链路控制与消息转发是可行的解决方案。
目前风靡全球的Skype[12]即是一款典型的P2P VoIP软件。Skype由于能够提供清晰的语音质量和免费的服务,使用起来又方便快捷,所以吸引了全球数千万的用户,每天在线用户达500万人,并且注册用户数每天增加15万。基本上,Skype采取类似KaZaA的拓扑结构,在网络中选取一些超级节点。在通信双方直连效果不好时,一些合适的超级节点则担当起其中转节点的角色,为通信双方创建中转连接,并转发相应的语音通信包。
(6)网络游戏平台
大型网络在线游戏和网络对战游戏是不少“网虫”的至爱。但由于服务器能力有限,大型网络在线游戏往往需要限制场景人数或者不断增加服务器,而网络对战游戏也必须局限在局域网内进行或者依赖独立的服务器端程序及机器实现Internet上的电子竞技。目前,已有研究人员将P2P技术引入网络游戏和网络游戏支撑平台中。
目前较为成功的P2P游戏平台是华中科技大学集群与网格计算湖北省重点实验室推出的PKTown[13]系统。PKTown系统是一个支持多种网络对战游戏的P2P平台。P2P网络对战游戏平台的难点在于将严格延时约束的节点聚集在一起,这由对战游戏本身要求所决定:延时是影响对战游戏用户体验的关键因素。在众多在线用户中,如何将新加入用户调度到周围都是延时邻近的环境中去呢?PKTown也是采取GridCast中出现过的指数增长的同心圆环方式,很好地解决了这个问题。
PKTown不需要改变游戏本身的代码,而是将用户和Internet邻居组建成一个虚拟局域网,将游戏发出的通信包截获后负载上虚拟局域网的地址,转发出去,游戏进程接收到之后认为是来自同一局域网的游戏包,则可以正常进行游戏。目前PKTown支持魔兽争霸、星际争霸和反恐精英几款游戏,已经在高校范围内进行公测,并成功举办华中科技大学第三届Race War游戏大赛,用户反应良好。
3 结束语
自P2P技术从1999年出现之后,现在已经发展繁荣起来。前文中提到的很多技术都已经趋近成熟,如拓扑构建和内容分发等相关技术。由于P2P架构灵活,适用面广阔,所以将P2P应用到新领域的现象层出不穷,P2P的软件产品也如雨后春笋一般爆炸性增长。
通过本文的描述可以看出,P2P蹬基本原理是容易实现的,人们的研究方向也由基础架构的构建和维护及优化算法等桎梏中摆脱出来,开始深入到P2P技术的根本性问题中去。最新的研究成果表明,不少研究人员已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全方面的研究等方面。相信随着对P2P技术研究的不断深入,人们能够对P2P计算有一个更深入的认识并解决目前P2P领域中大部分科学问题。可以预见,P2P所带来的技术创新和应用创新还将继续。
p2p
P2P是peer-to-peer的缩写,peer在英语里有"(地位、能力等)同等者"、"同事"和"伙伴"等意义。这样一来,P2P也就可以理解为"伙伴对伙伴"的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。
��简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返"非中心化",并把权力交还给用户。 P2P看起来似乎很新,但是正如B2C、B2B是将现实世界中很平常的东西移植到互联网上一样,P2P并不是什么新东西。在现实生活中我们每天都按照P2P模式面对面地或者通过电话交流和沟通。
��即使从网络看,P2P也不是新概念,P2P是互联网整体架构的基础。互联网最基本的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和Web服务器,邮件客户端和邮件服务器。但是,对于服务器来说,它们之间仍然是对等联网的。以email为例,互联网上并没有一个巨大的、唯一的邮件服务器来处理所有的email,而是对等联网的邮件服务器相互协作把email传送到相应的服务器上去。另外用户之间email则一直对等的联络渠道。
��事实上,网络上现有的许多服务可以归入P2P的行列。即时讯息系统譬如ICQ、AOL Instant Messenger、Yahoo Pager、微软的MSN Messenger以及国内的QQ是最流行的P2P应用。它们允许用户互相沟通和交换信息、交换文件。用户之间的信息交流不是直接的,需要有位于中心的服务器来协调。但这些系统并没有诸如搜索这种对于大量信息共享非常重要的功能,这个特征的缺乏可能正为什么即时讯息出现很久但是并没有能够产生如Napster这样的影响的原因之一。
下面试图用三句话来揭示P2P的影响:
对等联网:是只读的网络的终结(Peer-to-peer is the end of the read-only Web)
对等联网:使你重新参与互联网(Peer-to-peer allows you to participate in the Internet again)
对等联网:使网络远离电视(Peer-to-peer steering the Internet away from TV)如上文所言,P2P不是一个新思想,从某些角度看它甚至是整个最初创建互联网的最基本的思想。我们不妨花时间作一点回顾。
一、横空出世---P2P 身为何物?
互联网能够发展至今,根本原因在于其布建的任何一根血脉都是为人与人之间的交流而设置的。而现在能够引起互联网震动的,无非也只有交流方式的变革本身。 如今,在基于网络的各种技术充斥于我们周围之时,恐怕只有很少人不知道P2P的概念了,即便您没有深入探究,但您每日在互联网间进行的活动几乎没有不沾P2P技术的。一个简单的例子,在你使用QQ尽情聊天之时,实际上就享受着P2P技术给你带来的快感与兴奋。P2P技术究竟意味着什么呢?关于P2P技术的两种解释或许可以说明这个问题。
一种解释是,P2P即peer-to-peer。而peer在英语里是“(地位、能力等)同等者”、“同事”和“伙伴”的意思。这样一来,P2P也就可以理解为“伙伴对伙伴”的意思,或称为对等联网,我甚至觉得解释成为person-to-person更好一些。反正交流也都是人的交流。
而另一种解释是,P2P就是一种思想,有着改变整个互联网基础的潜能的思想。客观讲,单从技术角度而言,P2P并未激发出任何重大的创新,而更多的是改变了人们对因特网的理解与认识。正是由于这个原因,IBM早就宣称P2P不是一个技术概念,而是一个社会和经济现象。
不管是技术还是思想,P2P是直接将人们联系了起来,让人们通过互联网直接交流。它使得网络上的沟通变得更容易、更直接,真正地消除中间环节。这听起来仿佛全新的概念,但其实并不是什么新鲜事。我们每天见面,或者通过电话直接交流都是P2P最直接的例子。而这个时候你有没有从电话的发展的历史中隐约感觉到,P2P必将在互联网时代有着突飞猛进的发展,因为他可以改变现在的Internet以大网站为中心的状态、重返“非中心化”,并把权力交还给用户,让我们的语言影像以最直接的方式传递到对方身边。它最符合互联网络设计者的初衷,给了人们一个完全自主的超级网络资源库。现在在业界,比较认同的P2P计算应用系统的目标主要有以下几类:
1信息、服务的共享与管理
2协作
3构建充当基层架构的互联系统
二、生机勃勃--窥探P2P的发展历程
如果说涉及此种特点便称之为信息技术中的P2P的诞生,那么它的历史这可就远了。P2P 本身的基本技术的存在时间和我们曾经熟悉的USENET、FidoNet 这两种非常成功的分布式对等网络技术几乎是一同的,甚至更长些。翻翻资料就可以知道,USENET 产生于 1979 年,FidoNet创建1984年,它们都是一个分散、分布的信息交换系统。在最初的 P2P 应用出现时,许多使用该技术的人们甚至不会使用计算机。然而正是这种孕育着思想的网络技术为P2P的出现搭建了温床。
P2P正式步入发展的历史可以追溯到1997年7月,那几乎就是互联网在中国起步的阶段。在一段介绍此时P2P技术的时间表中这样写着:“Hotline Communications is founded, giving consumers software that lets them offer files for download from their own computers”(1997年7月,Hotline Communications公司成立,并且研制了一种可以使其用户从别人电脑中直接下载东西的软件)
或许有人还记得,早在1998年,美国东北波士顿大学的一年级新生、18岁的肖恩范宁为了能够解决他的室友的一个问题——如何在网上找到音乐而编写的一个简单的程序,这个程序能够搜索音乐文件并提供检索,把所有的音乐文件地址存放在一个集中的服务器中,这样使用者就能够方便地过滤上百的地址而找到自己需要的MP3文件。到了1999年,令他们没有想到的是,这个叫做Napster的程序成为了人们争相转告的“杀手程序”——它令无数散布在互联网上的音乐爱好者美梦成真,无数人在一夜之内开始使用Napster。在最高峰时Napster网络有8000万的注册用户,这是一个让其他所有网络望尘莫及的数字。这大概可以作为P2P软件成功进入人们生活的一个标志。
时间表中这样记录着这一段历史:
January 1999:
Shawn Fanning, 18, creates the Napster application and service while a freshman at Northeastern University
(1999年1月,18岁的美国东北波士顿大学的一年级新生肖恩范宁开始了Napster程序的服务)
May 1999:
Napster Inc is founded
(1999年5月,Napster公司宣告成立)
之所以我们注重开端,是因为这是一个非同意义上的起始,也正是从这天起,P2P开始了它曲折但极富生命力的发展。
到了2000年,P2P技术的发展就得使用月甚至日来记载了。直到现在使用P2P技术的软件比比皆是,人们也在不知不觉中感受到了P2P作为高科技发展载体的快乐。平常我们使用的QQ 、MSN就不提了,其他软件更是铺天盖地,让人目不暇接。简单罗列一下,以飨读者。
软件名称 简介
eMule eMule 是以 eDonkey2000 网络为基础的新型 P2P 文件分享工具。
OPENEXT 一款P2P软件。通过它,Internet用户之间可以直接建立点对点的连接。
迅雷Thunder “光速般”的智能下载软件——迅雷(thunder220)。迅雷它拥有比目前用户常用的下载软件快7—10倍的下载速度。
易载ezpeer 易载ezPeer简体中文版,免费注册使用!ezPeer 是一个革命性的P2P(点对点)文件共享软件。
Kuro M3 Kuro-全球第一款全中文界面的火爆MP3超强抓歌软件!
酷狗(KuGoo) “KuGoo”是酷狗的简称,是基于中文平台专业的P2P音乐及文件传输软件。通过KuGoo,用户可以方便、快捷、安全地实现国内最大的音乐搜索查找。
APIA APIA 是一个正在发展中的 P2P 网络系统,如同目前熟知的 eDonkey、Gnutella 与 Kazaa 等软件。
iMesh 能够让你设定分享文件的类型,音乐、影片或其他文件;也能够让你搜寻并且下载你想要的文件。
BearShare BearShare 是一个非常好的文件分享软件,它让你、你的朋友、在世界上的每一个人都可以分享文件。
三、珠联璧合---P2P和BT
说到P2P,就不能不提BT,这个被人戏称为“变态”的词几乎在大多数人感觉中与P2P成了对等的一组概念,而它也将P2P技术发展到了近乎完美的地步。实际上BitTorrent(中文全称比特流,简称BT)原先是指是一个多点下载的P2P软件。它不象FTP那样只有一个发送源,BT有多个发送点,当你在下载时,同时也在上传,使大家都处在同步传送的状态。应该说,BT是当今P2P最为成功的一个应用。
如果解释一下的话,BT首先在上传者端把一个文件分成了多个部分,客户端甲在服务器随机下载了第N部分,客户端乙在服务器随机下载了第M部分。这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的第M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的第N部分。
有一句话可以作为BT最为形象的解释就是:“我为人人,人人为我”。而最初听到此概念时,有人对我说,别用BT,会坏你的硬盘的!大概指的就是前一句。现在看来,没有贡献怎么会有获取?这大概最可以概括BT下载传输的精髓。工具软件BTJoy,将这一技术以软件的形式完美起来,这个诞生仅有一年的软件已经迅速热遍了整个网络——对于BT下载的爱好者来说,120G的硬盘都可以被迅速塞满!我的同学在不长的时间里竟然用他的刻录机完成了一百来部的电视剧的保存,拿他的话来说,可以开一个小店面了!
四、风生水起---P2P是盗版者最好的温床?
在我们尽在说P2P的好时,也不得不想到,就如同历史总是在曲折中前进,任何新事物的发展总不会是一帆风顺的。我们来看下面的日程表:
1999 年 5 月,由范宁和帕克共同创办的文件共享社区网站—Napster正式成立,他们面临的麻烦就由此而起。
12 月 7 日,美国唱片业协会(RIAA)代表环宇音乐、索尼音乐、华纳音乐、百代唱片、BMG等七大唱片公司以违反版权保护法为由把Napster公司推向法庭。他们称Napster向网民提供MP3文件共享软件侵犯了音乐版权,要求法院关闭该公司并赔偿损失1亿美元。
2000 年 4 月 13 日,重金属乐队Metallica起诉 Napster,称其侵犯了自己的版权,并涉嫌诈骗。
6 月 12 日,美国唱片协会(RIAA)和美国音乐出版协会(NMPA)向加利福尼亚州北地区联邦地方法院起诉Napster公司,请求法院禁止在社会上流通Napster公司的MP3文件交换软件“Napster”。
7 月 11 日,参议院就围绕Napster展开的诉讼召开听证会,无果而终。一些议员敦促国会立法,以澄清Napster公司是否违反了知识产权法;而支持Napster一方的人却认为国会不应该现在介入双方的争端,以免影响新技术的发展。
7 月 26 日,Patel同意美国RIAA的要求,作出初步判决,命令Napster立即停止服务。
2001 年 2 月 12 日,美国第九巡回上诉庭作出决定,Napster必须终止其免费互联网服务,并不再向音乐迷提供共享版权保护音乐的服务。
3 月 6 日,美国地区法官Marilyn Hall Patel做出判决, 责令Napster在五个工作日内删除所有存在争议的歌曲。
……
就在今天,就在此时,争议仍然不绝于耳。国外有关于P2P技术的纠纷一发而不可收拾,这种全新的极富生命力的传输方式从一诞生就和音乐,和版权联系在一起。为什么会引起音乐制作商们这么大恐慌?显然是其前所未有的传输速度挑起了他们的不安。在他们极力拦截还没有来得及开始的时候,一首歌曲便以迅雷不及掩耳之势传遍了整个互联网,而更加确切的说应该是全球,这显然是传统的盗版方式所不能比拟的。
五、风景这边独好—P2P在中国
同样,在传统的方法不能奏效的情况下,出版商们便只有从源头上遏制了。不知道国外关于此的争闹还会继续多久,然而在中国却又是另一种风景。众所周知,现阶段中国的版权保护制度和国外还有实质上的差距,这实际上使P2P技术的运用在相当长的一段时间内可以规避版权问题的困扰。按照国内我们的理解,P2P软件提供的只是一个资源共享平台,并不需要对其中传播的内容负主要责任,只要适当地监督引导当然可以大胆运作。从这方面来说,国内的P2P软件厂商处境要比国外的同行幸福很多,路已经有前人开好,又不必像国外的先行者如Napster一样面临官司的压力。而我们面对现状,一个形象的比喻是:你愿意挥汗如雨在天桥淘碟,还是愿意轻松候意在家享受宽带视频下载 网络传输这种传播方式迟早有一天会取代传统的以磁带、光盘为载体的影视音乐发行渠道,从而成为人们获取影音资源的主要渠道,这似乎已经成了一个不争的事实。看看国外已经进行了多少年的争端,能不能给我们一些启示。在中国这样一个走进任何一家音像店,你都可以用低廉的价格获取几乎与正版没有任何区别的音像制品的情况下,利用新技术的无穷魅力与优势建立一个全新的发行渠道,打破以往那种发行模式才有可能避免切肤之痛。或许,国内的P2P行业有可能比国外的同行更有优势率先实现成熟的商业模式。
一、p2p是什么意思
p2p,即“点对点”(peer-to-peer)的简称,是一种个体与个体之间的直接交流模式,可以在网络上实现资源的共享和共同使用。它可以将资源分布在网络中的每一台计算机,每台计算机可以同时作为客户端和服务器。
二、p2p的优势
P2P技术的优势主要体现在以下几个方面:
1节省资源:p2p技术可以让资源分布在网络中的每一台计算机,从而减轻服务器的压力,节省网络资源,使得资源的利用率更高。
2实现快速的信息传输:p2p网络的结构紧凑,可以让信息在网络中传输得更快,更有效。
3提高了网络的安全性:p2p网络可以让节点之间相互信任,只有在双方都认可的情况下才能进行信息的传输,因此可以有效地防止网络攻击。
三、p2p的应用
P2P技术在当今网络应用中发挥着重要的作用,它主要应用于以下几个领域:
1视频会议:p2p技术可以让视频会议的参与者实时共享和交流信息,从而提高会议的效率。
2网络游戏:p2p技术可以让游戏玩家之间实时共享和交流信息,从而提高游戏的社交性和真实性。
3文件共享:p2p技术可以让用户之间实时共享文件,从而提高文件的传输效率。
四、p2p的缺点
P2P技术也有一些缺点:
1技术成本高:p2p技术的实现需要高昂的技术成本,因此很多小型企业都无法实现。
2安全性低:p2p网络的安全性取决于网络中的每一台计算机,一旦其中一台计算机受到攻击,整个网络都将受到影响。
3流量消耗大:p2p网络的流量消耗大,容易造成网络负载过重,从而影响网络的性能。
五、p2p技术的发展
P2P技术在近年来发展迅速,其应用越来越广泛。它不仅可以用于文件共享,还可以用于视频会议、网络游戏等。同时,随着技术的不断发展,p2p技术也将不断完善,更加安全、高效。
六、总结
P2P是一种个体与个体之间的直接交流模式,它可以将资源分布在网络中的每一台计算机,可以让节点之间相互信任,只有在双方都认可的情况下才能进行信息的传输,从而节省网络资源,提高了网络的安全性,提高了信息传输的效率。P2P技术已经发展成为当今网络应用中不可或缺的一部分,它将继续发展,变得更加安全、高效。
当我们在做一些跟网络游戏相关的机器学习任务的时候,有时需要对整个游戏系统的运行机制有所了解才能更好的应对,对于网游而言,首当其冲的机制便是同步了。当然,大部分的机器学习从业者是不会懂游戏开发的,更不会不懂同步机制,此文我将基于我个人的一些研究和理解对网游中的同步机制做一个简单的介绍,以便大家更加顺利的开展游戏相关的机器学习任务。
与单机游戏不同,网络游戏有很多人通过远程的方式参与游戏,不管是服务器还是玩家,用的都是自己独立的设备,也就是说所有的客户端和服务器都是各自独立的游戏世界,要让游戏玩下去就得保证所有的游戏世界都是一致的,于是便有了 同步 。
在理想的情况下,所有人 *** 作的游戏世界,在同一时刻应该是完全步调一致的,但由于网络延迟以及其他不同设备环境的差异,完全一致时不可能的,而 同步 的目的是希望尽可能的一致,而对一致性的要求,不同的游戏类型也会有不同的要求。
通常帧同步和状态同步是这样区分的:
当然这两种方式并非是非此即彼的,在一些复杂的网络游戏中,混用两种方式也是比较常见的。
尽管为了游戏体验,游戏客户端可能会做很多体验上的改进 *** 作,跟我下面讲的并不会完全一致,但归根揭底,帧同步和状态同步必然会遵循上述几点,在设计算法时无需在意那些为了优化体验的细节。
以下是一些具有代表性游戏的同步方式:
帧同步是比较容易理解的,所有的客户端都是一个完整独立的系统,并且我们指导游戏中的随机性均是伪随机,在seed确定的情况下,每个系统的状态的改变只取决于游戏的输入,也就是说我们通过服务器来转发所有玩家的 *** 作输入客户端游戏系统,那么就能保障所有的客户端都是同步的。
比如某个时刻,玩家0做了 *** 作x, 整个同步过程如下:
显而易见的,因为只同步了用户的 *** 作,这个数据传输量其实是很少的,所以很省流量,除非玩家特别多
对于绝大多数的状态同步游戏,它的逻辑计算完全放在服务器上,因此也十分好理解。客户端只是相当于一个表现层,用来展示服务器发送过来的数据。就像我们打开一个网页,网页上的数据都是从服务器发过来的,因此我们本地是没办法作弊的,除非黑了服务器,因此这种状态同步的游戏基本上是没有外挂的。
但是有一种特殊的情况,就是FPS类型的游戏,如果靠服务器来运算,整个延迟下来就没法正常玩了因此它的战斗逻辑会在客户端,而只向服务器汇报结果,因此类似吃鸡的这种游戏会有很多的外挂。
对于战斗逻辑在服务器的状态同步游戏,它的安全性是十分高的,因为想作弊就得黑入服务器,这个难度可想而知。但是FPS类型游戏部分战斗逻辑在客户端,这个会好被外挂修改,这也是FPS游戏外挂多难以根治的主要原因。
而帧同步的游戏整个计算逻辑在客户端,因此,开挂者因为可以获得全系统的信息,于是就可以很容易做开图之类的外挂。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)