P2P 应用

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)计算得出其后继结点

欢迎一起学习~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/392009.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Seurat 5 demo

1. 安装效果 > packageVersion("Seurat") [1] ‘5.0.0’ > packageVersion("SeuratObject") [1] ‘5.0.1’ > > packageVersion("SeuratData") [1] ‘0.2.2.9001’ > packageVersion("SeuratWrappers") [1] ‘0.3.2’…

AI:128-基于机器学习的建筑物能源消耗预测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

【LeetCode: 429. N 叉树的层序遍历 + BFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

《VulnStack》ATTCK-1

title: 《VulnStack》ATT&CK-1 date: 2024-01-29 14:53:49 updated: 2024-02-14 18:55:49 categories: WriteUp&#xff1a;Cyber-Range excerpt: 主机发现、端口扫描&#xff0c;服务探测&#xff0c;操作系统探测、nmap 漏洞库扫描、网站首页信息泄露、msf 渗透与信息收集…

【打工日常】使用docker部署linux-command解析搜索工具

一、linux-command介绍 linux-command工具是一个非盈利性的工具&#xff0c;里面记录了550 个 Linux 命令&#xff0c;内容包含 Linux 命令手册、详解、学习&#xff0c;是值得收藏的 Linux 命令速查手册。内容来自网络和网友的补充。 二、本次实践介绍 1. 本次实践简介 本次…

STM32固件库简介与使用指南

1. STM32官方标准固件库简介 STM32官方标准固件库是由STMicroelectronics&#xff08;ST&#xff09;提供的一套软件开发工具&#xff0c;旨在简化STM32微控制器的软件开发过程。该固件库提供了丰富的功能和模块&#xff0c;涵盖了STM32微控制器的各种外设&#xff0c;包括但不…

PLC-Recorder的延伸分析功能说明

目录 一、缘起 二、如何从PLC-Recorder获取数据 1、在线获取 2、全自主打开数据文件 3、延伸分析 三、设置方法 四、效果展示 一、缘起 在各个行业&#xff0c;在不同的场景中&#xff0c;朋友们拿到数据后&#xff0c;想做的事情五花八门&#xff0c;有做宏观分析的、…

MOSFET栅极应用电路分析汇总(驱动、加速、保护、自举等等)

概述 MOSFET是一种常见的电压型控制器件&#xff0c;具有开关速度快、高频性能、输入阻抗高、噪声小、驱动功率小、动态范围大、安全工作区域(SOA)宽等一系列的优点&#xff0c;因此被广泛的应用于开关电源、电机控制、电动工具等各行各业。栅极做为MOSFET本身较薄弱的环节&am…

《白话C++》第10章 STL和boost,Page67~70 std::auto_ptr

std::auto_ptr可以不经意间转移裸指针控制权 std::auto_ptr持有裸指针的控制权&#xff0c;却可以随随便便看似不经意地转移给另一个auto_ptr: #include <iostream> #include <memory>using namespace std;struct S {int a;void SetA(int a){this->a a;}~S()…

Sentinel注解@SentinelResource详解

Sentinel注解SentinelResource详解 熔断 针对访问超过限制【sentinel中配置的限制】的资源&#xff0c;通过java代码配置&#xff0c;返回一个自定义的结果&#xff0c;需要用到 SentinelResource 注解的 blockHandlerClass 和 blockHandler 属性。 blockHandlerClass&#…

Linux CPU 性能分析工具火焰图(Flame Graphs)认知

写在前面 博文内容为 《BPF Performance Tools》 读书笔记整理详细了解小伙伴可以访问作者官网&#xff1a;https://www.brendangregg.com/flamegraphs.html有油管上分享的作者在USENIX ATC 2017 的视屏理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&a…

恢复被.target勒索病毒加密的数据文件:拒绝向.target勒索病毒支付赎金

引言&#xff1a; 在当今数字时代&#xff0c;勒索病毒已成为网络安全领域的一大威胁&#xff0c;而.target勒索病毒是其中引起广泛关注的一种变种。本文将深入探讨.target勒索病毒的特点以及被其加密的数据文件恢复方法。数据的重要性不容小觑&#xff0c;您可添加我们的技术…

2024023期传足14场胜负前瞻

新的一年祝大家行大运、发大财、中大奖&#xff01;2024023期赛事由英超2场&#xff0c;德甲2场、意甲4场、西甲3场、法甲3场组成。售止时间为2月18日&#xff08;周六&#xff09;21点30分&#xff0c;敬请留意&#xff1a; 本期中深盘较少&#xff0c;1.5以下赔率仅1场&#…

阿里云服务器租用费用价格多少钱啊?一年、1个月、1小时

2024年最新阿里云服务器租用费用优惠价格表&#xff0c;轻量2核2G3M带宽轻量服务器一年61元&#xff0c;折合5元1个月&#xff0c;新老用户同享99元一年服务器&#xff0c;2核4G5M服务器ECS优惠价199元一年&#xff0c;2核4G4M轻量服务器165元一年&#xff0c;2核4G服务器30元3…

数学建模【非线性规划】

一、非线性规划简介 通过分析问题判断是用线性规划还是非线性规划 线性规划&#xff1a;模型中所有的变量都是一次方非线性规划&#xff1a;模型中至少一个变量是非线性 非线性规划在形式上与线性规划非常类似&#xff0c;但在数学上求解却困难很多 线性规划有通用的求解准…

Sora技术报告——Video generation models as world simulators

文章目录 1. 视频生成模型&#xff0c;可以视为一个世界模拟器2. 技术内容2.1 将可视数据转换成patches2.2 视频压缩网络2.3 Spacetime Latent Patches2.4 Scaling transformers 用于视频生成2.5 可变的持续时间&#xff0c;分辨率&#xff0c;宽高比2.6 抽样的灵活性2.7 改进框…

《剑指 Offer》专项突破版 - 面试题 44 : 二叉树中每层的最大值(两种方法 + C++ 实现)

目录 前言 一、只用一个队列 二、使用两个队列 前言 题目链接&#xff1a;LCR 044. 在每个树行中找最大值 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 输入一棵二叉树&#xff0c;请找出二叉树中每层的最大值。例如&#xff0c;输入下图中的二叉树&#x…

仅需5元,手把手教你训练纳西妲GPT-SoVITS模型

资源下载及音频试听&#xff1a; 仅需5元&#xff0c;手把手教你训练纳西妲GPT-SoVITS模型 - 风屿岛 (biliwind.com) 购买服务器 首先&#xff0c;我们需要买一台显卡云服务器 极度推荐使用雨云&#xff0c;优惠码&#xff1a;wp-admin 账户注册成功后&#xff0c;前往&am…

机试复习-4

1.string类 string类型和数值的转换 ※数值→字符串 to_string函数 //具体做法 int i1234; string gto_string(i);//这样就转成字符串1234了 //下面就是字符串转为数字&#xff0c;类似下面还有stof,stoi,stod string d "1289347647"; int j stoi(d); cout <…

2024.2.17 作业

1.终端输入一个字符&#xff0c;判断是大写字母小写字母还是数字字符 代码&#xff1a; #! /bin/bash read var case $var in [0-9]) echo 数字 ;; [[:lower:]]) echo 小写字母 ;; [[:upper:]]) echo 大写字母 …