网络计算模式复习(五)

news2024/11/20 19:44:16

结构化P2P:直接根据查询内容的关键字定位其索引的存放节点

DHT算法

  • 将内容索引抽象为<K,V>对
    K是内容关键字的Hash摘要:K=Hash(key)
    V是存放内容的实际位置,例如节点IP地址等
  • 所有的<K,V>对组成一张大的Hash表,该表存储了所有内容的信息
  • 每个节点都随机生成一个标识(ID),把Hash表分割成许多小块,按特定规则(即K和节点ID之间的映射关系)分布到网络中去,节点按这个规则在应用层上形成一个结构化的重叠网络。
  • 给定查询内容的K值,可以根据K和节点ID之间的映射关系在重叠网络上找到相应的V值,从而获得存储文件的节点IP地址。
    在许多情况下,节点ID为节点IP地址的Hash摘要。

定位
节点ID和其存放的<K,V>对中的K存在着映射关系,因此可以由K获得存放该<K,V>对的节点ID。
路由
在覆盖网上根据节点ID进行路由,将查询消息最终发送到目的节点。每个节点需要得到其邻近结点的路由信息,包括节点ID、IP等。

在这里插入图片描述

Chord

  • 采用环形拓扑(Chord环)
  • 使用一致性哈希作为哈希算法
  • Hash算法:SHA-1
    在这里插入图片描述
  • Hash节点IP地址->m位节点ID(表示为NID)
  • Hash内容关键字->m位K(表示KID)
  • 节点按ID从小到大顺序排列在一个逻辑环上
  • <K,V>存储在后继节点上Successor(K):从K开始顺时针方向距离K最近的节点
  • 每个节点仅维护其后继节点ID、IP地址等信息
  • 查询消息通过后继节点指针在圆环上传递
  • 直到查询消息中包含的K落在某节点ID和它的后继节点ID之间
  • 速度太慢O(N),N为网络中节点数。
  • 若是基于指针表的扩展查找过程,指针表中有O(log N)个节点,查询经过O (log N)跳
  • 网络波动(Churn),由节点的加入、退出或者失效所引起。
  • 每个节点都周期性地运行探测协议来检测新加入节点或退出/失效节点,从而更新自己的指针表和指向后继节点的指针。

节点加入
新节点N事先知道某个或者某些节点,并且通过这些节点初始化自己的指针表,也就是说,新节点N将要求已知的系统中某节点为它查找指针表中的各个表项。
在其他节点运行探测协议后,新节点N将被反映到相关节点的指针表和后继节点指针中。
新结点N的第一个后继节点将其维护的小于N节点的ID的所有K交给该节点维护。

节点退出/失效

当Chord中某个节点M退出/失效时,所有在指针表中包含M的节点将相应指针指向节点M的后继节点,即大于M节点ID的第一个有效节点。

为了保证节点M的退出/失效不影响系统中正在进行的查询过程,每个Chord节点都维护一张包括r个最近后继节点的后继列表。如果某个节点注意到它的后继节点失效了,它就用其后继列表中第一个正常节点替换失效节点。

拓扑失配问题
O(LogN)逻辑跳数,但是每一逻辑跳可能跨越多个自治域,甚至是多个国家的网络。
覆盖网络与物理网络脱节。
实际的寻路时延较大。

Pastry

考虑网络的本地性,解决物理网络和逻辑网络的拓扑失败问题。
基于应用层定义的邻近性度量,例如IP路由跳数、地理距离、往返延时等。
节点ID分布采用环形结构。

  • Hash算法:SHA-1
  • Hash节点IP地址->m位节点ID(表示为NID)
  • Hash内容关键字->m位K(表示KID)
  • NID和KID是以2b为基的数
  • 节点按ID从小到大顺序排列在一个逻辑环上
  • <K,V>存储在NID于KID数值最接近的节点上

每个节点维护一个状态表

  • 路由表
  • 邻居节点表
  • 叶子节点集

路由表R

  • 表中的每项包含节点ID,即IP地址等。
  • b过大,节点要维护的路由表大,但存储的邻居节点多,在转发时更为精确,b的选择反映了路由表大小和路由效率之间的折中。

邻居节点集M

  • 存放在真实网络中与当前节点“距离”最近的“M”个节点的信息。
  • “距离” 类似IP路由协议中的距离, 考虑转发跳数、传输路径带宽、QoS等综合因素后所得的转发开销。
  • 邻居节点集通常不用于路由查询消息,而是用来维护本地性。

