计算机网络(7)—— P2P应用

P2P(Peer-to-Peer)

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

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

  • us:服务器上传带宽
  • ui:节点i的上传带宽
  • di:节点i的下载带宽
1. 文件分发:客户机/服务器(随着N增加时间不变)
  • 服务器串行的发送N个副本

    时间:NF/Us

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

2. 文件分发:P2P(随着N增加时间呈线性增长)
  • 服务器必须发送一个副本

    时间:F/us

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

  • 总共需要下载NF比特

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

二、P2P应用:索引技术

P2P:搜索信息

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

  • 文件共享(电驴):
    • 利用索引动态跟踪节点所共享的文件的位置
    • 节点需要告诉索引它拥有哪些文件
    • 节点搜索索引,从而获取能够得到哪些文件
  • 即时消息(QQ):
    • 索引负责将用户名映射到位置
    • 当用户开启IM应用时,需要通知索引它的位置
    • 节点检索索引,确定用户的IP地址
1. 集中式索引

Napster最早采用这种设计。

  • 节点加入时,通知中央服务器:IP地址、内容。
  • 问题:内容和文件传输是分布式的,但是内容定位是高度集中式的。
    • 单点失效问题
    • 性能瓶颈
    • 版权问题
2. 洪泛式查询
  • 完全分布式架构
  • Gnutella采用这种架构
  • 每个节点对它共享的文件进行索引,且只对它共享的文件进行索引
  • 覆盖网络
3. 层次式覆盖网络
  • 介于集中式索引和洪泛式查询之间的方法
  • Skype采用这种架构
  • 每个节点或者是一个超级节点,或者被分配一个超级节点(维持TCP连接)
  • 超级节点负责跟踪子节点的内容,提供索引
发布了115 篇原创文章 · 获赞 35 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览