有人为torrent创建了填充文件吗? 现在有多少客户使用这些东西?是"填充文件"全面?
我没有在新客户中找到此功能,例如ctorrent,ttorent,trasmission等。
您是否已实现此功能或某些理论或历史记录?
我将很感激您的答案!
答案 0 :(得分:5)
这个功能最初由BitComet实现(在我看来,实现的质量相当差)作为一种方法,可以更轻松地取消某些文件的下载。由于bittorrent下载片段,片段可能跨越多个文件。否则,当您取消选择某些文件时,您仍然可以获得它的第一位和最后一位(因为它与其他文件所需的部分重叠)。
介绍pad文件可确保文件与片段对齐并使问题消失。
值得注意的是,uTorrent会将这些遗留的部分放在一个单独的文件中,称为零件文件。
在更现代的时代,几年后,libtorrent和uTorrent得到了一些pad文件的支持,原因不同。主要是这两个:
uTorrent实施了支持"可变种子",能够用新版本替换torrent并有效地将所有常见内容转换/复制到新的torrent。为了有效地大规模使用此功能,您必须将大文件对齐,以避免重新散列所有内容(即您只想散列新内容,而不是保持相同的内容)。因此,pad文件很有用。
访问文件系统中的群集对齐偏移量可能比未对齐访问要便宜很多。它还允许使用一些可能限制文件偏移(异步.I / O)的更复杂的API。对于内存映射文件也是如此。
对pad文件的主要批评(据我所知)来自BitComet的实现,这对于没有实现它的客户来说非常具有侵扰性。它会创建具有长文件名的突出文件,建议下载更新版本的BitComet。至少在uTorrent阵营中,这让很多用户感到不安,以至于创建了一些.torrent文件故意在bitcomet中使用此功能(其中pad文件不是全部为零,bitcomet会假设,所以它失败了散列)。
有更优雅的方法来实现pad文件,我相信libtorrent和uTorrent做得更好。例如,您可以在创建torrent时合并(隐藏)目录中的所有pad文件。 uTorrent还会在其partfile中放入部分pad文件。
至于支持pad文件的客户端,这里有一些我可以想到的(我给出了最新版本):