Answers:
欢迎来到洪流的奇妙世界!组成Bittorrent协议的部分内容:您拥有文件legalthing.iso,并希望将其分发给尽可能多的人。因此,您将创建一个描述legalthing.iso的“ torrent”文件,然后通过网站或您喜欢的任何其他方式分发torrent文件。种子文件可以直接指向您的计算机(并且您将充当种子),也可以指向“跟踪器”,该跟踪器是连接“种子”(用户具有完整legacything.iso的服务器)的服务器。文件)和“对等”(正在积极下载文件的用户)。
立即接近您的问题。文件本身legalthing.iso被加密地进行哈希处理,以便每个阅读torrent文件并开始下载legalthing.iso的人都可以对照哈希检查每个文件,并确保他们不会下载从原始文件修改而来的文件。哈希检查失败的片段将被丢弃。
现在,假设您是使用Bittorrent下载文件的计算机。该协议可以通过以下两种方式之一起作用:要么下载文件的随机片段,要么首先下载最稀有的片段。后一种方法是增加种子的整体“健康”(可用性)。
那么实际的torrent文件中有什么?它会根据使用的客户端的不同而有所不同,但通常包含一个“公告”部分,该部分是您正在使用的跟踪器的地址,以及您要下载的所有文件的巨大清单。每块都具有统一的大小(32 kb,512 kb,4mb,实际上是您喜欢的任何大小),并且每块都具有与之关联的哈希。每次同级获得一块时,它都会将该段的哈希(使用SHA-1哈希码)与种子文件中列出的哈希进行比较。这就是它弄清楚各个部分很好的方式。
由于torrent文件会列出您要下载的文件的每个部分,因此,每次客户端成功下载并对其进行哈希处理后,客户端都会将该文件写入文件中硬盘上的正确位置。这就是为什么如果您下载1gb文件,客户端会在磁盘上留出一个1gb的空白空间,以容纳要下载的torrent文件。
现在,某些视频播放器和其他文件查看器可以处理“损坏”的文件。当然,下载了一半的洪流也没有损坏,但缺少内容,对于VLC这样的程序,它看起来很破损。因此,VLC将尽最大努力播放可以找到的任何数据,这就是为什么在部分下载时它们可以播放的原因。
还有很多更复杂的方面(google DHT,torrent写入缓冲,所有有趣的东西),但这是Bittorrent运作方式的基础。