互联网简史/第6章:点对点
在提到计算机网络中的点对点 (P2P)时,指的是计算机通过互联网互相连接形成的网络和关系。一个“对等点”指的是能够在该网络上直接与其他计算机交互的计算机,无需中央服务器。这要求 P2P 网络上的对等点 (计算机) 同时充当服务器和客户端。P2P 网络不只用于文件共享,但这是该技术最主要的应用。
一台计算机加入点对点网络只需要满足两个条件:网络连接和 P2P 软件。在文件共享设置中,一个对等点只需要连接另一个对等点,用户就可以搜索该对等点共享的文件。使用 P2P 网络的常见 P2P 软件程序有 Bittorent、Limewire、Kazaa、Bearshare 以及许多类似的软件。
P2P 是分布式系统的子领域,主要关注文件分发和索引,但不局限于此。P2P 网络是通过在不同计算机上使用相同的软件创建的。这些软件相互通信,形成 P2P 网络,以完成完成分布式任务所需的处理。
一些较新的 P2P 实现使用抽象的覆盖网络,软件在应用层之上构建,在本地或物理网络拓扑之上运行。P2P 网络通过遵循特定的标准和算法进行组织,从而形成特定的拓扑和特性。
P2P 架构依赖于在每台计算机上放置网络服务器和网络客户端,创建对等点。这将允许用户从运行该软件 (或兼容实现) 的其他计算机访问服务,并宣布本地服务。P2P 架构实际上比客户端-服务器架构更复杂。由于没有中央协调器,因此需要实现引导方案,以便在高度动态的网络中,每个对等点都能知道其他对等点的网络地址,从而参与 P2P 网络。
根据节点的连接方式,P2P 可以分为非结构化 P2P 和结构化 P2P。非结构化 P2P 不会对网络施加任何结构。非结构化 P2P 系统没有绝对的中央系统。
然后可以分为三种类型
- 纯点对点,包含一个路由层,没有具有任何特殊基础设施功能的首选节点。
- 混合点对点,通常称为超级节点。它允许这种基础设施节点存在。
- 集中式点对点用于索引功能和引导整个系统。它与结构化架构类似,但对等点之间的连接不受任何算法的决定。
结构化 P2P 包含协议,以确保任何节点都能高效地路由到搜索具有所需文件的对等点,即使该文件难以找到。结构化 P2P 的常见类型是DHT (分布式哈希表),它使用哈希来将每个对等点的所有权分配给特定的对等点。
P2P 在多个对等点 (计算机) 协同工作且没有固定中央服务器 (网络依赖于其存在的服务器,在混合模式中可以有多个服务器) 的网络上运行。
如何在没有中央服务器的情况下让数百万个对等点相互通信/协作/提供服务?
1. 多台计算机都连接到互联网,并希望相互协作和通信。但是,如果它们彼此不认识,也没有中央服务器可以进行通信,那么它们需要某种机制来找到彼此。
2. 所有对等点现在都被分配了一个 GUID (全局唯一标识符)。对等点将通过此 GUID 来识别彼此。在为网络中的每个对等点分配 GUID 后,对等点被组织成一个虚拟环。对等点在环中按其 GUID 进行排序。
3. 这种组织纯粹是虚拟的或逻辑的。它并不意味着对等点 1 在地理位置上靠近对等点 2。它只是将对等点组织成网络的虚拟方式。一旦对等点被组织成这些环,那么每个对等点都需要以某种方式拥有对网络中其他对等点的引用集,以便它们能够相互通信。但是,对等点不可能拥有对网络中所有其他对等点的引用。因此,每个对等点都需要拥有对网络中其他对等点子集的引用。因此,如果网络中有数百万个对等点,每个对等点可能只拥有对网络中少数其他对等点的引用 (HOME)。我们根据对等点自身 GUID 的距离来选择子集中的对等点。
如何让它们互相认识?您需要一个引导对等点,它必须是网络中的第一个对等点。引导对等点必须至少为响应网络的第一个对等点所知。第一个对等点,即加入对等点,联系引导对等点并请求加入网络。然后,引导对等点会响应一个 GUID。在一些网络中,加入对等点可能会决定加入的 GUID。现在网络由两个对等点组成。加入对等点接下来要做的就是向引导对等点请求路由表的副本。然后,引导对等点会将路由表的副本发送回加入对等点,加入对等点可以使用该路由表来构建自己的路由表。然后,它将使用该临时路由表在网络中搜索理想的对等点。建立连接后,用户就可以搜索文件。当搜索提交后,它会连接到连接列表中的所有节点。然后显示结果,并建立连接。
P2P 应用领域
• 文件共享
• 教育搜索引擎
• 视频流媒体 (电视、电影等)
• 电信
• 网页门户
• 生物信息学
P2P 搜索技术
• 泛洪查询
• 集中索引
• 分散索引
• 爬取
• 哈希
一些 P2P 网络的示例,例如 Kazaa、eMule、Napster、Gnutella、BitTorrent、Ants、Ares、DirectConnect、Freenet、OpenFt、FastTrack、Kad Network、NeoNet、Mute、eDonkey 和 SoulSeek。
点对点的应用非常广泛。用户可以连接到其他用户的机器,并允许他们连接到自己的机器。它能够发现、查询和与其他对等点共享内容。
点对点网络的应用
内容分发
- Babelgum – 使用专有的 P2P 协议,加密数据流,以防止盗版。
- Blinkx BBTV – 通过将来自网络的电视和其他视频融合在一起,使用混合点对点流媒体,使内容提供商能够通过 Blinkx 网络和点对点分发来分散内容交付的负担。
- Jaman – 通过其服务器和 P2P 提供电影片段。
- 软件发布和分发 (Linux、一些游戏);通过文件共享网络。
- 用于多播流的点播。
交换实物商品、服务或空间。
- 点对点租赁网络平台使人们能够在虚拟平台上查找和预订商品、服务或空间,但在实际的点对点交易中在现实世界中进行。
网络
- 域名系统,用于互联网信息检索。
- 云计算
- Dalesa 是一种基于 IP 多播的局域网点对点网络缓存。
科学
- sciencenet 点对点搜索引擎。
- BOINC – 用于志愿计算和网格计算的开源软件。
通信网络
- Skype 是最广泛使用的互联网电话应用程序之一,它使用 P2P 技术。
- VoIP(使用 SIP 等应用层协议)
- 即时消息和在线聊天。
文件共享
- 电影
- 视频
- 音乐和音频
- 计算机应用程序
隐私保护
- Tor - 通过全球志愿者建立的中继网络发送用户流量,从而保护用户的身份。
企业 • Collanus Workplace - 跨平台点对点系统,供协作团队在项目上合作并传达他们的工作成果。
P2P 网络的优点
• 它简单易于设置,只需要集线器或交换机和 RJ45 电缆将所有计算机连接在一起。
• 如果计算机上的文件设置为共享文件夹,则可以轻松访问其他计算机上的文件。
• 它比使用服务器便宜。唯一的成本包括硬件、布线和维护。
• 布局架构很简单(如何连接)
• 如果其中一台计算机无法工作,其他已连接的计算机仍然可以正常工作。
• 它不需要任何全职系统管理员。每个用户基本上都是他们自己计算机的管理员。
P2P 网络的缺点
• 系统不集中,因此管理起来很困难。你无法确定其他计算机的整体访问设置。
• 你的网络容易受到病毒、间谍软件、木马程序等的攻击。
• 数据恢复很困难,每台计算机都应该有自己的备份系统。
• 它只适用于由 2-8 台计算机组成的不需要高安全级别的小型网络。不适用于处理敏感数据的企业网络。