4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
Chord环的原理和路由表_junruit的博客-CSDN博客
来自 : CSDN技术社区 发布时间:2021-03-24

1.首先是覆盖网络的概念

 

•覆盖网络

–在一个含有N个节点的网络中 将整个网络看做一个圆环 节点按标识符从小到大顺时针组成一个环。对象分配在节点n上 n是从节点标识符大于等于对象标识的节点开始顺时针方向遇到的第一个活着的节点。

 

\"\"

 

•Chord协议的数据定位

–网络中共可能存在N个节点 ID值0-N。组成一个环 Chord协议规定每个节点一定知道其后继节点 查找只能是顺时针进行。

–Chord为每个节点维护一个路由表 路由表的大小为m项 2m N 称其为 finger table。finger table保存的节点不是直接相邻的节点 而是按照ID间隔2i的关系排列(i表示表中的数组下标) 表中包括m个后继节点和一个前驱节点。前驱节点即NodeID比本节点小的最近节点

–假设本节点 NodeID为X 则m个后继节点分别为 NodeID大于X 20 X 21 … X 2m的第一个节点。其中第i项指向节点X的后继集中第一个活动的并满足条件大于等于n 2i-1的最小节点s

 

 

 

•Chord协议的数据查找

–Chord协议在查询的过程中 查询节点将请求发送到附近(键值最接近)的节点上。收到查询请求的节点如果发现自身存储了被查询的信息 可以直接回应查询节点(这与一致性哈希完全相同) 如果被查询的信息不在本地 就根据查询表将请求转发到与键值最接近的节点上。这样的过程一直持续到找到相应的节点为止。

–查询过程实际上就是折半查找的过程。虽然Chord中的每个节点维护了O(log(N))个信息 但是Chord协议提高了数据路由和定位的效率 从O(N)提高到了O(log(N)) 查询时信息的转发也减少到了O(log(N))。

 

1、查看Key的哈希是否落在节点n和其直接successor之间 若是结束查找 n的successor即为所找

2、在n的Finger表中 找出与hash(Key)距离最近且 hash(Key)的n的successor 该节点也是Finger表中最接近Key的predecessor 把查找请求转发到该节点

3、继续上述过程 直至找到Key对应的节点

 

\"\"

 

•Chord协议其他的一些要素

–节点的加入与退出

•节点的加入必须有一个节点推荐

–节点内保存的数据资料的迁移

–实际中多采用 (key, value) 对来实现 key决定存储的目标节点 value则是存储在目标节点的信息 可以是内容的索引 也可能是内容本身(如文件中的一个片段)

–超级节点

 

下面有几个定义

我们称Chord环上的每个节点为标志符如果某个Node映射到了某个标志符 则继续称该标准符为Node按顺时针 节点前面的成为前继(predecessor),节点后面的成为后继 successor) 同理 第一个predecessor称之为直接前继 第一个successor称之为直接后继

如图

\"Chord环\"

红色点为Node 蓝色为标志符。上面只是部分节点和标志符 以节点N1为例说明其Finger表中的successor

 

Noith successorSuccessor1N1 20 N18 2N1 21 N183N1 22 N184N1 23 N185N1 24 N186N1 25 N457N1 26  N18N1 27 N1

 

 

 

 

\"\" \"\" \"\" 点赞 \"\" \"\" 评论

本文链接: http://chordip.immuno-online.com/view-694034.html

发布于 : 2021-03-24 阅读(0)