Bittorrent 是如何工作的?

exp*_*est 35 bittorrent

我想了解更多关于文件共享的 bittorrent 方式。我是一个技术先进的用户(程序员),所以技术先进的材料是没有问题的,但它应该简明扼要。我需要一本很好的资源书/网络来解释整个 bittorrent 架构。

我对细节不感兴趣,只对整体架构和种子、同行等术语感兴趣。

有什么建议?

Law*_*ceC 29

bittorrent 的工作原理概述:

  • 你有peerstracker。在任何特定时刻聚集在一起的所有同行都是群体。通常的情况是一个或几个对等点拥有完整的文件集并希望将其提供给其他对等点。

  • 对等方获取一个 .torrent 文件,其中包含 A) 文件集的 SHA-1 哈希值,B) 跟踪器的 URL,以及 C) 文件被分解成的片段数,以及每个部分的 SHA-1 哈希。碎片的大小由洪流本身决定。

  • 然后,对等方使用种子中指定的 URL 连接到跟踪器。跟踪器以对等方列表进行响应。跟踪器通过端口 80 或 443 传输 HTTP。

  • 然后,对等方使用来自跟踪器的信息选择另一个对等方,并直接联系它以建立交换会话,试图获得一块。 请注意,交换会话由对等方直接完成,并且跟踪器不参与传输。跟踪器只提供信息。

  • 一旦对等方拥有一块,它就会根据 SHA-1 散列对其进行验证,并将其写入文件。然后它可以在选择另一个对等点时提供该部分。随后的交流会涉及“交易”部分。我相信如果你没有其他作品,同行通常只会给你第一件。

  • 对等点每隔一段时间重新咨询跟踪器以获得更新的对等点列表。如果对等方有多个碎片,则在开始另一个交换之前不必等待一个交换完成,因此一旦对等方拥有一堆碎片,传输速度就可以真正加快。这就是为什么种子开始缓慢但随着对等方获取碎片而迅速增加的原因。

  • 当对等方拥有所有部分时,将根据文件集 SHA-1 哈希验证整个文件。然后,它变成了一个seeder,现在除了帮助文件集提高可用性之外什么都不做。没有所有碎片的同行是吸血鬼

  • 如果 torrent 没有种子,它就死了,尽管如果所有对等方持有的所有部分之间存在文件的完整副本,他们最终将交易以在它们之间获得完整副本。

  • SHA-1 哈希是跟踪器和对等方“知道”哪个文件应该被聚集的方式。Torrent 中的文件名不用于识别数据。不针对 .torrent 文件中的 hases 进行验证的片段将被丢弃。不断发送坏片段的对等点被其他对等点冷落,最终将无法连接到群中的任何人。

  • 较小的块大小意味着 torrent 更强大,因为对等节点可以更快地交易块,但这也意味着必须列出 .torrent 文件中的更多散列,因此 .torrent 文件可能很大。

  • 如果您通过 BitTorrent 发布某些内容,只要您希望使其可用,最好为该文件设置种子。其他对等点将帮助您,因为大多数 BitTorrent 软件实现的算法有利于尝试在尽可能多的对等点之间传播事物以最大化并发连接。通过这种方式,BitTorrent 可以帮助您发布内容并节省带宽成本。

  • 一个美丽的答案!一句俏皮话:我相信种子更喜欢最稀有的种子,而不是第一批种子。不确定这是否是一个算法问题,但这就是我在搞乱设置时从 torrent 程序中得到的结果。 (2认同)

Moa*_*oab 18

关于这个主题的好论文在这里

      http://davidhales.name/posters/patarin-hales-delis-poster6.pdf (注其实是一个.pdf文件,可以用Acrobat Reader查看。)

这是某人用其内容制作的图像文件:

patarin-hales-delis-poster6


nhi*_*kle 8

YouTube 上有一个相当不错的视频,用纸板剪纸以视觉方式解释了这一点。这不是一个技术性很强的解释,但非常适合以简单易懂的方式向人们解释 BitTorrent 背后的想法。

bittorrent 如何在 youtube 上工作

  • +1 有用的视频。给我爸看了。之后他没有任何问题。惊人。:) (3认同)