peer - to - peer
- 没有服务器
- 任意端系统之间直接通信
- 节点阶段性接入internet
- 节点可能更换ip地址
文件分发 BitTorrent协议
- 参与交换文件块的文件形成一个组 torrent
- 对于每一个torrent 有一个tracker跟踪参与torrent的节点
- 文件被划分为256kb的chunk
- 新加入的节点,向tracker注册,获取torrent节点清单,与之建立连接,下载的同时上传自己的chunk
- 动态加入或离开
获取chunk:
- 给定某一时刻,不同的节点持有文件的不同chunk集合
- 节点定期查询每个邻居所持有的chunk的列表
- 节点发送请求,请求获取缺失的chunk(稀缺优先)
发送chunk tit-for-tat
- 向对自己贡献最大的节点发送chunk
- 每隔一段时间重新评估
- 每隔一段时间随机向某个节点发送
bittorrent技术对网络性能有哪些潜在的危害:
- 对硬盘的损害
- 对网络带宽的损害
- 助长了病毒的传播
- 可能面临着版权侵害的风险
p2p 索引技术 :信息到节点位置(ip地址+端口号)的映射
- 集中式索引(比如napster公司)(内容和文件的传输是分布式的,但是内容的定位是高度集中式的)(单点失效问题,性能瓶颈问题,版权问题)
- 洪泛式查询(完全分布式架构,如Gnutella公司)(每个节点只对它共享的文件进行索引)(查询消息通过已有的TCP连接发送,节点转发查询消息,如果查询命中,则利用反向路径发回查询节点)
- 层次式覆盖网络(介于以上两种,如skype)(每个节点或者是一个超级节点,或者被分配一个超级节点)
覆盖网络
- 节点之间如果有tcp连接,那么构成一个边
- 所有的活动节点和边构成构成覆盖网络
- 边:虚拟链路
- 节点一般邻居数小于十个