计算机网络-应用层协议5(P2P)

2023-11-06

本文介绍两种特别适合P2P设计的应用,第一种是文件分发,从单个源向大量对等方分发一个文件(特殊例子BitTorrent);第二种P2P应用是分布在大型对等社区中的数据库,重点讨论分布式散列表(DHT)的概念。

1.P2P文件分发

首先介绍文件分发环境中P2P体系结构的自扩展性;然后更详细地描述BitTorrent。

  • P2P体系结构的扩展性
    在这里插入图片描述
    因为对等方除了是比特的消费者外还是它们的重新分发者,所以在任意数量的对等方下,P2P体系结构的分发时间总是小于客户-服务器结构,而且一直小于1小时。也就是说它是自扩展的。
  • BitTorrent
    其是用于文件分发的流行P2P协议。参与特定文件分发的所有对等方的集合被称为一个洪流(Torrent),在一个洪流中的对等方彼此下载登场的文件块(chunk)。当一个对等方首次加入洪流,它没有块。随时间的进行,它下载的块越来越多。同时,它也会上载自己的块给别的对等方。洪流中,对等方可以随时加入、随时离开。
    每个洪流都有一个基础设施节点,称为追踪器。当一个对等方加入洪流时,它向追踪器注册自己,并周期性地通知洪流它仍在洪流中。
    当一个新的Alice加入洪流时,追踪器随机地从参与对等方的集合中选择对等方的一个子集,并将这个子集中所有对等方的IP地址告诉Alice。Alice与它们建立TCP连接,它们称为“邻近对等方”。
    Alice从它的邻居请求哪些块?——最稀缺优先技术
    Alice向哪些它请求块的邻居发送?——对换算法
    (1)最稀缺优先技术:针对它没有的块,向其邻近对等方申请最稀缺的块。
    (2)对换算法:Alice根据能够以最高速率向他提供数据的邻居,给出优先权。首先确定最高速率流入的4个邻居,每过10秒重新计算速率更新这4个邻居。每隔30秒,随机选择另外一个邻居向其发送块。除此5个邻居,其它皆被阻塞。

2.分布式散列表(DHT)

