BT网络中DHT和UPnp的解释(转)
DHT
类似Tracker的根据种子特征码返回种子信息的网络.DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。BitComet的DHT网络协议和BitTorrent今年5月测试版的协议完全兼容,也就是说可以连入一个同DHT网络分享数据。
另外,这里使用的DHT算法叫Kademlia(在eMule中也有使用,常把它叫做KAD,具体实现协议有所不同)。
如何使用DHT网络?
在BitComet中,无须作任何设置即可自动连接并使用DHT网络,完全不需要用户干预。BitComet使用和TCP端口号相同的UDP端口进行DHT网络连接。如果要完全禁用DHT网络,可以在选项-高级-网络连接中禁用DHT网络。对于种子制作者,可以参考:种子文件制作
内网能使用DHT网络吗?
可以使用。当然,如果有可能打开路由器上所需端口的UDP转发将更加有助于整个DHT网络的健壮性。
BitComet具体是怎样连入DHT网络的呢?
一般用户是完全不需要理会这个具体过程的。这里可以简单的介绍一下:连入DHT网络的用户叫做节点(node),节点之间互相有路由记录,因此只要和任何一个已经在DHT网络中的节点连接上,客户端就可以寻找到更多的节点,从而连入网络。
简单地说:DHT技术就是可以使得网络中的任何一个机器都实现服务器的部分功能,使得用户的下载不再依靠于服务器。用户不需要干涉这个功能。对于普通用户来说,不明白也没有关系.
BT中DHT网络返回N个peers是什么意思?
DHT返回N个peers,这个只能说通过网络找到有这几个相同MD5码的文件下载的,至于对方下载了多少根本不知道,也许对方也一样想问这个问题呢。可能对方也是想下载,却没有源种子,都在等着种子的出现。没有种子,当然无法下载了。如果获取不到种子,会一直搜索.。也就是说网络上不存在完整的种子,你返回n个peers的意思是网络上只有你下载的那些部分的种子在无限的循环,实际上是废循环,所以是返回n个peers。
更详细的解释,参考:http://baike.baidu.com/item/dht网络,http://baike.baidu.com/item/DHT/1007999
UPnP
英文名称:Universal Plug and Play
中文译名:通用即插即用
基本概念:
UPnP 是各种各样的智能设备、无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构。UPnP 的应用范围非常大,以致足够可以实现许多现成的、新的及令人兴奋的方案,包括家庭自动化、打印、图片处理、音频 / 视频娱乐、厨房设备、汽车网络和公共集会场所的类似网络。UPnP 是一种分布式的,开放的网络架构,它可以充分发挥 TCP/IP 和网络技术的功能,不但能对类似网络进行无缝连接,而且还能够控制网络设备及在它们之间传输信息。在 UPnP 架构中没有设备驱动程序,取而代之的是普通协议。UPnP 是独立的媒介。在任何操作系统中,利用任何编程语言都可以使用 UPnP 设备。
UPnP 并不是周边设备即插即用模型的简单扩展。在设计上,它支持0设置、网络连接过程“不可见”和自动查找众多供应商提供的多如繁星的设备的类型。换言之,一个 UPnP 设备能够自动跟一个网络连接上、并自动获得一个 IP 地址、传送出自己的权能并获悉其它已经连接上的设备及其权能。最后,此设备能自动顺利地切断网络连接,并且不会引起意想不到的问题。
UPnP 推动了英特网技术的发展,包括 IP、TCP、UDP、HTTP、SSDP 和 XML 等技术。在英特网上契约以有线应用协议为基础,而该协议是说明性的、利用 XML 进行表述和 HTTP 进行传输的。与此相同的是,UPnP 的明确设计目标就是提供这样的环境。再者,当成本、技术或经费等方面的因素阻止了在某种媒介里或接入其中的设备上运用 IP 时,UPnP 能够通过桥接的方式提供非 IP 协议的媒体通道。UPnP 不会为应用程序指定 API,因此供应商们就可以自己创建 API 来满足客户的需求。
技术支持对UPnP的诠释:
以下是微软官方网站对UPnP的解释:
什么是 UPnP?
通用即插即用 (UPnP) 是一种用于 PC 机和智能设备(或仪器)的常见对等网络连接的体系结构,尤其是在家庭中。UPnP 以 Internet 标准和技术(例如 TCP/IP、HTTP 和 XML)为基础,使这样的设备彼此可自动连接和协同工作,从而使网络(尤其是家庭网络)对更多的人成为可能。
UPnP 对消费者意味着什么?
简单、更多选择和更新颖的体验。包含通用即插即用技术的网络产品只需实际连到网络上,即可开始正常工作。实际上,UPnP 可以和任何网络媒体技术(有线或无线)协同使用。举例来说,这包括:Category 5 以太网电缆、Wi-Fi 或 802.11B 无线网络、IEEE 1394("Firewire")、电话线网络或电源线网络。当这些设备与 PC 互连时,用户即可充分利用各种具有创新性的服务和应用程序。
以下是BC官方网站对UPnP的解释:
UPnP(Universal Plug and Play),通用即插即用,是一组协议的统称,不能简单理解为UPnP=“自动端口映射”。
在BitComet下载中,UPnP包含了2层意思:
1、对于一台内网电脑,BitComet的UPnP功能可以使网关或路由器的NAT模块做自动端口映射,将BitComet监听的端口从网关或路由器映射到内网电脑上。
2、网关或路由器的网络防火墙模块开始对Internet上其他电脑开放这个端口。
更详细的解释,参考:http://baike.baidu.com/item/UPNP
原文:https://zhidao.baidu.com/question/46117040.html
BT网络中DHT和UPnp的解释(转)的更多相关文章
- 为什么BT网络中迅雷的速度会这么快,比其它BT软件快
先看迅雷加速通道的几个概论,参考:http://www.cnblogs.com/EasonJim/p/6608544.html 我个人理解,在传统BT软件中,基于P2P的网络是不具备以上条件去加速的, ...
- peersim中BT网络核心代码解析
首先大概介绍BT网络运行的整体流程: 开始阶段,一个节点加入到网络中,并向tracker节点发送信息,tracker返回若干个邻居的列表 得到列表后,向每个邻居发送bitfiled信息,来获取他们的文 ...
- [C#搜片神器] 之P2P中DHT网络爬虫原理
继续接着上一篇写:使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)[搜片神器] 昨天由于开源的时候没有注意运行环境,直接没有考虑下载BT种子文件时生成子文件夹,可能导致有的朋友运行 ...
- 关于BT网络的一些改进
这几天一直在研究如何改进现有的BT网络的效率,现在有了一点小小的成果 大概思路是这样的,对于一些已经拓扑结构以及节点之间延迟的网络(并不算太苛刻,对于例如数据中心的网络来说,是可以实现的), 普通的B ...
- vmware虚拟机和网络中的桥接和NAT
vmware虚拟机和网络中的桥接和NAT 有许多人在网上回答类似的问题,但大多说的不够简单,且互相抄袭的嫌疑很大,这里我尽自己努力把问题说的明白一些 首先解释一下什么是NAT(network addr ...
- Paper | 深度网络中特征的可迁移性
目录 1. 核心贡献 2. 实验设置 2.1. 任务设置 2.2. 网络设置 3. 实验结果 4. 启发 论文:How transferable are features in deep neural ...
- Hyperledger Fabric 动态增加组织到网络中
本文基于Hyperledger Fabric 1.4版本. 官方文档地址:传送门 动态添加一个组织到Fabric网络中也是一个比较重要的功能.官方文档写的已经很详细了,有能力的尽量还是看官方文档,本文 ...
- TKE 容器网络中的 ARP Overflow 问题探究及其解决之道
作者朱瑜坚,腾讯云后台开发工程师,熟悉 CNI 容器网络相关技术,负责腾讯云 TKE 的容器网络的构建和相关网络组件的开发维护工作,作为主力开发实现了 TKE 下一代容器网络方案. 1. 问题背景 1 ...
- Android 从网络中获取数据时 产生部分数据乱码的解决
产生部分数据乱码的解决 标签: android部分中文乱码 2014-04-12 23:24 12366人阅读 评论(10) 收藏 举报 分类: [Android 基础](15) 版权声明:本文为博主 ...
随机推荐
- SDUSToj第十一次作业源代码格式问题
Problem I: 源代码的格式 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1471 Solved: 634 [Submit][Status][W ...
- PHP如何利用sleep实现 输出->等待->输出
sleep()函数一般用在暂停上,但是一个PHP一旦有了sleep,其他的输出(print,echo)就都要等待sleep()函数的完成,这是因为缓冲区,这里有详细解释 在这里不赘述,而如果要实现先输 ...
- session属性的清除和非法登录
有的项目会将登录用户的资料存于session的一个属性中,这样方便获取一些数据使用,但是用户退出时需要将session的这个属性清除,一面造成一些不必要的麻烦,但是有些时候,在后台清除了这个属性,在拦 ...
- Java集合数据类型
Java集合如Map.Set.List等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int.long.float.double等基础类型的数据. 1. 集合存储对象 Jav ...
- 基于AOP的优惠券发送异常哨兵监控
本文来自网易云社区 作者:王贝 最近总是发现支付发红包优惠券发完的情况,但是发现的比较迟缓,于是乎,想加一个哨兵监控,统计了一下,组内不少需求都有发送优惠券的行为,也是经常遇到发送异常的情况,所以,想 ...
- python集合、字符编码、bytes与二进制
集合 用括号表示{ },可以包含多个元素,用逗号分割 用途 用于关系运算 集合特点 1.每个元素是不可变类型 2.没有重复的元素 3.无序 应用 1.set去重 set(names)的功能是将列表转换 ...
- WebService的简介, 原理, 使用,流程图
WebService的简介, 原理, 使用 第一部分: 直观概述 WebService的几种概念: 以HTTP协议为基础,通过XML进行客户端和服务器端通信的框架/组件 两个关键点: 1. ...
- 九度oj 题目1466:排列与二进制
题目描述: 在组合数学中,我们学过排列数.从n个不同元素中取出m(m<=n)个元素的所有排列的个数,叫做从n中取m的排列数,记为p(n, m).具体计算方法为p(n, m)=n(n-1)(n-2 ...
- POJ 2033 Alphacode
Alphacode Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11666 Accepted: 3564 Descri ...
- 反射+注解:excel2module
package test.excelTest; import java.io.File; import java.io.FileInputStream; import java.lang.reflec ...