supernode

  1. supernode 组件拥有两个职责:1. P2P 调度决策 2. CDN 缓存。因此,supernode 收到一个文件下载请求的时候,会首先判断本地是否有该文件的缓存,如果没有,则从源下拉源文件,并在本地进行缓存。
  2. 在supernode 有了缓存之后,就会开始进行P2P 的调度策略执行,并返回给 peer 节点去哪个 peer 上下载哪个block。这里的 block 指得是一个镜像文件被切分后的一个分片,这么做的原因是为了一个镜像文件可以被更快的进行并发下载以及P2P 分发。

    dfclient

65001 mock docker registry的端口

dfget

�p2p的peer的 downloader、uploader

network bandwidth limit, transmission encryption

yuque_diagram.jpeg

�Seed

本地有完整文件,提供下载服务

Peer
本地还没有完整文件,从Seed或者其他Peer下载的同时,提供下载服务