[计算机网络-应用层] P2P应用

首先回顾一下纯P2P架构的特点

  • 没有服务器
  • 端系统之间直接通信
  • 端系统经常改变IP 间歇性连接

下面将学习两种不同的特别适合于P2P设计的应用。

  • 文件分发,其中应用程序从单个源向大量的对等方分发一个文件。
  • 分布在大型对等方社区中的数据库。

P2P文件分发

在P2P文件分发中,每个对等方能够重新分发它所有的该文件的任何部分,从而在分发过程中协助该服务器。

1.P2P体系结构的扩展性

为什么文件分发时P2P会比客户-服务器更加有效?

用F表示备份发文件的长度,N表示要获得该文件副本的对等方数量。分发试卷是所有N个对等方得到该文件的副本所需要的时间。

(1)客户-服务器体系结构

服务器必须向N个对等方传输该文件的一个副本,因此该服务器必须传输NF比特。而服务器上载速率是us,则分发该文件的时间必定至少为NF/us

客户机下载的速度为di,则有最小分发时间至少为F/dmin

所以,最小分发时间Dcs=max{NF/us,F/dmin}。

(2)P2P体系结构

每个对等方能够帮助服务器分发该文件。当一个对等方接收到某些文件数据,它能够使用自己的上载能力重新将数据分发给其他对等方。

服务器必须经其链路至少发送改文件每个比特一次。最小分发时间为F/us

客户机下载的速度为di,则有最小分发时间至少为F/dmin

观察到系统整体的总上载能力等于服务器的上载速率加上每个单独的对等方上载速率,即utotal=us+u1+u2+……+un。系统必须向这N个对等方的每个交付N比特,因此最小分发时间也至少是NF/(us+u1+u2+……+un)。

所以,最小分发时间Dp2p=max{F/us,F/dmin,NF/(us+u1+u2+……+un)}。(此时我们认为一旦每个对等方接收到一个比特就能够重新分发一个比特。)

对于客户-服务器体系结构,随着对等方数量的增加,分发时间呈线性增长并且没有界。然而,对于P2P体系结构,最小分发时间不仅总是小于客户-服务器体系结构的分发时间,并且对于任意的对等方数量N,总是小于1小时。

因此,具有P2P体系结构的应用程序能够是自扩展的。这种扩展性的直接成因是:对等方除了是比特的消费者还是它们的重新分发者。

2.BitTorrent

BitTorrent是一直用于文件分发的流行P2P协议。

在BT系统里,文件是分片的。

当一个peer 节点开始加入一个 洪流(Torrent) 时,它没有文件块。随着时间的推移,它将累积越来越多的文件块。当它下载文件块时,也为其他 peer 节点上载了多个文件块。peer 节点一但获得了整个文件,它可以(自私地)离开 Torrent,或(大公无私地)留在 Torrent 中并继续向其他 peer节点上载文件块。

每一个洪流具有一个基础设施结点,称为追踪器。当一个对等方加入某洪流时,他向追踪器注册自己,并周期性地通知追踪器它仍在该洪流中。以这种方式,追踪器跟踪正参与在洪流中的对等方。一个给定的洪流可能在任何时刻具有数以百计或数以千计的对等方。

当一个 peer 节点 Alice 加入 Torrent 时,追踪服务器随机选择一些 peer 节点,并将这些peer 节点的 IP 地址发送给 Alice。

Alice 持有这些 peer 节点的列表,试着与该列表上的多个 peer 节点创建并行的 TCP 连接。这里称所有与 Alice 成功地创建 TCP 连接的 peer 节点为“邻近 peer 节点”。

随着时间的推移,其中的一些 peer 节点可能离开,而其他 peer 节点可能试着与 Alice创建 TCP 连接。因此,邻近 peer 节点将随着时间而改变。

在任何时刻,每个 peer 节点都拥有来自某文件块的子集,且不同的 peer 节点具有不同的文件块子集。Alice 周期性地(经 TCP 连接)询问每个邻近 peer 节点它们所具有的块列表。

