P2P 应用

P2P 工作方式概述

  • P2P 工作方式受到广大网民的欢迎。
  • 在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。
  • 这种工作方式解决了集中式媒体服务器可能出现的瓶颈问题。
  • 在互联网流量中,P2P 工作方式下的文件分发已占据了最大的份额,比万维网应用所占的比例大得多。

具有集中目录服务器的 P2P 工作方式

  • Napster 最早使用 P2P 技术,提供免费下载 MP3 音乐。
  • Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服务器中。
  • 使用者只要查找目录服务器,就可知道应从何处下载所要的MP3文件。
  • 用户要及时向 Napster 的目录服务器报告自己存有的音乐文件。
  • Napster 的文件传输是分散的,文件的定位则是集中的。

Napster 的工作过程




集中式目录服务器的缺点

  • 可靠性差。
  • 会成为性能的瓶颈。

具有全分布式结构的 P2P 文件共享程序

  • Gnutella 是第二代 P2P 文件共享程序,采用全分布方法定位内容的 P2P 文件共享应用程序。
  • Gnutella 与 Napster 最大的区别是:不使用集中式的目录服务器,而是使用洪泛法在大量 Gnutella 用户之间进行查询。
  • 为了不使查询的通信量过大,Gnutella 设计了一种有限范围的洪泛查询,以减少倾注到互联网的查询流量,但也影响到查询定位的准确性。

eMule 的其他特点

  • eMule 使用了一些服务器。这些服务器并不是保存音频/视频文件,而是保存用户的有关信息,因而可以告诉用户从哪些地方可以下载到所需的文件。
  • eMule 使用了专门定义的文件夹,让用户存放可以和其他用户共享的文件。
  • eMule 的下载文件规则是鼓励用户向其他用户上传文件。用户上传文件越多,其下载文件的优先级就越高(因而下载就越快)。

使用 P2P 的比特洪流 BT

  • BitTorrent 所有对等方集合称为一个洪流 (torrent),
  • 下载文件的数据单元为长度固定的文件块 (chunk)。
  • 基础设施结点,叫做追踪器 (tracker)。
  • A 就和这些对等方建立了 TCP 连接。所有与 A 建立了 TCP 连接的对等方为“相邻对等方”(neighboring peers)。

BT 协议

  • 问题1:哪些文件块是首先需要向其相邻对等方请求的?

  • A 使用最稀有的优先 (rarest first) 的技术,首先向其相邻对等方请求对应的文件块。

  • 所谓稀有是指:如果A所缺少的文件块在相邻对等方中的副本很少,那就是“很稀有的”。

  • 问题2:在很多向A请求文件块的相邻对等方中,A应当向哪些相邻对等方发送所请求的文件块?

  • 凡当前以最高数据率向 A 传送文件块的某相邻对等方,A 就优先把所请求的文件块传送给该相邻对等方。

P2P 文件分发的分析

一些概念

  • 从互联网传送数据到主机,叫做下载 (download),
  • 从主机向互联网传送,则称为上传 (upload) 或上载

P2P 文件分发的分析

有 N 台主机从服务器下载一个大文件,其长度为 F bit。假定主机与互联网连接的链路的上传速率和下载速率分别为 ui 和 di ,单位都是 bit/s。

C/S 方式下分发的最短时间

  • 从服务器端考虑,所有主机分发完毕的最短时间 Tcs 不可能小于 NF/us ;
  • 下载速率最慢的主机的下载速率为 dmin,则 Tcs 不可能小于 F/dmin 。
  • 由此可得出所有主机都下载完文件 F 的最少时间是:
    Tcs=max( NF/us,F/dmin )

客户–服务器方式下分发的最短时间

  • 从服务器端考虑,所有主机分发完毕的最短时间 Tcs 不可能小于 NF/us ;
  • 下载速率最慢的主机的下载速率为 dmin,则 Tcs 不可能小于 F/dmin 。
  • 由此可得出所有主机都下载完文件 F 的最少时间是:
    Tcs=max( NF/us,F/dmin )

P2P 方式下分发的最短时间

  • 初始服务器文件分发的最少时间不可能小于 F/us ;
  • 下载文件分发的最少时间不可能小于 F/dmin ;
  • 上载文件分发的最少时间不可能小于 NF/uT ,其中是 uT 是上传速率之和。
  • 所有主机都下载完文件 F 的最少时间的下限是:
    Tp2p >= max( F/us , F/dmin, NF/uT )

时间比较

  • 设所有的对等方的上传速率都是 u,并且 F/u = 1 小时。
  • 设服务器的上传速率 us = 10u。
  • 当 N = 30 时,
  1. P2P方式:最少时间的下限是 0.75 小时 < 1 小时(不管 N 多大)。
  2. 客户−服务器方式:最少时间是 3 小时。

