计算机网络原理(8)——P2P(文件收发、索引技术)

计算机网络原理(8)——P2P(文件收发、索引技术)

一、文件收发

Peer-to-peer

  • 没有服务器
  • 任意端系统之间直接通信
  • 节点阶段性接入Internet
  • 节点可能更换IP地址

问题:从一个服务器向N个节点分发一个文件需要多长时间?

  • us:服务器上传带宽
  • ui:节点i的上传带宽
  • di:节点i的下载带宽

文件分发:客户机/服务器

  • 服务器串行的发送N个副本
    • 时间:NF/Us
  • 客户机i需要F/di时间下载

文件分发:P2P

  • 服务器必须发送一个副本

    • 时间:F/us
  • 客户机i需要F/di时间下载

  • 总共需要下载NF比特

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

二、索引技术

P2P:搜索信息

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

文件共享(电驴)

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

即时消息(QQ)

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

集中式索引

Napster最早采用这种设计

  • 节点加入时,通知中央服务器:IP地址,内容
  • 内容和文件传输是分布式的,但是内容定位是高度集中式的
  • 问题:单点失效问题、性能瓶颈、版权问题

洪泛式查询:Query flooding

  • 完全分布式架构
  • Gnutella采用这种架构
  • 每个节点对他共享的文件进行索引,且只对它共享的文件进行索引

层次式覆盖网络

  • 介于集中式索引和洪泛查询之间的方法
  • 每个节点或者是一个超级节点,或者被分配一个超级节点
    • 节点和超级节点间维持TCP连接
    • 某些超级节点对之间维持TCP连接
  • 超级节点负责跟踪子节点的内容

你可能感兴趣的:(计算机网络原理)