思维导图:
6.9.1 具有集中目录服务器的P2P工作方式![](https://i-blog.csdnimg.cn/blog_migrate/77ba6e8c4a1dbcf8449dc72df9e72b71.png)
-
引言:
- 简要回顾1章1.3.1节中介绍的P2P应用基础概念。
-
P2P应用的定义:
- 解释P2P(Peer-to-Peer)体系结构:一个网络应用模型,其中大部分或所有节点同时充当客户端和服务器,少有或无固定服务器。
-
P2P应用的范围:
- 举例说明P2P应用的多样性,如文件分发、实时音视频会议、数据库系统及网络服务支持(例如P2P打车软件、P2P理财等)。
-
P2P文件分发的工作原理:
- 解释P2P文件分发不依赖集中式媒体服务器,而是通过用户间直接传输。
- 强调这种方法解决了集中式服务器的瓶颈问题。
-
P2P文件分发的重要性:
- 提到P2P文件分发在互联网流量中占据主导地位,尤其是音频、视频文件、软件和图像文件的分发。
-
Napster案例分析:
- 描述Napster的出现和对MP3格式的推广。
- 说明Napster的工作机制:用户通过目录服务器查找音乐文件,然后通过P2P方式下载。
- 指出Napster的集中式目录服务器的优缺点。
-
总结:
- 强调P2P应用对现代网络技术的重要性及其对传统客户-服务器模型的影响。
- 强调P2P应用对现代网络技术的重要性及其对传统客户-服务器模型的影响。
我的理解:
-
P2P应用的定义:P2P应用是指基于P2P体系结构的网络应用。在这种体系结构中,没有(或很少有)固定的服务器。相反,大部分的数据交换是通过网络中的各个节点(即用户的计算机)直接进行的。
-
P2P应用的范围:P2P应用非常广泛,包括文件分享、实时音视频会议、数据库系统以及各种网络服务,如P2P打车软件、P2P理财等。
-
P2P文件分发的工作原理:
- 在P2P文件分发中,不需要集中式的媒体服务器。所有的文件传输是在普通互联网用户之间进行的。
- 每个用户的计算机可以充当一个“媒体服务器”,向其他用户提供下载的音频或视频文件。
- 这种分散式的方法可以避免集中式服务器的瓶颈问题。
-
P2P文件分发的例子 - Napster:
- Napster 是一个典型的P2P文件分享应用,主要用于音乐文件(如MP3)的分享。
- 用户可以在Napster的目录服务器上查询音乐文件,服务器提供文件所在位置的IP地址。
- Napster的文件传输采用P2P方式,但文件的定位则是集中的(客户-服务器方式)。
- Napster的出现使得MP3成为网络音乐的事实标准。
-
P2P文件分发的优缺点:
- 优点:解决了集中式媒体服务器可能出现的瓶颈问题,可以支持大规模文件的分发。
- 缺点:集中式目录服务器可能成为性能瓶颈,且可靠性较差。此外,Napster等P2P应用在版权方面引起了争议。
总的来说,这一节详细介绍了P2P应用的基本概念、工作原理,以及通过Napster案例说明了P2P文件分发的具体实现和相关问题。
6.9.2 具有全分布式结构的P2P文件共享程序
第二代P2P文件共享程序:Gnutella
- 背景:继第一代P2P文件共享网站Napster关闭后,Gnutella等第二代P2P文件共享程序出现。
- 特点:不使用集中式目录服务器进行查询,而是采用洪泛法在用户间进行查询。
- 洪泛查询:设计为有限范围以减少互联网的查询流量,但限制了查询的准确性。
第三代P2P共享文件程序
- 发展:近年来发展了多种第三代程序,如KaZaA、电骡eMule、比特洪流BT。
- 技术:使用分散定位和分散传输技术。
比特洪流BT
- 开发者:2001年由Brahm Cohen开发。
- 核心概念:
- 洪流:参与文件分发的对等方集合。
- 文件块:文件的数据单元,如256 KB。
- 动态参与:用户可随时加入或退出洪流,可选择继续分享或立即退出。
- 基本机制:
- 追踪器(Tracker):基础设施节点,追踪洪流中的对等方。
- TCP连接:对等方间建立连接以共享文件块。
- 覆盖网络:简化实际网络的模型,更清晰显示对等方之间的关系。
BT的决策机制
- 文件块请求:采用“最稀有优先”技术,优先请求副本最少的文件块。
- 文件块传输:优先传输给当前以最高数据率提供文件块的对等方。每10秒重新计算数据率,每30秒随机向一个对等方发送文件块以激励数据交换。
我的理解:
-
P2P文件共享程序的发展:
- 第一代(如Napster):依赖中心服务器来索引和查找文件。
- 第二代(如Gnutella):去中心化,不再依赖单一的中心服务器,而是使用网络中的所有节点进行文件搜索和共享。这种方法通过“洪泛法”进行查询,即查询请求在网络中广泛传播,但为了控制网络流量,这种传播是有限制的。
- 第三代(如KaZaA, eMule, BitTorrent):进一步发展了分散定位和传输技术,优化了文件共享和下载的效率。
-
比特洪流(BitTorrent,简称BT):
- 核心思想:把参与共享特定文件的所有用户视为一个“洪流”(torrent),这些用户(对等方)共同分享文件的不同部分(文件块)。
- 文件块(Chunk):文件被分割成多个固定大小的部分,这些部分在用户间共享。
- 动态参与:用户可以随时加入或退出这个洪流,即开始或停止共享文件块。
- 追踪器(Tracker):虽然BT是去中心化的,但它使用一个名为追踪器的中心节点来协调洪流中的用户。追踪器帮助新加入的用户找到其他正在共享文件块的用户。
-
BT的决策机制:
- 最稀有优先:对等方优先请求在网络中副本最少的文件块。这有助于确保即使某些用户退出,仍能从其他用户那里获得这些稀有块。
- 数据率优先:对等方优先向当前以最高速率提供数据的用户发送文件块。这鼓励了更高效的资源分享。
理解这些概念的关键在于认识到P2P文件共享的本质——一种分布式的文件共享方法,其中每个用户既是文件的消费者(下载者)也是提供者(上传者)。比特洪流通过一系列精心设计的机制,确保了文件的高效分发,同时鼓励用户之间的合作和资源共享。
6.9.3 P2P文件分发的分析
客户-服务器模式 vs P2P模式
- 场景:N台主机从服务器下载一个长度为F bit的文件。
- 符号:
- F:文件长度(bit)
- uₛ:服务器上传速率(bit/s)
- u、d:主机上传和下载速率(bit/s)
客户-服务器模式
- 计算分发时间 ��Ta:考虑服务器上传速率和主机的下载速率。
- 时间限制:
- 总结:时间取决于服务器的上传速率和最慢主机的下载速率。
P2P模式
- 文件分发时间 ��2�Tp2p:计算较为复杂,因为每台主机在接收文件的同时也向其他主机上传文件。
- 时间限制:
- 总结:在P2P模式下,文件分发的时间取决于服务器的上传速率、最慢主机的下载速率,以及所有主机的上传速率总和。
比较
- P2P优势:当对等方的数量N非常大时,由于所有主机都参与上传,P2P模式在理论上可以显著减少文件分发时间。
- 实例:当所有对等方的上传速率相同,且服务器的上传速率是普通对等方的10倍时,P2P模式的分发时间远小于客户-服务器模式。
学到了什么
-
最小化和最大化问题:在分析文件分发的最短时间时,我们遇到了最小化问题。这是数学中常见的一类问题,即寻找在给定约束下的最小(或最大)值。在本例中,我们考虑了服务器的上传速率和最慢主机的下载速率两个约束条件。
-
界限估计:计算P2P文件分发时间的过程涉及到界限估计。这是一种在不精确计算实际值的情况下确定问题答案上下界的方法。例如,我们知道文件分发的时间不可能小于由服务器上传速率和最慢下载速率决定的时间。这种技巧在解决实际问题时非常有用,特别是在复杂系统中,精确值难以计算时。
-
比较和对比分析:通过比较不同模式(客户-服务器与P2P)下的分发时间,我们可以更好地理解每种模式的效率。这种方法使我们能够在不同的情景或方案中做出明智的选择。
-
系统思维:在分析P2P模式时,我们需要考虑整个系统的所有组成部分(即所有主机的上传和下载速率)。这种系统思维对于理解和解决由多个部分相互作用构成的复杂问题非常重要。
-
近似计算:在处理复杂系统时,我们通常需要使用近似方法来简化问题。例如,当文件F非常大时,我们可以近似地认为P2P模式下文件分发时间的计算结果是准确的。这种技巧在实际应用中非常有用,尤其是在完全精确的解决方案难以实现或不必要的情况下。
-
数学建模:整个分析过程实际上是一个数学建模的过程,即将实际问题转化为数学问题。通过这种方式,我们可以使用数学工具来分析并解决实际问题。
6.9.4 在P2P对等方中搜索对象
P2P文件系统的特点
- 用户数量:非常多,数量动态变化。
- 状态:无序,对等方随时加入或退出。
P2P系统中的资源定位问题
- 核心问题:如何有效地定位对等方及其资源。
- 传统方法:如Gnutella,使用非结构化覆盖网络进行查询洪泛,效率较低。
分布式数据库的构建
- 目标:构建一种分布式数据库,实现有效的资源定位。
- 数据库内容:包含资源名(关键字K)和存放节点的IP地址N。
- 查找过程:在数据库中匹配资源名K,返回对应的节点IP地址N。
分布式散列表(Distributed Hash Table, DHT)
- 概念:由大量对等方共同维护的散列表。
- 作用:将资源名K和节点IP地址N映射为资源名标识符KID和节点标识符NID。
- 散列函数:例如SHA-1,将K和N映射为160位二进制标识符。
- 标识符特点:均匀而稀疏地分布,减少冲突概率。
Chord算法
- 开发者:美国麻省理工学院,2001年提出。
- 工作原理:
- 映射:资源名标识符KID映射到最接近的下一个节点标识符NID。
- Chord环:节点按标识符顺时针排列成环形覆盖网络。
- 查找优化:使用指针表(finger table)加速查找过程,类似于二分查找,大幅减少所需步骤。
P2P网络的挑战和发展
- 维护难度:对等方频繁加入或退出系统,维护分布式数据库的工作量大。
- 当前问题:知识产权、非法内容传播、带宽消耗等。
- 未来方向:重新考虑下一代互联网的演进,平衡网络运营商利益与用户需求。
我的理解:
-
P2P网络:想象一个巨大的市场,这个市场中有成千上万的摊位(对等方),每个摊位都可以随时出现或消失,并且每个摊位都可能持有某些独特的商品(资源)。
-
资源定位问题:在这个庞大而复杂的市场中,如何快速找到你需要的特定商品(例如一本特定的书),就像在一个没有指示牌和地图的迷宫中寻找一个特定的房间。
-
分布式数据库:想象市场里有一个信息板系统,每个摊位都可以在信息板上留下自己拥有的商品信息和摊位位置。这样,购物者只需要查看最近的信息板,就能找到他们想要的商品所在的摊位。
-
分布式散列表(DHT):将这个信息板系统想象成一个高效的分类索引,每个商品(资源)和摊位(节点)都通过一个独特的代码(散列标识符)来标识。这些代码通过一个特殊的算法(散列函数)生成,确保每个商品都能快速地被定位。
-
Chord算法:
- 环形结构:将市场摊位按照他们的代码顺序排成一个圆形(Chord环),每个摊位都知道它旁边的摊位。
- 资源映射:每件商品都被指向离它最近的下一个摊位。就像你有一张包含商品指向最近摊位的地图。
- 查找过程:找商品时,你从任一摊位出发,沿着环形逐个摊位查询,直到找到目标商品。
- 查找优化:每个摊位都有一份特殊的“快速通道”列表(指针表),告诉你如何快速跳跃到其他摊位,类似于在市场中设置的快速通道,可以让你跳过一些摊位,直接到达更接近目标的位置。
-
P2P网络的挑战:
- 维护成本:类似于市场管理员需要不断更新信息板和快速通道,以适应摊位的不断变化。
- 网络问题:就像需要处理市场中的非法商品销售和保持市场秩序,P2P网络也面临着知识产权、非法内容传播等问题。
总结:![](https://i-blog.csdnimg.cn/blog_migrate/05997cf6bea92982301e5ae5f09ca4d5.png)
重点
- P2P网络的基本概念:理解P2P网络的定义、工作原理以及它与传统客户端-服务器模型的区别。
- 文件分发机制:了解P2P网络中文件如何被分发,特别是比特洪流(BitTorrent)等第三代P2P技术的原理。
- 资源定位方法:掌握在P2P网络中定位资源的方法,特别是分布式散列表(DHT)的概念和应用,如Chord算法。
- P2P网络的优势与挑战:理解P2P网络的优势(如分布式处理、负载均衡)和面临的挑战(如资源定位的效率、网络安全、版权问题等)。
难点
- P2P文件分发的数学分析:理解和应用数学原理来分析P2P网络中文件分发的效率,如最小化文件分发时间的计算。
- 分布式散列表(DHT)的工作原理:理解DHT如何在无序且动态变化的环境中高效地定位资源,包括散列函数的应用和标识符的映射过程。
- Chord算法的细节:深入理解Chord算法的工作机制,包括环形网络结构、资源映射规则和查找优化方法。
易错点
- 混淆不同代的P2P技术:例如,将Napster(第一代)和BitTorrent(第三代)的特点混淆。
- 误解P2P资源定位机制:可能会误解散列函数在资源定位中的作用,或者对DHT和Chord算法的细节有误解。
- 忽视P2P网络的挑战:容易忽略P2P网络在实际应用中面临的问题,如网络安全、版权保护和带宽管理等。
- 过度简化P2P网络的优势:可能会过分简化P2P网络的优势,没有充分考虑在特定情况下的局限性。