您的位置 首页 > 新农资讯

分布式存储协议有哪些,分布式文件标准有哪些

本文对BT的文件传输协议和eMule的ED2K协议进行了简要的描述和分析。希望对需要了解和学习的朋友有所帮助。现在,让我们言归正传……

电驴/电骡协议简介:

eMule 的前身是名为eDonkey 的软件,由Jed McCaleb 于2000 年创立。多源文件传输协议(MFTP)用于分发文件。 eDonkey的索引服务器是去中心化的,对每个人来说都是私有的,并且分布在世界各地。任何人都可以运行eMule 服务器(客户端和服务器合二为一),共享文件索引称为“ed2k-”。快速链接”,文件前缀为“ED2K://”。每个文件都标有md5 哈希超链接,使其在网络上独一无二且可追踪。电驴可以通过检索片段来下载多个用户的文件,并最终将下载的文件片段组合成一个完整的文件。

2002年5月3日,Merkur开始开发eDonkey 2000客户端,因为他对此并不满意,并且坚信自己可以创建更好的P2P软件。我们聚集了一批其他领域的优秀程序员,eMule 项目诞生了。其目的是保持eDonkey的优点和本质,添加新功能,并改进图形界面。

Emule是电驴的升级版本,其独特之处在于开源。其基本原理和操作方式也是基于电驴,可以直接登录各种电驴服务器。此外,eDonkey还具有eDonkey所没有的功能,例如自动搜索网络上的服务器、保留搜索结果、与连接的用户交换服务器地址和文件以及优先下载文件的头部和结尾部分以便于预览。提供许多功能。所有这些都使得电骡更易于使用,这也有助于提高其声誉。

BT软件及协议介绍:

支持BT 协议的P2P 应用程序有很多,例如uTorrent、BitBuddy、FlashBT、BitComet 和BitSpirit。当然,还包括中国特色的吸血鬼迅雷、FLASHGET等。

通过BT 协议进行文件分发通常使用torrent 文件进行基本共享,其中torrent 提供站点、目录服务器和内容发布者/下载者。 torrent 文件是包含跟踪器和文件信息的文本文件。跟踪器信息是与客户通信所需的跟踪器服务器地址和跟踪器服务器设置。

BT 的主要原理是将提供下载的文件虚拟地分成相等的小块。块大小必须是2K字节的整数次方(由于虚拟块的存在,硬盘上不会生成单独的块文件)。每个块的信息和哈希验证码都写入到.torrent 文件中,因此.torrent 文件成为下载文件的“索引”。虽然最初的BT 协议仅支持跟踪服务器(集中式目录和分布式查询的混合体),但BT 协议的升级版本增加了对DHT(分布式哈希表)网络的支持。

BT与eMule协议宏观对比分析

从技术角度来看,Emul比BT好很多,但是Emul在中国大陆的互联网上并不是很流行,因为每个人都得到了它并且不想放弃它。在东南亚、中东等地区有相当数量的用户。

1、传统连接方式:

BT 使用合并的torrent 文件首先创建原始下载文件的信息记录。然后,客户下载后,通过torrent信息连接到服务器,Emule只用一个文件ID进行下载。自行访问和下载服务器;电骡的资源发布更新方便又足智多谋,BT内不同种子的用户是分开的。即使torrent 中的文件相同,BT 用户也无法相互通信。

2.底层传输协议对比:

BT仅使用TCP协议进行下载,但其功能比较简单,部分功能不完整。这使得网络资源更加高效、完整、强大。主机负载增加。

3、文件组织方法及数据验证方法:

BT 在开始之前对文件执行完整的HASH。这意味着您可以端到端链接文件,根据固定块获取SHA值,最后将这些值包含在torrent文件编码中。 BT软件通常在下载后对每个小片进行HASH测试,以确保其准确性。 Emule 只是将整个文件的HASH 值存储在链接字符串中,并将此HASH 发送到服务器以检索文件的相关信息。实际操作时,将文件分解为9.28M的小块,并使用HASH。块完整性测试。新版本的Emule使用了一种称为AICH的技术。这意味着将文件分割成80K 的小块,并通过二进制迭代对HASH 值进行哈希处理(有关更多信息,请参阅Emule 协议)。 HASH最终形成HASH二叉树。优点:不需要添加叶子节点,而只能在链接中添加根节点的HASH值,因此最终文件下载后,测试的根节点的HASH和检索到的根节点的HASH值的大小都会减小。如果它们不同,您可以通过将协议与网络上其他主机的树进行比较来快速识别错误的块。

4.流量控制方法:

BT通过比较一段时间内的下载流量来记录短时间内的上传和下载流量,以控制上传和下载的平衡。如果新客户在很长一段时间内没有得到其他客户的认可,BT 将停止上传一段时间,作为对已经完成上传的客户的警告。在下载过程中,BT 将为上传流量最多的客户提供更多时间来完成上传过程,以避免在文件的最后阶段下载速度减慢。为了快速完成下载,BT 会跟踪网络上文件块的副本数量。这确保了网络上的文件冗余。增加。简单来说,BT采用的是一种文件流控制的方式。

电骡采用一种计算所有用户上传下载量的方法来获取客户的积分值,积分较高的用户总是可以获得优先下载权,甚至不需要下载。因此, 能够估计一个用户在相对较长的时间内对其他用户的总体贡献。简单来说,emule采用的是用户的流量控制方式。

五、特点及性能:

Emule 有搜索功能,但BT 只能通过他们的网站实现这一功能。

BT的方法论侧重于简单、高效、快速的传输,而Emul则侧重于改变整体网络状态和用户体验。仅就下载效率而言,BT 更好,但在网络条件和完整协议支持方面,仿真更好。从性能角度来看,相同网络条件下,下载单个文件的能力比较强,而仿真更适合长时间下载多个文件,对机器的占用和影响较小。这是由于两者对网络平衡的影响不同,以及对p2p模型的理解不同。

BT文件片段选择策略

1. 片段选择

选择正确的下载片段顺序对于提高性能非常重要。不良的分段选择算法可能会导致所有分段都被下载或在一段时间内没有上传到其他对等点。

2、绝对优先

片段选择的最高优先级策略是当用户请求片段的子片段时,首先请求该片段的其余子片段。这样,用户就可以尽快获得完整的作品。

3. 最少到最少

当选择下一个下载片段时,下载器通常选择在对等点之间传播最少的片段,即所谓的“最低优先级”。该技术确保每个下载器保留其同伴最需要的片段(即最“稀有”的片段)。这确保了最后下载更常见的片段,从而减少了当前提供上传的对等点不再拥有其他对等点需要的片段的机会。每个peer优先选择整个系统中最小的分片进行下载,由于系统中相对较多的分片被稍后下载,因此整个系统趋于处于更优化的状态。如果不使用这种算法,每个人都下载最多的碎片,那么这些碎片在系统中会变得越来越分布,但系统中数量相对较少的碎片仍然会保持很小。当其他节点用完所需的碎片时,系统中的参与者越来越少,从而降低了整体系统性能。 BT系统很好地考虑了经济性的概念,参与者越多,系统整体性能越优化。

4. 随机第一个片段

“最少优先”的一个例外是开始下载时。目前,下载器没有可以上传的片段,因此您需要尽快获取完整的片段。最小的片段通常仅由一个对等点拥有,因此它们的下载速度比多个对等点拥有的片段慢。因此,第一个片段是随机选择的,并且在下载第一个片段之前不会切换到“最少优先”策略。

5.决赛阶段模式

在某些情况下,可能会从非常慢的对等点请求片段。这在下载过程中不是问题,但可能会延迟下载完成。为了防止这种情况,在最后一步中,对等点向其所有对等点发送对特定段的子段的请求。当特定子段到达时,取消消息会发送到其他对等点以取消该请求。需要这些子段以避免浪费带宽。事实上,这种方法并不会浪费太多带宽,而且文件末尾总是下载得很快。

6.窒息算法

BT 并不集中分配资源。每个对等方都有责任尽可能提高下载速度。节点从他们可以连接的节点下载文件,并根据他们提供的下载速率给予他们同等的上传奖励(你尊重我一英尺,我尊重你一英尺)。配合的提供上传服务,不配合的屏蔽。因此,阻塞是一种临时拒绝上传的策略。上传将停止,但下载将继续。一旦阻塞停止,就无需重新建立连接。尽管阻塞算法不是BT 点对点协议(点对点之间交互的协议)的技术部分,但它们对于提高性能是必要的。一个好的阻塞算法应该利用所有可用资源,为所有下载者提供一致且可靠的下载速率,并适当地惩罚只下载而不上传的对等点。

BT 帕累托效率意味着没有一种重新分配资源的方法可以在不损害其他人的情况下使某些人受益。这种资源分配状态称为“帕累托最优”状态或“帕累托有效”。在计算机领域,追求帕累托效率的是一种局部优化算法BitTorrent的阻塞算法,试图利用报应性的方法来达到帕累托最优。

但该算法存在以下问题:

最后一段中的问题被夸大,而随机第一段中的问题被低估。 BitTorrent 的最少优先策略在允许拥有部分文件片段的节点快速找到丢失的片段方面效率不高。

eMule协议和文件片段选择和搜索算法

