DHT网络 学习笔记
原文见:http://codemacro.com/2013/05/19/crawl-dht/
【学习笔记】
原bt下载依赖于tracker,后者不存储资源本身,但存储着拥有资源(片段)的peer列表。这样一来,tracker即扮演着中心节点的角色,一旦移除,会因为无法找到其它peer而下载失败。
DHT网络致力于通过去中心化解决上述问题,在tracker失效的情况下仍然能找到其它peer。
首先,每个主机都被抽象为一个节点,通过hash算法,可以得到一串类似于UUID的坐标。资源也是一样。
有了坐标,就可以计算节点与节点之间,或节点与资源之间的距离。注意这个距离并非指物理距离,而是为了便于给节点和资源均匀分组所计算出的一个指标(例如,距离可以是取两个坐标异或的值)。距离近的节点就落到了一起,共同扮演临近资源的tracker的角色。
每个节点都存有一张路由表(hash表),记录着已知的节点,特别是较临近节点的相关信息(如节点的ip地址,扮演哪些资源的tracker即资源对应的peer列表)。注意路由表空间受限,会优先存储较近的节点和资源。
在收到查询节点的请求后,随即搜索路由表,命中尤佳,miss则返回路由表中最为靠近目标的节点。
查询资源(即资源对应的peer列表)也是类似,搜索路由表,miss则返回路由表中最为靠近目标资源的节点。
经过几次递归查询后,会迅速逼近以致命中目标,于是下载开始了。开始下载的节点会向沿途所有查询并获得反馈的节点汇报自己成为了该资源的peer。后者会视情况更新它们的路由表。
而发布资源的过程,即简单地查找距资源坐标最近的节点们,并向其汇报即可。
有个问题,若节点散布得不够均匀,极端情况下与某资源最靠近的几个节点其实都相距甚远,若这些节点的路由表容量有限,根据距离优先的原则踢除了该资源的peer信息,以致无法下载。会出现这样悲催的局面吗,目前的实现是如何规避的?
DHT网络 学习笔记相关推荐
- 【dht】dht简介以及使用nodejs查找dht网络学习笔记
官网 bep文件 node-bencode用来加解密用的 概念 Kademlia算法 Kademlia是DHT网络的一种实现.在Kademlia网络中,距离是通过异或(XOR)计算的,结果为无符号整数 ...
- python中socket模块常用吗_python网络学习笔记——socket模块使用记录
此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...
- 深度学习(三十二)半监督阶梯网络学习笔记
半监督阶梯网络学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50877704 作者:hjimce 一.相关理论 这几年深度学习声名鹊起,一 ...
- SDN软件定义网络 学习笔记(4)--数据平面
SDN软件定义网络 学习笔记(4)--数据平面 1. 简介 2. SDN数据平面架构 2.1 传统网络交换设备架构 2.2 SDN交换设备架构 2.3 数据平面架构图 3. SDN芯片与交换机 3.1 ...
- 华为网络学习笔记(一) 网络通信协议
华为网络学习笔记(一) 一.网络通信协议 通讯协议:通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出 ...
- SDN软件定义网络 学习笔记(1)--基本概念
SDN软件定义网络 学习笔记(1)--基本概念 1. 定义 2. 提出背景 3. 体系结构 1. 定义 软件定义网络(Software Defined Network,SDN),顾名思义,SDN 与传 ...
- TSN时间敏感网络|学习笔记-看这一篇就够了
近年来,随着汽车电子电气架构的演进,车载以太网以其高带宽.技术成熟和灵活部署等优势成功占据汽车主干网地位,但是传统以太网具有的时间不确定性,对自动驾驶.智能网联等前沿需求带来巨大挑战.为此,IEEE ...
- ResNet网络学习笔记。
ResNet网络学习 看b站 霹雳吧啦Wz 的视频总结的学习笔记! 视频的地址 大佬的Github代码 1.ResNet详解 ResNet 网络是在2015年由微软实验室提出,斩获当年 ImageNe ...
- VGG网络学习笔记。
VGG网络学习 看b站 霹雳吧啦Wz 的视频总结的学习笔记! 视频的地址 大佬的Github代码 1.VGG网络详解 VGG 在2014年由牛津大学著名研究组 VGG(Visual Geometry ...
最新文章
- 实战:使用Telnet排除网络故障
- matlab绘制多条折线图
- 10种增强脑力的办法
- 监听 html dom 变化,如何监听页面 DOM 变动并高效响应
- ffmpeg 0.6.3 代码, 经过我努力,能够在vs 2005 下单步调试代码
- Datawhale-零基础入门NLP-新闻文本分类Task06
- Js拼接嵌套php代码,分享一个js文件中嵌套php会出错的问题
- 数字时代企业信息安全如何保障? VMware原生安全前来“保驾护航”
- Win32 设备管理(2)
- 乐玩自动化测试模块_五大测试框架介绍,附带全套黑马自动化测试视频教程(完结)...
- 高阶多项式合并同类项程序c语言,c语言实现两多项式相乘并排序合并同类项.doc...
- cocos2d-x开启Wifi
- android禁止wifi,android – 防止WiFi-direct在不使用时关闭
- Spring源码深度解析
- 单片机c51交通灯c语言程序,c51单片机交通灯程序
- 端口扫描工具zmap使用笔记
- 通信与信息系统专业排名全国前十的…
- windowsxp系统桌面卡住了解决
- 维基百科中文语料库训练word2vec模型和使用总结
- 在浏览器输入URL,按下回车之后的流程?