2024-05-29 02:24:10 +08:00
|
|
|
# PCDN
|
|
|
|
|
2024-05-29 03:44:50 +08:00
|
|
|
P2P CDN
|
|
|
|
|
|
|
|
|
|
|
|
持有资源变动时, 通知节点列表
|
|
|
|
获取一个资源时, 先查找拥有此资源的节点列表
|
|
|
|
|
|
|
|
增量列表
|
|
|
|
|
|
|
|
节点列表伺服器记录每个节点持有的资源,
|
|
|
|
假设有 ABCDE 节点在线, 当 E 节点请求资源 a,
|
|
|
|
向伺服器查询没有任何节点持有此资源, 则从 CDN 下载此资源, 并通知伺服器将持有此资源 48 h
|
|
|
|
如果此节点持有资源过多, 将主动过期部分资源
|
|
|
|
|
|
|
|
O1双向查询
|
|
|
|
获取和修改某个节点持有的所有资源
|
|
|
|
获取和修改持有某个资源的所有节点
|
|
|
|
节点的上线和下线状态变动
|
|
|
|
|
|
|
|
应用于大量用户在线的网站或游戏以及图床, 当然也可以存储网站本身的 JS 文件
|
|
|
|
|
|
|
|
|
|
|
|
### 安全
|
|
|
|
资源污染: 某些节点发放虚假资源(使用hash校验)
|
|
|
|
空壳节点: 某些节点上报资源却拒绝分享资源(节点可用性上报)
|
|
|
|
虚假上报: 可用节点报告为不可用, 不可用节点报告为可用(伺服器要求指定节点上报指定节点可用性)
|
|
|
|
|
|
|
|
|
|
|
|
### 节点
|
|
|
|
某终端连接 8 个节点, 查询某资源信息
|
|
|
|
8x8=64 节点
|
|
|
|
64x8=512 节点
|
|
|
|
|
|
|
|
建立连接后交换资源列表及过期时间
|
|
|
|
|