叶子节点集L

  • 存放在键值空间中与当前节点距离最近的|L|个节点的信息,其中各有一半的字节标识大于或小于当前节点。
  • 路由时,首先检查叶子节点集。

Pastry:查询过程

当一个K为D的查询消息到达节点A

  1. 节点A首先看D是否在当前节点的叶子节点集中,如果是,则查询消息直接被转发到目的节点,也就是叶子节点集中节点ID与D数值最接近的那个节点(有可能就是当前节点)。
  2. 在路由表中根据最长前缀优先的原则选择一个节点作为路由目标,转发路由消息,如果该表项不为空,则将查询消息直接转发到该节点,否则进行下一步。
  3. 如果不存在这样的节点,当前节点将会从其维护的所有邻居节点集合(包括路由表叶子集合及邻居集合中的节点)中选择一个距离消息键值最近的节点作为转发目标。

路由查询消息的逻辑跳数: O(log2b N)

比较结构化P2P网络中Chord算法和Pastry算法的区别

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异地远程连接威联通NAS,无需公网IP

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 转载自远程内网穿透的文章&#xff1a;无需公网IP&#xff0c;在外远程访问NAS威联通QNAP【…

当程序员这么多年,为什么我还只会复制粘贴?

如果问程序员&#xff1a;最熟练的快捷键是哪两个&#xff1f; 程序员&#xff08;脱口而出&#xff09;&#xff1a;ctrlc 和 ctrlv &#xff01;即复制和粘贴。 对于为数不少的程序员来说&#xff1a;天下代码不过一个“抄”字&#xff0c;复制和粘贴就是他们创造伟大产品的…

内网渗透—代理Socks协议、路由不出网、后渗透通讯、CS-MSF控制上线

内网渗透—代理Socks协议、路由不出网、后渗透通讯、CS-MSF控制上线 1. 前言1.1. 实验背景1.2. 环境准备1.2.1. 环境介绍1.2.2. 环境测试1.2.2.1. 攻击机测试1.2.2.2. Windows20081.2.2.3. Windows20031.2.2.4. Windows20121.2.2.5. Windows7 1.3. 技术介绍1.3.1. 隧道技术1.3.…

六轴传感器基础知识学习:MPU6050特性,四元数,姿态解算,卡尔曼滤波

实际上&#xff0c;只要说到多少轴的传感器一般是就是指加速度传感器&#xff08;即加速计&#xff09;、角速度传感器&#xff08;即陀螺仪&#xff09;、磁感应传感器&#xff08;即电子罗盘&#xff09;。这三类传感器测量的数据在空间坐标系中都可以被分解为X,Y,Z三个方向轴…

第一章 线性模型

目录 一、线性模型基本概念二、梯度下降三、反向传播四、使用 Pytorch 实现线性模型 一、线性模型基本概念 线性模型&#xff1a; y ^ x ∗ ω b \hat{y} x * \omega b y^​x∗ωb 简化版本&#xff0c;将 b b b 加入到权重矩阵 ω \omega ω 中&#xff1a; y ^ x ∗…

新榜 | “淄博”现象专项观察报告

在过去的一个月中&#xff0c;淄博烧烤的相关话题霸屏网络&#xff0c;这些媒介话题里承载了多少受众的向往与想象&#xff1f; 根据2022年淄博市文旅局公开年报&#xff0c;去年&#xff0c;淄博官方就着力融媒体&#xff0c;在抖音、快手等平台创新使用“淄博到底有多牛”主题…

javascript-核心知识总结

目录 &#xff08;一&#xff09;DOM基础 1、DOM对象 2、节点类型 3、获取元素 4、创造元素 5、插入元素 6、删除元素 7、复制元素 8、替换元素 &#xff08;二&#xff09;DOM进阶 1、用DOM对象对HTML属性操作 2、用DOM对象对CSS操作 3、DOM查找&#xff08;遍历&…

浅析基于AI智能识别技术边缘计算硬件在智慧食安监管场景中的应用

一、背景分析 自2014年开始&#xff0c;国家市场监督管理总局在强化企业主体责任、严格实施全过程监管、创新监管方式的方针下&#xff0c;推行“互联网明厨亮灶"工程建设。系统以四个端为整体规划&#xff0c;实现亮后厨、亮证、亮照、亮评估&#xff0c;通过以网管网措…