为了优化网络的吞吐量和共享,eMule 仔细选择块的下载顺序。基本的选择策略和分片信息如下:每个文件分为928万个块,每个部分又分为80KB的片。下载块的顺序由发送文件块请求消息(第.4 节)的下载客户端确定。下载客户端可以随时从每个源下载一个文件块。从同一源请求的所有切片都位于同一块中。以下原则(按此顺序)适用于下载块级别:

1.(可用)切片的频率。尽快下载非常稀有的切片,形成新的来源。

2. 用于预览块(第一个和最后一个切片)、预览或检查文件(电影、mp3 等)。

3. 请求状态(下载中)。尝试从每个来源请求额外的部分。跨所有来源分发请求。

4. 已完成(某种程度上未完成)。您必须先完成电影的部分检索,然后才能开始另一次下载。

频率标准定义了三个区域:非常稀有、稀有和一般。在每个区域内,标准都有特定的权重,用于计算区块等级。首先下载较低级别的块。以下列表根据上述原则指定了文件级范围。

l0-9999 - 未请求和很少请求的块

l0000-9999 - 不请求稀有块和预览块

l20000-29999 - 不需要部分完成的通用块

l30000-39999 - 请求稀有和预览的块

l40000-49999 - 请求的通用块未完成

该算法通常选择第一个最稀有的块。但是,您也可以选择部分完成或接近完成的块。对于常见的块,下载分布在不同的来源。

电骡和BT的DHT算法

DHT的正式名称是Distributed Hash Table,是一种分布式哈希表技术和分布式存储方法。此类网络不需要中心节点服务器,但每个客户端负责在狭窄范围内进行路由并存储一小部分数据,从而实现整个DHT网络的寻址和存储。与中心节点服务器不同,DHT网络中的每个节点不需要维护整个网络的信息,而只需维护其相邻的后继节点,从而导致显着的带宽占用和资源消耗将被减少。 DHT网络还将备份冗余信息复制到距离关键字最近的节点,从而避免了单节点故障的问题。如果把整个DHT网络想象成一座城市,那么每个客户端就像是一张城市每个角落的地图,上面画出了邻近地区的地形,当这些地图被编辑时,就形成了一幅城市的完整图景。事情变得很清楚了。

DHT 中使用的最著名的算法是Kademlia。 eMule 是第一个使用它的,Bitcomet、Azureus、BitTorrent 才紧随其后尘,DHT 也使用了Kademlia 算法。但由于实现协议不同,彼此不兼容(BitComet 与BitTorrent 兼容,Azureus 与eMule 类似但互不兼容)。

继著名的Bittorrent在2005年5月4.0版本实现了基于Kademlia协议的DHT技术后,国内的BitComet和BitSpirit也迅速实现了兼容BitTorrent的DHT技术,实现了无跟踪器下载。 Emule 实现了与Kademlia 类似的技术(BT 中称为DHT,Emule 中称为Kad)。与BT软件使用的Kd技术的区别在于key、value和节点ID的计算方式。

关于BT协议,目前国内用户使用最多的BT客户端是比特彗星和迅雷,这些BT软件默认情况下无需任何配置即可自动连接并使用DHT网络。当您启动软件时,它使用与DHT 网络连接相同的TCP 端口号的UDP 端口。 P2P技术的进步与版权赌博密不可分,DHT网络也确实有潜力吸引这样的关注。

事实上,BT采用DHT网络后,反版本将变得更加困难。此前,用户如果想要交换数据,首先必须连接到Tracker服务器,根据获取的下载和上传用户列表,才能进行正常的文件交换。这种情况下,只要屏蔽提供Tracker服务的网站,就可以阻断【Dao版】的传播路线。 DHT 网络则不同。目前,任何在互联网上运行BT 客户端的人都可以充当DHT 网络中的节点。因此,即使提供跟踪器服务的网站被禁止,用户仍然可以通过全球网络共享文件。反对逻辑DHT网络[Dao版本]是不可能的。除非所有人都被要求不要上网或者使用BT软件被宣布为严重犯罪行为。但技术始终是一把双刃剑。在批评BT助长傲慢的同时,我们也应该看到BT正在成为传播正版作品的工具。由于无法承受过多的流量,一些免费共享软件(如Foobar2000)开始使用BT来分发正版软件——Linux系统,甚至将BT作为主要分发渠道。

