计算机网络p2p应用,【计算机网络】2.6 P2P应用(示例代码)

第二章第六节 P2P应用

在本节内容开始前,我们要先来对P2P架构有一个宏观的认知:

P2P:(Peer to Peer 对等结构)   以对等方式进行通信,并不区分客户端和服务端,而是平等关系进行通信。在对等方式下,可以把每个相连的主机当成既是主机又是客户,可以互相下载对方的共享文件。比如迅雷下载就是典型的P2P通信方式。

本章描绘的前三个应用都采用了CS(客户-服务器)体系结构,极大的依赖于总是打开的基础设施服务器。而在本节中,我们将介绍两种适用于P2P的应用:一个是文件分发,在其中我们将介绍流行的BitTorrent协议;另一个是分布在大型对等方社区中的数据库,在其中我们将探讨分布式散列表(Distrubuted Hash Table,DHT)的概念。

Outline

文件分发

P2P系统结构的扩展性

BitTorrent

P2P应用:索引技术

P2P中搜索信息

集中式索引

查询洪泛

层次覆盖

Note

纯P2P架构具有如下特点:

没有服务器,任意端系统之间直接通信

节点阶段性接入Internet

节点可能更换IP地址

资源共享

资源分布

## 文件分发

【P2P体系结构的扩展性】

cc3b72cf7ddbcbb261da5159dd2e7909.png

为了方便讨论,我们假设如上图的简单定量模型,其中us为服务器上传带宽;ui为节点i上传带宽,di为节点i下载带宽。

对于客户机/服务器架构:

服务器串行地发送 N 个副本,时间为: NF/us

客户机i 需要 F/di的时间下载

我们所需要的最短时间为:

35734ed1e55ffc3a174911f068c0b32e.png

对于P2P架构:

服务器必须发送一个副本,时间:F/us

客户机i 需要 F/di的时间下载

总共需要下载NF比特

最快的可能上传速率: us + ∑ui

所需要的最短时间为:

11cdeae625a3d35ac14ea59c3f65a8b5.png

结论:对足够大的N(对等方的数量):

客户机/服务器体系结构的分发时间随着对等方的数量N线性增加并且没有界。

P2P体系结构,其最小分发时间曲线与log2N曲线类似,因此最小分发时间远小于客户机/服务器体系结构的分发时间。其自扩展性很强。

3f423a063af29df7ea576cd5af0a1e6b.png

【BitTorrent】

BitTorrent是一种用于文件分发的流行P2P协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。

BT协议与FTP协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽。通过一定的策略保证上传速度越快,下载速度也越快。

基本概念:

Torrent:参与一个特定文件分发的所有对等方的集合被称为一个洪流。

chunk:在一个洪流中的对等方彼此下载等长度的文件块(一个文件被分成若干个块),典型的块长度为256KB。

Tracker:每个洪流都有一个基础设施结点,成为追踪器

379e92c2e2f512c7e30c8fc4f301dd09.png

当一个新节点(Alice)加入torrent:

没有chunk,但会随着时间不断积累

结点向tracker注册获得节点信息表,并与某些结点建立联系(成为“邻居”),一个结点的临近对等点会随着时间而波动。

结点下载的同时,也为其他对等方上传了多个块。结点可能随时加入或离开。

chunk的获取

给定任一时刻,不同的节点持有文件的不同chunk集合

节点(Alice)定期查询每个邻居所持有的chunk列表

节点发送请求,请求获取缺失的chunk

稀缺优先:针对她没有的块在他的邻居中决定最稀缺(副本数量最少)的块,并优先请求稀缺块

稀缺优先的目的:大致的均衡每个块在洪流中的副本数量

chunk的发送:决定Alice响应哪个请求(对换算法)

Alice根据当前能够以最高速率向他提供数据的邻居,给出其优先权

每10秒,重新评定一下Top4,这四个对等方被称为疏通(unchocked)

