应用层学习笔记六.P2P应用

使用P2P体系结构,对总是打开的基础设施服务器有最小依赖。

成对间歇连接的主机彼此直接通信。

P2P文件分发

从单一服务器向大量主机分发一个大文件。

P2P体系结构的自扩展性

Alt

  • u s u_s us:服务器接入链路的上载速率
  • u i u_i ui:第 i i i 对等方接入链路的上载速率
  • d i d_i di:第 i i i 对等方接入链路的下载速率
  • F F F:被分发的文件长度-以比特计
  • N N N:表示要获得的文件的副本的对等方的数量
  • 分发时间:所有 N N N 个对等方得到该文件的副本所需的时间
客户-服务器体系结构分发时间 D c s D_{cs} Dcs

没有对等方参与帮助分发文件

  • 服务器必须向N个对等方的每个传输该文件的一个副本,即传输 N F NF NF 比特,分发该文件的时间至少为 N F / u s NF/u_s NF/us
  • d m i n d_{min} dmin 表示具有最小下载速率的对等方的下载速率,即 d m i n = m i n { d 1 , d p , … , d N } d_{min}=min\{d_1,d_p,…,d_N\} dmin=min{d1,dp,,dN} ,最小分发时间至少为 F / d m i n F/d_{min} F/dmin

故有 D C S ≥ m a x { N F u s , F d m i n } D_{CS} \geq max\{\frac{NF}{u_s},\frac{F}{d_{min}} \} DCSmax{usNF,dminF},取 D C S = m a x { N F u s , F d m i n } D_{CS}=max\{\frac{NF}{u_s},\frac{F}{d_{min}} \} DCS=max{usNF,dminF},分发时间随 N N N 的数量线性增加

P2P体系结构分发时间 D P 2 P D_{P2P} DP2P

每个对等方能够帮助服务器分发该文件,分发时间取决于每个对等方如何向其他对等方分发该文件的各个部分

  • 在分发开始,只有服务器具有文件。为了使社区的对等方得到文件,该服务器必须经其接入链路至少发送该文件的每个比特一次,最小分发时间至少是 F / u s F/u_s F/us
  • 具有最低下载速率的对等方不能够以小于 F / d m i n F/d_{min} F/dmin 的分发时间获得所有 F F F 比特
  • 系统整体的总上载能力 u l o c a l = u s + u 1 + … u N u_{local}=u_s+u_1+…u_N ulocal=us+u1+uN 总共交付 N F NF NF 比特,最小分发时间至少是 N F / ( u s + u 1 + … u N ) NF/{(u_s+u_1+…u_N)} NF/(us+u1+uN)

D P 2 P ≥ m a x { F u s , F d m i n , N F u s + ∑ i = 0 N u i } D_{P2P} \geq max\{\frac{F}{u_s},\frac{F}{d_{min}},\frac{NF}{u_s+\sum_{i=0}^Nu_i}\} DP2Pmax{usF,dminF,us+i=0NuiNF},取 D P 2 P = m a x { F u s , F d m i n , N F u s + ∑ i = 0 N u i } D_{P2P}=max\{\frac{F}{u_s},\frac{F}{d_{min}},\frac{NF}{u_s+\sum_{i=0}^Nu_i}\} DP2P=max{usF,dminF,us+i=0NuiNF},被分发的是文件块而不是一个个比特,能够证明可以取到这个下界

P2P体系结构是自扩展的,这种扩展性的直接成因是:对等方不仅是比特的消费者也是其重新分发者

BitTorrent

torrent:参与一个特定文件分发的所有对等方的集合,在一个torrent中的对等方彼此下载相同长度的文件块 chunk,典型的块长度为256KB

每个torrent有一个基础设施结点称为追踪器tracker。当一个对等方加入某torrent时,他向追踪器注册自己,并周期性通知trakcer它仍在torrent中。

当一个新的对等方加入torrent时:

  • 获得torrent所有对等方的IP地址列表
  • 可以试图与该列表上的所有对等方创建并行的TCP连接,和新的对等方成功创建TCP连接的为邻近对等方,邻近对等方随时间而波动
  • 每个对等方具有来自文件的块子集,不同的对等方具有不同的子集
  • 新加入的对等方可以拥有所有邻居的块列表,从而可以对当前自身还没有的块发出请求

最稀缺优先:针对自身没有的块在邻居中决定最稀缺的块(副本数量最少的块),并首先请求那些最稀缺的块,最稀缺的块得到更为迅速的重新分发,其目标是均衡每个块在torrent中的副本数量

分布式散列表

分布式散列表:一种分布式数据库,任何对等方都可以在数据库中插入新的key-value对,每个对等方仅有总体的一个小子集

设计DHT分布式散列表的方法:

  • 为每个对等方分配一个标识符,在 [ 0 , 2 n − 1 ] [0,2^n-1] [0,2n1] 的范围内, n n n 取某些固定值,这样的一个标识符可以用 n n n 比特表示法来表示
  • 用散列函数将每个键映射为 [ 0 , 2 n − 1 ] [0,2^n-1] [0,2n1] 范围内的一个整数,散列函数是一种多对一的函数,不同的输入可以有相同的输出,但是具有相同输出的似然性极低
  • 键指的是初始键的散列值

一种当然的方法是为其标识符最邻近该键的对等方分配一个键值对。

最邻近对等方=键的最邻近后继,若该键恰好等于这些对等方标识符之一,在匹配的对等方中存储,如果该键大于所有对等方标识符,使用模 2 n 2^n 2n 的规则,在具有最小标识符的对等方中存储。

环形DHT

将对等方组织成环。每个对等方仅与它的直接后继和直接前任联系。环形设置是覆盖网络的特殊情况,对等方形成了一个抽象的逻辑网。该网存在于由物理链路、路由器和主机组成的底层计算机网络上。

对等方需要确定自己是否是键的最邻近后继,若不是则向自己的后继传递报文即可。

在每个对等方必须跟踪的邻居数量与DHT为解析一个查询而需要发送的报文数量之间存在折中。在环形DHT中,可以通过哦结晶来快速查询报文的路由选择。

对等方扰动

每个对等方联系其第一个和第二个后继,需要周期性更新自己的后继的信息。在新的对等方要加入DHT的时候,需要通过发送报文找到自己的前任和后继。

在BitTorrent中,键是torrent标识符,值是当前参与torrent的所有对等方的IP地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值