第二章第六节 P2P应用

在本节内容开始前,我们要先来对P2P架构有一个宏观的认知:

  P2P:(Peer to Peer 对等结构)   以对等方式进行通信,并不区分客户端和服务端,而是平等关系进行通信。在对等方式下,可以把每个相连的主机当成既是主机又是客户,可以互相下载对方的共享文件。比如迅雷下载就是典型的P2P通信方式。 

  本章描绘的前三个应用都采用了CS(客户-服务器)体系结构,极大的依赖于总是打开的基础设施服务器。而在本节中,我们将介绍两种适用于P2P的应用:一个是文件分发,在其中我们将介绍流行的BitTorrent协议;另一个是分布在大型对等方社区中的数据库,在其中我们将探讨分布式散列表(Distrubuted Hash Table,DHT)的概念。

Outline

  • 文件分发

    • P2P系统结构的扩展性
    • BitTorrent
  • P2P应用:索引技术
    • P2P中搜索信息
    • 集中式索引
    • 查询洪泛
    • 层次覆盖
  • 分布式散列表

Note

  • 纯P2P架构具有如下特点:

    • 没有服务器,任意端系统之间直接通信
    • 节点阶段性接入Internet
    • 节点可能更换IP地址
    • 资源共享
    • 资源分布

## 文件分发

【P2P体系结构的扩展性】

  • 为了方便讨论,我们假设如上图的简单定量模型,其中us为服务器上传带宽;ui为节点i上传带宽,di为节点i下载带宽。
  • 对于客户机/服务器架构:
    • 服务器串行地发送 N 个副本,时间为: NF/us
    • 客户机i 需要 F/d的时间下载
    • 我们所需要的最短时间为:
  • 对于P2P架构:
    • 服务器必须发送一个副本,时间: F/us
    • 客户机i 需要 F/d的时间下载
    • 总共需要下载NF比特
    • 最快的可能上传速率: us + ∑ui
    • 所需要的最短时间为:
  • 结论:对足够大的N(对等方的数量):
    • 客户机/服务器体系结构的分发时间随着对等方的数量N线性增加并且没有界
    • P2P体系结构,其最小分发时间曲线与log2N曲线类似,因此最小分发时间远小于客户机/服务器体系结构的分发时间。其自扩展性很强

