type
status
date
slug
summary
tags
category
icon
password

纯P2P架构

  • 没有(或极少)一直运行的服务器
  • 任意端系统都可以直接通信
  • 利用peer的服务能力
    • 任何节点既是客户端又是服务器
  • peer节点间歇上网,每次IP地址都可能有变化
    • Pairs of intermittently connected hosts, called peers, communicate directly with each other.
  • 例子
    • 文件分发
    • 流媒体
    • VoIP

Scalability of P2P Architectures

C/S vs P2P

notion image
  • 这是一个“将一个文件分发给一个固定peer集合”的模型
  • 表示上载速率
  • 表示下载速率
  • F表示要分发的文件的大小
  • N表示想要获得文件的copy的peer的数量
  • distribution time:取得文件的copy所花费的时间

C/S的distribution time,

  • 服务器必须向N个peer分发文件的copy,服务器必须传输NF bits,因为服务器的上载速率为,所以分发文件的时间至少是:
    • 为下载速率最慢的peer的下载速率,
      • 由于下载速率的peer在之内无法下载完全部F bits,因此distribution time至少为:
    • 结合两个算式可以得到:
      • 当客户数量N足够大时,分发时间随N增大线性增加

      P2P的distribution time,

      • when a peer receives some file data, it can use its own upload capacity to redistribute the data to other peers.
      • 最开始,只有服务器有这个文件,服务器至少将每个bit传输一次至它的access link,所以分发文件的时间至少是:
      • 下载时间要取决于下载速率最慢的那个peer:
        • the total upload capacity of the system is equal to the upload rate of the server plus the upload rates of each of the individual peers: , the system must deliver F bits to each of the N peers. Thus, the minimum distribution time is at least:
          • 结合三个算式可以得到:
            • 随N增加,也增加

            对比图

            notion image

            BitTorrent

            • 用于文件分发的一个P2P协议
            • 参与一个特定文件分发的所有节点的集合叫做torrent
            • Peers in a torrent download equal-size chunks of the file from one another
            • 当一个peer才加入torrent的时候,它还没有trunks,通过积累获得trunks,peer下载trunks的同时也上载trunks
            • 当一个peer获得整个file之后,它要么selfishly离开torrent,要么altruistically呆在torrent里面并且继续上载trunks给其他peers,any peer may leave the torrent at any time with only a subset of trunks, and later rejoin the torrent

            BitTorrent具体案例

            • tracker
              • 每个torrent都有一个叫tracker的节点
              • 当新的peer加入torrent的时候,它会自己在tracker注册自己并且告知tracker自己还在torrent里面
            • 新的peer加入torrent
              • tracker随机发送一组已经在torrent里面的peers的IP地址给新peer,新peer与这些peers开始并行的TCP连接,这些peers就叫新peer的neighboring peers,neighboring peers不唯一
              • 每个peer会有一个文件trunks的子集,不同peer的子集不同,每个周期里面,新的peer会向每个neighboring peer要它们的trunks,新peer会通过TCP为它没有的trunks发出请求
            • rarest first 最少优先
              • 在neighbors之间,copies最少的trunks最先请求
              • 目的:equalize the numbers of copies of each chunk in the torrent
            数组Computer Networking Notes
            • Giscus