eMule 也使用它,通常称为KAD,尽管协议的具体实现不同。 Kad Network 的主要目标是消除对服务器的需求并提高可扩展性。与传统的ed2k服务器相比,它只能处理一定数量的用户(正如我在服务器列表中也看到的那样,每个服务器都有最大用户数量)。连接到服务器的用户过多会严重降低网络性能。传统的ed2k网络需要服务器支持来传输和存储哈希列表信息,而Kad可以在不使用服务器的情况下完成ed2k网络的所有功能。 Kad 需要UDP 端口支持。然后Emule会根据客户端的要求自动判断是否可以自由连接,并进一步分配一个ID。这个过程与ed2k 的高低ID 检查非常相似,但ID 的含义如下:与ed2k网络不同,它代表“ly”或“not”。

Kad可以自组织、自调整最佳用户数量及其连接效率。因此,可以最大限度地减少网络损失。由于上述特点,Kad也被称为无服务器网络。目前正处于开发阶段(alpha 阶段)。任何人都可以通过执行Kad 关键字搜索来查找有关文件共享网络的信息。没有存储文件索引的中央服务器。这项工作由所有客户平等地执行。拥有正在共享的文件的分支节点首先处理文件的内容并根据内容计算一组哈希值。这组值使该文件在共享网络上可见。 Kad网络首先为每个客户分配一个唯一的ID值,然后对不同的ID值进行异或,得到两个客户之间的“距离”,桶内“距离”越近,Kad网络就越维护这个桶。用户数越高,KAD就越定期清理桶中的用户以维持其有效性。

文件和用户模拟有两种结构,也可以使用kad查找文件和文件相关的用户信息。此外,为了解决冗余问题,kad 将其信息复制到其最近的邻居。当您离线时,信息不会丢失。 Kad本身有一个nodes.dat文件(也称为节点文件),它存储Kad网络中的邻居节点。这与通过路由器加入DHT 网络进行客户通信相同。

注:eMule的具体实现过程中,使用的ID为28位。例如,要查找用户ID,请对用户ID 执行异或。例如,两个ID 的二进制XOR 值将导致00 比00 更接近0。然后,当用户加入kad时,它首先通过已知用户查找一组用户ID、IP地址和端口。如果用户想要找到特定的用户A,他或她首先询问逻辑上与A接近的几个已知用户,例如用户B、用户C和用户D。 B、C 和D 告诉用户他们是A。以此类推,如果你知道最近一个用户的ID、IP地址和端口,那么这个用户最终就能找到A。因此,搜索次数为logN 量级,其中N 代表提出问题的人数。

最令人失望的是BT和eMule的DHT算法不互操作或兼容。

注意:在Kad网络中,系统存储的数据是成对存储的。在BT 的DHT 实现中,该键值是torrent 文件的info_hash 字符串,并且该值的值与torrent 文件密切相关。

DHT技术的缺点及发展问题

1、节点频繁加入和离开导致网络波动。

网络波动程度对检测算法的效率有显着影响。网络波动(churn、网络波动)包括节点加入、离开、故障、迁移、并发加入过程、网络分段等。 Chord、CAN 和Koorde 等DHT 检测算法都是在设计和实现时考虑到网络波动的最坏情况。由于每个节点的度数尽可能小,因此需要相对较少的维护来适应成员资格的变化,并且网络波动的影响可以快速恢复。然而,每个节点只有少量路由状态的代价是发现算法的延迟增加。这是因为每次搜索都需要连接到多个节点。

2.由于DHT算法使用分布式哈希函数,因此必须引入新的方法来支持当前网络搜索引擎的多关键字搜索能力。

原因是基于DHT的P2P系统使用一致的哈希函数来根据精确的关键字来定位和发现对象。哈希函数总是努力确保它生成的哈希值是均匀且随机分布的。结果,两个内容非常相似但不相同的对象会生成完全不同的哈希值,并将它们存储在两个完全随机的值中。节点。因此,DHT虽然可以提供精确匹配查询,但支持语义却非常困难。目前,基于DHT语义的资源管理技术的研究还很少。 DHT精确的关键词映射特性使得研究成果无法在信息检索等领域落地,阻碍了基于DHT的P2P系统的大规模应用。作为一种资源组织和发现技术,必须支持关键词、内容查询等复杂查询。尽管信息检索和数据挖掘领域有许多成熟的语义查询技术可用,但DHT精确的关键字映射特性阻碍了其在复杂查询中的应用。

3.DHT的安全性:例如,没有适当的安全认证机制来分离节点之间的通信和搜索,这带来了很多安全风险。

目前下载软件的发展趋势是集成不同协议,对不同协议开放下载(BT、ED2K(电骡)、HTTP、FTP、MMS、RTSP协议已经是这方面的努力。但实际效果并不好。资源下载工具的用户并不关心资源在互联网上发布的协议,任何具有相应权限的人都可以下载资源,希望能够弥合所有协议之间的障碍。一个从互联网检索资源并向互联网提供资源的平台。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023