每30秒,Alice随机选择一个其他结点,向其发送chunk。

除了随机选择的伴侣作为试探对等方和之前的Top4,其他的对等方都称为阻塞()

## P2P应用:索引技术

【P2P中搜索信息】

P2P系统的索引:信息到节点位置(IP地址+端口号)的映射。

文件共享(电驴)

利用索引动态跟踪节点所共享的文件的位置

节点需要告诉索引它拥有哪些文件

节点搜索索引,从而获知能够得到哪些文件

即时消息(QQ)

索引负责将用户名映射到位置

当用户开启IM应用时,需要通知索引它的位置

节点检索索引,确定用户的IP地址

【集中式索引】

e72da77f3919eb9f175805e3c444ddb8.png

如上图所示,集中式索引更像是P2P和CS的混合体

当Alice需要下载信息时,经过以下步骤:

初始时,所有的对等方要将自身的IP和可共享的文件名称通知集中式索引服务器,该索引服务器从每个活动的对等方那里收集这些信息,从而建立起一个动态索引,将每个文件拷贝映射到一个IP地址集合。

当Alice需要下载一些文件时会将查询内容发送给索引服务器,服务器将查询结果返回给Alice(Bob的IP地址)。

Alice根据收到的信息,从Bob处下载资源。

集中式索引的问题:内容和文件传输是分布式的,但是内容定位是高度集中式的。会出现如下问题:单点失效问题、性能瓶颈、版权问题。

【查询洪泛】(建立在“Gnutella”协议基础上)

查询洪泛采用完全分布式方法。在查询洪泛中,索引全面地分布在对等方的区域中。每个对等方索引可供共享的文件而不索引其他文件。

其扩展性差,尤其是为了防止某个对等方发起查询,该查询就会传播到整个覆盖网络的每个其他对等方,从而产生大量流量。为解决这个问题,设计者使用了受限查询洪泛,即限制其传播的最大跳数。

【层次覆盖】(由FastTrack首创,Kazza和Morpheus也实现了这种文件共享协议)

该方法结合了上述两种方法的优秀特征,与洪泛查询类似,层次覆盖设计不使用专用的服务器(或服务器场)来跟踪和索引文件。然而,与洪泛查询不同的是,在层次覆盖的设计中并非所有对等方都是平等的。

如下图所示,如果某对等方不是超级对等方,则它就是一个普通对等方,并被指派为一个超级对等方的子对等方。

超级对等方维持着一个索引,该索引包括子对等方正在共享的所有文件的标识符、有关文件的元数据和相应子对等方的IP地址,但与前面的集中式索引不同,这里的超级对等方并不是一台专用服务器,而是普通对等方。超级对等方之间可以相互建立TCP连接,从而形成一个覆盖网络。

17ffeb600b819ee516e22c17448fdcb5.png

## 分布式散列表

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提到了一位名为韩老师的讲师讲授了高校的《计算机网络原理》课程。这个课程可能是关于计算机网络的基础原理和概念的讲解。然而,这个引用并没有提到谢希仁与应用层的相关信息。 引用提到了HTTP协议是一个面向事物的应用层协议,它是在万维网上进行可靠文件交换的重要基础。HTTP的默认端口是80。在计算机网络中,应用层协议负责处理应用程序之间的通信和数据交换。 引用涉及到P2P体系结构,这种网络应用中没有或只有极少数的固定服务器,而交互主要通过对等方式进行。这意味着在P2P网络中,每个节点都可以充当客户端和服务器。 根据提供的引用信息,我无法确定谢希仁与应用层的具体联系。如果您有更多相关信息,请提供给我,我将尽力为您提供更准确的答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [《计算机网络-第7版-谢希仁》学习笔记:应用层](https://blog.csdn.net/qq_40378034/article/details/107440866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [计算机网络(谢希仁第7版)-应用层](https://blog.csdn.net/qq_42290128/article/details/118883627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值