P2P 应用

news/2024/11/24 11:32:27/

P2P 工作方式概述

·在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输

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

·Napster 最早使用 P2P 技术,提供免费下载 MP3 音乐。

·Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服务器中。

·使用者只要查找目录服务器,就可知道应从何处下载所要的 MP3 文件。

·用户要及时向 Napster 的目录服务器报告自己存有的音乐文件。

·Napster 的文件传输是分散的,文件的定位则是集中的。

Napster 的工作过程

1.用户 X 向 Napster 目录服务器查询(采用客户服务器方式)谁有音乐文件 MP3#。

2.Napster 目录服务器回答 X:有三个地点有文件 MP3#,即 A, B 和 C(给出了这三个地点的 IP 地址)。于是用户 X 得知所需的文件 MP3# 的三个下载地点。

3.用户 X 可以随机地选择三个地点中的任一个。假定 X 向 A 发送下载文件 MP3# 的请求报文。双方都使用 P2P 方式通信。

4.对等方 A(现在作为服务器)把文件 MP3# 发送给 X。

集中式目录服务器的缺点

·可靠性差。

·会成为性能的瓶颈。

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

·Gnutella 是第二代 P2P 文件共享程序,采用全分布方法定位内容的 P2P 文件共享应用程序。

·Gnutella 与 Napster 最大的区别不使用集中式的目录服务器,而是使用洪泛法在大量 Gnutella 用户之间进行查询。

·为了不使查询的通信量过大,Gnutella 设计了一种有限范围的洪泛查询,减少了倾注到互联网的查询流量,但也影响到查询定位的准确性。

·第三代 P2P 文件共享程序采用分散定位和分散传输技术。例如 KaZaA,电骡 eMule,比特洪流 BT (Bit Torrent) 等。

使用 P2P 的比特洪流 BT 主要特点

·BitTorrent 所有对等方集合称为一个洪流 (torrent)。

·下载文件的数据单元为长度固定的文件块 (chunk)。

·基础设施结点,叫做追踪器 (tracker)。

·A 和对等方建立了 TCP 连接。所有与 A 建立了 TCP 连接的对等方为相邻对等方(neighboring peers)。

相邻关系是逻辑的,对等方的数目是动态变化的

对等方之间互相传送文件数据块

BT 协议

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

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

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

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

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

3  P2P 文件分发的分析

从互联网传送数据到主机,叫做下载 (download);

从主机向互联网传送,则称为上传 (upload) 或上载。

有 N 台主机从服务器下载一个大文件,其长度为 F bit。

假定主机与互联网连接的链路的上传速率和下载速率分别为 ui 和 di ,单位都是 bit/s。

客户-服务器方式下分发的最短时间分析:

·从服务器端考虑,所有主机分发完毕的最短时间 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 小时。

4  在 P2P 对等方中搜索对象

·Napster 在一个集中式目录服务器中构建查找数据库,简单,但性能上有瓶颈

·Gnutella 是一种采用全分布方法定位内容的 P2P 文件共享应用程序,它解决了集中式目录服务器所造成的瓶颈问题。但 Gnutella 是在非结构化的覆盖网络中采用查询洪泛的方法进行查找,因此查找的效率较低

·现在广泛使用的索引和查找技术叫做分布式散列表 DHT (Distributed Hash Table)。

·DHT 也可译为分布式哈希表,由大量对等方共同维护。

·广泛使用的 Chord 算法是美国麻省理工大学于 2001 年提出的。

基于 DHT 的 Chord 环

·分布式散列表 DHT 利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射资源名标识符 KID 结点标识符 NID

·Chord 把结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络

·每个资源由 Chord 环上与其标识符值最接近的下一个结点提供服务。

通过指针表加速 Chord 表查找

·为了加速查找,在 Chord 环上可以增加一些指针表(finger table),又称为路由表查找器表

·对于结点 N4,其指针表的第 2 列第 i  行根据(N4 + 2i – 1)计算得出其后继结点

欢迎一起学习~


http://www.ppmy.cn/news/1353733.html

相关文章

【Crypto | CTF】BUUCTF RSA1

天命&#xff1a;都不知道别人那些底层公式是怎么来的&#xff0c;大神们推到了几页纸 天命&#xff1a;无端端推导着就多了个k&#xff0c;多个一些奇奇怪怪的东西&#xff0c;一脸懵逼 天命&#xff1a;没事&#xff0c;拿代码当成公式背也能解密出来 已知&#xff1a;p q …

React和Vue 中的 router 实现原理如何

React 和 Vue 中的路由器&#xff08;Router&#xff09;实现原理类似&#xff0c;都是基于监听 URL 变化&#xff0c;然后根据不同的 URL 加载相应的组件或页面。下面是它们的一般实现原理&#xff1a; React Router 实现原理&#xff1a; History API&#xff1a; React Rou…

第9章 网络编程

9.1 网络通信协议 通过计算机网络可以实现多台计算机连接&#xff0c;但是不同计算机的操作系统和硬件体系结构不同&#xff0c;为了提供通信支持&#xff0c;位于同一个网络中的计算机在进行连接和通信时必须要遵守一定的规则&#xff0c;这就好比在道路中行驶的汽车一定要遵…

云计算基础-大页内存

大页内存功能概述 什么是大页内存 简单来说&#xff0c;就是通过增大操作系统页的大小来减小页表&#xff0c;从而避免快表缺失 主要应用场景 主要运用于内存密集型业务的虚拟机&#xff0c;比如对于运行数据库系统的虚拟机&#xff0c;采用HugePages(大页)后&#xff0c;可…

二分算法01

二分算法01 1. H指数II2. 使结果不超过阈值的最小除数3. 完成旅途的最少时间 1. H指数II 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数&#xff0c;citations 已经按照 升序排列 。计算并返回该研究者的 h 指数。 h 指数的…

JavaWeb之请求

请求 客户端请求由ServletRequest类型的request对象表示&#xff0c;在HTTP请求场景下&#xff0c;容器提供的请求对象的具体类型为HttpServletRequest HTTP的请求消息分为三部分&#xff1a;请求行、请求头、请求正文。 请求行对应方法 // 获取请求行中的协议名和版本public S…

2月12号

第一种判断方式 if (n 10) 更好&#xff0c;因为它具有更好的可读性、可以避免误操作&#xff0c;并符合常见的编程习惯和约定

STM32F1 - 中断系统

Interrupt 1> 硬件框图2> NVIC 中断管理3> EXTI 中断管理3.1> EXTI与NVIC3.2> EXTI内部框图 4> 外部中断实验4.1> 实验概述4.2> 程序设计 5> 中断向量表6> 总结 1> 硬件框图 NVIC&#xff1a;Nested Vectored Interrupt Controller【嵌套向量…