在 P2P 对等方中搜索对象

  • Napster在一个集中式目录服务器中构建的查找数据库虽然很简单,但性能上却有瓶颈。
  • Gnutella是一种采用全分布方法定位内容的P2P文件共享应用程序,它解决了集中式目录服务器所造成的瓶颈问题。然而Gnutella是在非结构化的覆盖网络中采用查询洪泛的方法来进行查找的,因此查找的效率较低。
  • 现在广泛使用的索引和查找技术叫做分布式散列表 DHT (Distributed Hash Table)。DHT 也可译为分布式哈希表,它是由大量对等方共同维护的散列表。
  • 广泛使用的 Chord 算法是美国麻省理工大学于2001 年提出的。
  • 分布式散列表 DHT 利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射为资源名标识符 KID 和结点标识符 NID。
  • Chord 把结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络。

基于 DHT 的 Chord 环

  • 每个资源由 Chord 环上与其标识符值最接近的下一个结点提供服务。
  • 为了加速查找,在 Chord 环上可以增加一些指针表(finger table),它又称为路由表查找器表
  • 对于结点 N4, 第 1 列第 i 行计算(N4 + 2i – 1),得出后继结点。

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

  1. 计算机网络p2p应用,【计算机网络】2.6 P2P应用(示例代码)

    第二章第六节 P2P应用 在本节内容开始前,我们要先来对P2P架构有一个宏观的认知: P2P:(Peer to Peer 对等结构)   以对等方式进行通信,并不区分客户端和服务端,而是平等关系进行通 ...

  2. 计算机网络p2p应用,[计算机网络-应用层] P2P应用

    首先我们要先来区分一下下面的几种体系结构: CS:Client/Server 客户-服务器结构 BS:Browser/Server  浏览器-服务器结构 P2P:Peer to Peer 对等结构 B ...

  3. 计算机网络——p2p

    1. P2P系统 既是客户端consumer也是服务器端 producer+consumer=prosumer 任何时候都有加入或离开的自由 无限的peer diversity: 服务能力.存储空间 ...

  4. 计算机网络p2p应用,计算机网络(十二):P2P应用

    没有一直运行的服务器. 任意端之间能够通讯. peers能够任意加入或修改IP地址.web 一.P2P文件分发(共享?): a.P2P体系结构的扩展性: us表示服务器接入链路的上载速率,ui表示第i ...

  5. 计算机网络P2P学习

    title: p2plearning date: 2020-07-13 15:25:07 tags: java 一 .P2P 计网的一个课设 基于P2P的局域网即时通信系统 1.实现一个图形用户界面局 ...

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

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

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

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

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

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

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

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

最新文章

  1. windows下安装程序制作
  2. 【c语言】蓝桥杯算法提高 3-1课后习题2
  3. windows下的cmd命令(全面)
  4. maven安装错误履历
  5. centos7 没有pip命令_Linux(CentOS7)部署系列---Docker编排应用部署方案
  6. java synchronized 使用_Java中synchronized的使用实例
  7. php根本自学不了,PHP开发自学还是培训?
  8. Cookie, Session, LocalStorage, SessionStorage, Etag, Expire
  9. python对象、引用
  10. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议...
  11. 【Hibernate教程】集合映射
  12. Invest模型-碳储量计算
  13. 数学【1】:矩阵特征值与特征向量的求法
  14. 墨菲定律和海恩法则、事故调查“四不放过”原则--运维
  15. python怎么用圆周率_用python程序求圆周率到任意位
  16. 【Flink】Flink 消费 kafka retries和retry.backoff.ms 引起问题
  17. 【代码大全2】第33章 个人性格
  18. [Android]仿京东手机端类别页
  19. 逃脱者2服务器不稳定,逃脱者2EPIC版新手常见问题解决方法汇总
  20. 【uniapp】canvas画海报保存图片兼容H5和APP

热门文章

  1. 仁、义、礼、智、信、衷、孝、节、勇、和
  2. OpenGL 立方体贴图Cubemaps
  3. 怎么把录音导入库乐队_库乐队怎么导入音乐_怎么将音乐导入到库乐队中 库乐队导入音乐的方法...
  4. HDU 3496 Watch The Movie(看电影)
  5. 验证基于逻辑回归的隐马尔可夫模型的心音信号切分算法(literature study)
  6. 手机端页面自适应解决方案—rem布局
  7. 电脑显示无网络,刷新DNS解析缓存
  8. unity 画球面_unity3d第一个例子--制作一个简单的球体碰撞墙面
  9. CSS 字符间距letter-spacing属性
  10. 拉勾网数据分析师职位分析