如果 Alice 有 L 个邻居,那么她将获得 L 个块列表。因此,Alice 将对她当前还没有的块发出请求(仍通过 TCP 连接)。

Alice 使用一种称为最稀罕优先的策略,其思路是根据她没有的块从她的邻居中确定最稀罕的块(最稀罕的块就是在她的邻居中拷贝数量最少的那些块),并优先请求那些最稀罕的块。按照此方式,最稀罕的块更迅速地重新分发,其目标(大致)是均衡每个块在洪流中的拷贝数量。

如果多个用户向她请求文件块,为了决定她响应哪个请求,BitTorrent 使用了一种对换算法。其基本思想那些当前能够以最高的速率供给她数据的邻居具有较高的优先权。Alice对于她的每个邻居都持续地测量她们之间连接的速率,确定以最高速率流入的 4 个邻居。然后,她将数据块发给这 4 个邻居。每过 10 秒,她重新计算该速率并可能修改这 4 个 peer节点。更重要的是,每过 30 秒,她要随机地选择一个另外的邻居并向它发送块。

在 P2P 文件共享中,搭免费车(free-riding)是一个常见的问题,这是指 peer 节点从文件共享系统中下载文件而不上载文件。BitTorrent 的对换算法有效地消除了这种搭免费车问题。

分布式散列表

分布式散列表在 P2P 网络中实现了一个简单的数据库。

数据库只包含 key-value 对例如:键可以是社会保险号,值可以是相应的人名;在这种情况下,键一值对的例子如(156-45- 7081 , John ),或者键可以是目录名(例如,电影、唱片和软件的名字),值可以是存储内容的 IP 地址。当用键来查询数据库,如果存在键值对,数据库就返回相应的值。

由于每个 peer 节点具有了一个整数标识符,这时就可以将 key-value 对分配给具有最近ID 的 peer 节点.,一般最近的 peer 节点是指 key 是最邻近的 peer 节点的后继,例如假设有 8 个 peers: 1,12,13,25,32,40,48,60。

如果 key = 53,那么这个 key-value 对将分配到 60 号 peer 节点。

如果 key = 60,那么这个 key-value 对将分配到 60 号 peer 节点。

如果 key = 61,那么这个 key-value 对将分配到 1 号 peer 节点。

1.环形DHT

 

为了处理规模的问题,将这些 peer 节点组织成环状,每个 peer 节点仅知道它的直接后继和直接前任。查找某个键值对时,在这个环状网络中进行时钟顺序查找。时间复杂度O(N).

为了加速查找,又建立了 peer 节点之间的捷径连接。时间复杂度O(logN)。

2.对等方扰乱

在P2P系统中,对等方能够不加警示地到来和离开。为了处理对等方扰动,我们要求每个对等方联系其第一个和第二个后继。也要求每个对等方周期性地正式它的两个后继是存活的(如发送ping报文并寻求响应)。

原文地址:https://www.cnblogs.com/shirleyya/p/12546111.html

时间: 2024-11-05 23:37:10

[计算机网络-应用层] P2P应用的相关文章

计算机网络-应用层

一.应用层协议原理     1.网络应用程序体系结构 应用程序的体系结构明显不同于网络的体系结构.从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合. 应用程序体系结构(application architecture)由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序. 现代网络应用程序的两种主流体系结构:客户机/服务器体系结构和对等(P2P)体系结构. 客户机/服务器体系结构(client-sever architecture):有一个总是打开的主机称

[计算机网络-应用层] 因特网中的电子邮件

下图是因特网电子邮件系统的总体情况,从该图中我们可以看出它有3个重要组成部分:用户代理(user agent).邮件服务器(mail server)和简单邮件传输协议(Simple Mail Transfer Protocol,SMTP). 用户代理允许用户阅读.回复.转发.保存和撰写报文. 邮件服务器组成了电子邮件体系结构的核心.每个接收方在其中的某个服务器上有一个邮箱.邮箱包含用户的到达报文.离开(将发送)邮件报文的报文队列:在发送电子邮件报文的邮件服务器之间采用SMTP协议. SMTP是因