在数以百万计的对等方上存储(键,值)对,允许任何一个对等方用一个特别的键来查询分布式数据库,这就叫DHT。
为每个对等方分配一个标识符,其中每个标识符是一个[0,2^n -1]范围内的整数 ,n取某些固定的值。用散列函数把每个键也映射成[0, 2n -1]范围内的整数。
为对等方分配键时,为其标识符最邻近该键的对等方分配一个(键,值)对。如果该键恰好等于这些对等方标识符之一,我们在匹配的对等方中存储(键,值)对;如果该键大于所有对等方标识符我们使用模2^n规则,在具有最小标识符的对等方中存储(键,值)对。

  • 环形DHT
    在确定最邻近的对等方时,利用环形DHT,并更细化地在环形网络的基础上,增加“捷径”,使每个对等方不仅联系它的直接后继和直接前任,而且联系环上的数量相对少的捷径对等方。如图:
    在这里插入图片描述
  • 对等方扰动(在无接近DHT情况下
    假设对等方5离开,对等方4的更新如下:
    (1)对等方4利用它的直接后继(8)来代替它的第一个后继(5)
    (2)对等方4向新的第一个后继询问它的直接后继(10)的标识符和IP地址。最后对等方4将对等方10标记为它的第二个后继。
    假设一个标识符为13的对等方要加入该DHT,在加入时,他只知道1的存在:
    (1)13向1发送信息询问13的前任和后继;该报文通过DHT到达12时,他认识到自己是13的前任,并且它的当前后继15将称为13的后继;
    (2)12向13发送它的前任和后继信息;
    (3)13加入DHT,标记后继为15;通知12改其后继为13。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络-应用层协议5(P2P) 的相关文章

  • 计算机网络——传输层

    一 传输层概述 传输层功能 完成主机进程 主机进程之间的报文传输 传输层是真正的端对端的通信 传输层协议在端主机上运行 路由器一般没有传输层 传输层从主机层面上对网络层采取相应补救措施 可以提供更高质量的数据传输能力 传输层独立于网络设备
  • IP地址、子网掩码、默认网关和DNS服务器之间的联系与区别

    文章目录 1 IP地址 2 子网掩码 3 默认网关 4 DNS服务器 1 IP地址 IP 是32位二进制数据 通常以十进制表示 并以 分隔 IP 地址是一种逻辑地址 用来标识网络中一个个主机 IP 有唯一性 指的是公网地址 即每台机器的 I
  • TCP/IP、UDP协议

    TCP IP协议是Internet最基本的协议 Internet国际互联网络的基础 由网络层的IP协议和传输层的TCP协议组成 通俗而言 TCP负责发现传输的问题 一有问题就发出信号 要求重新传输 直到所有数据安全正确地传输到目的地 而IP
  • 【八股】2023秋招八股复习笔记1(CSBase+部分WXG题)

    文章目录 MYSQL redis 网络 系统 安全 C 招聘要求 x3 部分面经和题目 WXG 后端 x5 MYSQL redis redis memcached mysql 线程模型 6 0多线程 持久化 AOF RDB 功能 过期删除
  • 计算机网络系列五 -- 运输层详解

    1 运输层 1 1 运输层的定义 运输层是 OSI 七层参考模型的第四层 主要功能为应用层提供通信服务 它即是面向通信的最高层 也是用户功能的最底层 在计算机网络中 真正进行数据通信的是两个主机的进程 由于一个主机中有多个进程同时在通信 而
  • 【网络是怎样连接的】—— 向 DNS 服务器查询 IP 地址

    IP 1 基本知识 互联网和公司内部的局域网都是基于 TCP IP 的思路来设计的 由一些小的子网 通过路由器连接起来组成一个大的网络 这里的子网可以理解为用集线器连接起来的几台计算机 在网络中 所有的设备都会被分配一个地址 这个地址就相当
  • 实训八 利用三层交换机实现不同VLAN间通信

    原理 在交换网络中 通过VLAN对一个物理网络进行了逻辑划分 不同的VLAN之间是无法直接访问的 必须通过三层的路由设备进行连接 一般利用路由器或三层交换机来实现不同VLAN之间的互相访问 三层交换机和路由器具备网络层的功能 能够根据数据的
  • 计算机网络-应用层协议2(FTP)

    1 文件传输协议 FTP 原理 如图所示 FTP工作原理如下 用户或主机通过FTP用户接口与FTP客户进程交互 该用户首先提供远程主机的主机名 使本地主机的FTP客户进程建立一个到远程FTP服务器进程的TCP连接 紧接着该用户提供用户标识和
  • tcp三次握手和四次挥手的过程

    TCP是面向连接的 无论哪一方向另一方发送数据之前 都必须先在双方之间建立一条连接 在TCP IP协议中 TCP 协议提供可靠的连接服务 连接是通过三次握手进行初始化的 三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信
  • 交换机自学习和转发帧

    交换机自学习和转发帧 主机A给主机B发送帧 首先假设已经通过arp协议得到主机B的MAC地址 当交换机1收到该帧后将源MAC地址和接口登记 然后在帧交换表中查到目的MAC地址 没有找到就进行盲目转发 泛洪 交换机2收该帧后 做相同的动作 主
  • 2.6.1 ADSL技术

    ADSL技术 即 非对称数字用户线技术 利用 数字技术 对 现有的 模拟电话用户线 进行改造 使其能够承载宽带数字业务 标准模拟电话信号的 频带 被限制在 300 3400 Hz 的范围内 无法承载宽带数字业务 但 用户线本身 可通过的 信
  • 计算机网络学习笔记第四章(网络层)超详细整理

    目录 4 1 网络层概述 1 简介 2 总结 4 2 网络层提供的两种服务 1 面向连接的虚电路服务 2 无连接的数据报服务 3 虚电路服务与数据报服务的对比 4 3 IPv4 1 概述 2 分类编制的IPv4地址 2 1 简介 2 2 总
  • 模2除法——用非常直观的例子解释

    前言 差错检测中有名唤CRC之方法 但很多学习者难以理解其运行原理 特别是模2除法 故博主将其原理以示例方式记录下来 以便同道稍作借鉴 因博主水平有限 难免会出现错误 希各位能多多包涵和给予建议 注意 本博客假设各位已理解CRC原理但对模2
  • socket编程实现简单的TCP网络程序(下)

    socket编程实现简单的TCP网络程序 下 文章目录 1 封装TCP socket 2 TCP通用服务器 3 英译汉服务器 4 TCP通用客户端 5 英译汉客户端 1 封装TCP socket include
  • 几率大的网络安全面试题(含答案)

    其他面试题类型汇总 Java校招极大几率出的面试题 含答案 汇总 几率大的网络安全面试题 含答案 几率大的多线程面试题 含答案 几率大的源码底层原理 杂食面试题 含答案 几率大的Redis面试题 含答案 几率大的linux命令面试题 含答案
  • 【常识系列】Java程序员需要了解的网络常识之计算机网络性能指标

    作为一个Java程序员 我们也需要对计算机的网络知识有一定的了解 本系列就是针对非运维小伙伴的网络常识介绍 不费脑子可以无聊的时候瞅一瞅 希望可以帮助到大家 计算机网络性能指标 速率 计算机发送的信号是以 二进制数字 形式的 一个二进制数字
  • 【计算机网络概述】第一章:概论 1.3什么是网络核心

    学习目标 网络核心 电路交换 分组交换 电路交换与分组交换的区别 前言 上一篇文章学习了网络边缘 知道了主机和应用进程 端系统 是怎么接入网络核心中的 端系统的两种模式 客户端 服务器模式 对等模式 端系统中利用两种面向网络实施的服务 TC
  • 如何学好信息安全?大学信息安全专业研发技能表-成为信息安全专业优秀人才

    网络空间安全 信息安全 的重要性这几年被提升到前所未有的高度 国家更是高度重视 并且特批成立了网络空间安全一级学科 各大高校积极申报博士点 硕士点 开设信息安全专业的高校越来越多 那么 对于信息安全专业的大一新生如何学好 可能很多同学都在迷
  • 网络安全(黑客)自学秘籍

    想自学网络安全 黑客技术 首先你得了解什么是网络安全 什么是黑客 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 无论网络 Web 移动 桌面 云等哪个
  • 【网络安全】00后程序员,找 Bug 赚了 6,700,000元!他是怎么挖洞致富的?

    19岁 很多人正是上大学 仍伸手向父母要生活费的年纪 可有一位 00 后阿根廷少年 Santiago Lopez 靠自学成才 赚取了 100 万美元 折合人民币约 670 万元 的 Bug 赏金 成为世界上第一个白帽黑客的百万富翁 美元 少

随机推荐

  • CPU的工作原理

    一 CPU的基本概念 CPU 中央处理器 是一块超大规模的集成电路 是一台计算机的运算核心和控制核心 主要功能是解释计算机指令和处理计算机软件中的数据 二 CPU的组成部分 1 运算器 运算器是对数据加工和处理的中心 由算术逻辑单元 状态寄
  • TLS回调函数的两种写法

    include
  • 泛型+通配符(数学角度)

    打破常规 换个角度重新认识泛型和通配符 跳转提示 如果已经熟悉泛型基础知识的小伙伴可以直接跳过引入泛型这一部分 因为这一部分是关于泛型的基础知识的讲解 文章篇幅较长 想看换个角度认识泛型的部分 可以直接跳过引入泛型这部分 直接看从数学函数角
  • windows安裝mysql步骤

    1 mysql安装分为两种 一种是msi格式的 一种是zip格式的 zip格式相当于绿色版 不需要安装 只需解压缩之后就可以使用了 但是要进行配置 msi格式是安装版 2 mysql官网下载 https www mysql com 3 安装
  • 金融行业知识汇总

    文章目录 一 名词解释 1 一级市场 二级市场 2 投行 PE VC 1 投行 Investment Bank IB 2 VC PE 风险投资 Venture Capital VC 私募股权投资 Private Equity PE 3 买方
  • Apache2.4.23--解析漏洞

    复现环境 Apache文件解析漏洞与用户的配置有密切关系 严格来说属于用户配置问题 Apache文件解析漏洞涉及到一个解析文件的特性 Apache默认 个文件可以有多个以点分隔的后缀 当右边的后缀无法识别 则继续向左识别 发现后缀是 php
  • 强大的JTAG边界扫描(4):STM32边界扫描应用

    文章目录 1 获取芯片的BSDL文件 2 硬件连接 3 边界扫描测试 4 总结 试想这样一个场景 我们新设计了一款集成了很多芯片的板卡 包括BGA封装的微控制器 如FPGA MCU 还有LED 按键 串口 传感器 ADC等基本外设 我们需要
  • Unity 导出的EXE文件关闭时卡死崩溃

    Unity 导出的EXE文件关闭时崩溃 前言 项目分析情况 解决方法一 结论 前言 这个问题出现在Unity导出的可执行文件发生在需要关闭应用程序时无法正常关闭 只能从任务管理器中直接杀死进程 虽然这一步的目的是关闭程序但无法走正常途径就很
  • kettle中时间转换日期格式

    为什么80 的码农都做不了架构师 gt gt gt 经常会用到获取今天日期 但是在kettle中没有日期格式 只有时间格式 我们只有把时间格式转换成日期格式 第一步获取系统信息 第二步选择 改名值 第三步打印输出即可 转载于 https m
  • 【Java入门】统计字符串中“ a ~ z “各个字符出现的次数

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 知识点 二 代码 三 运行截图 前言 入门版统计字符串中 a z 各个字符出现的次数 如果需要查询某个字符出现的次数可以写成一个方法 一 知识点 Scan
  • 微信小程序实现文字长按复制、一键复制功能

    一 不引入外部组件的实现方式
  • 将mysql服务启动类型设置为手动或自动提示拒绝访问

    可能被360或者火绒禁止了 直接去火绒 安全工具 启动项管理 服务项 显示禁用的启动项 找到Mysql56允许启动 这里说一下打开Mysql服务的命令 net start mysql56 卸载mysql服务还在 需要删除mysql服务 sc
  • 一张图看懂数据结构-——图

    最小生成树 Prim算法 图解 一些说明 min weight数组表示该集合到达剩余顶点的最小值 adjvex表示这个最小权值是由哪个顶点引入 每次选取最小的权值顶点加入后 需要更新min weight的数值 选取值变为0 全部都为0时表示
  • 时间序列分析-ARIMA模型

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 时间序列分析 ARIMA模型 概述 一 时间序列平稳性 1 严平稳 2 弱平稳 二 建模步骤 1 平稳性检验 2 人工p 和 q 阶数的确定 3 模型拟合AIC和BIC确定最
  • BUUCTF zip伪加密(发现伪加密的惊天大秘密)

    title BUUCTF zip伪加密 date 2021年8月18日 20点03分 tags BUUCTF Misc categories BUUCTF Misc 这道题我为何要单独拿出来写呢 因为我在解题的途中 发现了zip伪加密的惊天
  • 2017年河北秦皇岛天气数据的R语言分析报告

    1 背景 AQI就是各项污染物空气质量分指数中的最大值 当AQI大于50时 IAQI最大的污染物为首要污染物 若IAQI最大的污染物为两项或两项以上时 并列为首要污染物 空气质量指数 综合表示空气污染程度或空气质量等级的无量纲的相对数值 数
  • JEECG online表单代码生成菜单授权后,提示“没有权限,请联系管理员授权”

    JEECG online表单代码生成菜单授权后 提示 没有权限 请联系管理员授权 参考官方文档 http doc jeecg com 2044037 一 不添加按钮 权限 找到生成代码路径中的controller中的java文件进行队jav
  • pandas数据分组与聚合

    目录 1 数据分组 1 1 按列名分组 1 2按列表或元组分组 1 3 按字典分组 1 4按函数分组
  • Linux多线程编程知识汇总!

    大家好 我杂烩君 什么是多线程编程 1 线程和进程的区别 进程是指正在运行的程序 它拥有独立的内存空间和系统资源 不同进程之间的数据不共享 线程是进程内的执行单元 它与同一进程内的其他线程共享进程的内存空间和系统资源 2 多线程的优势和应用
  • 计算机网络-应用层协议5(P2P)

    本文介绍两种特别适合P2P设计的应用 第一种是文件分发 从单个源向大量对等方分发一个文件 特殊例子BitTorrent 第二种P2P应用是分布在大型对等社区中的数据库 重点讨论分布式散列表 DHT 的概念 1 P2P文件分发 首先介绍文件分