释放双眼,带上耳机,听听看~!
纯P2P架构
P2P——peer to peer
- 没有中心服务器
- 任意端系统之间直接进行通信
- 节点阶段性的接入Internet
- 节点可能会更换IP地址
如果一个服务器以U上传速率对N个节点(下载速率为D)发送一个大小为F的文件
- 服务器需要的时间:NF/U
- 每一个客户端需要时间:F/D
- 整个Internet下载了NF比特
如果通过P2P技术的话对N个节点发送一个大小为F的文件
- 服务器需要时间:F/U
- 客户机需要的时间:F/D
- 整个Internet下载了NF比特
- 最快的上传速率为:U服+所有U用户
文件分发BitTorrent
将要下载的大文件划分为256KB的chunk,每个用户在下载chunk的同时都在上传自己的chunk给别人。其中tracker就是记录所有用户的地址然后告诉所有用户当前共享文件群里有多少节点可以连接。
P2P索引
索引一般是追踪节点的地址的。
集中式索引
将所有节点与中央服务器进行联系,索引查询都要通过中心服务器去查找。
虽然能很大程度解决联系的问题,但是也有一些自身限制的缺点。例如性能瓶颈,中央服务器式的性能受服务器自身性能影响较大,容易崩溃宕机。还有内容的问题,任意一个节点都可以追踪到中央服务器和另一个节点的位置。
洪泛式查询
这是一个完全去中心化的网络,通过当前节点发送一个索引请求,下一个节点不断的向自身下一个节点请求索引,直到找到最终对象,然后原路返回给请求对象。
### 层次式覆盖网络
综合了集中式和洪泛式,形成节点与超级节点,超级节点与超级节点之间的联系。
节点与超级节点之间维持TCP连接
超级节点与超级节点之间维持TCP连接