[计算机网络-应用层] DNS:因特网的目录服务

我们知道有两种方式可以识别主机:通过主机名或者IP地址.人们喜欢便于记忆的主机名标识,而路由器则喜欢定长的.有着层次结构的IP地址.为了折中这些不同的偏好,我们需要一种能进行主机名到IP地址转换的目录服务.这就是域名系统(Domain Name System,DNS)的主要任务. DNS运行在UDP上,使用53端口. 除了进行主机名到IP地址的转换外,DNS还提供了一些重要的服务: ·主机别名.有着复杂主机名的主机可以拥有一个或多个别名.原复杂主机名也叫规范主机名.主机别名(如果有的话)比主机规

[计算机网络-应用层] FTP协议

文件传输协议:FTP 如下图所示:用户通过一个FTP用户代理与FTP交互.该用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接.然后,该用户提供用户标识和口令,作为FTP命令的一部分在该TCP连接上传送.一旦该服务器向该用户授权,用户就可以向远程文件系统拷贝存放在本地文件系统中的一个或多个文件(反之亦然). HTTP和FTP都是文件传输协议,并且有很多共同点.例如,他们都运行在TCP上.然而它们也有一些重要区别,其中最显著的一点就是: FTP

计算机网络-应用层(2)FTP协议

FTP 使用了两个并行的TCP 连接来传输文件: 控制连接(control connection)用于在两主机之间传输控制信息,如用户标识.口令.改变远程目录的命令以及存放(put)文件.获取(get)文件的命令. 因为FTP协议使用一个独立的控制连接,所以我们也称FTP的控制信息是带外(out-of-band) 传送的.HTTP也可以说是带内(in-band) 发送控制信息的. 数据连接(data connection) 用于实际发送一个文件HTTP 协议是在传输文件的同一个TCP 连接中发送

计算机网络之应用层

应用层作文协议栈的最高层,与用户亲密打交道的的协议层也就是应用层.场景的组件:浏览器,http服务器等. 主要内容 1网络应用体系结构 2.进程通信 3 需要传输层提供服务 4 应用层协议 2种网络应用体系结构 客户-服务器体系结构 代表协议为HTTP.特点:(1)客户端之间不可直接通信:(2)服务器有已知的IP,服务器总是打开的. 容易出现性能问题:一台服务器往往跟不上海量的客户请求. P2P体系结构 对服务器要求相对不高:应用程序间可以直接通信.直接通信的主机叫peers,一般是用户控制的主

计算机网络 2. 应用层

应用架构application architecture.一般网络应用,有两种结构,客户机/server建筑建筑及同行(P2P). 顾客/server架构client-server architecture于.称为server,它为来自客户机的请求提供服务.客户机之间不进行直接通信.server拥有固定的周知的地址,称为IP地址,且总是处于打开状态.常会出现一台server主机跟不上其全部客户机请求的情况.常使用主机群集a cluster of hosts或者称为server场server fa

计算机网络之应用层_part -1

应用层协议原理 一.网络应用程序体系结构 网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种: 1.客户--服务器体系结构: 有一个总是打开的主机(称为服务器),他服务于来自许多的其他的称为客户的主机的请求,客户--服务器体系结构德 一个典型的例子是:Web应用程序,其中总是打开的Web服务器接收到来自其他客户的对某对象的请求时,它会向该客户发送所请求的对象作为响应.值得注意的是客户--服务器体系结构有两个重要特征: a.客户之间不直接通信 b.服

计算机网络复习(二) 应用层

1.应用架构 (1)CS 对于 CS 架构 (Client/Server),网络中的每个节点是不对称的,具体而言可以分为两类: 服务端 (Server):服务端拥有资源,为客户端提供服务,每个客户端都能与服务端联系 客户端 (Client):客户端需要资源,向服务端申请服务,每个客户端之间不能相互联系 (2)P2P 对于 P2P 架构 (Peer-To-Peer),网络中的每个节点都是对称的,没有服务端和客户端之分 每个节点都拥有资源,每个节点都能提供服务,同时每个节点也都需要资源,也都需要申请