【BitTorrent】

  • BitTorrent是一种用于文件分发的流行P2P协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。
  • BT协议与FTP协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽。通过一定的策略保证上传速度越快,下载速度也越快。
  • 基本概念:
    • Torrent:参与一个特定文件分发的所有对等方的集合被称为一个洪流
    • chunk:在一个洪流中的对等方彼此下载等长度的文件(一个文件被分成若干个块),典型的块长度为256KB。
    • Tracker:每个洪流都有一个基础设施结点,成为追踪器

  • 当一个新节点(Alice)加入torrent:

    • 没有chunk,但会随着时间不断积累
    • 结点向tracker注册获得节点信息表,并与某些结点建立联系(成为“邻居”),一个结点的临近对等点会随着时间而波动。
  • 结点下载的同时,也为其他对等方上传了多个块。结点可能随时加入或离开。
  • chunk的获取
    • 给定任一时刻,不同的节点持有文件的不同chunk集合
    • 节点(Alice)定期查询每个邻居所持有的chunk列表
    • 节点发送请求,请求获取缺失的chunk 
      • 稀缺优先:针对她没有的块在他的邻居中决定最稀缺(副本数量最少)的块,并优先请求稀缺块
      • 稀缺优先的目的:大致的均衡每个块在洪流中的副本数量
  • chunk的发送:决定Alice响应哪个请求(对换算法)
    • Alice根据当前能够以最高速率向他提供数据的邻居,给出其优先权
    • 每10秒,重新评定一下Top4,这四个对等方被称为疏通(unchocked
    • 每30秒,Alice随机选择一个其他结点,向其发送chunk。
    • 除了随机选择的伴侣作为试探对等方和之前的Top4,其他的对等方都称为阻塞()

## P2P应用:索引技术

【P2P中搜索信息】

  • P2P系统的索引:信息到节点位置(IP地址+端口号)的映射。
  • 文件共享(电驴)
    • 利用索引动态跟踪节点所共享的文件的位置
    • 节点需要告诉索引它拥有哪些文件
    • 节点搜索索引,从而获知能够得到哪些文件
  • 即时消息(QQ)
    • 索引负责将用户名映射到位置
    • 当用户开启IM应用时,需要通知索引它的位置
    • 节点检索索引,确定用户的IP地址

【集中式索引】

  • 如上图所示,集中式索引更像是P2P和CS的混合体
  • 当Alice需要下载信息时,经过以下步骤:
    1. 初始时,所有的对等方要将自身的IP和可共享的文件名称通知集中式索引服务器,该索引服务器从每个活动的对等方那里收集这些信息,从而建立起一个动态索引,将每个文件拷贝映射到一个IP地址集合。
    2. 当Alice需要下载一些文件时会将查询内容发送给索引服务器,服务器将查询结果返回给Alice(Bob的IP地址)。
    3. Alice根据收到的信息,从Bob处下载资源。
  • 集中式索引的问题:内容和文件传输是分布式的,但是内容定位是高度集中式的。会出现如下问题:单点失效问题、性能瓶颈、版权问题。

【查询洪泛】(建立在“Gnutella”协议基础上)

  • 查询洪泛采用完全分布式方法。在查询洪泛中,索引全面地分布在对等方的区域中。每个对等方索引可供共享的文件而不索引其他文件。
  • 其扩展性差,尤其是为了防止某个对等方发起查询,该查询就会传播到整个覆盖网络的每个其他对等方,从而产生大量流量。为解决这个问题,设计者使用了受限查询洪泛,即限制其传播的最大跳数。

【层次覆盖】(由FastTrack首创,Kazza和Morpheus也实现了这种文件共享协议)

  该方法结合了上述两种方法的优秀特征,与洪泛查询类似,层次覆盖设计不使用专用的服务器(或服务器场)来跟踪和索引文件。然而,与洪泛查询不同的是,在层次覆盖的设计中并非所有对等方都是平等的。

  如下图所示,如果某对等方不是超级对等方,则它就是一个普通对等方,并被指派为一个超级对等方的子对等方。

  超级对等方维持着一个索引,该索引包括子对等方正在共享的所有文件的标识符、有关文件的元数据和相应子对等方的IP地址,但与前面的集中式索引不同,这里的超级对等方并不是一台专用服务器,而是普通对等方。超级对等方之间可以相互建立TCP连接,从而形成一个覆盖网络。

## 分布式散列表

在课程中未涉猎,具体请移步https://blog.csdn.net/zy_zhengyang/article/details/76838523

转载于:https://www.cnblogs.com/hithongming/p/9350978.html

【计算机网络】2.6 P2P应用相关推荐

  1. 计算机网络-自顶向下笔记-应用层-P2P应用

    计算机网络所有笔记 P2P文件分发 P2P(peer to peer)应用的特性: 没有服务器 任意端系统之间直接进行通信 节点阶段性接入Internet 节点可能更换IP地址 P2P的明显的缺点:复 ...

  2. 计算机对等网络,什么是对等网络p2p?

    对等网络,简称P2P,是指使用分布式体系结构的计算机网络.在P2P网络中,属于它们的所有计算机和设备都称为对等设备,它们共享和交换工作负载.对等网络中的每个对等方都等于其他对等方.网络中没有特权对等体 ...

  3. 拿下计网协议后,我就是公园里最靓的仔

    下面我们就要对不同的协议层进行分类介绍了,我们还是采用自上而下的方式来介绍,这种介绍对读者来说更容易接纳,吸收程度更好. 一般情况下,用户不太在意网络应用程序实际上是按照怎样的机制运行的,但我们是程序 ...

  4. 史上最全!你要问我应用层?我就和你扯扯扯Java面试题及解析

    网络应用是计算机网络存在的理由,一批早起的网络应用主要有电子邮件.远程访问.文件传输等,但是随着计算机网络的发展和人类无穷无尽的需求,越来越多的网络应用被开发出来,例如即时通讯和对等(P2P)文件共享 ...

  5. 计算机本科核心课程教学视频,绝对经典(28门核心视频课程)

    科目如下: ├─C++语言程序设计_清华大学_郑莉(基础篇+进阶篇) ├─C语言程序设计_哈尔滨工业大学_苏小红 ├─信号与系统_西安电子科技大学_郭宝龙 ├─密码学_武汉大学_张焕国 ├─操作系统原 ...

  6. 计算机本科核心课程教学视频,绝对经典,有空温习温习~

    计算机本科核心课程教学视频,绝对经典啊.有空温习温习~ 科目如下: ├─C++语言程序设计_东南大学_何洁月(80讲) ├─C语言程序设计_哈尔滨工业大学_苏小红 ├─信号与系统_西安电子科技大学_郭 ...

  7. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★

    文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...

  8. 可能感兴趣的计算机网络协议 -- P2P

    作者:opLW 漫长寒假,结束了毕业论文的初稿.最近闲来无事学了点Flutter,感觉多个内容同时学可能会比较有趣,然后就重新捡起了网络协议看起了<趣谈网络协议>和<计算机网络> ...

  9. 计算机网络协议(四)——HTTP、HTTPS、P2P协议

    底层网络知识详解:最常用的应用层 概述 一.HTTP协议 1.1.HTTP 1.1 1.2.HTTP 2.0 1.3 QUIC协议 二.HTTPS协议 三.P2P协议 概述 这个专栏的计算机网络协议, ...

  10. 计算机网络原理(8)——P2P(文件收发、索引技术)

    计算机网络原理(8)--P2P(文件收发.索引技术) 一.文件收发 Peer-to-peer 没有服务器 任意端系统之间直接通信 节点阶段性接入Internet 节点可能更换IP地址 问题:从一个服务 ...

最新文章

  1. html5 data url,HTML5 / Javascript – DataURL到Blob和Blob到DataURL
  2. 【组合数学】递推方程 ( 非齐次部分是指数的情况 | 非齐次部分是指数的情况示例 )
  3. C#字符串中特殊字符的转义
  4. 【英语学习】【WOTD】bardolater 释义/词源/示例
  5. template 标签
  6. linux 卷文件满,LVM逻辑卷容量的增减
  7. [Java] 蓝桥杯ALGO-120 算法训练 学做菜
  8. Win7/Win8/Win8.1下配置apache+php运行缓慢问题解决方法
  9. Android 销毁当前页面
  10. 微信支付将为O2O画上句号
  11. IBM ServerGuide导航光盘下载列表
  12. android系统b181更新包,华为nova 2s官方固件rom刷机包_华为nova2s完整系统升级包
  13. 计算机服务添加打印机服务,windows7系统添加打印机Print Spooler服务教程
  14. 残差、方差、偏差、MSE均方误差、Bagging、Boosting、过拟合欠拟合和交叉验证
  15. A银行B分行零售营销人员激励机制研究
  16. html网页什么样的字体最好看,css设置各种中文字体样式代码
  17. Swagger简单使用之从入门到精通
  18. win10下速腾聚创RS-Lidar-32配置教程
  19. js调用(前/后)摄像头,截取照片,关闭摄像头
  20. m序列码产生电路设计与仿真

热门文章

  1. 微极速彩虹易支付第四方免签支付平台源码
  2. 山楂大仙九月三十号代码上线
  3. 一文读懂阿里云挑战 AWS 的底气 | 2018•大复盘
  4. MySQL事务——事务隔离界别,MVCC
  5. 最近网络很火的支付宝 收款码 小议
  6. Java 知识结构图
  7. 仔细看这几段代码,看看你是Python新鸟还是老鸟
  8. 强化学习系列(1) 基本概念
  9. 数字调制系列:IQ调制基本理论
  10. 微信小程序怎么做圆角头像