博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【计算机网络】第二章 网络应用(5)
阅读量:5010 次
发布时间:2019-06-12

本文共 1640 字,大约阅读时间需要 5 分钟。

五.P2P应用

1. 原理与文件分发

1)纯P2P架构

  ·无服务器

  ·任意端系统之间直接通信

  ·节点阶段性接入Internet

  ·节点可能更换IP地址

2)文件分发:C/S vs P2P

 

  ·C/S结构:T = max{ T1, T2 } = max{ NF/us, F/min(di) }

    - 服务器串行发送N个副本:T1 = NF/us

    - 客户机i下载:T2 = F/di

  ·P2P结构:T = max{ T1, T2, T3 } = max{ F/us, F/min(di), NF/(us + ∑ui) }

    - 服务器必须发送一个副本:T1 = F/us

    - 客户机i下载:T2 = F/di

    - 最快可能上传速率:us + ∑ui

    - 总共需要下载NF比特:T3 = NF/(us + ∑ui)

 

2. BitTorrent协议

 

1Alicetracker查询torrent的节点列表,和列表中的节点建立TCP连接

2)文件划分为256KBchunk

3)节点加入torrent时无chunk,需向tracker注册以获得节点清单,与某些邻居建立连接,逐渐积累chunk

4)下载的同时,节点需要向其他节点上传chunk

5)节点动态地加入或离开,获得完整的文件后,可能离开或留下

6)获取chunk

  ·给定任一时刻,不同节点持有文件地不同chunk集合

  ·Alice定期查询每个邻居所持有地chunk列表

  ·节点发送请求,请求获取缺失的chunk

    - 稀缺优先:如某一chunk只有很少节点持有,那么先请求这一chunk

7)发送chunktit - for - tat

  ·Alice4个正在向Alice发送chunk、并且速率最快的邻居发送chunk,每10秒重新评估top 4

  ·每30秒随机选择一个其他节点,向其发送chunk,新选择的节点可能加入top 4

3. 索引技术

(1)搜索信息

  ·P2P系统的索引:信息到节点位置(IP地址 + 端口号)的映射

  ·文件共享:如电驴

    - 利用索引动态跟踪节点所共享的文件位置

    - 节点需要告诉索引它拥有哪些文件

    - 节点搜索索引从而获知能够得到哪些文件

  ·即时消息:如QQ

    - 索引负责将用户名映射到位置

    - 当用户开启IM应用时,需要通知索引它的位置

    - 节点检索索引,确定用户的IP地址

(2)集中式索引

  ·Napster

    - Alice加入时通知中央服务器IP地址和查找内容

    - 中央服务器通知AliceBob持有所需文件

    - AliceBob建立连接传输文件

  ·问题:单点失效问题、性能瓶颈、版权问题

(3)洪泛式查询

  ·完全分布式架构,每个节点对且仅对其共享的文件进行索引

  ·Gnutella

    - 查询消息通过已有的TCP连接发送

    - 收到消息的节点转发查询消息

    - 如果查询命中,则利用反向路径发回查询节点

  ·覆盖网络

    - 节点XY之间如果有TCP连接则构成一条边

    - 所有活动节点和边构成覆盖网络,节点邻居一般少于10

  ·问题:大量消耗网络带宽,导致网络拥塞

(4)层次式覆盖网络:介于集中式与洪泛式之间

  ·每个节点是超级节点或普通节点

  ·普通节点仅与超级节点连接,超级节点进行互相连接

 

  ·超级节点负责跟踪子节点的内容

  ·Skype

    - 文件传输本质为P2P结构,节点对之间直接通信

    - 索引分布在超级节点上,负责维护用户名与IP地址间的映射

    - 采用私有应用层协议

转载于:https://www.cnblogs.com/zhangyushuqing/p/9639707.html

你可能感兴趣的文章
接口测试(java+testng+ant+jenkins)第四篇jenkins
查看>>
Docker折腾手记-linux下安装
查看>>
Log4net入门使用
查看>>
NSLayoutConstraint 使用详解 VFL使用介绍
查看>>
Node.js中流程控制
查看>>
Netdata 服务器前端监控平台
查看>>
JSP内置对象概述
查看>>
安装 Tesserocr (填坑)
查看>>
freemarker对html里多行表格操作
查看>>
VM配置文件所在磁盘空间小于其配给内存时的错误信息
查看>>
ThinkCMF5.1主要特性
查看>>
CSS布局技巧
查看>>
mysqlimport 导入文件到数据库命令
查看>>
codeup 算法笔记【递归入门】组合+判断素数
查看>>
Linux开启关闭redis
查看>>
Application.Current的使用
查看>>
3487. 【NOIP2013模拟联考11】剑与魔法(dragons) (Standard IO)
查看>>
5791. 【NOIP2008模拟】阶乘
查看>>
python3学习笔记--list.append()/extend()/+=
查看>>
zookeeper的客户端应用
查看>>