微信小程序xr-frame实现多光源效果

1.基础知识&#xff1a; 灯光 灯光组件Light用于给场景提供照明&#xff0c;也是阴影的核心。相机组件一般被代理到灯光元素XRLight中使用&#xff0c;其派生自XRNode&#xff0c;对应在xml中的标签为xr-light。 主光源以及参数 类型uniforms宏说明书写环境光颜色和亮度u_a…

Linux Shell 实现一键部署virtualbox

VirtualBox 前言 VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发&#xff0c;由Sun Microsystems公司出品的软件&#xff0c;使用Qt编写&#xff0c;在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public Licens…

从零开始 Spring Boot 30:数据校验

从零开始 Spring Boot 30&#xff1a;数据校验 图源&#xff1a;简书 (jianshu.com) 在从零开始 Spring Boot 13&#xff1a;参数校验 - 红茶的个人站点 (icexmoon.cn)一文中&#xff0c;我讨论了一些可以用于参数校验的注解。实际上这些注解都是来自于Jakarta Bean Validatio…

第7章异常、断言和曰志

Java和C异 在C中&#xff0c;throw说明符在运行时执行。Java在编译时执行。 处理错误 异常处理的任务就是将控制权从产生错误的地方转移到能够处理这种情况的错误处理器。 如果由于出现错误而使得某些操作没有完成&#xff0c;程序应该&#xff1a;返回到一种安全状态&#…

ChatGLM + PEFT 进行finetune

一、前言 1.1 硬件需求 注&#xff1a;r 为LoRA 维数大小&#xff0c;p 为前缀词表大小&#xff0c;l 为微调层数&#xff0c;ex/s 为每秒训练的样本数。gradient_accumulation_steps 参数设置为 1。上述结果均来自于单个 Tesla V100 GPU&#xff0c;仅供参考。 1.2 微调方法…

开放原子训练营第一季——铜锁探“密” 圆满落幕!

【开放原子训练营第一季结营总结】——铜锁探“密” 开放原子训练营第一季「铜锁探密」由开放原子开源基金会&铜锁社区共同举办&#xff0c;包含 5 次课程&#xff0c;以“抽丝剥茧&#xff0c;循序渐进&#xff0c;一起揭开商用密码的面纱”为主题&#xff0c;让参与者更加…

c++面向对象之类

一、类的定义 class 类名{成员属性构造函数析构函数成员函数 }Person.h #include <string> #include <iostream> using namespace std;class Person {int m_age;string m_name;Person();Person(int age,string name);~Person();int getAge();void setAge(int age…

蓝鲸平台通过标准运维 API 安装 Agent

目录 一、背景 二、目的 三、创建安装agent流程 四、通过标准运维 API 安装 Agent 五、总结 一、背景 蓝鲸平台正常情况纳管主机需要在节点管理手工安装agent&#xff0c;不能达到完成自动化安装agent的效果。想通过脚本一键安装agent&#xff0c;而不需要在蓝鲸平台进行过…

Golang指针的操作以及常用的指针函数

目录 指针的操作 定义指针 获取变量地址 解引用指针 指针作为函数参数 指针的空值 常用的指针函数 new 函数 make 函数 append 函数 copy 函数 指针的操作 在Go语言中&#xff0c;指针是一种非常重要的类型&#xff0c;可以用来传递变量的地址而不是变量本身。 定…

【leetcode刷题总结】——代码随想录(链表总结)

代码随想录按照数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构&#xff0c;再从简单刷起&#xff0c;做了几个类型题目之后&#xff0c;再慢慢做中等题目、困难题目。 以下是个人刷题总结&#xff0c;官…

多个Node.js版本之间切换

本篇文章会讲windows和Mac系统下实现多个node.js版本之间的切换。 1.windows下采用nvm&#xff08;nvm-window&#xff09; 2.Mac下采用nvm和n 注&#xff1a;window和mac下的nvm地址是不一样的 一、windows系统 什么是nvm&#xff1f; nvm是一个简单的bash脚本&#xff…

真题详解(有限自动机)-软件设计(七十七)

确定有限自动机 和 不确定有限自动机 解析&#xff1a; M1的A当0的时候&#xff0c;会变成A&#xff0c;也可能变成B&#xff0c; 所以M1是不确定有限自动机。 M2的A1的时候只会使A&#xff0c;0的时候只会是B B的0只会是B&#xff0c;1的时候只会是C。 C0的时候只会是B&a…