学习笔记2.6——P2P应用

P2P应用

P2P结构的特点

    

  1. 没有服务器
  2. 任意端系统间直接通信
  3. 有很大的动态性和随机性

           *节点阶段性接入Internet

           *节点可能更换IP地址

文件分发

C/S架构与P2P架构在文件分发上的性能对比

说明:1)由于核心网络的带宽充足,因此性能瓶颈主要在服务器接入核心网络和客户端接入核心网络。

           2)服务器只向Internet上传,每个节点可能下载或上传文件。

           3)图中节点表示上传,下载的方向标错了

C/S架构:

             服务器串行地发送N个副本,所需时间为:NF/us;——这个时间随N线性增长

             客户机i的下载时间为:F/di

             完成分发总时间:max{NF/us ;F/min(di)}

P2P:

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

             客户机i的下载时间为:F/di;

             总共需要下载NF比特

             最快的可能上传速率(服务器和所有节点同时上传):us+∑ui

             上传N个副本的总时间为:NF/(us+∑ui)

             完成分发总时间:max{F/us ;F/min(di);NF/(us+∑ui)}

             

BitTorrent协议

peer:节点

chunk:交换文件块

torrent:交换(或共享)同一个文件的文件块的节点所形成的节点组

tracker:跟踪参与torrent的节点

1)当Alice新加入网络时,向tracker查询,获取torrent节点列表,与其他节点建立TCP连接,进而可以与他们交换文件块

2)文件被划为256KB的chunk

3)节点加入torrent时

  • 没有chunk,但会逐渐积累
  • 向tracker注册以获得节点清单,与某些节点(“邻居”)建立连接

4)下载的同时,节点还需向其他节点上传chunk

5)节点动态地加入和离开,且在获得完整文件后可以选择离开或留下

6)获取chunk

  • 给定任意时刻,不同的节点持有文件的不同chunk集合
  • 节点定期查询每个邻居所持有地chunk列表
  • 节点发送请求,请求获取缺失的chunk(稀缺优先原则,例:你所需要的一些chunk只有3个节点能够提供,而另一些chunk有100个chunk可以提供,那么优先获取提供节点少的chunk,以防节点全部离开后无法获得)

7)发送chunk(一报还一报原则)

  • Alice向4个邻居发送chunk:正向它发送的chunk,速率最快地4个(每10s重新评估top4)
  • 每30s随机选择一个其他节点,向他发送chunk(新加入的节点可能进入top4s)

8)特点:上传速率高,则能够找到更好的交易伙伴,从而更快的获取文件

9)BT的危害:

  • 损害硬盘
  • 助长病毒传播
  • 侵犯版权

   

索引技术

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

2:文件共享(如电驴)

  • 利用索引动态跟踪节点所共享的文件的位置
  • 节点需要告诉索引它拥有哪些文件
  • 节点搜索索引,从而获知能够得到哪些文件

3:即时消息(如QQ)

  • 索引负责将用户名映射到位置
  • 当用户开启IM应用时,需要通知索引它的位置
  • 节点检索索引,确定用户地IP地址

集中式索引

搜索过程:

  1. 节点加入时,通知中央服务器(IP地址+内容)
  2. Alice查找“Hey Jude”
  3. Alice从Bob处请求文件

注:集中式索引内容和文件的传输是分布式的,但内容定位是高度集中的

缺点:

  1. 单点失效问题(当集中式目录服务器崩溃时,整个p2p系统就崩了)
  2. 性能瓶颈(报到,查找等都须通过中央目录服务器,会成为他的瓶颈)
  3. 版权问题

洪范式查询(信息传输到网络中的每一个节点)

1.完全分布式架构

2.每个节点对它共享的文件进行索引,且只对它共享的文件进行索引

3:覆盖网络

  • 节点X与Y之间如果有TP连接那么构成一条边
  • 所有活动节点和便构成覆盖网络
  • 边:虚拟链路
  • 节点一般邻居数少于10个

4:搜索过程

  • 查询消息通过已有的TCP连接发送
  • 节点转发查询消息
  • 查询命中,则利用反向路径发回查询节点

5.缺点

  • 洪范式查询会大量消耗网络带宽,导致网络拥塞
  • 新用户加入时会有很多复杂的需要处理的因素

层次式覆盖网络

1:介于集中式索引和洪范查询之间的一种查询方法

2每个节点或者一个超级节点,或者被分配一个超级节点

  • 节点和超级节点间维持TCP连接
  • 某些超级节点之间维持TCP连接

3.超级节点负责跟踪子节点的内容,提供索引服务

  • 一个超级节点和普通节点是集中式查询
  • 超级节点和超级节点之间为洪范式查询

4:应用:Skype

  • 本质上是P2P的,用户/节点之间直接通信
  • 私有应用层协议
  • 采用层次式覆盖网络架构
  • 索引负责维护用户名和IP地址之间的映射
  • 索引分布在超级节点上
  1. 有很大的动态性和随机性

              *结点阶段性接入Internet

              *节点可能更换IP地址

 

猜你喜欢

转载自blog.csdn.net/weixin_40876024/article/details/82762762
P2P